Skip to content

资源管理 ​

功能概述 ​

资源管理(RBAC资源管理)模块用于维护系统中的菜单资源,以树形结构展示菜单层级关系。资源是权限控制的基础,通过资源管理可以定义系统的菜单结构。

WinForm端与Web端功能一致,界面布局略有差异:WinForm端采用树形列表(TreeList),Web端采用可拖拽表头的树形表格。

操作说明 ​

查询资源 ​

  1. 登录系统后,在菜单中选择 系统管理 → 资源管理
  2. 在顶部工具栏选择 分组(命名空间),筛选对应模块的资源
  3. 点击 查询/刷新 按钮刷新列表

分组(命名空间)的来源 ​

资源管理中的"分组"下拉选项来源于 键值对维护 中的数据字典,对应关系如下:

数据位置说明
父级编码sys.resource.namespace(系统固定ID)
父级名称系统资源命名空间配置
子级编码各命名空间的编码
子级名称命名空间显示名称

管理命名空间的步骤:

  1. 进入 系统管理 → 键值对维护
  2. 在左侧列表中找到编码为 sys.resource.namespace 的父级项
  3. 在右侧子级列表中添加/编辑/删除命名空间:
    • 编码:命名空间唯一标识
    • 名称:显示名称
    • 排序:显示顺序
    • 启用:是否启用
  4. 点击 保存 提交修改

系统中已使用的命名空间:

编码名称使用端说明
TDWEBWeb端菜单PC端通过环境变量 VITE_ROUTER_NAMESPACE 配置
TDMOB移动端菜单移动端通过环境变量 VITE_MOBILE_ROUTER_NAMESPACE 配置
DEFAULT系统默认命名空间后端代码中的硬编码默认值,用于受限数据等场景

提示

如果没有配置任何命名空间,系统会显示默认命名空间 DEFAULT。 资源管理中的分组筛选直接影响对应端的菜单显示,新增菜单资源时需要选择正确的命名空间。

添加同级资源 ​

  1. 在树形列表中选择一个节点
  2. 点击 添加同级(WinForm)/ 新增(Web)按钮
  3. 在弹出的编辑窗口中填写资源信息
  4. 点击 确定 完成添加

添加子级资源 ​

  1. 在树形列表中选择父节点
  2. 点击 添加子级(WinForm)/ 新增子级(Web)按钮
  3. 在弹出的编辑窗口中填写资源信息
  4. 点击 确定 完成添加

编辑资源 ​

  1. 在树形列表中选择要编辑的节点(或双击节点)
  2. 点击 编辑 按钮
  3. 修改资源信息
  4. 点击 确定 完成修改

复制资源 ​

仅WinForm端支持:

  1. 在树形列表中选择要复制的节点
  2. 点击 复制 按钮
  3. 系统自动创建副本(名称后缀"复制")
  4. 在弹出窗口中修改必要信息后保存

删除资源 ​

  1. 在树形列表中选择要删除的节点
  2. 点击 删除 按钮
  3. 确认删除

注意

如果节点下面存在子节点,需要先删除所有子节点才能删除该节点。

设置角色按钮权限 ​

仅WinForm端支持:

  1. 在树形列表中选择一个菜单节点
  2. 点击 设置已有角色按钮权限 按钮
  3. 为已有角色分配该菜单的按钮权限

树形列表字段说明 ​

界面列名绑定字段说明
资源名称(计算列)显示格式:编码-标题(如 PP1200-部门管理),带图标
排序COrder显示顺序
资源路径CResPathWinForm:模块程序集(DLL文件名);Web:路由名称
资源子路径CResSubPathWinForm:模块类的完整命名空间路径;Web:Vue组件路径
注入参数CQueryStringURL注入参数
启用CEnable是否启用(1=启用,0=禁用)
创建人Creator资源创建者
创建时间CreateTime创建时间
最后修改人LastModifier最后修改者
最后修改时间LastModifyTime最后修改时间

管理功能点 ​

功能点(按钮权限)挂在菜单资源之下,用于控制页面内按钮级别的操作权限。

WinForm端 ​

在树形列表中选择一个菜单节点,点击 子级功能点 按钮,打开"RBAC资源管理(按钮)"窗口。

操作说明:

按钮功能
查询加载当前菜单下的所有功能点
添加手动新增一行功能点
删除移除当前选中的功能点行
自动添加反射加载该菜单对应的窗体程序集,自动扫描窗体上所有按钮控件,将未登记的按钮批量添加到列表
保存批量提交所有增删改

自动添加 是推荐方式:它按资源的 地址(DLL文件名)和 子路径(窗体类名)加载窗体类型,读取界面上所有 SimpleButton 控件,以控件名作为编码、控件文本作为名称生成功能点。

表格字段说明:

