修复首页数据少的问题

This commit is contained in:
张成
2026-02-10 11:46:39 +08:00
parent 05aa820466
commit 43610dcf99
2 changed files with 21 additions and 24 deletions

View File

@@ -2,7 +2,7 @@
"miniprogramRoot": "dist/", "miniprogramRoot": "dist/",
"projectname": "playBallTogether", "projectname": "playBallTogether",
"description": "playBallTogether", "description": "playBallTogether",
"appid": "wx815b533167eb7b53", "appid": "wx915ecf6c01bea4ec",
"setting": { "setting": {
"urlCheck": true, "urlCheck": true,
"es6": true, "es6": true,

View File

@@ -132,40 +132,37 @@ const ListContainer = (props) => {
); );
}; };
// 插入 banner 卡片 // showNumber 为 0 表示尚未同步,不参与截断;截断时只限制「数据条数」,插卡不占数据条数
const shouldLimitByShowNumber = showNumber > 0;
// 插入 banner 卡片(在 bannerListIndex 位置插入,不替换数据)
function insertBannerCard(list) { function insertBannerCard(list) {
if (!bannerListImage) return list; if (!bannerListImage) return list;
if (!list || !Array.isArray(list)) return list ?? []; if (!list || !Array.isArray(list)) return list ?? [];
const idx = Number(bannerListIndex);
return [ return [
...list.slice(0, Number(bannerListIndex)), ...list.slice(0, idx),
{ type: "banner", banner_image_url: bannerListImage, banner_detail_url: bannerDetailImage }, { type: "banner", banner_image_url: bannerListImage, banner_detail_url: bannerDetailImage },
...list.slice(Number(bannerListIndex)) ...list.slice(idx),
]; ];
} }
// 对于没有ntrp等级的用户每个月展示一次, 插在第二个位置后面 // 对于没有 ntrp 等级的用户每个月展示一次插在第 2 条数据后面;插卡是插入不替换,保留全部 showNumber 条数据
// insertBannerCard 需在最后统一执行,否则前面分支直接 return 时 banner 不会被插入
function insertEvaluateCard(list) { function insertEvaluateCard(list) {
let result: any[]; if (!list || !Array.isArray(list)) return insertBannerCard(list ?? []);
if (!evaluateFlag) { const limitedList = shouldLimitByShowNumber ? list.slice(0, showNumber) : list;
result = showNumber !== undefined ? list.slice(0, showNumber) : list;
} else if (!list || list.length === 0) { if (!evaluateFlag || hasTestInLastMonth) {
result = list; return insertBannerCard(limitedList);
} 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),
];
} }
if (limitedList.length <= 2) {
return insertBannerCard([...limitedList, { type: "evaluateCard" }]);
}
const [item1, item2, ...rest] = limitedList;
const result = [item1, item2, { type: "evaluateCard" }, ...rest];
return insertBannerCard(result); return insertBannerCard(result);
} }