seimin 6 månader sedan
förälder
incheckning
0bbb8ca6a3

+ 15 - 4
src/app/components/incidentManagement/incident-detail/incident-detail.component.ts

@@ -59,7 +59,7 @@ export class IncidentDetailComponent implements OnInit {
59 59
     this.activeTabValue = item.value;
60 60
 
61 61
     if(this.activeTabValue == 1){
62
-      this.incidentData.callID && this.getCallrecord();
62
+      this.incidentData.callID && this.getCallLog();
63 63
       this.incidentData.reqAttachment && this.getRepairImgs();
64 64
     }else if(this.activeTabValue == 2){
65 65
       this.getHandleImgs();
@@ -173,19 +173,30 @@ export class IncidentDetailComponent implements OnInit {
173 173
 
174 174
   // 获取通话音频
175 175
   audioSrc =  '';//音频
176
-  getCallrecord() {
176
+  getCallLog() {
177 177
     let postData = {
178 178
       idx: 0,
179 179
       sum: 1,
180
-      callrecord: {callAccept: this.incidentData.callID},
180
+      callLog: {callAccept: this.incidentData.callID},
181 181
     };
182 182
     this.mainService
183
-      .getFetchDataList('simple/data', 'callrecord', postData)
183
+      .getFetchDataList('simple/data', 'callLog', postData)
184 184
       .subscribe((result) => {
185 185
         if(result.status == 200){
186 186
           result.list = result.list || [];
187 187
           if(result.list.length){
188 188
             this.audioSrc = location.origin + result.list[0].recordingFileName;
189
+            if(result.list[0].path){
190
+              this.mainService.getCallLogPath({ path: result.list[0].path, hosId: result.list[0].hosId }).subscribe((result) => {
191
+                if (result["state"] == 200) {
192
+                  this.audioSrc = location.origin + result["relativePath"];
193
+                }else{
194
+                  this.audioSrc = '';
195
+                }
196
+              });
197
+            }else{
198
+              this.audioSrc = '';
199
+            }
189 200
           }else{
190 201
             this.audioSrc = '';
191 202
           }

+ 15 - 4
src/app/components/incidentManagement/incident-handle-repair/incident-handle-repair.component.ts

@@ -21,25 +21,36 @@ export class IncidentHandleRepairComponent implements OnInit {
21 21
 
22 22
   ngOnInit() {
23 23
     this.hosId = this.tool.getCurrentHospital().id;
24
-    this.incidentData.callID && this.getCallrecord();
24
+    this.incidentData.callID && this.getCallLog();
25 25
     this.incidentData.reqAttachment && this.getRepairImgs();
26 26
   }
27 27
 
28 28
   // 获取通话音频
29 29
   audioSrc =  '';//音频
30
-  getCallrecord() {
30
+  getCallLog() {
31 31
     let postData = {
32 32
       idx: 0,
33 33
       sum: 1,
34
-      callrecord: {callAccept: this.incidentData.callID},
34
+      callLog: {callAccept: this.incidentData.callID},
35 35
     };
36 36
     this.mainService
37
-      .getFetchDataList('simple/data', 'callrecord', postData)
37
+      .getFetchDataList('simple/data', 'callLog', postData)
38 38
       .subscribe((result) => {
39 39
         if(result.status == 200){
40 40
           result.list = result.list || [];
41 41
           if(result.list.length){
42 42
             this.audioSrc = location.origin + result.list[0].recordingFileName;
43
+            if(result.list[0].path){
44
+              this.mainService.getCallLogPath({ path: result.list[0].path, hosId: result.list[0].hosId }).subscribe((result) => {
45
+                if (result["state"] == 200) {
46
+                  this.audioSrc = location.origin + result["relativePath"];
47
+                }else{
48
+                  this.audioSrc = '';
49
+                }
50
+              });
51
+            }else{
52
+              this.audioSrc = '';
53
+            }
43 54
           }else{
44 55
             this.audioSrc = '';
45 56
           }

+ 2 - 4
src/app/components/incidentManagement/incident-handle/incident-handle.component.less

@@ -114,10 +114,8 @@
114 114
         height: 100%;
115 115
         border-left: 1px solid #E9E9E9;
116 116
         .knowageItem{
117
-          padding: 16px 16px 0;
118
-          &:last-of-type{
119
-            padding-bottom: 16px;
120
-          }
117
+          padding: 16px;
118
+          border-bottom: 1px solid #E9E9E9;
121 119
         }
122 120
         .knowageTitle{
123 121
           font-size: 16px;

+ 3 - 4
src/app/components/incidentManagement/incident-ser-visit/incident-ser-visit.component.html

@@ -6,15 +6,14 @@
6 6
       <ng-container *ngIf="!loading">
7 7
         <div class="items" *ngFor="let item of visitList">
8 8
           <div class="row">
9
-            <div class="col">单号:{{item.incidentsign}}</div>
10
-            <div class="col">优先级:<span [ngClass]="priorityColor(item.priorityId)">{{item.priorityDTO?.name}}</span></div>
11
-            <div class="col">院区-科室名称:{{item.hosName}}-{{item.department?.dept}}</div>
9
+            <div class="col"><span [ngClass]="priorityColor(item.priorityId)">{{item.priorityDTO?.name}}</span> {{item.incidentsign}}</div>
10
+            <div class="col">{{item.hosName}} {{item.department?.dept}}</div>
12 11
           </div>
13 12
           <div class="row">
14 13
             <div class="col">故障描述:{{item.description}}</div>
15 14
           </div>
16 15
           <div class="row">
17
-            <div class="col">详细地址:{{ item.place ? item.place.building.buildingName : '' }}{{ item.place ? item.place.floorName : '' }}{{ item.houseNumber }}</div>
16
+            <div class="col">详细地址:{{ item.place ? item.place.building.buildingName : '' }}{{ item.place ? item.place.floorName : '' }}{{ item.houseNumber }} <span [innerHTML]="transferHandlerLog(item.currentLog)"></span></div>
18 17
           </div>
19 18
           <div class="row">
20 19
             <div class="col">申请时间:{{ item.startDate | date: 'yyyy-MM-dd HH:mm'}}</div>

+ 21 - 1
src/app/components/incidentManagement/incident-ser-visit/incident-ser-visit.component.ts

@@ -2,6 +2,8 @@ import { Component, OnInit, Input, Output, EventEmitter, ViewChild } from '@angu
2 2
 import { ToolService } from 'src/app/services/tool.service';
3 3
 import { MainService } from 'src/app/services/main.service';
4 4
 import { OverlayScrollbarsComponent } from 'overlayscrollbars-ngx';
5
+import cloneDeep from 'lodash-es/cloneDeep'
6
+import { format, addHours, addDays } from 'date-fns';
5 7
 @Component({
6 8
   selector: 'app-incident-ser-visit',
7 9
   templateUrl: './incident-ser-visit.component.html',
@@ -94,6 +96,24 @@ export class IncidentSerVisitComponent implements OnInit {
94 96
     this.getVisitList();
95 97
   }
96 98
 
99
+  // 延期记录
100
+  transferHandlerLog = function (currentLog) {
101
+    if(!currentLog){
102
+        return '';
103
+    }
104
+    currentLog = cloneDeep(currentLog);
105
+    if(currentLog.extra1DTO && currentLog.extra2 && currentLog.startTime){
106
+        if(currentLog.extra2==0.5){
107
+          currentLog.extra2 = 4;
108
+          return currentLog.extra1DTO.name+" "+ format(addHours(currentLog.startTime, +currentLog.extra2), "MM月dd日") + format(addDays(currentLog.startTime, +currentLog.extra2), "HH时mm分前完成");
109
+        }else{
110
+          return currentLog.extra1DTO.name+" "+ format(addDays(currentLog.startTime, +currentLog.extra2), "MM月dd日前完成");
111
+        }
112
+    }else{
113
+        return '';
114
+    }
115
+  }
116
+
97 117
   // 获取回访列表
98 118
   getVisitList(){
99 119
     this.loading = true;
@@ -102,7 +122,7 @@ export class IncidentSerVisitComponent implements OnInit {
102 122
       sum: 9999,
103 123
       incident: {
104 124
         "groupIds": this.itsmData.allDuty == 1 ? undefined : (this.itsmData.scopeGroups.map(v => v.id).toString() || undefined),
105
-        "hosIds": this.itsmData.allDuty == 1 ? undefined : (this.itsmData.checkedHos.map(v => v.id).toString() || undefined),
125
+        "dutyIds": this.itsmData.allDuty == 1 ? undefined : (this.itsmData.checkedHos.map(v => v.id).toString() || undefined),
106 126
         "urgentType": +this.itsmData.orderScopeRadio + 1,
107 127
         "queryTask": "callback",
108 128
         "assignee": this.tool.getCurrentUserId(),

+ 1 - 1
src/app/components/incidentManagement/incident-substitutio-assign/incident-substitution-assign.component.ts

@@ -171,7 +171,7 @@ export class IncidentSubstitutionAssignComponent implements OnInit {
171 171
       group2: {
172 172
         groupName: keyword,
173 173
         hospitals: this.validateForm.value.dutyId,
174
-        type: 1,
174
+        type: 3,
175 175
       },
176 176
       idx: 0,
177 177
       sum: 10,

+ 1 - 1
src/app/components/incidentManagement/incident-substitutio-redeploy/incident-substitution-redeploy.component.ts

@@ -117,7 +117,7 @@ export class IncidentSubstitutionRedeployComponent implements OnInit {
117 117
       group2: {
118 118
         groupName: keyword,
119 119
         hospitals: this.duty.id,
120
-        type: 1,
120
+        type: 3,
121 121
       },
122 122
       idx: 0,
123 123
       sum: 10,

+ 1 - 1
src/app/components/knowledge-look/knowledge-look.component.less

@@ -128,7 +128,7 @@
128 128
 					z-index:9999;
129 129
 				}
130 130
 			.view-box{
131
-				height: 400px;
131
+				height: 628px;
132 132
 				display: flex;
133 133
 				border: 1px solid #eee;
134 134
 				.left-box{

+ 64 - 58
src/app/views/fuwutai/fuwutai.component.html

@@ -118,7 +118,7 @@
118 118
                   <div class="gongdan" (click)="batchDispatchSelect(!data.checked, data.data.id, $event)">
119 119
                     <span class="left mr8" *ngIf="!flagList.itsmFlag1 && flagList.hsmsFlag1"><label nz-checkbox [ngModel]="data.checked" (ngModelChange)="batchDispatchSelect($event, data.data.id)"></label></span>
120 120
                     <span class="left gongdan_name" nz-tooltip [nzTooltipTitle]="data.data.taskType.taskName + (data.data.goodsRemark?'-'+data.data.goodsRemark:'')+'(' + data.data.gdcode + ')'">
121
-                      {{ data.data.isHalfInspect === 1 ? "半程陪检" : data.data.taskType.taskName }}<ng-container *ngIf="data.data.goodsRemark">-{{data.data.goodsRemark}}</ng-container>({{ data.data.gdcode }})
121
+                      <strong>{{ data.data.isHalfInspect === 1 ? "半程陪检" : data.data.taskType.taskName }}</strong><ng-container *ngIf="data.data.goodsRemark">-{{data.data.goodsRemark}}</ng-container>({{ data.data.gdcode }})
122 122
                     </span>
123 123
                     <div class="right_all">
124 124
                       <span nz-tooltip [nzTooltipTitle]="data.data.worker ? data.data.worker.phone : ''" class="right_all_name">{{ data.data.worker ? data.data.worker.name : "" }}</span>
@@ -333,7 +333,7 @@
333 333
                       <label nz-checkbox [ngModel]="data.checked" (ngModelChange)="batchWithdrawalSelect($event, data.data.id)"></label>
334 334
                     </span>
335 335
                     <span class="left gongdan_name" nz-tooltip [nzTooltipTitle]="data.data.taskType.taskName + (data.data.goodsRemark?'-'+data.data.goodsRemark:'')+'(' + data.data.gdcode + ')'">
336
-                      {{ data.data.isHalfInspect === 1 ? "半程陪检" : data.data.taskType.taskName }}<ng-container *ngIf="data.data.goodsRemark">-{{data.data.goodsRemark}}</ng-container>({{ data.data.gdcode }})
336
+                      <strong>{{ data.data.isHalfInspect === 1 ? "半程陪检" : data.data.taskType.taskName }}</strong><ng-container *ngIf="data.data.goodsRemark">-{{data.data.goodsRemark}}</ng-container>({{ data.data.gdcode }})
337 337
                     </span>
338 338
                     <div class="right_all">
339 339
                       <span nz-tooltip [nzTooltipTitle]="data.data.worker ? data.data.worker.phone : ''" class="right_all_name">{{ data.data.worker ? data.data.worker.name : "" }}</span>
@@ -445,7 +445,7 @@
445 445
                   <div class="shijian">
446 446
                     <span class="left">
447 447
                       <span>
448
-                        申请人:{{ data.data.requester?.name }}
448
+                        处理人:{{ computedHandlerUser(data.data) }}
449 449
                       </span>
450 450
                     </span>
451 451
                     <span class="right">
@@ -537,7 +537,7 @@
537 537
                       <label nz-checkbox [ngModel]="data.checked" (ngModelChange)="batchWithdrawalSelect($event, data.data.id)"></label>
538 538
                     </span>
539 539
                     <span class="left gongdan_name" nz-tooltip [nzTooltipTitle]="data.data.taskType.taskName + (data.data.goodsRemark?'-'+data.data.goodsRemark:'')+'(' + data.data.gdcode + ')'">
540
-                      {{ data.data.isHalfInspect === 1 ? "半程陪检" : data.data.taskType.taskName }}<ng-container *ngIf="data.data.goodsRemark">-{{data.data.goodsRemark}}</ng-container>({{ data.data.gdcode }})
540
+                      <strong>{{ data.data.isHalfInspect === 1 ? "半程陪检" : data.data.taskType.taskName }}</strong><ng-container *ngIf="data.data.goodsRemark">-{{data.data.goodsRemark}}</ng-container>({{ data.data.gdcode }})
541 541
                     </span>
542 542
                     <div class="right_all">
543 543
                       <span nz-tooltip [nzTooltipTitle]="data.data.worker ? data.data.worker.phone : ''" class="right_all_name">{{ data.data.worker ? data.data.worker.name : "" }}</span>
@@ -649,7 +649,7 @@
649 649
                   <div class="shijian">
650 650
                     <span class="left">
651 651
                       <span>
652
-                        申请人:{{ data.data.requester?.name }}
652
+                        处理人:{{ computedHandlerUser(data.data) }}
653 653
                       </span>
654 654
                     </span>
655 655
                     <span class="right">
@@ -917,57 +917,6 @@
917 917
       </div>
918 918
     </div>
919 919
     <div class="right">
920
-      <div class="fixedMenuWrap" *ngIf="!websocketLoading">
921
-        <div class="fixedMenu" *ngIf="incomingService.getPhoneNumber()">
922
-          <div class="menuItems">
923
-            <div class="item itemLink ellipsis-oneline cursorDefault w100" nz-tooltip [nzTooltipTitle]="incomingService.getPhoneNumber()">
924
-              {{incomingService.getPhoneNumber()}}
925
-            </div>
926
-          </div>
927
-        </div>
928
-        <!-- 录音盒状态 -->
929
-        <div class="fixedMenu" *ngIf="incomingService.getPhoneNumber() && incomingService.getSign() === 'box'">
930
-          <div class="menuItems">
931
-            <i class="icon_transport transport-shixian call-icon"></i>
932
-          </div>
933
-        </div>
934
-        <!-- 呼叫中心状态 -->
935
-         <!-- 来电 -->
936
-        <div class="fixedMenu" *ngIf="jry_state=='laidian' && incomingService.getSign() === 'callCenter'">
937
-          <div class="menuItems">
938
-            <i class="icon_transport transport-laidian call-icon"></i>
939
-          </div>
940
-        </div>
941
-        <!-- 示忙  -->
942
-        <div class="fixedMenu" *ngIf="jry_state=='shimang' && incomingService.getSign() === 'callCenter'">
943
-          <div class="menuItems">
944
-            <i class="icon_transport transport-shimang1 call-icon"></i>
945
-          </div>
946
-        </div>
947
-        <!-- 示闲  -->
948
-        <div class="fixedMenu" *ngIf="jry_state=='shixian' && incomingService.getSign() === 'callCenter'">
949
-          <div class="menuItems">
950
-            <i class="icon_transport transport-shixian call-icon"></i>
951
-          </div>
952
-        </div>
953
-        <!-- 通话中  -->
954
-        <div class="fixedMenu" *ngIf="jry_state=='tonghuazhong' && incomingService.getSign() === 'callCenter'">
955
-          <div class="menuItems">
956
-            <i class="icon_transport transport-tonghuazhong call-icon"></i>
957
-          </div>
958
-        </div>
959
-
960
-        <div class="fixedMenu" *ngIf="incomingService.getSign() === 'callCenter' && ((jry_state == 'shimang' && isShixian) || jry_state == 'shixian')">
961
-          <div class="menuItems">
962
-            <button nz-button nzType="link" class="item itemLink call-status" (click)="jry_shixian($event)" *ngIf="jry_state=='shimang' && isShixian">
963
-              示闲
964
-            </button>
965
-            <button nz-button nzType="link" class="item itemLink call-status" (click)="jry_shimang($event)" *ngIf="jry_state == 'shixian'">
966
-              示忙
967
-            </button>
968
-          </div>
969
-        </div>
970
-      </div>
971 920
       <div class="fixedMenu" *ngIf="hsmsData.hsmsSwitch || itsmData.mdv2Switch">
972 921
         <div class="menuItems">
973 922
           <button nz-button nzType="link" class="item itemLink" (click)="showNewOrder()" [nzLoading]="getConfigTasktypeLoading || patientLogTasktypeLoading">
@@ -1023,14 +972,71 @@
1023 972
     <div *ngIf="showLastItems && fixedTab != '' && fixedTab != 'logout' && fixedTab != 'toSystem' && fixedTab != 'newOrder'" (click)="fixedMenuShangla()" class="fixedMark"></div>
1024 973
   </div>
1025 974
 
975
+  <!-- 右侧悬浮框-录音盒或呼叫中心状态 -->
976
+  <div id="fixedMenuAll" class="fixedAll">
977
+    <div class="right">
978
+      <div class="fixedMenuWrap" *ngIf="!websocketLoading">
979
+        <div class="fixedMenu" *ngIf="incomingService.getPhoneNumber()">
980
+          <div class="menuItems">
981
+            <div class="item itemLink ellipsis-oneline cursorDefault w100" nz-tooltip [nzTooltipTitle]="incomingService.getPhoneNumber()">
982
+              {{incomingService.getPhoneNumber()}}
983
+            </div>
984
+          </div>
985
+        </div>
986
+        <!-- 录音盒状态 -->
987
+        <div class="fixedMenu" *ngIf="incomingService.getPhoneNumber() && incomingService.getSign() === 'box'">
988
+          <div class="menuItems">
989
+            <i class="icon_transport transport-shixian call-icon"></i>
990
+          </div>
991
+        </div>
992
+        <!-- 呼叫中心状态 -->
993
+         <!-- 来电 -->
994
+        <div class="fixedMenu" *ngIf="jry_state=='laidian' && incomingService.getSign() === 'callCenter'">
995
+          <div class="menuItems">
996
+            <i class="icon_transport transport-laidian call-icon"></i>
997
+          </div>
998
+        </div>
999
+        <!-- 示忙  -->
1000
+        <div class="fixedMenu" *ngIf="jry_state=='shimang' && incomingService.getSign() === 'callCenter'">
1001
+          <div class="menuItems">
1002
+            <i class="icon_transport transport-shimang1 call-icon"></i>
1003
+          </div>
1004
+        </div>
1005
+        <!-- 示闲  -->
1006
+        <div class="fixedMenu" *ngIf="jry_state=='shixian' && incomingService.getSign() === 'callCenter'">
1007
+          <div class="menuItems">
1008
+            <i class="icon_transport transport-shixian call-icon"></i>
1009
+          </div>
1010
+        </div>
1011
+        <!-- 通话中  -->
1012
+        <div class="fixedMenu" *ngIf="jry_state=='tonghuazhong' && incomingService.getSign() === 'callCenter'">
1013
+          <div class="menuItems">
1014
+            <i class="icon_transport transport-tonghuazhong call-icon"></i>
1015
+          </div>
1016
+        </div>
1017
+
1018
+        <div class="fixedMenu" *ngIf="incomingService.getSign() === 'callCenter' && ((jry_state == 'shimang' && isShixian) || jry_state == 'shixian')">
1019
+          <div class="menuItems">
1020
+            <button nz-button nzType="link" class="item itemLink call-status" (click)="jry_shixian($event)" *ngIf="jry_state=='shimang' && isShixian">
1021
+              示闲
1022
+            </button>
1023
+            <button nz-button nzType="link" class="item itemLink call-status" (click)="jry_shimang($event)" *ngIf="jry_state == 'shixian'">
1024
+              示忙
1025
+            </button>
1026
+          </div>
1027
+        </div>
1028
+      </div>
1029
+    </div>
1030
+  </div>
1031
+
1026 1032
   <!-- 左侧悬浮框 -->
1027 1033
   <div id="fixedMenuLeft" class="fixedLeft">
1028 1034
     <div class="right">
1029 1035
       <div class="fixedMenu">
1030 1036
         <div class="menuItems">
1031 1037
           <div class="others">
1032
-            <div class="item" (click)="visitOrder()">回访<span *ngIf="visitNum !== undefined">-{{visitNum}}</span></div>
1033
-            <div class="item" (click)="messageOrder()">留言<span *ngIf="messageNum !== undefined">-{{messageNum}}</span></div>
1038
+            <div class="item" (click)="visitOrder()" *ngIf="itsmData.mdv2Switch">回访<span *ngIf="visitNum !== undefined" [ngClass]="{ red: visitNum > 0}">-{{visitNum}}</span></div>
1039
+            <div class="item" (click)="messageOrder()" *ngIf="itsmData.mdv2Switch">留言<span *ngIf="messageNum !== undefined" [ngClass]="{ red: visitNum > 0}">-{{messageNum}}</span></div>
1034 1040
             <div class="item itemLink" (click)="callOrder()">通话</div>
1035 1041
           </div>
1036 1042
         </div>

+ 233 - 1
src/app/views/fuwutai/fuwutai.component.less

@@ -1548,7 +1548,7 @@
1548 1548
   // 右侧悬浮菜单
1549 1549
   .fixed {
1550 1550
     position: fixed;
1551
-    top: 40%;
1551
+    top: calc(40% + 115px + 16px);
1552 1552
     right: 0;
1553 1553
     z-index: 9;
1554 1554
     border-radius: 5px 0 0 5px;
@@ -1776,6 +1776,238 @@
1776 1776
     }
1777 1777
   }
1778 1778
 
1779
+  // 右侧悬浮菜单-录音盒或呼叫中心状态
1780
+  .fixedAll {
1781
+    position: fixed;
1782
+    top: 40%;
1783
+    right: 0;
1784
+    z-index: 10;
1785
+    border-radius: 5px 0 0 5px;
1786
+
1787
+    &.maskFull{
1788
+      &::after{
1789
+        content: '';
1790
+        position: absolute;
1791
+        top: 0;
1792
+        left: 0;
1793
+        width: 100%;
1794
+        height: 100%;
1795
+        z-index: 8;
1796
+        cursor: move;
1797
+      }
1798
+    }
1799
+
1800
+    .fixedMark {
1801
+      position: fixed;
1802
+      left: 0;
1803
+      top: 0;
1804
+      width: 100%;
1805
+      height: 100%;
1806
+      background: rgba(0, 0, 0, 0.2);
1807
+      z-index: 88;
1808
+    }
1809
+
1810
+    // overflow: hidden;
1811
+    & > .left {
1812
+      width: 480px;
1813
+      // height: 280px;
1814
+      float: left;
1815
+      background: #fff;
1816
+      padding: 16px;
1817
+      border-radius: 5px;
1818
+      border: 1px solid #e5e9ed;
1819
+      // box-shadow: -8px 5px 15px #eae9e9;
1820
+      position: relative;
1821
+      z-index: 98;
1822
+
1823
+      .con {
1824
+        background: #f9fafb;
1825
+        width: 100%;
1826
+        // height: 300px;
1827
+        // overflow: auto;
1828
+        border-radius: 5px;
1829
+        border: 1px solid #e5e9ed;
1830
+        padding: 16px;
1831
+        &.bindingExtension {
1832
+          min-height: 246px;
1833
+          .bindingExtension_content {
1834
+            display: flex;
1835
+            flex-wrap: wrap;
1836
+          }
1837
+          .noContentFlex {
1838
+            display: flex;
1839
+            justify-content: center;
1840
+            align-items: center;
1841
+            height: 136px;
1842
+            flex-direction: column;
1843
+            .noContent {
1844
+              width: 128px;
1845
+            }
1846
+            p {
1847
+              margin-top: 8px;
1848
+            }
1849
+          }
1850
+          .ant-checkbox-wrapper {
1851
+            font-size: 12px;
1852
+            width: 100%;
1853
+            display: flex;
1854
+            margin-top: 8px;
1855
+            justify-content: space-between;
1856
+            align-items: center;
1857
+            ::ng-deep .ant-checkbox {
1858
+              font-size: 12px;
1859
+              top: 0;
1860
+            }
1861
+            ::ng-deep .ant-checkbox + span {
1862
+              flex: 1;
1863
+            }
1864
+          }
1865
+        }
1866
+
1867
+        &.tableCon {
1868
+          padding: 0;
1869
+
1870
+          .table {
1871
+            font-size: 14px;
1872
+
1873
+            tr {
1874
+              td {
1875
+                padding: 15px 6px;
1876
+                text-align: center;
1877
+
1878
+                & > .tdiv {
1879
+                  overflow: hidden;
1880
+
1881
+                  .name {
1882
+                    float: left;
1883
+                  }
1884
+
1885
+                  .num {
1886
+                    float: right;
1887
+                    font-size: 12px;
1888
+
1889
+                    span {
1890
+                      color: @primary-color;
1891
+                      font-size: 14px;
1892
+                    }
1893
+                  }
1894
+                }
1895
+
1896
+                .notOpen {
1897
+                  color: #666;
1898
+                  font-size: 12px;
1899
+
1900
+                  img {
1901
+                    margin-bottom: 8px;
1902
+                  }
1903
+                }
1904
+              }
1905
+            }
1906
+          }
1907
+        }
1908
+
1909
+        .title {
1910
+          color: #333;
1911
+          text-align: center;
1912
+        }
1913
+
1914
+        .conditions {
1915
+          & > .ant-row {
1916
+            margin: 8px 0;
1917
+            display: flex;
1918
+            align-items: center;
1919
+
1920
+            .ant-row {
1921
+              .ant-col-6 {
1922
+                margin: 2px 0;
1923
+              }
1924
+            }
1925
+
1926
+            .checkAll {
1927
+              width: 100%;
1928
+              border-bottom: 1px solid rgb(233, 233, 233);
1929
+              color: @primary-color;
1930
+            }
1931
+          }
1932
+        }
1933
+
1934
+        .btns {
1935
+          padding: 5px 20px 0 20px;
1936
+        }
1937
+      }
1938
+    }
1939
+
1940
+    .right {
1941
+      // opacity: .5;
1942
+      width: 80px;
1943
+      float: left;
1944
+      // background: rgba(255, 255, 255, 0.5);
1945
+      border-radius: 5px 0 0 5px;
1946
+      position: relative;
1947
+      z-index: 8;
1948
+
1949
+      .fixedMenuWrap{
1950
+        border-radius: 5px;
1951
+        margin-bottom: 16px;
1952
+        .fixedMenu{
1953
+          border-radius: 0!important;
1954
+        }
1955
+      }
1956
+
1957
+      .fixedMenu {
1958
+        border: 1px solid #e5e9ed;
1959
+        color: @primary-color;
1960
+        background: rgb(255, 255, 255);
1961
+        text-align: center;
1962
+        border-radius: 5px 0 0 5px;
1963
+
1964
+        .menuItems {
1965
+          .call-icon{
1966
+            font-size: 26px;
1967
+            color: @primary-color;
1968
+            padding: 16px 0;
1969
+            &.transport-shimang1{
1970
+              color: red;
1971
+            }
1972
+          }
1973
+          .call-status{
1974
+            background-color: @primary-color;
1975
+            color: #fff;
1976
+            width: 100%;
1977
+          }
1978
+          .item {
1979
+            height: 35px;
1980
+            line-height: 35px;
1981
+            padding: 0 6px;
1982
+            cursor: pointer;
1983
+            border-bottom: 1px solid #e5e9ed;
1984
+            user-select: none;
1985
+            &.itemLink {
1986
+              border-bottom: none;
1987
+              border-radius: 0;
1988
+            }
1989
+
1990
+            &.checked {
1991
+              background: #fff;
1992
+              color: #52ab77;
1993
+              opacity: 1;
1994
+              box-shadow: -3px 4px 7px #eae9e9;
1995
+            }
1996
+          }
1997
+
1998
+          .others {
1999
+            transition: height 0.4s linear;
2000
+            overflow: hidden;
2001
+          }
2002
+        }
2003
+
2004
+        .arrow {
2005
+          cursor: pointer;
2006
+        }
2007
+      }
2008
+    }
2009
+  }
2010
+
1779 2011
   // 左侧悬浮菜单
1780 2012
   .fixedLeft {
1781 2013
     position: fixed;

+ 102 - 9
src/app/views/fuwutai/fuwutai.component.ts

@@ -439,7 +439,7 @@ export class FuwutaiComponent implements OnInit {
439 439
             this.showPromptModal("建单", true, "", "closeGo");
440 440
           } else {
441 441
             if(this.incomingService.getSign() === 'callCenter' && this.incomingService.getPhoneNumber()){
442
-              // this.jry_shixian();
442
+              this.jry_shixian();
443 443
             }
444 444
             this.showPromptModal("建单", true, "", "close");
445 445
           }
@@ -477,7 +477,7 @@ export class FuwutaiComponent implements OnInit {
477 477
           this.showPromptModal("建单", true, "", "closeGo");
478 478
         } else {
479 479
           if(this.incomingService.getSign() === 'callCenter' && this.incomingService.getPhoneNumber()){
480
-            // this.jry_shixian();
480
+            this.jry_shixian();
481 481
           }
482 482
           this.showPromptModal("建单", true, "", "close");
483 483
         }
@@ -539,7 +539,7 @@ export class FuwutaiComponent implements OnInit {
539 539
           this.showPromptModal("建单", true, "", "closeGo");
540 540
         } else {
541 541
           if(this.incomingService.getSign() === 'callCenter' && this.incomingService.getPhoneNumber()){
542
-            // this.jry_shixian();
542
+            this.jry_shixian();
543 543
           }
544 544
           this.showPromptModal("建单", true, "", "close");
545 545
         }
@@ -713,6 +713,7 @@ export class FuwutaiComponent implements OnInit {
713 713
     this.initControlView();
714 714
     this.moveMenu("fixedMenu");
715 715
     this.moveMenu("fixedMenuLeft");
716
+    this.moveMenuAll("fixedMenuAll");
716 717
     if(this.incomingService.getSign() === 'box'){
717 718
       this.getPhoneNum();
718 719
     }else if(this.incomingService.getSign() === 'callCenter'){
@@ -975,6 +976,7 @@ export class FuwutaiComponent implements OnInit {
975 976
     //呼入回调函数
976 977
     TLWSA.onCallin = function (jso) {
977 978
       console.log(jso);
979
+      _this.incidentModel = {};
978 980
       _this.callNumber = _this.incidentModel.incomingPhone = jso.caller;//来电的电话
979 981
       _this.incidentModel.callID = jso.crs;//来电的话机id
980 982
       if (jso) {
@@ -1397,6 +1399,8 @@ export class FuwutaiComponent implements OnInit {
1397 1399
           } else {
1398 1400
             //没绑定科室
1399 1401
             console.log(this.newOrderShow);
1402
+            console.log(this.incidentModel);
1403
+            console.log(this.incidentMsg);
1400 1404
             if (!this.newOrderShow && !this.newOrderShowOpen) {
1401 1405
               this.applyDept = null;
1402 1406
               this.showNewOrder("no", this.incidentModel.incomingPhone, true, '来电弹屏');
@@ -1824,6 +1828,9 @@ export class FuwutaiComponent implements OnInit {
1824 1828
   // 获取回访列表
1825 1829
   visitNum:any;
1826 1830
   getVisitList(){
1831
+    if(!this.itsmData.mdv2Switch){
1832
+      return;
1833
+    }
1827 1834
     let postData: any = {
1828 1835
       idx: 0,
1829 1836
       sum: 1,
@@ -1847,6 +1854,9 @@ export class FuwutaiComponent implements OnInit {
1847 1854
   // 获取留言列表
1848 1855
   messageNum:any;
1849 1856
   getMessageList(){
1857
+    if(!this.itsmData.mdv2Switch){
1858
+      return;
1859
+    }
1850 1860
     let postData: any = {
1851 1861
       idx: 0,
1852 1862
       sum: 1,
@@ -2433,7 +2443,7 @@ export class FuwutaiComponent implements OnInit {
2433 2443
 
2434 2444
       let deptObj = this.applicationDepartmentList.find(v => v.id == this.applyDept);
2435 2445
 
2436
-      if(this.incidentModel.department != this.applyDept && (!isInit || this.buildType !== '来电弹屏')){
2446
+      if(this.incidentModel.department != this.applyDept && (!isInit || !this.buildType)){
2437 2447
         this.incidentModel.department = this.applyDept;
2438 2448
         this.searchApplicationDepartment('itsm', deptObj ? deptObj.dept : '', undefined, this.applyDept);
2439 2449
       }
@@ -3189,8 +3199,44 @@ export class FuwutaiComponent implements OnInit {
3189 3199
     }
3190 3200
     this.searchApplicationRequester();
3191 3201
 
3192
-    // 回显维修人/组
3193
-    this.showGroupOrUser();
3202
+    // 根据院区和故障现象带出责任部门,优先级,维修人/组
3203
+    if(this.incidentModel.category && this.incidentModel.hosId){
3204
+      let postData = {
3205
+        idx: 0,
3206
+        sum: 9999,
3207
+        incidentCategoryConfig: {
3208
+          categoryId: this.incidentModel.category,
3209
+          hosId: this.incidentModel.hosId,
3210
+        },
3211
+      };
3212
+      console.log(postData);
3213
+      // return;
3214
+      this.isLoading = true;
3215
+      this.mainService
3216
+        .getFetchDataList("simple/data", "incidentCategoryConfig", postData)
3217
+        .subscribe((data) => {
3218
+          this.isLoading = false;
3219
+          if (data.status == 200) {
3220
+            let list = data.list || [];
3221
+            if(list.length > 0){
3222
+              console.log(list[0]);
3223
+              this.incidentCategoryConfig = list[0];
3224
+            }else{
3225
+              this.incidentCategoryConfig = {};
3226
+            }
3227
+
3228
+            // 根据院区和故障现象带出责任部门,优先级,维修人/组
3229
+            this.incidentModel.duty = this.incidentCategoryConfig.dutyDTO;
3230
+            this.incidentModel.priorityId = this.incidentCategoryConfig.priority;
3231
+
3232
+            // 回显维修人/组
3233
+            this.showGroupOrUser();
3234
+          }
3235
+        });
3236
+    }else{
3237
+      // 回显维修人/组
3238
+      this.showGroupOrUser();
3239
+    }
3194 3240
   }
3195 3241
   // 申请科室列表(搜索)失去焦点的时候
3196 3242
   changeApplicationDepartment(phone?) {
@@ -3514,7 +3560,7 @@ export class FuwutaiComponent implements OnInit {
3514 3560
       this.showPromptModal("操作", true, "", "");
3515 3561
     }else{
3516 3562
       if(this.incomingService.getSign() === 'callCenter' && this.incomingService.getPhoneNumber()){
3517
-        // this.jry_shixian();
3563
+        this.jry_shixian();
3518 3564
       }
3519 3565
       this.newOrderShow = false; //关闭弹窗
3520 3566
       this.newOrderShowOpen = false; //此时可出现新的弹窗
@@ -4028,7 +4074,7 @@ export class FuwutaiComponent implements OnInit {
4028 4074
   // 取消
4029 4075
   newOrderCancel(): void {
4030 4076
     if(this.incomingService.getSign() === 'callCenter' && this.incomingService.getPhoneNumber()){
4031
-      // this.jry_shixian();
4077
+      this.jry_shixian();
4032 4078
     }
4033 4079
     this.newOrderShow = false;
4034 4080
     this.newOrderShowOpen = false;
@@ -4357,7 +4403,7 @@ export class FuwutaiComponent implements OnInit {
4357 4403
     return timeStr;
4358 4404
   }
4359 4405
 
4360
-  // 菜单拖拽
4406
+  // 菜单拖拽-上下
4361 4407
   moveMenu(nodeId) {
4362 4408
     let fixedMenu = document.getElementById(nodeId);
4363 4409
     if (!fixedMenu) return;
@@ -4380,6 +4426,47 @@ export class FuwutaiComponent implements OnInit {
4380 4426
     };
4381 4427
   }
4382 4428
 
4429
+  // 处理人
4430
+  computedHandlerUser(incidentData){
4431
+    if(incidentData.state.value == 'pending' && incidentData.currentLog){
4432
+      return incidentData.currentLog.workerName;
4433
+    }
4434
+    if(incidentData.state.value != 'pending' && incidentData.handlingPersonnelUser){
4435
+      return incidentData.handlingPersonnelUser.name;
4436
+    }
4437
+  }
4438
+
4439
+  // 菜单拖拽-自由
4440
+  moveMenuAll(nodeId) {
4441
+    let fixedMenu = document.getElementById(nodeId);
4442
+    if (!fixedMenu) return;
4443
+    fixedMenu.onmousedown = function (e) {
4444
+      let x = e.clientX - fixedMenu.offsetLeft;
4445
+      let y = e.clientY - fixedMenu.offsetTop;
4446
+      document.onmousemove = function (ev) {
4447
+        fixedMenu.classList.add('maskFull');
4448
+        var _y = ev.clientY - y > 0 ? ev.clientY - y : 0;
4449
+        var h = window.innerHeight;
4450
+        if (_y > h - fixedMenu.clientHeight) {
4451
+          _y = h - fixedMenu.clientHeight;
4452
+        }
4453
+        fixedMenu.style.top = _y + "px";
4454
+
4455
+        var _x = ev.clientX - x > 0 ? ev.clientX - x : 0;
4456
+        var w = window.innerWidth;
4457
+        if (_x > w - fixedMenu.clientWidth) {
4458
+          _x = w - fixedMenu.clientWidth;
4459
+        }
4460
+        fixedMenu.style.right = w - _x - fixedMenu.clientWidth + "px";
4461
+      };
4462
+      document.onmouseup = function () {
4463
+        fixedMenu.classList.remove('maskFull');
4464
+        document.onmousemove = null;
4465
+        document.onmouseup = null;
4466
+      };
4467
+    };
4468
+  }
4469
+
4383 4470
   @ViewChild("msgTemplate", { static: false }) msgTemplate: TemplateRef<any>; //消息通知模板
4384 4471
   // 消息提醒
4385 4472
   createBasicNotification(msgs): void {
@@ -4432,6 +4519,12 @@ export class FuwutaiComponent implements OnInit {
4432 4519
 
4433 4520
   // 运维、配送工单切换
4434 4521
   filterOrderList(type, state){
4522
+    if(!this.itsmData.mdv2Switch && this.hsmsData.hsmsSwitch){
4523
+      return;
4524
+    }
4525
+    if(this.itsmData.mdv2Switch && !this.hsmsData.hsmsSwitch){
4526
+      return;
4527
+    }
4435 4528
     this.flagList[`${type}Flag${state}`] = !this.flagList[`${type}Flag${state}`];
4436 4529
     this.getOrderList(state, state === 1);
4437 4530
   }