docs: update dev-log - ScriptManager 拆分

This commit is contained in:
attacker committed 2026-06-17 04:04:56 +08:00
1 parent 2582f12c36
commit cbe34666c0
1 file changed
+30
+30
View File
@@ -1398,3 +1398,33 @@ cd ~/devops/aiops
- TraceManager.tsx(620)/GrafanaDashboard.tsx(616) 属优雅降级组件(无后端),拆分价值低于真实业务组件
- sidebar.tsx(689行) 为 shadcn 标准 UI 组件,context 已提取,剩余无需拆分
- 后端 sql_audit.go(435行) 属已移除菜单死代码(保留不拆)
## 2026-06-17 自动推进(cron)— ScriptManager 拆分
- **任务**: 拆分 ScriptManager.tsx(546行->411行),远离700行硬上限
- **背景**: dev-log 上次建议优先拆真实业务组件 ScriptManager/AgentAlerts/AnsibleManager。ScriptManager 是自动化运维模块的脚本库主组件(已提取 script-helpers.tsx + ScriptFormDialog + ScriptDetailDialog + ScriptLogsDialog 4 个子文件),主组件剩余 JSX 块(统计卡片/脚本卡片列表/执行记录表格)仍占大量行数
- **拆分方案**:
- `frontend/src/components/automation/ScriptStatsCards.tsx` — 新建(70行):提取 4 个统计卡片(脚本总数/执行中/今日成功/今日失败),Props: total/running/todaySuccess/todayFailed
- `frontend/src/components/automation/ScriptCard.tsx` — 新建(72行):提取单个脚本卡片(复选框+名称+类型徽章+内容预览+元信息+5个行操作按钮),Props: script/selected/executing/onToggleSelect/onView/onExecute/onEdit/onClone/onDelete
- `frontend/src/components/automation/ScriptExecutionsTable.tsx` — 新建(69行):提取执行记录表格(6列:#/脚本/状态/开始时间/耗时/操作+刷新按钮),Props: executions/onRefresh/onViewLogs
- `frontend/src/components/automation/ScriptManager.tsx` — 主组件从 546 行降至 411 行(-135);移除内联统计卡片 JSX(55行)、脚本卡片 JSX(62行)、执行记录表格 JSX(53行),替换为 3 个子组件;移除未使用的导入(FileCode/Clock/CheckCircle/XCircle/Eye/Terminal/Copy/Edit);保留所有状态管理+CRUD handler+筛选逻辑+批量操作栏
- **结果**:
- npx tsc --noEmit 零错误 ✅
- npm run build 通过(3.04s) ✅
- ./run.sh restart 后 /health 正常 + 前端 200 ✅
- API 验证:/api/v1/scripts 返回 total=6, /api/v1/task-executions 返回 total=3 ✅
- 浏览器验证 /scripts(自动化运维-脚本库菜单):
- 4 个统计卡片正常渲染(脚本总数=6/执行中=0/今日成功=0/今日失败=0)
- 脚本库 Tab:6 个脚本卡片完整渲染,每卡片含复选框+类型徽章+内容预览+5个行操作按钮(查看内容/执行/编辑/复制/删除)
- 执行记录 Tab:3 条记录表格正常渲染(重启服务-失败/测试脚本-前端-成功/检查磁盘-成功),6列(#/脚本/状态/开始时间/耗时/操作)
- "新建脚本"按钮打开 ScriptFormDialog(名称+类型下拉默认Shell+描述+超时300+内容编辑器预填shell模板,取消/创建按钮)
- console 零 JS 错误 ✅
- grep 确认 ScriptStatsCards/ScriptCard/ScriptExecutionsTable 仅被 ScriptManager.tsx 引用
- git push 成功 (commit 2582f12) ✅
- **下一步建议**:
- 前端仍有接近700行可拆分: TopologyView.tsx(576)、ExcelServerImport.tsx(549)、AgentAlerts.tsx(542)、AIAlertAnalyzer.tsx(541)、AnsibleManager.tsx(535)
- 优先拆 AgentAlerts/AnsibleManager(真实业务组件),TopologyView 拖拽逻辑复杂拆分需谨慎
- TraceManager.tsx(620)/GrafanaDashboard.tsx(616) 属优雅降级组件(无后端),拆分价值低于真实业务组件
- sidebar.tsx(689行) 为 shadcn 标准 UI 组件,context 已提取,剩余无需拆分
- 后端 sql_audit.go(435行) 属已移除菜单死代码(保留不拆)