我的需求想实现子表单中,选择“印章名称”自动关联出来印章保管人,并且可以去重,并复制给主表的“印章保管人(统计)”
目前代码只能实现点选子表中的“印章保管人”选一次,才能实现赋值给主表的数据。请教要如何调整代码设置?
您好,由于【印章保管人】是根据【印章名称】联动出来的,可以考虑在【印章名称】的onChange改变事件中,延迟再获取整个子表单数据,然后循环子表单的保管人,赋值给主表的【印章保管人】,以下参考示例可以看看,希望可以帮助到您
setTimeout(() => {
//延迟1秒获取子表单的值,避免数据联动还没完全联动时就执行
var tab = this.$("tableField_m54t6gkd").getValue()
// 子表单成员2(多选模式)
const employeeData = tab.filter((item) => {
return !_.isEmpty(item.employeeField_m54t6gke || []);//这里是子表单成员组件的唯一标识
});
const users2 = [];
for (let i = 0; i < employeeData.length; i++) {
//这里是子表单成员组件的唯一标识
for (let j = 0; j < employeeData[i].employeeField_m54t6gke.length; j++) {
users2.push(employeeData[i].employeeField_m54t6gke[j])
}
};
//这里是主表成员组件的唯一标识
this.$('employeeField_m54t89cn').setValue(_.uniqBy(users2, 'value'));
}, 1000)
效果:
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。