|
@@ -522,6 +522,7 @@ import {
|
|
|
busyOn,
|
|
|
queryBlacklist,
|
|
|
getTelStatus,
|
|
|
+ switchMode,
|
|
|
} from '@/api/public/wex';
|
|
|
import signalR from '@/utils/signalR';
|
|
|
import { Local } from '@/utils/storage';
|
|
@@ -793,15 +794,23 @@ const onConnect = () => {
|
|
|
|
|
|
// ola.logout(currentTel.value.telNo); //连接之后,先登出一次,防止其他地方已经登陆
|
|
|
let array_ola_queue: EmptyArrayType = []; // 队列
|
|
|
- if (currentTel.value.queue) {
|
|
|
+ if (currentTel.value.telModel === 2) {
|
|
|
+ // 外呼模式
|
|
|
+ let array = currentTel.value.queueCallOut.split(',');
|
|
|
+ for (let i = 0; i < array.length; i++) {
|
|
|
+ array_ola_queue[i] = array[i];
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 普通模式
|
|
|
let array = currentTel.value.queue.split(',');
|
|
|
for (let i = 0; i < array.length; i++) {
|
|
|
array_ola_queue[i] = array[i];
|
|
|
}
|
|
|
- ola.login(array_ola_queue, currentTel.value.telNo, { type: 'onhook' });
|
|
|
- connectVoiceAssistant(currentTel.value.telNo); // 坐席助手开启
|
|
|
}
|
|
|
Local.set('telNo', currentTel.value.telNo);
|
|
|
+ console.log(currentTel.value.telNo, '当前话机');
|
|
|
+ ola.login(array_ola_queue, currentTel.value.telNo, { type: 'onhook' });
|
|
|
+ connectVoiceAssistant(currentTel.value.telNo); // 坐席助手开启
|
|
|
};
|
|
|
// 业务系统发送消息
|
|
|
const sendMsg = (msg: any) => {
|
|
@@ -826,27 +835,30 @@ const onMessage = async (event: any) => {
|
|
|
// 签入
|
|
|
// 设置分机号和坐席组
|
|
|
useTelStatusStore.setCallInfo({ telsNo: currentTel.value.telNo });
|
|
|
- state.loading = true;
|
|
|
setTimeout(() => {
|
|
|
- console.log('isRest', `当前分机是否正在休息${isRest.value}`);
|
|
|
- if (isRest.value) {
|
|
|
- // 如果是小休状态
|
|
|
- ola.go_break(''); //设置忙碌
|
|
|
- } else {
|
|
|
+ console.log(`当前话机模式:${currentTel.value.telModel} 2:外呼模式 1:普通模式`);
|
|
|
+ if (currentTel.value.telModel == 2) {
|
|
|
// 设置示闲状态
|
|
|
ola.go_ready();
|
|
|
- console.log('呼叫中心:调用示闲');
|
|
|
+ // 设置外呼模式
|
|
|
+ useTelStatusStore.setCallOut(true);
|
|
|
+ // 设置话机状态 外呼模式中
|
|
|
+ useTelStatusStore.setPhoneControlState(TelStates.onCallOut);
|
|
|
+ } else {
|
|
|
+ console.log('isRest', `当前分机是否正在休息${isRest.value}`);
|
|
|
+ if (isRest.value) {
|
|
|
+ // 如果是小休状态
|
|
|
+ ola.go_break(''); //设置忙碌
|
|
|
+ } else {
|
|
|
+ // 设置示闲状态
|
|
|
+ ola.go_ready();
|
|
|
+ console.log('呼叫中心:调用示闲');
|
|
|
+ }
|
|
|
}
|
|
|
- }, 1000);
|
|
|
+ }, 300);
|
|
|
console.log('呼叫中心:已签入');
|
|
|
ElMessage.success('签入成功');
|
|
|
-
|
|
|
- // 链接成功 重置重连次数
|
|
|
- reconnectAttempts = 0; // 重置重连次数
|
|
|
- isReconnect.value = false; // 不需要重连了
|
|
|
- setTimeout(()=>{
|
|
|
- isReconnect.value = true;
|
|
|
- },3000);
|
|
|
+ stopReconnect(); // 停止重连
|
|
|
sendMsg('login');
|
|
|
} else if (data.state == 'logout') {
|
|
|
// 签出
|
|
@@ -858,21 +870,39 @@ const onMessage = async (event: any) => {
|
|
|
isReconnect.value = false; // 不需要重连
|
|
|
seatAssistOff();
|
|
|
} else if (data.state == 'ready') {
|
|
|
- // 结束计时
|
|
|
- removeTimer();
|
|
|
- // 设置分机号和坐席组
|
|
|
- useTelStatusStore.setCallInfo({ telsNo: data.agent_extn });
|
|
|
- // 设置签入状态
|
|
|
- useTelStatusStore.setDutyState(true);
|
|
|
- // 示闲中
|
|
|
- // 设置休息状态 设置未正常状态
|
|
|
- useTelStatusStore.setRest(RestStates.unRest);
|
|
|
- // 设置话机状态 结束休息改为签入状态
|
|
|
- useTelStatusStore.setPhoneControlState(TelStates.dutyOn);
|
|
|
- state.loading = false;
|
|
|
- // ElMessage.success('示闲中');
|
|
|
- console.log('呼叫中心:示闲中');
|
|
|
- sendMsg('ready');
|
|
|
+ if (currentTel.value.telModel === 2) {
|
|
|
+ // 外呼模式
|
|
|
+ // 结束计时
|
|
|
+ removeTimer();
|
|
|
+ // 设置分机号和坐席组
|
|
|
+ useTelStatusStore.setCallInfo({ telsNo: data.agent_extn });
|
|
|
+ // 设置签入状态
|
|
|
+ useTelStatusStore.setDutyState(true);
|
|
|
+ // 示闲中
|
|
|
+ // 设置外呼模式
|
|
|
+ useTelStatusStore.setCallOut(true);
|
|
|
+ // 设置话机状态 修改为外呼状态
|
|
|
+ useTelStatusStore.setPhoneControlState(TelStates.onCallOut);
|
|
|
+ state.loading = false;
|
|
|
+ console.log('呼叫中心 外呼模式:示闲中');
|
|
|
+ sendMsg('ready');
|
|
|
+ } else {
|
|
|
+ // 结束计时
|
|
|
+ removeTimer();
|
|
|
+ // 设置分机号和坐席组
|
|
|
+ useTelStatusStore.setCallInfo({ telsNo: data.agent_extn });
|
|
|
+ // 设置签入状态
|
|
|
+ useTelStatusStore.setDutyState(true);
|
|
|
+ // 示闲中
|
|
|
+ // 设置休息状态 设置未正常状态
|
|
|
+ useTelStatusStore.setRest(RestStates.unRest);
|
|
|
+ // 设置话机状态 结束休息改为签入状态
|
|
|
+ useTelStatusStore.setPhoneControlState(TelStates.dutyOn);
|
|
|
+ state.loading = false;
|
|
|
+ // ElMessage.success('示闲中');
|
|
|
+ console.log('呼叫中心:示闲中');
|
|
|
+ sendMsg('ready');
|
|
|
+ }
|
|
|
} else if (data.state == 'unready') {
|
|
|
break_reason(data.private_data);
|
|
|
sendMsg('unready'); // 发送消息 业务系统消息通知
|
|
@@ -915,39 +945,46 @@ const onMessage = async (event: any) => {
|
|
|
});
|
|
|
}*/
|
|
|
} else if (data.state == 'acw') {
|
|
|
- console.log(call_direction.value, '呼入还是呼出');
|
|
|
- if (call_direction.value === 'inbound') {
|
|
|
- // 呼入需要进入话后整理
|
|
|
- // 设置分机号和坐席组
|
|
|
- useTelStatusStore.setCallInfo({ telsNo: data.agent_extn });
|
|
|
+ if (currentTel.value.telModel) {
|
|
|
+ // 挂机后 如果是外呼模式
|
|
|
+ // 呼出直接调用示闲
|
|
|
+ ola.go_ready(); // 示闲
|
|
|
+ console.log('外呼模式进入话后整理调用示闲');
|
|
|
+ } else {
|
|
|
+ console.log(call_direction.value, '呼入还是呼出');
|
|
|
+ if (call_direction.value === 'inbound') {
|
|
|
+ // 呼入需要进入话后整理
|
|
|
+ // 设置分机号和坐席组
|
|
|
+ useTelStatusStore.setCallInfo({ telsNo: data.agent_extn });
|
|
|
|
|
|
- // 话后整理中
|
|
|
- const time: number = AppConfigInfo.value.talkingDealTime * 1000; // 话后整理时间
|
|
|
- ElNotification({
|
|
|
- title: '自动开启话后整理成功',
|
|
|
- message: `${time / 1000}秒后自动结束话后整理,或者手动结束话后整理`,
|
|
|
- type: 'success',
|
|
|
- duration: 1000 * 10,
|
|
|
- });
|
|
|
- // 设置话后整理
|
|
|
- useTelStatusStore.setTalkingDeal(true);
|
|
|
- // 设置话机状态 设置为话后整理中
|
|
|
- useTelStatusStore.setPhoneControlState(TelStates.onTalkingDeal);
|
|
|
- talkDealTimer.value = setTimeout(() => {
|
|
|
+ // 话后整理中
|
|
|
+ const time: number = AppConfigInfo.value.talkingDealTime * 1000; // 话后整理时间
|
|
|
+ ElNotification({
|
|
|
+ title: '自动开启话后整理成功',
|
|
|
+ message: `${time / 1000}秒后自动结束话后整理,或者手动结束话后整理`,
|
|
|
+ type: 'success',
|
|
|
+ duration: 1000 * 10,
|
|
|
+ });
|
|
|
// 设置话后整理
|
|
|
- useTelStatusStore.setTalkingDeal(false);
|
|
|
- // 设置话机状态 取消话后整理修改为空闲状态
|
|
|
- useTelStatusStore.setPhoneControlState(TelStates.dutyOn);
|
|
|
+ useTelStatusStore.setTalkingDeal(true);
|
|
|
+ // 设置话机状态 设置为话后整理中
|
|
|
+ useTelStatusStore.setPhoneControlState(TelStates.onTalkingDeal);
|
|
|
+ talkDealTimer.value = setTimeout(() => {
|
|
|
+ // 设置话后整理
|
|
|
+ useTelStatusStore.setTalkingDeal(false);
|
|
|
+ // 设置话机状态 取消话后整理修改为空闲状态
|
|
|
+ useTelStatusStore.setPhoneControlState(TelStates.dutyOn);
|
|
|
+ ola.go_ready(); // 示闲
|
|
|
+ console.log('呼叫中心:调用示闲');
|
|
|
+ clearTimeout(talkDealTimer.value); // 清除话后整理定时器
|
|
|
+ }, time);
|
|
|
+ console.log('呼叫中心:话后整理中');
|
|
|
+ sendMsg('acw');
|
|
|
+ } else {
|
|
|
+ // 呼出直接调用示闲
|
|
|
ola.go_ready(); // 示闲
|
|
|
console.log('呼叫中心:调用示闲');
|
|
|
- clearTimeout(talkDealTimer.value); // 清除话后整理定时器
|
|
|
- }, time);
|
|
|
- console.log('呼叫中心:话后整理中');
|
|
|
- sendMsg('acw');
|
|
|
- } else {
|
|
|
- // 呼出直接调用示闲
|
|
|
- ola.go_ready(); // 示闲
|
|
|
- console.log('呼叫中心:调用示闲');
|
|
|
+ }
|
|
|
}
|
|
|
} else if (data.state == 'busy') {
|
|
|
console.log(data.state, '其他状态');
|
|
@@ -1064,7 +1101,6 @@ const onMessage = async (event: any) => {
|
|
|
} else if (data.old_state == 'busy') {
|
|
|
//挂机后系统可以返回两种状态:acw 话后整理状态 ready 示闲状态,如果不需要acw,可以联系我们后台修改配置,如果需要保留,如果需要再次
|
|
|
//拨打电话的话,需要手动点击示闲按钮
|
|
|
-
|
|
|
// 设置分机号和坐席组
|
|
|
useTelStatusStore.setCallInfo({ telsNo: data.agent_extn });
|
|
|
|
|
@@ -1110,7 +1146,7 @@ const submitLogFn = async (event: any) => {
|
|
|
// 呼叫中心链接关闭
|
|
|
const isReconnect = ref(true); // 呼叫中心是否需要重连
|
|
|
const onClose = async (event: any) => {
|
|
|
- console.log('呼叫中心断开链接', isReconnect.value ? '需要重连' : '不需要重连');
|
|
|
+ console.log('呼叫中心断开链接', isReconnect.value ? '需要重连' : '不需要重连');
|
|
|
resetState();
|
|
|
if (isReconnect.value) {
|
|
|
await reConnect(); // 重新链接呼叫中心
|
|
@@ -1121,16 +1157,17 @@ const onClose = async (event: any) => {
|
|
|
let reconnectAttempts = 0; // 重连次数
|
|
|
let maxReconnectAttempts = 10; // 最大重连次数
|
|
|
let reconnectInterval = 2; // 重连间隔
|
|
|
+const reconnectTimeout = ref(); // 重连定时器
|
|
|
const reConnect = async () => {
|
|
|
- ElNotification({
|
|
|
+ /* ElNotification({
|
|
|
title: '重连提示',
|
|
|
message: `检测到与呼叫中心链接断开,${reconnectInterval}秒后将重新链接`,
|
|
|
type: 'warning',
|
|
|
duration: reconnectInterval * 1000,
|
|
|
- });
|
|
|
+ });*/
|
|
|
console.log('开始重连', `已重连${reconnectAttempts}次,最大重连次数${maxReconnectAttempts}次,重连间隔${reconnectInterval}秒`);
|
|
|
if (reconnectAttempts < maxReconnectAttempts) {
|
|
|
- setTimeout(() => {
|
|
|
+ reconnectTimeout.value = setTimeout(() => {
|
|
|
reconnectAttempts++;
|
|
|
websocket_connect();
|
|
|
}, reconnectInterval * 1000);
|
|
@@ -1143,6 +1180,15 @@ const reConnect = async () => {
|
|
|
console.error('已到达重连次数最高,请手动刷新重连');
|
|
|
}
|
|
|
};
|
|
|
+// 链接成功 停止重连
|
|
|
+const stopReconnect = () => {
|
|
|
+ isReconnect.value = false;
|
|
|
+ clearTimeout(reconnectTimeout.value);
|
|
|
+ setTimeout(() => {
|
|
|
+ isReconnect.value = true;
|
|
|
+ }, 3000);
|
|
|
+ console.log('停止重连');
|
|
|
+};
|
|
|
// 小休原因
|
|
|
const restReason = ref(''); // 小休原因
|
|
|
const break_reason = (reason: string) => {
|
|
@@ -1227,7 +1273,9 @@ const onDutyFn = async () => {
|
|
|
.then((res: any) => {
|
|
|
currentTel.value.password = res.result.telPwd;
|
|
|
currentTel.value.telNo = res.result.telNo;
|
|
|
- currentTel.value.queue = res.result.queueId;
|
|
|
+ currentTel.value.queue = res.result.queueId; // 呼入分机组
|
|
|
+ currentTel.value.telModel = res.result.telModel; // 1:普通模式 2:呼出模式
|
|
|
+ currentTel.value.queueCallOut = res.result.queueCallOut; // 呼出分机组
|
|
|
// 不需要选择分机号和密码 直接签入 传入默认分机号
|
|
|
websocket_connect(); //开启消息监听
|
|
|
startDutyTimer(res.result.second); // 开启计时 签入时长
|
|
@@ -1240,6 +1288,7 @@ const onDutyFn = async () => {
|
|
|
});
|
|
|
})
|
|
|
.catch(() => {
|
|
|
+ resetState();
|
|
|
state.loading = false;
|
|
|
});
|
|
|
}
|
|
@@ -1275,17 +1324,23 @@ const clickOnDuty = (formEl: FormInstance | undefined) => {
|
|
|
// 需要分机和密码
|
|
|
currentTel.value.password = state.dutyForm.password;
|
|
|
currentTel.value.telNo = state.dutyForm.telNo;
|
|
|
- currentTel.value.queue = res.result.queueId;
|
|
|
+ currentTel.value.queue = res.result.queueId; // 呼入分机组
|
|
|
+ currentTel.value.telModel = res.result.telModel; // 1:普通模式 2:呼出模式
|
|
|
+ currentTel.value.queueCallOut = res.result.queueCallOut; // 呼出分机组
|
|
|
} else if (AppConfigInfo.value.isNeedTelNo) {
|
|
|
//需要分机号
|
|
|
currentTel.value.password = res.result.telPwd;
|
|
|
currentTel.value.telNo = res.result.telNo;
|
|
|
- currentTel.value.queue = res.result.queueId;
|
|
|
+ currentTel.value.queue = res.result.queueId; // 呼入分机组
|
|
|
+ currentTel.value.telModel = res.result.telModel; // 1:普通模式 2:呼出模式
|
|
|
+ currentTel.value.queueCallOut = res.result.queueCallOut; // 呼出分机组
|
|
|
} else if (AppConfigInfo.value.isTelNeedVerify) {
|
|
|
// 需要密码
|
|
|
currentTel.value.password = state.dutyForm.password;
|
|
|
currentTel.value.telNo = res.result.telNo;
|
|
|
- currentTel.value.queue = res.result.queueId;
|
|
|
+ currentTel.value.queue = res.result.queueId; // 呼入分机组
|
|
|
+ currentTel.value.telModel = res.result.telModel; // 1:普通模式 2:呼出模式
|
|
|
+ currentTel.value.queueCallOut = res.result.queueCallOut; // 呼出分机组
|
|
|
}
|
|
|
websocket_connect(); //开启消息监听
|
|
|
startDutyTimer(res.result.second); // 开启计时 签入时长
|
|
@@ -1294,10 +1349,8 @@ const clickOnDuty = (formEl: FormInstance | undefined) => {
|
|
|
state.dutyDialogVisible = false;
|
|
|
})
|
|
|
.catch(() => {
|
|
|
- // dutyOff();
|
|
|
- // 重置所有状态
|
|
|
- useTelStatusStore.resetState();
|
|
|
- console.log('呼叫中心:签入错误111');
|
|
|
+ resetState(); // 重置所有状态
|
|
|
+ console.log('业务系统:签入错误');
|
|
|
})
|
|
|
.finally(() => {
|
|
|
state.loading = false;
|
|
@@ -1325,16 +1378,8 @@ const offDutyFn = () => {
|
|
|
setTimeout(() => {
|
|
|
ola.close();
|
|
|
}, 500);
|
|
|
- // 重置所有状态
|
|
|
- useTelStatusStore.resetState();
|
|
|
- removeTimerOnDuty(); // 移除签入时长定时器
|
|
|
- removeTimer(); // 移除通话计时器
|
|
|
- clearTimeout(talkDealTimer.value); // 清除话后整理定时器
|
|
|
- clearInterval(pingTimer.value); // 清除心跳定时器
|
|
|
- clearInterval(onDutyTimer.value); // 清除签入时长定时器
|
|
|
- clearInterval(talkTimer.value); // 清除通话时长定时器
|
|
|
-
|
|
|
state.dutyOnSrc = getImageUrl('phoneControls/dutyOn_blue.png'); //签入图片
|
|
|
+ resetState(); // 重置所有状态
|
|
|
state.loading = false;
|
|
|
})
|
|
|
.catch(() => {})
|
|
@@ -1348,7 +1393,7 @@ const offDutyFn = () => {
|
|
|
};
|
|
|
// 开启外呼模式
|
|
|
const onCallOut = () => {
|
|
|
- ElMessageBox.confirm(`确定要开启外呼模式,是否继续?`, '提示', {
|
|
|
+ ElMessageBox.confirm(`确定要进入外呼模式,进入外呼模式后将无法接听到来电`, '提示', {
|
|
|
confirmButtonText: '确认',
|
|
|
cancelButtonText: '取消',
|
|
|
type: 'warning',
|
|
@@ -1357,18 +1402,28 @@ const onCallOut = () => {
|
|
|
autofocus: false,
|
|
|
})
|
|
|
.then(() => {
|
|
|
- // state.loading = true;
|
|
|
- // 设置电话状态 外呼模式中
|
|
|
- useTelStatusStore.setCallOut(true);
|
|
|
- // 设置电话状态 保持中
|
|
|
- useTelStatusStore.setPhoneControlState(TelStates.onCallOut);
|
|
|
- sendMsg('held');
|
|
|
+ state.loading = true;
|
|
|
+ switchMode({ isCallOut: true })
|
|
|
+ .then(() => {
|
|
|
+ ola.logout(currentTel.value.telNo);
|
|
|
+ currentTel.value.telModel = 2;
|
|
|
+ websocket_connect();
|
|
|
+ // 设置电话状态 外呼模式中
|
|
|
+ useTelStatusStore.setCallOut(true);
|
|
|
+ // 设置电话状态 保持中
|
|
|
+ useTelStatusStore.setPhoneControlState(TelStates.onCallOut);
|
|
|
+ state.loading = false;
|
|
|
+ getTelStatusFn();
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ state.loading = false;
|
|
|
+ });
|
|
|
})
|
|
|
.catch(() => {});
|
|
|
};
|
|
|
// 关闭外呼模式
|
|
|
const onUnCallOut = () => {
|
|
|
- ElMessageBox.confirm(`确定要关闭外呼模式,是否继续?`, '提示', {
|
|
|
+ ElMessageBox.confirm(`确定要取消外呼模式,取消外呼模式后将会收到市民来电?`, '提示', {
|
|
|
confirmButtonText: '确认',
|
|
|
cancelButtonText: '取消',
|
|
|
type: 'warning',
|
|
@@ -1377,11 +1432,22 @@ const onUnCallOut = () => {
|
|
|
autofocus: false,
|
|
|
})
|
|
|
.then(() => {
|
|
|
- // 设置电话状态 取消外呼模式
|
|
|
- useTelStatusStore.setCallOut(false);
|
|
|
- // 设置电话状态 保持中
|
|
|
- useTelStatusStore.setPhoneControlState(TelStates.dutyOn);
|
|
|
- // state.loading = true;
|
|
|
+ state.loading = true;
|
|
|
+ switchMode({ isCallOut: false })
|
|
|
+ .then(() => {
|
|
|
+ ola.logout(currentTel.value.telNo);
|
|
|
+ currentTel.value.telModel = 1;
|
|
|
+ websocket_connect();
|
|
|
+ // 设置电话状态 取消外呼模式
|
|
|
+ useTelStatusStore.setCallOut(false);
|
|
|
+ // 设置电话状态 保持中
|
|
|
+ useTelStatusStore.setPhoneControlState(TelStates.dutyOn);
|
|
|
+ state.loading = false;
|
|
|
+ getTelStatusFn();
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ state.loading = false;
|
|
|
+ });
|
|
|
})
|
|
|
.catch(() => {});
|
|
|
};
|
|
@@ -1396,9 +1462,7 @@ const onHangup = () => {
|
|
|
autofocus: false,
|
|
|
})
|
|
|
.then(() => {
|
|
|
- state.loading = true;
|
|
|
ola.hangup(); //挂断
|
|
|
- state.loading = false;
|
|
|
})
|
|
|
.catch(() => {});
|
|
|
};
|
|
@@ -1512,11 +1576,9 @@ const onRestEnd = () => {
|
|
|
autofocus: false,
|
|
|
})
|
|
|
.then(() => {
|
|
|
- state.loading = true;
|
|
|
ola.go_ready(); // 示闲
|
|
|
busyOff(); // 结束小休(调用业务系统接口,统计需要)
|
|
|
console.log('呼叫中心:调用示闲');
|
|
|
- state.loading = false;
|
|
|
})
|
|
|
.catch(() => {});
|
|
|
};
|
|
@@ -1531,9 +1593,7 @@ const onHold = () => {
|
|
|
autofocus: false,
|
|
|
})
|
|
|
.then(() => {
|
|
|
- state.loading = true;
|
|
|
ola.hold(); //保持
|
|
|
- state.loading = false;
|
|
|
})
|
|
|
.catch(() => {});
|
|
|
};
|
|
@@ -1548,10 +1608,8 @@ const onUnHold = () => {
|
|
|
autofocus: false,
|
|
|
})
|
|
|
.then(() => {
|
|
|
- state.loading = true;
|
|
|
ola.unhold(); //取消保持
|
|
|
sendMsg('busy');
|
|
|
- state.loading = false;
|
|
|
})
|
|
|
.catch(() => {});
|
|
|
};
|
|
@@ -1568,7 +1626,6 @@ const unTalkingDeal = () => {
|
|
|
autofocus: false,
|
|
|
})
|
|
|
.then(() => {
|
|
|
- state.loading = true;
|
|
|
// 设置话后整理
|
|
|
useTelStatusStore.setTalkingDeal(false);
|
|
|
// 设置话机状态 取消话后整理修改为空闲状态
|
|
@@ -1576,7 +1633,6 @@ const unTalkingDeal = () => {
|
|
|
ola.go_ready(); // 示闲
|
|
|
clearTimeout(talkDealTimer.value); // 清除话后整理定时器
|
|
|
console.log('呼叫中心:调用示闲');
|
|
|
- state.loading = false;
|
|
|
})
|
|
|
.catch(() => {});
|
|
|
};
|
|
@@ -1714,6 +1770,22 @@ const resetState = () => {
|
|
|
clearInterval(pingTimer.value); // 清除心跳定时器
|
|
|
clearInterval(onDutyTimer.value); // 清除签入时长定时器
|
|
|
clearInterval(talkTimer.value); // 清除通话时长定时器
|
|
|
+ state.loading = false;
|
|
|
+};
|
|
|
+// 获取当前分机状态
|
|
|
+const getTelStatusFn = async () => {
|
|
|
+ try {
|
|
|
+ const { result } = await getTelStatus();
|
|
|
+ currentTel.value.password = result.telPwd;
|
|
|
+ currentTel.value.telNo = result.telNo;
|
|
|
+ currentTel.value.queue = result.queueId; // 呼入分机组
|
|
|
+ currentTel.value.telModel = result.telModel; // 1:普通模式 2:呼出模式
|
|
|
+ currentTel.value.queueCallOut = result.queueCallOut; // 呼出分机组
|
|
|
+ startDutyTimer(result.second); // 开启计时 签入时长
|
|
|
+ isRest.value = result.isRest;
|
|
|
+ } catch (e) {
|
|
|
+ console.log(e);
|
|
|
+ }
|
|
|
};
|
|
|
// 刷新页面呼叫中心链接
|
|
|
const callCenterConnect = async () => {
|
|
@@ -1721,19 +1793,18 @@ const callCenterConnect = async () => {
|
|
|
try {
|
|
|
// 查询当前用户状态
|
|
|
const { result } = await getTelStatus();
|
|
|
- console.log(result);
|
|
|
if (result) {
|
|
|
// 查询到当前用户的状态
|
|
|
- // 刷新页面
|
|
|
- currentTel.value.password = result.telPwd;
|
|
|
- currentTel.value.telNo = result.telNo;
|
|
|
- currentTel.value.queue = result.queueId; // 呼入分机组
|
|
|
- currentTel.value.telModel = result.telModel; // 1:普通模式 2:呼出模式
|
|
|
- currentTel.value.queueCallOut = result.queueCallOut; // 呼出分机组
|
|
|
- websocket_connect(); //开启消息监听
|
|
|
- startDutyTimer(result.second); // 开启计时 签入时长
|
|
|
- isRest.value = result.isRest;
|
|
|
- state.loading = false;
|
|
|
+ // 刷新页面
|
|
|
+ currentTel.value.password = result.telPwd;
|
|
|
+ currentTel.value.telNo = result.telNo;
|
|
|
+ currentTel.value.queue = result.queueId; // 呼入分机组
|
|
|
+ currentTel.value.telModel = result.telModel; // 1:普通模式 2:呼出模式
|
|
|
+ currentTel.value.queueCallOut = result.queueCallOut; // 呼出分机组
|
|
|
+ websocket_connect(); //开启消息监听
|
|
|
+ startDutyTimer(result.second); // 开启计时 签入时长
|
|
|
+ isRest.value = result.isRest;
|
|
|
+ state.loading = false;
|
|
|
} else {
|
|
|
// 没有查询到当前用户上班状态 直接重置
|
|
|
resetState();
|
|
@@ -1742,6 +1813,7 @@ const callCenterConnect = async () => {
|
|
|
} catch (e) {
|
|
|
// 重置所有状态
|
|
|
resetState();
|
|
|
+ state.loading = false;
|
|
|
}
|
|
|
};
|
|
|
// 获取小休原因
|