From 56aaaa12fa7140f25770f57959a34fcc292bdbf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E9=A3=9E=E6=B4=8B?= <15778543+xufeiyang6017@user.noreply.gitee.com> Date: Mon, 29 Dec 2025 14:41:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=88=86=E7=B1=BB=E9=A2=84?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E9=97=AE=E9=A2=98=EF=BC=8C=E9=A6=96=E6=AC=A1?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E5=85=A8=E9=83=A8=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/index/index.js | 58 ++++++++++++++++++++++++++++++-------------- 1 file changed, 40 insertions(+), 18 deletions(-) diff --git a/pages/index/index.js b/pages/index/index.js index 9715702..9635d5d 100644 --- a/pages/index/index.js +++ b/pages/index/index.js @@ -532,27 +532,46 @@ Page({ const categories = this.data.categories; const selectedCategory = this.data.selectedCategory; - categories.forEach(cat => { - if (cat === '全部') { - categorizedGoods[cat] = updatedGoods; - } else if (cat === selectedCategory) { - categorizedGoods[cat] = updatedGoods.filter(item => item.isAd || !item.category || item.category === cat); - } else { - categorizedGoods[cat] = []; - } - }); + // 如果是首次加载全部数据,需要把返回的所有数据按实际分类存储 + if (selectedCategory === '全部' && !isLoadMore) { + categories.forEach(cat => { + if (cat === '全部') { + categorizedGoods[cat] = updatedGoods; + } else { + categorizedGoods[cat] = updatedGoods.filter(item => item.isAd || item.category === cat); + } + }); + } else { + // 只更新当前选中的分类 + categories.forEach(cat => { + if (cat === '全部') { + categorizedGoods[cat] = updatedGoods; + } else if (cat === selectedCategory) { + categorizedGoods[cat] = updatedGoods.filter(item => item.isAd || !item.category || item.category === cat); + } + }); + } // 应用地区筛选后的分类数据 const filteredByRegion = this.applyRegionFilter(updatedGoods); - categories.forEach(cat => { - if (cat !== '全部') { - if (cat === selectedCategory) { - categorizedGoods[cat + '_filtered'] = filteredByRegion.filter(item => item.isAd || !item.category || item.category === cat); - } else { - categorizedGoods[cat + '_filtered'] = []; + + if (selectedCategory === '全部' && !isLoadMore) { + categories.forEach(cat => { + if (cat !== '全部') { + categorizedGoods[cat + '_filtered'] = filteredByRegion.filter(item => item.isAd || item.category === cat); } - } - }); + }); + } else { + categories.forEach(cat => { + if (cat !== '全部') { + if (cat === selectedCategory) { + categorizedGoods[cat + '_filtered'] = filteredByRegion.filter(item => item.isAd || !item.category || item.category === cat); + } else { + categorizedGoods[cat + '_filtered'] = []; + } + } + }); + } // 根据当前选中的分类和地区筛选获取商品 let filteredGoods; @@ -719,13 +738,16 @@ Page({ const timestamp = new Date().getTime(); const currentPage = isLoadMore ? this.data.page : 1 + // 首次加载时获取全部数据,在本地进行分类 + const shouldLoadAll = !isLoadMore && this.data.selectedCategory === '全部'; + API.getProductList('published', { timestamp: timestamp, viewMode: 'shopping', page: currentPage, pageSize: this.data.pageSize, keyword: this.data.searchKeyword, - category: this.data.selectedCategory === '全部' ? '' : this.data.selectedCategory + category: shouldLoadAll ? '' : this.data.selectedCategory }) .then(res => { wx.hideLoading();