统一首批页面成熟设计基线(05-30-unified-page-design-review)

这个提交包含在:
2026-05-30 17:47:00 +08:00
父节点 6ae6d82355
当前提交 218ea9ad10
共修改 24 个文件,包含 837 行新增和 326 行删除
@@ -31,6 +31,97 @@ and verification contracts. Do not copy broad aesthetic guidance from
- Do not add decorative landing-page styling to operational OA pages.
- Run `cd client && npm run typecheck && npm run build` for frontend changes.
## Convention: Mature Enterprise Page Baseline
**What**: From `05-30-unified-page-design-review`, hyb-oa PC/mobile pages use
Feishu approval/workbench mental models plus Ant Design / Ant Design Pro page
patterns as the mature enterprise baseline. This is a product/interaction
reference, not a copy of Feishu or Ant Design branding.
**Global contracts**:
- Interaction innovation is off by default for OA, approval, finance, contract,
asset and management surfaces. Prefer established Feishu / Ant Design style
patterns for page layout, action placement, button naming, tabs, filters,
detail panels, confirmations and more menus. Project-specific differences
should simplify or hide low-frequency work for small teams, not invent new
controls or unusual action flows.
- Page titles default to the route name only, such as `工作台`, `待我处理`, `报销`,
`合同台账`, `个人设置` and `通知中心`. Page subtitles are off by default and
appear only for exception, empty, permission-denied, Enterprise WeChat/OA
boundary, external-system boundary or irreversible-action explanations.
- Normal workflows should not be explained in default-visible copy. Do not add
subtitles, card descriptions, helper rows or notice bars that restate obvious
actions such as "待我处理是处理工作", "查看通知消息", "先核对再处理" or "去处理要做的事".
- Header primary actions are reserved for creation or a real page-level primary
action: `新建报销`, `新建采购`, `新增合同`, `新增资产`, `新建项目`. Workbench,
pending-task, notification and read-only record pages must not force a header
button for visual symmetry.
- Button labels use common enterprise verbs: `处理`, `去处理`, `查看详情`,
`查看全部`, `查看进度`, `继续编辑`, `新建`, `新增`, `提交`, `保存`, `取消`,
`撤回`, `作废`, `归档`, `更多`. Do not use slogan-like or invented labels
such as `处理最急的一件`.
- Sidebar entries are role-aware common work entries, not an all-permissions
module catalog. Direct entries may include `工作台`, `待我处理`, `报销`, `采购`,
`合同`, `项目`, `资产`, `付款`, `应付账款`, `票据`, `团队`, `请假记录` and `管理`
when the current role has real use. Low-frequency, frozen, staged or
troubleshooting routes stay in `更多` or the `管理` landing page.
- List pages use a right-side operation column or card tail. Default row actions
are `查看详情`, `处理`, `继续编辑` or `查看进度`; low-frequency or risky actions
such as export, batch, void, download, payment and sensitive attachment
handling move to `更多`, `台账工具` or the detail page.
- Business ledger pages use the same shape: page title and optional creation
action, visible common filters, table/card list and right-side operation
column. `台账工具` contains export, batch, statistics, templates, full-scope
views and advanced filters.
- PC detail pages use an Ant Design Pro style detail workspace: top summary,
main facts/details/evidence, right-side state and action panel, and bottom
history. Do not build PC details as a free stack of equal-weight large cards.
- Workflow approval details use one action bar, not vertical action cards:
`通过` is the primary action, `退回` and `驳回` are secondary actions, and
`转审` defaults to `更多`. Actions that need a reason open a reason input and
confirmation after click. Confirmation must include the current object
summary and consequences.
- Mobile pages use top status/focus content, sectioned single-column details or
card lists, and one bottom safe-area primary action. Secondary, destructive,
approval, payment and transfer actions go into `更多` or a confirmation
panel; do not squeeze multiple risky actions into the bottom bar.
- Normal empty sections should disappear when they have no useful content. Empty
states only explain current filter/status absence and one real next step.
**Page map**:
| Surface | Template | First-screen content | Primary action rule |
| --- | --- | --- | --- |
| `工作台` | 工作台总览 | 待办摘要、常用业务入口、必要提醒 | No forced header action. Use `去处理`, `新建报销`, `查看全部` inside relevant sections. |
| `待我处理` | 任务处理列表 | `待处理` / `已处理` tabs, count, minimal filters, task list | Row action is `处理`; `已处理记录` is a tab, not a separate header button. |
| `审批详情` | 详情工作区 | Summary, facts/evidence, right summary/action panel, history | One action bar: primary `通过`, secondary `退回`/`驳回`, `转审` in `更多`. |
| `报销` / `采购` / `合同` / `项目` / `资产` / `付款` / `应付账款` / `票据` | 业务台账列表 | Common filters plus table/card list | Header creation only when the route owns creation; risky tools in `台账工具` or detail. |
| Business details | 详情工作区 | Summary, facts, evidence, relations, history | Right-side state/action panel on PC; bottom primary action on mobile. |
| `管理` | 管理配置页 | Grouped landing: `人员组织`, `审批流程`, `基础资料`, `系统设置`, `审计排障` | Management subpages use search/filter, table and right operation column. |
| `个人设置` | 管理配置页 variant | `个人资料`, `账号安全`, `通知偏好`, `企业微信绑定` | No employee dossier, permission matrix or org maintenance in the default profile path. |
| `通知中心` | 业务台账列表 variant | Event inbox for state changes, reminders, failures and sync results | Notification click deep-links to business detail, workflow task or failure explanation; never duplicates `待我处理`. |
| `请假记录` / `考勤` | 业务台账列表 or record view | Enterprise WeChat-owned records, mirror status, exceptions and audit | Ordinary users do not see OA daily leave/punch approval creation; OA emergency entry only for authorized emergency/admin scope. |
| Mobile routes | Mobile expression of the same template | Top status/focus, card list or sectioned detail | One bottom safe-area primary action; secondary actions in `更多` or confirmation. |
**Implementation order for design refactors**:
1. A-class frequent pages: workbench, pending tasks, workflow task detail,
personal settings and notification center.
2. Business ledgers and details: reimbursement, procurement, contracts,
projects, assets, payments, AP and invoices.
3. Management and boundary pages: management landing/subpages, leave records,
attendance, Enterprise WeChat archive and mobile equivalents.
**Tests Required**:
- Documentation-only updates: `python3 ./.trellis/scripts/task.py validate
<task>`, `node scripts/qa/check-trellis-governance.mjs` and
`git diff --check`.
- Frontend implementation updates: `cd client && npm run typecheck`,
`cd client && npm run build`, plus focused Playwright or screenshot coverage
for changed A-class, detail, sidebar, action-bar or mobile surfaces.
## Frozen / Boundary Items
Frozen modules and Enterprise WeChat-owned HR/attendance entries must be labeled