copy(web): api 标签与整理状态统一

整理记录状态改为排队中 / 整理中 / 已整理 / 部分整理 / 整理失败(列表摘要、组汇总、队列面板同口径);
下载计划「等你批准」「准备提交」;资源评估「可下载」「信息不全」「已跳过」;任务状态带「中」;
识别等待提示改匹配「TMDB 结果在后台查询」。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
This commit is contained in:
rootandClaude Opus 5.5 committed 2026-10-07 02:10:19 +08:00
1 parent 148b12f279
commit 592f40ccf8
23 files changed
+58 -59

No files matched your search

+1 -1
View File
@@ -105,7 +105,7 @@ export default function FilesTrashPage() {
.mutateAsync({ idempotencyKey: newIdempotencyKey(), ids })
.then((r) => {
setPicked(new Set());
toast.success(`已清除 ${r.purged.length} 项${r.failed.length ? `,${r.failed.length} 项失败` : ""}`);
toast.success(`已清除 ${r.purged.length} 项${r.failed.length ? `,${r.failed.length} 项失败` : ""}`);
})
.catch((e) => {
toast.error(filesErrorText(e, "清除失败"));
+5 -5
View File
@@ -100,7 +100,7 @@ const when = (r: Rec) => r.finishedAt ?? r.startedAt ?? r.createdAt;
/** 状态:成功不加徽章,其余徽章 + 一句原因;需要处理的再给行内动作 */
function StatusCell({ r, onReorganize }: { r: Rec; onReorganize?: () => void }) {
const progress = recordFileProgress(r);
if (r.status === "succeeded" && !r.reason && !r.attention) return <span className="text-muted-foreground">成功</span>;
if (r.status === "succeeded" && !r.reason && !r.attention) return <span className="text-muted-foreground">已整理</span>;
const line = attentionLine(r) ?? reasonLine(r.reason);
return (
<div className="flex flex-col items-start gap-0.5">
@@ -314,10 +314,10 @@ function StatsLine({
}) {
if (!s || (s.total === 0 && !s.attention)) return null;
const parts: { key: OrganizationStatus | "running"; label: string; n: number; tone?: string }[] = [
{ key: "succeeded", label: "成功", n: s.succeeded },
{ key: "failed", label: "失败", n: s.failed, tone: "text-destructive" },
{ key: "partial", label: "部分成功", n: s.partial, tone: "text-warning" },
{ key: "running", label: "进行中", n: s.running },
{ key: "succeeded", label: "已整理", n: s.succeeded },
{ key: "failed", label: "整理失败", n: s.failed, tone: "text-destructive" },
{ key: "partial", label: "部分整理", n: s.partial, tone: "text-warning" },
{ key: "running", label: "整理中", n: s.running },
{ key: "cancelled", label: "已取消", n: s.cancelled },
];
return (