From 075bf22add858a455554e80ddffd2065d654f028 Mon Sep 17 00:00:00 2001 From: 2910410219 <2910410219@qq.com> Date: Wed, 10 Jun 2026 10:16:28 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=8A=80=E8=83=BD?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E5=92=8C=E6=A8=A1=E5=9E=8B=E7=A1=AE=E8=AE=A4?= =?UTF-8?q?=E9=80=BB=E8=BE=91=EF=BC=8C=E6=9B=B4=E6=96=B0=E8=8A=82=E7=82=B9?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E5=A4=84=E7=90=86=EF=BC=8C=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=AD=97=E6=AE=B5=E5=88=9D=E5=A7=8B=E5=8C=96?= =?UTF-8?q?=E9=80=BB=E8=BE=91=EF=BC=8C=E6=94=B9=E5=96=84=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=90=8D=E7=94=9F=E6=88=90=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/settings/creation/index.vue | 65 ++++++++++++++++++++++++--- 1 file changed, 59 insertions(+), 6 deletions(-) diff --git a/src/views/settings/creation/index.vue b/src/views/settings/creation/index.vue index b48070f..f29126e 100644 --- a/src/views/settings/creation/index.vue +++ b/src/views/settings/creation/index.vue @@ -273,7 +273,7 @@ + 添加自定义字段 - +
@@ -1494,10 +1494,21 @@ const handleTemplatePageChange = (page: number) => { // 处理技能选择确认(只更新临时状态,不保存到节点) const handleSkillConfirm = (skill: SkillItem) => { selectedSkill.value = skill; + if (selectedElement.value?.kind === 'node') { + selectedElement.value.properties = { + ...(selectedElement.value.properties || {}), + skillName: skill.name, + }; + } }; // 移除已选择的技能(只更新临时状态) const handleRemoveSkill = () => { selectedSkill.value = null; + if (selectedElement.value?.kind === 'node') { + const nextProperties = { ...(selectedElement.value.properties || {}) }; + delete nextProperties.skillName; + selectedElement.value.properties = nextProperties; + } }; // 处理模型选择确认(只更新临时状态,不保存到节点) const handleModelConfirm = (model: any) => { @@ -1710,7 +1721,20 @@ 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', 'modelOutputFields'].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]; } @@ -1879,7 +1903,10 @@ const hydrateCreationFileFields = (nodes: any[] = []) => { const urls = Array.isArray(rawValue) ? rawValue : rawValue ? [rawValue] : []; if (urls.length === 0) return; creationFieldFiles[key] = urls.map((url: string, index: number) => ({ - name: String(url || '').split('/').pop() || `file-${index + 1}`, + name: + String(url || '') + .split('/') + .pop() || `file-${index + 1}`, url, })); }); @@ -2310,7 +2337,20 @@ 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', 'modelOutputFields'].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]; } @@ -2392,7 +2432,20 @@ 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', 'modelOutputFields'].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]; } @@ -3539,7 +3592,7 @@ const applySelected = () => { if (selectedSkill.value) { p.skillName = selectedSkill.value.name; } else { - delete p.skillName; + p.skillName = null; } // 保存提示词内容 From 85845b0d383d25e4262a63c97d47189a254b6f2f Mon Sep 17 00:00:00 2001 From: 2910410219 <2910410219@qq.com> Date: Wed, 10 Jun 2026 13:07:56 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=89=A7=E8=A1=8C=E4=BC=A0=E9=80=92?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/settings/creation/index.vue | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/src/views/settings/creation/index.vue b/src/views/settings/creation/index.vue index f29126e..036f18c 100644 --- a/src/views/settings/creation/index.vue +++ b/src/views/settings/creation/index.vue @@ -2117,13 +2117,10 @@ const sendMessage = async () => { // 2. 构建节点输入参数 const nodeInputParams = currentWorkflowForCreation.value.nodeInputParams?.map((node: any) => { - const nodeParam: any = { - id: node.id, - nodeCode: node.nodeCode, - name: node.name, - }; + // 先展开原始节点的所有字段(保留 promptContent、isSaveFile、outputConfig、modelOutputFields 等) + const nodeParam: any = { ...node }; - // 添加表单配置和值 + // 用用户填写的值覆盖 formConfig if (node.formConfig && Array.isArray(node.formConfig)) { nodeParam.formConfig = node.formConfig.map((field: any) => { // HTTP body: 将创作模式填写值回写到 body 的 showInForm 子字段 @@ -2165,10 +2162,9 @@ const sendMessage = async () => { }); } - // 添加其他配置 + // 用用户填写的值覆盖 config if (node.config) { nodeParam.config = { ...node.config }; - // 更新 config 中的值 Object.keys(node.config).forEach((key) => { const fieldKey = `${node.id}_${key}`; if (creationFormValues[fieldKey] !== undefined) { @@ -2177,11 +2173,6 @@ const sendMessage = async () => { }); } - // 添加其他字段 - if (node.inputSource) nodeParam.inputSource = node.inputSource; - if (node.modelConfig) nodeParam.modelConfig = node.modelConfig; - if (node.skillName) nodeParam.skillName = node.skillName; - return nodeParam; }) || [];