import { models, db, _ } from '../../utils/cloudbase.js' Page({ data: { categoriesindex: 1, categories: [], goods: [], souimg: '', gouwucimg: '', pageNumber: 1, pageSize: 10, hasMore: true, // 是否还有更多数据 isLoading: false, // 防止多次触发 types_ids: null, // 当前选中的分类 tag_id }, onLoad(options) { // 获取tab数据 this.getTabdata(); const fileIDs = [ 'cloud://cloud1-6g98iw7i28b01747.636c-cloud1-6g98iw7i28b01747-1367995226/images/icon/sou.png', 'cloud://cloud1-6g98iw7i28b01747.636c-cloud1-6g98iw7i28b01747-1367995226/images/icon/gouwuc_img.png' ]; // 并发下载多个 fileID Promise.all( fileIDs.map(fileID => wx.cloud.downloadFile({ fileID })) ).then(results => { // 每个 result 对应一个下载结果 const tempFilePaths = results.map(r => r.tempFilePath); console.log('全部下载成功:', tempFilePaths); this.setData({ souimg: tempFilePaths[0], gouwucimg: tempFilePaths[1] }); }).catch(err => { console.error('有文件下载失败:', err); }); }, // tab数据 async getTabdata() { const { data } = await models.tab.list({ filter: { where: { position: 4, // 显示位置 }, }, envType: "prod", }); // 返回查询到的数据 const sortedRecords = data.records.sort((a, b) => { return a.sort - b.sort; // 升序排列 }); this.setData({ categories: sortedRecords, goods: [], pageNumber: 1, hasMore: true, }, () => { this.getDatalist() }) }, onReachBottom() { // 上拉触底事件的处理函数 this.loadMore(); }, loadMore() { // 加载更多数据的逻辑 console.log('加载更多'); this.getDatalist(this.data.types_ids, true); }, // 列表数据 async getDatalist(tag_id = null, isLoadMore = false) { const userInfo = wx.getStorageSync('userInfo'); // 构造 where 条件 const where = { school_id: _.in(userInfo.school_id) }; if (tag_id) { where.tag_id = tag_id; // 仅在 tag_id 有值时添加 } const { pageNumber, pageSize } = this.data; const { data } = await models.wx_merchandise.list({ filter: { where }, pageSize, pageNumber, getCount: true, envType: "prod", }); const collectList = data.records || []; this.setData({ goods: isLoadMore ? this.data.goods.concat(collectList) : collectList, // ✅ 用 goods 拼接 pageNumber: pageNumber + 1, hasMore: collectList.length === pageSize, isLoading: false }); }, // 点击tab分类 async tabcategories(e) { const types = e.currentTarget.dataset.type; const tagId = types.sort === 1 ? null : types._id; this.setData({ categoriesindex: types.sort, types_ids: tagId, goods: [], pageNumber: 1, hasMore: true }, () => { this.getDatalist(tagId, false); // ✅ 这里也改成直接传 tagId }); }, navigateToDetail(e) { const index = e.currentTarget.dataset.index; const item = this.data.goods[index]; wx.navigateTo({ url: '/subpackages/productdetails/productdetails?data=' + encodeURIComponent(JSON.stringify(item)) }); } });