第3章 Axure基础元件与交互:动态面板、中继器、交互用例、条件设置
3.1 用户场景:权限原型中的典型交互困境
产品经理在设计权限系统原型时,常遇到以下三类高频场景:
- 场景一:不同角色看到不同页面。如管理员进入控制台能看到“用户管理”菜单,普通成员则看不到。若用独立页面为每个角色复制一份,将导致原型膨胀且难以维护。
- 场景二:同一按钮在不同权限下反应不同。例如“删除”按钮,对管理员直接弹出确认框,对普通成员则提示“无权限”。静态原型无法表达这种条件分支。
- 场景三:权限列表需动态渲染。角色与权限的对应关系经常变动,若手动绘制每个角色的权限表格,每次需求变更都需要重新出图,效率极低。
产品经理痛点 —— 上述三个场景的共性问题是:静态原型只能展示“某一时刻”的界面,而权限交互的本质是“不同条件→不同状态”的动态映射。要解决这个问题,必须掌握 Axure 中四个基础但强大的元件与交互机制。
3.2 业务问题:静态原型无法表达权限变化
使用传统“堆页面”的方式做权限原型,会带来三个业务层面的问题:
| 问题维度 | 堆页面方式 | 带来的业务风险 |
|---|---|---|
| 页面维护 | 为每个角色复制一套页面 | 角色数量增多时,原型体积成倍膨胀,需求变更需逐一修改所有页面 |
| 交互验证 | 按钮点击后直接跳转固定页面 | 无法模拟权限校验过程,开发人员难以理解“判断→分支”的逻辑 |
| 数据一致性 | 权限数据写死在页面文本中 | 权限矩阵调整时,需要手动修改每个页面的文本,极易遗漏或出错 |
这些问题的根源在于:原型缺乏“状态管理”和“数据驱动”能力。动态面板、中继器、交互用例与条件设置正是弥补这些能力的核心工具。
3.3 需求拆解:四个核心能力
从产品需求表达的角度,四个元件分别对应权限交互中不可或缺的四种能力:
| 元件/机制 | 核心职能 | 在权限交互中扮演的角色 |
|---|---|---|
| 动态面板 | 管理界面状态切换 | 一个面板承载多个状态(如管理员视图/普通用户视图),通过切换状态实现角色视图的无跳转变化 |
| 中继器 | 数据加载与动态渲染 | 存储用户列表、权限矩阵等结构化数据,驱动页面内容自动生成,数据变更时原型自动更新 |
| 交互用例 | 事件触发与动作编排 | 定义“何时执行何动作”,如单击按钮时触发权限校验流程 |
| 条件设置 | 逻辑分支与规则判断 | 在交互用例中加入“如果角色=管理员,则执行A;否则执行B”的判断规则 |
常见误区 —— 不要试图用动态面板“模拟”所有权限数据,数据部分应交给中继器;动态面板只负责“呈现层的状态切换”。职责分离是原型可维护性的关键。
3.4 原型方案表达:元件组合方案
结合四个元件,可以构建一套完整的权限交互原型方案,分为“数据层”和“呈现层”两部分:
- 数据层(中继器 + 条件设置):中继器存储用户权限数据集,每一行记录包含
user_id、role、permission_level等字段。条件设置读取当前选中用户的role或permission_level值,作为判断依据。 - 呈现层(动态面板 + 交互用例):动态面板的不同状态对应不同的权限视图(如“管理员面板”“编辑者面板”“查看者面板”)。交互用例监听用户操作(如点击“进入管理后台”按钮),先触发条件判断,再根据结果切换到动态面板的对应状态。
中继器数据集示例字段:
┌─────────────┬──────────────┬──────────────────┐
│ 字段名 │ 数据类型 │ 示例值 │
├─────────────┼──────────────┼──────────────────┤
│ user_id │ 文本 (Text) │ U001 │
│ role │ 文本 (Text) │ admin │
│ level │ 数字 (Number)│ 3 │
│ department │ 文本 (Text) │ 技术部 │
└─────────────┴──────────────┴──────────────────┘
方案优势 —— 当权限需求变化时(如新增一个“超级管理员”角色),只需在中继器中添加一条记录,并在动态面板中新增一个状态,无需复制整套页面。原型维护成本降低 60% 以上。
3.5 交互逻辑:权限状态机与条件分支
权限交互的核心逻辑可以抽象为一台“状态机”:用户操作触发事件 → 中继器提供权限数据 → 条件设置进行判断 → 动态面板切换到对应的状态。下图展示了这一完整流程:
流程中的关键交互逻辑拆解如下:
- 事件触发:用户点击某个受权限控制的元件(如“编辑”“删除”“进入管理后台”),交互用例捕获该事件。
- 数据查询:中继器根据当前用户的标识查找对应的权限记录,返回
role与permission_level值。 - 条件分支:条件设置对返回值进行判断。例如
[[Item.role == 'admin']]或[[Item.level >= 3]]。判断结果为“真”则走左侧分支,“假”则走右侧分支。 - 状态切换:动态面板根据分支结果切换到对应的状态(有权限状态 / 无权限状态),每个状态下放置不同的内容或提示。
- 结果呈现:用户看到功能界面或权限提示,完成一次完整的权限交互闭环。
条件表达式示例(直接用于 Axure 交互用例的条件设置面板):
[[Item.role == "admin"]] // 精确匹配角色
[[Item.level >= 3]] // 数值比较
[[Item.role == "editor" && Item.department == "技术部"]] // 多条件与
3.6 验收标准
在原型交付前,使用以下验收点检查权限交互的完整性与正确性:
| 验收维度 | 验收点 | 验证方法 |
|---|---|---|
| 功能完整 | 每个受控元件都绑定了权限判断交互用例 | 逐一点击受控元件,观察是否触发了条件判断流程 |
| 状态覆盖 | 动态面板包含所有角色对应的状态,且无遗漏 | 切换中继器中的用户角色数据,验证动态面板状态是否正确切换 |
| 条件正确 | 条件设置中的表达式与实际权限矩阵一致 | 对照权限矩阵文档,检查每个条件分支的结果是否符合预期 |
| 边界处理 | 无权限、角色不存在、数据为空等异常情况有对应状态 | 在中继器中构造异常数据,验证动态面板是否显示“无权限”或“数据异常”状态 |
| 交互流畅 | 状态切换无闪烁、无跳转、无内容重叠 | 在预览模式下反复切换角色,观察动态面板过渡是否平滑 |
验收红线 —— 如果出现“角色A看到角色B的专属功能”或“无权限用户依然能执行操作”的情况,说明条件设置或动态面板状态映射存在错误,必须修复后才能交付原型。