docs: update dev-log - ScriptManager 拆分
This commit is contained in:
1 parent
2582f12c36
commit
cbe34666c0
1 file changed
+30
@@ -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行) 属已移除菜单死代码(保留不拆)
|
||||
Reference in new issue
Block a user