docs: update dev-log - AppRelease 拆分
This commit is contained in:
1 parent
28655b4ad5
commit
dcc13d7068
1 file changed
+29
@@ -1280,3 +1280,32 @@ cd ~/devops/aiops
|
|||||||
- 前端仍有接近700行可拆分: AppRelease.tsx(650)、ServerManager.tsx(645)、TraceManager.tsx(620)、GrafanaDashboard.tsx(616)
|
- 前端仍有接近700行可拆分: AppRelease.tsx(650)、ServerManager.tsx(645)、TraceManager.tsx(620)、GrafanaDashboard.tsx(616)
|
||||||
- sidebar.tsx(689行) 为 shadcn 标准 UI 组件,context 已提取,剩余无需拆分
|
- sidebar.tsx(689行) 为 shadcn 标准 UI 组件,context 已提取,剩余无需拆分
|
||||||
- 后端 sql_audit.go(435行) 属已移除菜单死代码(保留不拆)
|
- 后端 sql_audit.go(435行) 属已移除菜单死代码(保留不拆)
|
||||||
|
|
||||||
|
|
||||||
|
## 2026-06-17 自动推进(cron)
|
||||||
|
|
||||||
|
- **任务**: 拆分 AppRelease.tsx(650行→339行),远离700行硬上限
|
||||||
|
- **背景**: dev-log 上次建议的预防性维护项(继 CronJobManager + CloudBilling + ApprovalFlow + AgentMonitor + AIPredictiveAnalytics 拆分后,AppRelease 是应用发布模块中最接近 700 行限制的业务组件)
|
||||||
|
- **拆分方案**:
|
||||||
|
- `frontend/src/components/deploy/releaseHelpers.tsx` — **新建**(92行):提取 `getStatusBadge()`(发布状态徽章,主列表+详情弹窗共用)、`getEnvBadge()`(环境徽章)、`PIPELINE_STEPS` 常量(模拟流水线步骤数组)为共享纯函数/常量
|
||||||
|
- `frontend/src/components/deploy/ReleaseDetailDialog.tsx` — **新建**(138行):发布详情弹窗(流水线进度+构建日志+重新部署按钮),自包含状态(submitting),重新部署逻辑内移(releaseApi.deployRelease),Props: release/open/onOpenChange/onSuccess
|
||||||
|
- `frontend/src/components/deploy/ReleaseCreateDialog.tsx` — **新建**(162行):新建发布弹窗(应用名/版本/环境/Commit ID/提交信息/发布说明),自包含状态(form+submitting),提交逻辑内移(releaseApi.createRelease + 表单校验),Props: open/onOpenChange/onSuccess
|
||||||
|
- `frontend/src/components/deploy/AppRelease.tsx` — 主组件从 650 行降至 339 行(-311);移除 newRelease/submitting 状态 + handleCreateRelease 函数(迁移到 CreateDialog) + getStatusBadge/getEnvBadge/pipelineSteps 内联定义(迁移到 helpers) + selectedRelease 的重新部署逻辑(迁移到 DetailDialog);移除未使用的导入(Dialog/DialogContent/DialogDescription/DialogFooter/DialogHeader/DialogTitle/Textarea/Label/Rocket*部分/CardHeader/CardTitle/Progress/Tabs/Play/User/MoreHorizontal/Pause/ArrowLeft/ArrowRight);内联两个 Dialog JSX 替换为 `<ReleaseDetailDialog>` + `<ReleaseCreateDialog>` 组件
|
||||||
|
- **结果**:
|
||||||
|
- npx tsc --noEmit 零错误 ✅
|
||||||
|
- npm run build 通过(3.11s) ✅
|
||||||
|
- ./run.sh restart 后 /health 正常 + 前端 200 ✅
|
||||||
|
- API 验证:/api/v1/releases 返回 total=10, list_len=10 ✅
|
||||||
|
- 浏览器验证 /deploy(应用发布菜单):
|
||||||
|
- 4 个统计卡片正常渲染(今日发布=10/发布成功=7/发布失败=1/成功率=70%)
|
||||||
|
- 10 行发布记录表格正常渲染(应用名称/版本/环境徽章/状态徽章/代码Commit/发布人/开始时间/操作),状态徽章正确显示(成功/失败/待发布/已回滚),操作列按状态显示对应按钮(详情/重试/回滚)
|
||||||
|
- 筛选器正常(搜索框+全部环境下拉+全部状态下拉)
|
||||||
|
- "详情"按钮打开 ReleaseDetailDialog(支付网关 v3.0.1,发布进度8步+构建日志+重新部署按钮,因状态=failed显示重新部署)
|
||||||
|
- "新建发布"按钮打开 ReleaseCreateDialog(空表单:应用名称+版本号+目标环境(开发环境默认)+Commit ID+提交信息+发布说明,取消/提交申请按钮)
|
||||||
|
- console 零 JS 错误 ✅
|
||||||
|
- grep 确认 releaseHelpers/ReleaseDetailDialog/ReleaseCreateDialog 仅被 AppRelease.tsx 引用(ReleaseDetailDialog 引用 releaseHelpers 的 PIPELINE_STEPS)
|
||||||
|
- git push 成功 (commit 28655b4) ✅
|
||||||
|
- **下一步建议**:
|
||||||
|
- 前端仍有接近700行可拆分: ServerManager.tsx(645)、TraceManager.tsx(620)、GrafanaDashboard.tsx(616)、SystemUserTab.tsx(588)
|
||||||
|
- sidebar.tsx(689行) 为 shadcn 标准 UI 组件,context 已提取,剩余无需拆分
|
||||||
|
- 后端 sql_audit.go(435行) 属已移除菜单死代码(保留不拆)
|
||||||
Reference in new issue
Block a user