设置控件联动规则
本文旨在介绍模板控件联动规则能力。
特别说明:(1)该功能仅专业版及以上版本支持(2)仅签署页内填写支持模板控件联动,OpenAPI 填写/预填暂不支持(3)联动规则支持 7 种执行动作:显示、隐藏、必填、非必填、赋值、清空、禁用
1、功能概述
1.1 功能介绍
在合同模板设置页面,可针对某个填写控件设置联动规则(触发条件与执行动作),实现多个填写内容之间的逻辑关联。通过此配置能力,可以由一个控件条件触发多个控件执行以下动作:
| 动作 | 效果 |
|---|---|
| 显示 / 隐藏 | 控制目标控件在签署页是否可见 |
| 必填 / 非必填 | 切换目标控件的必填状态 |
| 赋值 | 自动为目标控件填入自定义值/选项值、其他控件的值或日期计算结果 |
| 清空 | 将目标控件的当前值置空 |
| 禁用 | 目标控件置灰,不可手动编辑(但依然支持使用赋值方案填充和覆盖修改) |
1.2 适用场景
适用于通用合同基础配置,以及服务、采购、销售类核心合同,根据单选、多选、下拉、日期等控件的填写结果,动态控制其他填写项的显示/隐藏、必填状态,或自动完成赋值、清空、禁用,以便简化填写流程、减少无效输入、保证关键数据不被误改,提升合同填写效率与规范性。
例如:
-
显隐/必填联动:当在合同中选择 “分期付款” 时,自动将"分期金额、付款日期"等填写项显示出来并设置为必填项;当选择 “一次性付款” 时,则隐藏这些填写项,避免合同中展示多余的内容。
-
签约主体联动:选择 “企业签约”,显示并必填统一社会信用代码、法人信息;选 “个人签约” 则切换为身份证号、联系地址。
-
赋值联动:当"开票类型"选择"增值税专用发票"时,自动将"开户银行""银行账号"填入对应填写项,无需重复输入。
-
日期联动计算:填写"合同开始日期"和"合同期限"后,自动算出"合同到期日",无需人工计算天数。
-
清空+必填联动:控件预置了默认值,但某些业务分支下要求签署人必须亲自填写,可先清空默认值再设为必填,强制重新输入。
-
赋值+禁用联动:自动赋值后锁定该控件,防止签署人误改导致数据不一致。
2、配置方式说明
2.1 控件联动规则配置入口
当您想要根据某个填写控件的值,来触发其他填写控件的状态变化时,需要在"触发"规则的控件属性入口中创建规则。
点击控件,唤醒右侧属性面板,点击创建规则,进入规则编辑页面。

配置好规则之后,在右侧属性面板可以看到具体的规则。从这里也可以进入编辑规则,或删除规则。

被联动规则控制的控件,在点击控件之后,也会有提示受哪些控件联动影响。

2.2 控件联动规则配置方式
在联动规则配置页面,可以分别配置触发条件、联动结果。由于配置规则的入口是在"触发"规则的控件属性上,因此触发条件的控件就是当前控件本身(暂不支持多个控件共同作为触发规则),由这一控件可以触发多个控件分别执行不同的结果动作。

2.2.1 触发条件配置
触发条件在【“当满足以下前置条件时”】这块区域中设置:
-
控件: 即触发控件,当这个控件的值满足某个条件时,即触发联动
-
操作符: 即这个控件的值的逻辑运算条件,例如可以选到 等于、不等于、为空、不为空等等,不同类型的控件可以选到的操作符不一样
-
值: 即这个控件的填写值,可以是某个具体的值,也可以是其他同类控件的值
-
当是某个具体的值时,先选中"选项值",而后选择或填入具体的值。如果是下拉选项、单选、多选,则具体的选项值是可以直接选择的,如果是数字、单行文本等,则具体的选项值要手动填入。
-
当是其他同类控件的值时,先选中"控件值",而后选择同类型的控件(这里泛指数据类型,不强制完全相同的控件类型)。例如条件设置为:"合同总金额"控件的值 大于 "预付款金额"控件的值。
-

