miaofuhao преди 2 години
родител
ревизия
bbacf1d4c0

+ 307 - 273
CallCenterWeb.UI/RMYY/src/utils/telWebsocket.js

@@ -3,32 +3,32 @@
3 3
  * 签入后心跳开始;签出后心跳结束;
4 4
  * 增加心跳 false 处理(签出)
5 5
  */
6
-import { Message, MessageBox, Switch } from 'element-ui'
7
-import store from '@/store'
8
-import router from '@/router'
9
-import { Teljournal } from '@/api/commonAPI'
10
-let ws // websocket 实例
11
-let cls = 0
12
-let lockReconnect = false // 避免重复连接
13
-let websocktTimer // 定时器
14
-let wsUrl = null
6
+import { Message, MessageBox, Switch } from "element-ui";
7
+import store from "@/store";
8
+import router from "@/router";
9
+import { Teljournal } from "@/api/commonAPI";
10
+let ws; // websocket 实例
11
+let cls = 0;
12
+let lockReconnect = false; // 避免重复连接
13
+let websocktTimer; // 定时器
14
+let wsUrl = null;
15 15
 // const wsUrl = 'ws://' + process.env.SOCKET_IP + ':' + process.env.SOCKET_PORT
16 16
 // 创建scoket连接
17 17
 export function createWebSocket() {
18 18
   wsUrl =
19
-    'ws://' +
19
+    "ws://" +
20 20
     store.getters.serverConfig.SOCKET_IP +
21
-    ':' +
22
-    store.getters.serverConfig.SOCKET_PORT // 请求地址
21
+    ":" +
22
+    store.getters.serverConfig.SOCKET_PORT; // 请求地址
23 23
   try {
24
-    if ('WebSocket' in window) {
25
-      ws = new WebSocket(wsUrl) // 创建一个websocket实例
26
-      init()
24
+    if ("WebSocket" in window) {
25
+      ws = new WebSocket(wsUrl); // 创建一个websocket实例
26
+      init();
27 27
     } else {
28
-      Message.error('当前浏览器不支持Websocket!')
28
+      Message.error("当前浏览器不支持Websocket!");
29 29
     }
30 30
   } catch (e) {
31
-    reconnect()
31
+    reconnect();
32 32
   }
33 33
 }
34 34
 
@@ -36,23 +36,23 @@ export function createWebSocket() {
36 36
 function init() {
37 37
   ws.onopen = function() {
38 38
     // console.groupCollapsed(`telWebsocket:`)
39
-    console.log(new Date() + '  telWebsocket  ' + '建立连接:' + wsUrl)
39
+    console.log(new Date() + "  telWebsocket  " + "建立连接:" + wsUrl);
40 40
     // signIn()
41 41
     // 修改store 中连接状态
42
-    store.dispatch('ConnectWs', true)
42
+    store.dispatch("ConnectWs", true);
43 43
     // 修改 store 中telwebsocket的数据
44
-    store.dispatch('ChangeTelWSMsg', {
44
+    store.dispatch("ChangeTelWSMsg", {
45 45
       wsUrl: wsUrl,
46
-      operationType: '建立连接'
47
-    })
48
-    if (Number(window.sessionStorage.getItem('storageSeatState'))) {
49
-      signIn()
46
+      operationType: "建立连接"
47
+    });
48
+    if (Number(window.sessionStorage.getItem("storageSeatState"))) {
49
+      signIn();
50 50
     }
51
-    if (Number(window.sessionStorage.getItem('telIsLogin'))) {
51
+    if (Number(window.sessionStorage.getItem("telIsLogin"))) {
52 52
       // heartCheck.reset().start()
53 53
       // heartCheck.sendHeart()
54 54
     }
55
-  }
55
+  };
56 56
 
57 57
   // 接收到消息的回调方法
58 58
   ws.onmessage = function(evt) {
@@ -60,42 +60,42 @@ function init() {
60 60
     // 拿到任何消息都说明当前连接是正常的
61 61
     // heartCheck.reset().start()
62 62
     console.log(
63
-      '%c' +
63
+      "%c" +
64 64
         new Date() +
65
-        '%c receive%c telWebsocket %ctype:' +
65
+        "%c receive%c telWebsocket %ctype:" +
66 66
         JSON.parse(evt.data)[0].Type +
67
-        '%c ' +
67
+        "%c " +
68 68
         evt.data,
69
-      'color: #111',
70
-      'color: #67C23A',
71
-      'color: #111',
72
-      'color: #67C23A',
73
-      'color: #111'
74
-    )
75
-    dealMsg(JSON.parse(evt.data)[0])
69
+      "color: #111",
70
+      "color: #67C23A",
71
+      "color: #111",
72
+      "color: #67C23A",
73
+      "color: #111"
74
+    );
75
+    dealMsg(JSON.parse(evt.data)[0]);
76 76
     // 修改 store 中telwebsocket的数据
77
-    const telWSData = JSON.parse(evt.data)
78
-    telWSData.operationType = '接收'
79
-    store.dispatch('ChangeTelWSMsg', telWSData)
80
-  }
77
+    const telWSData = JSON.parse(evt.data);
78
+    telWSData.operationType = "接收";
79
+    store.dispatch("ChangeTelWSMsg", telWSData);
80
+  };
81 81
 
82 82
   // 连接关闭的回调方法
83 83
   ws.onclose = function(evt) {
84 84
     if (cls === 0) {
85
-      cls = 1
86
-      console.log('telWebsocket连接关闭')
85
+      cls = 1;
86
+      console.log("telWebsocket连接关闭");
87 87
       // console.groupEnd()
88 88
       // 修改store 中连接状态
89
-      store.dispatch('ConnectWs', false)
90
-      store.dispatch('ChangeLineState', 1)
89
+      store.dispatch("ConnectWs", false);
90
+      store.dispatch("ChangeLineState", 1);
91 91
       // 修改 store 中telwebsocket的数据
92
-      store.dispatch('ChangeTelWSMsg', {
92
+      store.dispatch("ChangeTelWSMsg", {
93 93
         wsUrl: wsUrl,
94
-        operationType: '连接关闭'
95
-      })
96
-      reconnect()
94
+        operationType: "连接关闭"
95
+      });
96
+      reconnect();
97 97
     }
98
-  }
98
+  };
99 99
 
100 100
   // 连接发生错误的回调方法
101 101
   ws.onerror = function(evt) {
@@ -110,40 +110,40 @@ function init() {
110 110
     // })
111 111
     // console.warn('telWebsocket连接出现异常!')
112 112
     // 修改 store 中telwebsocket的数据
113
-    store.dispatch('ChangeTelWSMsg', {
113
+    store.dispatch("ChangeTelWSMsg", {
114 114
       wsUrl: wsUrl,
115
-      operationType: '连接异常'
116
-    })
115
+      operationType: "连接异常"
116
+    });
117 117
     if (ws == null || ws.readyState !== ws.OPEN) {
118
-      console.log(new Date() + 'telWebsocket开始重连')
118
+      console.log(new Date() + "telWebsocket开始重连");
119 119
       // 修改 store 中telwebsocket的数据
120
-      store.dispatch('ChangeTelWSMsg', {
120
+      store.dispatch("ChangeTelWSMsg", {
121 121
         wsUrl: wsUrl,
122
-        operationType: '开始重连'
123
-      })
124
-      reconnect()
122
+        operationType: "开始重连"
123
+      });
124
+      reconnect();
125 125
     }
126
-  }
126
+  };
127 127
 }
128 128
 
129 129
 /**
130 130
  * 重新连接
131 131
  */
132 132
 function reconnect() {
133
-  if (lockReconnect) return
134
-  lockReconnect = true
133
+  if (lockReconnect) return;
134
+  lockReconnect = true;
135 135
   // 没连接上会一直重连,设置延迟避免请求过多
136
-  websocktTimer && clearTimeout(websocktTimer)
136
+  websocktTimer && clearTimeout(websocktTimer);
137 137
   websocktTimer = setTimeout(function() {
138
-    console.log(new Date() + '    ' + 'telWebsocket重连中……')
138
+    console.log(new Date() + "    " + "telWebsocket重连中……");
139 139
     // 修改 store 中telwebsocket的数据
140
-    store.dispatch('ChangeTelWSMsg', {
140
+    store.dispatch("ChangeTelWSMsg", {
141 141
       wsUrl: wsUrl,
142
-      operationType: '重连中……'
143
-    })
144
-    createWebSocket()
145
-    lockReconnect = false
146
-  }, 2000)
142
+      operationType: "重连中……"
143
+    });
144
+    createWebSocket();
145
+    lockReconnect = false;
146
+  }, 2000);
147 147
 }
