文件
hyb-oa/.trellis/tasks/08-05-interaction-pattern-unification/implement.md
T

4.1 KiB
原始文件 Blame 文件历史

实施计划

1. 共享错误入口

  • 修改 resolveErrorMessage 默认去除 code,并为确需技术 code 的管理/审计场景提供显式分离能力。
  • 迁移当前 58 个文件中的普通用户消息拼接,保留 API code 作为控制流判断而非展示文本。
  • 增加源码/组件回归,覆盖 Portal、审批、报销、移动页和管理例外边界。

2. 状态与命名

  • StatusBadge 未知值显示“未知状态”;员工在职阶段显式映射中文。
  • TodosPage 状态选项/徽章中文化。
  • 将用户可见的审批任务、个人事项和聚合面板收敛为“待我审批 / 我的事项 / 今日待处理”,同步 PC/移动导航和测试断言。

3. 首页与 WelcomeDialog

  • 调整 PC 工作台内容顺序,今日待处理先于常用入口。
  • WelcomeDialog 接收权限过滤后的入口,无审批权限时不显示审批入口。
  • 删除移动考勤说明卡;财务 tile 只保留真实指标。

4. 审批与反馈

  • 为退回/驳回补后果说明,核对服务端动作语义不变。
  • 转审理由显示至少 10 字要求和禁用原因。
  • 费用控制改为业务后果表达。
  • 本任务触及的字段错误、区域失败和提交失败按设计放置,输入与恢复入口不丢失。

5. 移动动作与差旅缺陷

  • 抽取共享移动底部动作容器并迁移移动报销、移动审批与 BusinessEditTemplate;统一安全区、内容留白和 pending/disabled 表达。
  • 已评估付款响应式页;其动作条仍含付款批次专用响应式结构,本轮按设计保留为已记录例外,不强行迁移。
  • 删除差旅自动选中第一条的 effect,保留显式 ?id= 详情。

6. 可访问性与测试

  • 为本任务触及的表单补关联 label、键盘/焦点断言和邻近错误。
  • 更新 login-portal-ux.spec.ts、workflow-action-confirm-ui.spec.ts 等既有断言,并新增 interaction-pattern-unification.spec.ts 覆盖共享错误、移动动作、状态、WelcomeDialog、工作台恢复和差旅缺陷合同。
  • 运行 cd client && npm run typecheck。
  • 运行 cd client && npm run build。
  • 运行无浏览器源码合同 Playwright:interaction-pattern-unification.spec.ts 共 6 项通过。
  • 运行需要 Chromium 的聚焦浏览器回归:当前环境默认浏览器缺失,系统 Chromium 又因沙箱权限 Operation not permitted 无法启动,记为 PAUSED,不得宣称浏览器用例通过。
  • 运行普通错误消息 code 前缀扫描,并人工核对 AuditLogsPage 为唯一技术明细例外。
  • 运行 task validate、process contract、docs registry、Trellis governance 和 git diff --check;规范/事实源更新后最终复跑通过。

7. 提交与回滚

  • 提交前确认没有业务 URL、后端 API、schema、权限模型或真实数据变化;导航改动仅为已批准的入口文案与现有权限能力过滤。
  • 使用中文 commit message 并引用 08-05-interaction-pattern-unification。
  • 共享工具回滚时同步回滚消费者;移动审批、移动报销与 BusinessEditTemplate 不混用新旧容器,付款页旧实现按已记录例外保留。

8. 当前验证记录

  • cd client && npm run typecheck:通过。
  • cd client && npm run build:通过。
  • npx playwright test tests/e2e/interaction-pattern-unification.spec.ts --workers=1 --reporter=list:6 passed。
  • npx playwright test --list:可发现 61 个文件、222 个测试。
  • python3 ./.trellis/scripts/task.py validate 08-05-interaction-pattern-unification:通过。
  • node scripts/qa/check-process-contract.mjs --baseline --json:PASS,0 errors / 0 warnings。
  • node scripts/qa/check-trellis-governance.mjs:PASS,0 errors / 0 warnings。
  • node scripts/qa/audit-docs.mjs --check-registry:0 errors;保留既有 22 个未登记文档 warning。
  • git diff --check:通过。
  • 需要真实 Chromium 的聚焦页面回归:PAUSED。阻塞来自当前执行环境的浏览器安装/沙箱权限,不作为产品用例失败,也不替代后续可运行环境中的浏览器验证。