日期控件作触发控件时,支持的操作符为**:为空、不为空、等于、不等于、大于、小于、大于等于、小于等于**;条件值支持选择固定日期。
2.2.2 联动结果配置
联动结果在【“触发以下联动”】这块区域中设置:
-
动作: 包括 显示、隐藏、必填、非必填、赋值、清空、禁用 7 种(与下拉顺序一致)。可以添加多个执行动作,批量控制多个控件的多个动作
-
控件: 选择执行此动作的控件,可以选择多个
-
注意:只能选到跟触发控件同一个参与方、同一份合同文件上的控件
-
注意:赋值动作仅允许选择 1 个目标控件;需要给多个控件赋值时,请配置多个赋值动作
-
各动作的配置要点:
| 动作 | 是否需要配置值 | 说明 |
|---|---|---|
| 显示 / 隐藏 / 必填 / 非必填 | 否 | 选择目标控件即可 |
| 赋值 | 是 | 需选择值来源(见下文) |
| 清空 | 否 | 选择目标控件即可,无需指定值 |
| 禁用 | 否 | 选择目标控件即可,无需指定值 |


赋值动作的值来源(值下拉可选项随目标控件类型不同):
-
自定义 / 选项值:目标为数字、单行文本、多行文本等时,值下拉显示"自定义",手动输入值,触发条件满足时自动填入目标控件。输入校验规则与控件默认值一致;目标为数字控件时,会按目标控件的小数位数、千分位格式自动整形(如输入 3.14159,目标 2 位小数 → 3.14)。目标为单选、多选、下拉、勾选等时,值下拉显示"选项值",从目标控件自身的选项中选择;勾选控件的选项值依据该控件本身的默认值,仅可配置"勾"(即选中);如需让勾选控件恢复未选中状态,请使用"清空"动作。
-
控件值(引用其他控件):引用同文档、同参与方下另一个控件的当前值。可引用的控件类型需与目标控件兼容:文本类(单行文本、多行文本)互相兼容,数字仅与数字兼容。单选、下拉、勾选作为赋值目标时不支持控件值引用,跨控件映射请通过选项值配置多条规则承接。引用控件的值为空时,赋值不生效。
-
计算表达式(日期计算):仅目标控件为日期控件时可选(非日期目标的值下拉中不出现该项)。按"起算日期 ± 天数"自动计算目标日期(详见 2.2.3)。

2.2.3 日期计算赋值说明
当赋值目标为日期控件时,值来源选择"计算表达式",点击"设置"打开自动计算配置弹窗,可配置:
-
起算日期:选择同文档、同参与方下的日期控件作为计算基准
-
计算符号:加(未来日期)/ 减(过去日期)
-
时长来源:引用数字控件(支持公式计算结果控件),或固定值(1-36500 的正整数)
-
时长与单位:天 / 月 / 年,默认天
日期计算的换算规则:
| 单位 | 计算规则 |
|---|---|
| 天 | 起算日期直接加/减 N 天 |
| 月(自然月) | 起算日期加/减 N 个月后取目标月份的同一天;若目标月无该日(如 1月31日 + 1个月),则取目标月的最后一天 |
| 年(自然年) | 起算日期加/减 N 年后取同月同日;若为 2月29日 且目标年非闰年,则回退至 2月28日 |
包含起始日:时长单位为月或年时可勾选。勾选后计算结果为期限届满日(自然月/年结果 - 1 天),适用于合同到期日等期限计算场景。例如 2026-01-15 起算 1 个月并勾选包含起始日,结果为 2026-02-14。若自然月/年结果本身已触发月末或闰年回退(见上表),则不再在回退结果上减 1 天。
时长来源的数字控件值若含小数,会先四舍五入到整数位后再参与计算。

