import { getCatalogList,getCataLogTagList, getZhongTaiProductPage } from '../../api/index'
|
let touchDot = 0
|
Component({
|
/**
|
* 组件的属性列表
|
*/
|
properties: {
|
menuButtonInfo: Object
|
},
|
data: {
|
// 动画
|
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: {
|
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)
|
}
|
})
|
},
|
getTag() {
|
const catalogCode = this.data.catalogCode
|
getCataLogTagList({
|
catalogCode
|
}).then(res => {
|
this.setData({
|
secondCateList: res.data || [],
|
activeParam: []
|
})
|
})
|
},
|
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 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
|
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({ tagCodes, secondCateList })
|
},
|
changeShowParams(e){
|
const { secondCateList } = this.data
|
const activeIndex = e.currentTarget.dataset.index
|
console.log('activeIndex', activeIndex);
|
console.log('activeIndex', this.data.activeIndex);
|
console.log('secondCateList', secondCateList);
|
if(activeIndex === this.data.activeIndex){
|
this.setData({ activeIndex: -1, activeParam: [] })
|
}else{
|
this.setData({
|
activeIndex,
|
activeParam: secondCateList[activeIndex].valueVos
|
})
|
}
|
console.log('activeParam', this.data.activeParam);
|
// 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()
|
},
|
}
|
})
|