|
@@ -6,6 +6,7 @@
|
|
|
<el-tab-pane name="1" label="呼入已接"></el-tab-pane>
|
|
|
<el-tab-pane name="2" label="呼出已接"></el-tab-pane>
|
|
|
<el-tab-pane name="3" label="未接"></el-tab-pane>
|
|
|
+ <el-tab-pane name="4" label="智能应答"></el-tab-pane>
|
|
|
</el-tabs>
|
|
|
<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="20px">
|
|
|
<el-row :gutter="10">
|
|
@@ -19,19 +20,19 @@
|
|
|
<el-input v-model="state.queryParams.CDPN" placeholder="被叫号码" clearable @keyup.enter="handleQuery" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="['0', '1', '3'].includes(state.queryParams.type)">
|
|
|
+ <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="['0', '1', '2', '3'].includes(state.queryParams.type)">
|
|
|
<el-form-item prop="TelNo">
|
|
|
<el-input v-model="state.queryParams.TelNo" placeholder="响应分机" clearable @keyup.enter="handleQuery" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
|
|
|
- <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
|
|
|
+ <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="['0', '1', '2', '3'].includes(state.queryParams.type)">
|
|
|
<el-form-item prop="UserName">
|
|
|
<el-input v-model="state.queryParams.UserName" placeholder="话务员名称" clearable @keyup.enter="handleQuery" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<transition name="el-zoom-in-top">
|
|
|
- <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
|
|
|
+ <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol || ['4'].includes(state.queryParams.type)">
|
|
|
<el-form-item prop="gateway">
|
|
|
<el-input v-model="state.queryParams.gateway" placeholder="中继号码" clearable @keyup.enter="handleQuery" />
|
|
|
</el-form-item>
|
|
@@ -56,7 +57,7 @@
|
|
|
</el-col>
|
|
|
</transition>
|
|
|
<transition name="el-zoom-in-top">
|
|
|
- <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
|
|
|
+ <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol || ['4'].includes(state.queryParams.type)">
|
|
|
<el-form-item prop="EndBy">
|
|
|
<el-select v-model="state.queryParams.EndBy" placeholder="挂机类型" clearable class="w100" @change="handleQuery">
|
|
|
<el-option v-for="item in state.endByOptions" :value="item.key" :key="item.key" :label="item.value" />
|
|
@@ -312,10 +313,14 @@ const state = reactive({
|
|
|
PageSize: 10, // 每页条数
|
|
|
type: '0',
|
|
|
StaffNo: null, // 分机号
|
|
|
- CPN: null, // 中继号码
|
|
|
- CDPN: null, // 分机号
|
|
|
- callDirection: null, // 呼叫类型
|
|
|
+ CPN: null, // 主叫号码
|
|
|
+ CDPN: null, // 被叫号码
|
|
|
+ TelNo: null, // 响应分机
|
|
|
+ CallDirection: null, // 呼叫类型
|
|
|
+ UserName: null, // 话务员名称
|
|
|
+ gateway: null, //中继号码
|
|
|
OnState: null, // 结果
|
|
|
+ IsAiAnswered: null, // 是否智能应答
|
|
|
callTime: [], // 通话时间
|
|
|
answeredTime: [], // 接通时间
|
|
|
overTime: [], // 挂断时间段
|
|
@@ -623,6 +628,70 @@ const noColumns = [
|
|
|
},
|
|
|
{ prop: 'overTime', label: '挂断时间', width: 170, render: (scope) => <span>{formatDate(scope.row.overTime, 'YYYY-mm-dd HH:MM:SS')}</span> },
|
|
|
];
|
|
|
+// 智能应答
|
|
|
+const smartColumns = [
|
|
|
+ { prop: 'cpn', label: '主叫号码', width: 120 },
|
|
|
+ { prop: 'cdpn', label: '被叫号码', width: 120 },
|
|
|
+ { prop: 'gateway', label: '中继号码', width: 120 },
|
|
|
+ { prop: 'duration', label: '通话时间(秒)', width: 120 },
|
|
|
+ { prop: 'endByText', label: '挂机类型', width: 120 },
|
|
|
+ {
|
|
|
+ prop: 'beginIvrTime',
|
|
|
+ label: 'ivr开始时间',
|
|
|
+ width: 170,
|
|
|
+ render: (scope) => <span>{formatDate(scope.row.beginIvrTime, 'YYYY-mm-dd HH:MM:SS')}</span>,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'endIvrTime',
|
|
|
+ label: 'ivr结束时间',
|
|
|
+ width: 170,
|
|
|
+ render: (scope) => <span>{formatDate(scope.row.endIvrTime, 'YYYY-mm-dd HH:MM:SS')}</span>,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'beginQueueTime',
|
|
|
+ label: '队列开始时间',
|
|
|
+ width: 170,
|
|
|
+ render: (scope) => <span>{formatDate(scope.row.beginQueueTime, 'YYYY-mm-dd HH:MM:SS')}</span>,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'endQueueTime',
|
|
|
+ label: '队列结束时间',
|
|
|
+ width: 170,
|
|
|
+ render: (scope) => {
|
|
|
+ return <span>{formatDate(scope.row.endQueueTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'beginRingTime',
|
|
|
+ label: '开始振铃时间',
|
|
|
+ width: 170,
|
|
|
+ render: (scope) => {
|
|
|
+ return <span>{formatDate(scope.row.beginRingTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'endRingTimg',
|
|
|
+ label: '结束振铃时间',
|
|
|
+ width: 170,
|
|
|
+ render: (scope) => {
|
|
|
+ return <span>{formatDate(scope.row.endRingTimg, 'YYYY-mm-dd HH:MM:SS')}</span>;
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'createdTime',
|
|
|
+ label: '开始时间',
|
|
|
+ width: 170,
|
|
|
+ render: (scope) => <span>{formatDate(scope.row.createdTime, 'YYYY-mm-dd HH:MM:SS')}</span>,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'answeredTime',
|
|
|
+ label: '接通时间',
|
|
|
+ width: 170,
|
|
|
+ render: (scope) => <span>{formatDate(scope.row.answeredTime, ' YYYY-mm-dd HH:MM:SS')}</span>,
|
|
|
+ },
|
|
|
+ { prop: 'overTime', label: '挂断结束时间', width: 170, render: (scope) => <span>{formatDate(scope.row.overTime, 'YYYY-mm-dd HH:MM:SS')}</span> },
|
|
|
+ { prop: 'operation', label: '操作', fixed: 'right', width: 310, align: 'center' },
|
|
|
+];
|
|
|
const changeTba = () => {
|
|
|
ruleFormRef.value.resetFields();
|
|
|
handleQuery();
|
|
@@ -666,6 +735,12 @@ const queryList = async () => {
|
|
|
columns.value = noColumns;
|
|
|
request.OnState = 2;
|
|
|
break;
|
|
|
+ case '4':
|
|
|
+ columns.value = smartColumns;
|
|
|
+ request.IsAiAnswered = true;
|
|
|
+ request.OnState = 1;
|
|
|
+ request.CallDirection = 0;
|
|
|
+ break;
|
|
|
default:
|
|
|
columns.value = allColumns;
|
|
|
break;
|
|
@@ -744,12 +819,12 @@ const onCreate = (row: any) => {
|
|
|
state: {
|
|
|
createBy: 'tel',
|
|
|
fromTel: row.cpn,
|
|
|
- telGuid: row.callAccept,
|
|
|
+ telGuid: row.otherAccept,
|
|
|
transfer: row.gateway,
|
|
|
telArea: '',
|
|
|
},
|
|
|
params: {
|
|
|
- callId: row.callAccept,
|
|
|
+ callId: row.otherAccept,
|
|
|
tagsViewName: '创建失联工单',
|
|
|
},
|
|
|
});
|