生命周期
生命周期中的this即为表单组件实例(zcForm),如果需要在Promise等异步操作中使用this,需要通过下面方式暂存当前this:
let that = this;
// 调用了一个返回Promise的异步方法
this.formMethods.demo1().then(()=>{
that.formData.aaa.delivery_m[0].reason = "Hello World";
});
通用
通用案例不区分具体生命周期,在各生命周期中皆可使用
获取表数据
let rows = this.formData["数据源名"]["数据表名"] || [];
修改某一行数据
this.formData["数据源名"]["数据表名"][0]["字段名"] = "字段值";
调用表单扩展方法
this.formMethods.方法名();
onValidate()
判断明细表字段是否重复
通过Set实现去重,遍历明细表数据,若item_code存在于Set集合中,则返回错误信息
return function ({ zcFormHelper }) {
// 创建一个集合来存储已经出现的 item_code 值
let itemCodeSet = new Set();
const rows = zcFormHelper.form.formData['erp']['outbound_t'] || [];
for (const row of rows) {
const item_code = row['item_code'];
if (itemCodeSet.has(item_code)) {
return {
success: false,
errorMessage: 'item_code存在重复项';
};
}
else {
// 将当前的 item_code 添加到集合中
itemCodeSet.add(item_code);
}
}
return true;
}
onInited
自定义监听器(监听明细表行数变化)
在onInited 生命周期中添加自定义监听器
return function ({ zcFormHelper, formData, extParams }) {
// 监听对象
let target = function () {
// 数据表[b1],
return formData.数据源.明细表名;
};
// 监听处理(当明细表发生了变化时,要执行的操作)
let handler = function () {
formData.数据源.明细表[0].字段 = true
};
// 监听设置
let options = {
// 监听深度
deep: true
};
// 添加自定义监听器
zcFormHelper.customListener.add(target, handler, options);
}