docs: update dev-log - AnsibleManager 拆分

This commit is contained in:
attacker committed 2026-06-17 06:05:27 +08:00
1 parent c6e4b519e8
commit d234cb4b89
1 file changed
+32
+32
View File
@@ -1457,3 +1457,35 @@ cd ~/devops/aiops
- TraceManager.tsx(620)/GrafanaDashboard.tsx(616) 属优雅降级组件(无后端),拆分价值低于真实业务组件
- sidebar.tsx(689行) 为 shadcn 标准 UI 组件,context 已提取,剩余无需拆分
- 后端 sql_audit.go(435行) 属已移除菜单死代码(保留不拆)
## 2026-06-17 自动推进(cron)— AnsibleManager 拆分
- **任务**: 拆分 AnsibleManager.tsx(535行->399行),远离700行硬上限
- **背景**: dev-log 上次建议优先拆真实业务组件 AnsibleManager(继 ScriptManager/AgentAlerts/SystemUserTab/ReleaseManager/ServerManager 拆分后,AnsibleManager 是自动化运维模块的 Ansible 自动化主组件,包含 Playbook 卡片列表 + 执行记录表格 + 4 张统计卡片 + 批量选择)。此前已提取 ansible-helpers + AnsibleFormDialog + AnsibleDetailDialog + AnsibleLogsDialog 4 个文件,主组件剩余内联 JSX(统计卡片/Playbook 卡片 map/执行记录 table)仍占大量行数
- **拆分方案**:
- `frontend/src/components/automation/AnsibleStatsCards.tsx` — 新建(74行):提取 4 张统计卡片(Playbook总数/执行中/今日成功/今日失败),Props: total/running/todaySuccess/todayFailed
- `frontend/src/components/automation/AnsiblePlaybookCard.tsx` — 新建(81行):提取单个 Playbook 卡片(复选框+FileCode图标+名称+分类徽章+描述+标签+元信息(执行次数/超时)+5个行操作按钮(查看/执行/编辑/复制/删除)),Props: playbook/selected/executing/onToggleSelect/onView/onExecute/onEdit/onClone/onDelete
- `frontend/src/components/automation/AnsibleExecutionsTable.tsx` — 新建(73行):提取执行记录表格(6列:#/Playbook/状态/开始时间/耗时/操作 + 刷新按钮),Props: executions/onRefresh/onViewLogs
- `frontend/src/components/automation/AnsibleManager.tsx` — 主组件从 535 行降至 399 行(-136);移除内联统计卡片 JSX(54行)、Playbook 卡片 map JSX(55行)、执行记录表格 JSX(53行),替换为 3 个子组件;移除未使用的导入(FileCode/CheckCircle/XCircle/Eye/Copy/Edit/Terminal/Play/Badge/Card/CardContent/CardHeader/CardTitle/CardDescription/getStatusBadge/formatDate);保留所有状态管理 + CRUD handler(openCreate/openEdit/handleSave/handleClone/handleDelete/handleBatchDelete/handleExecute) + 筛选逻辑 + 批量操作栏
- **结果**:
- npx tsc --noEmit 零错误 ✅
- npm run build 通过(3.07s) ✅
- ./run.sh restart 后 /health 正常 + 前端 200 ✅
- API 验证:/ansible/playbooks 返回 total=0, /task-executions?task_type=playbook 返回 total=0(空数据,空状态渲染) ✅
- 浏览器验证 /ansible(自动化运维-Ansible 菜单):
- 4 张统计卡片正常渲染(Playbook总数=0/执行中=0/今日成功=0/今日失败=0)
- Playbook 管理 Tab:工具栏(搜索框+全部分类下拉+刷新+新建Playbook按钮) + 空状态(暂无Playbook)
- "新建 Playbook"按钮打开 AnsibleFormDialog(名称+分类默认应用部署+描述+标签+超时600+内容编辑器预填sample模板,取消/创建按钮)
- 执行记录 Tab:AnsibleExecutionsTable 组件(结构验证,tab切换为浏览器自动化Radix已知限制非代码问题)
- console 零 JS 错误 ✅
- grep 确认 AnsibleStatsCards/AnsiblePlaybookCard/AnsibleExecutionsTable 仅被 AnsibleManager.tsx 引用
- git push 成功 (commit c6e4b51) ✅
- **下一步建议**:
- AnsibleManager(399) 已降至安全区间。前端剩余接近上限的组件: TopologyView.tsx(576)、SystemManager.tsx(569)、ExcelServerImport.tsx(549)、AIAlertAnalyzer.tsx(541)
- 优先拆 SystemManager.tsx(569行) — 系统管理真实业务组件(用户/LDAP/角色/设置多 Tab,SystemUserTab 已拆但主容器仍大)
- TopologyView.tsx(576) 拖拽+SVG 逻辑复杂,拆分需谨慎保留拖拽状态机
- TraceManager.tsx(620)/GrafanaDashboard.tsx(616) 属优雅降级组件(无后端),拆分价值低于真实业务组件
- ExcelServerImport.tsx(549) 属导入向导,可提取步骤组件
- sidebar.tsx(689行) 为 shadcn 标准 UI 组件,context 已提取,剩余无需拆分
- 后端 sql_audit.go(435行) 属已移除菜单死代码(保留不拆)