| | |
| | | // 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, |
| | |
| | | }, |
| | | product: { |
| | | value: '*', |
| | | |
| | | options: [ |
| | | { |
| | | 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: [], |
| | | // value: [], |
| | | options: [], |
| | | }, |
| | | navBarHeight: '', |
| | | barHeight: '' |
| | | |
| | | barHeight: '', |
| | | windowHeight: '', |
| | | sorter: { |
| | | value: 'timeAsc', |
| | | options: [{ |
| | | value: 'nameAsc', |
| | | label: '名称正序', |
| | | }, |
| | | { |
| | | value: 'nameDesc', |
| | | label: '名称倒序', |
| | | }, |
| | | { |
| | | value: 'timeAsc', |
| | | label: '出版时间正序', |
| | | }, |
| | | { |
| | | value: 'timeDesc', |
| | | label: '出版时间倒序', |
| | | }, |
| | | ], |
| | | }, |
| | | }, |
| | | |
| | | |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad(options) { |
| | | // console.log(this.data.filteredItems, 88888); |
| | | |
| | | // this.setData({ |
| | | // 'product.value': '*', |
| | | // }); |
| | | const systInfo = wx.getSystemInfoSync(); |
| | | const menu = wx.getMenuButtonBoundingClientRect(); // 胶囊信息 |
| | | const navBarHeight = (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 导航栏高度 |
| | |
| | | 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, |
| | | }); |
| | | } |
| | | |
| | | // singleSelectOptions.push({ |
| | | // label: '禁用选项', |
| | | // value: 'disabled', |
| | | // disabled: true, |
| | | // }); |
| | | |
| | | |
| | | // 更新数据 |
| | | this.setData({ |
| | | 'multipleSelect.options': singleSelectOptions, |
| | | }); |
| | | |
| | | watch.setWatcher(this); |
| | | let that = this; |
| | | setTimeout(function () { |
| | | that.data.name = "测试watch变化了" |
| | | }, 5000) |
| | | // |
| | | }, |
| | | |
| | | watch: { |
| | | name: function (newVal, oldVal) { |
| | | //这里的this和onLoad里的this指向一样 |
| | | console.log(newVal, oldVal); |
| | | }, |
| | | newPrice: function (newVal, oldVal) { |
| | | console.log(newVal, oldVal); |
| | | } |
| | | }, |
| | | /** |
| | | * 生命周期函数--监听页面初次渲染完成 |
| | | */ |
| | |
| | | * 生命周期函数--监听页面显示 |
| | | */ |
| | | onShow() { |
| | | // debugger |
| | | this.bookExhibitionGet() |
| | | |
| | | this.keyProjectsGet() |
| | | // this.keyProjectsGet(this.data.newPrice) |
| | | |
| | | |
| | | }, |
| | | |
| | | /** |
| | |
| | | */ |
| | | onUnload() { |
| | | |
| | | |
| | | |
| | | }, |
| | | |
| | | /** |
| | |
| | | onPullDownRefresh() { |
| | | |
| | | }, |
| | | // onPullDownRefresh() { |
| | | // this.data.page.size = 16 //更改显示的值 |
| | | // this.bookExhibitionGet(); // 调用方法加载更多数据 |
| | | // }, |
| | | |
| | | 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() { |
| | | // 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', |
| | |
| | | preventScrollThrough: true, |
| | | icon: 'poweroff', |
| | | }); |
| | | |
| | | |
| | | |
| | | |
| | | } else { |
| | | // const currentPage = this.data.page.start + 1; // 获取当前页数并加1 |
| | | const newSize = this.data.page.size + 10; // 原来的基础上加10 |
| | |
| | | // 'page.start': currentPage, |
| | | 'page.size': newSize |
| | | }); |
| | | this.bookExhibitionGet(); // 调用方法加载更多数据 |
| | | console.log(1111); |
| | | // this.bookExhibitionGet(); // 调用方法加载更多数据 |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | 'Name*': this.data.keyword, |
| | | '||subtitle*': this.data.keyword |
| | | } |
| | | // console.log(this.data.keynoteValue); |
| | | let sort = { |
| | | Name: this.data.nameSort || 'Desc' |
| | | } |
| | | |
| | | 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: newValue, |
| | |
| | | 'bookClassification*': this.data.keynoteValue || [], |
| | | ...searchObj |
| | | }, |
| | | paging: this.data.page, |
| | | 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 |
| | | }) |
| | | console.log(res, 'item'); |
| | | |
| | | this.data.total = res.total |
| | | |
| | | // list.push(res.datas) |
| | | // list.push(res.datas) |
| | | |
| | | |
| | | |
| | | if (res.datas.length == 0) { |
| | | this.setData({ |
| | | // keynoteDisabled: true |
| | | }) |
| | | } |
| | | |
| | | const list = [...res.datas] |
| | | |
| | | this.setData({ |
| | | bookExhibitionList: list |
| | | bookExhibitionList: list, |
| | | totalSize: res.total |
| | | }) |
| | | |
| | | |
| | | |
| | | //取消 |
| | | wx.hideLoading() |
| | | // console.log(this.data.bookExhibitionList, '数据'); |
| | | |
| | | |
| | | this.setData({ |
| | | loading: false, |
| | | hidden: false, |
| | | }) |
| | | }) |
| | | |
| | | }, |
| | | //重点项目接口 |
| | | keyProjectsGet(newPrice) { |
| | | // console.log(newPrice, 'newPrice'); |
| | | this.setData({ |
| | | loading: true, |
| | | hidden: true, |
| | | }) |
| | | let parms = { |
| | | refCodes: ['bookClassification'] |
| | | } |
| | | app.MG.store.getProductTypeField(parms).then(res => { |
| | | |
| | | const checkData = JSON.parse(res[0].config) |
| | | |
| | | |
| | | console.log(checkData); |
| | | checkData.option.forEach(item => { |
| | | if (newPrice == item.value) { |
| | | |
| | | this.setData({ |
| | | filteredItems: item.child || [] // 如果存在子项则赋值,否则赋值为空数组 |
| | | }); |
| | | |
| | | // console.log(this.data.filteredItems); |
| | | |
| | | } |
| | | }) |
| | | // 单列选择器选项 |
| | | const singleSelectOptions = this.data.filteredItems.map(item => ({ |
| | | label: item.name, |
| | | value: item.value, |
| | | })) |
| | | // 更新数据 |
| | | this.setData({ |
| | | 'multipleSelect.options': singleSelectOptions, |
| | | }); |
| | | |
| | | this.onLoad(); |
| | | this.setData({ |
| | | loading: false, |
| | | hidden: false, |
| | | }) |
| | | }) |
| | | if (newPrice) { |
| | | this.setData({ |
| | | keynoteDisabled: false |
| | | }) |
| | | } |
| | | if (!newPrice) { |
| | | this.setData({ |
| | | keynoteDisabled: true |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | |
| | |
| | | // 总分类 |
| | | onChange(e) { |
| | | |
| | | this.data.page.size = 16 //更改显示的值 |
| | | |
| | | |
| | | // 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; |
| | | |
| | | this.setData({ |
| | | 'product.value': newValue, |
| | | 'product.price': newPrice, // 将选中的 price 值保存在数据中 |
| | | |
| | | }); |
| | | |
| | | |
| | | // debugger |
| | | // let newPrice = '' |
| | | |
| | | |
| | | |
| | | |
| | | if (newValue == 'jsek_bFHigherEducation') { |
| | | |
| | | this.setData({ |
| | | newPrice: 'jsek_higherEducation' |
| | | }) |
| | | } else if (newValue == 'jsek_bFVocationalEducation') { |
| | | this.setData({ |
| | | newPrice: 'jsek_vocationalEducation' |
| | | }) |
| | | } else if (newValue == 'jsek_bFTeacherEducation') { |
| | | this.setData({ |
| | | newPrice: 'jsek_teacherEducation' |
| | | }) |
| | | } |
| | | this.bookExhibitionGet(newValue); |
| | | this.keyProjectsGet(newPrice); |
| | | // 调用更新页面数据的函数,传入新的 value 和 price 值 |
| | | this.keyProjectsGet(this.data.newPrice) |
| | | |
| | | |
| | | |
| | | |
| | | if (this.data.keynoteValue) { |
| | | //如果有数据就清空并刷新页面 |
| | | this.data.keynoteValue = [] |
| | | |
| | | this.bookExhibitionGet(newValue) |
| | | this.onLoad() |
| | | console.log('true'); |
| | | } else { |
| | | // this.bookExhibitionGet(newValue); |
| | | // this.keyProjectsGet(newPrice); |
| | | console.log('fals'); |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | }, |
| | | |
| | | // 重点项目 |
| | | handleMultipleSelect(e) { |
| | | console.log(e); |
| | | this.setData({ |
| | | 'multipleSelect.value': e.detail.value, |
| | | }); |
| | | }, |
| | | handleConfirm(event) { |
| | | const { value } = event.detail; |
| | | console.log(event); |
| | | const { |
| | | value |
| | | } = event.detail; |
| | | // 确认操作的处理逻辑 |
| | | |
| | | console.log('确认操作,选中的值为:', value); |
| | | this.data.keynoteValue = value |
| | | this.bookExhibitionGet() |
| | | }, |
| | | handleReset() { |
| | | |
| | | |
| | | handleReset(e) { |
| | | |
| | | // 重置操作的处理逻辑 |
| | | this.data.keynoteValue = [] |
| | | console.log('重置操作'); |
| | | this.bookExhibitionGet() |
| | | }, |
| | | onSwapRight() { |
| | | // console.log('xxxxxx'); |
| | | // this.data.nameSort = 'Asc' |
| | | |
| | | |
| | | if (!this.data.nameSort) { |
| | | this.setData({ |
| | | nameSort: 'Desc', |
| | |
| | | }, |
| | | 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 // 假设跳转到详情页面,并传递了id参数 |
| | | 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(); |
| | | }, |
| | | onSort(e) { |
| | | this.setData({ |
| | | 'product.value': e.detail.value, |
| | | }); |
| | | |
| | | this.bookExhibitionGet() |
| | | }, |
| | | onOpend() { |
| | | |
| | | } |
| | | }) |