4. 用户角色定义页面:角色列表、角色CRUD、角色属性面板

4.1 用户场景与业务问题

权限管理员在为SaaS后台配置权限体系时,需要先定义一套完整的角色集合。例如,一家内容平台需要划分「超级管理员」「运营主管」「内容编辑」「数据分析师」「访客」五个角色,每个角色对应不同的功能权限和数据范围。以下是这一场景中常见的业务痛点:

  • 角色定义混乱:角色名称与职责不匹配,运营人员能看到财务报表,数据权限边界模糊。
  • 新增角色周期长:过去新增角色需要开发写代码并发布上线,平均耗时2~3天,无法响应快速变化的业务。
  • 角色属性不统一:同一角色在不同模块的展示名称、编码、状态不一致,导致权限配置交叉冲突。
  • 变更无追溯:角色被删除或属性被修改后没有操作记录,出现问题无法定位责任人。
避坑提醒:删除角色前必须先校验是否有关联用户。如果直接删除正在被使用的角色,会导致大量用户权限瞬间失效,造成生产事故。建议在删除时弹出二次确认,并展示关联用户数量。

4.2 需求拆解

角色定义页面可拆解为三个核心模块:角色列表、角色CRUD、角色属性面板。各模块的功能点如下表所示:

模块 功能点 详细说明
角色列表 展示全部角色 以表格形式展示角色名称、编码、状态、描述、创建时间
搜索与筛选 支持按角色名称/编码模糊搜索,按状态(启用/禁用)筛选
分页与排序 默认每页10条,支持按创建时间升序/降序排列
角色CRUD 新增角色 弹窗表单填写角色信息,保存后刷新列表
编辑角色 点击行或编辑按钮,在右侧面板修改属性
删除角色 二次确认后执行删除,同步更新列表
查看角色 点击角色行,右侧面板展示完整属性
角色属性面板 基础属性 角色名称、角色编码、角色状态、角色描述
权限配置 以树形勾选或矩阵表格形式配置功能权限与数据权限
关联用户数 展示当前角色下关联的用户数量,支持点击跳转
设计建议:角色编码建议使用统一前缀加业务域的方式,例如 role_content_editor、role_data_viewer。编码一旦创建不可修改,作为角色唯一标识。这样在权限校验和日志追溯时更可靠。

4.3 原型方案表达

在Axure中,角色定义页面采用「左列表 + 右面板」的双栏布局:左侧为角色列表,右侧为角色属性面板。顶部放置全局操作按钮「新增角色」和「刷新」。

角色列表表格设计:

  • 列定义:角色名称(左对齐)、角色编码(左对齐)、状态(居中,开关组件)、描述(省略号溢出)、创建时间(右对齐)、操作(右对齐)。
  • 行交互:单击行 → 选中并高亮 → 右侧面板加载该角色的完整属性。
  • 状态列使用Axure的复选框或开关元件,切换后即时更新状态,并显示toast提示。

角色属性面板设计:

  • 查看模式:所有字段只读显示,背景为浅灰色。
  • 编辑模式:点击「编辑」按钮后,字段变为可编辑输入框/下拉选择/树形权限控件,背景变为白色。
  • 权限配置区:采用树形勾选结构,第一层为模块(如用户管理、内容管理、数据看板),第二层为操作(查看、新增、编辑、删除、导出)。

CRUD操作入口与反馈:

  • 新增:点击顶部「新增角色」→ 弹出表单弹窗 → 填写必填项(名称、编码)→ 点击「保存」→ 弹窗关闭 + 列表刷新 + 成功提示。
  • 编辑:点击操作列「编辑」或双击行 → 右侧面板切换为编辑模式 → 修改后点击「保存」→ 面板恢复只读 + 列表更新 + 成功提示。
  • 删除:点击操作列「删除」→ 弹出确认弹窗(展示关联用户数)→ 确认后删除 + 列表刷新。
  • 查看:单击行 → 右侧面板展示属性,无需额外操作。
最佳实践:权限配置遵循「最小权限原则」——每个角色只配置完成其职责所必需的最小权限集。例如「内容编辑」角色只需要内容模块的新增、编辑权限,不需要删除和导出权限。这能有效降低数据泄露风险。

4.4 交互逻辑

以下为角色CRUD各操作的完整交互流程:

操作 触发方式 交互反馈 数据影响
新增 点击「新增角色」按钮 弹窗表单 → 填写 → 保存 → 弹窗关闭 + 列表刷新 + toast提示 插入一条角色记录
查看 单击角色行 行高亮 + 右侧面板加载角色属性(只读) 无
编辑 点击操作列「编辑」按钮 右侧面板切换为编辑模式 → 修改 → 保存 → 面板恢复只读 + 列表更新 更新角色记录
删除 点击操作列「删除」按钮 确认弹窗(展示关联用户数)→ 确认 → 列表刷新 + toast提示 删除角色记录及关联关系
状态切换 点击列表中的状态开关 开关切换 + 即时更新 + toast提示「角色已启用/禁用」 更新角色状态字段

异常交互处理:

  • 新增时,角色编码已存在 → 弹窗内显示红色错误提示「编码已被占用」,保存按钮不可点击。
  • 删除时,角色关联用户数 > 0 → 确认弹窗中显示「该角色下关联 N 个用户,删除后这些用户将失去该角色权限」,用户必须勾选「我已确认」才能执行删除。
  • 编辑时,如果其他管理员同时修改了该角色 → 保存时提示「角色信息已被修改,请刷新后重试」,面板刷新为最新数据。

4.5 验收标准

  • 角色列表默认加载全部角色,支持按名称/编码搜索,按状态筛选,分页正常。
  • 单击角色行,右侧面板正确展示该角色的名称、编码、状态、描述、权限配置、关联用户数。
  • 新增角色:填写完整信息后保存成功,列表刷新后出现新角色;编码重复时有明确错误提示。
  • 编辑角色:切换到编辑模式后字段可修改,保存后列表和面板同步更新;取消编辑后面板恢复修改前状态。
  • 删除角色:确认弹窗展示关联用户数,确认后角色从列表中移除;关联用户数大于0时有二次确认勾选。
  • 状态切换:开关切换即时生效,列表状态列更新,角色在权限校验时按新状态执行。
  • 权限配置:树形勾选正确回显已选权限,保存后权限校验按最新配置生效。

角色权限管理核心流程

下图展示了从权限管理员发起,到角色定义完成并最终关联用户的完整流程,包含角色CRUD各分支路径:

角色权限管理核心流程 角色定义是权限体系的基石 所有用户权限通过角色关联生效 权限管理员 角色列表管理 新增角色 编辑角色 删除角色 角色属性面板 名称·编码·状态·权限配置 用户-角色关联生效 填写角色信息 修改角色属性 确认删除
Axure实现要点:角色列表与属性面板之间的联动可使用Axure的「全局变量」或中继器选中的行数据来驱动。单击列表行时,将行数据写入全局变量,面板各字段通过局部变量读取并展示。编辑模式下,将输入框与中继器列绑定,保存时更新中继器数据并刷新列表。