liuzhihui 2 jaren geleden
bovenliggende
commit
777097dfe7

+ 17 - 8
CallCenterWeb.UI/RMYY/src/components/context/Dialplate/index.vue

@@ -213,6 +213,7 @@ export default {
213 213
       "avatar",
214 214
       "telCallType", // 通话类型
215 215
       "telIsVisCallout", // 外呼面板是否显示
216
+      'telTopRightState', // 状态信息
216 217
     ]),
217 218
   },
218 219
   watch: {
@@ -229,10 +230,15 @@ export default {
229 230
     },
230 231
     telNumber: function (newval, oldval) {
231 232
       if (newval) {
232
-        console.log(111222);
233
+        console.log("拨号拨号拨号");
233 234
         this.getCallListss();
234 235
       }
235 236
     },
237
+    telTopRightState: function(newT,oldT){
238
+      if(newT == '话后处理中'){
239
+        this.updateCallList()//更新通话记录
240
+      }
241
+    }
236 242
   },
237 243
   created() {
238 244
     // this.tabActiveName = 'first' .$refs['mark']
@@ -434,7 +440,7 @@ export default {
434 440
         getCallOutprefix(this.telNumber).then((response) => {
435 441
           if (response.state.toLowerCase() === "success") {
436 442
             const res = response.data;
437
-            debugger;
443
+            // debugger;
438 444
             let fixTransfer = "";
439 445
             let phoneTransfer = "";
440 446
             if (res.fix === "9") {
@@ -475,10 +481,10 @@ export default {
475 481
             }
476 482
             store.dispatch("ChangeCallNum", this.telNumber);
477 483
             Send(this.scoketDatas);
478
-            this.telDept = "";
479
-            this.updateCallList();
484
+            // this.telDept = "";
480 485
             store.dispatch("UpdateCalloutScreen", !this.telIsVisCallout); // 关闭外呼面板
481
-            this.telNumber = "";
486
+            // this.telNumber = "";
487
+            // this.updateCallList();
482 488
           }
483 489
         });
484 490
       } else {
@@ -509,8 +515,8 @@ export default {
509 515
         this.telDept = "";
510 516
       }
511 517
       this.callOut();
512
-      this.updateCallList();
513
-      this.telDept = "";
518
+      // this.telDept = "";
519
+      // this.updateCallList();
514 520
     },
515 521
     // 更新通话记录
516 522
     updateCallList() {
@@ -521,7 +527,10 @@ export default {
521 527
         transfertophone: this.telNumber,
522 528
         transfercallstate: window.localStorage.getItem("meetingTransfer"),
523 529
       };
524
-      getUpdateCallRecordForTransfer(params).then((res) => {});
530
+      getUpdateCallRecordForTransfer(params).then((res) => {
531
+        this.telDept = ""
532
+        this.telNumber = ""
533
+      });
525 534
     },
526 535
     // 展示隐藏工单图标
527 536
     showOrderIcon() {

+ 11 - 23
CallCenterWeb.UI/RMYY/src/components/workOrder/dispatching/addOrEditDispatch.vue

@@ -270,6 +270,7 @@
270 270
     getClassByDeptId,
271 271
   } from '@/api/commonAPI'
272 272
   import { Send } from '../../../utils/telWebsocket.js'
273
+  import { mapGetters } from 'vuex'
273 274
   export default {
274 275
     name: 'AddOrEditDispatch',
275 276
     props: {
@@ -425,6 +426,11 @@
425 426
         this.ruleForm.F_Type2 = this.orderTypeData.F_Type2
426 427
       }
427 428
     },
429
+    computed: {
430
+      ...mapGetters([
431
+        'telTopRightState', // 状态信息
432
+      ])
433
+    },
428 434
     created() {
429 435
       this.cid = this.callid
430 436
       if (!this.cid) {
@@ -505,7 +511,6 @@
505 511
       getDeptid1(data) {
506 512
         this.ruleForm.DealDept = data[data.length - 1]
507 513
         this.getClassUser(data[data.length - 1])
508
-        // this.getRepairman1(data[data.length - 1], 0)
509 514
       },
510 515
       getClassUser(id) {
511 516
         const params = {
@@ -658,7 +663,6 @@
658 663
                 this.ruleForm.opt = '2'
659 664
                 this.deptidArr1 =
660 665
                   this.$store.getters.deptmap[parseInt(res.F_DealDept)].ids
661
-                // console.log(this.$store.getters.deptmap[parseInt(res.F_DealDept)].ids)
662 666
                 this.getRepairman1(res.F_DealDept, 0)
663 667
                 this.ruleForm.DealDept = res.F_DealDept
664 668
                 this.ruleForm.clid = res.F_DealMan
@@ -696,10 +700,7 @@
696 700
           .catch(() => {})
697 701
       },
698 702
       getUrl(){
699
-        console.log(window.location.href)
700
-        console.log(window.location.href.indexOf('callScreen'))
701 703
         if(window.location.href.indexOf('callScreen') >= 0){
702
-          console.log(window.location.href.indexOf('callScreen'))
703 704
           this.$store.dispatch('delView',this.$route)
704 705
           const scoketDatas = {
705 706
             Type: 'SayFree',
@@ -707,6 +708,7 @@
707 708
             AgentExten: window.localStorage.getItem('ext')
708 709
           }
709 710
           Send(scoketDatas)
711
+          window.sessionStorage.setItem('isBusyOrFree', 1)// 0是置忙1是置闲
710 712
           this.$router.push({
711 713
             path: '/Dashboard'
712 714
           })
@@ -715,6 +717,10 @@
715 717
         }
716 718
       },
717 719
       submitForm() {
720
+        if(this.telTopRightState == '通话中'){
721
+          this.$message('请挂断后再提交工单')
722
+          return;
723
+        }
718 724
         if(this.orderTypeData.type2Arr.length == 0 && !this.wid){
719 725
           this.$message.error('请选择工单类别')
720 726
           return;
@@ -826,24 +832,6 @@
826 832
           }
827 833
         })
828 834
       }
829
-      // resetForm() {
830
-      //   this.$refs.ruleForm.resetFields()
831
-      //   this.itemessageList = [
832
-      //     {
833
-      //       buttonState: true,
834
-      //       delivered: '',
835
-      //       itemIndex: 0,
836
-      //       specimenList: [
837
-      //         {
838
-      //           pidIndex: 0,
839
-      //           buttonState: true,
840
-      //           specimenName: '',
841
-      //           specimenNumber: ''
842
-      //         }
843
-      //       ]
844
-      //     }
845
-      //   ]
846
-      // }
847 835
     }
848 836
   }
849 837
 </script>

+ 15 - 74
CallCenterWeb.UI/RMYY/src/components/workOrder/information/addOrEditInfOrder.vue

@@ -343,31 +343,6 @@
343 343
             message: '请选择发现时间',
344 344
             trigger: 'change'
345 345
           }],
