From 43610dcf992233c5e71bab37b73f2764a34833d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=88=90?= Date: Tue, 10 Feb 2026 11:46:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=A6=96=E9=A1=B5=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=B0=91=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- project.config.json | 2 +- src/container/listContainer/index.tsx | 43 +++++++++++++-------------- 2 files changed, 21 insertions(+), 24 deletions(-) diff --git a/project.config.json b/project.config.json index 15d90c1..839e034 100644 --- a/project.config.json +++ b/project.config.json @@ -2,7 +2,7 @@ "miniprogramRoot": "dist/", "projectname": "playBallTogether", "description": "playBallTogether", - "appid": "wx815b533167eb7b53", + "appid": "wx915ecf6c01bea4ec", "setting": { "urlCheck": true, "es6": true, diff --git a/src/container/listContainer/index.tsx b/src/container/listContainer/index.tsx index 7e5861e..e8f58e0 100644 --- a/src/container/listContainer/index.tsx +++ b/src/container/listContainer/index.tsx @@ -132,40 +132,37 @@ const ListContainer = (props) => { ); }; - // 插入 banner 卡片 + // showNumber 为 0 表示尚未同步,不参与截断;截断时只限制「数据条数」,插卡不占数据条数 + const shouldLimitByShowNumber = showNumber > 0; + + // 插入 banner 卡片(在 bannerListIndex 位置插入,不替换数据) function insertBannerCard(list) { if (!bannerListImage) return list; if (!list || !Array.isArray(list)) return list ?? []; + const idx = Number(bannerListIndex); return [ - ...list.slice(0, Number(bannerListIndex)), - { type: "banner", banner_image_url: bannerListImage, banner_detail_url: bannerDetailImage }, - ...list.slice(Number(bannerListIndex)) + ...list.slice(0, idx), + { type: "banner", banner_image_url: bannerListImage, banner_detail_url: bannerDetailImage }, + ...list.slice(idx), ]; } - // 对于没有ntrp等级的用户每个月展示一次, 插在第二个位置后面 - // insertBannerCard 需在最后统一执行,否则前面分支直接 return 时 banner 不会被插入 + // 对于没有 ntrp 等级的用户每个月展示一次,插在第 2 条数据后面;插卡是插入不替换,保留全部 showNumber 条数据 function insertEvaluateCard(list) { - let result: any[]; + if (!list || !Array.isArray(list)) return insertBannerCard(list ?? []); - if (!evaluateFlag) { - result = showNumber !== undefined ? list.slice(0, showNumber) : list; - } else if (!list || list.length === 0) { - result = list; - } else if (hasTestInLastMonth) { - result = showNumber !== undefined ? list.slice(0, showNumber) : list; - } else if (list.length <= 2) { - result = [...list, { type: "evaluateCard" }]; - } else { - const [item1, item2, ...rest] = list; - result = [ - item1, - item2, - { type: "evaluateCard" }, - ...(showNumber !== undefined ? rest.slice(0, showNumber - 3) : rest), - ]; + const limitedList = shouldLimitByShowNumber ? list.slice(0, showNumber) : list; + + if (!evaluateFlag || hasTestInLastMonth) { + return insertBannerCard(limitedList); } + if (limitedList.length <= 2) { + return insertBannerCard([...limitedList, { type: "evaluateCard" }]); + } + + const [item1, item2, ...rest] = limitedList; + const result = [item1, item2, { type: "evaluateCard" }, ...rest]; return insertBannerCard(result); }