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
|
// 点击子标签
|
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()
|
},
|
}
|
})
|