- 删除已落地的 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 微调服务配置
5.3 KiB
5.3 KiB
报销草稿分支动作收口 开发 TODO
更新时间:2026-06-23
使用规则
- 每个 TODO 必须对应
CONCEPT.md中的目标、能力、方案或验收点。 - 只有完成并验证后,才能把
[ ]改成[x]。 - 勾选时在任务后补充简短证据,例如文件、接口、命令或验证结果。
- 如果需求发生变化,先更新
CONCEPT.md,再调整本 TODO。
1. 调研与边界
- [CONCEPT: 背景与问题] 阅读相关页面、动作模型和测试,确认当前“继续草稿”实际走详情打开,“不用草稿”走申请单关联。
证据:
travelReimbursementAssociationGateModel.js、useWorkbenchAiActionRouter.js、useWorkbenchAiExpenseFlow.js、workbench-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_ACTION、CREATE_STANDALONE_REIMBURSEMENT_DRAFT_ACTION和三按钮构造;travelReimbursementAssociationGateModel.jsre-export 保持兼容。 - [CONCEPT: 前端] 在个人工作台 AI 模式中处理继续关联草稿、独立新建确认和取消新建。
证据:
useWorkbenchAiActionRouter.js分流新动作;useWorkbenchAiExpenseFlow.js追加上传附件/说明提示和新建草稿确认提示。 - [CONCEPT: 前端] 在报销助手页面中处理同一批新动作,保持与工作台一致。
证据:
useTravelReimbursementSuggestedActions.js接入继续关联、独立新建确认和取消新建;TravelReimbursementCreateView.js传入draftClaimId与composerUploadIntent。 - [CONCEPT: 前端] 保留旧动作兼容,不破坏历史会话按钮。
证据:
SKIP_REIMBURSEMENT_DRAFT_CHECK_ACTION和SKIP_REQUIRED_APPLICATION_LINK_ACTION仍由原路径处理;相关旧链路测试通过。
6. 测试与验证
- [CONCEPT: 测试方案] 先补充失败的前端单元测试,覆盖三按钮生成和路由行为。
证据:RED 阶段
workbench-ai-reimbursement-association-gate.test.mjs和workbench-ai-action-router.test.mjs因缺少CONTINUE_REIMBURSEMENT_DRAFT_ACTION导出失败。 - [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均通过。 - [CONCEPT: 指标与验收] 回看验收点,确认没有旧文案继续出现在新草稿命中态。
证据:
workbench-ai-reimbursement-association-gate.test.mjs断言新草稿命中态有且仅有三个动作,并不再出现“跳过草稿后再关联申请单”。
7. 文档收尾
- [CONCEPT: 指标与验收] 实现完成后更新本 TODO 的证据。 证据:本 TODO 已回填实现文件和测试命令。
- [CONCEPT: 风险与开放问题] 根据实现结果更新剩余风险。
证据:
CONCEPT.md已记录全量code-size-limits仍被既有TopBar.vue:824阻断;本轮文件行数为travelReimbursementAssociationGateModel.js:714、travelReimbursementDraftBranchModel.js:143。 - [CONCEPT: 功能一句话] 确认最终实现没有偏离原始目标。 证据:新草稿命中态固定为查看草稿、继续关联草稿、独立新建报销单三个入口。