身份与权限
身份与权限按「当前用户有没有某权限 / 某角色」,控制表单里字段的显隐、必填、禁用,以及公式分支。配置人员在条件与公式里勾选权限点;权限树和当前用户授权由环境准备。

和「设计器操作权限」的区别
| 身份与权限(本文) | 设计器组件操作权限 | |
|---|---|---|
| 作用对象 | 填写 / 预览时的业务表单 | 设计器里能否删字段、改事件等 |
| 典型问题 | 无导出权限则隐藏导出按钮 | 实施账号不能删某系统字段 |
| 配置方式 | 权限树 + 当前用户授权 + 条件/公式 | 环境对设计器的组件权限配置 |
二者互不影响,可同时存在。本文只讲业务侧身份与权限。
整体流程
text
1. 环境预置「权限树」「角色树」(设计时可勾选的清单)
2. 运行 / 预览时写入「当前用户拥有的权限、角色」
3. 在隐藏 / 必填 / 禁用 / 联动 / 事件条件,或公式中判断
4. 预览切换不同身份数据,验收显隐与禁用未预置树时,条件面板里通常不会出现「权限」「角色」类型。 只预置树、未写入当前用户授权时,判断结果会一直不匹配,表现像「谁都没权限」。

环境准备(管理员侧)
若配置人员看不到「权限 / 角色」类型,请将本节交给管理员完成。
1. 预置权限树与角色树
由环境提供两棵树(结构相同):
| 项 | 含义 |
|---|---|
| 标识 | 唯一编码,条件与公式都用它判断,建议稳定,如 goods:info:export |
| 名称 | 显示名称,如「导出商品」 |
| 子级 | 可选,形成树形分组 |
权限树示例:
text
系统管理
└ 用户管理
├ 用户列表 system:user:list
├ 新增用户 system:user:create
└ 编辑用户 system:user:edit
商品管理
├ 商品列表 goods:info:list
└ 导出商品 goods:info:export角色树示例:
text
平台端
├ 超级管理员 platform:admin:super
└ 运营管理员 platform:admin:ops
商户端
├ 店长 merchant:store:manager
└ 收银员 merchant:store:cashier说明:
- 空配置或不配 → 条件里不出现对应类型。
- 树只是「可选清单」,不等于当前用户已拥有这些权限。
- 标识需与登录态 / 后端发放的编码一致。

2. 写入当前用户拥有的权限与角色
预览与正式运行时,需要把当前用户实际拥有的标识列表写入全局数据(名称以环境约定为准,常见为):
| 数据名 | 含义 | 内容形态 |
|---|---|---|
$permissions | 当前用户权限标识列表 | 如「商品列表、导出商品」对应的编码数组 |
$roles | 当前用户角色标识列表 | 如「店长」对应的编码数组 |
常见写入时机:登录成功、进入表单页、表单加载完成时按接口结果更新。
权限或角色变更后需重新写入;已打开的表单才会按新授权计算。
设计预览与正式环境一致
建议预览所用的授权数据与线上同一套写入方式,避免「设计器里看着对、上线后不对」。
配置人员如何使用
若条件类型里已能看到「权限」「角色」:
- 按业务描述规则(例如「无导出权限则隐藏导出按钮」)。
- 落到隐藏 / 必填 / 禁用 / 公式。
- 请管理员用测试账号(不同权限)预览,或临时改注入列表验收。
- 权限点改名只改显示名称;改标识必须同步改条件、公式与后端发放。
在逻辑条件中使用
适用于:隐藏条件、必填条件、禁用条件、数据联动、事件流条件等。条件写法见使用逻辑条件。
如何配置
- 打开条件编辑器 → 条件类型选 权限 或 角色。
- 比较方式选 包含 / 不包含(以界面为准)。
- 从树中勾选目标权限点或角色。
- 保存后,用不同授权预览。
判断的是:当前用户列表里是否包含所选节点的标识。
业务示例
入门:无导出权限则隐藏导出按钮
text
隐藏条件(作用在「导出」按钮):
权限 不包含 goods:info:export
→ 条件成立则隐藏或写成「包含导出权才显示」,注意与「条件成立后状态」选项一致,见隐藏条件。
入门:非店长禁用金额
text
禁用条件(作用在「金额」):
角色 不包含 merchant:store:manager
→ 成立则禁用常用:有审核角色才显示审批区
审批意见、审批结果整块:仅当角色包含「审核管理员」时显示;隐藏条件可挂在容器或首个字段上,用大纲检查结构。
常用:权限 + 业务字段组合
text
显示「特批说明」当:
(权限包含 special:approve)
AND
(申请金额 大于 10000)用条件组表达。
常用:收银员只读、店长可改
同一「折扣率」字段:角色不包含店长 → 禁用;店长可编辑。比维护两套表单更简便。
在计算公式中使用
内置高阶函数(需环境已注入当前用户授权):
| 函数 | 含义 | 示例含义 |
|---|---|---|
HAS_PERMISSION("编码") | 是否拥有该权限 | 有导出权则为真 |
HAS_ROLE("编码") | 是否拥有该角色 | 是店长则为真 |
可与 IF 等组合,用于计算字段或更复杂的布尔结果,再被联动或其它逻辑引用。
text
HAS_PERMISSION("goods:info:export")
IF(HAS_ROLE("platform:admin:super"), 1, 0)更多函数见使用计算公式。

验收清单
| 检查项 | 预期 |
|---|---|
| 树已配置 | 条件可选权限 / 角色 |
| 注入有值 | 有权账号看见按钮,无权账号隐藏 / 禁用 |
| 标识一致 | 树节点、注入列表、公式参数同一编码 |
| 预览与正式 | 同一套注入逻辑 |
| 与忽略隐藏字段 | 隐藏后提交策略符合表单配置 |
注意点
- 前端权限只改善体验与误操作,不能替代服务端鉴权。
- 不要把权限树当成「当前用户权限」;必须单独写入当前用户授权列表。
- 角色与权限选一种主模型即可,避免同一按钮两套互相冲突的条件。
- 公式里的字符串编码需与树节点标识完全一致(含冒号、大小写)。
- 若用变量控制禁用,见变量绑定;标准权限判断优先本文条件 / 公式。


