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;
}) || [];