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