// pages/bookExhibitionList/index.js import Toast from "tdesign-miniprogram/toast/index"; import watch from "./watch/watch"; const app = getApp(); Page({ /** * 页面的初始数据 */ data: { name: "测试watch", newPrice: "", loading: true, hidden: true, totalSize: "", start: 0, isMore: null, keynoteDisabled: true, value: "", keyword: "", nameSort: null, total: null, page: { start: 0, size: 16, }, keynoteValue: [], filteredItems: [], newValue: null, bookExhibitionList: [], sorter: { value: "default", }, product: { value: "*", options: [{ value: "*", label: "总分类", }, { value: "jsek_bFHigherEducation", label: "高等教育", }, { value: "jsek_bFVocationalEducation", label: "职业教育", }, { value: "jsek_bFTeacherEducation", label: "教师教育", }, ], }, multipleSelect: { value: [], options: [], }, navBarHeight: "", barHeight: "", windowHeight: "", sorter: { value: "timeAsc", options: [{ value: "nameAsc", label: "名称正序", }, { value: "nameDesc", label: "名称倒序", }, { value: "timeAsc", label: "出版时间正序", }, { value: "timeDesc", label: "出版时间倒序", }, ], }, newValue: "", disbaleProject: true, disabledSort: false }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { // this.setData({ // 'product.value': '*', // }); const systInfo = wx.getSystemInfoSync(); const menu = wx.getMenuButtonBoundingClientRect(); // 胶囊信息 const navBarHeight = (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 导航栏高度 this.setData({ navBarHeight: navBarHeight, barHeight: systInfo.statusBarHeight, }); }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() {}, /** * 生命周期函数--监听页面显示 */ onShow() { this.bookExhibitionGet(); this.keyProjectsGet(this.data.newPrice); }, /** * 生命周期函数--监听页面隐藏 */ onHide() {}, /** * 生命周期函数--监听页面卸载 */ onUnload() {}, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() {}, onScrollToLower() { if (this.data.bookExhibitionList.length < this.data.totalSize) { this.setData({ isMore: true, start: this.data.start + 1, }); this.bookExhibitionGet(); } else { this.setData({ isMore: true, }); setTimeout(() => { this.setData({ isMore: false, }); }, 300); } }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { if (this.data.page.size >= this.data.total) { 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() {}, onShareTimeline() {}, // 图片数据的接口 bookExhibitionGet(newValue) { this.setData({ disabledSort: false }) let searchObj = { "Name*": this.data.keyword, "||subtitle*": this.data.keyword, }; let sort = {}; const sortOptions = { "*": { CreateDate: "Asc", }, nameAsc: { Name: "Asc", }, nameDesc: { Name: "Desc", }, timeAsc: { CreateDate: "Asc", }, timeDesc: { CreateDate: "Desc", }, }; sort = sortOptions[this.data.product.value] || {}; app.MG.store .getProductList({ storeInfo: "jsek_bookFair", path: this.data.newValue, queryType: "*", fields: { jsek_link: [], subtitle: [], "bookClassification*": this.data.keynoteValue || [], ...searchObj, }, paging: { start: "0", size: this.data.start * 10, }, sort: sort, // coverSize: { // width: 100 // }, }) .then((res) => { res.datas.forEach((item) => { if (item.subtitle == undefined) { item.subtitle = ""; } item.subtitleName = item.subtitle + item.name; }); this.data.total = res.total; if (res.datas.length == 0) { this.setData({ disabledSort: true }) if (!this.data.keynoteValue.length) { this.setData({ disbaleProject: true }); } } const list = [...res.datas]; this.setData({ bookExhibitionList: list, totalSize: res.total, }); this.setData({ loading: false, hidden: false, }); }); }, //获奖情况接口 keyProjectsGet(newPrice) { this.setData({ filteredItems: [], // 如果存在子项则赋值,否则赋值为空数组 }); //骨架屏 this.setData({ loading: true, hidden: true, }); // 参数 let parms = { refCodes: ["bookClassification"], }; //请求数据 app.MG.store.getProductTypeField(parms).then((res) => { // 格式化数据 const checkData = JSON.parse(res[0].config); // 循环然后判断相匹配的数据赋值给filteredItems checkData.option.forEach((item) => { if (newPrice == item.value) { this.setData({ filteredItems: item.child || [], // 如果存在子项则赋值,否则赋值为空数组 }); } }); let singleSelectOptions = []; // 单列选择器选项 // 单列选择器选项 this.data.filteredItems.forEach((item) => { singleSelectOptions.push({ label: item.name, value: item.value, }); }); if (singleSelectOptions.length === 0) { singleSelectOptions.push({ label: "暂无数据", }); this.setData({ disbaleProject: true }) } // 更新数据 this.setData({ "multipleSelect.options": singleSelectOptions, }); // 取消骨架屏 this.setData({ loading: false, hidden: false, }); }); // if (newPrice) { // this.setData({ // keynoteDisabled: false // }) // } // if (!newPrice) { // this.setData({ // keynoteDisabled: true // }) // } }, // 总分类 // 总分类 onChange(e) { const newValue = e.detail.value; this.setData({ "product.value": newValue, newValue: newValue, disbaleProject: false, loading: true }); let newPrice = ""; if (newValue == "jsek_bFHigherEducation") { newPrice = "jsek_higherEducation"; } else if (newValue == "jsek_bFVocationalEducation") { newPrice = "jsek_vocationalEducation"; } else if (newValue == "jsek_bFTeacherEducation") { newPrice = "jsek_teacherEducation"; } else { // 选择总分类 this.setData({ disbaleProject: true }) newPrice = ""; } this.keyProjectsGet(newPrice); this.bookExhibitionGet(newValue); if (this.data.keynoteValue) { //如果有数据就清空并刷新页面 this.data.keynoteValue = []; this.bookExhibitionGet(newValue); } }, // 获奖情况 handleMultipleSelect(e) { this.setData({ "multipleSelect.value": e.detail.value, }); }, handleConfirm(event) { const { value } = event.detail; // 确认操作的处理逻辑 // this.data.keynoteValue = value this.setData({ keynoteValue: value, loading: true }); this.bookExhibitionGet(); }, handleReset(e) { // 重置操作的处理逻辑 this.data.keynoteValue = []; this.bookExhibitionGet(); }, onSwapRight() { 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"; this.bookExhibitionGet(); }, onBookExhibitionDetails: function (event) { const item = event.currentTarget.dataset.item; wx.navigateTo({ url: "/pages/bookExhibitionDetails/index?id=" + item.id, // 假设跳转到详情页面,并传递了id参数 }); }, // 搜索框 onSearchSubmit(e) { this.setData({ keyword: e.detail.value, }); this.bookExhibitionGet(); }, goBack() { wx.navigateBack(); }, onSort(e) { this.setData({ "product.value": e.detail.value, }); this.bookExhibitionGet(); }, onOpend() {}, });