346
-          // F_Cathetertype: [{
347
-          //   required: true,
348
-          //   message: '请输入置管类型',
349
-          //   trigger: 'blur'
350
-          // }],
351
-          // F_Catheterdept: [{
352
-          //   required: true,
353
-          //   message: '请输入置管科室',
354
-          //   trigger: 'blur'
355
-          // }],
356
-          // F_Cathetertime: [{
357
-          //   required: true,
358
-          //   message: '请输入置管时间',
359
-          //   trigger: 'change'
360
-          // }],
361
-          // F_BedNum: [{
362
-          //   required: true,
363
-          //   message: '请输入床号',
364
-          //   trigger: 'blur'
365
-          // }],
366
-          // F_InpatientNum: [{
367
-          //   required: true,
368
-          //   message: '请输入住院号',
369
-          //   trigger: 'blur'
370
-          // }],
371 346
           F_ComplaintDept: [{
372 347
             required: true,
373 348
             message: '请选择',
@@ -416,12 +391,6 @@
416 391
           F_FirstFindTime: '', // 首次发现肺结节时间
417 392
           F_Urgency: '0', // 紧急程度
418 393
           F_AppointmentTime: '', // 预约时间
419
-          // F_ServiceItems: '', // 服务项目
420
-          // F_Cathetertype: '', // 置管类型
421
-          // F_Catheterdept: '', // 置管科室
422
-          // F_Cathetertime: '', // 置管时间
423
-          // F_BedNum: '', // 床号
424
-          // F_InpatientNum: '', // 住院号
425 394
           opt: '1', // 处理方式
426 395
           clbm: '',
427 396
           clid: '',
@@ -484,14 +453,6 @@
484 453
         'telTopRightState', // 状态信息
485 454
       ])
486 455
     },
