Appearance
2.9 表单字段动态取值
此章节主要展示字段设置的[动态取值]配置可实现功能,主要解决字段默认值是动态获取的和当表单字段变化时重新设置默认值两个方向的场景。
2.9.1 创建表单默认值
在字段设置的动态取值板块中,有一个配置项为[使用表达式作为默认值],可通过表达式获取一个动态的值作为字段的默认值。在设置默认值时需要按字段的存储格式进行设置。
- 单行文本/多行文本:需要通过表达式获取一个字符串
- 富文本:需要通过表达式获取一个字符串
- 数字:需要通过表达式获取一个数值
- 日期:需要通过表达式获取一个日期或时间戳
- 列表选择:需要通过表达式设置默认选项值的标识符
- 列表选择多选:需要通过表达式获取一个数组,数组中为默认选项值的标识符
以下列举单行文本、日期、列表选择动态默认值设置方式:
单行文本:
配置:
时间:${Misc.formatDate(Date.sysdate(),'yyyy-MM-dd HH:mm')}
展示效果:
日期:
配置:
${Date.dateAdd(Date.sysdate(),'day_of_year',1)}
展示效果:
列表选择:
配置:
展示效果:
2.9.2 字段值变化后重新计算
在字段设置的动态取值板块中,有一个配置项为[表单其它字段变化时设置字段值],通过该配置可实现当其他字段变化时重新计算当前字段的默认值。以下是该配置重点的概念说明:
- 依赖字段:可选择一个当前表单中的字段,当选中字段变更时将触发进行重新计算。
- 取值表达式:可通过表达式设置当前字段中需要设置的默认值。
假设在一个场景中,我们有开始时间
和结束时间
两个日期字段,我们希望在选择了开始时间和结束时间时,能自动计算相隔天数并进行存储,这时我们就可以使用[表单其它字段变化时设置字段值]配置项实现,具体配置如下图:
开始时间的取值表达式:
${
record.startDate == null || record.endDate == null
?
0
:
Date.dateDiff(record.endDate,record.startDate)
}
结束时间的取值表达式:
${
record.startDate == null || record.endDate == null
?
0
:
Date.dateDiff(record.endDate,record.startDate)
}
效果展示: