4.0 KiB
4.0 KiB
菜单栏角色化降噪重构设计
Design Direction
采用“安静的任务型工作栏”:一级导航不是模块目录,而是每类用户今天最可能要点击的任务入口。视觉上保持当前 OA 工具气质,降低解释性文案和卡片感,让菜单通过排序、角色显隐和短中文名表达优先级。
Information Architecture
普通员工
- 工作台
- 报销
- 请假记录
- 我的进度
- 更多
审批人 / 负责人
- 工作台
- 待我处理
- 报销
- 项目
- 团队
- 更多
财务 / 管理员
- 工作台
- 待我处理
- 报销
- 付款
- 应付账款
- 票据
- 管理
- 更多
具体入口仍受权限和 feature flag 限制;上面是目标信息架构,不代表绕过权限展示。
Proposed Implementation
-
服务端导航
- 在
server/src/services/workspaceSettings.js中统一用户可见文案:workflowTasks:待我处理leaveRequests:请假记录paymentBatches:付款apOperations:应付账款invoicePool:票据featureFlags:功能管理erpIntegrations:外部系统
- 调整
DEFAULT_MODULE_VISIBILITY:普通高频保留,低频配置、预算、集成、审计等默认后置。 - 保证
workflowTasks只对业务审批人、负责人、财务等可处理角色出现。 - 避免普通员工看到财务、票据、管理、个人设置入口。
- 在
-
前端导航分组
- 在
client/src/components/navigation/NavLinks.tsx中让服务端 placement 和角色语义成为主导。 - 移除“按路径重新把 backup 提升到业务/财务”的行为,或改为只在同一后置层内排序。
更多改为轻量 details/summary 行,无副标题、无大卡片。- 侧边栏一级分组减少到任务感更强的结构,避免展示过多 section label。
- 在
-
侧边栏壳层
- 在
client/src/components/navigation/Sidebar.tsx移除今日优先说明卡。 - 若需要轻量状态提示,后续只在有真实待处理数量时显示;本轮优先移除说明卡,不强制新增数据查询。
- 在
-
顶部和账号入口
个人设置保留在Topbar账号菜单,不出现在侧边栏。- 通知保留顶部铃铛,不加入侧边栏。
-
移动底栏
- 在
client/src/components/mobile/MobileBottomNav.tsx中把审批人文案改为待办,非审批人继续显示进度。 - 不新增移动底栏
请假。
- 在
-
工作区设置页
- 在
client/src/pages/WorkspaceSetupPage.tsx中调整文案:从“主导航/管理区/隐藏”的模块视角,转成“常用入口/管理与低频/隐藏”或等价表达。 - 保留现有能力,不在本轮开发复杂的拖拽或角色矩阵配置。
- 在
-
文档和规则
- 更新
docs/产品设计规则.md:新增功能默认不进一级侧边栏,必须先判断角色、频次和真实待办价值。 - 更新
.trellis/spec/hyb-oa/frontend-react-vite-design.md:固化导航壳层和菜单降噪规则。
- 更新
Risk And Mitigation
- 风险:前端重分组和服务端 placement 互相打架,导致后置模块又被抬到一级。
- 缓解:把服务端结果作为事实源,前端只排序和轻量归类;增加角色导航单测。
- 风险:文案变更影响既有测试断言。
- 缓解:同步更新导航、smoke 和截图断言。
- 风险:管理合并入口没有完整管理首页承接。
- 缓解:本轮可先指向现有工作区设置或现有管理承接页;不做管理页大改。
- 风险:普通员工入口过少导致找不到低频功能。
- 缓解:保留
更多和全局搜索;低频能力隐藏/后置,不删除。
- 缓解:保留
Verification Plan
- 服务端角色导航单测覆盖 employee、manager、finance、admin、owner。
- 前端 typecheck/build。
- 截图检查 PC 1440 宽侧边栏和移动 390 宽底栏。
- 文档 diff 检查新规则是否只沉淀产品事实和工程约束,不加入视觉细节到
docs/产品设计规则.md。