148 148
 
149 149
 /**
@@ -152,22 +152,22 @@ function reconnect() {
152 152
  */
153 153
 export function Send(scoketDatas) {
154 154
   if (ws.readyState !== ws.OPEN) {
155
-    reconnect()
155
+    reconnect();
156 156
   }
157 157
   if (ws.readyState === ws.OPEN) {
158 158
     console.log(
159
-      '%c' +
159
+      "%c" +
160 160
         new Date() +
161
-        '%c  send %c telWebsocket  ' +
161
+        "%c  send %c telWebsocket  " +
162 162
         JSON.stringify(scoketDatas),
163
-      'color: #111',
164
-      'color: #409EFF',
165
-      'color: #111'
166
-    )
167
-    ws.send(JSON.stringify(scoketDatas))
168
-    scoketDatas.operationType = '发送'
163
+      "color: #111",
164
+      "color: #409EFF",
165
+      "color: #111"
166
+    );
167
+    ws.send(JSON.stringify(scoketDatas));
168
+    scoketDatas.operationType = "发送";
169 169
     // 修改 store 中telwebsocket的数据
170
-    store.dispatch('ChangeTelWSMsg', scoketDatas)
170
+    store.dispatch("ChangeTelWSMsg", scoketDatas);
171 171
   }
172 172
 }
173 173
 
