mirror of
https://gitee.com/spark-store-project/spark-store
synced 2026-09-20 21:50:11 +08:00
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:
+3
-2
@@ -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,
|
||||
|
||||
@@ -231,7 +231,8 @@ export interface CategoryInfo {
|
||||
export interface HomeLink {
|
||||
name: string;
|
||||
url: string;
|
||||
icon: string;
|
||||
// 数据源(homelinks.json)并不提供 icon 字段,图片统一由 imgUrl 提供,故设为可选
|
||||
icon?: string;
|
||||
more?: string;
|
||||
imgUrl?: string;
|
||||
type?: string;
|
||||
|
||||
Reference in New Issue
Block a user