index.ts 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. import { priceCalc } from "../../../services/api/orders/index"
  2. import { getEnumList } from "../../../services/utils"
  3. import { hideLoading, showLoading } from "../../../utils/message/index"
  4. Page({
  5. /**
  6. * 页面的初始数据
  7. */
  8. data: {
  9. /// 底部安全区域
  10. safeBottom: getApp().globalData.safeBottom,
  11. /// 窗口高度
  12. windowHeight: getApp().globalData.windowHeight,
  13. /// 形状
  14. zsshapes: [{ id: 1, name: '圆形', isCheck: true },
  15. { id: 2, name: '异性', isCheck: false }],
  16. /// 选中形状
  17. zsshape: 1,
  18. /// 颜色
  19. zscolors: [ { id: 1, name: 'D', isCheck: true } ],
  20. /// 选中形状
  21. zscolor: 'D',
  22. /// 净度
  23. zsclaritys: [ { id: 1, name: 'IF', isCheck: true } ],
  24. /// 选中净度
  25. zsclarity: 'IF',
  26. /// 重量
  27. weight: 1.0,
  28. /// 汇率
  29. dayrate: 1.0,
  30. /// 折扣
  31. discount: 0.0,
  32. /// 国际报价
  33. doller: '0.0',
  34. /// 国际人民币报价
  35. rmb: '0.0',
  36. /// 美元
  37. disdoller: '0.0',
  38. /// 人民币
  39. disrmb: '0.0',
  40. /// 选项
  41. options: [
  42. { text: '-', value: 0 },
  43. { text: '+', value: 1 }
  44. ],
  45. /// 选项值
  46. value: 0
  47. },
  48. /// 钻石价格计算器
  49. priceCalc() {
  50. /// showLoding....
  51. showLoading(()=>{
  52. /// 折扣
  53. const discount = Number((this.data.value === 0 ? '-' : '+')+this.data.discount.toString())/100
  54. const rate = Number(this.data.dayrate)
  55. const weight = Number(this.data.weight)
  56. /// 进行查询
  57. priceCalc({
  58. data: {
  59. zsshape: this.data.zsshape,
  60. zscolor: this.data.zscolor,
  61. zsclarity: this.data.zsclarity,
  62. weight: weight,
  63. rate: 1.0
  64. },
  65. /// 查询成功
  66. success: (res) => {
  67. if (res.code != 200) {
  68. hideLoading(()=>{}, '查询失败')
  69. return
  70. }
  71. hideLoading(()=>{
  72. const dollar = Number(res.data[0].dollar)
  73. this.setData({
  74. doller: dollar.toFixed(2),
  75. rmb: (dollar*rate).toFixed(2),
  76. disdoller: (dollar*(1+discount)*weight).toFixed(2),
  77. disrmb: (dollar*(1+discount)*weight*rate).toFixed(2)
  78. })
  79. })
  80. },
  81. /// 查询失败
  82. fail: (emsg) => {
  83. hideLoading(()=>{}, '计算失败,原因:' + emsg)
  84. }
  85. })
  86. }, '计算中....')
  87. },
  88. /**
  89. * 返回上层视图
  90. */
  91. backToParent() {
  92. /// 返回上层视图
  93. wx.navigateBack()
  94. },
  95. /**
  96. * 按钮点击响应事件
  97. */
  98. /// 形状按钮点击事件
  99. onButtonPressed(e: any) {
  100. /// 获取对应的id
  101. const ids = (<string> e.target.id).split(' ')
  102. let id = (<string> e.target.id).split(' ')[0]
  103. const index = <number> <unknown>ids[1]
  104. switch (id) {
  105. case 'zsshape': /// 形状
  106. this.setData({
  107. zsshapes: this.data.zsshapes.map(item => {
  108. if (item.id == index) {
  109. item.isCheck = true
  110. /// 设置形状
  111. this.setData({ zsshape: item.id })
  112. } else {
  113. item.isCheck = false
  114. }
  115. return item
  116. })
  117. })
  118. break;
  119. case 'zscolor': /// 颜色
  120. this.setData({
  121. zscolors: this.data.zscolors.map(item => {
  122. if (item.id == index) {
  123. item.isCheck = true
  124. /// 设置形状
  125. this.setData({ zscolor: item.name })
  126. } else {
  127. item.isCheck = false
  128. }
  129. return item
  130. }) })
  131. break;
  132. case 'zsclarity': /// 净度
  133. this.setData({
  134. zsclaritys: this.data.zsclaritys.map(item => {
  135. if (item.id == index) {
  136. item.isCheck = true
  137. /// 设置形状
  138. this.setData({ zsclarity: item.name })
  139. } else {
  140. item.isCheck = false
  141. }
  142. return item
  143. }) })
  144. break;
  145. default: /// 计算
  146. this.priceCalc()
  147. break;
  148. }
  149. },
  150. /**
  151. * 生命周期函数--监听页面加载
  152. */
  153. onLoad() {
  154. /// 显示默认数据
  155. this.setData({
  156. /// 颜色
  157. zscolors: getEnumList('ZSColorType').map(obj => {
  158. return { id: obj.enumitemname, name: obj.enumdicname, isCheck: obj.enumdicname === this.data.zscolor }
  159. }),
  160. /// 净度
  161. zsclaritys: getEnumList('ZSClarityType').map(obj => {
  162. return { id: obj.enumitemname, name: obj.enumdicname, isCheck: obj.enumdicname === this.data.zsclarity }
  163. }),
  164. })
  165. },
  166. /**
  167. * 生命周期函数--监听页面初次渲染完成
  168. */
  169. onReady() {},
  170. /**
  171. * 生命周期函数--监听页面显示
  172. */
  173. onShow() {},
  174. /**
  175. * 生命周期函数--监听页面隐藏
  176. */
  177. onHide() {},
  178. /**
  179. * 生命周期函数--监听页面卸载
  180. */
  181. onUnload() {},
  182. /**
  183. * 页面相关事件处理函数--监听用户下拉动作
  184. */
  185. onPullDownRefresh() {},
  186. /**
  187. * 页面上拉触底事件的处理函数
  188. */
  189. onReachBottom() {},
  190. /**
  191. * 用户点击右上角分享
  192. */
  193. onShareAppMessage() {}
  194. })