Files
fquiz/tmp/req_313321162778084067_detail.json
T

22 lines
8.7 KiB
JSON
Raw Normal View History

2026-04-24 15:50:52 +08:00
{
"id": "313321162778084067",
"createDate": "2026-04-24T00:59:36.202455",
"createUser": "openclaw",
"createUserName": "小龙虾",
"updateDate": "2026-04-24T09:14:38.969026",
"updateUser": "openclaw",
"updateUserName": "小龙虾",
"groupName": null,
"groupLabel": null,
"tagNames": null,
"tagLabels": null,
"title": "fquiz页面Ant Design组件改造:/admin/models",
"projectName": "fquiz",
"gitUrl": null,
"branch": "main",
"descr": "# 需求分析(313321162778084067\n\n## 1. 目标\n- 将 `/admin/models` 页面完成 **Ant Design 组件层改造与一致性收敛**,统一视觉与交互规范。\n- 在不改变后端 API 协议与核心业务语义的前提下,提升页面可维护性、可用性和管理效率。\n- 保持模型管理主链路(查询、新建/编辑、状态流转、路由规则、健康检查、测试)行为一致。\n\n## 2. 现状(基于真实代码)\n- 主页面代码集中在:`web/src/app/admin/models/page.tsx`(超大单文件,承载列表、汇总卡片、模型弹窗、路由弹窗、冒烟测试弹窗、对话测试弹窗、全部 mutation 与提示逻辑)。\n- UI 组件使用:`@/components/ui-antd`AntD 二次封装),但页面仍混用大量 Tailwind/自定义类,存在“AntD + 自定义样式并存”的状态。\n- 该页面被多个后台路由复用:\n - `web/src/app/admin/orchestration/page.tsx`\n - `web/src/app/admin/mcp-server/page.tsx`\n - `web/src/app/admin/agent/page.tsx`\n - `web/src/app/admin/api-tester/page.tsx`\n 均 `export { default } from \"@/app/admin/models/page\";`,说明改造会同时影响多个入口页面体验。\n- 可见 UI/交互问题(代码级证据):\n 1) 消息区样式重复拼接:`pre` 上存在重复 class(如 `overflow-auto ...` 重复两套)——`page.tsx` 约 657、660、1375 行附近。\n 2) 表格 body 使用 `className=\"divide-y divide-y\"`(重复 token)——`page.tsx` 多处(模型表、路由表、测试记录表)。\n 3) 关键危险/敏感操作仍使用原生 `window.confirm/window.prompt`(删除、轮换密钥),交互不统一且可用性弱——`page.tsx` 约 772、822、923 行附近。\n 4) 列表空态处理不足:模型列表、路由列表无显式 Empty 引导(仅 map 渲染);仅测试记录有“暂无测试记录”。\n 5) 多弹窗内表单虽可用,但错误反馈聚合在顶部字符串,不够字段级、就近化。\n\n## 3. 范围(In Scope\n1. `/admin/models` 页面及其复用入口的 **前端组件层改造**(布局、表单、表格、弹窗、按钮、反馈、空态/加载态)。\n2. 将当前页面的主要展示/操作区域逐步收敛为 Ant Design 语义组件能力(如 Alert/Result/Empty/Spin/Modal/Popconfirm/Form/Table 等)。\n3. 交互一致性与可访问性增强(禁用态、确认态、错误提示位置、加载反馈、键盘可操作性)。\n4. 样式体系整理:减少重复 class 与无效 class,统一组件 token 风格。\n\n## 4. 非范围(Out of Scope)\n- 后端接口协议、字段语义、权限模型(`model.read/model.manage`)不调整。\n- 模型路由、健康检查、测试执行的业务规则不改。\n- 不新增全新业务模块(仅做页面组件改造与体验优化)。\n- 不在本需求中拆分/重构后端服务或数据库结构。\n\n## 5. UI/UX 专项评估(按 P0/P1/P2\n\n### 执行摘要\n- 页面功能完整,但单页承载过重,导致视觉层级与反馈模式不统一。\n- 危险/敏感操作依赖原生浏览器对话框,缺乏品牌一致性与审计友好体验。\n- 列表/状态/错误反馈缺乏“结构化空态+就近错误”设计,增加学习成本。\n- 多路由复用同一页面,任何 UI 改动均是“高影响面”,需采用低风险渐进式改造。\n- 建议以“组件替换优先于业务变更”为主线,先统一交互基线,再做结构拆分。\n\n### P0(必须优先)\n1. **危险操作确认机制统一(删除/轮换密钥)**\n - 现状:`window.confirm/window.prompt`。\n - 影响:体验割裂、移动端/可访问性较差、缺乏一致视觉语义。\n - 改法:替换为 AntD `Popconfirm` + `Modal`(含明确文案、二次确认、loading 态、错误态)。\n - 建议位置:`web/src/app/admin/models/page.tsx` 操作列按钮区域。\n\n2. **错误与成功反馈统一组件化**\n - 现状:顶部 `pre` + 重复 class,信息层级弱。\n - 影响:可读性与可扫描性差,
"resultMsg": "批量从待评审改为待处理(程凯指令)",
"progressPercent": 0,
"status": "OPEN",
"priority": "MEDIUM"
}