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