diff --git a/docs/milestone-propose-requirements.md b/docs/milestone-propose-requirements.md index b88d0ec..37de10e 100644 --- a/docs/milestone-propose-requirements.md +++ b/docs/milestone-propose-requirements.md @@ -285,6 +285,36 @@ - 或 P8.3 freeze/start 按钮的前端前置条件检查与禁用提示 - 或 P3.6 后端 milestone 编辑限制守卫 +### 2026-03-17 07:00 UTC(第 9 轮:前端 Task 动作按钮 P9.2 + P9.4) + +本轮做了什么: +- 在 TaskDetailPage 实现完整的 task 状态动作按钮(P9.2),替代旧的裸状态名按钮 +- **pending** 状态:▶ Open + ✕ Close +- **open** 状态:⏵ Start + ✕ Close +- **undergoing** 状态:✓ Finish + ✕ Close +- **completed / closed** 状态:↺ Reopen +- 实现 Finish 弹窗(P9.4):点击 Finish 时弹出模态框,**必须填写完成 comment** 才能确认,comment 先写入再 transition +- 实现 Close 弹窗:可选填写关闭原因,原因以 `[Close reason]` 前缀写入 comment +- 所有按钮有 loading 状态和错误提示(后端 detail 直接展示) +- 终态(completed/closed)和 undergoing 下隐藏 Edit Task 按钮,匹配 P9.3 编辑限制 + +改了哪些关键文件: +- `HarborForge.Frontend/src/pages/TaskDetailPage.tsx` — 全量重写 actions 区块 + +验证结果: +- `npx tsc --noEmit` 零错误通过 +- 已 commit: frontend `e6b91e9`, parent `cc2086e` + +当前阻塞/风险: +- 后端 transition 接口暂无状态流转合法性校验(如 pending→completed 也能通过),需要 P5.1-P5.6 补强 +- 按钮权限可见性未实现(close/reopen 应按权限控制,当前所有用户可见) +- Start 按钮未校验 assignee 和 milestone 状态(P5.3 后端校验 + P9.3 前端守卫) + +下一轮最建议继续做什么: +- P5.1-P5.2 后端 task transition 合法性校验(加状态流转守卫到 transition 接口,拒绝非法转换) +- 或 P3.6 后端 milestone 编辑限制(freeze/completed/closed 时拒绝核心字段修改) +- 或 P8.3 前端 milestone freeze/start 按钮前置条件检查与禁用提示 + --- ## 1. 背景