docs: update dev-log - SystemUserTab 拆分

This commit is contained in:
attacker committed 2026-06-17 03:07:26 +08:00
1 parent 2b5cbfb992
commit aeb2611149
1 file changed
+30
+30
View File
@@ -1368,3 +1368,33 @@ cd ~/devops/aiops
- 注意:TraceManager/GrafanaDashboard 属优雅降级组件(无后端),拆分价值低于真实业务组件,优先拆 SystemUserTab/ScriptManager
- sidebar.tsx(689行) 为 shadcn 标准 UI 组件,context 已提取,剩余无需拆分
- 后端 sql_audit.go(435行) 属已移除菜单死代码(保留不拆)
## 2026-06-17 自动推进(cron)— SystemUserTab 拆分
- **任务**: 拆分 SystemUserTab.tsx(588行->311行),远离700行硬上限
- **背景**: dev-log 上次建议优先拆真实业务组件 SystemUserTab/ScriptManager(避开优雅降级组件 TraceManager/GrafanaDashboard)。SystemUserTab 是系统管理模块用户管理标签页,纯展示组件(状态由父组件 SystemManager 管理),包含 4 个 Dialog
- **拆分方案**:
- `frontend/src/components/system/UserDetailDialog.tsx` — 新建(104行):用户详情只读弹窗(基本信息+角色徽章+重置密码/编辑入口)。Props: selectedUser/setSelectedUser/getUserStatusBadge/openEdit
- `frontend/src/components/system/CsvImportDialog.tsx` — 新建(146行):CSV 批量导入用户弹窗(下载模板+文件选择+预览表格+导入结果)
- `frontend/src/components/system/LdapImportDialog.tsx` — 新建(182行):LDAP 用户导入弹窗(OU 下拉选择+用户列表多选 checkbox+导入结果)
- `frontend/src/components/system/SystemUserTab.tsx` — 主组件从 588 行降至 311 行(-277);保留顶部 Filters + 用户表格(7列)+ 引用 4 个子组件(UserFormDialog 原有 + 3 个新拆分)
- **结果**:
- npx tsc --noEmit 零错误
- npm run build 通过(3.16s)
- ./run.sh restart 后 /health 正常 + 前端 200
- API 验证:/api/v1/admin/users 返回 total=9, list_len=9
- 浏览器验证 /system(系统管理-用户管理):
- 9 个用户完整渲染,7列表格,来源正确区分(本地/LDAP),状态显示正常
- 用户详情弹窗(UserDetailDialog)正确渲染:用户名/邮箱/手机号/状态/创建时间/角色 + 重置密码/编辑按钮
- CSV 导入弹窗(CsvImportDialog)正确渲染:下载模板/选择CSV文件/取消/确认导入按钮
- LDAP 导入弹窗(LdapImportDialog)正确渲染:OU 下拉/刷新按钮/用户列表表格(5用户)/多选 checkbox
- console 零 JS 错误
- grep 确认 3 个新子组件仅被 SystemUserTab.tsx 引用
- git push 成功 (commit 2b5cbfb)
- **下一步建议**:
- 前端仍有接近700行可拆分: TopologyView.tsx(576)、ExcelServerImport.tsx(549)、ScriptManager.tsx(546)、AgentAlerts.tsx(542)、AIAlertAnalyzer.tsx(541)、AnsibleManager.tsx(535)
- 优先拆 ScriptManager/AgentAlerts/AnsibleManager(真实业务组件),TopologyView 拖拽逻辑复杂拆分需谨慎
- TraceManager.tsx(620)/GrafanaDashboard.tsx(616) 属优雅降级组件(无后端),拆分价值低于真实业务组件
- sidebar.tsx(689行) 为 shadcn 标准 UI 组件,context 已提取,剩余无需拆分
- 后端 sql_audit.go(435行) 属已移除菜单死代码(保留不拆)