2.3 联动规则支持的控件范围
支持作为触发条件的控件(7 种):单行文本、数字、多行文本、单选、下拉选择、勾选、日期
联动结果控件范围(按动作区分):
| 动作 | 可作为目标的控件 |
|---|---|
| 显示 / 隐藏 / 禁用 | 除合同条款、合同编号、动态表格之外的所有控件 |
| 必填 / 非必填 | 所有控件(包括关联数据源、公式计算的控件) |
| 赋值 / 清空 | 单行文本、多行文本、数字、单选、下拉、勾选、日期(7 种);关联数据源、公式计算、实名认证的控件不可作为赋值/清空目标 |
2.4 冲突规则校验说明
在一个合同文件中,如果配置了多个联动规则,则可能会在规则之间产生冲突,导致一些可能不符合预期的结果。为了防止配置错误,我们做了一些校验提示,当您遇到以下冲突提示时,可以根据指引去调整规则配置,以便符合填写逻辑,达到规范填写内容的预期。
同一条规则内,以下配置属于规则冲突,保存时会被拦截:
-
隐藏和必填、隐藏和显示、必填和非必填 这几对动作是互斥的,同一个触发条件下,同一个控件不允许同时执行这些动作
-
对同一目标控件同时配置 赋值 和 清空(拦截提示:“同一规则内不允许对同一目标控件同时配置赋值和清空”)
-
对同一目标控件配置多个赋值动作
-
对同一目标控件同时配置 禁用 和 必填(拦截提示:“同一规则内不允许对同一目标控件同时配置必填和禁用”;禁用后控件不可手动编辑,若同时必填且值为空,签署人将无法提交)
以下情况允许保存,签署页按触发条件命中先后执行(后触发的覆盖先触发的结果):
-
不同规则对同一目标控件分别配置赋值
-
不同规则对同一目标控件分别配置清空和赋值
-
不建议配置两条完全相同的规则(实测:当前版本无拦截提示;重复规则无额外效果,按配置先后执行)
3、签署页规则执行说明
填写与签署在同一签署页完成,不存在独立的填写页。当签署人在 PC 端或 H5 端签署页填写合同内容时,配置了联动规则的控件会展示"联动规则"标识:PC 端标识位于右侧 Form Filling 面板控件名旁,鼠标移入可查看规则说明气泡(逐条列出触发条件与执行结果);H5 端标识位于控件名旁,点按可查看规则说明弹窗。以下以 PC 端英文界面为例。

规则触发有两个时机:
-
进入签署页后,如果触发控件有默认值或预填值,则会立刻触发控件联动。
-
在触发控件内容填写完成后,也会立刻触发控件联动。(如果已有内容,触发是赋值会覆盖原有值)

