From 1305a08c86830242b57b7f408299c59e6cdc0504 Mon Sep 17 00:00:00 2001 From: zhaoying Date: Thu, 2 Apr 2026 10:22:21 +0800 Subject: [PATCH 1/3] fix(web): knowledge base model api params --- web/src/api/knowledgeBase.ts | 2 +- web/src/views/KnowledgeBase/index.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/web/src/api/knowledgeBase.ts b/web/src/api/knowledgeBase.ts index 05200221..52384d06 100644 --- a/web/src/api/knowledgeBase.ts +++ b/web/src/api/knowledgeBase.ts @@ -68,7 +68,7 @@ export const getModelTypeList = async () => { return response as any[]; }; // 获取模型列表 -export const getModelList = async (types: string[], pageInfo: PageRequest) => { +export const getModelList = async (pageInfo: PageRequest, types?: string[]) => { const response = await request.get(`${apiPrefix}/models`, { ...pageInfo, type: types?.join(','), is_active: true }); return response as any; }; diff --git a/web/src/views/KnowledgeBase/index.tsx b/web/src/views/KnowledgeBase/index.tsx index b996bc16..9e1a63ce 100644 --- a/web/src/views/KnowledgeBase/index.tsx +++ b/web/src/views/KnowledgeBase/index.tsx @@ -207,7 +207,7 @@ const KnowledgeBaseManagement: FC = () => { }; const fetchModelList = async () => { try { - const response = await getModelList(['llm', 'embedding', 'rerank', 'chat'], { page: 1, pagesize: 100 }); + const response = await getModelList({ page: 1, pagesize: 100 }, ['llm', 'embedding', 'rerank', 'chat']); // 缓存模型列表,建立 id -> name 的映射 if (response?.items && Array.isArray(response.items)) { const cache: Record = {}; From 59f5c7a8bb5a3a182d040119bb6aea794a0d892f Mon Sep 17 00:00:00 2001 From: zhaoying Date: Thu, 2 Apr 2026 11:05:11 +0800 Subject: [PATCH 2/3] fix(web): knowledge base's model types --- web/src/views/KnowledgeBase/components/CreateModal.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/src/views/KnowledgeBase/components/CreateModal.tsx b/web/src/views/KnowledgeBase/components/CreateModal.tsx index 96cb8c92..97c88f0c 100644 --- a/web/src/views/KnowledgeBase/components/CreateModal.tsx +++ b/web/src/views/KnowledgeBase/components/CreateModal.tsx @@ -162,7 +162,7 @@ const CreateModal = forwardRef(({ // If model data hasn't been fetched yet, fetch it once if (!models) { try { - models = await getModelList({ page: 1, pagesize: 100 }); + models = await getModelList({ page: 1, pagesize: 100 }, ['llm', 'embedding', 'rerank', 'chat']); } catch (error) { console.error('Failed to fetch models:', error); models = { items: [] }; From 95355459479995a50415ded6fe945f7a5033ec73 Mon Sep 17 00:00:00 2001 From: zhaoying Date: Thu, 2 Apr 2026 12:13:11 +0800 Subject: [PATCH 3/3] fix(web): if-else cases --- .../views/Workflow/hooks/useWorkflowGraph.ts | 52 ++++++++++--------- 1 file changed, 28 insertions(+), 24 deletions(-) diff --git a/web/src/views/Workflow/hooks/useWorkflowGraph.ts b/web/src/views/Workflow/hooks/useWorkflowGraph.ts index 626165da..02bbfc99 100644 --- a/web/src/views/Workflow/hooks/useWorkflowGraph.ts +++ b/web/src/views/Workflow/hooks/useWorkflowGraph.ts @@ -490,32 +490,36 @@ export const useWorkflowGraph = ({ * @param node - Clicked node */ const nodeClick = ({ node }: { node: Node }) => { - // Ignore add-node type node clicks - const nodeData = node.getData() - if (nodeData?.type === 'add-node' || nodeData.type === 'break' || nodeData.type === 'cycle-start') { - setSelectedNode(null) - return; - } + blankClick() - const nodes = graphRef.current?.getNodes(); - - nodes?.forEach(vo => { - const data = vo.getData(); - if (data.isSelected) { - vo.setData({ - ...data, - isSelected: false, - }); + setTimeout(() => { + // Ignore add-node type node clicks + const nodeData = node.getData() + if (nodeData?.type === 'add-node' || nodeData.type === 'break' || nodeData.type === 'cycle-start') { + setSelectedNode(null) + return; } - }); - node.setData({ - ...nodeData, - isSelected: true, - }); - clearEdgeSelect() - if (nodeData.type !== 'notes') { - setSelectedNode(node); - } + + const nodes = graphRef.current?.getNodes(); + + nodes?.forEach(vo => { + const data = vo.getData(); + if (data.isSelected) { + vo.setData({ + ...data, + isSelected: false, + }); + } + }); + node.setData({ + ...nodeData, + isSelected: true, + }); + clearEdgeSelect() + if (nodeData.type !== 'notes') { + setSelectedNode(node); + } + }, 0) }; /** * Handle edge click event