文件
hyb-oa/issues/2026-05-06_22-34-54-r102-reimbursement-main-flow.csv

6.6 KiB

1IDTitleDescriptionAcceptanceTest_MethodToolsDev_StatusReview1_StatusRegression_StatusFilesDependenciesNotes
2A1R102 报销主流程合同以 R100 设计规则和 R101 移动端收口为基础,集中修复报销编号、草稿删除、发票默认绑定、上传交互和页面啰嗦问题。本 CSV 校验通过;明确本批仅处理报销主流程,不重构采购/差旅/票据中心全局页面。python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-06_22-34-54-r102-reimbursement-main-flow.csv;业务流程影响:固定报销主流程改造范围。python|manualDONEDONEDONEissues/2026-05-06_22-34-54-r102-reimbursement-main-flow.csv[]涉及权限和状态规则;回滚路径为 revert 本批提交,若涉及 Prisma 迁移需单独说明。
3A2报销业务编号与显示兜底创建报销草稿时生成业务编号,前端列表、详情、打印和移动卡片不再把 UUID 作为主展示;历史无编号草稿显示 草稿单 或日期摘要。新建报销接口返回 formNumber;列表和详情主标题不显示 UUID;静态诊断中报销 UUID 主展示问题减少。server: npm run prisma:validate && node --check src/routes/reimbursements.js;client: npm run typecheck;业务流程:员工新建报销草稿后列表和详情显示业务编号或草稿摘要。node|prisma|typescriptDONEDONEDONEserver/src/routes/reimbursements.js|client/src/lib/reimbursementDisplay.ts|client/src/pages/ReimbursementsPage.tsx|client/src/pages/ReimbursementDetailPage.tsx|client/src/pages/ReimbursementPrintPage.tsx|client/src/pages/MobileReimbursementsPage.tsx["A1"]优先复用 server/src/services/documentSequence.js;不为历史数据强制迁移,避免生产风险。
4A3草稿删除入口前端暴露删除草稿入口,调用现有 DELETE /reimbursements/:id;仅 draft 状态允许删除,reviewing 使用撤回,approved/paid 不提供删除。报销列表和详情页草稿状态可删除且二次确认;非草稿不显示删除;删除后返回列表并刷新。cd client && npx playwright test tests/e2e/r102-reimbursement-main-flow.spec.ts --reporter=list;server node --check src/routes/reimbursements.js;业务流程:创建草稿→列表删除;创建草稿→详情删除。playwright|typescript|nodeDONEDONEDONEclient/src/api/reimbursements.ts|client/src/pages/ReimbursementsPage.tsx|client/src/pages/ReimbursementDetailPage.tsx|server/src/routes/reimbursements.js["A2"]后端已有 draft 删除能力时只补前端;若后端缺少权限校验则本批补齐。
5A4发票默认绑定明细添加发票弹窗中,报销只有一条明细时默认绑定该明细;多条明细时优先按发票金额与明细金额匹配;无法匹配时允许不绑定具体明细。打开添加发票弹窗时,单明细场景下可绑定发票的下拉默认选中唯一明细;多明细同金额时选中匹配明细;用户仍可改为整单绑定。cd client && npx playwright test tests/e2e/r102-reimbursement-main-flow.spec.ts --reporter=list;业务流程:草稿含一条明细→添加发票→默认绑定明细→绑定成功。playwright|typescriptDONEDONEDONEclient/src/pages/ReimbursementDetailPage.tsx["A2"]不改变后端绑定 API;只优化前端默认选择算法。
6A5发票上传交互精简与批量添加发票区域支持多选文件、中文文件回显、上传进度和失败保留;文案从解释型改为任务型。上传控件允许 multiple;按钮文案为 上传发票;上传中显示完成数;失败文件保留;不暴露原生英文上传按钮。cd client && npx playwright test tests/e2e/r102-reimbursement-main-flow.spec.ts --reporter=list;业务流程:添加发票弹窗选择多个文件→上传按钮状态可见→失败提示可读。playwright|typescriptDONEDONEDONEclient/src/pages/ReimbursementDetailPage.tsx|client/src/api/invoicePool.ts|scripts/qa/check-ui-design-rules.mjs["A4"]OCR 后端调用保持现状;若发现长期处理中,仅前端显示可重试/刷新提示,后续 OCR 专项再深改。
7A6报销页面文案与结构精简按 R100 规则精简报销列表、详情和添加发票弹窗的解释型文案,突出状态、金额、明细、发票和主操作。报销列表副标题和详情说明更短;添加发票弹窗不再出现长段流程解释;PC 和移动首屏更简洁。node scripts/qa/check-ui-design-rules.mjs;cd client && npx playwright test tests/e2e/r102-reimbursement-main-flow.spec.ts --reporter=list;业务流程:员工从列表进入草稿详情并添加发票,首屏关键操作清晰。node|playwright|typescriptDONEDONEDONEclient/src/pages/ReimbursementsPage.tsx|client/src/pages/ReimbursementDetailPage.tsx|client/src/pages/reimbursement-detail/ReimbursementActions.tsx|client/src/pages/MobileReimbursementsPage.tsx["A2","A3","A4","A5"]不做全站设计重构;采购/差旅留给 R103。
8A7报销主流程自动化验证新增 R102 Playwright 用例覆盖新建草稿编号显示、删除草稿、添加发票默认绑定、批量上传控件和移动报销卡片。R102 用例通过;覆盖 PC 390/1440 关键路径;失败截图可用于后续修复。cd client && npx playwright test tests/e2e/r102-reimbursement-main-flow.spec.ts --reporter=list;业务流程:新建草稿→查看列表/详情→添加发票默认绑定→删除草稿→移动报销查看。playwrightDONEDONEDONEclient/tests/e2e/r102-reimbursement-main-flow.spec.ts["A2","A3","A4","A5","A6"]使用 mock API,不依赖生产数据;后续可追加 live smoke。
9A8验证回填与中文提交执行 CSV 校验、后端语法/Prisma、前端 typecheck/build、UI 诊断、R102 Playwright,并中文提交。A1-A7 状态按实测回填;git diff --check 通过;提交信息中文且引用 R102/A1-A8。python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-06_22-34-54-r102-reimbursement-main-flow.csv;cd server && npm run prisma:validate && node --check src/routes/reimbursements.js;cd client && npm run build;node scripts/qa/check-ui-design-rules.mjs;cd client && npx playwright test tests/e2e/r102-reimbursement-main-flow.spec.ts --reporter=list;业务流程:确认报销主流程变更可构建可回归。python|node|npm|playwright|gitDONEDONEDONEissues/2026-05-06_22-34-54-r102-reimbursement-main-flow.csv|server/src/routes/reimbursements.js|client["A1","A2","A3","A4","A5","A6","A7"]提交后进入 R103 跨页面一致性。