From 4a6db70941155d2f63c84c55b7efdaa08489e0c4 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Wed, 8 Jul 2026 16:20:56 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20inferStatus=20=E8=80=83=E8=99=91=20statu?= =?UTF-8?q?s=3Dready=EF=BC=8C=E4=B8=8D=E5=86=8D=E5=9B=A0=20classification?= =?UTF-8?q?=20=E6=9C=AA=E6=89=A7=E8=A1=8C=E8=80=8C=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E5=A4=84=E7=90=86=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 当素材 status 为 ready 时,跳过 classification_status 检查, 直接根据 quality_score 显示状态(待诊断/合格/待优化/不合格)。 修复了 P0-4 验收中发现的:API 返回 ready 但 UI 显示处理中的 bug。 --- apps/web/src/pages/assets/AssetLibrary.tsx | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/apps/web/src/pages/assets/AssetLibrary.tsx b/apps/web/src/pages/assets/AssetLibrary.tsx index 84b681aef..95ffc2654 100644 --- a/apps/web/src/pages/assets/AssetLibrary.tsx +++ b/apps/web/src/pages/assets/AssetLibrary.tsx @@ -69,11 +69,20 @@ const inferKind = (mimeType: string): AssetKind => { return "image"; }; -/** 根据 quality_score 推断前端状态 */ +/** 根据 quality_score / classification_status / asset status 推断前端状态 */ const inferStatus = ( score?: number, classificationStatus?: string, + assetStatus?: string, ): { status: StatusType; label: string } => { + // 素材已就绪(status=ready)时,不应因 classification 未执行而显示"处理中" + if (assetStatus === "ready") { + if (score == null) return { status: "info", label: "待诊断" }; + if (score >= 70) return { status: "ok", label: "合格" }; + if (score >= 40) return { status: "warn", label: "待优化" }; + return { status: "bad", label: "不合格" }; + } + // 素材未就绪:classification 正在处理中 if ( classificationStatus === "processing" || classificationStatus === "pending" @@ -106,6 +115,7 @@ const mapAsset = (item: ApiAssetItem): AssetItem => { const { status, label } = inferStatus( item.quality_score ?? undefined, item.classification_status ?? undefined, + item.status ?? undefined, ); const metadata = item.metadata || {}; const kind = inferKind(item.mime_type || "");