文案(首页):分节标题改「进行中 / 需要你处理」,下载器卡片说明按实际口径重写
Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
This commit is contained in:
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}
|
||||
</>
|
||||
)}
|
||||
|
||||
@@ -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>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user