docs: update dev-log - ServerManager 拆分
This commit is contained in:
1 parent
7dc5cdb7f2
commit
76bcf3e135
1 file changed
+29
@@ -1309,3 +1309,32 @@ cd ~/devops/aiops
|
||||
- 前端仍有接近700行可拆分: ServerManager.tsx(645)、TraceManager.tsx(620)、GrafanaDashboard.tsx(616)、SystemUserTab.tsx(588)
|
||||
- sidebar.tsx(689行) 为 shadcn 标准 UI 组件,context 已提取,剩余无需拆分
|
||||
- 后端 sql_audit.go(435行) 属已移除菜单死代码(保留不拆)
|
||||
|
||||
|
||||
## 2026-06-17 自动推进(cron)— ServerManager 拆分
|
||||
|
||||
- **任务**: 拆分 ServerManager.tsx(645行→462行),远离700行硬上限
|
||||
- **背景**: dev-log 上次建议的预防性维护项(继 AppRelease + CronJobManager + CloudBilling + ApprovalFlow + AgentMonitor + AIPredictiveAnalytics 拆分后,ServerManager 是资产管理模块中最接近 700 行限制的业务组件)
|
||||
- **拆分方案**:
|
||||
- `frontend/src/components/server/serverHelpers.tsx` — **新建**(63行):提取 `getTags()`(标签解析,主列表+导出共用)、`getStatusBadge()`(服务器状态徽章,4种状态)、`getUsageColor()`(使用率进度条颜色,CPU/内存通用)为共享纯函数
|
||||
- `frontend/src/components/server/ServerTableRow.tsx` — **新建**(166行):纯展示子组件,提取整行表格 JSX(9列:选择框+主机名+IP+公网IP+状态徽章+配置+使用率进度条+标签+操作菜单),Props: server/selected/onToggleSelect/onOpenTerminal/onOpenEdit/onDelete(接收回调,不直接调 API)
|
||||
- `frontend/src/components/server/ServerManager.tsx` — 主组件从 645 行降至 462 行(-183);移除 getTags 内联定义(迁移到 helpers,handleExport 仍用)、getStatusBadge 内联定义(迁移到 helpers)、整行 JSX(迁移到 ServerTableRow);移除未使用的导入(Badge/type Server as ServerType/MoreHorizontal/Terminal/Edit/Server as ServerIcon);内联行 JSX 替换为 `<ServerTableRow>` 组件(13行替代143行)
|
||||
- **结果**:
|
||||
- npx tsc --noEmit 零错误 ✅
|
||||
- npm run build 通过(3.11s) ✅
|
||||
- ./run.sh restart 后 /health 正常 + 前端 200 ✅
|
||||
- API 验证:/api/v1/servers 返回 total=47 ✅
|
||||
- 浏览器验证 /servers(服务器管理菜单):
|
||||
- 4 个统计卡片正常渲染(服务器总数=20/运行中=8/维护中=9/已停止=3)
|
||||
- 表格完整渲染 9 列(选择框/主机名+OS/IP/公网IP/状态徽章/配置/使用率进度条/标签/操作),47 台服务器行正常
|
||||
- 状态徽章正确显示(运行中-绿/维护中-黄/已停止-灰),使用率进度条颜色正确(绿/黄/红)
|
||||
- 标签正确解析展示(project:N team:N 格式,JSON对象→key:value)
|
||||
- console 零 JS 错误 ✅
|
||||
- 行操作菜单按钮存在(Radix DropdownMenu 在 headless 自动化下不展开是已知限制 FE3,非回归)
|
||||
- grep 确认 serverHelpers 被 ServerManager+ServerTableRow 引用,ServerTableRow 仅被 ServerManager 引用
|
||||
- git push 成功 (commit 7dc5cdb) ✅
|
||||
- **下一步建议**:
|
||||
- 前端仍有接近700行可拆分: TraceManager.tsx(620)、GrafanaDashboard.tsx(616)、SystemUserTab.tsx(588)、ReleaseManager.tsx(581)、TopologyView.tsx(576)
|
||||
- sidebar.tsx(689行) 为 shadcn 标准 UI 组件,context 已提取,剩余无需拆分
|
||||
- services/api.ts(670行) 为 API 服务聚合文件(非组件),不在 700 行组件硬上限内
|
||||
- 后端 sql_audit.go(435行) 属已移除菜单死代码(保留不拆)
|
||||
Reference in new issue
Block a user