@@ -177,33 +177,32 @@ const heartCheck = {
177 177
   timeoutObj: null,
178 178
   serverTimeoutObj: null,
179 179
   reset: function() {
180
-    clearTimeout(this.timeoutObj)
181
-    clearTimeout(this.serverTimeoutObj)
182
-    return this
180
+    clearTimeout(this.timeoutObj);
181
+    clearTimeout(this.serverTimeoutObj);
182
+    return this;
183 183
   },
184 184
 
185 185
   start: function() {
186
-    const _self = this
186
+    const _self = this;
187 187
     this.timeoutObj = setTimeout(function() {
188 188
       // 这里发送一个心跳,后端收到后,返回一个心跳消息,
189 189
       // onmessage拿到返回的心跳就说明连接正常
190
-      _self.sendHeart()
191
-      _self.aa()
192
-    }, this.timeout)
190
+      _self.sendHeart();
191
+      _self.aa();
192
+    }, this.timeout);
193 193
   },
194 194
   sendHeart: function() {
195 195
     const scoketDatas = {
196
-      Type: 'Heart',
196
+      Type: "Heart",
197 197
       Result: true,
198 198
       AgentID: store.getters.usercode, // 工号
199 199
       AgentExten: store.getters.extension, // 分机号
200 200
       // AgentGroup: 1 // 坐席组id
201 201
       AgentGroup: store.getters.groupcode // 坐席组id
202
-
203
-    }
204
-    Send(scoketDatas)
202
+    };
203
+    Send(scoketDatas);
205 204
   }
206
-}
205
+};
207 206
 // 迁入
208 207
 function signIn() {
209 208
   // if(!this.groupcode){
@@ -224,15 +223,15 @@ function signIn() {
224 223
   //   return
225 224
   // }
226 225
   const scoketDatas = {
227
-    Type: 'Login',
226
+    Type: "Login",
228 227
     AgentID: store.getters.usercode,
229 228
     AgentExten: store.getters.extension,
230 229
     // AgentGroup: window.localStorage.getItem("groupCode"), // 坐席组id window.localStorage.getItem('groupCode')
231
-    AgentGroup: '364',
232
-    AgentType: '0',
233
-    DisposeTime: '0' // 话后处理时长设置,0代表一致话后处理,除非发送置闲 (按照历史习惯,字符串形式)
234
-  }
235
-  Send(scoketDatas)
230
+    AgentGroup: "1",
231
+    AgentType: "0",
232
+    DisposeTime: "0" // 话后处理时长设置,0代表一致话后处理,除非发送置闲 (按照历史习惯,字符串形式)
233
+  };
234
+  Send(scoketDatas);
236 235
 }
237 236
 /**
238 237
  * 处理接收的消息
@@ -240,91 +239,98 @@ function signIn() {
240 239
  */
