From fd1f30958ae50b762d1e3fd6e15dafce43fbe3b4 Mon Sep 17 00:00:00 2001 From: attacker Date: Mon, 15 Jun 2026 04:06:37 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0=E5=BC=80=E5=8F=91?= =?UTF-8?q?=E6=97=A5=E5=BF=97-=E5=8F=91=E5=B8=83=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=85=A8=E6=A0=88=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/dev-log.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/docs/dev-log.md b/docs/dev-log.md index 5c69d25..d76a1b7 100644 --- a/docs/dev-log.md +++ b/docs/dev-log.md @@ -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)` 全量替换 + - 原生 `