docs: update dev-log - ReleaseManager 拆分
This commit is contained in:
1 parent
796cc35fb3
commit
367232f2b3
1 file changed
+30
@@ -1338,3 +1338,33 @@ cd ~/devops/aiops
|
||||
- sidebar.tsx(689行) 为 shadcn 标准 UI 组件,context 已提取,剩余无需拆分
|
||||
- services/api.ts(670行) 为 API 服务聚合文件(非组件),不在 700 行组件硬上限内
|
||||
- 后端 sql_audit.go(435行) 属已移除菜单死代码(保留不拆)
|
||||
|
||||
|
||||
## 2026-06-17 自动推进(cron)— ReleaseManager 拆分
|
||||
|
||||
- **任务**: 拆分 ReleaseManager.tsx(581行->368行),远离700行硬上限
|
||||
- **背景**: dev-log 上次建议的预防性维护项(继 ServerManager + AppRelease + CronJobManager + CloudBilling + ApprovalFlow + AgentMonitor + AIPredictiveAnalytics 拆分后,ReleaseManager 是应用发布模块中尚未拆分且最接近 700 行限制的业务组件)。注意:ReleaseManager(发布管理-含审批流) 与 AppRelease(应用发布) 是两个不同页面,状态标签语义不同(待审批 vs 待发布),故新建独立 helper 文件避免与已有 releaseHelpers.tsx 命名冲突
|
||||
- **拆分方案**:
|
||||
- `frontend/src/components/deploy/releaseManagerHelpers.tsx` — 新建(51行):提取 ENVIRONMENTS(环境配置常量)、getStatusBadge()(审批流状态徽章: 待审批/已审批/已驳回/发布中/发布成功/发布失败/已回滚)、getEnvironmentBadge()(环境徽章) 为共享纯函数。命名独立于 AppRelease 的 releaseHelpers.tsx(二者状态标签语义不同)
|
||||
- `frontend/src/components/deploy/ReleaseApplyDialog.tsx` — 新建(162行):新建发布申请弹窗,自包含状态(form+submitting),useEffect 在 open 时重置表单,提交逻辑内移(releaseApi.createRelease + 字段校验),Props: open/onOpenChange/onSuccess
|
||||
- `frontend/src/components/deploy/ReleaseApproveDialog.tsx` — 新建(94行):审批/驳回弹窗,自包含状态(submitting),提交逻辑内移(approveRelease/rejectRelease),useEffect 在关闭时重置 loading,Props: release/open/onOpenChange/onSuccess
|
||||
- `frontend/src/components/deploy/ReleaseManager.tsx` — 主组件从 581 行降至 368 行(-213);移除 newRelease/submitting 状态(迁移到 ApplyDialog) + handleCreateRelease 函数(迁移到 ApplyDialog) + handleApprove 函数(迁移到 ApproveDialog) + getStatusBadge/getEnvironmentBadge/ENVIRONMENTS 内联定义(迁移到 helpers);保留只读 Detail Dialog 内联(无业务逻辑);移除未使用的导入(Badge/Textarea/Label/CheckCircle/XCircle/Clock/AlertCircle/X);内联两个 Dialog JSX 替换为 ReleaseApplyDialog + ReleaseApproveDialog 组件
|
||||
- **结果**:
|
||||
- npx tsc --noEmit 零错误
|
||||
- npm run build 通过(3.13s)
|
||||
- ./run.sh restart 后 /health 正常 + 前端 200
|
||||
- API 验证:/api/v1/releases 返回 total=10, list_len=10
|
||||
- 浏览器验证 /releases(应用发布-发布管理菜单):
|
||||
- 5 个统计卡片正常渲染(待审批/发布中/发布成功/发布失败/已回滚)
|
||||
- 10 个发布卡片完整渲染,状态徽章正确(待审批-琥珀/发布成功-绿/发布失败-红/已回滚-灰),环境徽章正确(生产/预发/开发/测试)
|
||||
- 操作按钮按状态上下文正确显示:pending=审批、approved=部署、success/failed=回滚、rolled_back=无回滚按钮
|
||||
- "新建发布"按钮打开 ReleaseApplyDialog(空表单:应用名称+版本号+目标环境默认开发环境+Commit ID+提交信息+发布说明,取消/提交申请按钮)
|
||||
- "审批"按钮打开 ReleaseApproveDialog(标题审批发布 + 驳回/通过按钮)
|
||||
- console 零 JS 错误
|
||||
- grep 确认 releaseManagerHelpers/ReleaseApplyDialog/ReleaseApproveDialog 仅被 ReleaseManager.tsx 引用
|
||||
- git push 成功 (commit 796cc35)
|
||||
- **下一步建议**:
|
||||
- 前端仍有接近700行可拆分: TraceManager.tsx(620)、GrafanaDashboard.tsx(616)、SystemUserTab.tsx(588)、TopologyView.tsx(576)、ScriptManager.tsx(546)
|
||||
- 注意:TraceManager/GrafanaDashboard 属优雅降级组件(无后端),拆分价值低于真实业务组件,优先拆 SystemUserTab/ScriptManager
|
||||
- sidebar.tsx(689行) 为 shadcn 标准 UI 组件,context 已提取,剩余无需拆分
|
||||
- 后端 sql_audit.go(435行) 属已移除菜单死代码(保留不拆)
|
||||
Reference in new issue
Block a user