241 240
 function dealMsg(msgData) {
242 241
   if (msgData) {
243
-    const rlt = msgData.Result
242
+    const rlt = msgData.Result;
244 243
     if (rlt === true) {
245 244
       switch (msgData.Type.toLowerCase()) {
246
-        case 'login': // 签入
247
-          LoginBack()
248
-          break
249
-        case 'logout': // 签出
250
-          LogoutBack()
251
-          break
252
-        case 'dropcall': // 挂断
253
-          DropCallBack()
254
-          break
255
-        case 'makecall': // 外呼
256
-          MakeCallBack(msgData)
257
-          break
258
-        case 'setstate': // 置忙 置闲
259
-          SetState(msgData)
260
-          break // 置忙置闲
261
-        case 'meeting': // 会议
262
-          MeetingBack(msgData)
263
-          break
264
-        case 'meetingtakeback':
265
-          MeetingTakeBackFun(msgData)
266
-          break // 多方通话回签
267
-        case 'transfer': // 转移
268
-          TransferBack()
269
-          break
245
+        case "login": // 签入
246
+          LoginBack();
247
+          break;
248
+        case "logout": // 签出
249
+          LogoutBack();
250
+          break;
251
+        case "dropcall": // 挂断
252
+          DropCallBack();
253
+          break;
254
+        case "makecall": // 外呼
255
+          MakeCallBack(msgData);
256
+          break;
257
+        case "setstate": // 置忙 置闲
258
+          SetState(msgData);
259
+          break; // 置忙置闲
260
+        case "meeting": // 会议
261
+          MeetingBack(msgData);
262
+          break;
263
+        case "meetingtakeback":
264
+          MeetingTakeBackFun(msgData);
265
+          break; // 多方通话回签
266
+        case "transfer": // 转移
267
+          TransferBack();
268
+          break;
270 269
         // case 'consult': // 协商呼叫
271 270
         //   ConsultBack()
272 271
         //   break
273
-        case 'hold': // 保持
274
-          HoldBack(msgData)
275
-          break
276
-        case 'retrieve': // 接回
277
-          RetrieveBack()
278
-          break
279
-        case 'incoming': // 来电
280
-          IncomingBack(msgData)
281
-          break
282
-        case 'linestateagent': // 线路状态
283
-          LineStateAgentBack(msgData)
284
-          break
285
-        case 'agentstate': // 线路状态
286
-          updateSeatMonitorlists(msgData)
287
-          break
288
-        case 'getagentlist':
289
-          getAgentList(msgData)
290
-          break
291
-        case 'callid':
292
-          getCallid(msgData)
293
-          break
272
+        case "hold": // 保持
273
+          HoldBack(msgData);
274
+          break;
275
+        case "retrieve": // 接回
276
+          RetrieveBack();
277
+          break;
278
+        case "incoming": // 来电
279
+          IncomingBack(msgData);
280
+          break;
281
+        case "linestateagent": // 线路状态
282
+          LineStateAgentBack(msgData);
283
+          break;
284
+        case "agentstateagent": // 线路状态
285
+          agentstateagentBack(msgData);
286
+
287
+        case "agentstate": // 线路状态
288
+          updateSeatMonitorlists(msgData);
289
+          break;
290
+        case "getagentlist":
291
+          getAgentList(msgData);
292
+          break;
293
+        case "callid":
294
+          getCallid(msgData);
295
+          break;
294 296
       }
295 297
     } else if (rlt === false) {
296
-      var texs = ''
298
+      var texs = "";
297 299
       // const errCode = msgData.Error % 10000
298
-      if (msgData.Type.toLowerCase() === 'meeting') {
299
-        window.localStorage.setItem('meetingTransfer', 0)
300
-        if(window.localStorage.getItem('meetingType') == '转接'){
301
-          texs = '转接失败'
300
+      if (msgData.Type.toLowerCase() === "meeting") {
301
+        window.localStorage.setItem("meetingTransfer", 0);
302
+        if (window.localStorage.getItem("meetingType") == "转接") {
303
+          texs = "转接失败";
302 304
         }
303
-        if(window.localStorage.getItem('meetingType') == '多方通话'){
304
-          texs = '多方通话失败'
305
+        if (window.localStorage.getItem("meetingType") == "多方通话") {
306
+          texs = "多方通话失败";
305 307
         }
306
-      }else{
307
-        texs = msgData.Type
308
+      } else if (msgData.Type.toLowerCase() === "transfer") {
309
+        texs = "转接失败";
310
+      } else if (msgData.Type.toLowerCase() === "makecall") {
311
+        texs = "外呼失败";
312
+      } else {
313
+        texs = msgData.Type;
308 314
       }
309 315
       Message({
310 316
         dangerouslyUseHTMLString: true,
311 317
         message:
312 318
           '<div style="font-size:32px;font-weight: 700;text-align: center; width:100%;margin: 0 auto;">' +
313 319
           texs +
314
-          '</div>',
320
+          "</div>",
315 321
         offset: 400,
316 322
         center: true,
317
-        type: 'error',
323
+        type: "error",
318 324
         duration: 2 * 1000
319
-      })
325
+      });
320 326
     } else {
321
-      if (msgData.Type.toLowerCase() === 'linestateagent') {
322
-        LineStateAgentBack(msgData)
323
-      } else if (msgData.Type.toLowerCase() === 'monitor') {
324
-        updateSeatMonitorlists(msgData)
325
-      } else if (msgData.Type.toLowerCase() === 'waitcount') {
326
-        console.log(msgData.Type)
327
-        store.dispatch('ChangeWaitcountNumber', msgData.WaitCount)
327
+      if (msgData.Type.toLowerCase() === "linestateagent") {
328
+        LineStateAgentBack(msgData);
329
+      } else if (msgData.Type.toLowerCase() === "monitor") {
330
+        updateSeatMonitorlists(msgData);
331
+      } else if (msgData.Type.toLowerCase() === "waitcount") {
332
+        console.log(msgData.Type);
333
+        store.dispatch("ChangeWaitcountNumber", msgData.WaitCount);
328 334
       } else {
329 335
         // Message.error(`${rlt} !`)
330 336
         Message({
@@ -332,53 +338,53 @@ function dealMsg(msgData) {
332 338
           message:
333 339
             '<div style="font-size:42px;font-weight: 700;text-align: center; width:80%;margin: 0 auto;">' +
334 340
             rlt +
335
-            '</div>',
341
+            "</div>",
336 342
           offset: 400,
337 343
           center: true,
338
-          type: 'error',
344
+          type: "error",
339 345
           duration: 2 * 1000
340
-        })
346
+        });
341 347
       }
342 348
     }
343 349
   }
344 350
 }
345 351
 
346 352
 function updateSeatMonitorlists(msgData) {
347
-  store.dispatch('ChangeMonitor', true) // 修改监听操作的返回值
348
-  store.dispatch('ChangeMonitorstate', msgData.State) // 监控状态
349
-  store.dispatch('ChangeMonitoragent', msgData.AgentID) // 监控坐席
350
-  store.dispatch('ChangeMonitorexten', msgData.ExtenID) // 监控坐席
353
+  store.dispatch("ChangeMonitor", true); // 修改监听操作的返回值
354
+  store.dispatch("ChangeMonitorstate", msgData.State); // 监控状态
355
+  store.dispatch("ChangeMonitoragent", msgData.AgentID); // 监控坐席
356
+  store.dispatch("ChangeMonitorexten", msgData.ExtenID); // 监控坐席
351 357
 }
352 358
 function getCallid(msgData) {
353
-  window.localStorage.setItem('callid', msgData.CurrID)
354
-  console.log(window.localStorage.getItem('callid'), '11')
359
+  window.localStorage.setItem("callid", msgData.CurrID);
360
+  console.log(window.localStorage.getItem("callid"), "11");
355 361
 }
356 362
 // 签入
357 363
 function LoginBack(reState) {
358 364
   // 心跳检测开始
359 365
   // heartCheck.reset().start()
360
-  cls = 0
361
-  store.dispatch('LoginWs')
362
-  store.dispatch('ChangeTopRightState', ['空闲', true])
366
+  cls = 0;
367
+  store.dispatch("LoginWs");
368
+  store.dispatch("ChangeTopRightState", ["空闲", true]);
363 369
   // 弹出任务信息
364
-  store.dispatch('ChangeTask', true)
365
-  let scoketDatas = {}
366
-  if (Number(window.sessionStorage.getItem('storageSeatState')) === 2) {
370
+  store.dispatch("ChangeTask", true);
371
+  let scoketDatas = {};
372
+  if (Number(window.sessionStorage.getItem("storageSeatState")) === 2) {
367 373
     scoketDatas = {
368
-      Type: 'SayFree',
369
-      AgentID: window.localStorage.getItem('storageUsercode'),
370
-      AgentExten: window.localStorage.getItem('ext')
371
-    }
372
-    Send(scoketDatas)
373
-  } else if (Number(window.sessionStorage.getItem('storageSeatState')) === 5) {
374
+      Type: "SayFree",
375
+      AgentID: window.localStorage.getItem("storageUsercode"),
376
+      AgentExten: window.localStorage.getItem("ext")
377
+    };
378
+    Send(scoketDatas);
379
+  } else if (Number(window.sessionStorage.getItem("storageSeatState")) === 5) {
374 380
     scoketDatas = {
375
-      Type: 'SayBusy',
376
-      AgentID: window.localStorage.getItem('storageUsercode'),
377
-      AgentExten: window.localStorage.getItem('ext')
378
-    }
379
-    Send(scoketDatas)
381
+      Type: "SayBusy",
382
+      AgentID: window.localStorage.getItem("storageUsercode"),
383
+      AgentExten: window.localStorage.getItem("ext")
384
+    };
385
+    Send(scoketDatas);
380 386
   } else {
381
-    window.sessionStorage.setItem('storageSeatState', 2)
387
+    window.sessionStorage.setItem("storageSeatState", 2);
382 388
   }
383 389
 }
