fix: data-mapping, fixed no data source (#1315)

Reviewed-on: daoyoucloud/tachybase#1315
Co-authored-by: bai.zixv <bai.zixv@foxmail.com>
Co-committed-by: bai.zixv <bai.zixv@foxmail.com>
This commit is contained in:
bai.zixv 2024-07-15 11:51:54 +08:00 committed by sealday
parent 0a11007dea
commit d026303395

View File

@ -12,19 +12,29 @@ export class DataMappingInstruction extends Instruction {
const { sourceArray, type, code = '', model } = node.config;
// 1. 获取数据源
let data = {};
if (sourceArray.length > 1) {
// 多个数据源, 进行合并
data = sourceArray.reduce(
(cookedData, { keyName, sourcePath }) => ({
...cookedData,
[keyName]: processor.getParsedValue(sourcePath, node.id),
}),
{},
);
} else {
// 单数据源, 平铺为单对象
const source = sourceArray[0]['sourcePath'];
data = processor.getParsedValue(source, node.id);
switch (sourceArray.length) {
case 0: {
// 无数据源,使用默认值
data = {};
break;
}
case 1: {
// 单数据源, 平铺为单对象; 忽略keyName
const source = sourceArray[0]['sourcePath'];
data = processor.getParsedValue(source, node.id);
break;
}
default: {
// 多个数据源, 进行合并
data = sourceArray.reduce(
(cookedData, { keyName, sourcePath }) => ({
...cookedData,
[keyName]: processor.getParsedValue(sourcePath, node.id),
}),
{},
);
}
}
try {