确认日期:2026-09-20
参考项目:D:\rxkj\zonghepingtai
当前阶段:先完成业务功能和页面,不启用真实权限控制。
admin 系统管理员账号,先跑通功能。admin 临时承担全部职责,不能把第一阶段的单账号方式直接视为正式生产权限方案。系统管理一级菜单下共 6 个子菜单:
| 序号 | 子菜单 | 第一阶段 | 说明 |
|---|---|---|---|
| 1 | 承修单位管理 | 实现 | 名称、简称、单位性质、排序、联系人、是否失信单位 |
| 2 | 产品结构树管理 | 实现 | 型号 -> X号 -> 一级系统 -> 二级系统 -> 设备,共 5 级 |
| 3 | 设备基础库管理 | 实现 | 一级系统 -> 二级系统 -> 设备,共 3 级;产品结构树设备关联设备基础库设备类 |
| 4 | 角色管理 | 页面和基础数据实现,暂不拦截 | 角色名称、角色编码、排序、备注;预留角色菜单授权和角色人员维护 |
| 5 | 菜单管理 | 实现 | 树形维护菜单、路由、类型、图标、排序、显示状态和权限标识 |
| 6 | 菜单权限管理 | 页面和授权数据实现,暂不拦截 | 预留“租户授权 + 角色授权”双重勾选规则 |
建议字段:
建议操作:
第一阶段不根据角色限制功能访问,仅保存角色和角色菜单关系,便于后续启用。
菜单采用树形结构,主要字段:
PIDNAMETYPE:菜单、按钮、系统、页面等,最终取值以设计为准URLPARAMSICONPERMISSIONSSORTSHOW_MENUIS_REFRESHREMARKREMARK2菜单维护要求:
admin 可见的全部已配置菜单。最终规则:
等价逻辑:
用户可用菜单 = 租户已授权菜单 ∩(用户所有有效角色已授权菜单的并集)
第一阶段:
admin 可使用全部菜单。参考项目做法:
/sys/menu/nav 获取菜单树。URL 加载页面组件。addRoutes 动态添加路由。PID 组成树,通过 SORT 排序。本项目沿用同一思路,但不机械复制参考项目的租户、公司和角色结构。第一阶段先保证:
以下为本项目 LX 模式下建议的逻辑对象;实际表名、字段名在 DM8 中统一使用大写,并在建表前按现有数据库规范复核:
| 逻辑表 | 用途 | 关键字段 |
|---|---|---|
LX.SYS_MENU |
动态菜单 | ID、PID、NAME、TYPE、URL、PARAMS、ICON、PERMISSIONS、SORT、SHOW_MENU、IS_REFRESH、REMARK、REMARK2 |
LX.SYS_ROLE |
角色 | ID、NAME、CODE、TYPE、SORT、REMARK、STATUS |
LX.SYS_ROLE_MENU |
角色菜单关系 | ROLE_ID、MENU_ID |
LX.SYS_USER_ROLE |
用户角色关系 | USER_ID、ROLE_ID |
LX.SYS_TENANT_MENU |
租户菜单关系 | TENANT_ID、MENU_ID |
| 登录日志 | 三员审计基础 | 用户、时间、IP、结果、浏览器信息 |
| 操作日志 | 三员审计基础 | 用户、菜单、动作、请求、结果、时间、IP |
说明:
TENANT_ID 的取值来源需要结合 SYS_DEPT、SYS_USER 和实际组织机构规则另行确认。“三员控制”暂按常见的信息系统三员分立理解为:
第一阶段不启用三员分权,统一由 admin 跑通功能。后续正式启用时,建议按以下职责分离:
| 角色 | 主要职责 | 禁止或限制 |
|---|---|---|
| 系统管理员 | 用户、角色、菜单、参数、设备基础数据、系统运维 | 不得删除或篡改安全审计日志;不得单人同时拥有审计员全部权限 |
| 安全保密管理员 | 安全策略、敏感词字典、数据密级或敏感标记、授权规则 | 不得删除审计日志;不得随意修改自身权限 |
| 安全审计员 | 查看登录日志、操作日志、安全事件和审计报表 | 不得修改业务数据、角色菜单和安全策略;审计记录只读 |
三员分权原则:
参考项目主要实现位置:
zt/core/src/main/java/com/zt/modules/sys/model/SysMenu.javazt/core/src/main/java/com/zt/modules/sys/model/SysRole.javazt/core/src/main/java/com/zt/modules/sys/model/SysRoleMenu.javazt/core/src/main/java/com/zt/modules/sys/controller/SysMenuController.javazt/core/src/main/java/com/zt/modules/sys/controller/SysRoleController.javazt/core/src/main/java/com/zt/modules/sys/controller/SysTenantController.javazt/core/src/main/resources/mapper/dm/sys/SysMenuDao.xmlzt/core/src/main/resources/mapper/dm/sys/SysRoleMenuDao.xmlweb/src/router/router.jsweb/packages/views/modules/sys/role.vueweb/packages/views/modules/sys/role-add-or-update.vueweb/packages/views/modules/sys/role-menu.vueweb/packages/views/modules/sys/menu.vueweb/packages/views/modules/sys/menu-add-or-update.vueweb/packages/views/modules/sys/tenant-menu.vue本项目只参考其动态菜单、树形配置、角色菜单关系和缓存刷新思路,不直接复制其公司、租户、安全框架和业务耦合代码。
已确认:
admin。待确认:
SYS_DEPT、SYS_USER 的关系。admin 是否保留超级管理员绕过规则。