docs: 更新开发日志-发布管理全栈完善

This commit is contained in:
attacker committed 2026-06-15 04:06:37 +08:00
1 parent a5970315be
commit fd1f30958a
1 file changed
+36
+36
View File
@@ -699,3 +699,39 @@ cd ~/devops/aiops
- 注入 48 条真实测试数据(2 台主机 × 24 小时,含业务时段负载模式)用于可视化验证
**关键修复点**: GORM 的 `Scan()` 方法无法将 SQLite `strftime()` 返回的文本格式日期自动解析为 Go `time.Time`,必须用 `string` 接收后手动 `time.ParseInLocation()`。
## 2026-06-15 16:10 自动推进
### 任务: 发布管理全栈完善
**背景**: ReleaseManager.tsx 存在多个前后端不匹配问题和功能缺失:环境枚举值不一致(前端 `development/production` vs 后端 `dev/prod`)、硬编码 mock 应用列表、字段名错误(`deployer` vs `author`)、操作无 toast 反馈、部署/回滚无确认框、详情弹窗缺失。
**修改文件**:
- `backend/internal/api/handlers/pipeline.go` — 新增 `RejectRelease` handler(38行):仅 `pending` 状态可驳回,状态置为 `rejected`,非 pending 返回 400
- `backend/internal/api/routes/routes.go` — 注册 `releases.POST("/:id/reject")` 路由
- `frontend/src/services/api.ts` — 新增 `releaseApi.rejectRelease(id)` 方法
- `frontend/src/components/deploy/ReleaseManager.tsx` — 完整重写(553→581行):
- 修复环境值:`development` → `dev`、`production` → `prod`(与后端 `binding:"oneof=dev test staging prod"` 一致)
- 移除硬编码 `applications` mock 数组,改为自由输入应用名称
- 修复字段名:`release.deployer` → `release.author`
- 新增 toast 反馈:create/approve/reject/deploy/rollback 全部有 success/error 提示
- 新增确认框:deploy/rollback 操作前弹 ConfirmProvider 确认
- 新增发布详情弹窗(原缺失,Eye 按钮点击无效 → 现展示完整详情)
- 新增空状态(无发布记录时显示 PackageOpen 图标 + "暂无发布记录")
- 新增 `rejected` 状态徽章
- 主题感知:`bg-slate-800` → `var(--dg-bg-secondary)` 全量替换
- 原生 `<select>` 替换为 shadcn Select 组件
**验证结果**:
- 后端编译 `go build ./cmd/` ✅
- 前端 `tsc --noEmit` ✅ + `npm run build` ✅
- API 端到端 7 项全通过:list→create(env=prod)→reject→approve→deploy→rollback→reject非pending(400)
- 浏览器 UI 验证:新建发布→填写表单→提交→待审批→审批通过→已审批→部署按钮出现→详情弹窗显示完整 ✅
- git push 成功 (commit a597031) ✅
**下一步建议**:
- PipelineManager.tsx 同类问题排查(toast/confirm/主题色)
- 服务器管理模块增删改查前后端联调验证
- Dashboard 告警/发布跳转链接验证