节点上级模型参数的引用和调整
This commit is contained in:
@@ -1133,6 +1133,19 @@ const availableParentParams = computed(() => {
|
|||||||
// 如果是判断节点,跳过不添加其字段
|
// 如果是判断节点,跳过不添加其字段
|
||||||
if (isJudge) return;
|
if (isJudge) return;
|
||||||
|
|
||||||
|
const modelOutputFields = Array.isArray(parentProps.modelOutputFields) ? parentProps.modelOutputFields : [];
|
||||||
|
if (modelOutputFields.length > 0) {
|
||||||
|
modelOutputFields.forEach((field: any) => {
|
||||||
|
const fieldName = String(field || '').trim();
|
||||||
|
if (!fieldName) return;
|
||||||
|
params.push({
|
||||||
|
label: `${parentNodeName}.${fieldName}`,
|
||||||
|
value: `\${${parentId}.${fieldName}}`,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// 只添加可引用字段(HTTP节点仅允许结果返回结构;其他节点维持原逻辑)
|
// 只添加可引用字段(HTTP节点仅允许结果返回结构;其他节点维持原逻辑)
|
||||||
if (parentProps.formConfig && Array.isArray(parentProps.formConfig)) {
|
if (parentProps.formConfig && Array.isArray(parentProps.formConfig)) {
|
||||||
if (nodeCode === 'http') {
|
if (nodeCode === 'http') {
|
||||||
@@ -1193,6 +1206,7 @@ const workflowDsl = computed(() => ({
|
|||||||
y: n.y || 0,
|
y: n.y || 0,
|
||||||
},
|
},
|
||||||
inputSource: n.properties?.inputSource || null,
|
inputSource: n.properties?.inputSource || null,
|
||||||
|
modelOutputFields: Array.isArray(n.properties?.modelOutputFields) ? n.properties.modelOutputFields : null,
|
||||||
formConfig: (() => {
|
formConfig: (() => {
|
||||||
const cfg = n.properties?.formConfig;
|
const cfg = n.properties?.formConfig;
|
||||||
if (!Array.isArray(cfg)) return null;
|
if (!Array.isArray(cfg)) return null;
|
||||||
@@ -1651,7 +1665,7 @@ const useWorkflow = async (workflow: WorkflowItem) => {
|
|||||||
// 初始化其他配置字段(从 config 中读取)
|
// 初始化其他配置字段(从 config 中读取)
|
||||||
if (node.config) {
|
if (node.config) {
|
||||||
Object.keys(node.config).forEach((key) => {
|
Object.keys(node.config).forEach((key) => {
|
||||||
if (!['nodeCode', 'width', 'height', 'x', 'y', 'formConfig', 'inputSource', 'fieldMetadata', 'selectedModel'].includes(key)) {
|
if (!['nodeCode', 'width', 'height', 'x', 'y', 'formConfig', 'inputSource', 'fieldMetadata', 'selectedModel', 'modelOutputFields'].includes(key)) {
|
||||||
const fieldKey = `${node.id}_${key}`;
|
const fieldKey = `${node.id}_${key}`;
|
||||||
creationFormValues[fieldKey] = node.config[key];
|
creationFormValues[fieldKey] = node.config[key];
|
||||||
}
|
}
|
||||||
@@ -2227,7 +2241,7 @@ const handleTreeNodeClick = async (data: TreeNode) => {
|
|||||||
// 初始化其他配置字段(从 config 中读取)
|
// 初始化其他配置字段(从 config 中读取)
|
||||||
if (node.config) {
|
if (node.config) {
|
||||||
Object.keys(node.config).forEach((key) => {
|
Object.keys(node.config).forEach((key) => {
|
||||||
if (!['nodeCode', 'width', 'height', 'x', 'y', 'formConfig', 'inputSource', 'fieldMetadata', 'selectedModel'].includes(key)) {
|
if (!['nodeCode', 'width', 'height', 'x', 'y', 'formConfig', 'inputSource', 'fieldMetadata', 'selectedModel', 'modelOutputFields'].includes(key)) {
|
||||||
const fieldKey = `${node.id}_${key}`;
|
const fieldKey = `${node.id}_${key}`;
|
||||||
creationFormValues[fieldKey] = node.config[key];
|
creationFormValues[fieldKey] = node.config[key];
|
||||||
}
|
}
|
||||||
@@ -2311,7 +2325,7 @@ const handleTreeNodeClick = async (data: TreeNode) => {
|
|||||||
// 初始化其他配置字段(从 config 中读取)
|
// 初始化其他配置字段(从 config 中读取)
|
||||||
if (node.config) {
|
if (node.config) {
|
||||||
Object.keys(node.config).forEach((key) => {
|
Object.keys(node.config).forEach((key) => {
|
||||||
if (!['nodeCode', 'width', 'height', 'x', 'y', 'formConfig', 'inputSource', 'fieldMetadata', 'selectedModel'].includes(key)) {
|
if (!['nodeCode', 'width', 'height', 'x', 'y', 'formConfig', 'inputSource', 'fieldMetadata', 'selectedModel', 'modelOutputFields'].includes(key)) {
|
||||||
const fieldKey = `${node.id}_${key}`;
|
const fieldKey = `${node.id}_${key}`;
|
||||||
creationFormValues[fieldKey] = node.config[key];
|
creationFormValues[fieldKey] = node.config[key];
|
||||||
}
|
}
|
||||||
@@ -3378,6 +3392,7 @@ const applySelected = () => {
|
|||||||
'nodeCode',
|
'nodeCode',
|
||||||
'fieldMetadata',
|
'fieldMetadata',
|
||||||
'modelConfig',
|
'modelConfig',
|
||||||
|
'modelOutputFields',
|
||||||
'inputSource',
|
'inputSource',
|
||||||
'formConfig',
|
'formConfig',
|
||||||
'skillName',
|
'skillName',
|
||||||
@@ -3399,6 +3414,11 @@ const applySelected = () => {
|
|||||||
|
|
||||||
// 获取模型的 responseBody(必须来自 responseBody)
|
// 获取模型的 responseBody(必须来自 responseBody)
|
||||||
const responseBody = selectedModelData.value?.responseBody || {};
|
const responseBody = selectedModelData.value?.responseBody || {};
|
||||||
|
const responseMapping = selectedModelData.value?.responseMapping;
|
||||||
|
const modelOutputFields =
|
||||||
|
responseMapping && typeof responseMapping === 'object' && !Array.isArray(responseMapping)
|
||||||
|
? Object.keys(responseMapping).filter((key) => String(key || '').trim() !== '')
|
||||||
|
: [];
|
||||||
|
|
||||||
// 保存到 modelConfig,包含 modelResponse
|
// 保存到 modelConfig,包含 modelResponse
|
||||||
p.modelConfig = {
|
p.modelConfig = {
|
||||||
@@ -3408,12 +3428,19 @@ const applySelected = () => {
|
|||||||
modelResponse: responseBody, // 将 modelResponse 放在 modelConfig 内部
|
modelResponse: responseBody, // 将 modelResponse 放在 modelConfig 内部
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (modelOutputFields.length > 0) {
|
||||||
|
p.modelOutputFields = modelOutputFields;
|
||||||
|
} else {
|
||||||
|
delete p.modelOutputFields;
|
||||||
|
}
|
||||||
|
|
||||||
// 保存模型选择状态
|
// 保存模型选择状态
|
||||||
p.selectedModel = selectedModel.value;
|
p.selectedModel = selectedModel.value;
|
||||||
p.modelData = selectedModelData.value;
|
p.modelData = selectedModelData.value;
|
||||||
} else {
|
} else {
|
||||||
// 如果没有选择模型,删除 modelConfig 和模型状态
|
// 如果没有选择模型,删除 modelConfig 和模型状态
|
||||||
delete p.modelConfig;
|
delete p.modelConfig;
|
||||||
|
delete p.modelOutputFields;
|
||||||
delete p.selectedModel;
|
delete p.selectedModel;
|
||||||
delete p.modelData;
|
delete p.modelData;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user