你好可以参考一下下列代码,注意修改一下子表单的唯一标识及子表单内成员组件的唯一标识```// 子表单onchange事件
export function onTableChange({ value, extra }) {
const { formGroupId, fieldId, from, changes = {}, tableFieldId } = extra || {};
console.log(fieldId, '11', value)
// 必须,避免使用 updateItemValue 更新子表数据后,再次触发 onChange 陷入死循环
if (from === 'setItemValue') { return };
const tableField = this.$('tableField_lp0zc3kc');
// 上述代码必须存在,否则会造成功能异常
// 子表单成员2(多选模式)
if (fieldId && fieldId === 'employeeField_lp0zc3ke') {
const employeeData = value.filter(item => {
return item.employeeField_lp0zc3ke && item.employeeField_lp0zc3ke.length > 0;
});
const users2 = [];
for (let i = 0; i < employeeData.length; i++) {
for (let j = 0; j < employeeData[i].employeeField_lp0zc3ke.length; j++) {
users2.push(employeeData[i].employeeField_lp0zc3ke[j])
}
};
this.$('employeeFieldlp0zc3kf').setValue(.uniqBy(users2, 'value'));
};
}
/**
- 主表关联表单onchange事件
- @param value 当前值
*/
export function onChange({ value }) {
setTimeout(()=>{
const arr = this.$('tableField_lp0zc3kc').getValue(); // 获取子表单的值
const newArr = this.removeFn(arr);
this.$('employeeField_lp0zc3kf').setValue(newArr) // 赋值给主表去重成员
},500)
}
// 处理表单中的成员格式及去重
export function removeFn(arr) {
const obj = {};
arr.forEach(item => {
const employeeFields = item.employeeField_lp0zc3ke || [];
employeeFields.forEach(item1 => {
if (!obj[item1.key]) {
obj[item1.key] = {
key: item1.key,
label: item1.label
};
}
});
});
const result = Object.values(obj);
return result;
}
```
