业务规则
# 1 业务规则介绍
当表单数据初始化和表单数据变化时将执行业务规则内函数代码,常用于在创建、查看或编辑表单时,通过设定业务规则改变组件的属性(隐藏、显示、只读、编辑、校验),也可以计算formData数据给定义的变量赋值;本质上深度监听formData数据的变化,然后执行添加的业务规则内函数代码;
注意:1.尽可能避免在业务规则内改变formData内数据,导致循环调用;
2.尽可能避免在业务规则内请求接口;
业务规则生成代码如下:
# 1.1 业务规则操作
在此可添加针对当前表单的业务规则。
规则内容可在代码编辑器中自输入,也可“选择值”和“代码助手”辅助生成代码;
# 2.场景
# 2.1 改变组件状态
场景:供应商字段为空时,子表格组件不能编辑;
效果如下:
操作:在业务规则添加以下代码:
其中OrderSupplier为供应商绑定的字段,OrderWarehousingentrydetails为子表格绑定的字段;
if (this.formData.OrderSupplier.id == null) {
this.Api.setDisabled(true, ['OrderWarehousingentrydetails'])
}
else {
this.Api.setDisabled(false, ['OrderWarehousingentrydetails'])
}
# 2.2 变量赋值
场景:标签页名称绑定变量v_titl,计算订单子表格总价的总给变量v_title赋值
效果如下:
操作:在业务规则添加以下代码:
其中OrderWarehousingentrydetails为子表格绑定的字段;计算this.formData.OrderWarehousingentrydetails数组中totalPrice字段的总和;
let total = _.sumBy(this.formData.OrderWarehousingentrydetails, 'totalPrice')
this.v_title = total == 0 ? "订单详情" : "订单详情(总金额:" + total + ")"