import { getCatalogList, getCataLogTagList, getZhongTaiProductPage } from '../../api/index'
|
Component({
|
/**
|
* 组件的属性列表
|
*/
|
properties: {
|
menuButtonInfo: Object
|
},
|
|
/**
|
* 组件的初始数据
|
*/
|
data: {
|
activeIndex: -1,
|
activeParam: [],
|
tagCodes: [],
|
|
cateList: [],
|
secondCateList: [],
|
datalist: [],
|
pageNum: 1,
|
pageSize: 10,
|
total: 0,
|
query: '',
|
sortType: '',
|
catalogCode: ""
|
},
|
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)
|
}
|
},
|
methods: {
|
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() {
|
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
|
})
|
})
|
},
|
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'
|
})
|
}
|
},
|
scrolltoupper() {
|
this.setData({ pageNum: 1, datalist: [], total: 0 })
|
this.getList()
|
},
|
cateClick(e) {
|
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)
|
if (index === -1) {
|
// 同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].paramIndex = paramIndex
|
secondCateList[activeIndex].paramName = activeParam[paramIndex].labelValueName
|
} else {
|
tagCodes.splice(index, 1)
|
secondCateList[activeIndex].paramIndex = -1
|
secondCateList[activeIndex].paramName = ''
|
}
|
this.setData({ tagCodes, 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.paramIndex = -1
|
item.paramName = item.paramName || ''
|
})
|
this.setData({ tagCodes: [], activeParam: [], secondCateList, activeIndex: -1 })
|
},
|
subParam() {
|
this.setData({ activeParam: [] })
|
this.setData({ pageNum: 1, activeIndex: -1, datalist: [], total: 0 })
|
this.getList()
|
},
|
}
|
})
|