|
|
@@ -277,7 +277,8 @@
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
|
|
|
- <!-- AI外呼配置 -->
|
|
|
+ <!-- AI外呼配置(旧版天天外呼,已停用) -->
|
|
|
+ <!--
|
|
|
<div v-if="selectedNode.nodeType == 'AI_CALL_TASK'" class="property-section">
|
|
|
<div class="section-title">
|
|
|
<i class="el-icon-phone"></i>外呼配置
|
|
|
@@ -302,7 +303,6 @@
|
|
|
<el-option label="呼叫机器人后挂断" :value="7"/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
-
|
|
|
<div class="form-row">
|
|
|
<el-form-item label="呼叫倍率" class="half-width">
|
|
|
<el-select v-model="selectedNode.nodeConfig.multiplier" @change="handleConfigChange" placeholder="选择倍率">
|
|
|
@@ -314,14 +314,12 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
-
|
|
|
<el-form-item label="自动重呼">
|
|
|
<el-radio-group v-model="selectedNode.nodeConfig.autoRecall" @change="handleConfigChange">
|
|
|
<el-radio :label="0">否</el-radio>
|
|
|
<el-radio :label="1">是</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
-
|
|
|
<el-form-item label="重呼次数" v-if="selectedNode.nodeConfig.autoRecall == 1">
|
|
|
<el-select v-model="selectedNode.nodeConfig.recallTimes" @change="handleConfigChange" placeholder="选择重呼次数">
|
|
|
<el-option label="不自动重呼" :value="0"/>
|
|
|
@@ -333,6 +331,74 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
+ -->
|
|
|
+
|
|
|
+ <!-- AI外呼配置(新版 EasyCallCenter365) -->
|
|
|
+ <div v-if="selectedNode.nodeType == 'AI_CALL_TASK'" class="property-section">
|
|
|
+ <div class="section-title">
|
|
|
+ <i class="el-icon-phone"></i>外呼配置
|
|
|
+ </div>
|
|
|
+ <el-form-item label="外呼网关">
|
|
|
+ <el-select
|
|
|
+ v-model="selectedNode.nodeConfig.gatewayId"
|
|
|
+ filterable
|
|
|
+ placeholder="请选择外呼网关"
|
|
|
+ @change="handleConfigChange"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in easyCallGatewayList"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.gwDesc"
|
|
|
+ :value="item.id"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="大模型">
|
|
|
+ <el-select
|
|
|
+ v-model="selectedNode.nodeConfig.llmAccountId"
|
|
|
+ filterable
|
|
|
+ placeholder="请选择大模型"
|
|
|
+ @change="handleConfigChange"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in easyCallLlmAccountList"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="音色">
|
|
|
+ <el-select
|
|
|
+ v-model="selectedNode.nodeConfig.voiceCode"
|
|
|
+ filterable
|
|
|
+ placeholder="请选择音色"
|
|
|
+ @change="handleConfigChange('handleVoice')"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in easyCallVoiceCodeList"
|
|
|
+ :key="item.voiceCode"
|
|
|
+ :label="item.voiceName"
|
|
|
+ :value="item.voiceCode"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="技能组">
|
|
|
+ <el-select
|
|
|
+ v-model="selectedNode.nodeConfig.busiGroupId"
|
|
|
+ filterable
|
|
|
+ placeholder="请选择技能组"
|
|
|
+ @change="handleConfigChange"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in easyCallBusiGroupList"
|
|
|
+ :key="item.groupId"
|
|
|
+ :label="item.bizGroupName"
|
|
|
+ :value="item.groupId"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
|
|
|
<!-- AI短信配置 -->
|
|
|
<div v-if="selectedNode.nodeType == 'AI_SEND_MSG_TASK'" class="property-section">
|
|
|
@@ -514,7 +580,7 @@ import {
|
|
|
} from "@/api/company/companyVoiceRobotic";
|
|
|
import { getWorkflow, addWorkflow, updateWorkflow, getNodeTypes } from '@/api/company/companyWorkflow'
|
|
|
import {getDicts} from "@/api/system/dict/data";
|
|
|
-
|
|
|
+import { getGatewayList, getLlmAccountList, getVoiceCodeList, getBusiGroupList } from '@/api/company/easyCall'
|
|
|
import { listAll } from '@/api/company/wxDialog';
|
|
|
export default {
|
|
|
name: 'WorkflowDesign',
|
|
|
@@ -595,6 +661,11 @@ export default {
|
|
|
robotList: [],
|
|
|
smsTempList: [],
|
|
|
dialogList: [],
|
|
|
+ // EasyCallCenter365 外呼配置相关列表
|
|
|
+ easyCallGatewayList: [], // 外呼线路(网关)列表
|
|
|
+ easyCallLlmAccountList: [], // 大模型底座列表
|
|
|
+ easyCallVoiceCodeList: [], // 音色列表
|
|
|
+ easyCallBusiGroupList: [], // tts厂商(技能组)列表
|
|
|
}
|
|
|
},
|
|
|
created() {
|
|
|
@@ -635,7 +706,11 @@ export default {
|
|
|
},
|
|
|
|
|
|
// 处理配置变化,强制更新视图
|
|
|
- handleConfigChange() {
|
|
|
+ handleConfigChange(v) {
|
|
|
+ if( !!v && v === "handleVoice" ){
|
|
|
+ let voice = this.easyCallVoiceCodeList.filter(e=>e.voiceCode == this.selectedNode.nodeConfig.voiceCode);
|
|
|
+ this.selectedNode.nodeConfig.voiceSource = voice[0].voiceSource;
|
|
|
+ }
|
|
|
// 强制触发Vue响应式更新
|
|
|
this.$forceUpdate()
|
|
|
},
|
|
|
@@ -688,6 +763,19 @@ export default {
|
|
|
}).catch(res=>{
|
|
|
console.log(res);
|
|
|
});
|
|
|
+ // 加载 EasyCallCenter365 四项基础数据
|
|
|
+ getGatewayList().then(res => {
|
|
|
+ this.easyCallGatewayList = res.data || []
|
|
|
+ })
|
|
|
+ getLlmAccountList().then(res => {
|
|
|
+ this.easyCallLlmAccountList = res.data || []
|
|
|
+ })
|
|
|
+ getVoiceCodeList().then(res => {
|
|
|
+ this.easyCallVoiceCodeList = res.data || []
|
|
|
+ })
|
|
|
+ getBusiGroupList().then(res => {
|
|
|
+ this.easyCallBusiGroupList = res.data || []
|
|
|
+ })
|
|
|
}
|
|
|
if (this.selectedNode.nodeType === 'AI_SEND_MSG_TASK') {
|
|
|
getSmsTempList().then(res => {
|
|
|
@@ -1344,7 +1432,7 @@ export default {
|
|
|
addWorkflow(data).then(res => {
|
|
|
this.msgSuccess('保存成功')
|
|
|
this.workflowId = res.data
|
|
|
- this.$router.replace('/company/companyWorkflow/design/' + this.workflowId)
|
|
|
+ this.$router.replace('/companyWx/companyWorkflow/design/' + this.workflowId)
|
|
|
})
|
|
|
}
|
|
|
}
|