487
-    // watch:{
488
-    //   $route(to,from){
489
-    //     console.log(to,from)
490
-    //     if(from.name == 'ADDORDER'){
491
-
492
-    //     }
493
-    //   }
494
-    // },
495 456
     created() {
496 457
       if (this.callinNum) {
497 458
         this.ruleForm.F_Phon = this.callinNum
@@ -521,13 +482,12 @@
521 482
           telephone: this.callinNum
522 483
         }
523 484
         getoldmsg(params).then(res => {
524
-          if(res.length > 0){
485
+          if(res.rows.length > 0){
525 486
             this.ruleForm.F_Customer = res.rows[0].F_CustomerName
526 487
             this.ruleForm.F_FullName = res.rows[0].F_CustomerName
527 488
             this.ruleForm.F_IDNumber = res.rows[0].F_IdCard
528 489
             this.ruleForm.F_CusAddress = res.rows[0].F_Address
529 490
             this.ruleForm.F_Relationship = res.rows[0].F_RelationShip
530
-            // window.localStorage.setItem('calluserTX',res.rows[0].F_See)
531 491
             if (res.rows[0].F_Sex == '男') {
532 492
               this.ruleForm.F_Sex = '0'
533 493
             }
@@ -535,6 +495,19 @@
535 495
               this.ruleForm.F_Sex = '1'
536 496
             }
537 497
           }
498
+          //没有来电人某信息 取右边his信息
499
+          if(!this.ruleForm.F_Customer){
500
+            this.ruleForm.F_Customer = window.localStorage.getItem('huanxm')
501
+          }
502
+          if(!this.ruleForm.F_FullName){
503
+            this.ruleForm.F_FullName = window.localStorage.getItem('huanxm')
504
+          }
505
+          if(!this.ruleForm.F_IDNumber){
506
+            this.ruleForm.F_IDNumber = window.localStorage.getItem('huancard')
507
+          }
508
+          if(!this.ruleForm.F_CusAddress){
509
+            this.ruleForm.F_CusAddress = window.localStorage.getItem('huanaddress')
510
+          }
538 511
         })
539 512
       },
