index.ts 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. import { queryMyFavorite } from "../../services/api/orders/index"
  2. import Toast from "../../miniprogram_npm/@vant/weapp/toast/toast"
  3. import { clientType, isEncrypted, marketid, protoHeader, userid, timetample } from "../../services/utils";
  4. import { sendMsgToMQ } from "../../services/api/common/index";
  5. import { FunCode } from "../../constants/enum/funcode";
  6. import { isnullstr } from "../../utils/util";
  7. import { hideLoading, showLoading } from "../../utils/message/index";
  8. Page({
  9. /**
  10. * 页面的初始数据
  11. */
  12. data: {
  13. /// 底部安全区域
  14. safeBottom: getApp().globalData.safeBottom,
  15. /// 窗口高度
  16. windowHeight: getApp().globalData.windowHeight,
  17. /// tabs
  18. tabs: [{id: 2, name: '单颗裸钻'}, {id: 5, name: '单颗彩钻'}],
  19. /// tab索引
  20. active: 0,
  21. /// 列头
  22. titles: [['重量', '形状', '尺寸', '编号'],
  23. ['颜色 | 净度 | 切工 | 对称 | 抛光 | 荧光 | 证书', '价格']],
  24. /// 我的收藏
  25. favorites: <GuangZuan.MyFavorite[]>[],
  26. /// 是否空数据
  27. isEmpty: true,
  28. /// 显示的值
  29. values: [{ up: [''], dwn: [''] }],
  30. /// 左滑宽度
  31. width: 50,
  32. },
  33. /**
  34. * 每行选中触发事件
  35. */
  36. onSelectItem(e: any) {
  37. var obj = this.data.favorites[e.currentTarget.id]
  38. obj.isChecked = !obj.isChecked
  39. this.data.favorites[e.currentTarget.id] = obj
  40. /// 数据赋值
  41. this.setData({ favorites: this.data.favorites })
  42. },
  43. /**
  44. * tab触发事件
  45. */
  46. onTabChange(e: any) {
  47. this.setData({ active: e.detail.index })
  48. /// 查询数据
  49. this.queryMyFavorite()
  50. },
  51. /**
  52. * 按钮点击事件
  53. */
  54. onButtonPressed() {
  55. /// 数据过滤
  56. const objs = this.data.favorites.filter(itm => {
  57. return itm.isChecked
  58. })
  59. /// 对比最多不能超过3项
  60. if (objs.length < 2 || objs.length > 3) {
  61. Toast('对比不能少于2项、最多不能超过3项')
  62. return
  63. }
  64. /// 页面跳转
  65. wx.navigateTo({
  66. url: '/mCircle/pages/contrast/index?params='+JSON.stringify(objs)
  67. })
  68. },
  69. /**
  70. * tab触发事件
  71. */
  72. onCancelFavorite(e: any) {
  73. /// loding.....
  74. showLoading(()=>{
  75. /// 获取对应的id
  76. const ids = (<string> e.target.id).split(' ')
  77. const index = <number> <unknown>ids[1]
  78. const wrtradeorderid = this.data.favorites[index].wrtradeorderid
  79. /// 参数信息
  80. const info = {
  81. UserID: userid(),
  82. OperateType: 2,
  83. ClientType: clientType(),
  84. MarketID: marketid(),
  85. ClientSerialNo: timetample().toString(),
  86. WRTradeOrderID: wrtradeorderid,
  87. Header: protoHeader(FunCode.GoodsFavoriteOperateReq)
  88. }
  89. /// 发送请求
  90. sendMsgToMQ({
  91. data: {
  92. data: JSON.stringify(info),
  93. funCodeReq: FunCode.GoodsFavoriteOperateReq,
  94. funCodeRsp: FunCode.GoodsFavoriteOperateRsp,
  95. isEncrypted: isEncrypted()
  96. },
  97. success: (res) => {
  98. /// 操作失败
  99. if (res.code != 0) {
  100. hideLoading(()=>{}, '请求失败,原因:'+res.msg, 'error')
  101. return
  102. }
  103. /// 操作成功
  104. hideLoading(()=>{
  105. /// 更新数据
  106. this.queryMyFavorite()
  107. }, '请求成功', 'success')
  108. },
  109. fail: (emsg) => {
  110. /// 操作失败
  111. hideLoading(()=>{}, '请求失败,原因:'+emsg, 'error')
  112. }
  113. })
  114. })
  115. },
  116. /// 查询我的收藏数据信息
  117. queryMyFavorite() {
  118. /// showLoading
  119. showLoading(()=> {
  120. /// 发送查询
  121. queryMyFavorite({
  122. data: {
  123. userid: userid(),
  124. zscategorys: this.data.active == 0 ? '2' : '5'
  125. },
  126. /// 加载成功
  127. success: (res) => {
  128. if (res.code != 200) {
  129. /// 加载失败
  130. hideLoading(()=>{}, '请求失败,原因:'+res.msg, 'error')
  131. return
  132. }
  133. hideLoading(()=>{
  134. /// 数据赋值
  135. this.setData({
  136. favorites: res.data,
  137. isEmpty: res.data.length === 0,
  138. /// 显示的值
  139. values: res.data.map(obj => {
  140. return {up: [obj.weight.toString()+'ct',
  141. isnullstr(obj.zsshapetypedisplay),
  142. isnullstr(obj.sizedisplay),
  143. isnullstr(obj.zscategorydisplay)],
  144. dwn: [isnullstr(obj.zscolortype1display)+' | '+
  145. isnullstr(obj.zsclaritytype1display)+' | '+
  146. isnullstr(obj.zscuttype1display)+' | '+
  147. isnullstr(obj.zssymmetrytype1display)+' | '+
  148. isnullstr(obj.zspolishtype1display)+' | '+
  149. isnullstr(obj.zsfluorescencetype1display),
  150. obj.zscurrencytypedisplayunit+obj.price]}
  151. })
  152. })
  153. })
  154. },
  155. fail: (emsg) => {
  156. /// 加载失败
  157. hideLoading(()=>{}, '请求失败,原因:'+emsg, 'error')
  158. },
  159. complete: () => {
  160. /// 停止下拉刷新
  161. wx.stopPullDownRefresh()
  162. }
  163. })
  164. })
  165. },
  166. /**
  167. * 生命周期函数--监听页面加载
  168. */
  169. onLoad() {
  170. /// 查询数据
  171. this.queryMyFavorite()
  172. },
  173. /**
  174. * 生命周期函数--监听页面初次渲染完成
  175. */
  176. onReady() {
  177. },
  178. /**
  179. * 生命周期函数--监听页面显示
  180. */
  181. onShow() {
  182. this.getTabBar().init()
  183. },
  184. /**
  185. * 生命周期函数--监听页面隐藏
  186. */
  187. onHide() {
  188. },
  189. /**
  190. * 生命周期函数--监听页面卸载
  191. */
  192. onUnload() {
  193. },
  194. /**
  195. * 页面相关事件处理函数--监听用户下拉动作
  196. */
  197. onPullDownRefresh() {
  198. /// 查询数据
  199. this.queryMyFavorite()
  200. },
  201. /**
  202. * 页面上拉触底事件的处理函数
  203. */
  204. onReachBottom() {
  205. },
  206. /**
  207. * 用户点击右上角分享
  208. */
  209. onShareAppMessage() {
  210. }
  211. })