Files
X-Financial/document/development/reimbursement-draft-action-branching/TODO.md
caoxiaozhu f9553a6a1a docs: 清理过期计划文档并补全 work-log 与开发/用户文档
- 删除已落地的 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 微调服务配置
2026-06-24 10:42:57 +08:00

5.3 KiB
Raw Blame History

报销草稿分支动作收口 开发 TODO

更新时间2026-06-23

使用规则

  • 每个 TODO 必须对应 CONCEPT.md 中的目标、能力、方案或验收点。
  • 只有完成并验证后,才能把 [ ] 改成 [x]
  • 勾选时在任务后补充简短证据,例如文件、接口、命令或验证结果。
  • 如果需求发生变化,先更新 CONCEPT.md,再调整本 TODO。

1. 调研与边界

  • [CONCEPT: 背景与问题] 阅读相关页面、动作模型和测试,确认当前“继续草稿”实际走详情打开,“不用草稿”走申请单关联。 证据:travelReimbursementAssociationGateModel.jsuseWorkbenchAiActionRouter.jsuseWorkbenchAiExpenseFlow.jsworkbench-ai-reimbursement-association-gate.test.mjs
  • [CONCEPT: 目标与非目标] 确认本轮只改草稿命中态按钮与点击流,不改后端草稿保存和风险审核。 证据:CONCEPT.md 的目标与非目标章节。
  • [CONCEPT: 风险与开放问题] 标记多草稿命中时默认指向最新草稿,历史旧动作保留兼容。 证据:CONCEPT.md 的风险与开放问题章节。

2. 契约与设计

  • [CONCEPT: 功能能力] 定义三个动作分支:查看草稿、继续关联草稿、独立新建报销单。 证据:CONCEPT.md 的功能能力和方案设计章节。
  • [CONCEPT: 方案设计] 明确个人工作台 AI 模式与报销助手页面共用动作模型,但分别在各自 action router 中处理点击。 证据:CONCEPT.md 的前端方案设计章节。
  • [CONCEPT: 算法与公式] 明确本轮不涉及显式数学公式。 证据:CONCEPT.md 的算法与公式章节。
  • [CONCEPT: 指标与验收] 把验收标准拆成按钮数量、按钮文案、点击后提示和旧动作兼容。 证据:CONCEPT.md 的指标与验收章节。

3. 后端实现

  • [CONCEPT: 后端] 本轮不新增后端 schema、service、endpoint、权限和持久化逻辑。 证据:CONCEPT.md 明确当前不新增接口。
  • [CONCEPT: 数据与契约] 后端响应结构不变,新增内容仅为前端动作类型。 证据:CONCEPT.md 的数据与契约章节。

4. 算法/规则实现

  • [CONCEPT: 算法与规则] 本轮不改候选单据筛选算法,只改命中后的动作分支。 证据:CONCEPT.md 的算法与规则章节。
  • [CONCEPT: 功能能力] 明确旧动作保留兼容,不删除历史会话能力。 证据:CONCEPT.md 的边界与降级说明。

5. 前端实现

  • [CONCEPT: 前端] 在草稿分支模型中新增动作类型和三按钮生成逻辑。 证据:travelReimbursementDraftBranchModel.js 定义 CONTINUE_REIMBURSEMENT_DRAFT_ACTIONCREATE_STANDALONE_REIMBURSEMENT_DRAFT_ACTION 和三按钮构造;travelReimbursementAssociationGateModel.js re-export 保持兼容。
  • [CONCEPT: 前端] 在个人工作台 AI 模式中处理继续关联草稿、独立新建确认和取消新建。 证据:useWorkbenchAiActionRouter.js 分流新动作;useWorkbenchAiExpenseFlow.js 追加上传附件/说明提示和新建草稿确认提示。
  • [CONCEPT: 前端] 在报销助手页面中处理同一批新动作,保持与工作台一致。 证据:useTravelReimbursementSuggestedActions.js 接入继续关联、独立新建确认和取消新建;TravelReimbursementCreateView.js 传入 draftClaimIdcomposerUploadIntent
  • [CONCEPT: 前端] 保留旧动作兼容,不破坏历史会话按钮。 证据:SKIP_REIMBURSEMENT_DRAFT_CHECK_ACTIONSKIP_REQUIRED_APPLICATION_LINK_ACTION 仍由原路径处理;相关旧链路测试通过。

6. 测试与验证

  • [CONCEPT: 测试方案] 先补充失败的前端单元测试,覆盖三按钮生成和路由行为。 证据RED 阶段 workbench-ai-reimbursement-association-gate.test.mjsworkbench-ai-action-router.test.mjs 因缺少 CONTINUE_REIMBURSEMENT_DRAFT_ACTION 导出失败。
  • [CONCEPT: 测试方案] 实现后运行定向前端测试,记录通过结果。 证据:node --test web/tests/workbench-ai-reimbursement-association-gate.test.mjsnode --test web/tests/workbench-ai-action-router.test.mjsnode --test web/tests/travel-reimbursement-guided-flow.test.mjsnode --test web/tests/travel-reimbursement-review-drawer-switch.test.mjsnode --test web/tests/expense-attachment-draft-selection.test.mjsnode --test web/tests/attachment-association-confirmation.test.mjs 均通过。
  • [CONCEPT: 指标与验收] 回看验收点,确认没有旧文案继续出现在新草稿命中态。 证据:workbench-ai-reimbursement-association-gate.test.mjs 断言新草稿命中态有且仅有三个动作,并不再出现“跳过草稿后再关联申请单”。

7. 文档收尾

  • [CONCEPT: 指标与验收] 实现完成后更新本 TODO 的证据。 证据:本 TODO 已回填实现文件和测试命令。
  • [CONCEPT: 风险与开放问题] 根据实现结果更新剩余风险。 证据:CONCEPT.md 已记录全量 code-size-limits 仍被既有 TopBar.vue:824 阻断;本轮文件行数为 travelReimbursementAssociationGateModel.js:714travelReimbursementDraftBranchModel.js:143
  • [CONCEPT: 功能一句话] 确认最终实现没有偏离原始目标。 证据:新草稿命中态固定为查看草稿、继续关联草稿、独立新建报销单三个入口。