From d234cb4b892090b6163f6a5215bba460b8c61286 Mon Sep 17 00:00:00 2001 From: attacker Date: Wed, 17 Jun 2026 06:05:27 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20update=20dev-log=20-=20AnsibleManager?= =?UTF-8?q?=20=E6=8B=86=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/dev-log.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/docs/dev-log.md b/docs/dev-log.md index 6f7b811..3a35c2d 100644 --- a/docs/dev-log.md +++ b/docs/dev-log.md @@ -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行) 属已移除菜单死代码(保留不拆)