diff --git a/src/api/apps.ts b/src/api/apps.ts
index 0c89d85..59353f9 100644
--- a/src/api/apps.ts
+++ b/src/api/apps.ts
@@ -7,7 +7,8 @@ import {
paramsT,
StepRunEventParams,
ExecuteCurrentEventParams,
- ReconnectRunParams
+ ReconnectRunParams,
+ voiceTriggerParams
} from '@/api/interface/index';
// 公共路径
@@ -143,4 +144,9 @@ export function executeCurrentEvent(params: ExecuteCurrentEventParams) {
// 流程运行时-重连运行
export function reconnectRun(params: ReconnectRunParams) {
return axios.post(`${runPrefix}/apps/reconnect`, params);
+}
+
+// 语音输入
+export function voiceTrigger(data: voiceTriggerParams) {
+ return axios.post(`${runPrefix}/apps/voiceTrigger`, data);
}
\ No newline at end of file
diff --git a/src/api/interface/index.ts b/src/api/interface/index.ts
index 6fc4ffd..e8f530d 100644
--- a/src/api/interface/index.ts
+++ b/src/api/interface/index.ts
@@ -92,6 +92,13 @@ export interface flowType {
type?: string;
}
+export interface voiceTriggerParams {
+ appId: string;
+ appInstanceId: string;
+ nodeId: string;
+ msg: string;
+}
+
// aichat
export interface RecommendResponse {
code: number;
diff --git a/src/components/FlowEditor/node/microphoneNode/MicrophoneNode.tsx b/src/components/FlowEditor/node/microphoneNode/MicrophoneNode.tsx
index 6afe236..ab29d16 100644
--- a/src/components/FlowEditor/node/microphoneNode/MicrophoneNode.tsx
+++ b/src/components/FlowEditor/node/microphoneNode/MicrophoneNode.tsx
@@ -35,7 +35,7 @@ const MicrophoneNode = ({ data, id }: { data: any; id: string }) => {
{title}
-
+
);
};
diff --git a/src/components/FlowEditor/node/style/baseOther.module.less b/src/components/FlowEditor/node/style/baseOther.module.less
index 41a63e6..f5466a8 100644
--- a/src/components/FlowEditor/node/style/baseOther.module.less
+++ b/src/components/FlowEditor/node/style/baseOther.module.less
@@ -105,6 +105,15 @@
min-height: 10px;
}
+ .node-content-box {
+ padding: 10px;
+ margin: -1px auto;
+ background-color: #fff;
+ border-top: 1px solid #ffffff;
+ border-left: 1px solid #cccccc;
+ border-right: 1px solid #cccccc;
+ }
+
.node-footer {
background-color: #ffffff;
color: #000000;
diff --git a/src/pages/flowEditor/components/nodeContentMicrophone.tsx b/src/pages/flowEditor/components/nodeContentMicrophone.tsx
index b8a7f9c..5afe306 100644
--- a/src/pages/flowEditor/components/nodeContentMicrophone.tsx
+++ b/src/pages/flowEditor/components/nodeContentMicrophone.tsx
@@ -1,9 +1,11 @@
import React, { useEffect, useState } from 'react';
+import { useSelector } from 'react-redux';
import styles from '@/components/FlowEditor/node/style/baseOther.module.less';
import { Handle, Position } from '@xyflow/react';
import { formatDataType } from '@/utils/common';
import { Button } from '@arco-design/web-react';
import { audioService } from '@/components/audio-recognize/audio/main';
+import { voiceTrigger } from '@/api/apps';
interface NodeContentData {
parameters?: {
@@ -187,6 +189,8 @@ const NodeContentMicrophone = ({ data }: { data: NodeContentData }) => {
const [isRecording, setIsRecording] = useState(false);
const [resultText, setResultText] = useState('');
const { connect, stop } = audioService(setResultText);
+ const { appRuntimeData, currentAppData } = useSelector((state: any) => state.ideContainer);
+
const apiIns = data.parameters?.apiIns || [];
const apiOuts = data.parameters?.apiOuts || [];
@@ -217,8 +221,14 @@ const NodeContentMicrophone = ({ data }: { data: NodeContentData }) => {
const handleComplete = () => {
console.log('用户结束语音转文字');
stop();
- // TODO 调接口 等待后端出接口
- // voiceTrigger(params);
+ const params = {
+ nodeId: data.nodeId,
+ appId: currentAppData.id,
+ appInstanceId: appRuntimeData[currentAppData.id].runId,
+ msg: resultText || '你好'
+ };
+ if (!params.msg || !params.nodeId) return;
+ voiceTrigger(params);
};
useEffect(() => {
@@ -287,6 +297,28 @@ const NodeContentMicrophone = ({ data }: { data: NodeContentData }) => {
>
)}
+
+
+
+
+
{/*footer栏*/}
{!isRecording ?
diff --git a/src/pages/flowEditor/sideBar/config/localNodeData.ts b/src/pages/flowEditor/sideBar/config/localNodeData.ts
index a537a7a..54a0857 100644
--- a/src/pages/flowEditor/sideBar/config/localNodeData.ts
+++ b/src/pages/flowEditor/sideBar/config/localNodeData.ts
@@ -114,6 +114,30 @@ const codeParameters = {
'id': 'arg'
}]
};
+const microParameters = {
+ apiIns: [{
+ name: 'start',
+ desc: '',
+ dataType: '',
+ defaultValue: ''
+ }],
+ apiOuts: [{
+ name: 'done',
+ desc: '',
+ dataType: '',
+ defaultValue: ''
+ }],
+ dataIns: [],
+ dataOuts: [
+ {
+ 'arrayType': null,
+ 'dataType': 'STRING',
+ 'defaultValue': 'STRING',
+ 'desc': '输出参数',
+ 'id': 'out'
+ }
+ ]
+};
// 定义节点基本信息 画布中添加的组件列表依赖这里
const nodeDefinitions = [
@@ -155,6 +179,9 @@ export const localNodeData = nodeDefinitions.map(({ nodeName, nodeType, nodeGrou
else if (nodeType === 'CODE') {
parameters = codeParameters;
}
+ else if (nodeType === 'MICRO') {
+ parameters = microParameters;
+ }
return {
nodeName,