From 3017f9d8a638303920c68fe54909a585f36593e0 Mon Sep 17 00:00:00 2001 From: hexiaonan-800 Date: Tue, 1 Sep 2026 17:44:25 +0800 Subject: [PATCH] feat: text to speech node --- ui/src/workflow-canvas/component/NodeMenu.vue | 1 + .../icons/text-to-speech-node-icon.vue | 6 + .../nodes/text-to-speech-node/index.ts | 15 +++ .../nodes/text-to-speech-node/index.vue | 126 ++++++++++++++++++ 4 files changed, 148 insertions(+) create mode 100644 ui/src/workflow-canvas/icons/text-to-speech-node-icon.vue create mode 100644 ui/src/workflow-canvas/nodes/text-to-speech-node/index.ts create mode 100644 ui/src/workflow-canvas/nodes/text-to-speech-node/index.vue diff --git a/ui/src/workflow-canvas/component/NodeMenu.vue b/ui/src/workflow-canvas/component/NodeMenu.vue index 3ff818f6a9a..44f7863ecd5 100644 --- a/ui/src/workflow-canvas/component/NodeMenu.vue +++ b/ui/src/workflow-canvas/component/NodeMenu.vue @@ -28,6 +28,7 @@ const workflowComponentGroups = [ list: [ { icon: aiChatIcon, iconClass: 'bg-primary-gradient', label: 'AI 对话', value: WorkflowNodeType.AiChat }, { icon: aiChatIcon, iconClass: 'bg-primary-gradient', label: '意图识别', value: WorkflowNodeType.IntentNode }, + { icon: aiChatIcon, iconClass: 'bg-primary-gradient', label: '文本转语音', value: WorkflowNodeType.TextToSpeechNode }, ], }, { diff --git a/ui/src/workflow-canvas/icons/text-to-speech-node-icon.vue b/ui/src/workflow-canvas/icons/text-to-speech-node-icon.vue new file mode 100644 index 00000000000..7a220814144 --- /dev/null +++ b/ui/src/workflow-canvas/icons/text-to-speech-node-icon.vue @@ -0,0 +1,6 @@ + + diff --git a/ui/src/workflow-canvas/nodes/text-to-speech-node/index.ts b/ui/src/workflow-canvas/nodes/text-to-speech-node/index.ts new file mode 100644 index 00000000000..1cc46334c43 --- /dev/null +++ b/ui/src/workflow-canvas/nodes/text-to-speech-node/index.ts @@ -0,0 +1,15 @@ +import TextToSpeechNodeVue from './index.vue' +import { WorkflowNodeModel, WorkflowNodeView } from '@/workflow-canvas/core/workflow-node' +import { WorkflowNodeType } from '@/workflow-canvas/types.ts' + +class TextToSpeechNodeView extends WorkflowNodeView { + constructor(props: ConstructorParameters[0]) { + super(props, TextToSpeechNodeVue) + } +} + +export default { + type: WorkflowNodeType.TextToSpeechNode, + model: WorkflowNodeModel, + view: TextToSpeechNodeView, +} diff --git a/ui/src/workflow-canvas/nodes/text-to-speech-node/index.vue b/ui/src/workflow-canvas/nodes/text-to-speech-node/index.vue new file mode 100644 index 00000000000..34f91b98eeb --- /dev/null +++ b/ui/src/workflow-canvas/nodes/text-to-speech-node/index.vue @@ -0,0 +1,126 @@ + + + +