用宜搭关联多选表单填充子表单JS代码后,实际工作中存在下列问题 1.仓库在勾选清单进行入库操作后,通常是勾选一个清单,勾选的清单默认会带出应入库的数量,此时仓库修改本次要入库的数量,并且再次选择其他要入库的清单,并再次重复此操作,按照宜搭的代码,每次多选其他项时,修改的数量会被重置成应入库数量,无法满足实际工作中边进行清点边进行录单操作。如果要修改话,能实现吗,有没有大神懂得,原宜搭代码如下“`js
export async function onAssociationFormChange({ value }) {
if (value.length) {
const batchFetchResult = []; // 请求结果
const failedInstId = []; // 请求失败的实例ID
const batchFetchLoading = this.utils.toast({
title: `处理中,请不要关闭浏览器,预计需要 ${value.length / 5} 秒`,
type: 'loading'
});
for (let i = 0; i {
// 注意节流,每次请求间隔 200 ms
setTimeout(async () => {
await this.dataSourceMap.getDataById.load({
// 数据源参数
formInstId,
}).then(res => {
// 处理每次返回的结果
if (!res) { return };
batchFetchResult.push(res || {});
}).catch(error => {
// 处理错误,收集错误的实例ID
failedInstId.push(formInstId);
});
resolve();
}, delay);
}));
};
batchFetchLoading();
if (failedInstId.length > 0) {
let content = (
{failedInstId.map((instId) => {
return {instId}
})}
);
this.utils.dialog({
method: 'alert',
title: `处理完成,失败 ${failedInstId.length} 条`,
content,
onOk: () => { },
onCancel: () => { },
});
};
// 上述代码均不需要修改
// 下述代码按照实际情况修改字段映射即可
const tableData = batchFetchResult.map(item => {
const { formData = {} } = item;
return {
textField_l9pa49io: formData.textField_l9p9znox || '', // 付款说明
numberField_l9pa49ip: formData.numberField_l9p9znoy || 0 // 付款金额
}
});
this.$('tableField_l9pa49in').setValue(tableData);
} else {
// 初始化子表单
this.$('tableField_l9pa49in').setValue([]);
};
}