增强节点数据处理逻辑,支持整体输出选项的添加和引用字段的回显,优化 HTTP 请求体配置的参数处理。
This commit is contained in:
@@ -1093,6 +1093,12 @@ const availableParentParams = computed(() => {
|
|||||||
// 如果是判断节点,跳过不添加其字段
|
// 如果是判断节点,跳过不添加其字段
|
||||||
if (isJudge) return;
|
if (isJudge) return;
|
||||||
|
|
||||||
|
// 首先添加节点的整体输出选项
|
||||||
|
params.push({
|
||||||
|
label: `${parentNodeName}【整体输出】`,
|
||||||
|
value: `\${${parentId}}`,
|
||||||
|
});
|
||||||
|
|
||||||
// 只添加可引用字段(HTTP节点仅允许结果返回结构;其他节点维持原逻辑)
|
// 只添加可引用字段(HTTP节点仅允许结果返回结构;其他节点维持原逻辑)
|
||||||
if (parentProps.formConfig && Array.isArray(parentProps.formConfig)) {
|
if (parentProps.formConfig && Array.isArray(parentProps.formConfig)) {
|
||||||
if (nodeCode === 'http') {
|
if (nodeCode === 'http') {
|
||||||
@@ -1191,6 +1197,15 @@ const workflowDsl = computed(() => ({
|
|||||||
nodeId: matched[1],
|
nodeId: matched[1],
|
||||||
quoteOutput: false,
|
quoteOutput: false,
|
||||||
};
|
};
|
||||||
|
} else {
|
||||||
|
const nodeOutputMatched = rawValue.match(/^\$\{([^}]+)\}$/);
|
||||||
|
if (nodeOutputMatched) {
|
||||||
|
normalizedValue = {
|
||||||
|
field: 'nodeOutputResult',
|
||||||
|
nodeId: nodeOutputMatched[1],
|
||||||
|
quoteOutput: false,
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2550,6 +2565,14 @@ const getHttpBodyData = (field: string) => {
|
|||||||
rawItem.fieldConstraint = rawItem.fieldConstraint && typeof rawItem.fieldConstraint === 'object' ? rawItem.fieldConstraint : {};
|
rawItem.fieldConstraint = rawItem.fieldConstraint && typeof rawItem.fieldConstraint === 'object' ? rawItem.fieldConstraint : {};
|
||||||
} else {
|
} else {
|
||||||
rawItem.showInForm = false;
|
rawItem.showInForm = false;
|
||||||
|
// 回显上级节点引用:对象结构转回选择器可识别的字符串
|
||||||
|
if (rawItem.value && typeof rawItem.value === 'object' && !Array.isArray(rawItem.value)) {
|
||||||
|
const refNodeId = String(rawItem.value.nodeId || '').trim();
|
||||||
|
const refField = String(rawItem.value.field || '').trim();
|
||||||
|
if (refNodeId) {
|
||||||
|
rawItem.value = refField === 'nodeOutputResult' ? `\${${refNodeId}}` : refField ? `\${${refNodeId}.${refField}}` : rawItem.value;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return obj;
|
return obj;
|
||||||
@@ -2736,7 +2759,7 @@ const confirmHttpBodyConfig = () => {
|
|||||||
const rawValue = item?.value;
|
const rawValue = item?.value;
|
||||||
let normalizedValue: any = rawValue;
|
let normalizedValue: any = rawValue;
|
||||||
|
|
||||||
// 如果 value 选择了上级参数(形如 ${nodeId.field}),转成对象结构传给后端
|
// 如果 value 选择了上级参数(形如 ${nodeId.field})或上级节点整体输出(形如 ${nodeId}),转成对象结构传给后端
|
||||||
if (typeof rawValue === 'string') {
|
if (typeof rawValue === 'string') {
|
||||||
const matched = rawValue.match(/^\$\{([^\.}]+)\.([^}]+)\}$/);
|
const matched = rawValue.match(/^\$\{([^\.}]+)\.([^}]+)\}$/);
|
||||||
if (matched) {
|
if (matched) {
|
||||||
@@ -2745,6 +2768,15 @@ const confirmHttpBodyConfig = () => {
|
|||||||
nodeId: matched[1],
|
nodeId: matched[1],
|
||||||
quoteOutput: false,
|
quoteOutput: false,
|
||||||
};
|
};
|
||||||
|
} else {
|
||||||
|
const nodeOutputMatched = rawValue.match(/^\$\{([^}]+)\}$/);
|
||||||
|
if (nodeOutputMatched) {
|
||||||
|
normalizedValue = {
|
||||||
|
field: 'nodeOutputResult',
|
||||||
|
nodeId: nodeOutputMatched[1],
|
||||||
|
quoteOutput: false,
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5622,3 +5654,4 @@ onBeforeUnmount(() => {
|
|||||||
justify-content: center;
|
justify-content: center;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user