diff --git a/ui/src/components/workflow/workflow-editor/layout/right/async-task-panel.vue b/ui/src/components/workflow/workflow-editor/layout/right/async-task-panel.vue index 6150b535964c871193df20fd9e66f20bae2e825b..af2b37130cb30a919af58444678798192cbcde48 100644 --- a/ui/src/components/workflow/workflow-editor/layout/right/async-task-panel.vue +++ b/ui/src/components/workflow/workflow-editor/layout/right/async-task-panel.vue @@ -97,7 +97,7 @@ (false); const failureVisible = ref(false); const tabFlag = ref(true); + const mergeParams = (oldParams: any[], newParams: any[]) => { + return newParams.map(newItem => { + const oldItem = oldParams.find( + item => (item.ref === newItem.ref || item.name === newItem.name) && item.type === newItem.type, + ); // 同一节点的不同版本的某个输入参数项可能出现ref相同name不同或ref不同name相同 + if (oldItem) { + return { ...newItem, value: oldItem.value }; + } + return newItem; + }); + }; const changeVersion = async () => { + const oldInputs = [...form.value.inputs]; // 备份旧 inputs form.value.inputs.length = 0; form.value.outputs.length = 0; try { @@ -204,6 +216,8 @@ export default defineComponent({ const { inputParams: inputs, outputParams: outputs, description: versionDescription } = list; pushParams(form.value as AsyncTask, inputs, outputs, versionDescription); } + // 保留旧输入值,pushParams 后合并 + form.value.inputs.splice(0, form.value.inputs.length, ...mergeParams(oldInputs, form.value.inputs)); } catch (err) { proxy.$throw(err, proxy); } finally { diff --git a/ui/src/components/workflow/workflow-editor/layout/right/form/cache-selector.vue b/ui/src/components/workflow/workflow-editor/layout/right/form/cache-selector.vue index 1683005f6538c1a76e40df1439445d2dbcc7c36a..2c35e6ab2c1744b32ad58d57026bc6a39b8d9a02 100644 --- a/ui/src/components/workflow/workflow-editor/layout/right/form/cache-selector.vue +++ b/ui/src/components/workflow/workflow-editor/layout/right/form/cache-selector.vue @@ -2,7 +2,7 @@
- +