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() 
 | 
    }, 
 | 
  } 
 | 
}) 
 |