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

37 行
2.8 KiB
Markdown
原始文件 Blame 文件历史

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
# Implementation Plan:B-2a 报销审批内容工作台
## Before Development
- [x] 用户批准父任务及 B-2a 最新 PRD/design/implement。
- [x] 运行 `trellis-before-dev`,读取 frontend、approval workflow、reimbursement/OCR 和 cross-layer/code-reuse 规约。
- [x] 用合成角色复核 workflow task 可见者读取 reimbursement detail 的权限矩阵。
- [x] 冻结共享组件最小输入字段与 PC/移动页面结构。
## Implementation Order
1. [x] 后端把现有 `budgetCheck` 最小字段写入 workflow context,并在任务详情显式投影;补旧数据兼容单测。
2. [x] 建立共享 projection 纯函数与测试:明细分组、票据归属、快照/实时提示、退回引用。
3. [x] 建立响应式共享明细证据组件,只实现 review/readonly 能力和材料打开回调。
4. [x] PC 审批页接入双查询、主列内容和右侧 sticky 决策区;关键数据失败时 fail closed。
5. [x] 移动审批页接入同一组件,调整底部主/次动作;按允许字段投影缓存 workflow 摘要,排除全部报销证据,并在离线/内容未加载时阻断报销审批动作和草稿。
6. [x] 恢复提交时费用标准行内提示、预算快照、办公电子设备提示和当前票据检查。
7. [x] 增加明细/票据引用到现有退回意见的交互,不改后端 comment 合同。
8. [x] 更新冲突的 frontend spec:旧“仅提供详情出口”改为共享内容工作台合同;保留完整原始表单次要入口。
## Verification
- [x] 后端聚焦 Vitest + `npm run prisma:validate` + 相关 `node --check`。
- [x] 前端组件/纯函数测试、`npm run typecheck`、`npm run build`。
- [ ] PC/移动 Playwright 覆盖完整证据查看、快照/实时冲突、加载失败、材料打开、退回引用和动作层级。(PC 合成 2/2 已通过;移动完整环境待跑)
- [x] 移动离线回归直接检查 IndexedDB 缓存字段,证明报销证据未落盘;既有非报销离线草稿用例保留在同一回归文件。
- [x] 权限矩阵覆盖当前审批人、已处理查看、财务只读和无权身份。
- [x] `node scripts/qa/check-ui-design-rules.mjs --strict` 与 `--self-test`。
- [x] `node scripts/qa/check-process-contract.mjs --baseline --json`、Trellis governance、敏感内容检查、`git diff --check`。
- [x] 实施后因触及审批 workflow context 与权限读取链,执行只读 reviewer 复核;inline 模式由主会话按规则完成只读复核,不派发实现/check 子代理。
## Deployment Boundary
- [ ] 无用户单独部署授权时只提交本地代码与元数据,不 push、不部署。
- [ ] 部署使用独立候选和既有生产回滚基线;无 migration/seed/flag。
- [ ] 公网使用合成报销任务验证 PC/移动完整流程,不修改真人报销或审批状态。