From 7531bfd45082df95a1b136d0e148dfac5f4cd6c3 Mon Sep 17 00:00:00 2001 From: shaohuzhang1 <80892890+shaohuzhang1@users.noreply.github.com> Date: Tue, 2 Dec 2025 18:39:30 +0800 Subject: [PATCH] fix: Switching data sources during debugging of multiple Feishu data sources in the knowledge base workflow may result in the inability to obtain the document list (#4417) --- ui/src/components/dynamics-form/index.vue | 55 ++++++++++--------- .../nodes/data-source-local-node/index.vue | 14 ++--- 2 files changed, 33 insertions(+), 36 deletions(-) diff --git a/ui/src/components/dynamics-form/index.vue b/ui/src/components/dynamics-form/index.vue index d5be052c5..8a41683ea 100644 --- a/ui/src/components/dynamics-form/index.vue +++ b/ui/src/components/dynamics-form/index.vue @@ -36,7 +36,7 @@ import type { Dict } from '@/api/type/common' import FormItem from '@/components/dynamics-form/FormItem.vue' import type { FormField } from '@/components/dynamics-form/type' -import { ref, onBeforeMount, watch, type Ref, computed } from 'vue' +import { ref, onBeforeMount, watch, type Ref, nextTick } from 'vue' import type { FormInstance } from 'element-plus' import type Result from '@/request/Result' import _ from 'lodash' @@ -215,31 +215,34 @@ const render = ( | (() => Promise>>), data?: Dict, ) => { - if (typeof render_data == 'string') { - get(render_data, {}, loading).then((ok) => { - formFieldList.value = ok.data - }) - } else if (render_data instanceof Array) { - formFieldList.value = render_data - } else if (typeof render_data === 'function') { - render_data().then((ok: any) => { - formFieldList.value = ok.data - const form_data = data ? data : {} - if (form_data) { - const value = getFormDefaultValue(formFieldList.value, form_data) - formValue.value = _.cloneDeep(value) - } - }) - } else { - render_data.then((ok) => { - formFieldList.value = ok.data - }) - } - const form_data = data ? data : {} - if (form_data) { - const value = getFormDefaultValue(formFieldList.value, form_data) - formValue.value = _.cloneDeep(value) - } + formFieldList.value = [] + nextTick(() => { + if (typeof render_data == 'string') { + get(render_data, {}, loading).then((ok) => { + formFieldList.value = ok.data + }) + } else if (render_data instanceof Array) { + formFieldList.value = render_data + } else if (typeof render_data === 'function') { + render_data().then((ok: any) => { + formFieldList.value = ok.data + const form_data = data ? data : {} + if (form_data) { + const value = getFormDefaultValue(formFieldList.value, form_data) + formValue.value = _.cloneDeep(value) + } + }) + } else { + render_data.then((ok) => { + formFieldList.value = ok.data + }) + } + const form_data = data ? data : {} + if (form_data) { + const value = getFormDefaultValue(formFieldList.value, form_data) + formValue.value = _.cloneDeep(value) + } + }) } const getFormDefaultValue = (fieldList: Array, form_data?: any) => { form_data = form_data ? form_data : {} diff --git a/ui/src/workflow/nodes/data-source-local-node/index.vue b/ui/src/workflow/nodes/data-source-local-node/index.vue index c43da850f..29fe0bf0c 100644 --- a/ui/src/workflow/nodes/data-source-local-node/index.vue +++ b/ui/src/workflow/nodes/data-source-local-node/index.vue @@ -10,12 +10,7 @@ label-width="auto" >