// pages/bookExhibitionList/index.js import Toast from 'tdesign-miniprogram/toast/index'; const app = getApp() Page({ /** * 页面的初始数据 */ data: { keynoteDisabled: true, value: '', keyword: '', nameSort: null, total: null, page: { start: 0, size: 16 }, keynoteValue: null, filteredItems: [], newValue: null, bookExhibitionList: [], sorter: { value: 'default', }, product: { value: '*', options: [ { value: '*', label: '总分类', }, { value: 'jsek_bFHigherEducation', //重点项目 price: 'jsek_higherEducation', label: '高等教育', }, { value: 'jsek_bFVocationalEducation', //重点项目 price: 'jsek_vocationalEducation', label: '职业教育', }, { value: 'jsek_bFTeacherEducation', //重点项目 price: 'jsek_teacherEducation', label: '教师教育', }, ], }, multipleSelect: { value: [], options: [], }, navBarHeight: '', barHeight: '', windowHeight: '', }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { // console.log(this.data.filteredItems, 88888); const systInfo = wx.getSystemInfoSync(); const menu = wx.getMenuButtonBoundingClientRect(); // 胶囊信息 const navBarHeight = (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 导航栏高度 this.setData({ navBarHeight: navBarHeight, barHeight: systInfo.statusBarHeight, }) // 单列选择器选项 const singleSelectOptions = this.data.filteredItems.map(item => ({ label: item.name, value: item.value, disabled: false, })) if (this.data.filteredItems = []) { console.log(11111); // singleSelectOptions.push({ // label: '暂无数据', // value: 'disabled', // disabled: true, // }); } else { console.log(7889); } // 更新数据 this.setData({ 'multipleSelect.options': singleSelectOptions, }); }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() { }, /** * 生命周期函数--监听页面显示 */ onShow() { this.bookExhibitionGet() this.keyProjectsGet() }, /** * 生命周期函数--监听页面隐藏 */ onHide() { }, /** * 生命周期函数--监听页面卸载 */ onUnload() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { }, onPullDownRefresh() { this.data.page.size = 16 //更改显示的值 this.bookExhibitionGet(); // 调用方法加载更多数据 }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { // console.log(this.data.page.size); // console.log(this.data.total); if (this.data.page.size >= this.data.total) { console.log('已加载完所有数据'); Toast({ context: this, selector: '#t-toast', message: '没有更多了', direction: 'column', duration: 1000, preventScrollThrough: true, icon: 'poweroff', }); } else { // const currentPage = this.data.page.start + 1; // 获取当前页数并加1 const newSize = this.data.page.size + 10; // 原来的基础上加10 this.setData({ // 'page.start': currentPage, 'page.size': newSize }); this.bookExhibitionGet(); // 调用方法加载更多数据 } }, /** * 用户点击右上角分享 */ onShareAppMessage() { }, // 图片数据的接口 bookExhibitionGet(newValue) { wx.showLoading({ title: '加载中...', }) let searchObj = { 'Name*': this.data.keyword, '||subtitle*': this.data.keyword } // console.log(this.data.keynoteValue); let sort = { Name: this.data.nameSort || 'Desc' } app.MG.store.getProductList({ storeInfo: 'jsek_bookFair', path: newValue, queryType: '*', fields: { jsek_link: [], subtitle: [], 'bookClassification*': this.data.keynoteValue || [], ...searchObj }, paging: this.data.page, sort: sort, // coverSize: { // width: 100 // }, }).then(res => { res.datas.forEach((item) => { item.subtitleName = item.subtitle + item.name }) console.log(res, 'item'); this.data.total = res.total // list.push(res.datas) const list = [...res.datas] this.setData({ bookExhibitionList: list }) //取消 wx.hideLoading() // console.log(this.data.bookExhibitionList, '数据'); }) }, //重点项目接口 keyProjectsGet(newPrice) { // console.log(newPrice, 'newPrice'); let parms = { refCodes: ['bookClassification'] } app.MG.store.getProductTypeField(parms).then(res => { const checkData = JSON.parse(res[0].config) checkData.option.forEach(item => { if (newPrice == item.value) { this.setData({ filteredItems: item.child || [] // 如果存在子项则赋值,否则赋值为空数组 }); // console.log(this.data.filteredItems); } }) this.onLoad(); }) }, // 总分类 // 总分类 onChange(e) { this.data.page.size = 16 //更改显示的值 const newValue = e.detail.value; const selectedOption = this.data.product.options.find(option => option.value === newValue); const newPrice = selectedOption ? selectedOption.price : null; console.log(newValue, 'newValue'); console.log(newPrice, 'newPrice'); if (newPrice) { this.setData({ keynoteDisabled: false }) } else { this.setData({ keynoteDisabled: true }) } this.setData({ 'product.value': newValue, 'product.price': newPrice, // 将选中的 price 值保存在数据中 }); this.bookExhibitionGet(newValue); this.keyProjectsGet(newPrice); // 调用更新页面数据的函数,传入新的 value 和 price 值 if (this.data.keynoteValue) { //如果有数据就清空并刷新页面 this.data.keynoteValue = [] this.bookExhibitionGet(newValue) this.onLoad() console.log('true'); } }, // 重点项目 handleMultipleSelect(e) { this.setData({ 'multipleSelect.value': e.detail.value, }); }, handleConfirm(event) { const { value } = event.detail; // 确认操作的处理逻辑 console.log('确认操作,选中的值为:', value); this.data.keynoteValue = value this.bookExhibitionGet() }, handleReset() { // 重置操作的处理逻辑 this.data.keynoteValue = [] console.log('重置操作'); this.bookExhibitionGet() }, onSwapRight() { // console.log('xxxxxx'); // this.data.nameSort = 'Asc' if (!this.data.nameSort) { this.setData({ nameSort: 'Desc', }); } else if (this.data.nameSort == 'Desc') { this.setData({ nameSort: 'Asc', }); } else if (this.data.nameSort == 'Asc') { this.setData({ nameSort: '', }); } this.bookExhibitionGet() }, onSwapLeft() { this.data.nameSort = 'Desc' // console.log('sssssss'); this.bookExhibitionGet() }, onBookExhibitionDetails: function (event) { const item = event.currentTarget.dataset.item; console.log(item); wx.navigateTo({ url: '/pages/bookExhibitionDetails/index?id=' + item.id + '&bookName=' + item.name + '&subtitleName=' + item.subtitleName // 假设跳转到详情页面,并传递了id参数 }); }, // 搜索框 onSearchSubmit(e) { this.setData({ keyword: e.detail.value }) console.log(this.data.keyword, 'keyword'); this.bookExhibitionGet() }, goBack() { wx.navigateBack(); }, })