文案(首页):分节标题改「进行中 / 需要你处理」,下载器卡片说明按实际口径重写

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 01:49:33 +08:00
1 parent 542f107566
commit 0338037a96
2 files changed
+14 -14

No files matched your search

@@ -171,7 +171,7 @@ function RuntimeOverview({ downloaders }: { downloaders?: Dashboard["sources"]["
</p>
</>
) : (
<EmptyState plain icon={Gauge} title="暂无运行状态" className="py-6" />
<EmptyState plain icon={Gauge} title="没有运行状态数据" className="py-6" />
)}
</OverviewCard>
);
@@ -192,18 +192,18 @@ function DownloaderOverview({ downloaders }: { downloaders?: Dashboard["sources"
downloaders ??
instances.map((d) => ({ id: d.instanceId, name: d.name, enabled: true, health: "unknown", lastSeenAt: null }));
return (
<OverviewCard title="下载器情况" icon={Download} to={consolePath("downloads")}>
<OverviewCard title="下载器" icon={Download} to={consolePath("downloads")}>
{q.isPending ? (
<LoadingState rows={2} />
) : q.isError ? (
<ErrorState plain title="下载器状态加载失败" onRetry={() => q.refetch()} className="py-6" />
) : !sources.length ? (
<EmptyState plain icon={Download} title={downloaders ? "尚未配置下载器" : "暂无启用下载器"} className="py-6" />
<EmptyState plain icon={Download} title={downloaders ? "还没有下载器" : "没有启用的下载器"} className="py-6" />
) : (
<>
<p className="mb-3 text-title-sm font-semibold tabular-nums">
{board?.counts.active}
<span className="ml-1.5 text-caption font-normal text-muted-foreground">项进行中</span>
<span className="ml-1.5 text-caption font-normal text-muted-foreground">个下载进行中</span>
</p>
<ul className="divide-y divide-border/60">
{sources.map((d) => {
@@ -245,10 +245,10 @@ function DownloaderOverview({ downloaders }: { downloaders?: Dashboard["sources"
})}
</ul>
<p className="mt-3 text-meta text-muted-foreground">
进行中含等待计划、暂停和异常任务 · 速度含下载器全部任务
进行中包括还没提交、已暂停和出错的下载 · 速度是下载器里全部任务的合计
</p>
{board?.liveAt ? (
<p className="mt-1 text-meta text-muted-foreground">速度采样于 {formatRelative(board.liveAt)}</p>
<p className="mt-1 text-meta text-muted-foreground">速度更新于 {formatRelative(board.liveAt)}</p>
) : null}
</>
)}
+8 -8
View File
@@ -121,7 +121,7 @@ function StatusLine({ d }: { d: Dashboard }) {
await update.mutateAsync({ automation: { enabled } });
toast.success(enabled ? "自动化已恢复" : "自动化已暂停");
} catch (err) {
toast.error(errorMessage(err, "切换失败"));
toast.error(errorMessage(err, enabled ? "恢复失败" : "暂停失败"));
throw err;
}
};
@@ -217,11 +217,11 @@ function Busy({ w }: { w: Dashboard["currentWork"] }) {
]);
const empty = !downloads.length && !agents.length && !runs.length;
return (
<Section title="在忙什么" icon={Activity} to="/console/logs?type=task&level=running">
<Section title="进行中" icon={Activity} to="/console/logs?type=task&level=running">
{running.isPending && !downloads.length ? (
<LoadingState rows={3} />
) : empty ? (
<EmptyState plain icon={CircleCheck} title="现在没有在跑的任务" className="py-6" />
<EmptyState plain icon={CircleCheck} title="没有进行中的任务" className="py-6" />
) : (
<ul className="divide-y divide-border/60">
{downloads.map((t) => (
@@ -263,11 +263,11 @@ function NeedsMe() {
const q = useAttention();
const rows = attentionRows(q.data);
return (
<Section title="要我处理" icon={AlertTriangle}>
<Section title="需要你处理" icon={AlertTriangle}>
{q.isPending ? (
<LoadingState rows={2} />
) : rows.length === 0 ? (
<EmptyState plain icon={CircleCheck} title="没有要你处理的事" className="py-6" />
<EmptyState plain icon={CircleCheck} title="没有需要你处理的事" className="py-6" />
) : (
<AttentionList rows={rows} />
)}
@@ -282,7 +282,7 @@ function RecentImports({ d }: { d: Dashboard }) {
return (
<Section title="最近整理" icon={LibraryIcon} to={consolePath("organize")}>
{rows.length === 0 ? (
<EmptyState plain icon={LibraryIcon} title="最近没有新整理的作品" className="py-6" />
<EmptyState plain icon={LibraryIcon} title="最近没有整理完成的作品" className="py-6" />
) : (
<ul className="divide-y divide-border/60">
{rows.map((r) => (
@@ -294,7 +294,7 @@ function RecentImports({ d }: { d: Dashboard }) {
<span className="block truncate">{r.title ?? r.targetPath?.split("/").pop() ?? "未关联作品"}</span>
{r.status === "partial" ? (
<span className="block text-meta text-warning">
{r.counts.succeeded}/{r.counts.total} 个文件已整理
已整理 {r.counts.succeeded}/{r.counts.total} 个文件
</span>
) : null}
</Link>
@@ -303,7 +303,7 @@ function RecentImports({ d }: { d: Dashboard }) {
))}
</ul>
)}
{today ? <p className="mt-auto pt-3 text-meta text-muted-foreground">今天整理 {today} 个文件</p> : null}
{today ? <p className="mt-auto pt-3 text-meta text-muted-foreground">今天已整理 {today} 个文件</p> : null}
</Section>
);
}