适用场景:
对子表中两个字段进行数值比较大小,并提示校验,(如针对产品信息表中批复数量字段与生产数量字段大小的比较,批复数量数值需满足大于等于生产数量条件,若批复数量小于生产数量是,校验失败)
实现效果:
配置步骤:
第一步:
表单设计中,可选择进行比较的两个子表字段中的一个字段(生产数量/批复数量),在【字段属性】中->【高级属性】添加js校验,编写方法
第二步:
点击编写方法,编写js校验脚本,对应编写脚本如下:
由于子表行数是动态的,不确定子表具体是哪一行的数据以及不固定的,所以我们通过使用forEach函数获取子表对应行的字段进行遍历比较
注释:
data.sc_print_product.sub_sc_product_inf: data.sc_print_product为业务主表对象别名; sub_sc_product_inf为业务子表对象别名;
批复数量:item.approval_num: approval_num 为子表字段别名 对应于子表对应行的批复数量data.sc_print_product.sub_sc_product_inf[index].approval_num;
生产数量:item.product_num: product_num为子表字段别名 对应于子表对应行的批复数量data.sc_print_product.sub_sc_product_inf[index].approval_num;
var flag = {}; if(data.sc_print_product.sub_sc_product_info.length) { data.sc_print_product.sub_sc_product_info.forEach((item,index)=>{ if(item.approval_num<item.product_num){ flag = {valid:false,data:{message:'生产数量大于批复数量,请重新填写!'}}; } else flag={valid:true}; }) } return flag;
同时可以借助js编辑选择变量获取到子表字段的别名,表单变量可以获取到对应子表中字段别名