Skip to content

BizRolePermMatrix 角色权限矩阵 ​

角色 × 权限点勾选矩阵:权限点按模块分组为行、角色为列,单元格勾选维护 roleId → 权限点列表(v-model);模块行整组勾选(半选态)、底部每角色授权数汇总(吸底)、表头吸顶 + 首列吸左双吸附滚动。RBAC 授权编辑页的矩阵区,配一个提交按钮即成页。

基础用法 ​

权限 / 角色
系统管理员
运营主管
一线运营
订单管理
订单查看
订单编辑
订单导出
退款处理
商品管理
商品查看
商品编辑
上下架
已授权 / 总数
7 / 7
4 / 7
1 / 7

manager / operator 当前为部分勾选——对应模块行呈半选态

模块分组行整组勾选(半选态联动),单元格勾选维护 v-model 映射。

事件联动 ​

权限 / 角色
管理员
运营
订单管理
订单查看
订单编辑
订单导出
已授权 / 总数
1 / 3
0 / 3
change 外抛单点 / 整组勾选(整组时 permId 为数组),可做变更留痕。

汇总与吸附滚动 ​

权限 / 角色
超级管理员
运营主管
一线运营
财务管理
只读审计
外部合作
订单中心
订单中心查看
订单中心新增
订单中心编辑
订单中心删除
订单中心导入
订单中心导出
订单中心审核
订单中心停用
商品中心
商品中心查看
商品中心新增
商品中心编辑
商品中心删除
商品中心导入
商品中心导出
商品中心审核
商品中心停用
会员中心
会员中心查看
会员中心新增
会员中心编辑
会员中心删除
会员中心导入
会员中心导出
会员中心审核
会员中心停用
营销中心
营销中心查看
营销中心新增
营销中心编辑
营销中心删除
营销中心导入
营销中心导出
营销中心审核
营销中心停用
数据中心
数据中心查看
数据中心新增
数据中心编辑
数据中心删除
数据中心导入
数据中心导出
数据中心审核
数据中心停用
已授权 / 总数
40 / 40
0 / 40
0 / 40
0 / 40
5 / 40
0 / 40

纵向滚动表头吸附、横向滚动首列吸附;底部汇总行随滚动保持可见

多模块多角色:表头吸顶、首列吸左、汇总吸底,maxHeight 控制可视高度。

程序化操作 ​

权限 / 角色
管理员
运营
订单管理
订单查看
订单编辑
订单导出
商品管理
商品查看
商品编辑
已授权 / 总数
1 / 5
0 / 5
expose:单角色全选 / 清空、单权限点全员设置、清空全部、取值。

禁用 ​

权限 / 角色
系统管理员
一线运营
订单管理
订单查看
订单编辑
已授权 / 总数
2 / 2
1 / 2
disabled 整矩阵只读(查看场景)。

自定义单元格 ​

权限 / 角色
系统管理员 内置
一线运营 自定义
◈ 订单管理
订单查看
退款处理 高危
已授权 / 总数
2 / 2
0 / 2
role / module / perm 插槽接管对应单元格内容(图标、说明等)。

变更留痕 ​

权限 / 角色
运营主管
一线运营
订单管理
订单查看
订单编辑
订单导出

变更留痕(业务层持有初始快照自行 diff,提交前确认):

与初始授权一致,无改动

业务层持有初始快照与 v-model 逐角色 diff,提交前展示新增 / 移除明细。

空数据占位 ​

权限 / 角色
订单管理
订单查看
订单编辑
暂无角色
已授权 / 总数
无角色 / 无权限配置时给出对应占位提示。

Props ​

属性名类型默认值说明
v-modelRecord<string, string[]>{}授权结果:roleId → 已授权权限点 id 列表
rolesBizRolePermRole[][]角色列表(矩阵列,id / name / description)
permissionsBizRolePermModule[][]权限模块列表(矩阵行,按模块分组)
disabledbooleanfalse整体只读
show-summarybooleantrue底部每角色授权数汇总行(吸底)
max-heightnumber | string420表体最大高度(超出滚动)

Events ​

事件名参数说明
update:modelValue(value: Record<string, string[]>)授权结果变化
change(roleId, permId, checked)勾选变化;单点 permId 为 string,整组 / 全员为 string[](全员 roleId 为 '*')

Slots ​

插槽名作用域说明
role{ role }列头角色名单元格
module{ module }模块分组行名单元格
perm{ module, perm }权限点行名单元格

Expose ​

名称类型说明
getCheckedMap() => Record<string, string[]>取授权结果(深拷贝)
setRoleAll(roleId, checked) => void单角色全选 / 清空
togglePermAll(permId, checked) => void单权限点对所有角色统一设置
clearAll() => void清空全部授权

TIP

权限点 id 需跨模块唯一;授权结果是纯数据映射,提交与 diff(与初始值对比)由业务层完成——配合 BizDiffViewer 可做变更预览。