refactor: 菜单栏角色化降噪(role-based-navigation-simplification)

这个提交包含在:
2026-05-29 21:11:32 +08:00
父节点 325a7950c9
当前提交 541593a5b6
共修改 58 个文件,包含 796 行新增和 366 行删除
@@ -167,8 +167,9 @@ header baseline instead of recreating page-local wrappers:
- `AppShellLayout` owns the PC shell background and content offset through
`app-shell` and `app-shell-main`.
- `Sidebar` and `NavLinks` own primary navigation grouping. The mental model is
`工作` -> `业务` -> `财务` -> `管理` -> collapsed `更多`.
- `Sidebar` and `NavLinks` own role-aware task navigation. The mental model is
a short primary task list plus collapsed `更多`; management configuration is
represented by one `管理` entry instead of many sidebar rows.
- `Topbar` is a compact command surface: page title, group badge, user context,
global search and notifications. Do not expand it back into a large hero.
- `PageHeader` and `WorkspaceHeader` should use `page-header-shell`,
@@ -181,6 +182,26 @@ header baseline instead of recreating page-local wrappers:
**Why**: The shell/header baseline gives Wave3-5 pages a stable visual entry
point and prevents each route from inventing a different title/action layout.
**Navigation Rules**:
- Sidebar entries should be role-aware and task-first for domestic tech startups
under 10 people; do not expose all permission-allowed modules as a default
module catalog.
- Approvers see `待我处理`; ordinary employees should not see `待办` or
`审批待办` in the sidebar by default.
- PC leave navigation uses `请假记录` unless the current task explicitly opens OA
emergency leave submission.
- `个人设置` stays in the topbar account menu. Notifications stay in the topbar
bell and notification center.
- Finance labels should use work names such as `付款`, `应付账款` and `票据`;
internal platform words like `AP 运营`, `ERP 集成` and `功能开关` should be
hidden behind management wording or renamed for users.
- `更多` is a lightweight collapsed row for low-frequency entries; do not add a
sidebar explanation card, subtitle or onboarding copy around it.
- Playwright navigation helpers should use exact names or anchored regex for
short sidebar labels such as `管理`, otherwise fuzzy role-name matching can
click longer labels such as `预算管理`.
**Example**:
```tsx