文件
hyb-oa/.trellis/tasks/05-31-business-edit-template-remove-ledger-tools-wave1/prd.md
T

95 行
5.0 KiB
Markdown
原始文件 Blame 文件历史

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
# 建立业务编辑模板并移除台账工具首批
## Goal
按已确认的 frontend-design 规则建立业务编辑页模板,并先在报销、资产两个高频页面取消 `台账工具` 入口,把原有能力迁移到具体、可理解的动作位置,降低国内小团队日常使用复杂度。
## What I Already Know
- 面向对象是国内小于 10 人的科技初创公司,系统应优先低复杂度、高频动作和成熟后台惯例。
- 当前已有列表模板 `BusinessListTemplate.tsx` 和详情模板 `BusinessDetailTemplate.tsx`。
- 当前还没有统一编辑模板。
- 用户明确不想要 `台账工具` 这个泛化入口。
- 本轮采用成熟 Ant Design / Ant Design Pro 式后台结构:页头主动作、状态/范围切换、筛选、表格、选中后批量条、详情右侧操作区、编辑页分区表单。
## Scope
- 新增 `BusinessEditTemplate` 及配套编辑页布局组件。
- 首批只迁移报销列表和资产列表中的 `台账工具` 入口。
- 更新 frontend 设计规范,固化三类模板和 `台账工具` 禁用规则。
- 补充或调整必要的前端测试断言。
## Requirements
- 列表、详情、编辑模板必须只统一布局和交互槽位,不做 JSON 配置式页面生成器。
- `台账工具` 按钮名不得继续出现在报销、资产首批页面。
- 报销列表:
- `新建报销` 保持页头主按钮。
- 更多创建方式归入 `新建报销` 的下拉或明确命名入口。
- 导出使用明确的 `导出` 入口。
- 全范围/仅自己/审批中台账使用范围或筛选动作,不藏在 `台账工具`。
- 资产列表:
- 常用列表筛选和状态切换保持在列表上方。
- 导出、盘点、导入等能力使用具体动作名或详情/管理入口,不使用 `台账工具`。
- 编辑模板应支持:
- 标题、返回、状态;
- 右上角操作;
- 底部固定操作条;
- 分区表单;
- 校验摘要;
- 未保存提醒接入点。
## Acceptance Criteria
- [x] 新增业务编辑模板组件并可被后续页面复用。
- [x] 报销页不再出现 `台账工具` 文案,原功能仍可通过具体按钮/下拉访问。
- [x] 资产页不再出现 `台账工具` 文案,原功能仍可通过具体按钮/下拉访问或合理迁移。
- [x] 前端规范记录三类模板和 `台账工具` 禁用规则。
- [x] `cd client && npm run typecheck` 通过。
- [x] `cd client && npm run build` 通过。
- [x] 相关 Playwright/静态检查按需通过。
## Out Of Scope
- 不一次性迁移合同、采购、付款、应付账款、票据和项目。
- 不重做业务状态机、审批规则或后端接口。
- 不把所有业务字段改成配置生成。
- 不做公网部署,除非用户后续明确批准。
## Test Plan
- `cd client && npm run typecheck`
- `cd client && npm run build`
- `rg -n "台账工具" client/src/pages/ReimbursementsPage.tsx client/src/pages/AssetRegistryPage.tsx`
- 运行受影响页面相关的聚焦 Playwright 测试,或新增静态/组件断言覆盖入口文案。
## Technical Notes
- 设计裁决:`frontend-design` skill。
- 现有列表模板:`client/src/components/patterns/BusinessListTemplate.tsx`
- 现有详情模板:`client/src/components/patterns/BusinessDetailTemplate.tsx`
- 首批页面:`client/src/pages/ReimbursementsPage.tsx`、`client/src/pages/AssetRegistryPage.tsx`
## Validation Result
- `cd client && npm run typecheck`:通过。
- `cd client && npm run build`:通过。
- `rg -n "台账工具|showLedgerTools|asset-ledger-tools|更多创建方式" client/src/pages/ReimbursementsPage.tsx client/src/pages/AssetRegistryPage.tsx`:无结果。
- `git diff --check`:通过。
- `python3 ./.trellis/scripts/task.py validate 05-31-business-edit-template-remove-ledger-tools-wave1`:通过。
- `node scripts/qa/check-trellis-governance.mjs`:通过。
- `cd client && npx playwright test tests/e2e/system-action-confirmation.spec.ts --workers=1 --reporter=list`:2 passed。
- `cd client && npx playwright test tests/e2e/visual-shell.spec.ts --workers=1 --reporter=list`:5 passed。
## Deployment Result
- 部署提交:`1428cc4`。
- 部署命令:`SYNC_ENV=0 bash deploy/trialrun/deploy.sh`。
- 部署时间:2026-05-31。
- 部署结果:通过,未同步或覆盖远端 `.env`。
- 远端部署自动检查:部署环境契约、远端 `/ready`、external deps smoke、runtime smoke、公网前端资源文案扫描均通过。
- 公网匿名检查:`https://oa.hyinda.com/ready` 返回 `ok=true`,首页 `HTTP 200`。
- 公网 readiness:加载本机 live smoke 凭据后,`check-live-smoke-env --strict` 通过,`run-live-smoke-readiness.sh` 通过;live smoke 3 passed,真实 OCR 样本复核 1 passed,pending OCR 因本地未注入 `DATABASE_URL` 记录为 `SKIP`。
- 公网定向复检:报销页和资产页均不再出现 `台账工具`,截图保存在 `output/playwright/live-post-deploy-ledger-tools/`。
- 结论:用户可以访问公网验证本轮改造效果。