| import { getCatalogList, getCataLogTagList, getZhongTaiProductPage } from '../../api/index' | 
| import { eventBus } from '../../utils/eventBus' | 
| let touchDot = 0 | 
| Component({ | 
|   /** | 
|    * 组件的属性列表 | 
|    */ | 
|   properties: { | 
|     menuButtonInfo: Object | 
|   }, | 
|   | 
|   /** | 
|    * 组件的初始数据 | 
|    */ | 
|   data: { | 
|     // 动画 | 
|     showTouch: true, | 
|     animationData: {}, | 
|   | 
|     activeIndex: -1, | 
|     activeParam: [], | 
|     tagCodes: [], | 
|     isLoading:false, | 
|     cateList: [], | 
|     secondCateList: [], | 
|     datalist: [], | 
|     pageNum: 1, | 
|     pageSize: 10, | 
|     total: 0, | 
|     query: '', | 
|     sortType: '', | 
|     catalogCode: "", | 
|     scrollTop: 0 | 
|   }, | 
|   pageLifetimes: { | 
|     show: function() { | 
|       // 页面被展示 | 
|       console.log('组件被展示'); | 
|       eventBus.once('productDeBack', (info) => { | 
|         const datalist = this.data.datalist | 
|         datalist.forEach(item => { | 
|           if(item.id === info.id){ | 
|             console.log(item) | 
|             console.log(info) | 
|             if(item.isCollection != info.isCollection){ | 
|               if(!item.isCollection){  | 
|                 item.collectCount = (item.collectCount || 0)+1 | 
|               }else if(item.collectCount >0){ | 
|                 item.collectCount = (item.collectCount || 0)-1 | 
|               }              | 
|             } | 
|             item.isCollection = info.isCollection | 
|             item.viewCount =(item.viewCount||0) +1 | 
|           } | 
|         }) | 
|         this.setData({ datalist }) | 
|       }) | 
|     }, | 
|   }, | 
|   attached() { | 
|     this.getCatelist() | 
|     var app = getApp() | 
|     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: { | 
|     bindscrolltoupper() { | 
|       this.setData({ showTouch: true }) | 
|       this.fadeIn(); | 
|     }, | 
|     touchstart(e){ | 
|       touchDot = e.detail.scrollTop; | 
|     }, | 
|     touchmove(e) { | 
|       var touchMove = e.detail.scrollTop; | 
|       if(touchMove - touchDot > 60){ | 
|         this.fadeOut(); | 
|       } | 
|       if(touchDot - touchMove > 60){ | 
|         this.fadeIn(); | 
|         this.setData({ showTouch: true }) | 
|       } | 
|     }, | 
|     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 }); | 
|       }, 500); // 动画持续时间 | 
|     }, | 
|     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) | 
|         } | 
|       }) | 
|     }, | 
|     getTag() { | 
|       const catalogCode = this.data.catalogCode | 
|       getCataLogTagList({ | 
|         catalogCode | 
|       }).then(res => { | 
|         this.setData({ | 
|           secondCateList: res.data || [], | 
|           activeParam: [] | 
|         }) | 
|       }) | 
|     }, | 
|     bindblur() { | 
|       this.setData({ pageNum: 1, datalist: [], total: 0 }) | 
|       this.getList() | 
|     }, | 
|     getList() { | 
|       var that =this | 
|       const { catalogCode, tagCodes, pageNum, pageSize, sortType, query } = this.data | 
|       getZhongTaiProductPage({ | 
|         catalogCode, pageNum, pageSize, sortType, query, tagCodes | 
|       }).then(res => { | 
|         this.setData({ | 
|           datalist: [...this.data.datalist, ...res.data.records], | 
|           total: res.data.total | 
|         }) | 
|       }).finally(()=>{ | 
|         that.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 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 | 
|       const index = tagCodes.indexOf(code) | 
|       console.log('code', code) | 
|       console.log('tagCodes', tagCodes) | 
|       console.log(secondCateList) | 
|       if ( secondCateList[activeIndex].tempParamIndex==null ||      secondCateList[activeIndex].tempParamIndex != paramIndex) { | 
|         // 同param里code重复 | 
|         // if (activeParam && activeParam.length > 0) { | 
|         //   activeParam.forEach(item => { | 
|         //     const indexTemp = tagCodes.indexOf(item.labelValueCode) | 
|         //     if (indexTemp > -1) { | 
|         //       tagCodes.splice(indexTemp, 1) | 
|         //     } | 
|         //   }) | 
|         // } | 
|         //tagCodes.push(code) | 
|         secondCateList[activeIndex].tempParamIndex = paramIndex | 
|         secondCateList[activeIndex].tempParamCode = code | 
|         secondCateList[activeIndex].tempParamName = activeParam[paramIndex].labelValueName | 
|       } else { | 
|       //  tagCodes.splice(index, 1) | 
|         secondCateList[activeIndex].tempParamIndex = -1 | 
|         secondCateList[activeIndex].tempParamCode = '' | 
|         secondCateList[activeIndex].tempParamName = '' | 
|       } | 
|       this.setData({secondCateList }) | 
|     }, | 
|     changeShowParams(e) { | 
|       const { secondCateList } = this.data | 
|       const activeIndex = e.currentTarget.dataset.index | 
|       console.log('activeIndex', activeIndex) | 
|       console.log('secondCateList', secondCateList) | 
|       if (activeIndex === this.data.activeIndex) { | 
|         this.setData({ activeIndex: -1, activeParam: [] }) | 
|       } else { | 
|         this.setData({ | 
|           activeIndex, | 
|           activeParam: secondCateList[activeIndex].valueVos | 
|         }) | 
|       } | 
|       // this.setData({showTwo: false}) | 
|     }, | 
|     cancelParam() { | 
|       const { secondCateList } = this.data | 
|       secondCateList.forEach(item => {  | 
|         item.tempParamIndex = item.paramIndex | 
|         item.tempParamName =   item.paramName | 
|         item.tempParamCode =  item.paramCode  | 
|       }) | 
|       // 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 | 
|         if( item.paramIndex>-1 && item.tempParamCode){ | 
|           codes.push( item.tempParamCode)  | 
|         }  | 
|       })   | 
|       this.setData({tagCodes:codes})  | 
|       this.setData({ pageNum: 1, activeParam: [] ,activeIndex: -1, datalist: [], total: 0 }) | 
|       this.getList() | 
|     }, | 
|   } | 
| }) |