文件
hyb-oa/.trellis/tasks/09-01-reimbursement-approval-content-workbench/implement.md
T

2.8 KiB
原始文件 Blame 文件历史

Implementation Plan:B-2a 报销审批内容工作台

Before Development

  • 用户批准父任务及 B-2a 最新 PRD/design/implement。
  • 运行 trellis-before-dev,读取 frontend、approval workflow、reimbursement/OCR 和 cross-layer/code-reuse 规约。
  • 用合成角色复核 workflow task 可见者读取 reimbursement detail 的权限矩阵。
  • 冻结共享组件最小输入字段与 PC/移动页面结构。

Implementation Order

  1. 后端把现有 budgetCheck 最小字段写入 workflow context,并在任务详情显式投影;补旧数据兼容单测。
  2. 建立共享 projection 纯函数与测试:明细分组、票据归属、快照/实时提示、退回引用。
  3. 建立响应式共享明细证据组件,只实现 review/readonly 能力和材料打开回调。
  4. PC 审批页接入双查询、主列内容和右侧 sticky 决策区;关键数据失败时 fail closed。
  5. 移动审批页接入同一组件,调整底部主/次动作;按允许字段投影缓存 workflow 摘要,排除全部报销证据,并在离线/内容未加载时阻断报销审批动作和草稿。
  6. 恢复提交时费用标准行内提示、预算快照、办公电子设备提示和当前票据检查。
  7. 增加明细/票据引用到现有退回意见的交互,不改后端 comment 合同。
  8. 更新冲突的 frontend spec:旧“仅提供详情出口”改为共享内容工作台合同;保留完整原始表单次要入口。

Verification

  • 后端聚焦 Vitest + npm run prisma:validate + 相关 node --check。
  • 前端组件/纯函数测试、npm run typecheck、npm run build。
  • PC/移动 Playwright 覆盖完整证据查看、快照/实时冲突、加载失败、材料打开、退回引用和动作层级。(PC 合成 2/2 已通过;移动完整环境待跑)
  • 移动离线回归直接检查 IndexedDB 缓存字段,证明报销证据未落盘;既有非报销离线草稿用例保留在同一回归文件。
  • 权限矩阵覆盖当前审批人、已处理查看、财务只读和无权身份。
  • node scripts/qa/check-ui-design-rules.mjs --strict 与 --self-test。
  • node scripts/qa/check-process-contract.mjs --baseline --json、Trellis governance、敏感内容检查、git diff --check。
  • 实施后因触及审批 workflow context 与权限读取链,执行只读 reviewer 复核;inline 模式由主会话按规则完成只读复核,不派发实现/check 子代理。

Deployment Boundary

  • 无用户单独部署授权时只提交本地代码与元数据,不 push、不部署。
  • 部署使用独立候选和既有生产回滚基线;无 migration/seed/flag。
  • 公网使用合成报销任务验证 PC/移动完整流程,不修改真人报销或审批状态。