From 45b32bf405d1bb1dca67185f76c620490ca1006e Mon Sep 17 00:00:00 2001 From: shaohuzhang1 Date: Tue, 4 Nov 2025 18:00:31 +0800 Subject: [PATCH] feat: knowledge workflow --- ui/src/enums/application.ts | 1 + ui/src/views/knowledge-workflow/index.vue | 15 +- ui/src/workflow/common/NodeContainer.vue | 9 +- ui/src/workflow/common/app-node.ts | 11 +- ui/src/workflow/common/data.ts | 23 ++ .../icons/knowledge-base-node-icon.vue | 6 + ui/src/workflow/index.vue | 1 - ui/src/workflow/nodes/base-node/index.ts | 5 +- .../component/UserFieldFormDialog.vue | 168 +++++++++++++ .../component/UserInputFieldTable.vue | 222 ++++++++++++++++++ .../component/UserInputTitleDialog.vue | 83 +++++++ .../nodes/knowledge-base-node/index.ts | 22 ++ .../nodes/knowledge-base-node/index.vue | 30 +++ 13 files changed, 577 insertions(+), 19 deletions(-) create mode 100644 ui/src/workflow/icons/knowledge-base-node-icon.vue create mode 100644 ui/src/workflow/nodes/knowledge-base-node/component/UserFieldFormDialog.vue create mode 100644 ui/src/workflow/nodes/knowledge-base-node/component/UserInputFieldTable.vue create mode 100644 ui/src/workflow/nodes/knowledge-base-node/component/UserInputTitleDialog.vue create mode 100644 ui/src/workflow/nodes/knowledge-base-node/index.ts create mode 100644 ui/src/workflow/nodes/knowledge-base-node/index.vue diff --git a/ui/src/enums/application.ts b/ui/src/enums/application.ts index 2a7a08609..9f7564c40 100644 --- a/ui/src/enums/application.ts +++ b/ui/src/enums/application.ts @@ -6,6 +6,7 @@ export enum SearchMode { export enum WorkflowType { Base = 'base-node', + KnowledgeBase = 'knowledge-base-node', Start = 'start-node', AiChat = 'ai-chat-node', SearchKnowledge = 'search-knowledge-node', diff --git a/ui/src/views/knowledge-workflow/index.vue b/ui/src/views/knowledge-workflow/index.vue index 3bf054912..d0ff4c686 100644 --- a/ui/src/views/knowledge-workflow/index.vue +++ b/ui/src/views/knowledge-workflow/index.vue @@ -140,7 +140,7 @@ diff --git a/ui/src/workflow/index.vue b/ui/src/workflow/index.vue index 73a17a437..a2e9f6566 100644 --- a/ui/src/workflow/index.vue +++ b/ui/src/workflow/index.vue @@ -78,7 +78,6 @@ const renderGraphData = (data?: any) => { strokeWidth: 1, }, }) - lf.value.graphModel.get = 'sdasdaad' lf.value.on('graph:rendered', () => { flowId.value = lf.value.graphModel.flowId }) diff --git a/ui/src/workflow/nodes/base-node/index.ts b/ui/src/workflow/nodes/base-node/index.ts index 69ede8e06..fac9d3090 100644 --- a/ui/src/workflow/nodes/base-node/index.ts +++ b/ui/src/workflow/nodes/base-node/index.ts @@ -15,8 +15,9 @@ class BaseModel extends AppNodeModel { return 600 } } + export default { - type: 'base-node', + type: 'knowledge-base-node', model: BaseModel, - view: BaseNode + view: BaseNode, } diff --git a/ui/src/workflow/nodes/knowledge-base-node/component/UserFieldFormDialog.vue b/ui/src/workflow/nodes/knowledge-base-node/component/UserFieldFormDialog.vue new file mode 100644 index 000000000..0d5ff6d2c --- /dev/null +++ b/ui/src/workflow/nodes/knowledge-base-node/component/UserFieldFormDialog.vue @@ -0,0 +1,168 @@ + + + diff --git a/ui/src/workflow/nodes/knowledge-base-node/component/UserInputFieldTable.vue b/ui/src/workflow/nodes/knowledge-base-node/component/UserInputFieldTable.vue new file mode 100644 index 000000000..d90049455 --- /dev/null +++ b/ui/src/workflow/nodes/knowledge-base-node/component/UserInputFieldTable.vue @@ -0,0 +1,222 @@ + + + + + diff --git a/ui/src/workflow/nodes/knowledge-base-node/component/UserInputTitleDialog.vue b/ui/src/workflow/nodes/knowledge-base-node/component/UserInputTitleDialog.vue new file mode 100644 index 000000000..08c2f48c3 --- /dev/null +++ b/ui/src/workflow/nodes/knowledge-base-node/component/UserInputTitleDialog.vue @@ -0,0 +1,83 @@ + + + diff --git a/ui/src/workflow/nodes/knowledge-base-node/index.ts b/ui/src/workflow/nodes/knowledge-base-node/index.ts new file mode 100644 index 000000000..c51b52ea0 --- /dev/null +++ b/ui/src/workflow/nodes/knowledge-base-node/index.ts @@ -0,0 +1,22 @@ +import BaseNodeVue from './index.vue' +import { AppNode, AppNodeModel } from '@/workflow/common/app-node' + +class BaseNode extends AppNode { + constructor(props: any) { + super(props, BaseNodeVue) + } +} + +class BaseModel extends AppNodeModel { + constructor(data: any, graphModel: any) { + super(data, graphModel) + } + get_width() { + return 600 + } +} +export default { + type: 'knowledge-base-node', + model: BaseModel, + view: BaseNode, +} diff --git a/ui/src/workflow/nodes/knowledge-base-node/index.vue b/ui/src/workflow/nodes/knowledge-base-node/index.vue new file mode 100644 index 000000000..8f986440b --- /dev/null +++ b/ui/src/workflow/nodes/knowledge-base-node/index.vue @@ -0,0 +1,30 @@ + + +