AgentEvalTool/.scratch/ui-consistency/spec.md
2026-08-06 02:01:36 +08:00

65 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# UI 一致性重构 — Specgrill 共识沉淀)
日期2026-08-05 状态已完结2026-08-06 归档)
## 背景
管理后台 9 个业务页面约 4000 行交互模式不一致Runs/Reports 不用 PageWrapper、表单容器混用 Drawer/Modal、Files 删除无确认、空态/加载态/反馈方式各页不同。智能评估 v1.0 交付后,其页面模式成为事实上的最新标准。
## 决策清单grill 结论)
| # | 决策 | 结论 |
|---|------|------|
| 1 | 重构目标 | 交互层为主、视觉层顺带、信息架构不动 |
| 2 | 一致性基准 | 以智能评估页为标准,其他页面向它对齐 |
| 3 | 实施策略 | 先沉淀共享组件,再逐页迁移;每页一票一提交一验证 |
| 4 | 范围 | 9 个业务页面;排除 Login、OpenClawAI 助手嵌入应用) |
| 5 | 行为边界 | 交互对齐优先:不一致处按标准修正,不增删业务功能、不动 API |
| 6 | 迁移顺序 | IntelligentEvals → Targets → Files → ModelConfigs → Scenarios → Runs → Reports → Campaigns |
| 7 | 交互标准 | 见下表 |
| 8 | 验收 | 每票 tsc + t480 走查 + keep-alive 不回归;前 3 票后组件稳定检查点;基准页重走 P0 全流程;最终全量走查 |
## 交互标准(唯一基准)
| 模式 | 标准 |
|---|---|
| 页面骨架 | `PageWrapper inline fullHeight`,标题 + 描述 + extra 区(刷新按钮 + 主操作按钮) |
| 列表 | Table + `rowKey="id"`;空态用 `Empty`(带文案);加载用 Table 自带 loading |
| 分页 | 超过 20 行才分页,否则 `pagination={false}` |
| 表单 | Drawer 宽 640、`layout="vertical"`、底部 footer取消/主按钮)、`destroyOnClose`、提交前本地校验 |
| 详情 | 页内视图切换或右侧 Drawer 弹出(不加新路由,列表常驻);顶栏左「标题 + 状态 Tag」、右动作按钮Drawer 内容自滚动body padding 0 + 根容器 16px 内边距) |
| 危险操作 | 统一 `Popconfirm`(含删除、取消等不可逆动作),禁用 `window.confirm` 和无确认删除 |
| 反馈 | 错误统一由 axios 拦截器弹 `message.error`;成功由动作函数显式 `message.success` |
| 轮询 | 活跃态外部会变化的状态5 秒静默轮询 |
## 实施风险与护栏
1. **Runs/Reports 的「导航内容分离」**是绕过 AntD CSS-in-JS 冲突的 hack见 AGENTS.md 陷阱 3迁移时必须保留其行为只统一外壳。
2. **Campaigns 的独特交互**(时间线、探索区、分析区)不做模式化改造,只统一页面外壳与基础模式。
3. **keep-alive 架构不动**:所有页面仍按顶级路径挂载,详情仍是页面内部状态。
4. **只抽取 ≥2 个页面会用的共享件**,防止过度抽象。第一版只抽 `FormDrawer`(表单 Drawer 标准件)与 `usePolling`(活跃态轮询 hook
5. 每票据:一个页面、一次提交、一次 t480 部署走查。
## 票据规划
`.scratch/ui-consistency/issues/`。依赖链01 → 02/03检查点→ 0408 → 09。
## 归档收口2026-08-06
**交付**9 张票据全部完成并验收勾选issues/0109t480 全页走查通过golden path + keep-alive 切 tab
**实施提交**
- `d4c254e` 票据 01FormDrawer/usePolling 基准件 + IntelligentEvals dogfood
- `15d0d12` / `2e78c4b` / `f131657` / `1588972` / `b9011aa` / `5077f08` / `11b1590`:票据 0208 逐页迁移
- `0832445`:票据 09交互标准写入 AGENTS.md
- `9f25728` / `1fbd2bc`:标准补充与验收归档
**基准后的智能评估演进**(反哺标准,已同步 ADR-0005 与 AGENTS.md
- `935f0a1` 列表打开方式对齐操作列按钮
- `1d2c372` 详情/报告改右侧 Drawer列表常驻
- `22cc437` 抽屉顶栏:返回按钮移除、动作右对齐
- `01f451c` 详情两列布局 + 报告统计行与维度得分图
- `804880f` 抽屉顶部内边距修复
**验证**pytest 674 全绿、`tsc --noEmit` 通过;全部变更已部署 t480。