各动作在签署页的执行效果:
| 动作 | 条件满足时 | 条件不再满足时 |
|---|---|---|
| 显示 / 隐藏 / 必填 / 非必填 | 按规则执行 | 控件恢复到模板默认设置 |
| 赋值 | 目标控件自动填入配置的值,签署人仍可手动修改 | 不执行赋值,也不清空或恢复目标控件的当前值 |
| 清空 | 目标控件的值被置空,显示效果与从未填写过的控件一致 | 不执行清空,保持当前值,不会自动恢复默认值 |
| 禁用 | 目标控件置灰、不可手动编辑,已有值正常展示 | 控件自动恢复可编辑,当前值保持不变 |
补充说明:
-
赋值与其他能力的配合:赋值写入某个控件后,如果该控件是某个公式计算的输入项,公式会立即按新值重新计算。
-
清空与必填组合:清空后配合必填,控件为空态且必填,签署人必须手动输入才能提交。
-
清空与禁用叠加:同条件触发时,先清空再禁用,最终为空态且不可编辑。
-
禁用不影响系统写入:禁用仅阻止签署人手动编辑;联动赋值、数据源填充、公式计算、OpenAPI 写入仍可正常向禁用态控件写入数据。
-
禁用与显隐互相独立:控件被隐藏时禁用状态保留,重新显示时按当前条件决定禁用状态。
-
清空/禁用控件的 PDF 输出:被清空的控件在合同文件中按空值输出;被禁用的控件值正常输出,无置灰效果。
提交签署内容后,隐藏的控件就不会渲染到合同文档中,也不会进行必填校验,但是如果有填写数据,则仍保留,可以被查询到。
4、常见问题
Q1:在模板配置时,只在一个控件上设置了联动规则,为什么其他控件上也有同样的规则呢?
A:因为这几个控件是合并填写的。当多个控件合并填写时,他们在签署页上的填写值是一样的,会触发同样的联动规则。配置的时候,要注意多个控件是否命中合并填写,检查当新控件加入合并填写组或历史控件脱离合并填写组后,其触发规则是否符合预期。
Q2:在模板配置时,下拉选择控件中的某个选项名称变化后,联动规则为什么会有异常?
A:当设置了下拉控件的值等于某个选项作为触发规则,而后选项名称发生调整后,联动规则里的选项不会调整,需要重新选择一遍。
Q3:签署页的执行结果跟配置的规则不符合,为什么呢?
A:因为控件联动规则执行有几个原则:
-
第一,当不满足触发条件的时候,显隐/必填类动作会恢复到模板默认的设置。
-
第二,联动规则的执行优先级是有顺序的,当控件受到多个规则触发联动时,顺序后面的(越晚执行的)规则优先级更高。
-
第三,赋值、清空动作在条件不满足时不会主动调整目标控件的当前值(不清空、不恢复默认值);禁用动作在条件不满足时恢复可编辑,但值保持不变。
例如:当【责任城市】等于【服务大区】时,【违约责任说明】显示,那是不是意味着这两个控件值不相等的时候,【违约责任说明】应该隐藏?——并非如此,按照实现原则,当条件不满足时,控件会恢复到模板的默认设置,模板配置的控件默认是显示的,因此还是显示,而不会自动变成其相反的状态。
解决办法:如果需要严格的取反逻辑,则可以在联动规则中多增加一条配置"当【责任城市】不等于【服务大区】时,【违约责任说明】隐藏"即可。
Q4:为什么使用模板批量发起在Excel表格预填内容的时候,联动规则不生效呢?
A:因为 OpenAPI 填写/预填暂不支持控件联动规则,目前联动规则仅在签署页内填写时触发。批量发起或 OpenAPI 填写/预填的场景,请自行确保填写内容的准确性。
Q5:联动赋值之后,签署人还能修改被赋值的控件吗?
A:可以。赋值只是自动填入一个值,签署人仍可手动修改。如果希望赋值后锁定控件不允许修改,请在同一规则或另一条规则中为该控件再配置"禁用"动作。
Q6:为什么单选、下拉、勾选控件赋值时不能选择"控件值"来源?
A:不同控件的选项集合可能不一致,直接引用选项值容易出现匹配不上的情况。这三种控件作为赋值目标时仅支持"选项值"来源;如需实现"来源控件选 A → 目标控件选 B"的映射,请通过选项值配置多条规则承接。例如:当来源单选控件为"类别甲"时,配置一条规则将目标单选控件赋值为选项值"等级一"。特别注意:勾选控件的选项值仅可配置"勾"(选中);如需让目标勾选控件恢复未选中,请通过"清空"动作实现。
Q7:日期计算选择"月"或"年"单位时,遇到月末或闰年怎么算?
A:按月计算时取目标月份的同一天,目标月没有该日期的取目标月最后一天(如 1月31日 + 1个月 = 2月28/29日);按年计算时取目标年份的同月同日,2月29日遇到非闰年回退至 2月28日。勾选"包含起始日"后结果为期限届满日(再减 1 天);若已发生月末或闰年回退,则不在回退结果上再减。







