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 > 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); // 动画持续时间 }, 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 => { if (res.data && res.data.records) { 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 // 点击子标签 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() }, } })