fix: 修复首页内容因 icon 字段校验被全部过滤的回归

回顾:上轮健壮性修改中,loadHome 对 homelinks.json 的解析新增了
'if (!url || !icon) continue' 的硬性校验。但远程 homelinks.json 实际
仅提供 name/more/imgUrl/type/url,并不含 icon 字段(首页图片统一由
imgUrl 提供),导致所有链接因缺少 icon 被跳过,首页区域1 变空白。

修正:
- App.vue loadHome:移除对 icon 的强制校验,仅校验 url 必需;icon 缺省为空串以兼容类型
- typedefinition HomeLink.icon:由必需 string 改为可选,反映真实数据源契约

vue-tsc --noEmit 通过,已重新打包验证(5.2.1.2-test)。
This commit is contained in:
xiyidaiwa
2026-08-03 12:05:57 +08:00
parent 4f772ba7eb
commit 1569dad866
2 changed files with 5 additions and 3 deletions
+3 -2
View File
@@ -1374,10 +1374,11 @@ const loadHome = async () => {
const name = (l.Name as string) || (l.name as string) || "";
if (!name) continue; // 跳过空名称,避免空字符串污染 seenNames 与去重逻辑
if (seenNames.has(name)) continue; // 已由更高优先级来源(spark)占据
// 校验 HomeLink 必需字段,缺失则跳过,避免推入不完整对象导致运行时错误
// 校验 url 必需;远程 homelinks.json 不含 icon 字段(图片由 imgUrl 提供),
// 故 icon 不作为硬性校验,缺省为空串以兼容 HomeLink 类型。
const url = (l.Url as string) || (l.url as string) || "";
if (!url) continue;
const icon = (l.Icon as string) || (l.icon as string) || "";
if (!url || !icon) continue;
seenNames.add(name);
homeLinks.value.push({
...l,