feat(web): site center page, add-site wizard, credentials, health and user-data chart (FE-2)

- 资源 → 站点:卡片 / 列表切换(URL ?view= + localStorage 记住),筛选全部 / 已启用 / 需处理,
  按分享率 / 上传 / 上次登录排序;卡片显示账号状态、凭证类型、上次登录、上传 / 下载 / 分享率、
  等级 / VIP、做种、健康检测结果与时间、快照、限流
- 操作:检测健康、刷新登录(wait:true 同步结果)、更新凭证、编辑(限流 / 快照 / 代理)、启停、
  删除(确认框列出影响)
- 添加站点向导:按适配器分组选 23 个定义(未实测标注)→ 名称 / 域名覆盖 / 凭证三选一
  (馒头默认 API Key)→ 保存并测试(刷新登录 + 健康检测);验证码 / 二次验证提示改用 Cookie
  并链接待处理
- 站点详情:概览(用户数据磁贴 + 30 天上传 / 下载与分享率折线,recharts,无彩)/ 资源 /
  快照与 Feed / 账号(凭证管理、Passkey、登录历史)
- 设置"站点与账号"改为"站点默认"(限流、快照周期、UA、代理、做种页数)
- 侧栏改名"站点";smoke 补站点路由;依赖新增 recharts

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
rootandClaude Opus 5.5 committed 2026-09-28 16:08:29 +08:00
1 parent 81bf010e3e
commit f8362a3f4c
21 files changed
+3083 -1126

No files matched your search

+1 -1
View File
@@ -38,7 +38,7 @@ describe("控制台导航", () => {
expect(findNavItem("/console/downloads/plans")?.label).toBe("下载计划");
expect(findNavItem("/console/downloads/abc")?.label).toBe("下载队列");
expect(findNavItem("/console/tasks/abc")?.label).toBe("业务任务");
expect(findNavItem("/console/sites/abc")?.label).toBe("站点工作台");
expect(findNavItem("/console/sites/abc")?.label).toBe("站点");
expect(findNavItem("/nope")).toBeUndefined();
});
+2 -2
View File
@@ -68,9 +68,9 @@ export const NAV_GROUPS: NavGroup[] = [
items: [
{
to: "/console/sites",
label: "站点工作台",
label: "站点",
icon: Globe,
description: "站点、站点账号、快照与 Feed",
description: "站点、凭证、账号数据与健康;资源、快照与 Feed",
},
{
to: "/console/sources",