From 2c08a98f7e85ec7c9376f27a7933e75e44d672f7 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期二, 27 八月 2024 15:52:59 +0800
Subject: [PATCH] ll

---
 wechat_staff/components/disProduct/index.js |  394 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 370 insertions(+), 24 deletions(-)

diff --git a/wechat_staff/components/disProduct/index.js b/wechat_staff/components/disProduct/index.js
index ecc66a4..90b4a64 100644
--- a/wechat_staff/components/disProduct/index.js
+++ b/wechat_staff/components/disProduct/index.js
@@ -1,39 +1,385 @@
-// components/disProduct/index.js
+import {
+  getCatalogList,
+  getCataLogTagList,
+  getZhongTaiProductPage
+} from '../../api/index'
+let touchDot = 0
 Component({
   /**
    * 缁勪欢鐨勫睘鎬у垪琛�
    */
   properties: {
-
+    menuButtonInfo: Object
   },
-
-  /**
-   * 缁勪欢鐨勫垵濮嬫暟鎹�
-   */
   data: {
-    showOne: false,
-    showTwo: false,
-    activeStatus: '0'
+    // 鍔ㄧ敾
+    showTouch: true,
+    animationData: {},
+
+    activeIndex: -1,
+    activeParam: [],
+    tagCodes: [],
+
+    cateList: [],
+    secondCateList: [],
+    datalist: [],
+    isLoading: false,
+    pageNum: 1,
+    pageSize: 10,
+    total: 0,
+    query: '',
+    sortType: '',
+    catalogCode: ""
+  },
+  attached() {
+    this.getCatelist()
+    var app = getApp()
+    console.log('globalData', app.globalData);
+    if (app.globalData.catalogCode) {
+      this.setData({
+        catalogCode: app.globalData.catalogCode
+      })
+      setTimeout(() => {
+        console.log('catalogCode', this.data.catalogCode);
+        getApp().globalData.catalogCode = ''
+      }, 2000)
+    }
+    this.animation = wx.createAnimation({
+      duration: 600,
+      timingFunction: 'ease',
+    });
   },
   methods: {
-    handleDetail(e) {
-      wx.navigateTo({
-        url: '/pages/detailDis/product',
+    bindscrolltoupper() {
+      this.setData({
+        showTouch: true
+      })
+      this.fadeIn();
+    },
+    touchstart(e) {
+      touchDot = e.detail.scrollTop;
+    },
+    touchmove(e) {
+      var touchMove = e.detail.scrollTop;
+      if (touchMove - touchDot > 24) {
+        touchDot = touchMove
+        this.fadeOut();
+      }
+      if (touchDot - touchMove > 24) {
+        touchDot = touchMove
+        setTimeout(() => {
+          this.setData({
+            showTouch: true
+          })
+          this.fadeIn();
+        }, 200)
+      }
+    },
+    fadeIn: function () {
+      this.animation.opacity(1).step();
+      this.setData({
+        animationData: this.animation.export()
+      });
+    },
+    fadeOut: function () {
+      this.animation.opacity(0).step();
+      this.setData({
+        animationData: this.animation.export()
+      });
+      setTimeout(() => {
+        this.setData({
+          showTouch: false
+        });
+      }, 200); // 鍔ㄧ敾鎸佺画鏃堕棿
+    },
+    refreshCount() {
+      let temData = wx.getStorageSync('conentCountTemp')
+      if (temData && this.data.datalist) {
+        var dataList = this.data.datalist;
+        dataList.forEach(item => {
+          if (item.id + '' == temData.id + '') {
+            item.viewCount = (item.viewCount || 0) + 1;
+            if (item.isCollection != temData.isCollection) {
+              if (item.isCollection) {
+                item.collectCount = (item.collectCount || 0) - 1
+                item.collectCount = item.collectCount >= 0 ? item.collectCount : 0;
+              } else {
+                item.collectCount = (item.collectCount || 0) + 1
+              }
+              item.isCollection = temData.isCollection
+            }
+          }
+        })
+        this.setData({
+          datalist: dataList
+        })
+        wx.setStorageSync('conentCountTemp', null)
+      }
+    },
+    getCatelist() {
+      getCatalogList({
+        catalogCode: 'product_intro'
+      }).then(res => {
+        if (res.data && res.data.length > 0) {
+          this.setData({
+            catalogCode: this.data.catalogCode || res.data[0].code,
+            cateList: res.data
+          })
+          this.getTag()
+          setTimeout(() => {
+            this.getList()
+          }, 300)
+        }
       })
     },
-    changeOne(){
-      const showOne = !this.data.showOne
-      this.setData({showOne})
-      this.setData({showTwo: false})
+    getTag() {
+      const catalogCode = this.data.catalogCode
+      getCataLogTagList({
+        catalogCode
+      }).then(res => {
+        this.setData({
+          secondCateList: res.data || [],
+          activeParam: []
+        })
+      })
     },
-    changeTwo(){
-      const showTwo = !this.data.showTwo
-      this.setData({showTwo})
-      this.setData({showOne: false})
+    bindblur() {
+      console.log('澶卞幓鐒︾偣');
+      this.setData({
+        pageNum: 1,
+        datalist: [],
+        total: 0
+      })
+      this.getList()
+    },
+    getList() {
+      const {
+        catalogCode,
+        tagCodes,
+        pageNum,
+        pageSize,
+        sortType,
+        query
+      } = this.data
+      getZhongTaiProductPage({
+        catalogCode,
+        pageNum,
+        pageSize,
+        sortType,
+        query,
+        tagCodes
+      }).then(res => {
+        if (res.data && res.data.records) {
+          this.setData({
+            datalist: [...this.data.datalist, ...res.data.records],
+            total: res.data.total
+          })
+        }
+      }).finally(() => {
+        this.setData({
+          isLoading: false
+        })
+      })
+    },
+    scrolltolower() {
+      console.log('瑙﹀簳浜嬩欢');
+      const {
+        total,
+        datalist,
+        pageNum
+      } = this.data
+      if (total > datalist.length) {
+        this.setData({
+          pageNum: pageNum + 1
+        })
+        this.getList()
+      } else {
+        wx.showToast({
+          title: '鏆傛棤鏇村鏁版嵁',
+          icon: 'none'
+        })
+      }
+    },
+    cateClick(e) {
+      var {
+        isLoading
+      } = this.data
+      if (isLoading) {
+        return
+      }
+      this.setData({
+        isLoading: true
+      })
+      const catalogCode = e.currentTarget.dataset.code
+      this.setData({
+        catalogCode,
+        tagCodes: []
+      })
+      this.setData({
+        pageNum: 1,
+        datalist: [],
+        total: 0
+      })
+      this.getTag()
+      this.getList()
     },
     statusChange(e) {
-      const activeStatus = e.currentTarget.dataset.status
-      this.setData({activeStatus})
-    }
+      const sortType = e.currentTarget.dataset.status
+      this.setData({
+        sortType
+      })
+      this.setData({
+        pageNum: 1,
+        datalist: [],
+        total: 0
+      })
+      this.getList()
+    },
+    handleDetail(e) {
+      const id = e.currentTarget.dataset.id
+      wx.navigateTo({
+        url: '/pages/detailDis/product?id=' + id,
+      })
+    },
+    tagClick(e) {
+      const code = e.currentTarget.dataset.code
+      const paramIndex = e.currentTarget.dataset.index
+      const {
+        secondCateList,
+        tagCodes,
+        activeParam,
+        activeIndex
+      } = this.data
+      // 鐐瑰嚮瀛愭爣绛�
+      console.log('openRelLabel', secondCateList[activeIndex].openRelLabel);
+      if (secondCateList[activeIndex].openRelLabel) {
+        if (secondCateList[activeIndex].tempParamRelIndex == null || secondCateList[activeIndex].tempParamRelIndex != paramIndex) {
+          secondCateList[activeIndex].tempParamRelIndex = paramIndex
+          secondCateList[activeIndex].tempParamRelCode = code
+          secondCateList[activeIndex].tempParamRelName = activeParam[paramIndex].labelValueName
+        } else {
+          secondCateList[activeIndex].tempParamRelIndex = -1
+          secondCateList[activeIndex].tempParamRelCode = ''
+          secondCateList[activeIndex].tempParamRelName = ''
+        }
+        console.log('secondCateList', secondCateList);
+      } else {
+        // 鐐瑰嚮鐖舵爣绛�
+        const relLabel = secondCateList[activeIndex].valueVos[paramIndex].relLabel || []
+        if (relLabel.length > 0 && relLabel[0].labelCode) {
+          secondCateList[activeIndex].relLabel = relLabel[0]
+        }else{
+          secondCateList[activeIndex].relLabel = null
+        }
+        secondCateList[activeIndex].tempParamRelIndex = -1
+        secondCateList[activeIndex].tempParamRelCode = ''
+        secondCateList[activeIndex].tempParamRelName = ''
+        if (secondCateList[activeIndex].tempParamIndex == null || secondCateList[activeIndex].tempParamIndex != paramIndex) {
+          secondCateList[activeIndex].tempParamIndex = paramIndex
+          secondCateList[activeIndex].tempParamCode = code
+          secondCateList[activeIndex].tempParamName = activeParam[paramIndex].labelValueName
+        } else {
+          secondCateList[activeIndex].tempParamIndex = -1
+          secondCateList[activeIndex].tempParamCode = ''
+          secondCateList[activeIndex].tempParamName = ''
+        }
+      }
+      this.setData({
+        tagCodes,
+        secondCateList
+      })
+    },
+    changeShowParams(e) {
+      const {
+        secondCateList,
+        activeParam
+      } = this.data
+      const activeIndex = e.currentTarget.dataset.index
+      const type = e.currentTarget.dataset.type || ''
+      // console.log('activeIndex', activeIndex);
+      // 閽堝鏈夊瓙闆嗙殑label
+      if (type && type == 'child') {
+        if (secondCateList[activeIndex].openRelLabel) {
+          secondCateList[activeIndex].openRelLabel = false
+          this.setData({
+            activeIndex,
+            activeParam: [],
+            secondCateList
+          })
+        } else {
+          secondCateList[activeIndex].openRelLabel = true
+          this.setData({
+            activeParam: secondCateList[activeIndex].relLabel.valueVos,
+            secondCateList,
+            activeIndex
+          })
+        }
+        return
+      }
+      // 闈炲瓙闆嗙殑label
+      secondCateList[activeIndex].openRelLabel = false
+      this.setData({ secondCateList })
+      if (activeIndex === this.data.activeIndex && activeParam.length > 0) {
+        this.setData({
+          activeIndex: -1,
+          activeParam: []
+        })
+      } else {
+        this.setData({
+          activeIndex,
+          activeParam: secondCateList[activeIndex].valueVos
+        })
+      }
+    },
+    cancelParam() {
+      const {
+        secondCateList
+      } = this.data
+      secondCateList.forEach(item => {
+        item.tempParamIndex = item.paramIndex
+        item.tempParamName = item.paramName
+        item.tempParamCode = item.paramCode
+        item.relLabel = null
+        item.openRelLabel = false
+        item.tempParamRelIndex = null
+        item.tempParamRelCode = null
+        item.tempParamRelName = null
+      })
+      // this.setData({ tagCodes: [], activeParam: [], secondCateList, activeIndex: -1 }) 
+      this.setData({
+        activeParam: [],
+        activeIndex: -1,
+        secondCateList
+      })
+    },
+    subParam() {
+      const {
+        secondCateList
+      } = this.data
+      var codes = []
+      secondCateList.forEach(item => {
+        item.paramIndex = item.tempParamIndex
+        item.paramName = item.tempParamName
+        item.paramCode = item.tempParamCode
+        item.openRelLabel = false
+        if(item.tempParamRelIndex > -1 && item.tempParamRelCode){
+          return codes.push(item.tempParamRelCode)
+        }
+        if (item.paramIndex > -1 && item.tempParamCode) {
+          codes.push(item.paramCode)
+        }
+      })
+      this.setData({
+        tagCodes: codes
+      })
+      this.setData({
+        pageNum: 1,
+        activeParam: [],
+        activeIndex: -1,
+        datalist: [],
+        total: 0
+      })
+      this.getList()
+    },
   }
-})
+})
\ No newline at end of file

--
Gitblit v1.9.3