search.ts 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359
  1. import { it } from "node:test"
  2. // pages/search/search.ts
  3. Page({
  4. /**
  5. * 页面的初始数据
  6. */
  7. data: {
  8. /// 底部安全区域
  9. safeBottom: getApp().globalData.safeBottom,
  10. /// tabs
  11. tabs: [{id: 2, name: '单颗裸钻'}, {id: 5, name: '单颗彩钻'}],
  12. /// tab索引
  13. active: 0,
  14. /// 形状
  15. shapes: [{id: 1, name: '圆明亮形', isCheck: true},
  16. {id: 2, name: '公主方形', isCheck: false},
  17. {id: 3, name: '心形', isCheck: false},
  18. {id: 4, name: '马眼形', isCheck: false},
  19. {id: 5, name: '三角形', isCheck: false},
  20. {id: 6, name: '垫形', isCheck: false},
  21. {id: 7, name: '祖母绿形', isCheck: false},
  22. {id: 8, name: '梨形', isCheck: false},
  23. {id: 9, name: '椭圆形', isCheck: false},
  24. {id: 10, name: '长方形', isCheck: false},
  25. {id: 11, name: '雷迪恩形', isCheck: false},
  26. {id: 12, name: '阿斯切形', isCheck: false},
  27. {id: 13, name: '其他', isCheck: false}],
  28. /// 选中形状
  29. shape: ['1'],
  30. /// 颜色
  31. colors: [{id: 1, name: 'D', isCheck: true},
  32. {id: 2, name: 'E', isCheck: false},
  33. {id: 3, name: 'F', isCheck: false},
  34. {id: 4, name: 'G', isCheck: false},
  35. {id: 5, name: 'H', isCheck: false},
  36. {id: 6, name: 'I', isCheck: false},
  37. {id: 7, name: 'J', isCheck: false},
  38. {id: 8, name: 'K', isCheck: false},
  39. {id: 9, name: 'L', isCheck: false},
  40. {id: 10, name: 'M', isCheck: false},
  41. {id: 11, name: 'N', isCheck: false},
  42. {id: 12, name: 'O', isCheck: false},
  43. {id: 13, name: 'P', isCheck: false},
  44. {id: 14, name: 'Q', isCheck: false},
  45. {id: 15, name: 'R', isCheck: false},
  46. {id: 16, name: 'S', isCheck: false},
  47. {id: 17, name: 'T', isCheck: false},
  48. {id: 18, name: 'U', isCheck: false},
  49. {id: 19, name: 'W', isCheck: false},
  50. {id: 20, name: 'V', isCheck: false},
  51. {id: 21, name: 'X', isCheck: false},
  52. {id: 22, name: 'Y', isCheck: false},
  53. {id: 23, name: 'Z', isCheck: false},
  54. {id: 24, name: '彩色', isCheck: false}],
  55. /// 选中形状
  56. color: ['1'],
  57. /// 净度
  58. neatness: [{id: 1, name: 'FL', isCheck: true},
  59. {id: 2, name: 'IF', isCheck: false},
  60. {id: 3, name: 'VVS1', isCheck: false},
  61. {id: 4, name: 'VVS2', isCheck: false},
  62. {id: 5, name: 'VS1', isCheck: false},
  63. {id: 6, name: 'VS2', isCheck: false},
  64. {id: 7, name: 'SI1', isCheck: false},
  65. {id: 8, name: 'SI2', isCheck: false},
  66. {id: 9, name: 'SI3', isCheck: false},
  67. {id: 10, name: 'I1', isCheck: false},
  68. {id: 11, name: 'I2', isCheck: false},
  69. {id: 12, name: 'I3', isCheck: false}],
  70. /// 选中净度
  71. neatnes: 1,
  72. /// 切工
  73. qiegongs: [{id: 1, name: 'EX', isCheck: true},
  74. {id: 2, name: 'VG', isCheck: false},
  75. {id: 3, name: 'G', isCheck: false},
  76. {id: 4, name: 'F', isCheck: false},
  77. {id: 5, name: 'P', isCheck: false}],
  78. /// 选中切工
  79. qiegong: 1,
  80. /// 对称
  81. duichengs: [{id: 1, name: 'EX', isCheck: true},
  82. {id: 2, name: 'VG', isCheck: false},
  83. {id: 3, name: 'G', isCheck: false},
  84. {id: 4, name: 'F', isCheck: false},
  85. {id: 5, name: 'P', isCheck: false}],
  86. duicheng: 1,
  87. /// 抛光
  88. paoguangs: [{id: 1, name: 'EX', isCheck: true},
  89. {id: 2, name: 'VG', isCheck: false},
  90. {id: 3, name: 'G', isCheck: false},
  91. {id: 4, name: 'F', isCheck: false},
  92. {id: 5, name: 'P', isCheck: false}],
  93. paoguang: 1,
  94. /// 莹光
  95. yingguangs: [{id: 1, name: '无', isCheck: true},
  96. {id: 2, name: '微弱', isCheck: false},
  97. {id: 3, name: '中等', isCheck: false},
  98. {id: 4, name: '强', isCheck: false},
  99. {id: 5, name: '极强', isCheck: false}],
  100. /// 选中莹光
  101. yingguang: 1,
  102. /// 证书
  103. certificates: [{id: 1, name: 'GIA', isCheck: true},
  104. {id: 2, name: 'NGTC', isCheck: false},
  105. {id: 3, name: 'HRD', isCheck: false},
  106. {id: 4, name: 'IGI', isCheck: false},
  107. {id: 5, name: 'EGL', isCheck: false},
  108. {id: 6, name: 'AGS', isCheck: false},
  109. {id: 7, name: 'NGIC', isCheck: false},
  110. {id: 8, name: 'Others', isCheck: false}],
  111. /// 选中证书
  112. certificate: 1,
  113. /// 币种
  114. currencys: [{id: 1, name: '人民币(¥)', isCheck: true},
  115. {id: 2, name: '美元($)', isCheck: false}],
  116. currency: 1,
  117. /// 最小重量
  118. minweight: 0.00,
  119. /// 最大重量
  120. maxweight: 0.00
  121. },
  122. /**
  123. * tab触发事件
  124. */
  125. onTabChange(e: any) {
  126. /// 设置激活项
  127. this.setData({ active: e.detail.index })
  128. },
  129. /**
  130. * 返回上层视图
  131. */
  132. backToParent() {
  133. /// 返回上层视图
  134. wx.navigateBack()
  135. },
  136. /// 按钮点击事件
  137. onButtonPressed(e: any) {
  138. /// 数据拼接
  139. const ids = (<string> e.target.id).split(' ')
  140. const id = (<string> e.target.id).split(' ')[0]
  141. const index = <number> <unknown>ids[1]
  142. switch (id) {
  143. case 'shape': /// 形状
  144. this.setData({ shapes: this.data.shapes.map(item => {
  145. if (item.id == index) { item.isCheck = !item.isCheck }
  146. return item
  147. }) })
  148. /// 赋值
  149. this.setData({ shape: this.data.shapes.map(item => {
  150. return item.id.toString()
  151. }) })
  152. break;
  153. case 'currency':
  154. this.setData({ currencys: this.data.currencys.map(item => {
  155. if (item.id == index) {
  156. item.isCheck = true
  157. /// 赋值
  158. this.setData({ currency: item.id })
  159. } else {
  160. item.isCheck = false
  161. }
  162. return item
  163. }) })
  164. break;
  165. case 'color': /// 颜色
  166. this.setData({ colors: this.data.colors.map(item => {
  167. if (item.id == index) { item.isCheck = !item.isCheck }
  168. return item
  169. }) })
  170. /// 赋值
  171. this.setData({ color: this.data.colors.map(item => {
  172. return item.id.toString()
  173. }) })
  174. break;
  175. case 'neatness': /// 净度
  176. this.setData({ neatness: this.data.neatness.map(item => {
  177. if (item.id == index) {
  178. item.isCheck = true
  179. /// 赋值
  180. this.setData({ neatnes: item.id })
  181. } else {
  182. item.isCheck = false
  183. }
  184. return item
  185. }) })
  186. break;
  187. case 'qiegong': /// 切工
  188. this.setData({ qiegongs: this.data.qiegongs.map(item => {
  189. if (item.id == index) {
  190. item.isCheck = true
  191. /// 赋值
  192. this.setData({ qiegong: item.id })
  193. } else {
  194. item.isCheck = false
  195. }
  196. return item
  197. }) })
  198. break;
  199. case 'duicheng': /// 对称
  200. this.setData({ duichengs: this.data.duichengs.map(item => {
  201. if (item.id == index) {
  202. item.isCheck = true
  203. /// 赋值
  204. this.setData({ duicheng: item.id })
  205. } else {
  206. item.isCheck = false
  207. }
  208. return item
  209. }) })
  210. break;
  211. case 'polishing': /// 抛光
  212. this.setData({ paoguangs: this.data.paoguangs.map(item => {
  213. if (item.id == index) {
  214. item.isCheck = true
  215. /// 赋值
  216. this.setData({ polishing: item.id })
  217. } else {
  218. item.isCheck = false
  219. }
  220. return item
  221. }) })
  222. break;
  223. case 'yingguang': /// 荧光
  224. this.setData({ yingguangs: this.data.yingguangs.map(item => {
  225. if (item.id == index) {
  226. item.isCheck = true
  227. /// 赋值
  228. this.setData({ yingguang: item.id })
  229. } else {
  230. item.isCheck = false
  231. }
  232. return item
  233. }) })
  234. break;
  235. case 'certificate': /// 证书
  236. this.setData({ certificates: this.data.certificates.map(item => {
  237. if (item.id == index) {
  238. item.isCheck = true
  239. /// 赋值
  240. this.setData({ certificate: item.id })
  241. } else {
  242. item.isCheck = false
  243. }
  244. return item
  245. }) })
  246. break;
  247. case 'search': /// 搜索
  248. /// 搜索页面跳转
  249. this.goToSearch()
  250. break;
  251. case 'clear': break;
  252. default: break;
  253. }
  254. },
  255. /// 重量范围值更改
  256. syncNumRange(e: any) {
  257. this.setData({
  258. minweight: e.detail.value[0],
  259. maxweight: e.detail.value[1],
  260. })
  261. },
  262. /// 搜索页面跳转
  263. goToSearch() {
  264. /// 数据拼接
  265. const info = {
  266. category: this.data.tabs[this.data.active].id,
  267. zsshapetype: this.data.shape,
  268. zsclaritytype: this.data.neatnes,
  269. zscuttype: this.data.qiegong,
  270. zssymmetrytype: this.data.duicheng,
  271. zspolishtype: this.data.paoguang,
  272. zsfluorescencetype: this.data.yingguang,
  273. zscurrencytype: this.data.currency,
  274. zscerttype: this.data.certificate,
  275. zscolortype: this.data.color,
  276. weight1: this.data.minweight,
  277. weight2: this.data.maxweight
  278. }
  279. /// 页面跳转
  280. wx.switchTab({
  281. url: '/pages/trade/trade',
  282. /// 加载成功
  283. success: () => {
  284. /// 缓存数据
  285. wx.setStorageSync('TradeParams', JSON.stringify(info))
  286. }
  287. })
  288. },
  289. /**
  290. * 生命周期函数--监听页面加载
  291. */
  292. onLoad() {
  293. },
  294. /**
  295. * 生命周期函数--监听页面初次渲染完成
  296. */
  297. onReady() {
  298. },
  299. /**
  300. * 生命周期函数--监听页面显示
  301. */
  302. onShow() {
  303. },
  304. /**
  305. * 生命周期函数--监听页面隐藏
  306. */
  307. onHide() {
  308. },
  309. /**
  310. * 生命周期函数--监听页面卸载
  311. */
  312. onUnload() {
  313. },
  314. /**
  315. * 页面相关事件处理函数--监听用户下拉动作
  316. */
  317. onPullDownRefresh() {
  318. },
  319. /**
  320. * 页面上拉触底事件的处理函数
  321. */
  322. onReachBottom() {
  323. },
  324. /**
  325. * 用户点击右上角分享
  326. */
  327. onShareAppMessage() {
  328. }
  329. })