123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- import { ref } from 'vue';
- import { getCurrentCityConfig } from '@/utils/appConfig';
- import { getNowDateTime } from '@/utils/constants';
- import { ElMessage } from 'element-plus';
- import { dutyOff } from '@/api/public/wex';
- /**
- * @description 呼叫中心配置 方法
- * @return
- * cityName: 'name', // 中文名称
- * cityCode: 'code', // 6位区号
- * cityAbbr: 'abbr', // 简写
- * recordNumber: 'recordNumber', // 备案号
- * locationCenter: [lat,lng], // 地图中心点
- * loginBg: 'loginBg', // 登录背景
- * isShowLogo: true, // 是否显示左上角logo
- */
- export const callCenterWs = ref<any>(null); // 全局变量 当前呼叫中心链接
- export const callCenterIsSignIn = ref<boolean>(false); // 当前呼叫中心是否登录
- export const callCenterIsOnThePhone = ref<boolean>(false); // 当前呼叫中心是否正在通话中
- export const currentTel = ref<any>({
- telNo: '', // 分机号
- jobNum: '', //工号
- telGroup: '', // 技能组ID
- }); // 当前分机号
- const { cityName } = getCurrentCityConfig();
- // 发送消息
- const e_TelSendMsg = (strObj: Object) => {
- // 客户端当前时间
- const nowTime = getNowDateTime();
- const strMsg = JSON.stringify(strObj);
- console.log(nowTime + ' 发送消息:' + strMsg, callCenterWs.value?.status);
- if (callCenterWs.value?.ws?.readyState === 1) {
- // 已经链接并且可以通讯,则发放文本消息
- callCenterWs.value?.send(strMsg);
- } else {
- ElMessage.error('请先签入');
- }
- };
- /*
- * 外呼
- * ReqMakeCall - 方法名
- * Extension:分机号
- * Called:被叫
- * CustomerId:客户ID
- */
- const callout = (strCallNumber: number | string) => {
- if (!strCallNumber) {
- ElMessage.error('电话号码不能为空');
- return;
- }
- const obkMsg = {
- Action: 'ReqMakeCall',
- Param: {
- Extension: currentTel.value.telNo,
- Called: strCallNumber,
- CustomerId: '',
- },
- };
- // 发送请求
- e_TelSendMsg(obkMsg);
- };
- /*
- * 签出
- * ReqAgentLogout - 签出方法名称
- * Extension - 分机号码
- */
- const signOutFn = () => {
- const objMsg = {
- Action: 'ReqAgentLogout',
- Param: {
- Extension: currentTel.value.telNo,
- },
- };
- // 发送请求
- e_TelSendMsg(objMsg);
- };
- // 外呼统一调用外呼方法 兼容不同的呼叫中心
- export function callCenterOutbound(phoneNumber: number | string) {
- if (!callCenterWs.value) {
- ElMessage.warning('请先签入');
- return;
- }
- switch (cityName) {
- case '宜宾市':
- callCenterWs.value?.dial(phoneNumber);
- break;
- case '自贡市':
- callout(phoneNumber);
- break;
- default:
- }
- }
- // 统一调用退出登录并关闭链接方法 兼容不同的呼叫中心
- export function callCenterLogout() {
- if (!callCenterWs.value) {
- ElMessage.warning('请先签入');
- return;
- }
- switch (cityName) {
- case '宜宾市':
- callCenterWs.value?.logout();
- callCenterWs.value?.close();
- dutyOff(); // 呼叫中心签出
- break;
- case '自贡市':
- signOutFn();
- break;
- default:
- }
- }
|