From aeb26111496a15a862c21aded011c2f900abe9e1 Mon Sep 17 00:00:00 2001 From: attacker Date: Wed, 17 Jun 2026 03:07:26 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20update=20dev-log=20-=20SystemUserTab=20?= =?UTF-8?q?=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 | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/docs/dev-log.md b/docs/dev-log.md index f13468a..c87c142 100644 --- a/docs/dev-log.md +++ b/docs/dev-log.md @@ -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行) 属已移除菜单死代码(保留不拆)