- 删除已落地的 improvement-roadmap、superpowers 计划与 ui-mockups 参考稿,删除早期 work-log(2026-05-06~08) - 新增 2026-05-23 起的 work-log 与 attachment-association-background-job、reimbursement-draft-action-branching 等开发文档及用户文档 - docker-compose(.full).yml 微调服务配置
74 lines
5.3 KiB
Markdown
74 lines
5.3 KiB
Markdown
# 报销草稿分支动作收口 开发 TODO
|
||
|
||
更新时间:2026-06-23
|
||
|
||
## 使用规则
|
||
|
||
- 每个 TODO 必须对应 `CONCEPT.md` 中的目标、能力、方案或验收点。
|
||
- 只有完成并验证后,才能把 `[ ]` 改成 `[x]`。
|
||
- 勾选时在任务后补充简短证据,例如文件、接口、命令或验证结果。
|
||
- 如果需求发生变化,先更新 `CONCEPT.md`,再调整本 TODO。
|
||
|
||
## 1. 调研与边界
|
||
|
||
- [x] [CONCEPT: 背景与问题] 阅读相关页面、动作模型和测试,确认当前“继续草稿”实际走详情打开,“不用草稿”走申请单关联。
|
||
证据:`travelReimbursementAssociationGateModel.js`、`useWorkbenchAiActionRouter.js`、`useWorkbenchAiExpenseFlow.js`、`workbench-ai-reimbursement-association-gate.test.mjs`。
|
||
- [x] [CONCEPT: 目标与非目标] 确认本轮只改草稿命中态按钮与点击流,不改后端草稿保存和风险审核。
|
||
证据:`CONCEPT.md` 的目标与非目标章节。
|
||
- [x] [CONCEPT: 风险与开放问题] 标记多草稿命中时默认指向最新草稿,历史旧动作保留兼容。
|
||
证据:`CONCEPT.md` 的风险与开放问题章节。
|
||
|
||
## 2. 契约与设计
|
||
|
||
- [x] [CONCEPT: 功能能力] 定义三个动作分支:查看草稿、继续关联草稿、独立新建报销单。
|
||
证据:`CONCEPT.md` 的功能能力和方案设计章节。
|
||
- [x] [CONCEPT: 方案设计] 明确个人工作台 AI 模式与报销助手页面共用动作模型,但分别在各自 action router 中处理点击。
|
||
证据:`CONCEPT.md` 的前端方案设计章节。
|
||
- [x] [CONCEPT: 算法与公式] 明确本轮不涉及显式数学公式。
|
||
证据:`CONCEPT.md` 的算法与公式章节。
|
||
- [x] [CONCEPT: 指标与验收] 把验收标准拆成按钮数量、按钮文案、点击后提示和旧动作兼容。
|
||
证据:`CONCEPT.md` 的指标与验收章节。
|
||
|
||
## 3. 后端实现
|
||
|
||
- [x] [CONCEPT: 后端] 本轮不新增后端 schema、service、endpoint、权限和持久化逻辑。
|
||
证据:`CONCEPT.md` 明确当前不新增接口。
|
||
- [x] [CONCEPT: 数据与契约] 后端响应结构不变,新增内容仅为前端动作类型。
|
||
证据:`CONCEPT.md` 的数据与契约章节。
|
||
|
||
## 4. 算法/规则实现
|
||
|
||
- [x] [CONCEPT: 算法与规则] 本轮不改候选单据筛选算法,只改命中后的动作分支。
|
||
证据:`CONCEPT.md` 的算法与规则章节。
|
||
- [x] [CONCEPT: 功能能力] 明确旧动作保留兼容,不删除历史会话能力。
|
||
证据:`CONCEPT.md` 的边界与降级说明。
|
||
|
||
## 5. 前端实现
|
||
|
||
- [x] [CONCEPT: 前端] 在草稿分支模型中新增动作类型和三按钮生成逻辑。
|
||
证据:`travelReimbursementDraftBranchModel.js` 定义 `CONTINUE_REIMBURSEMENT_DRAFT_ACTION`、`CREATE_STANDALONE_REIMBURSEMENT_DRAFT_ACTION` 和三按钮构造;`travelReimbursementAssociationGateModel.js` re-export 保持兼容。
|
||
- [x] [CONCEPT: 前端] 在个人工作台 AI 模式中处理继续关联草稿、独立新建确认和取消新建。
|
||
证据:`useWorkbenchAiActionRouter.js` 分流新动作;`useWorkbenchAiExpenseFlow.js` 追加上传附件/说明提示和新建草稿确认提示。
|
||
- [x] [CONCEPT: 前端] 在报销助手页面中处理同一批新动作,保持与工作台一致。
|
||
证据:`useTravelReimbursementSuggestedActions.js` 接入继续关联、独立新建确认和取消新建;`TravelReimbursementCreateView.js` 传入 `draftClaimId` 与 `composerUploadIntent`。
|
||
- [x] [CONCEPT: 前端] 保留旧动作兼容,不破坏历史会话按钮。
|
||
证据:`SKIP_REIMBURSEMENT_DRAFT_CHECK_ACTION` 和 `SKIP_REQUIRED_APPLICATION_LINK_ACTION` 仍由原路径处理;相关旧链路测试通过。
|
||
|
||
## 6. 测试与验证
|
||
|
||
- [x] [CONCEPT: 测试方案] 先补充失败的前端单元测试,覆盖三按钮生成和路由行为。
|
||
证据:RED 阶段 `workbench-ai-reimbursement-association-gate.test.mjs` 和 `workbench-ai-action-router.test.mjs` 因缺少 `CONTINUE_REIMBURSEMENT_DRAFT_ACTION` 导出失败。
|
||
- [x] [CONCEPT: 测试方案] 实现后运行定向前端测试,记录通过结果。
|
||
证据:`node --test web/tests/workbench-ai-reimbursement-association-gate.test.mjs`、`node --test web/tests/workbench-ai-action-router.test.mjs`、`node --test web/tests/travel-reimbursement-guided-flow.test.mjs`、`node --test web/tests/travel-reimbursement-review-drawer-switch.test.mjs`、`node --test web/tests/expense-attachment-draft-selection.test.mjs`、`node --test web/tests/attachment-association-confirmation.test.mjs` 均通过。
|
||
- [x] [CONCEPT: 指标与验收] 回看验收点,确认没有旧文案继续出现在新草稿命中态。
|
||
证据:`workbench-ai-reimbursement-association-gate.test.mjs` 断言新草稿命中态有且仅有三个动作,并不再出现“跳过草稿后再关联申请单”。
|
||
|
||
## 7. 文档收尾
|
||
|
||
- [x] [CONCEPT: 指标与验收] 实现完成后更新本 TODO 的证据。
|
||
证据:本 TODO 已回填实现文件和测试命令。
|
||
- [x] [CONCEPT: 风险与开放问题] 根据实现结果更新剩余风险。
|
||
证据:`CONCEPT.md` 已记录全量 `code-size-limits` 仍被既有 `TopBar.vue:824` 阻断;本轮文件行数为 `travelReimbursementAssociationGateModel.js:714`、`travelReimbursementDraftBranchModel.js:143`。
|
||
- [x] [CONCEPT: 功能一句话] 确认最终实现没有偏离原始目标。
|
||
证据:新草稿命中态固定为查看草稿、继续关联草稿、独立新建报销单三个入口。
|