场景:
测试链接
明细表中存在父子行时,当选择父行连接器值时,同时给子行进行赋值,需要将翻译内容给子行复制一份,使得子行可以翻译。
没有复制效果:
通过属性联动触发
实现代码(通用):
const { context, extra, batchExtra } = configs;
let tableData;
let _formCode;
const allDictionary = context.getDictionary();
const allDictionaryMap = context.getDictionaryMap();
const run = (item) => {
const { index, formCode, attrCode } = item;
console.log('item', item)
console.log('Dictionary', context.getDictionary())
console.log('DictionaryMap', context.getDictionaryMap())
_formCode = formCode
tableData = tableData || (context?.getFormData?.()?.[formCode] ?? []);
if (typeof index === 'number') {
const itemData = tableData[index] || {};
const optFiled = itemData[attrCode];
const optOptions = itemData?.__options?.[attrCode] || [];
const optSelectedOptions = optOptions.filter(item => item.value === optFiled);
itemData?.children?.forEach?.(item => {
item[attrCode] = itemData?.[attrCode]
item.__options[attrCode] = optOptions;
item.__selectedOptions[attrCode] = optSelectedOptions;
if (allDictionary?.[`${formCode}:${attrCode}`]?.[itemData?.ID]) {
allDictionary[`${formCode}:${attrCode}`][item?.ID] = allDictionary?.[`${formCode}:${attrCode}`]?.[itemData?.ID];
}
if (allDictionaryMap?.[`${formCode}:${attrCode}`]?.[itemData?.ID]) {
allDictionaryMap[`${formCode}:${attrCode}`][item?.ID] = allDictionaryMap?.[`${formCode}:${attrCode}`]?.[itemData?.ID];
}
});
}
}
if (batchExtra?.length) {
batchExtra.forEach(item => {
run(item)
})
} else {
run(extra)
}
context.setDictionary(allDictionary);
context.setDictionaryMap(allDictionaryMap)
context.setFormData({ [_formCode]: [...tableData] });
作者:tz_docs 创建时间:2024-11-08 10:33
最后编辑:tz_docs 更新时间:2025-05-12 18:04
最后编辑:tz_docs 更新时间:2025-05-12 18:04