129 lines
8.4 KiB
Markdown
129 lines
8.4 KiB
Markdown
# Admin Next 双轨全量迁移修正计划
|
||
|
||
## Summary
|
||
|
||
`/admin-next/*` 继续作为新版影子路由开发,旧 AntD 控制台必须完整保留作为生产回退和行为对照。只有新版完成全功能 parity 并通过验收后,才能逐个切换旧路由;删除旧页面和移除 AntD 必须作为最后独立步骤,并等待明确确认。
|
||
|
||
## Hard Rules
|
||
|
||
- 未完成 parity checklist 前,不删除旧页面、不移除 AntD、不切旧入口。
|
||
- “旧版能删除”只表示新版能力达到替代标准,不表示立即删除旧版。
|
||
- 新版不能只做看板;旧版里可新增、编辑、删除、测试、触发、批量、轮询、WebSocket、权限控制、错误提示和确认弹窗的能力,都必须迁移。
|
||
- `/admin-next/*` 可以重做交互和视觉,但业务语义、API payload、权限和危险操作保护必须对齐旧版。
|
||
|
||
## Design Direction
|
||
|
||
- 风格采用“朴素工具化 + 轻微立体触感”:灰白/暗色低对比背景、清晰 1px 边框、轻微凸起/按下态、克制圆角、图标少量彩色。
|
||
- 禁止回到 soft-glass、hero、大发光、大渐变、大色块和装饰性卡片。
|
||
- 常规动作默认 icon-only + tooltip:刷新、重启、退出、复制、查看、编辑、删除、关闭、设置。
|
||
- 强意图动作保留实心文字按钮:保存、创建、确认、执行、测试连接。
|
||
- 页面统一 `16px` 外边距、`16px` 主区块间距、`12px` 面板 header/body 间距;表格标题和表体不能贴边。
|
||
- 所有页面遵守一屏工作台:`PageHeader` 之外只允许一个主内容区域吃满剩余高度;详情区、表格区和 Playground 消息区内部滚动,不能被父级裁掉。
|
||
- 页内 tabs 必须按旧版用户心智组织,而不是按后端接口名拆散;接口状态只能作为分区内部信息。
|
||
|
||
## Implementation Plan
|
||
|
||
1. 恢复旧版安全网:恢复旧 AntD 页面、旧 `AppLayout`、旧 helper、AntD 依赖和旧路由;保留 `/admin-next/*` 影子路由。
|
||
2. 建立新版基础层:整理 admin-next token、按钮、tooltip、theme switch、sidebar account、`EntityTable`、`FormDialog`、`ConfirmDialog`、`DetailPanel`、移动端表格/卡片切换。
|
||
3. 拆掉通用看板页:每个模块建立真实业务页面、API adapter、form/mutation、轮询或 WebSocket 逻辑,不再用万能 Resource table 聚合展示。
|
||
4. 按模块迁移:
|
||
- Dashboard:统计、WebSocket、健康检查、重启任务、任务日志、恢复探测。
|
||
- DataSources:内置源/自定义源/实时源、详情、stats、task-status、启停、触发、批量触发、清理数据。
|
||
- DataList:列表、summary、sources/types/countries、搜索、筛选、分页、详情、导出、分布。
|
||
- Collection Management:configs CRUD、builtin connect/test、target schemas、mappings、run/stop、stream status。
|
||
- Settings:system、notifications、security、SMTP、TV、integrations、collectors、测试连接、凭证指南。
|
||
- AI:provider、web search、OCR、prompt registry、playground 完整会话操作。
|
||
- Earth Content:brand、upload、delete/reset、boundary config/build/status、TV/content。
|
||
- Logs:sources、level/date/search、刷新、详情、复制、tail/snapshot。
|
||
- BGP:overview、collectors、incidents、anomalies、events、AI briefs。
|
||
- Alerts:系统告警、BGP 告警、态势告警,包含 ack/resolve/stats/brief。
|
||
- Users:list/create/edit/delete、role、Gatekeeper groups、权限显示。
|
||
- Auth:登录、注册、验证邮箱、重发、找回、重置、logout。
|
||
5. 每完成一个模块,对照旧页面跑 checklist;只有全部模块通过后,才提出旧路由切换和旧版删除。
|
||
|
||
## Test Plan
|
||
|
||
- 恢复阶段:`cd frontend && /home/ray/.bun/bin/bun install && /home/ray/.bun/bin/bun run build`。
|
||
- 旧路由检查:`/admin`、`/datasources`、`/settings`、`/ai`、`/logs` 必须继续打开旧版。
|
||
- 新路由检查:`/admin-next/*` 必须继续打开新版。
|
||
- 每模块 parity:读写删、测试连接、触发、批量、轮询、WebSocket、权限、错误提示、确认弹窗、移动端和滚动。
|
||
- 视觉检查:light/dark/system、低高度窗口、125%/150% 缩放、按钮/状态/badge 等高、无双滚动条。
|
||
|
||
## Parity Checklist
|
||
|
||
### Dashboard
|
||
- [x] `/dashboard/stats` 数据展示与旧版一致。
|
||
- [x] WebSocket 连接状态、健康状态、自动刷新语义一致。
|
||
- [x] 重启任务创建、轮询、日志查看、失败提示和恢复探测一致。
|
||
|
||
### DataSources
|
||
- [x] 内置源、自定义源、实时源分区清晰,不混表。
|
||
- [x] 详情、stats、task-status、enable/disable、trigger、trigger-batch、trigger-all、delete-data 与旧版一致。
|
||
- [x] 实时源 start/stop/restart、连接状态、任务状态与旧版一致。
|
||
|
||
### DataList
|
||
- [x] 列表、summary、sources/types/countries、搜索、筛选、分页参数与旧版一致。
|
||
- [x] 详情 metadata、分布摘要、JSON/CSV 导出与旧版一致。
|
||
- [x] 表格固定列、横向滚动、移动端卡片模式可用。
|
||
|
||
### Collection Management
|
||
- [x] configs/all、configs CRUD、builtin connect/test、custom sample 与旧版一致。
|
||
- [x] target schemas、mappings preview/list/update/activate 与旧版一致;propose/create 已提供表单化入口。
|
||
- [x] run-mapped、stop-mapped、stream-status 与旧版一致。
|
||
|
||
### Settings
|
||
- [x] system、notifications、security、SMTP、TV、integrations、collectors 表单字段完整。
|
||
- [x] SMTP test、AI/Web/OCR secrets、connect tests、preset refresh 与旧版一致。
|
||
- [x] credential guides、cache 清理、危险操作确认一致。
|
||
|
||
### AI
|
||
- [x] Provider、Web Search、OCR、Prompt Registry 配置保存/重置完整。
|
||
- [x] Playground thread/session/messages/status/stop/resend/edit 完整。
|
||
- [x] provider refresh、connect test、secrets 读取、错误提示和 loading 状态完整。
|
||
- [x] 页内 tabs 按旧版心智恢复为模型供应商、工具调用、提示词、Playground。
|
||
|
||
### Earth Content
|
||
- [x] brand get/save/delete/reset/upload 完整。
|
||
- [x] boundary status/config/build/build-status 完整。
|
||
- [x] TV/content 配置与旧版 Settings 入口一致。
|
||
|
||
### Logs
|
||
- [x] sources、level/date/search、limit、刷新参数与旧版一致。
|
||
- [x] 日志正文、详情展开、复制、空态和错误态完整。
|
||
|
||
### BGP
|
||
- [x] overview、collectors、incidents、anomalies、events 的 summary/list/detail 完整。
|
||
- [x] AI brief list/detail/generate 完整。
|
||
- [x] collector collect-location、刷新、结果详情和错误提示完整。
|
||
|
||
### Alerts
|
||
- [x] 系统告警 list/detail/ack/resolve/stats/AI brief 完整。
|
||
- [x] BGP incidents/anomalies/brief 完整。
|
||
- [x] 态势告警 stats/list/brief 完整。
|
||
|
||
### Users
|
||
- [x] list/create/edit/delete、role、Gatekeeper groups 完整。
|
||
- [x] 权限显示、普通用户限制和 super admin 行为一致。
|
||
|
||
### Auth
|
||
- [x] login/register/verify/resend cooldown/forgot/reset/logout/me 完整。
|
||
- [x] 未验证邮箱跳转、错误提示、成功跳转和 token store 行为一致。
|
||
|
||
### Hierarchy Repair
|
||
- [x] AI 不再按接口/状态拍平成一张表;模型供应商恢复为 provider -> model/API/key 层级。
|
||
- [x] 工具调用恢复为 Web Search/OCR -> provider/API/高级参数层级。
|
||
- [x] 提示词恢复为 group -> prompt 入口层级,保存/重置只作用于当前入口。
|
||
- [x] Settings/Earth 配置型页面使用父级列表 + 右侧正式表单,长内容在一屏内内部滚动。
|
||
|
||
### Interaction Polish
|
||
- [x] 不会产生歧义的刷新、复制、详情、批量、状态、清理等动作优先改为 icon-only + tooltip/title。
|
||
- [x] 强意图动作保留实心文字按钮,例如保存、创建、触发全部、生成简报、确认执行。
|
||
- [x] 按钮字号、高度、图标容器和 hover 触感统一,接近侧栏深色模式滑块的轻微立体风格。
|
||
- [x] 表格与详情之间增加可拖动竖向 resize handle,低高度和窄屏下不制造额外滚动条。
|
||
|
||
### Page Information Architecture
|
||
- [x] 页内 tab 默认使用中文;BGP、AI、OCR、Web Search、Playground、Schema 等专有名词按可识别性保留。
|
||
- [x] 信息观测类页面使用列表 + 详情,例如 BGP、Alerts、Logs、DataSources。
|
||
- [x] 配置管理类页面使用分层结构,例如 AI、Settings、Earth Content、Collection Management。
|
||
- [x] 采集管理已从纯表格看板改为分层管理:采集器、映射模板、目标 Schema、运行状态先选父级,再编辑或执行动作。
|