384 390
 
@@ -386,23 +392,23 @@ function LoginBack(reState) {
386 392
 function LogoutBack(reState) {
387 393
   // 心跳检测关闭
388 394
   // heartCheck.reset()
389
-  store.dispatch('LogoutWs')
390
-  store.dispatch('ChangeTopRightState', ['已签出', false])
395
+  store.dispatch("LogoutWs");
396
+  store.dispatch("ChangeTopRightState", ["已签出", false]);
391 397
   // 重置初始化状态
392
-  resetInitState()
393
-  window.sessionStorage.setItem('storageSeatState', 0)
394
-  getOperatonTime('2')
395
-  console.log('签出2')
398
+  resetInitState();
399
+  window.sessionStorage.setItem("storageSeatState", 0);
400
+  getOperatonTime("2");
401
+  console.log("签出2");
396 402
 }
397 403
 
398 404
 // 重置初始化状态
399 405
 function resetInitState() {
400
-  store.dispatch('ChangeSeatState', 2) // 坐席状态(空闲)
401
-  store.dispatch('ChangeLineState', 1) // 线路状态(空闲)
402
-  store.dispatch('ChangeCallNum', '') // 顶部电话号码('')
403
-  store.dispatch('ChangeCallType', 'MakeCall') // 发送的通话类型(默认是外呼)
404
-  store.dispatch('ChangeTask', false) // 外呼任务信息是否显示
405
-  store.dispatch('ChangeTaskFirst', true) // 外呼任务信息是否是第一次弹出
406
+  store.dispatch("ChangeSeatState", 2); // 坐席状态(空闲)
407
+  store.dispatch("ChangeLineState", 1); // 线路状态(空闲)
408
+  store.dispatch("ChangeCallNum", ""); // 顶部电话号码('')
409
+  store.dispatch("ChangeCallType", "MakeCall"); // 发送的通话类型(默认是外呼)
410
+  store.dispatch("ChangeTask", false); // 外呼任务信息是否显示
411
+  store.dispatch("ChangeTaskFirst", true); // 外呼任务信息是否是第一次弹出
406 412
 }
407 413
 
408 414
 /**
@@ -411,17 +417,17 @@ function resetInitState() {
411 417
  * */
412 418
 function SetState(sayOption) {
413 419
   if (sayOption.State === 5) {
414
-    store.dispatch('ChangeSeatState', 5)
415
-    window.sessionStorage.setItem('storageSeatState', 5)
416
-    store.dispatch('ChangeTopRightState', ['忙碌', false])
417
-    getOperatonTime('3')
418
-    console.log('置忙3')
420
+    store.dispatch("ChangeSeatState", 5);
421
+    window.sessionStorage.setItem("storageSeatState", 5);
422
+    store.dispatch("ChangeTopRightState", ["忙碌", false]);
423
+    getOperatonTime("3");
424
+    console.log("置忙3");
419 425
   } else if (sayOption.State === 2) {
420
-    store.dispatch('ChangeSeatState', 2)
421
-    window.sessionStorage.setItem('storageSeatState', 2)
422
-    store.dispatch('ChangeTopRightState', ['空闲', true])
423
-    getOperatonTime('4')
424
-    console.log('置闲4')
426
+    store.dispatch("ChangeSeatState", 2);
427
+    window.sessionStorage.setItem("storageSeatState", 2);
428
+    store.dispatch("ChangeTopRightState", ["空闲", true]);
429
+    getOperatonTime("4");
430
+    console.log("置闲4");
425 431
   }
426 432
 }
427 433
 
@@ -430,9 +436,9 @@ function SetState(sayOption) {
430 436
  * sayOption (点击置忙置闲后的返回值)
431 437
  * */
432 438
 function SayBusyBack(sayOption) {
433
-  store.dispatch('ChangeSeatState', 5)
434
-  if (sayOption.Type === 'SayBusy') {
435
-    store.dispatch('ChangeTopRightState', ['忙碌', false])
439
+  store.dispatch("ChangeSeatState", 5);
440
+  if (sayOption.Type === "SayBusy") {
441
+    store.dispatch("ChangeTopRightState", ["忙碌", false]);
436 442
   }
437 443
 }
438 444
 /**
@@ -440,12 +446,40 @@ function SayBusyBack(sayOption) {
440 446
  * sayOption (点击置忙置闲后的返回值)
441 447
  * */
442 448
 function SayFreeBack(sayOption) {
443
-  store.dispatch('ChangeSeatState', 2)
444
-  if (sayOption.Type === 'SayFree') {
445
-    store.dispatch('ChangeTopRightState', ['空闲', true])
449
+  store.dispatch("ChangeSeatState", 2);
450
+  if (sayOption.Type === "SayFree") {
451
+    store.dispatch("ChangeTopRightState", ["空闲", true]);
452
+  }
453
+}
454
+// 坐席状态变化
455
+function agentstateagentBack(msgData) {
456
+  switch (msgData.AgentState + "") {
457
+    case "0":
458
+      store.dispatch("ChangeTopRightState", ["离线", true]);
459
+      break; //离线
460
+    case "1":
461
+      store.dispatch("ChangeTopRightState", ["登录中", true]);
462
+      break; //登录中
463
+    case "2":
464
+      store.dispatch("ChangeTopRightState", ["空闲", true]);
465
+      break; //空闲
466
+    case "3":
467
+      store.dispatch("ChangeTopRightState", ["通话中", true]);
468
+      break; //通话中
469
+    case "4":
470
+      store.dispatch("ChangeTopRightState", ["话后处理中", true]);
471
+      break; //话后处理中
472
+    case "5":
473
+      store.dispatch("ChangeTopRightState", ["忙碌", true]);
474
+      break; //小休
475
+    case "6":
476
+      store.dispatch("ChangeTopRightState", ["振铃", true]);
477
+      break; //被请求
478
+    case "7":
479
+      store.dispatch("ChangeTopRightState", ["注销", true]);
480
+      break; //注销
446 481
   }
447 482
 }
448
-
449 483
 // 线路状态通知
450 484
 function LineStateAgentBack(linedata) {
451 485
   // 0分机不可用,1空闲,2摘机等待拨号,3正在拨号,4呼出振铃,5来电振铃,6通话中,7播放忙音中,8移除IP分机,10通话保持中
@@ -453,111 +487,111 @@ function LineStateAgentBack(linedata) {
453 487
   switch (linedata.State) {
454 488
     // case '空闲':
455 489
     case 1:
456
-      store.dispatch('ChangeLineState', 1)
457
-      store.dispatch('ChangeCallNum', '') // 顶部电话号码('')
458
-      store.dispatch('ChangeTopRightState', ['空闲', true])
459
-      break
490
+      store.dispatch("ChangeLineState", 1);
491
+      store.dispatch("ChangeCallNum", ""); // 顶部电话号码('')
492
+      store.dispatch("ChangeTopRightState", ["1111", true]);
493
+      break;
460 494
     // case '摘机等待拨号':
461 495
     case 2:
462
-      store.dispatch('ChangeLineState', 2)
463
-      store.dispatch('ChangeTopRightState', ['摘机等待拨号', true])
464
-      break
496
+      store.dispatch("ChangeLineState", 2);
497
+      store.dispatch("ChangeTopRightState", ["摘机等待拨号", true]);
498
+      break;
465 499
     // case '正在拨号':
466 500
     case 3:
467
-      store.dispatch('ChangeLineState', 3)
468
-      store.dispatch('ChangeTopRightState', ['正在拨号', true])
469
-      break
501
+      store.dispatch("ChangeLineState", 3);
502
+      store.dispatch("ChangeTopRightState", ["正在拨号", true]);
503
+      break;
470 504
     // case '呼出振铃':
471 505
     case 4:
472
-      store.dispatch('ChangeLineState', 4)
473
-      store.dispatch('ChangeTopRightState', ['呼出振铃', true])
474
-      break
506
+      store.dispatch("ChangeLineState", 4);
507
+      store.dispatch("ChangeTopRightState", ["呼出振铃", true]);
508
+      break;
475 509
     // case '来电振铃':
476 510
     case 5:
477
-      store.dispatch('ChangeLineState', 5)
478
-      store.dispatch('ChangeTopRightState', ['来电振铃', true])
479
-      break
511
+      store.dispatch("ChangeLineState", 5);
512
+      store.dispatch("ChangeTopRightState", ["来电振铃", true]);
513
+      break;
480 514
     // case '通话中':
481 515
     case 6:
482
-      store.dispatch('ChangeLineState', 6)
483
-      store.dispatch('ChangeTopRightState', ['通话中', true])
484
-      break
516
+      store.dispatch("ChangeLineState", 6);
517
+      store.dispatch("ChangeTopRightState", ["通话中", true]);
518
+      break;
485 519
     // case '播放忙音中':
486 520
     case 7:
487
-      store.dispatch('ChangeLineState', 7)
488
-      store.dispatch('ChangeTopRightState', ['播放忙音中', true])
489
-      break
521
+      store.dispatch("ChangeLineState", 7);
522
+      store.dispatch("ChangeTopRightState", ["播放忙音中", true]);
523
+      break;
490 524
     // case '移除IP分机':
491 525
     case 8:
492
-      store.dispatch('ChangeLineState', 8)
493
-      store.dispatch('ChangeTopRightState', ['移除IP分机', true])
494
-      break
526
+      store.dispatch("ChangeLineState", 8);
527
+      store.dispatch("ChangeTopRightState", ["移除IP分机", true]);
528
+      break;
495 529
     // case '通话保持中':
496 530
     case 10:
497
-      store.dispatch('ChangeLineState', 10)
498
-      store.dispatch('ChangeTopRightState', ['通话保持中', true])
499
-      break
531
+      store.dispatch("ChangeLineState", 10);
532
+      store.dispatch("ChangeTopRightState", ["通话保持中", true]);
533
+      break;
500 534
   }
501 535
 }
502 536
 
503 537
 // 来电
504 538
 function IncomingBack(inComingData) {
505
-  const inComingCallId = inComingData.CallID
506
-  let inComingNumber = inComingData.Number
507
-  store.dispatch('screenPopUpBoole', 1)
539
+  const inComingCallId = inComingData.CallID;
540
+  let inComingNumber = inComingData.Number;
541
+  store.dispatch("screenPopUpBoole", 1);
508 542
   if (inComingNumber.length > 11) {
509
-    inComingNumber = inComingNumber.substr(1)
543
+    inComingNumber = inComingNumber.substr(1);
510 544
     // console.log(inComingNumber)
511 545
   }
512
-  window.localStorage.setItem('callidSave', inComingData.CallID) // 用户的坐席组code
546
+  window.localStorage.setItem("callidSave", inComingData.CallID); // 用户的坐席组code
513 547
   router.push({
514
-    name: 'CallScreen',
515
-    path: '/callScreen',
516
-    fullPath: '/callScreen',
548
+    name: "CallScreen",
549
+    path: "/callScreen",
550
+    fullPath: "/callScreen",
517 551
     params: {
518 552
       callid: inComingCallId,
519 553
       telInNumber: inComingNumber
520 554
     }
521
-  })
522
-  store.dispatch('ChangeCallNum', inComingNumber)
555
+  });
556
+  store.dispatch("ChangeCallNum", inComingNumber);
523 557
 }
524 558
 
525 559
 // 挂断
526 560
 function DropCallBack() {
527
-  store.dispatch('ChangeCallNum', '') // 顶部电话号码('')
528
-  store.dispatch('ChangeCallType', 'MakeCall') // 发送的通话类型(默认是外呼)
529
-  store.dispatch('screenPopUpBoole', 0)
561
+  store.dispatch("ChangeCallNum", ""); // 顶部电话号码('')
562
+  store.dispatch("ChangeCallType", "MakeCall"); // 发送的通话类型(默认是外呼)
563
+  store.dispatch("screenPopUpBoole", 0);
530 564
   // 当前在坐席监控中需要 更新坐席监控内坐席的状态
531
-  const curentViews = store.state.tagsView.visitedViews
565
+  const curentViews = store.state.tagsView.visitedViews;
532 566
   for (let i = 0, len = curentViews.length; i < len; i++) {
533
-    if (curentViews[i].name === 'seatMonitor') {
567
+    if (curentViews[i].name === "seatMonitor") {
534 568
       // updateSeatMonitorlists()
535
-      return
569
+      return;
536 570
     }
537 571
   }
538 572
 }
539 573
 
540 574
 // 转接
541 575
 function TransferBack() {
542
-  store.dispatch('ChangeCallNum', '') // 顶部电话号码('')
543
-  store.dispatch('ChangeCallType', 'MakeCall') // 发送的通话类型(默认是外呼)
576
+  store.dispatch("ChangeCallNum", ""); // 顶部电话号码('')
577
+  store.dispatch("ChangeCallType", "MakeCall"); // 发送的通话类型(默认是外呼)
544 578
 }
545 579
 
546 580
 // 外呼 结果 弹出来电弹屏
547 581
 function MakeCallBack(callBackData) {
548
-  const inComingNumber = store.getters.telCallNum
549
-  const inComingCallId = callBackData.CallID
582
+  const inComingNumber = store.getters.telCallNum;
583
+  const inComingCallId = callBackData.CallID;
550 584
 }
551 585
 
552 586
 // 多方通话
553 587
 function MeetingBack() {
554
-  store.dispatch('ChangeMeetingBackFlag', true)
555
-  window.localStorage.setItem('meetingTransfer', 1)
588
+  store.dispatch("ChangeMeetingBackFlag", true);
589
+  window.localStorage.setItem("meetingTransfer", 1);
556 590
 }
557 591
 
558 592
 // 多方通话回签
559 593
 function MeetingTakeBackFun() {
560
-  store.dispatch('ChangeMeetingBackFlag', false)
594
+  store.dispatch("ChangeMeetingBackFlag", false);
561 595
 }
562 596
 
563 597
 // 录音返回
@@ -566,7 +600,7 @@ function RecordPathBack() {}
566 600
 // 保持
567 601
 function HoldBack(holdData) {
568 602
   if (holdData.Result === true) {
569
-    store.dispatch('ChangeLineState', 10)
603
+    store.dispatch("ChangeLineState", 10);
570 604
   }
571 605
 }
572 606
 
@@ -585,15 +619,15 @@ function RetrieveBack(RetrieveData) {
585 619
 
586 620
 // 获取当前在线坐席
587 621
 function getAgentList(data) {
588
-  store.dispatch('GetOnlineSeatList', data.AgentList) // 监控坐席
622
+  store.dispatch("GetOnlineSeatList", data.AgentList); // 监控坐席
589 623
 }
590 624
 
591 625
 function getOperatonTime(state) {
592 626
   const params = {
593 627
     state: state,
594
-    token: localStorage.getItem('Admin-Token').split(' ')[1]
595
-  }
628
+    token: localStorage.getItem("Admin-Token").split(" ")[1]
629
+  };
596 630
   Teljournal(params)
597 631
     .then(response => {})
598
-    .catch(result => {})
632
+    .catch(result => {});
599 633
 }

+ 5 - 19
CallCenterWeb.UI/RMYY/src/views/layout/components/Navbar/Teloperation.vue

@@ -47,26 +47,11 @@
47 47
         <p class="call_text">
48 48
           <span v-show="!telIsLogin" key="8">还未开始工作</span>
49 49
           <span
50
-            v-show="telIsLogin && telSeatState === 2 && telLineState === 1"
50
+            v-show="telIsLogin"
51 51
             key="9"
52
-            >空闲中</span
53
-          >
54
-          <span
55
-            v-show="telIsLogin && telSeatState === 5 && telLineState === 1"
56
-            key="10"
57
-            >忙碌中</span
58
-          >
59
-          <span v-show="telIsLogin && telLineState === 2" key="11">摘机中</span>
60
-          <span v-show="telIsLogin && telLineState === 3" key="12">拨号中</span>
61
-          <span
62
-            v-show="telIsLogin && (telLineState === 4 || telLineState === 5)"
63
-            key="13"
64
-            >振铃中</span
65
-          >
66
-          <span v-show="telIsLogin && telLineState === 6" key="14">通话中</span>
67
-          <span v-show="telIsLogin && telLineState === 10" key="15"
68
-            >保持中</span
52
+            >{{ telTopRightState }}</span
69 53
           >
54
+
70 55
           <svg-icon v-show="telIsLogin" icon-class="xinhao" />
71 56
         </p>
72 57
         <p
@@ -291,6 +276,7 @@ export default {
291 276
       "meetingBackFlag", //是否转移成功
292 277
       "telIsVisCallout", // 外呼操作面板是否显示
293 278
       "telCallTime", // 通话时间
279
+      "telTopRightState",
294 280
       "telMessageData", // telwebsocket 接收的数据
295 281
     ]),
296 282
   },
@@ -327,7 +313,7 @@ export default {
327 313
         Type: "Login",
328 314
         AgentID: this.usercode,
329 315
         AgentExten: this.extension,
330
-        AgentGroup: "364", // 坐席组id window.localStorage.getItem('groupCode')
316
+        AgentGroup: "1", // 坐席组id window.localStorage.getItem('groupCode')
331 317
         AgentType: "0",
332 318
         DisposeTime: "0", // 话后处理时长设置,0代表一致话后处理,除非发送置闲 (按照历史习惯,字符串形式)
333 319
       };

+ 2 - 3
CallCenterWeb.UI/RMYY/src/views/layout/components/Navbar/index.vue

@@ -372,9 +372,8 @@ export default {
372 372
           this.signOut(); // 签出
373 373
         })
374 374
         .catch(() => {
375
-          this.$message({
376
-            type: "info",
377
-            message: "已取消",
375
+          this.$store.dispatch("FedLogOut").then(() => {
376
+            location.reload(); // 为了重新实例化vue-router对象 避免bug
378 377
           });
379 378
         });
380 379
     },