列名绑定字段说明
编码CCode按钮控件名,唯一标识(如 btnAdd)
名称CName按钮显示名称(如"新增")
排序COrder显示顺序,默认 99
启用CEnable1=启用,0=禁用

TIP

按钮权限由框架自动处理(ViewControlExecutor_SimpleButton),开发者无需编写权限代码,只要按钮是 SimpleButton 控件即可生效:

  1. 事件拦截:窗体加载组件时,框架把每个按钮原有的 Click 事件处理程序从控件上摘下来,暂存到窗体 Tags 的 simplebuttons.eventhandler 字典中,再统一挂上框架自己的拦截处理
  2. 权限检查:框架调用 HasPermission(窗体, 按钮控件名) 检查当前用户权限,即 资源(窗体)+ 功能点编码(按钮 Name 属性)
  3. 隐藏无权按钮:没有权限时直接设置 btn.Visible = false
  4. 统一调度:用户点击按钮时,框架从字典中取出原始事件处理程序依次调用(自动去重,防止重复注册),并记录操作日志(按钮名.click >>> 方法全名)

权限匹配的关键是 按钮控件的 Name 属性必须与功能点编码一致。这也是推荐使用"自动添加"的原因——它直接扫描控件名生成功能点,保证编码天然匹配。

Web端 ​

在树形列表中选择一个菜单节点,点击 子级功能点 按钮,打开"子级功能点维护"对话框。

操作说明:

按钮功能
加载加载当前菜单下的所有功能点
新增新增一行功能点(排序自动按行数补零生成,如 01)
删除移除当前选中的功能点行
保存批量提交所有增删改;若列表中没有编码为 [NULL] 的空节点,会自动补充一个(权限树级联选择的空节点,不要删除)

表格支持行内编辑,直接点击单元格修改内容。

表格字段说明:

列名绑定字段说明
编码cCode功能点唯一标识(如 btnAdd)
名称cTitle功能点显示名称
动作cResSubPath动作标识
排序cOrder显示顺序

使用方式:

功能点保存后,前端通过权限指令控制按钮的显示/隐藏:

html
<t-button v-hp="'btnAdd'">新增</t-button>

将 v-hp 指令的值设置为功能点的 编码,用户拥有该功能点权限时按钮才可用。

编辑窗口字段说明 ​

WinForm端 ​

点击 添加同级、添加子级、编辑 或 复制 按钮后,弹出"编辑资源"窗口,包含以下字段:

界面标签控件类型绑定字段说明提示信息
父节点树形下拉选择CPid父级菜单节点,顶层菜单可不选-
图标下拉选择+预览CIcon菜单图标名称(SVG格式),选择后右侧实时预览图标-
编码-名称文本框CCode资源编码,唯一标识模块代号,两位大写字母+3位数字编码(如 PP1200)
(右侧文本框)文本框CTitle菜单显示名称`
地址下拉选择CResPath模块程序集,从已加载的DLL中自动识别请填dll文件名,内置报表填 rept
子路径下拉选择CResSubPath模块类的完整命名空间路径请填完整类名,网页填http打头的地址
是否启用下拉选择CEnable启用/禁用该菜单1 = 启用,0 = 禁用
资源类型下拉选择CResType资源类型,目前支持 Menu(菜单)-
排序文本框COrder显示顺序,数字越小越靠前-
注入参数文本框CQueryString在构造函数后注入的参数举例:name=zhaxg&pawd=234

操作按钮:

  • 确定:保存资源并关闭窗口
  • 取消:放弃修改并关闭窗口

Web端 ​

点击 新增、新增子级 或 编辑 按钮后,弹出"资源信息"对话框,包含以下字段:

界面标签控件类型绑定字段说明提示信息
ID文本框(只读)id资源唯一标识,新增时自动生成[自动生成]
父级ID文本框(只读)cPid父级菜单的ID-
资源名称图标选择器+文本框cIcon / cCode / cTitle左侧选择SVG图标,中间输入编码,右侧输入名称编码格式:三位字母+四位数字(如 TAB1234)
布局类型文本框cName布局类型,非具体页面路由默认提供 LAYOUT、BLANK、IFRAME 三种类型
路由名称文本框cResPath由树结构生成的路由地址只填写当前节点的名称,不带 / 符号
组件路径文本框cResSubPathVue组件的路径vue文件地址;外部链接填URL;跳转填路由名称+=_blank
注入参数文本框cQueryStringURL注入参数-
排序文本框cOrder显示顺序,数字越小越靠前-
是否启用下拉选择cEnable启用/禁用该菜单1 = 启用,0 = 禁用
资源类型下拉选择(隐藏)cResType资源类型,固定为菜单固定值:2(菜单)

操作按钮:

  • 确定:保存资源并关闭对话框
  • 取消:放弃修改并关闭对话框

HiMind 工业互联网平台 技术文档