From ab936bf765475dbdf87af341e0eafb595f1746ca Mon Sep 17 00:00:00 2001 From: wangdan-fit2cloud Date: Mon, 7 Sep 2026 09:41:17 +0800 Subject: [PATCH] feat: application node --- ui/src/workflow-canvas/config/node-data.ts | 40 +++++----- .../icons/application-node-icon.vue | 12 +++ .../nodes/ai-chat-node/index.vue | 1 - .../nodes/application-node/index.vue | 78 +++++++++++-------- .../nodes/tool-lib-node/index.vue | 52 +++++++------ 5 files changed, 105 insertions(+), 78 deletions(-) create mode 100644 ui/src/workflow-canvas/icons/application-node-icon.vue diff --git a/ui/src/workflow-canvas/config/node-data.ts b/ui/src/workflow-canvas/config/node-data.ts index 24040239bd0..75912f84407 100644 --- a/ui/src/workflow-canvas/config/node-data.ts +++ b/ui/src/workflow-canvas/config/node-data.ts @@ -377,6 +377,27 @@ export const toolLibNode = { properties: { stepName: '自定义工具', config: { fields: [{ label: '结果', value: 'result' }] } }, } +/** + * 工作流工具配置数据 + */ +export const toolWorkflowLibNode = { + type: WorkflowNodeType.ToolWorkflowLib, + text: '工作流工具', + label: '工作流工具', + height: 170, + properties: { stepName: '工作流工具', config: { fields: [] } }, +} + + +/* 智能体节点 */ +export const applicationNode = { + type: WorkflowNodeType.Application, + text: '智能体节点', + label: '智能体节点', + properties: { stepName: '智能体节点', config: { fields: [{ label: '结果', value: 'result' }] } }, +} + + export const loopStartNode = { id: WorkflowNodeType.LoopStartNode, type: WorkflowNodeType.LoopStartNode, @@ -444,25 +465,6 @@ export const loopBreakNode = { properties: { width: 600, stepName: 'Break', config: { fields: [] } }, } -/** - * 工作流工具配置数据 - */ -export const toolWorkflowLibNode = { - type: WorkflowNodeType.ToolWorkflowLib, - text: '工作流工具', - label: '工作流工具', - height: 170, - properties: { stepName: '工作流工具', config: { fields: [] } }, -} - -export const applicationNode = { - type: WorkflowNodeType.Application, - text: '智能体节点', - label: '智能体节点', - height: 260, - properties: { stepName: '智能体节点', config: { fields: [{ label: '结果', value: 'result' }] } }, -} - /* 文档分段 */ export const documentSplitNode = { type: WorkflowNodeType.DocumentSplitNode, diff --git a/ui/src/workflow-canvas/icons/application-node-icon.vue b/ui/src/workflow-canvas/icons/application-node-icon.vue new file mode 100644 index 00000000000..8bda0c40119 --- /dev/null +++ b/ui/src/workflow-canvas/icons/application-node-icon.vue @@ -0,0 +1,12 @@ + + diff --git a/ui/src/workflow-canvas/nodes/ai-chat-node/index.vue b/ui/src/workflow-canvas/nodes/ai-chat-node/index.vue index 5c0d0322142..4360c7773ab 100644 --- a/ui/src/workflow-canvas/nodes/ai-chat-node/index.vue +++ b/ui/src/workflow-canvas/nodes/ai-chat-node/index.vue @@ -24,7 +24,6 @@ const model = getModel() const store = useWorkflowStore(apiType) const formRef = useTemplateRef('formRef') -const modelCascaderRef = useTemplateRef>('modelCascaderRef') const imageCascaderRef = useTemplateRef>('imageCascaderRef') const promptGenerateDialogRef = useTemplateRef>('promptGenerateDialogRef') const reasoningSettingDialogRef = useTemplateRef>('reasoningSettingDialogRef') diff --git a/ui/src/workflow-canvas/nodes/application-node/index.vue b/ui/src/workflow-canvas/nodes/application-node/index.vue index 0587d87fb65..664a5546318 100644 --- a/ui/src/workflow-canvas/nodes/application-node/index.vue +++ b/ui/src/workflow-canvas/nodes/application-node/index.vue @@ -1,6 +1,5 @@