proposal.md 1.7 KB

角色菜单权限管理

变更概述

将前端硬编码的导航栏菜单迁移到后端数据库表中存储,支持按用户角色配置菜单权限,实现灵活的权限管理。

问题背景

当前系统的前端导航栏菜单(App.tsx 中的 menuItems)是硬编码的,无法动态调整用户可见的菜单项,也无法根据不同角色(管理员、普通用户、科室用户等)配置不同的菜单权限。

需求描述

  1. 菜单数据持久化:将所有菜单项保存到后端 IRIS 数据库表中
  2. 角色权限配置:支持为不同角色分配不同的菜单访问权限
  3. 动态菜单加载:用户登录后,根据其角色动态加载对应的菜单
  4. 菜单层级管理:支持一级菜单和子菜单的层级结构

业务价值

  • 提高系统的灵活性,无需修改代码即可调整菜单配置
  • 实现细粒度的权限控制,不同角色用户看到不同的功能菜单
  • 统一管理菜单,便于系统维护和扩展

预期成果

后端结构

接口服务层(src.Menu路径)

  • src.Menu.Interface - Menu REST接口路由定义
  • src.Menu.Service - Menu接口实现服务类

数据表层(User路径)

  • User.CBMenu - 菜单字典表(系统级)
  • User.CBRoleMenu - 角色菜单权限表

前端

  • 前端登录后根据用户角色动态加载菜单
  • 提供菜单管理界面供管理员配置

代码路径约定

类型 路径 说明
接口路由类 src.Menu.Interface REST接口路由定义
服务实现类 src.Menu.Service 接口业务逻辑实现
数据表 User.CBMenu 菜单基础表
数据表 User.CBRoleMenu 角色菜单权限表