联动规则

介绍

在 NocoBase 中,联动规则是用于控制前端界面元素交互行为的一种机制。它允许用户根据不同的条件调整界面中区块、字段以及操作的展示与行为逻辑,实现灵活、低代码的交互体验。该功能正在持续迭代优化中。

通过配置联动规则,可以实现如:

  • 根据当前用户角色隐藏/显示某些区块,不同角色显示数据范围不同的区块,如管理员显示完整信息的区块;普通用户只能看到基本信息区块
  • 当表单选择某个选项时,自动填写或重置其他字段值。
  • 当表单选择某个选项时,禁用某些输入项。
  • 当表单选择某个选项时,某些输入项设置必填。
  • 控制操作按钮在某些条件下是否可见或可点击。

条件配置

20251029114532

左侧变量

条件左侧变量用于定义联动规则中“判断的对象”,即基于该变量的值来进行条件判断,从而决定是否触发联动行为。

可选择的变量包括:

  • 上下文中的字段,如 「当前表单/xxx」「当前记录/xxx」「当前弹窗记录/xxx」等;
  • 系统全局变量,如 当前用户当前角色 等,适用于根据用户身份、权限等信息进行动态控制。

    ✅ 左侧变量的可选变量由区块所在的上下文决定,根据业务需求合理使用左侧变量:

    • 「当前用户」表示当前登陆状态的用户信息;
    • 「当前表单」表示表单中实时输入的值;
    • 「当前记录」表示是保存的记录值,如表格上的行记录。

操作符

操作符用于设定条件判断的逻辑,即如何比较左侧变量与右侧值。不同类型左侧变量支持不同的操作符,常见类型操作符如下:

  • 文本类型$includes$eq$ne$empty$notEmpty
  • 数值类型$eq$gt$lt$gte$lte
  • 布尔类型$isTruly$isFalsy
  • 数组类型$match$anyOf$empty$notEmpty

✅ 系统会根据左侧变量的类型自动推荐可用的操作符列表,确保配置逻辑合理。

右侧值

用于与左侧变量进行比较,是判断条件是否成立的参照值。

支持内容包括:

  • 常量值:输入固定的数值、文本、日期等;
  • 上下文变量:如当前表单的其他字段、当前记录等;
  • 系统变量:如当前用户、当前时间、当前角色等。

✅ 系统将根据左侧变量的类型自动适配右侧的输入方式,如:

  • 左侧是“选项字段”时,会显示对应选项选择器;
  • 左侧是“日期字段”时,会展示日期选择器;
  • 左侧是“文本字段”时,会显示文本输入框。

💡 灵活使用右侧值(特别是动态变量),可以构建出基于当前用户、当前数据状态、上下文环境的联动逻辑,从而实现更强大的交互体验。

规则执行逻辑

条件触发

当规则中的条件满足时(非必填),会自动执行下方的属性修改操作,如果未设置条件,则默认认为规则始终满足,并自动执行属性修改操作。

多个规则

可以为一个表单配置多个联动规则,当同时符合多个规则条件时,系统会按照规则的先后顺序从前往后执行结果,即以最后一个结果为执行标准。 示例:规则1将字段设置为“禁用”,规则2将字段设置为“可编辑”,如果两个规则的条件都满足,那么字段将变为“可编辑”状态。

多个规则的执行顺序至关重要。请确保在设计规则时,理清它们的优先级和相互关系,以避免规则冲突

规则管理

可以对每一条规则进行如下操作:

  • 自定义命名:为规则设置易于理解的名称,以便管理和识别。

  • 排序:根据规则执行的优先级调整顺序,确保系统按照正确的顺序处理规则。

  • 删除:删除不再需要的规则。

  • 启用/禁用:临时禁用某条规则,而不需要删除它,适用于在特定情况下需要暂时停用某个规则的场景。

  • 复制规则:通过复制已有的规则来创建新规则,避免重复配置。

关于变量

在字段赋值和条件配置中,不仅支持使用常量,还支持使用变量。变量列表会根据不同的区块位置而有所不同,合理选择和使用变量可以更灵活地满足业务需求。更多关于变量的信息,请参考 变量

区块联动规则

区块联动规则允许根据系统变量(如当前用户、角色)或上下文变量(如当前弹窗记录)动态控制区块的显示。例如,管理员可以查看完整的订单信息,而客服角色仅能查看特定的订单数据。通过区块联动规则,可以根据角色配置相应的区块,并在区块中设置不同的字段、操作按钮和数据范围。当登录角色为目标角色时,系统会显示对应的区块,需要注意的是区块默认是显示的,通常需要判断的是隐藏区块的逻辑。

👉 详情查看:区块/区块联动规则

字段联动规则

字段联动规则用于根据用户操作动态调整表单或详情区块中字段的状态,主要包括:

  • 控制字段的 显示/隐藏
  • 设置字段是否 必填
  • 赋值
  • 执行javaScript处理自定义业务逻辑

👉 详情查看:区块/字段联动规则

操作联动规则

操作联动规则目前支持当前记录值、当前表单等上下文变量和全局变量控制操作行为,如隐藏/禁用等。

👉 详情查看:操作/联动规则