文件
hyb-oa/.trellis/tasks/archive/2026-05/05-31-unified-menu-remove-ledger-tools-wave2/prd.md
T

4.7 KiB
原始文件 Blame 文件历史

统一菜单命名并移除剩余台账工具

Goal

把 wave1 未覆盖的业务页面继续收敛到成熟后台惯例:全系统不再使用泛化的 台账工具 按钮,菜单栏统一使用短模块名,避免同一层级混用 报销、采购申请、合同台账 这类不同粒度名称。

What I Already Know

  • 产品面向国内小于 10 人的科技初创公司,首屏要低复杂度、少解释文案、动作位置稳定。
  • wave1 已完成 报销 和 资产 页面去 台账工具,并新增列表/详情/编辑薄模板规则。
  • 当前仍有 台账工具 残留在 采购、合同、项目、付款、应付账款、票据。
  • 当前菜单命名残留不一致:报销、采购申请、合同台账、资产台账 等混用。
  • 用户已确认 wave2 规则:菜单统一为短模块名,页面内按具体上下文显示详情或单据名。

Scope

  • 移除剩余业务页面中的用户可见 台账工具 文案和按钮。
  • 将原有能力迁移到明确动作:筛选、导出、统计、新增、上传、绑定、创建批次、更多 或详情页操作区。
  • 统一 PC 导航、服务端导航配置和页面路由标题里的模块命名。
  • 更新 docs/产品设计规则.md 和前端 spec,禁止后续再新增泛化 台账工具。
  • 更新相关 Playwright 断言,新增或调整防回归检查。

Requirements

  • 菜单栏统一短模块名:
    • 报销
    • 采购
    • 合同
    • 项目
    • 资产
    • 付款
    • 应付账款
    • 票据
  • 页面标题也优先使用短模块名;详情页、审批对象、单据正文可以继续使用具体名称如 采购申请、合同详情、采购详情。
  • 不删除原功能,只把入口迁移到具体、可理解的位置。
  • 不改变后端业务逻辑、权限模型、审批规则、付款状态机、OCR 规则或数据结构。
  • 不做公网部署,除非用户后续另行批准。

Acceptance Criteria

  • client/src/pages/** 中普通用户页面不再出现可点击的 台账工具。
  • PC 菜单和服务端导航返回的业务模块名统一为短模块名。
  • 采购、合同、项目、付款、应付账款、票据的原工具能力仍可通过明确动作访问。
  • docs/产品设计规则.md 与 frontend spec 均记录禁用 台账工具 和菜单命名规则。
  • cd client && npm run typecheck 通过。
  • cd client && npm run build 通过。
  • 相关聚焦 Playwright 或静态检查通过。

Out Of Scope

  • 不部署公网。
  • 不重做页面视觉大布局和详情页信息架构。
  • 不改审批、付款、OCR、资产流转、合同归档等业务状态机。
  • 不一次性处理非业务菜单,如后台管理子页面、审计、配置页面的深层命名。

Test Plan

  • rg -n "台账工具" client/src/pages client/src/components server/src/services/workspaceSettings.js docs/产品设计规则.md .trellis/spec/hyb-oa/frontend-react-vite-design.md
  • cd client && npm run typecheck
  • cd client && npm run build
  • 聚焦运行受影响的菜单/视觉/确认类 Playwright 测试。
  • git diff --check
  • python3 ./.trellis/scripts/task.py validate 05-31-unified-menu-remove-ledger-tools-wave2
  • node scripts/qa/check-trellis-governance.mjs

Validation Results

  • rg -n "台账工具|showLedgerTools|showBatchTools|ledger-tools|合同台账|资产台账|票据中心|AP 运营|ERP 集成" client/src server/src/services/workspaceSettings.js client/src/features/navigation/schema.ts:无匹配。
  • cd client && npm run typecheck:通过。
  • cd client && npm run build:通过。
  • E2E_BASE_URL=http://127.0.0.1:5173 npx playwright test tests/e2e/r103-cross-page-ui-consistency.spec.ts tests/e2e/pc-finance-admin-visual-wave4.spec.ts tests/e2e/visual-shell.spec.ts --workers=1 --reporter=list:12 passed。
  • git diff --check:通过。
  • python3 ./.trellis/scripts/task.py validate 05-31-unified-menu-remove-ledger-tools-wave2:通过。
  • node scripts/qa/check-trellis-governance.mjs:通过,有 implement_non_spec_context 提醒,原因为 implement.jsonl 引用了业务事实源 docs/产品设计规则.md。

Technical Notes

  • 设计裁决:frontend-design skill;成熟后台参考 Ant Design / Ant Design Pro 的命名和动作位置。
  • 重点页面:
    • client/src/pages/PurchaseRequestsPage.tsx
    • client/src/pages/ContractsRegistryPage.tsx
    • client/src/pages/ProjectsPage.tsx
    • client/src/pages/PaymentBatchesPage.tsx
    • client/src/pages/ApOperationsPage.tsx
    • client/src/pages/InvoicePoolPage.tsx
  • 菜单配置:
    • client/src/components/navigation/NavLinks.tsx
    • client/src/features/navigation/schema.ts
    • server/src/services/workspaceSettings.js