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的「全局变量」或中继器选中的行数据来驱动。单击列表行时,将行数据写入全局变量,面板各字段通过局部变量读取并展示。编辑模式下,将输入框与中继器列绑定,保存时更新中继器数据并刷新列表。