540 513
       getClassUser(id) {
@@ -607,12 +580,6 @@
607 580
                 this.ruleForm.F_FirstFindTime = res.F_FirstFindTime // 首次发现肺结节时间
608 581
                 this.ruleForm.F_AppointmentTime = res.F_AppointmentTime //预约时间
609 582
                 this.ruleForm.F_Urgency = res.F_Urgency.toString() // 紧急程度
610
-                // this.ruleForm.F_ServiceItems = res.F_ServiceItems // 服务项目
611
-                // this.ruleForm.F_Cathetertype = res.F_Cathetertype // 置管类型
612
-                // this.ruleForm.F_Catheterdept = res.F_Catheterdept // 置管科室
613
-                // this.ruleForm.F_Cathetertime = res.F_Cathetertime // 置管时间
614
-                // this.ruleForm.F_BedNum = res.F_BedNum // 床号
615
-                // this.ruleForm.F_InpatientNum = res.F_InpatientNum // 住院号
616 583
                 if (res.F_DealType === '立即办理') {
617 584
                   this.ruleForm.opt = '1'
618 585
                 } else if (res.F_DealType === '提交审核') {
@@ -639,10 +606,6 @@
639 606
                 if (res.DealDept) {
640 607
                   this.deptidArr1 =
641 608
                     this.$store.getters.deptmap[parseInt(res.DealDept)].ids
642
-                  console.log(
643
-                    this.$store.getters.deptmap[parseInt(res.DealDept)].ids,
644
-                    '00000'
645
-                  )
646 609
                   this.getRepairman1(res.DealDept, 0)
647 610
                   this.ruleForm.clbm = res.DealDept
648 611
                   this.ruleForm.clid = res.DealUserCode
@@ -700,11 +663,6 @@
700 663
               F_FirstFindTime: this.ruleForm.F_FirstFindTime, // 首次发现肺结节时间
701 664
               F_Urgency: this.ruleForm.F_Urgency, // 紧急程度
702 665
               F_AppointmentTime: this.ruleForm.F_AppointmentTime, // 预约时间
703
-              // F_Cathetertype: this.ruleForm.F_Cathetertype, // 置管类型
704
-              // F_Catheterdept: this.ruleForm.F_Catheterdept, // 置管科室
705
-              // F_Cathetertime: this.ruleForm.F_Cathetertime, // 置管时间
706
-              // F_BedNum: this.ruleForm.F_BedNum, // 床号
707
-              // F_InpatientNum: this.ruleForm.F_InpatientNum, // 住院号
708 666
               opt: Number(this.ruleForm.opt), // 处理方式
709 667
               F_ComplaintDept: this.ruleForm.F_ComplaintDept, // 投诉
710 668
               F_ComplaintUser: this.ruleForm.F_ComplaintUser, // 投诉人
@@ -728,9 +686,7 @@
728 686
                     this.getUrl()
729 687
                     this.resetForm()
730 688
                     this.$parent.$layer.close(this.layerid)
731
-                    // window.location.reload()
732 689
                     this.$parent.getList()
733
-                    // this.getUrl()
734 690
 
735 691
                   } else {
736 692
                     this.$message({
@@ -776,10 +732,7 @@
776 732
         })
777 733
       },
778 734
       getUrl(){
779
-        console.log(window.location.href)
780
-        console.log(window.location.href.indexOf('callScreen'))
781 735
         if(window.location.href.indexOf('callScreen') >= 0){
782
-          console.log(window.location.href.indexOf('callScreen'))
783 736
           this.$store.dispatch('delView',this.$route)
784 737
           const scoketDatas = {
785 738
             Type: 'SayFree',
@@ -787,6 +740,7 @@
787 740
             AgentExten: window.localStorage.getItem('ext')
788 741
           }
789 742
           Send(scoketDatas)
743
+          window.sessionStorage.setItem('isBusyOrFree', 1)// 0是置忙1是置闲
790 744
           this.$router.push({
791 745
             path: '/Dashboard'
792 746
           })
@@ -816,7 +770,6 @@
816 770
       getDeptid1(data) {
817 771
         this.ruleForm.clbm = data[data.length - 1]
818 772
         this.getClassUser(data[data.length - 1])
819
-        // this.getRepairman1(data[data.length - 1], 0)
820 773
       },
821 774
       getRepairman1(id, state) {
822 775
         return new Promise((resolve) => {
@@ -855,12 +808,6 @@
855 808
         this.ruleForm.F_NoduleSize = '' // 肺结节大小
856 809
         this.ruleForm.F_FirstFindTime = '' // 首次发现肺结节时间
857 810
         this.ruleForm.F_Urgency = '0' // 紧急程度
858
-        // this.ruleForm.F_ServiceItems = '' // 服务项目
859
-        // this.ruleForm.F_Cathetertype = '' // 置管类型
860
-        // this.ruleForm.F_Catheterdept = '' // 置管科室
861
-        // this.ruleForm.F_Cathetertime = '' // 置管时间
862
-        // this.ruleForm.F_BedNum = '' // 床号
863
-        // this.ruleForm.F_InpatientNum = '' // 住院号
864 811
         this.ruleForm.opt = '' // 处理方式
865 812
         this.ruleForm.F_WorkOrderContents = '' // 工单内容
866 813
         this.ruleForm.F_DealOpinions = '' // 处理意见
@@ -878,12 +825,6 @@
878 825
         this.ruleForm.F_NoduleSize = '' // 肺结节大小
879 826
         this.ruleForm.F_FirstFindTime = '' // 首次发现肺结节时间
880 827
         this.ruleForm.F_Urgency = '0' // 紧急程度
881
-        // this.ruleForm.F_ServiceItems = '' // 服务项目
882
-        // this.ruleForm.F_Cathetertype = '' // 置管类型
883
-        // this.ruleForm.F_Catheterdept = '' // 置管科室
884
-        // this.ruleForm.F_Cathetertime = '' // 置管时间
885
-        // this.ruleForm.F_BedNum = '' // 床号
886
-        // this.ruleForm.F_InpatientNum = '' // 住院号
887 828
         this.ruleForm.F_Relationship = ''
888 829
         this.ruleForm.F_FullName = ''
889 830
         this.ruleForm.F_IDNumber = ''

+ 11 - 8
CallCenterWeb.UI/RMYY/src/components/workOrder/repairbase/addRepairbase.vue

@@ -120,6 +120,7 @@
120 120
     getAddRepairbase
121 121
   } from '@/api/faultRepairManagement/faultRepair'
122 122
   import { Send } from '../../../utils/telWebsocket.js'
123
+  import { mapGetters } from 'vuex'
123 124
   export default {
124 125
     name: 'AddRepairbase',
125 126
     components: {
@@ -301,6 +302,11 @@
301 302
         }
302 303
       }
303 304
     },
305
+    computed: {
306
+      ...mapGetters([
307
+        'telTopRightState', // 状态信息
308
+      ])
309
+    },
304 310
     created() {
305 311
       this.cid = this.callid
306 312
       if (!this.cid) {
@@ -441,9 +447,6 @@
441 447
             this.ruleForm.assignMant = response.data[0].F_Maintenancer
442 448
             this.usercodeSearch = response.data[0].F_Applicant
443 449
             this.ruleForm.EmergencyTypes = response.data[0].F_EmergencyTypes
444
-            // if (response.data[0].F_Maintenancer) {
445
-            //   this.ruleForm.assignMant = this.$store.getters.response.data[0].F_Maintenancer
446
-            // }
447 450
             if (response.data[0].FileUrl) {
448 451
               // this.imgUrl = response.data[0].FileUrl[0].F_FileUrl
449 452
               for (var i = 0; i < response.data[0].FileUrl.length; i++) {
@@ -461,8 +464,6 @@
461 464
       },
462 465
       // 工单类型
463 466
       getSecondOOrderType(data) {
464
-        // console.log(data,'3333333')
465
-        // this.ruleForm.repairOrderType = data.value
466 467
         this.ruleForm.assignDepart = ''
467 468
         this.assignArr = []
468 469
         this.ruleForm.repairOrderType = data.value
@@ -515,6 +516,10 @@
515 516
         }
516 517
       },
517 518
       submitForm(formName) {
519
+        if(this.telTopRightState == '通话中'){
520
+          this.$message('请挂断后再提交工单')
521
+          return;
522
+        }
518 523
         if(this.orderTypeData.type2Arr.length == 0){
519 524
           this.$message.error('请选择工单类别')
520 525
           return;
@@ -617,10 +622,7 @@
617 622
         })
618 623
       },
619 624
       getUrl(){
620
-        console.log(window.location.href)
621
-        console.log(window.location.href.indexOf('callScreen'))
622 625
         if(window.location.href.indexOf('callScreen') >= 0){
623
-          console.log(window.location.href.indexOf('callScreen'))
624 626
           this.$store.dispatch('delView',this.$route)
625 627
           const scoketDatas = {
626 628
             Type: 'SayFree',
@@ -628,6 +630,7 @@
628 630
             AgentExten: window.localStorage.getItem('ext')
629 631
           }
630 632
           Send(scoketDatas)
633
+          window.sessionStorage.setItem('isBusyOrFree', 1)// 0是置忙1是置闲
631 634
           this.$router.push({
632 635
             path: '/Dashboard'
633 636
           })

+ 11 - 4
CallCenterWeb.UI/RMYY/src/components/workOrder/vehicleDispatch/addOrEdit.vue

@@ -113,6 +113,7 @@
113 113
     GetPerson
114 114
   } from '@/api/commonAPI'
115 115
   import { Send } from '../../../utils/telWebsocket.js'
116
+  import { mapGetters } from 'vuex'
116 117
   export default {
117 118
     name: 'AddOrEdit',
118 119
     props: {
@@ -273,6 +274,11 @@
273 274
         // this.ruleForm.identification = this.orderTypeData.identification
274 275
       }
275 276
     },
277
+    computed: {
278
+      ...mapGetters([
279
+        'telTopRightState', // 状态信息
280
+      ])
281
+    },
276 282
     created() {
277 283
       this.cid = this.callid
278 284
       if (!this.cid) {
@@ -367,6 +373,10 @@
367 373
         this.getRepairman(data[data.length - 1])
368 374
       },
369 375
       submitForm() {
376
+        if(this.telTopRightState == '通话中'){
377
+          this.$message('请挂断后再提交工单')
378
+          return;
379
+        }
370 380
         if(this.orderTypeData.type2Arr.length == 0 && !this.wid){
371 381
           this.$message.error('请选择工单类别')
372 382
           return;
@@ -459,10 +469,7 @@
459 469
         this.$refs.ruleForm.resetFields()
460 470
       },
461 471
       getUrl(){
462
-        console.log(window.location.href)
463
-        console.log(window.location.href.indexOf('callScreen'))
464 472
         if(window.location.href.indexOf('callScreen') >= 0){
465
-          console.log(window.location.href.indexOf('callScreen'))
466 473
           this.$store.dispatch('delView',this.$route)
467 474
           const scoketDatas = {
468 475
             Type: 'SayFree',
@@ -470,6 +477,7 @@
470 477
             AgentExten: window.localStorage.getItem('ext')
471 478
           }
472 479
           Send(scoketDatas)
480
+          window.sessionStorage.setItem('isBusyOrFree', 1)// 0是置忙1是置闲
473 481
           this.$router.push({
474 482
             path: '/Dashboard'
475 483
           })
@@ -480,7 +488,6 @@
480 488
       // 获取详情
481 489
       getDetail(num) {
482 490
         const params = {
483
-          // orderid: this.rowid,
484 491
           WorkOrderCode: this.wocode,
485 492
           type: num
486 493
         }

+ 12 - 4
CallCenterWeb.UI/RMYY/src/utils/fieldsData.js

@@ -231,10 +231,10 @@ export default {
231 231
     key: 'F_SonType',
232 232
     value: '工单类别'
233 233
   },
234
-  {
235
-    key: 'F_SonType2',
236
-    value: '工单子类别'
237
-  },
234
+  // {
235
+  //   key: 'F_SonType2',
236
+  //   value: '工单子类别'
237
+  // },
238 238
   {
239 239
     key: 'F_Content',
240 240
     value: '工单内容'
@@ -265,6 +265,14 @@ export default {
265 265
     value: '呼叫方向'
266 266
   },
267 267
   {
268
+    key: 'BeginTime',
269
+    value: '呼入时间'
270
+  },
271
+  {
272
+    key: 'EndTime',
273
+    value: '呼出时间'
274
+  },
275
+  {
268 276
     key: 'MYD',
269 277
     value: '满意度'
270 278
   },

+ 330 - 310
CallCenterWeb.UI/RMYY/src/utils/telWebsocket.js

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

+ 4 - 65
CallCenterWeb.UI/RMYY/src/views/callScreen/components/hisList.vue

@@ -195,10 +195,6 @@
195 195
     </el-table>
196 196
     <el-dialog title="请选择" :visible.sync="dialogVisible" width="30%">
197 197
       <div style="height: 300px">
198
-        <!-- <el-select v-model="tourlid" placeholder="请选择系统">
199
-          <el-option v-for="(item,index) in urls" :key="index" :label="item.F_Name" :value="item.F_DictionaryValueId">
200
-          </el-option>
201
-        </el-select> -->
202 198
         <el-select v-model="jzlb" clearable placeholder="请选择就诊类别">
203 199
           <el-option value="1" label="门诊"></el-option>
204 200
           <el-option value="2" label="住院"></el-option>
@@ -264,7 +260,6 @@ export default {
264 260
         total: 0, // 总共多少数据
265 261
       },
266 262
       selectedUrl: "",
267
-      urls: [],
268 263
       jzlb: "1",
269 264
       jzlsh: "",
270 265
       zjh: "",
@@ -332,10 +327,13 @@ export default {
332 327
         };
333 328
         GetModelList(params).then((response) => {
334 329
           this.loading = false;
335
-          if (response.rows) {
330
+          if (response.rows.length>0) {
336 331
             this.hismsg = response.rows[0];
337 332
             this.zjh = this.hismsg.zjhm;
338 333
             this.lxdh = this.hismsg.lxdh;
334
+            window.localStorage.setItem('huanxm',this.hismsg.hzxm)
335
+            window.localStorage.setItem('huancard',this.hismsg.zjhm)
336
+            window.localStorage.setItem('huanaddress',this.hismsg.jtdz)
339 337
             this.getRecord("I", response.rows[0].zsyh);
340 338
             this.getRecord("O", response.rows[0].zsyh);
341 339
             this.getRecord("E", response.rows[0].zsyh);
@@ -370,43 +368,8 @@ export default {
370 368
         return;
371 369
       }
372 370
       this.dialogVisible = true;
373
-      this.getUrls();
374 371
     },
375
-    getUrls() {
376
-      const params = {
377
-        Flag: "360URL",
378
-        Name: "",
379
-      };
380
-      GetDicValueList(params).then((res) => {
381
-        this.urls = res.rows;
382
-      });
383
-    },
384
-    // handleChange(data){
385
-    //   this.tourlid = data.split(',')[0]
386
-    //   this.tourl = data.split(',')[1]
387
-    //   console.log(this.tourlid,this.tourl)
388
-    // },
389 372
     goToView() {
390
-      // if (!this.jzlb) {
391
-      //   this.$message.error('请选择就诊类别')
392
-      //   return;
393
-      // }
394
-      // var zhuyuanid = ''
395
-      // var menzhenid = ''
396
-      // var jizhenid = ''
397
-      // var tijianid = ''
398
-      // if (this.zhuyuanArr.length > 0) {
399
-      //   zhuyuanid = this.zhuyuanArr[0].AttendingDoctor.CardID
400
-      // }
401
-      // if (this.menzhenArr.length > 0) {
402
-      //   menzhenid = this.menzhenArr[0].AttendingDoctor.CardID
403
-      // }
404
-      // if (this.jizhenArr.length > 0) {
405
-      //   jizhenid = this.jizhenArr[0].AttendingDoctor.CardID
406
-      // }
407
-      // if (this.tijianArr.length > 0) {
408
-      //   tijianid = this.tijianArr[0].AttendingDoctor.CardID
409
-      // }
410 373
       const params = {
411 374
         userid: this.userid,
412 375
         zjh: this.hismsg.zjhm || this.zjh,
@@ -422,18 +385,6 @@ export default {
422 385
         }
423 386
       });
424 387
     },
425
-    // btn_search_task() {
426
-    //   if (this.typeSecondId) {
427
-    //     this.keyword = this.keyword
428
-    //     this.getList()
429
-    //   } else {
430
-    //     this.$message({
431
-    //       message: '请输入工单类型',
432
-    //       type: 'warning'
433
-    //     })
434
-    //     return
435
-    //   }
436
-    // },
437 388
     getRecord(recordtype, zsyh) {
438 389
       const params = {
439 390
         PatientClass: recordtype,
@@ -489,18 +440,6 @@ export default {
489 440
             );
490 441
           }
491 442
         }
492
-        // if (recordtype === 'I') {
493
-        //   this.zhuyuanArr = res.QueryPatientVisitByIDResponse.patientVisits.patientVisit
494
-        // }
495
-        // if (recordtype === 'O') {
496
-        //   this.menzhenArr = res.QueryPatientVisitByIDResponse.patientVisits.patientVisit
497
-        // }
498
-        // if (recordtype === 'E') {
499
-        //   this.jizhenArr = res.QueryPatientVisitByIDResponse.patientVisits.patientVisit
500
-        // }
501
-        // if (recordtype === 'P') {
502
-        //   this.tijianArr = res.QueryPatientVisitByIDResponse.patientVisits.patientVisit
503
-        // }
504 443
       });
505 444
     },
506 445
   },

+ 5 - 4
CallCenterWeb.UI/RMYY/src/views/layout/components/Navbar/NavUserInfo.vue

@@ -1,8 +1,9 @@
1 1
 <template>
2
-  <div class="navar_item personalInfoWrapper">
2
+  <div class="navar_item personalInfoWrapper" style="right: 280px;">
3 3
     <div class="personalInfoLine">
4
+      <span class="personalInfoText">当前排队人数:{{ waitcountNumber }}</span>
4 5
       <span class="personalInfoText">登陆账号:{{ usercode }}</span>
5
-      <span class="personalInfoText">姓名:{{ username }}</span>
6
+      <!-- <span class="personalInfoText">姓名:{{ username }}</span> -->
6 7
       <span class="personalInfoText">分机号:{{ extension }}</span>
7 8
     </div>
8 9
     <div class="personalInfoLine"></div>
@@ -18,6 +19,7 @@ export default {
18 19
       "usercode", // 工号
19 20
       "extension", // 分机号
20 21
       "username", // 姓名
22
+      "waitcountNumber",//排队数量
21 23
     ]),
22 24
   },
23 25
 };
@@ -32,7 +34,7 @@ export default {
32 34
   // line-height: 25px;
33 35
   color: #ffffff;
34 36
   .personalInfoLine {
35
-    width: 430px;
37
+    width: 350px;
36 38
     // height: 25px;
37 39
     .personalInfoText {
38 40
       margin-right: 12px;
@@ -42,4 +44,3 @@ export default {
42 44
   }
43 45
 }
44 46
 </style>
45
-

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

@@ -5,7 +5,7 @@
5 5
     <!-- 头部账号信息 -->
6 6
     <nav-user-info v-if="seatflag" />
7 7
     <!-- 头部右侧电话状态信息 -->
8
-    <nav-tel-state-msg v-if="seatflag" />
8
+    <!-- <nav-tel-state-msg v-if="seatflag" /> -->
9 9
 
10 10
     <!-- <el-tooltip content="Global Size" effect="dark" placement="bottom">
11 11
       <size-select id="size-select" class="right-menu-item hover-effect" />
@@ -45,7 +45,7 @@
45 45
           seatflag ? 'navar_item notice' : 'navar_item notice notice_right',
46 46
         ]"
47 47
       >
48
-        <svg-icon icon-class="lingdang" />
48
+        <!-- <svg-icon icon-class="lingdang" /> -->
49 49
         <span v-if="topNoticeNum" class="badge_dot">{{ topNoticeNum }}</span>
50 50
       </div>
51 51
     </el-popover>
@@ -54,9 +54,9 @@
54 54
         class="el-icon-chat-dot-square"
55 55
         style="
56 56
           color: white;
57
-          font-size: 20px;
57
+          font-size: 24px;
58 58
           vertical-align: middle;
59
-          margin-right: 10px;
59
+          margin-right: 20px;
60 60
         "
61 61
         @click="drawer = true"
62 62
       />
@@ -449,7 +449,7 @@ export default {
449 449
 
450 450
 .fontSetting {
451 451
   position: absolute;
452
-  right: 280px;
452
+  right: 180px;
453 453
   background-color: #373d41;
454 454
   z-index: 2000;
455 455
   top: -2px;
@@ -595,8 +595,8 @@ export default {
595 595
   }
596 596
 
597 597
   .close {
598
-    width: 120px;
599
-    right: 40px;
598
+    width: 112px;
599
+    right: 60px;
600 600
     cursor: pointer;
601 601
 
602 602
     span {

+ 1 - 0
CallCenterWeb.UI/RMYY/src/views/layout/components/TagsView.vue

@@ -79,6 +79,7 @@
79 79
             AgentExten: window.localStorage.getItem('ext')
80 80
           }
81 81
           Send(scoketDatas)
82
+          window.sessionStorage.setItem('isBusyOrFree', 1)// 0是置忙1是置闲
82 83
         }
83 84
         this.$store.dispatch('delView', view).then(({
84 85
           visitedViews

+ 3 - 3
CallCenterWeb.UI/RMYY/src/views/orderManage/orderList/index.vue

@@ -3,9 +3,9 @@
3 3
     <div class="filter-container">
4 4
       <el-input v-model="searchData.wocode" placeholder="请输入工单编号" class="filter-item" size="medium" clearable />
5 5
       <el-input v-model="searchData.usercode" placeholder="请输入工号" class="filter-item" size="medium" clearable />
6
-      <el-date-picker v-model="searchData.searchTime" type="daterange" format="yyyy年MM月dd日" value-format="yyyy-MM-dd"
7
-        align="left" unlink-panels clearable range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"
8
-        size="medium" />
6
+      <el-date-picker v-model="searchData.searchTime" type="datetimerange" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"
7
+        align="center" unlink-panels clearable range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"
8
+        size="medium" style="width: 440px;"/>
9 9
       <el-select v-model="searchData.myd" size="medium" placeholder="请选择满意度" clearable>
10 10
         <el-option label="满意" value="0" />
11 11
         <el-option label="基本满意" value="1" />

File diff suppressed because it is too large
+ 685 - 735
CallCenterWeb.UI/RMYY/src/views/telCall/seatMonitor/index.vue


+ 2 - 0
CallCenterWeb.UI/RMYY/src/views/trafficData/callRecord/index.vue

@@ -134,6 +134,8 @@
134 134
           <div v-if="scope.row.CallType === 1">呼出<i class="el-icon-top"></i></div>
135 135
         </template>
136 136
       </el-table-column>
137
+      <el-table-column v-if="fieldListFlag.BeginTime" prop="BeginTime" label="呼入时间" align="center" min-width></el-table-column>
138
+      <el-table-column v-if="fieldListFlag.EndTime" prop="EndTime" label="呼出时间" align="center" min-width></el-table-column>
137 139
       <el-table-column v-if="fieldListFlag.MYD" label="满意度" align="center" min-width>
138 140
         <template slot-scope="scope">{{
139 141
           scope.row.MYD | evaluationFilter