Explorar o código

调度台工单

seimin hai 7 meses
pai
achega
79e9539b94

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

@@ -228,11 +228,6 @@ export class IncidentDetailComponent implements OnInit {
228 228
     return this.incidentData.synergetic && this.incidentData.synergetic.length ? this.incidentData.synergetic.map(v => v.name).join(',') : '';
229 229
   }
230 230
 
231
-  // 是否进入汇总单
232
-  isInSummaryOrder(){
233
-    return this.incidentData.duty && this.itsmSummarySheet.value == 1 && (this.incidentData.handlingPersonnelUser.id == this.tool.getCurrentUserId());
234
-  }
235
-
236 231
   // 获取院区配置信息
237 232
   itsmSummarySheet:any = {};//是否需要填写汇总单
238 233
   getHospitalConfig() {
@@ -250,12 +245,10 @@ export class IncidentDetailComponent implements OnInit {
250 245
         let list = result.list || [];
251 246
         this.itsmSummarySheet = list.find(v => v.key == 'itsmSummarySheet') || {};
252 247
         console.log(this.itsmSummarySheet)
253
-        if(this.isInSummaryOrder()){
254
-          // 维修汇总单
255
-          if(this.incidentData.state.value == 'close' && this.incidentData.summaryId){
256
-            let flag = this.tabs.some(v => v.value === 4);
257
-            !flag && this.tabs.splice(2, 0, {name: '汇总单', value: 4});
258
-          }
248
+        // 维修汇总单
249
+        if(this.incidentData.state.value == 'close' && this.itsmSummarySheet.value == 1 && this.incidentData.summaryId){
250
+          let flag = this.tabs.some(v => v.value === 4);
251
+          !flag && this.tabs.splice(2, 0, {name: '汇总单', value: 4});
259 252
         }
260 253
       });
261 254
   }

+ 6 - 0
src/app/services/main.service.ts

@@ -1000,4 +1000,10 @@ export class MainService {
1000 1000
 	    headers: this.headers,
1001 1001
 	  });
1002 1002
 	}
1003
+  // 调度台头部运维分组
1004
+	incidentUserTaskCount(data) {
1005
+	  return this.http.post(host.host + `/incident/incidentUserTaskCount`,data, {
1006
+	    headers: this.headers,
1007
+	  });
1008
+	}
1003 1009
 }

+ 224 - 466
src/app/views/fuwutai/fuwutai.component.html

@@ -3,35 +3,18 @@
3 3
     <!-- 头部Tab -->
4 4
     <div class="tabBox">
5 5
       <div class="tab" #tabs>
6
-        <div
7
-          class="tab_inner"
8
-          [style.transform]="'translateX(' + disXHead + 'px)'"
9
-        >
10
-          <div
11
-            [ngClass]="{ tabItem: true, checked: typeId == -1 }"
12
-            (click)="checkTab(-1)"
13
-          >
6
+        <div class="tab_inner" [style.transform]="'translateX(' + disXHead + 'px)'">
7
+          <!-- <div [ngClass]="{ tabItem: true, checked: typeId == -1 }" (click)="checkTab(-1)">
14 8
             全部
15
-          </div>
16
-          <div
17
-            [ngClass]="{ tabItem: true, checked: typeId == item.id }"
18
-            *ngFor="let item of scopeGroups"
19
-            (click)="checkTab(item.id)"
20
-            [title]="item.groupName"
21
-          >
9
+          </div> -->
10
+          <div [ngClass]="{ tabItem: true, checked: typeId == item.id }" *ngFor="let item of scopeGroups" (click)="checkTab(item.id)" [title]="item.groupName">
22 11
             {{ item.groupName }}
23 12
           </div>
24 13
         </div>
25 14
       </div>
26 15
       <div class="tabBox__operate">
27
-        <i
28
-          class="tabBox__Icon--right icon_transport transport-xiangzuo"
29
-          (click)="headToLeft()"
30
-        ></i>
31
-        <i
32
-          class="tabBox__Icon--left icon_transport transport-xiangzuo"
33
-          (click)="headToRight()"
34
-        ></i>
16
+        <i class="tabBox__Icon--right icon_transport transport-xiangzuo" (click)="headToLeft()"></i>
17
+        <i class="tabBox__Icon--left icon_transport transport-xiangzuo" (click)="headToRight()"></i>
35 18
       </div>
36 19
       <div class="timer">{{ workerRefreshTime }}s</div>
37 20
     </div>
@@ -39,88 +22,56 @@
39 22
     <div class="message_cot">
40 23
       <!-- 配送人员信息 -->
41 24
       <div class="cot_hid" [style.height]="cotHeight + 'px'">
42
-        <div id="cotAll" class="cot_all" *ngIf="patientCareCol != 6">
43
-          <div
44
-            [ngClass]="{
45
-              cot: true,
46
-              fourCol: patientCareCol == 4,
47
-              sevenCol: patientCareCol == 7
48
-            }"
49
-            *ngFor="let data of workerMessage"
50
-          >
51
-            <div class="first">
52
-              <span nz-tooltip [nzTooltipTitle]="data.phone">{{
53
-                data.name
54
-              }}</span>
55
-              <span>累计{{ data.totalCount }}单</span>
56
-              <span
57
-                class="times imptime"
58
-                *ngIf="
59
-                  data.freetime === '今日还未接单' || data.freetime === null
60
-                "
61
-                >{{ data.freetime }}</span
62
-              >
63
-              <span
64
-                class="times imptime imptime-green"
65
-                *ngIf="
66
-                  data.freetime !== '今日还未接单' && data.freetime !== null
67
-                "
68
-                >{{ "空闲时间" + data.freetime }}</span
69
-              >
25
+        <ng-container *ngIf="!wLoading && (typeData.type === 1 || typeData.type === 2)">
26
+          <div id="cotAll" class="cot_all" *ngIf="patientCareCol != 6">
27
+            <div [ngClass]="{cot: true, fourCol: patientCareCol == 4, sevenCol: patientCareCol == 7}" *ngFor="let data of workerMessage">
28
+              <div class="first" *ngIf="data">
29
+                <span nz-tooltip [nzTooltipTitle]="data.phone">{{ data.name }}</span>
30
+                <span>累计{{ data.totalCount }}单</span>
31
+                <span class="times imptime" *ngIf="data.freetime === '今日还未接单' || data.freetime === null">{{ data.freetime }}</span>
32
+                <span class="times imptime imptime-green" *ngIf="data.freetime !== '今日还未接单' && data.freetime !== null">{{ "空闲时间" + data.freetime }}</span>
33
+              </div>
34
+              <div class="second" *ngIf="data">
35
+                <span *ngIf="data.workingFlag == true">{{ data.gdType }}</span>
36
+                <span [ngClass]="{ fr: true, colorRed: data.timeOut == true }" *ngIf="data.workingFlag == true">{{ data.gdState }}</span>
37
+              </div>
70 38
             </div>
71
-            <div class="second">
72
-              <span *ngIf="data.workingFlag == true">{{ data.gdType }}</span>
73
-              <span
74
-                [ngClass]="{ fr: true, colorRed: data.timeOut == true }"
75
-                *ngIf="data.workingFlag == true"
76
-                >{{ data.gdState }}</span
77
-              >
39
+          </div>
40
+          <div id="cotAll" nz-row *ngIf="patientCareCol == 6">
41
+            <div nz-col nzSpan="4" class="cot col-6" *ngFor="let data of workerMessage">
42
+              <div class="first" *ngIf="data">
43
+                <span nz-tooltip [nzTooltipTitle]="data.phone">{{ data.name }}</span>
44
+                <span class="times imptime" *ngIf="data.freetime === '今日还未接单' || data.freetime === null">{{ data.freetime }}</span>
45
+                <span class="times imptime imptime-green" *ngIf="data.freetime !== '今日还未接单' && data.freetime !== null">{{ "空闲时间" + data.freetime }}</span>
46
+              </div>
78 47
             </div>
79 48
           </div>
80
-        </div>
81
-        <div id="cotAll" nz-row *ngIf="patientCareCol == 6">
82
-          <div
83
-            nz-col
84
-            nzSpan="4"
85
-            class="cot col-6"
86
-            *ngFor="let data of workerMessage"
87
-          >
88
-            <div class="first">
89
-              <span nz-tooltip [nzTooltipTitle]="data.phone">{{
90
-                data.name
91
-              }}</span>
92
-              <span
93
-                class="times imptime"
94
-                *ngIf="
95
-                  data.freetime === '今日还未接单' || data.freetime === null
96
-                "
97
-                >{{ data.freetime }}</span
98
-              >
99
-              <span
100
-                class="times imptime imptime-green"
101
-                *ngIf="
102
-                  data.freetime !== '今日还未接单' && data.freetime !== null
103
-                "
104
-                >{{ "空闲时间" + data.freetime }}</span
105
-              >
49
+        </ng-container>
50
+        <ng-container *ngIf="!wLoading && typeData.type === 3">
51
+          <div id="cotAll" class="cot_all">
52
+            <div [ngClass]="{cot: true, sevenCol: true}" *ngFor="let data of workerMessage">
53
+              <div class="first" *ngIf="data">
54
+                <span nz-tooltip [nzTooltipTitle]="data[2]">{{ data[1] }}</span>
55
+                <span class="fr">今日完成:{{ data[3][2] }}</span>
56
+              </div>
57
+              <div class="first" *ngIf="data">
58
+                <span>待接单:{{ data[3][0] }}</span>
59
+                <span class="fr">处理中:{{ data[3][1] }}</span>
60
+              </div>
106 61
             </div>
107 62
           </div>
108
-        </div>
109
-        <div class="cot_img" *ngIf="workerMessage.length == 0">
63
+        </ng-container>
64
+        <div class="cot_img" *ngIf="wLoading">
110 65
           <img src="../../assets/images/loading.gif" alt="" />
111 66
         </div>
112
-        <div class="cot_img" *ngIf="workerMessage.length == 0">
67
+        <div class="cot_img" *ngIf="!wLoading && workerMessage.length == 0">
113 68
           <span>暂无数据</span>
114 69
         </div>
115 70
       </div>
116 71
       <div class="arrow" *ngIf="showRowNum < maxNum" (click)="unfold()">
117 72
         <i class="icon_transport transport-xiala2-01"></i>
118 73
       </div>
119
-      <div
120
-        class="arrow"
121
-        *ngIf="showRowNum > maxNum || showRowNum == maxNum"
122
-        (click)="retract()"
123
-      >
74
+      <div class="arrow" *ngIf="showRowNum > maxNum || showRowNum == maxNum" (click)="retract()">
124 75
         <i class="icon_transport transport-shangla-"></i>
125 76
       </div>
126 77
     </div>
@@ -156,15 +107,15 @@
156 107
           批量派单
157 108
         </button>
158 109
       </div>
159
-      <div class="cots_body weifenpai" *ngIf="(txtLabelCol == 1 && hsmsData.hsmsSwitch && !itsmData.mdv2Switch) || itsmData.mdv2Switch" [ngClass]="{ top185: hurseInfoHiding != '1', top185_1: flagList.itsmFlag1 }">
110
+      <div class="cots_body weifenpai" *ngIf="(txtLabelCol == 1 && flagList.hsmsFlag1 && !flagList.itsmFlag1) || flagList.itsmFlag1" [ngClass]="{ top185: hurseInfoHiding != '1', top185_1: flagList.itsmFlag1 }">
160 111
         <overlay-scrollbars #osComponentRef2 [ngStyle]="{ height: '100%' }">
161 112
           <ng-container *ngIf="unassignedList.length && !loading1">
162 113
             <div class="list listsTypeColor" *ngFor="let data of unassignedList">
163 114
               <!-- 配送 -->
164 115
               <ng-container *ngIf="data.type === 'hsms'">
165
-                <div class="left_cots">
116
+                <div class="left_cots" (click)="openDetails(data.data)">
166 117
                   <!-- 工单 -->
167
-                  <div class="gongdan" (click)="batchDispatchSelect(!data.checked, data.data.id)">
118
+                  <div class="gongdan" (click)="batchDispatchSelect(!data.checked, data.data.id, $event)">
168 119
                     <span class="left mr8" *ngIf="!flagList.itsmFlag1 && flagList.hsmsFlag1"><label nz-checkbox [ngModel]="data.checked" (ngModelChange)="batchDispatchSelect($event, data.data.id)"></label></span>
169 120
                     <span class="left gongdan_name" nz-tooltip [nzTooltipTitle]="data.data.taskType.taskName + (data.data.goodsRemark?'-'+data.data.goodsRemark:'')+'(' + data.data.gdcode + ')'">
170 121
                       {{ data.data.isHalfInspect === 1 ? "半程陪检" : data.data.taskType.taskName }}<ng-container *ngIf="data.data.goodsRemark">-{{data.data.goodsRemark}}</ng-container>({{ data.data.gdcode }})
@@ -177,7 +128,7 @@
177 128
                     </div>
178 129
                   </div>
179 130
                   <!-- 地点 -->
180
-                  <div class="didian" (click)="openDetails(data.data)">
131
+                  <div class="didian">
181 132
                     <span class="left" *ngIf="data.data.taskType.associationType.value == 'inspect'">
182 133
                       {{ data.data.startDept ? data.data.startDept.dept : "" }}
183 134
                       <span *ngFor="let item of data.data.middleDept">
@@ -197,7 +148,7 @@
197 148
                     </span>
198 149
                   </div>
199 150
                   <!-- 时间 -->
200
-                  <div class="shijian" (click)="openDetails(data.data)">
151
+                  <div class="shijian">
201 152
                     <span class="left" *ngIf="data.data.expectTimeNum && data.data.timeOut != true">
202 153
                       <i class="icon_transport transport-shouye10" nz-tooltip nzTooltipTitle="进行中"></i>
203 154
                       <ng-container *ngIf="(data.data.taskType.associationType.value == 'patientTransport' || data.data.taskType.associationType.value == 'inspect') && data.data.patient?.illnessState">
@@ -249,8 +200,8 @@
249 200
               </ng-container>
250 201
               <!-- 运维 -->
251 202
               <ng-container *ngIf="data.type === 'mdv2'">
252
-                <div class="left_cots">
253
-                  <div class="gongdan" (click)="batchDispatchSelect(!data.checked, data.data.id)">
203
+                <div class="left_cots" (click)="openItsmDetails(data.data)">
204
+                  <div class="gongdan">
254 205
                     <span class="left gongdan_name">
255 206
                       <span [ngClass]="priorityColor(data.data.priorityId)">{{ data.data.priorityDTO?.name }} </span>{{ data.data.incidentsign }} <span nz-tooltip [nzTooltipTitle]="data.data.hosName + data.data.department?.dept">{{ data.data.hosName }}{{ data.data.department?.dept }}</span>
256 207
                     </span>
@@ -261,26 +212,26 @@
261 212
                     </div>
262 213
                   </div>
263 214
 
264
-                  <div class="didian" (click)="openItsmDetails(data.data)">
215
+                  <div class="didian">
265 216
                     <span class="left">
266 217
                       <span nz-tooltip [nzTooltipTitle]="data.data.description">{{ data.data.description }}</span>
267 218
                     </span>
268 219
                   </div>
269 220
 
270
-                  <div class="didian" (click)="openItsmDetails(data.data)">
221
+                  <div class="didian">
271 222
                     <span class="left">
272 223
                       <span nz-tooltip [nzTooltipTitle]="(data.data.place ? data.data.place.building.buildingName : '') + (data.data.place ? data.data.place.floorName : '') + data.data.houseNumber">{{ data.data.place ? data.data.place.building.buildingName : '' }}{{ data.data.place ? data.data.place.floorName : '' }}{{ data.data.houseNumber }}</span>
273 224
                       <i class="icon_transport transport-a-11111 ml8" *ngIf="data.data.reqAttachment"></i>
274 225
                     </span>
275 226
                   </div>
276 227
 
277
-                  <div class="didian" (click)="openItsmDetails(data.data)" *ngIf="transferHandlerLog(data.data.currentLog)">
228
+                  <div class="didian" *ngIf="transferHandlerLog(data.data.currentLog)">
278 229
                     <span class="left">
279 230
                       <span [innerHTML]="transferHandlerLog(data.data.currentLog)" nz-tooltip [nzTooltipTitle]="transferHandlerLog(data.data.currentLog)"></span>
280 231
                     </span>
281 232
                   </div>
282 233
                   <!-- 时间 -->
283
-                  <div class="shijian" (click)="openItsmDetails(data.data)">
234
+                  <div class="shijian">
284 235
                     <span class="left">
285 236
                       <span>
286 237
                         申请人:{{ data.data.requester?.name }}
@@ -365,24 +316,19 @@
365 316
             <span>搜索</span>
366 317
           </div>
367 318
         </div>
368
-        <button
369
-          nz-button
370
-          nzType="primary"
371
-          (click)="batchWithdrawal()"
372
-          [disabled]="!batchType1"
373
-        >
319
+        <button nz-button nzType="primary" (click)="batchWithdrawal()" [disabled]="!batchType1">
374 320
           批量撤回
375 321
         </button>
376 322
       </div>
377
-      <div class="cots_body daidaoda" *ngIf="(txtLabelCol == 1 && hsmsData.hsmsSwitch && !itsmData.mdv2Switch) || itsmData.mdv2Switch" [ngClass]="{ top185: hurseInfoHiding != '1', top185_1: flagList.itsmFlag2 }">
323
+      <div class="cots_body daidaoda" *ngIf="(txtLabelCol == 1 && flagList.hsmsFlag2 && !flagList.itsmFlag2) || flagList.itsmFlag2" [ngClass]="{ top185: hurseInfoHiding != '1', top185_1: flagList.itsmFlag2 }">
378 324
         <overlay-scrollbars #osComponentRef3 [ngStyle]="{ height: '100%' }">
379 325
           <ng-container *ngIf="arriveList.length && !loading2">
380 326
             <div class="list listsTypeColor" *ngFor="let data of arriveList">
381 327
               <!-- 配送 -->
382 328
               <ng-container *ngIf="data.type === 'hsms'">
383
-                <div class="left_cots">
329
+                <div class="left_cots" (click)="openDetails(data.data)">
384 330
                   <!-- 工单 -->
385
-                  <div class="gongdan" (click)="batchWithdrawalSelect(!data.data.checked, data.data.id)">
331
+                  <div class="gongdan" (click)="batchWithdrawalSelect(!data.data.checked, data.data.id, $event)">
386 332
                     <span class="left mr8">
387 333
                       <label nz-checkbox [ngModel]="data.data.checked" (ngModelChange)="batchWithdrawalSelect($event, data.data.id)"></label>
388 334
                     </span>
@@ -397,7 +343,7 @@
397 343
                     </div>
398 344
                   </div>
399 345
                   <!-- 地点 -->
400
-                  <div class="didian" (click)="openDetails(data.data)">
346
+                  <div class="didian">
401 347
                     <span class="left" *ngIf="data.data.taskType.associationType && data.data.taskType.associationType.value == 'inspect'">
402 348
                       {{ data.data.startDept ? data.data.startDept.dept : "" }}
403 349
                       <span *ngFor="let item of data.data.middleDept">
@@ -417,7 +363,7 @@
417 363
                     </span>
418 364
                   </div>
419 365
                   <!-- 时间 -->
420
-                  <div class="shijian" (click)="openDetails(data.data)">
366
+                  <div class="shijian">
421 367
                     <span class="left" *ngIf="data.data.expectTimeNum && data.data.timeOut != true">
422 368
                       <i class="icon_transport transport-shouye10" nz-tooltip nzTooltipTitle="进行中"></i>
423 369
                       <ng-container *ngIf="(data.data.taskType.associationType.value == 'patientTransport' || data.data.taskType.associationType.value == 'inspect') && data.data.patient?.illnessState">
@@ -465,8 +411,8 @@
465 411
               </ng-container>
466 412
               <!-- 运维 -->
467 413
               <ng-container *ngIf="data.type === 'mdv2'">
468
-                <div class="left_cots">
469
-                  <div class="gongdan" (click)="batchDispatchSelect(!data.checked, data.data.id)">
414
+                <div class="left_cots" (click)="openItsmDetails(data.data)">
415
+                  <div class="gongdan">
470 416
                     <span class="left gongdan_name">
471 417
                       <span [ngClass]="priorityColor(data.data.priorityId)">{{ data.data.priorityDTO?.name }} </span>{{ data.data.incidentsign }} <span nz-tooltip [nzTooltipTitle]="data.data.hosName + data.data.department?.dept">{{ data.data.hosName }}{{ data.data.department?.dept }}</span>
472 418
                     </span>
@@ -477,26 +423,26 @@
477 423
                     </div>
478 424
                   </div>
479 425
 
480
-                  <div class="didian" (click)="openItsmDetails(data.data)">
426
+                  <div class="didian">
481 427
                     <span class="left">
482 428
                       <span nz-tooltip [nzTooltipTitle]="data.data.description">{{ data.data.description }}</span>
483 429
                     </span>
484 430
                   </div>
485 431
 
486
-                  <div class="didian" (click)="openItsmDetails(data.data)">
432
+                  <div class="didian">
487 433
                     <span class="left">
488 434
                       <span nz-tooltip [nzTooltipTitle]="(data.data.place ? data.data.place.building.buildingName : '') + (data.data.place ? data.data.place.floorName : '') + data.data.houseNumber">{{ data.data.place ? data.data.place.building.buildingName : '' }}{{ data.data.place ? data.data.place.floorName : '' }}{{ data.data.houseNumber }}</span>
489 435
                       <i class="icon_transport transport-a-11111 ml8" *ngIf="data.data.reqAttachment"></i>
490 436
                     </span>
491 437
                   </div>
492 438
 
493
-                  <div class="didian" (click)="openItsmDetails(data.data)" *ngIf="transferHandlerLog(data.data.currentLog)">
439
+                  <div class="didian" *ngIf="transferHandlerLog(data.data.currentLog)">
494 440
                     <span class="left">
495 441
                       <span [innerHTML]="transferHandlerLog(data.data.currentLog)" nz-tooltip [nzTooltipTitle]="transferHandlerLog(data.data.currentLog)"></span>
496 442
                     </span>
497 443
                   </div>
498 444
                   <!-- 时间 -->
499
-                  <div class="shijian" (click)="openItsmDetails(data.data)">
445
+                  <div class="shijian">
500 446
                     <span class="left">
501 447
                       <span>
502 448
                         申请人:{{ data.data.requester?.name }}
@@ -525,34 +471,15 @@
525 471
           </div>
526 472
         </overlay-scrollbars>
527 473
       </div>
528
-      <div
529
-        class="cots_body daidaoda twoCol"
530
-        *ngIf="txtLabelCol == 2"
531
-        [ngClass]="{ top185: hurseInfoHiding != '1' }"
532
-      >
474
+      <div class="cots_body daidaoda twoCol" *ngIf="txtLabelCol == 2 && flagList.hsmsFlag2 && !flagList.itsmFlag2" [ngClass]="{ top185: hurseInfoHiding != '1' }">
533 475
         <overlay-scrollbars #osComponentRef4 [ngStyle]="{ height: '100%' }">
534 476
           <ng-container *ngIf="arriveList.length && !loading2">
535 477
             <div class="list listsTypeColor" *ngFor="let data of arriveList">
536
-              <div
537
-                class="left_cots"
538
-                (click)="openDetails(data)"
539
-              >
478
+              <div class="left_cots" (click)="openDetails(data)">
540 479
                 <!-- 工单 -->
541 480
                 <div class="gongdan">
542
-                  <span class="left"
543
-                    >{{ data.taskType.associationType.name
544
-                    }}{{
545
-                      data.createDeptDTO
546
-                        ? "(" + data.createDeptDTO.dept + ")"
547
-                        : ""
548
-                    }}</span
549
-                  >
550
-
551
-                  <span
552
-                    [ngClass]="{ right: true, colorRed: data.timeOut == true }"
553
-                  >
554
-                    {{ data.gdState.name }}
555
-                  </span>
481
+                  <span class="left">{{ data.taskType.associationType.name }}{{ data.createDeptDTO ? "(" + data.createDeptDTO.dept + ")" : "" }}</span>
482
+                  <span [ngClass]="{ right: true, colorRed: data.timeOut == true }">{{ data.gdState.name }}</span>
556 483
                 </div>
557 484
                 <!-- 时间 -->
558 485
                 <div class="shijian">
@@ -565,42 +492,15 @@
565 492
                 </div>
566 493
                 <!-- 急标 -->
567 494
                 <!-- 急单 -->
568
-                <img
569
-                  *ngIf="data.emergencyType && data.emergencyType.id == 300"
570
-                  src="../../assets/images/icon_ji.png"
571
-                  alt=""
572
-                  class="ji"
573
-                />
495
+                <img *ngIf="data.emergencyType && data.emergencyType.id == 300" src="../../assets/images/icon_ji.png" alt="" class="ji" />
574 496
                 <!-- 加急单 -->
575
-                <img
576
-                  *ngIf="data.emergencyType && data.emergencyType.id == 301"
577
-                  src="../../assets/images/icon_jiaji.png"
578
-                  alt=""
579
-                  class="ji"
580
-                />
497
+                <img *ngIf="data.emergencyType && data.emergencyType.id == 301" src="../../assets/images/icon_jiaji.png" alt="" class="ji" />
581 498
               </div>
582
-              <div
583
-                *ngIf="data.timeOut != true"
584
-                class="slider sgreen"
585
-                [ngStyle]="{ width: data.percent + '%' }"
586
-              ></div>
587
-              <div
588
-                *ngIf="data.timeOut == true"
589
-                class="slider sred"
590
-                [ngStyle]="{ width: '100%' }"
591
-              ></div>
499
+              <div *ngIf="data.timeOut != true" class="slider sgreen" [ngStyle]="{ width: data.percent + '%' }"></div>
500
+              <div *ngIf="data.timeOut == true" class="slider sred" [ngStyle]="{ width: '100%' }"></div>
592 501
             </div>
593 502
           </ng-container>
594
-          <div
595
-            class="
596
-              loading
597
-              display_flex
598
-              col-flex
599
-              justify-content_flex-center
600
-              align-items_center
601
-            "
602
-            *ngIf="loading2"
603
-          >
503
+          <div class="loading display_flex col-flex justify-content_flex-center align-items_center" *ngIf="loading2">
604 504
             <img src="../../assets/images/loading.gif" alt="" />
605 505
           </div>
606 506
           <div class="no_data" *ngIf="arriveList.length == 0 && !loading2">
@@ -612,262 +512,162 @@
612 512
     <!-- 执行中 -->
613 513
     <div class="lists">
614 514
       <div class="head">
615
-        <span class="auto_tit">执行中({{ executionList.length }}条)</span>
616
-        <span class="toLastTime"
617
-          >刷新倒计时<span class="time">{{ orderRefreshTime }}s</span></span
618
-        >
515
+        <span class="auto_tit"><span *ngIf="flagList.hsmsFlag3">执行中</span><span *ngIf="flagList.itsmFlag3 && flagList.hsmsFlag3">/</span><span *ngIf="flagList.itsmFlag3">处理中</span>({{ executionList.length }}条)</span>
516
+        <span class="toLastTime"><span class="itsmOrHsms" [ngClass]="{bold: flagList.itsmFlag3}" *ngIf="itsmData.mdv2Switch" (click)="filterOrderList('itsm', 3)">运维</span><span class="itsmOrHsms" *ngIf="itsmData.mdv2Switch && hsmsData.hsmsSwitch">|</span><span class="itsmOrHsms" [ngClass]="{bold: flagList.hsmsFlag3}" *ngIf="hsmsData.hsmsSwitch" (click)="filterOrderList('hsms', 3)">配送</span><span class="time">{{ orderRefreshTime }}s</span></span>
619 517
       </div>
620
-      <div class="searchBox">
518
+      <div class="searchBox" *ngIf="!flagList.itsmFlag3 && flagList.hsmsFlag3">
621 519
         <div class="search">
622
-          <input
623
-            type="text"
624
-            placeholder="请输入关键字"
625
-            [(ngModel)]="executionSearchCon"
626
-          />
520
+          <input type="text" placeholder="请输入关键字" [(ngModel)]="executionSearchCon" />
627 521
           <div class="magnifier" (click)="searchExecution()">
628 522
             <i class="icon_transport transport-sousuo"></i>
629 523
             <span>搜索</span>
630 524
           </div>
631 525
         </div>
632 526
       </div>
633
-      <div
634
-        class="cots_body zhixingzhong"
635
-        *ngIf="txtLabelCol == 1"
636
-        [ngClass]="{ top185: hurseInfoHiding != '1' }"
637
-      >
527
+      <div class="cots_body zhixingzhong" *ngIf="(txtLabelCol == 1 && flagList.hsmsFlag3 && !flagList.itsmFlag3) || flagList.itsmFlag3" [ngClass]="{ top185: hurseInfoHiding != '1', top185_1: flagList.itsmFlag3 }">
638 528
         <overlay-scrollbars #osComponentRef5 [ngStyle]="{ height: '100%' }">
639 529
           <ng-container *ngIf="executionList.length && !loading3">
640 530
             <div class="list" *ngFor="let data of executionList">
641
-              <div
642
-                class="left_cots"
643
-                (click)="openDetails(data)"
644
-              >
645
-                <!-- 工单 -->
646
-                <div class="gongdan">
647
-                  <span class="left gongdan_name" nz-tooltip [nzTooltipTitle]="data.taskType.taskName + (data.goodsRemark?'-'+data.goodsRemark:'')+'(' + data.gdcode + ')'">
648
-                    {{ data.isHalfInspect === 1 ? "半程陪检" : data.taskType.taskName }}<ng-container *ngIf="data.goodsRemark">-{{data.goodsRemark}}</ng-container>({{ data.gdcode }})
649
-                  </span>
650
-                  <div class="right_all">
651
-                    <span nz-tooltip [nzTooltipTitle]="data.worker ? data.worker.phone : ''" class="right_all_name">{{ data.worker ? data.worker.name : "" }}</span>
652
-                    <span class="right">
653
-                      <span [ngClass]="{ colorRed: data.timeOut == true }">{{ data.gdState.name }}</span>
531
+              <!-- 配送 -->
532
+              <ng-container *ngIf="data.type === 'hsms'">
533
+                <div class="left_cots" (click)="openDetails(data.data)">
534
+                  <!-- 工单 -->
535
+                  <div class="gongdan">
536
+                    <span class="left mr8">
537
+                      <label nz-checkbox [ngModel]="data.data.checked" (ngModelChange)="batchWithdrawalSelect($event, data.data.id)"></label>
538
+                    </span>
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 }})
654 541
                     </span>
542
+                    <div class="right_all">
543
+                      <span nz-tooltip [nzTooltipTitle]="data.data.worker ? data.data.worker.phone : ''" class="right_all_name">{{ data.data.worker ? data.data.worker.name : "" }}</span>
544
+                      <span class="right">
545
+                        <span [ngClass]="{ colorRed: data.data.timeOut == true }">{{ data.gdState.name }}</span>
546
+                      </span>
547
+                    </div>
655 548
                   </div>
549
+                  <!-- 地点 -->
550
+                  <div class="didian">
551
+                    <span class="left" *ngIf="data.data.taskType.associationType && data.data.taskType.associationType.value == 'inspect'">
552
+                      {{ data.data.startDept ? data.data.startDept.dept : "" }}
553
+                      <span *ngFor="let item of data.data.middleDept">
554
+                        ->{{ item.dept }}
555
+                      </span>
556
+                    </span>
557
+                    <span class="left" *ngIf="data.data.taskType.associationType && data.data.taskType.associationType.id != 260">
558
+                      {{ data.data.startDept ? data.data.startDept.dept : "" }}{{ data.data.endDepts ? " -> " + data.data.endDepts[0].dept : "" }}
559
+                    </span>
560
+                    <span class="right" *ngIf="data.data.goods">
561
+                      <i class="icon_transport transport-icon3"></i>
562
+                      <span>{{ data.data.goods }}</span>
563
+                    </span>
564
+                    <span class="right" *ngIf="data.data.workOrderRemark" [title]="data.data.workOrderRemark">
565
+                      <i class="icon_transport transport-icon3"></i>
566
+                      <span>{{ data.data.workOrderRemark }}</span>
567
+                    </span>
568
+                  </div>
569
+                  <!-- 时间 -->
570
+                  <div class="shijian">
571
+                    <span class="left" *ngIf="data.data.expectTimeNum && data.data.timeOut != true">
572
+                      <i class="icon_transport transport-shouye10" nz-tooltip nzTooltipTitle="进行中"></i>
573
+                      <ng-container *ngIf="(data.data.taskType.associationType.value == 'patientTransport' || data.data.taskType.associationType.value == 'inspect') && data.data.patient?.illnessState">
574
+                        <i *ngIf="data.data.patient.illnessState.value === '2'" class="colorRed icon_transport transport-tubiao_wei" nz-tooltip nzTooltipTitle="病危"></i>
575
+                        <i *ngIf="data.data.patient.illnessState.value === '3'" class="colorRed icon_transport transport-zhong" nz-tooltip nzTooltipTitle="病重"></i>
576
+                      </ng-container>
577
+                      <ng-container *ngIf="(data.data.taskType.associationType.value == 'patientTransport' || data.data.taskType.associationType.value == 'inspect') && data.data.patient?.careLevel">
578
+                        <i *ngIf="data.data.patient.careLevel.value === '0'" class="icon_transport transport-te1" nz-tooltip nzTooltipTitle="特级护理"></i>
579
+                        <i *ngIf="data.data.patient.careLevel.value === '1'" class="icon_transport transport-1_round_solid" nz-tooltip nzTooltipTitle="一级护理"></i>
580
+                        <i *ngIf="data.data.patient.careLevel.value === '2'" class="icon_transport transport-2_round_solid" nz-tooltip nzTooltipTitle="二级护理"></i>
581
+                        <i *ngIf="data.data.patient.careLevel.value === '3'" class="icon_transport transport-3_round_solid" nz-tooltip nzTooltipTitle="三级护理"></i>
582
+                      </ng-container>
583
+                      <span nz-tooltip nzTooltipTitle="患者姓名(住院号)" *ngIf="data.data.taskType.associationType.value == 'patientTransport' || data.data.taskType.associationType.value == 'inspect'">{{ data.data.patient.patientName }}<span *ngIf="data.data.patient.residenceNo">({{ data.data.patient.residenceNo }})</span></span>
584
+                    </span>
585
+                    <span class="left" *ngIf="data.data.timeOutLength && data.data.timeOut == true">
586
+                      <i class="colorRed icon_transport transport-daojishi" nz-tooltip nzTooltipTitle="超时"></i>
587
+                      <ng-container *ngIf="(data.data.taskType.associationType.value == 'patientTransport' || data.data.taskType.associationType.value == 'inspect') && data.data.patient?.illnessState">
588
+                        <i *ngIf="data.data.patient.illnessState.value === '2'" class="colorRed icon_transport transport-tubiao_wei" nz-tooltip nzTooltipTitle="病危"></i>
589
+                        <i *ngIf="data.data.patient.illnessState.value === '3'" class="colorRed icon_transport transport-zhong" nz-tooltip nzTooltipTitle="病重"></i>
590
+                      </ng-container>
591
+                      <ng-container *ngIf="(data.data.taskType.associationType.value == 'patientTransport' || data.data.taskType.associationType.value == 'inspect') && data.data.patient?.careLevel">
592
+                        <i *ngIf="data.data.patient.careLevel.value === '0'" class="icon_transport transport-te1" nz-tooltip nzTooltipTitle="特级护理"></i>
593
+                        <i *ngIf="data.data.patient.careLevel.value === '1'" class="icon_transport transport-1_round_solid" nz-tooltip nzTooltipTitle="一级护理"></i>
594
+                        <i *ngIf="data.data.patient.careLevel.value === '2'" class="icon_transport transport-2_round_solid" nz-tooltip nzTooltipTitle="二级护理"></i>
595
+                        <i *ngIf="data.data.patient.careLevel.value === '3'" class="icon_transport transport-3_round_solid" nz-tooltip nzTooltipTitle="三级护理"></i>
596
+                      </ng-container>
597
+                      <span nz-tooltip nzTooltipTitle="患者姓名(住院号)" *ngIf="data.data.taskType.associationType.value == 'patientTransport' || data.data.taskType.associationType.value == 'inspect'">{{ data.data.patient.patientName }}<span *ngIf="data.data.patient.residenceNo">({{ data.data.patient.residenceNo }})</span></span>
598
+                    </span>
599
+                    <span class="right" nz-tooltip [nzTooltipTitle]="'总时长' + formatTime(data.data.expectTimeNum / 1000)">
600
+                      {{ data.data.showCreateTime }}
601
+                    </span>
602
+                  </div>
603
+                  <!-- 急单 -->
604
+                  <img *ngIf="data.data.emergencyType && data.data.emergencyType.id == 300" src="../../assets/images/icon_ji.png" alt="" class="ji" />
605
+                  <!-- 加急单 -->
606
+                  <img *ngIf="data.data.emergencyType && data.data.emergencyType.id == 301" src="../../assets/images/icon_jiaji.png" alt="" class="ji" />
656 607
                 </div>
657
-                <!-- 地点 -->
658
-                <div class="didian">
659
-                  <span
660
-                    class="left"
661
-                    *ngIf="
662
-                      data.taskType.associationType &&
663
-                      data.taskType.associationType.value == 'inspect'
664
-                    "
665
-                  >
666
-                    {{ data.startDept ? data.startDept.dept : "" }}
667
-                    <span *ngFor="let item of data.middleDept">
668
-                      ->{{ item.dept }}
608
+                <div class="right_bots display_flex col-flex align-items_center justify-content_space-around">
609
+                  <input type="button" *ngIf="data.data.gdState.value == 2" class="top_bot" value="派单" (click)="allotWorker(data.data.id, data.data.gdState.id)" />
610
+                  <input type="button" *ngIf="data.data.gdState.value == 3 || data.data.gdState.value == 4" class="mid_bot" value="撤回" (click)="openRecallModal(data.data.id)" />
611
+                  <input type="button" *ngIf="data.data.gdState.value == 2 || data.data.gdState.value == 3 || data.data.gdState.value == 4" class="btm_bot" value="删除" (click)="openDelModal(data.data.id, 'hsms')" />
612
+                </div>
613
+                <div *ngIf="data.data.timeOut != true" class="slider sgreen" [ngStyle]="{ width: data.data.percent + '%' }"></div>
614
+                <div *ngIf="data.data.timeOut == true" class="slider sred" [ngStyle]="{ width: '100%' }"></div>
615
+              </ng-container>
616
+              <!-- 运维 -->
617
+              <ng-container *ngIf="data.type === 'mdv2'">
618
+                <div class="left_cots" (click)="openItsmDetails(data.data)">
619
+                  <div class="gongdan">
620
+                    <span class="left gongdan_name">
621
+                      <span [ngClass]="priorityColor(data.data.priorityId)">{{ data.data.priorityDTO?.name }} </span>{{ data.data.incidentsign }} <span nz-tooltip [nzTooltipTitle]="data.data.hosName + data.data.department?.dept">{{ data.data.hosName }}{{ data.data.department?.dept }}</span>
669 622
                     </span>
670
-                  </span>
671
-                  <span
672
-                    class="left"
673
-                    *ngIf="
674
-                      data.taskType.associationType &&
675
-                      data.taskType.associationType.id != 260
676
-                    "
677
-                  >
678
-                    {{ data.startDept ? data.startDept.dept : ""
679
-                    }}{{ data.endDepts ? " -> " + data.endDepts[0].dept : "" }}
680
-                  </span>
681
-                  <span class="right" *ngIf="data.goods">
682
-                    <i class="icon_transport transport-icon3"></i>
683
-                    <span>{{ data.goods }}</span>
684
-                  </span>
685
-                  <span class="right" *ngIf="data.workOrderRemark" [title]="data.workOrderRemark">
686
-                    <i class="icon_transport transport-icon3"></i>
687
-                    <span>{{ data.workOrderRemark }}</span>
688
-                  </span>
623
+                    <div class="right_all">
624
+                      <span class="right">
625
+                        <span>{{ data.data.state.name }}</span>
626
+                      </span>
627
+                    </div>
628
+                  </div>
629
+
630
+                  <div class="didian">
631
+                    <span class="left">
632
+                      <span nz-tooltip [nzTooltipTitle]="data.data.description">{{ data.data.description }}</span>
633
+                    </span>
634
+                  </div>
635
+
636
+                  <div class="didian">
637
+                    <span class="left">
638
+                      <span nz-tooltip [nzTooltipTitle]="(data.data.place ? data.data.place.building.buildingName : '') + (data.data.place ? data.data.place.floorName : '') + data.data.houseNumber">{{ data.data.place ? data.data.place.building.buildingName : '' }}{{ data.data.place ? data.data.place.floorName : '' }}{{ data.data.houseNumber }}</span>
639
+                      <i class="icon_transport transport-a-11111 ml8" *ngIf="data.data.reqAttachment"></i>
640
+                    </span>
641
+                  </div>
642
+
643
+                  <div class="didian" *ngIf="transferHandlerLog(data.data.currentLog)">
644
+                    <span class="left">
645
+                      <span [innerHTML]="transferHandlerLog(data.data.currentLog)" nz-tooltip [nzTooltipTitle]="transferHandlerLog(data.data.currentLog)"></span>
646
+                    </span>
647
+                  </div>
648
+                  <!-- 时间 -->
649
+                  <div class="shijian">
650
+                    <span class="left">
651
+                      <span>
652
+                        申请人:{{ data.data.requester?.name }}
653
+                      </span>
654
+                    </span>
655
+                    <span class="right">
656
+                      {{ data.data.startDate | date: 'yyyy-MM-dd HH:mm'}}
657
+                    </span>
658
+                  </div>
689 659
                 </div>
690
-                <!-- 时间 -->
691
-                <div class="shijian">
692
-                  <span
693
-                    class="left"
694
-                    *ngIf="data.expectTimeNum && data.timeOut != true"
695
-                  >
696
-                    <i
697
-                      class="icon_transport transport-shouye10"
698
-                      nz-tooltip
699
-                      nzTooltipTitle="进行中"
700
-                    ></i>
701
-                    <ng-container
702
-                      *ngIf="
703
-                        (data.taskType.associationType.value ==
704
-                          'patientTransport' ||
705
-                          data.taskType.associationType.value == 'inspect') &&
706
-                        data.patient?.illnessState
707
-                      "
708
-                    >
709
-                      <i
710
-                        *ngIf="data.patient.illnessState.value === '2'"
711
-                        class="colorRed icon_transport transport-tubiao_wei"
712
-                        nz-tooltip
713
-                        nzTooltipTitle="病危"
714
-                      ></i>
715
-                      <i
716
-                        *ngIf="data.patient.illnessState.value === '3'"
717
-                        class="colorRed icon_transport transport-zhong"
718
-                        nz-tooltip
719
-                        nzTooltipTitle="病重"
720
-                      ></i>
721
-                    </ng-container>
722
-                    <ng-container
723
-                      *ngIf="
724
-                        (data.taskType.associationType.value ==
725
-                          'patientTransport' ||
726
-                          data.taskType.associationType.value == 'inspect') &&
727
-                        data.patient?.careLevel
728
-                      "
729
-                    >
730
-                      <i
731
-                        *ngIf="data.patient.careLevel.value === '0'"
732
-                        class="icon_transport transport-te1"
733
-                        nz-tooltip
734
-                        nzTooltipTitle="特级护理"
735
-                      ></i>
736
-                      <i
737
-                        *ngIf="data.patient.careLevel.value === '1'"
738
-                        class="icon_transport transport-1_round_solid"
739
-                        nz-tooltip
740
-                        nzTooltipTitle="一级护理"
741
-                      ></i>
742
-                      <i
743
-                        *ngIf="data.patient.careLevel.value === '2'"
744
-                        class="icon_transport transport-2_round_solid"
745
-                        nz-tooltip
746
-                        nzTooltipTitle="二级护理"
747
-                      ></i>
748
-                      <i
749
-                        *ngIf="data.patient.careLevel.value === '3'"
750
-                        class="icon_transport transport-3_round_solid"
751
-                        nz-tooltip
752
-                        nzTooltipTitle="三级护理"
753
-                      ></i>
754
-                    </ng-container>
755
-                    <span nz-tooltip nzTooltipTitle="患者姓名(住院号)" *ngIf="data.taskType.associationType.value == 'patientTransport' || data.taskType.associationType.value == 'inspect'">{{ data.patient.patientName }}<span *ngIf="data.patient.residenceNo">({{ data.patient.residenceNo }})</span></span>
756
-                    <!-- <span>总时长{{formatTime(data.expectTimeNum/1000)}}</span> -->
757
-                  </span>
758
-                  <span
759
-                    class="left"
760
-                    *ngIf="data.timeOutLength && data.timeOut == true"
761
-                  >
762
-                    <i
763
-                      class="colorRed icon_transport transport-daojishi"
764
-                      nz-tooltip
765
-                      nzTooltipTitle="超时"
766
-                    ></i>
767
-                    <ng-container
768
-                      *ngIf="
769
-                        (data.taskType.associationType.value ==
770
-                          'patientTransport' ||
771
-                          data.taskType.associationType.value == 'inspect') &&
772
-                        data.patient?.illnessState
773
-                      "
774
-                    >
775
-                      <i
776
-                        *ngIf="data.patient.illnessState.value === '2'"
777
-                        class="colorRed icon_transport transport-tubiao_wei"
778
-                        nz-tooltip
779
-                        nzTooltipTitle="病危"
780
-                      ></i>
781
-                      <i
782
-                        *ngIf="data.patient.illnessState.value === '3'"
783
-                        class="colorRed icon_transport transport-zhong"
784
-                        nz-tooltip
785
-                        nzTooltipTitle="病重"
786
-                      ></i>
787
-                    </ng-container>
788
-                    <ng-container
789
-                      *ngIf="
790
-                        (data.taskType.associationType.value ==
791
-                          'patientTransport' ||
792
-                          data.taskType.associationType.value == 'inspect') &&
793
-                        data.patient?.careLevel
794
-                      "
795
-                    >
796
-                      <i
797
-                        *ngIf="data.patient.careLevel.value === '0'"
798
-                        class="icon_transport transport-te1"
799
-                        nz-tooltip
800
-                        nzTooltipTitle="特级护理"
801
-                      ></i>
802
-                      <i
803
-                        *ngIf="data.patient.careLevel.value === '1'"
804
-                        class="icon_transport transport-1_round_solid"
805
-                        nz-tooltip
806
-                        nzTooltipTitle="一级护理"
807
-                      ></i>
808
-                      <i
809
-                        *ngIf="data.patient.careLevel.value === '2'"
810
-                        class="icon_transport transport-2_round_solid"
811
-                        nz-tooltip
812
-                        nzTooltipTitle="二级护理"
813
-                      ></i>
814
-                      <i
815
-                        *ngIf="data.patient.careLevel.value === '3'"
816
-                        class="icon_transport transport-3_round_solid"
817
-                        nz-tooltip
818
-                        nzTooltipTitle="三级护理"
819
-                      ></i>
820
-                    </ng-container>
821
-                    <span nz-tooltip nzTooltipTitle="患者姓名(住院号)" *ngIf="data.taskType.associationType.value == 'patientTransport' || data.taskType.associationType.value == 'inspect'">{{ data.patient.patientName }}<span *ngIf="data.patient.residenceNo">({{ data.patient.residenceNo }})</span></span>
822
-                    <!-- <span>已超时{{formatTime(data.timeOutLength/1000)}}</span> -->
823
-                  </span>
824
-                  <span
825
-                    class="right"
826
-                    nz-tooltip
827
-                    [nzTooltipTitle]="
828
-                      '总时长' + formatTime(data.expectTimeNum / 1000)
829
-                    "
830
-                  >
831
-                    {{ data.showCreateTime }}
832
-                  </span>
660
+                <div class="right_bots display_flex col-flex align-items_center justify-content_flex-center gap8">
661
+                  <input type="button" *ngIf="computedSubstitution(data.data)" class="top_bot" value="换人处理" (click)="substitution(data.data)" />
662
+                  <input type="button" *ngIf="computedHandle(data.data)" class="top_bot" value="处理" (click)="handle(data.data)" />
663
+                  <input type="button" *ngIf="coopBtns.del" class="btm_bot" value="删除" (click)="openDelModal(data.data.id, 'itsm')" />
833 664
                 </div>
834
-                <!-- 急单 -->
835
-                <img
836
-                  *ngIf="data.emergencyType && data.emergencyType.id == 300"
837
-                  src="../../assets/images/icon_ji.png"
838
-                  alt=""
839
-                  class="ji"
840
-                />
841
-                <!-- 加急单 -->
842
-                <img
843
-                  *ngIf="data.emergencyType && data.emergencyType.id == 301"
844
-                  src="../../assets/images/icon_jiaji.png"
845
-                  alt=""
846
-                  class="ji"
847
-                />
848
-              </div>
849
-              <div
850
-                *ngIf="data.timeOut != true"
851
-                class="slider sgreen"
852
-                [ngStyle]="{ width: data.percent + '%' }"
853
-              ></div>
854
-              <div
855
-                *ngIf="data.timeOut == true"
856
-                class="slider sred"
857
-                [ngStyle]="{ width: '100%' }"
858
-              ></div>
665
+                <div *ngIf="data.data.overtimePercent <= 100" class="slider sgreen" [ngStyle]="{ width: data.data.overtimePercent + '%' }"></div>
666
+                <div *ngIf="data.data.overtimePercent > 100" class="slider sred" [ngStyle]="{ width: '100%' }"></div>
667
+              </ng-container>
859 668
             </div>
860 669
           </ng-container>
861
-          <div
862
-            class="
863
-              loading
864
-              display_flex
865
-              col-flex
866
-              justify-content_flex-center
867
-              align-items_center
868
-            "
869
-            *ngIf="loading3"
870
-          >
670
+          <div class="loading display_flex col-flex justify-content_flex-center align-items_center" *ngIf="loading3">
871 671
             <img src="../../assets/images/loading.gif" alt="" />
872 672
           </div>
873 673
           <div class="no_data" *ngIf="executionList.length == 0 && !loading3">
@@ -875,33 +675,15 @@
875 675
           </div>
876 676
         </overlay-scrollbars>
877 677
       </div>
878
-      <div
879
-        class="cots_body zhixingzhong twoCol"
880
-        *ngIf="txtLabelCol == 2"
881
-        [ngClass]="{ top185: hurseInfoHiding != '1' }"
882
-      >
678
+      <div class="cots_body zhixingzhong twoCol" *ngIf="txtLabelCol == 2 && flagList.hsmsFlag3 && !flagList.itsmFlag3" [ngClass]="{ top185: hurseInfoHiding != '1' }">
883 679
         <overlay-scrollbars #osComponentRef6 [ngStyle]="{ height: '100%' }">
884 680
           <ng-container *ngIf="executionList.length && !loading3">
885 681
             <div class="list" *ngFor="let data of executionList">
886
-              <div
887
-                class="left_cots"
888
-                (click)="openDetails(data)"
889
-              >
682
+              <div class="left_cots" (click)="openDetails(data)">
890 683
                 <!-- 工单 -->
891 684
                 <div class="gongdan">
892
-                  <span class="left"
893
-                    >{{ data.taskType.associationType.name
894
-                    }}{{
895
-                      data.createDeptDTO
896
-                        ? "(" + data.createDeptDTO.dept + ")"
897
-                        : ""
898
-                    }}</span
899
-                  >
900
-                  <span
901
-                    [ngClass]="{ right: true, colorRed: data.timeOut == true }"
902
-                  >
903
-                    {{ data.gdState.name }}
904
-                  </span>
685
+                  <span class="left">{{ data.taskType.associationType.name }}{{ data.createDeptDTO ? "(" + data.createDeptDTO.dept + ")" : "" }}</span>
686
+                  <span [ngClass]="{ right: true, colorRed: data.timeOut == true }">{{ data.gdState.name }}</span>
905 687
                 </div>
906 688
                 <!-- 时间 -->
907 689
                 <div class="shijian">
@@ -913,42 +695,15 @@
913 695
                   </span>
914 696
                 </div>
915 697
                 <!-- 急单 -->
916
-                <img
917
-                  *ngIf="data.emergencyType && data.emergencyType.id == 300"
918
-                  src="../../assets/images/icon_ji.png"
919
-                  alt=""
920
-                  class="ji"
921
-                />
698
+                <img *ngIf="data.emergencyType && data.emergencyType.id == 300" src="../../assets/images/icon_ji.png" alt="" class="ji" />
922 699
                 <!-- 加急单 -->
923
-                <img
924
-                  *ngIf="data.emergencyType && data.emergencyType.id == 301"
925
-                  src="../../assets/images/icon_jiaji.png"
926
-                  alt=""
927
-                  class="ji"
928
-                />
700
+                <img *ngIf="data.emergencyType && data.emergencyType.id == 301" src="../../assets/images/icon_jiaji.png" alt="" class="ji" />
929 701
               </div>
930
-              <div
931
-                *ngIf="data.timeOut != true"
932
-                class="slider sgreen"
933
-                [ngStyle]="{ width: data.percent + '%' }"
934
-              ></div>
935
-              <div
936
-                *ngIf="data.timeOut == true"
937
-                class="slider sred"
938
-                [ngStyle]="{ width: '100%' }"
939
-              ></div>
702
+              <div *ngIf="data.timeOut != true" class="slider sgreen" [ngStyle]="{ width: data.percent + '%' }"></div>
703
+              <div *ngIf="data.timeOut == true" class="slider sred" [ngStyle]="{ width: '100%' }"></div>
940 704
             </div>
941 705
           </ng-container>
942
-          <div
943
-            class="
944
-              loading
945
-              display_flex
946
-              col-flex
947
-              justify-content_flex-center
948
-              align-items_center
949
-            "
950
-            *ngIf="loading3"
951
-          >
706
+          <div class="loading display_flex col-flex justify-content_flex-center align-items_center" *ngIf="loading3">
952 707
             <img src="../../assets/images/loading.gif" alt="" />
953 708
           </div>
954 709
           <div class="no_data" *ngIf="executionList.length == 0 && !loading3">
@@ -2750,3 +2505,6 @@
2750 2505
 <app-incident-substitution [id]="coopData.id" *ngIf="substitutionModalShow" (closeModelHs)="closeSubstitutionModelOrder($event)" (confirmModelHs)="confirmSubstitutionModelOrder($event)"></app-incident-substitution>
2751 2506
 
2752 2507
 <app-dialog-delete [delModal]="delModal" (hideDelModalEvent)="hideDelModal()" [btnLoading]="btnLoading" (confirmDelEvent)="confirmDelFn()" [content]="tipsMsg1"></app-dialog-delete>
2508
+
2509
+<!-- 处理 -->
2510
+<app-incident-handle [id]="coopData.id" *ngIf="handleModalShow" (closeModelHs)="closeHandleModelOrder($event)" (confirmModelHs)="confirmHandleModelOrder($event)"></app-incident-handle>

+ 5 - 5
src/app/views/fuwutai/fuwutai.component.less

@@ -255,7 +255,7 @@
255 255
       border-top: 0;
256 256
       border-radius: 0 0 4px 4px;
257 257
       cursor: pointer;
258
-      z-index: 9;
258
+      z-index: 8;
259 259
     }
260 260
   }
261 261
 
@@ -428,7 +428,7 @@
428 428
     padding: 0 15px;
429 429
     border-bottom: 1px rgb(225, 229, 232) solid;
430 430
     position: relative;
431
-    z-index: 9;
431
+    z-index: 8;
432 432
   }
433 433
 
434 434
   .lists .head .last_time {
@@ -485,7 +485,7 @@
485 485
     padding: 10px 2%;
486 486
     background: #f9fafb;
487 487
     position: relative;
488
-    z-index: 9;
488
+    z-index: 8;
489 489
     display: flex;
490 490
     justify-content: space-between;
491 491
     align-items: center;
@@ -953,7 +953,7 @@
953 953
     display: flex;
954 954
 
955 955
     .left_cots {
956
-      width: 98%;
956
+      // width: 98%;
957 957
     }
958 958
   }
959 959
 
@@ -1554,7 +1554,7 @@
1554 1554
     position: fixed;
1555 1555
     top: 40%;
1556 1556
     right: 0;
1557
-    z-index: 9;
1557
+    z-index: 8;
1558 1558
     border-radius: 5px 0 0 5px;
1559 1559
 
1560 1560
     .fixedMark {

+ 89 - 27
src/app/views/fuwutai/fuwutai.component.ts

@@ -24,6 +24,7 @@ import { addDays, differenceInCalendarDays, getHours, getMinutes, setMinutes, pa
24 24
 import { UploadFile } from 'ng-zorro-antd';
25 25
 import { HttpRequest, HttpClient, HttpResponse } from '@angular/common/http';
26 26
 import cloneDeep from 'lodash-es/cloneDeep'
27
+import { userInfo } from 'os';
27 28
 
28 29
 // 日期禁用
29 30
 function range(start: number, end: number): number[] {
@@ -351,7 +352,8 @@ export class FuwutaiComponent implements OnInit {
351 352
   }
352 353
   // 批量分派选中
353 354
   allUnassignedList = false;
354
-  batchDispatchSelect(e, id) {
355
+  batchDispatchSelect(e, id, event?) {
356
+    event && event.stopPropagation();
355 357
     this.unassignedList.forEach((item) => {
356 358
       if (item.id == id) {
357 359
         item.checked = e;
@@ -375,7 +377,8 @@ export class FuwutaiComponent implements OnInit {
375 377
   }
376 378
   // 批量撤回选中
377 379
   allArriveList = false;
378
-  batchWithdrawalSelect(e, id) {
380
+  batchWithdrawalSelect(e, id, event?) {
381
+    event && event.stopPropagation();
379 382
     this.arriveList.forEach((item) => {
380 383
       if (item.id == id) {
381 384
         item.checked = e;
@@ -839,7 +842,12 @@ export class FuwutaiComponent implements OnInit {
839 842
     let scopeInfo = this.user.user.scope;
840 843
     this.checkedHos = scopeInfo.hospitalId ? scopeInfo.hospitalId.id : undefined;
841 844
     this.orderScopeRadio = scopeInfo.range + "";
842
-    this.scopeGroups = scopeInfo.groupIds || [];
845
+    let groupIds = scopeInfo.groupIds || [];
846
+    let dutyGroupList = scopeInfo.dutyGroupList || [];
847
+    this.scopeGroups = dutyGroupList.concat(groupIds);
848
+    if(this.scopeGroups.length){
849
+      this.typeId = this.scopeGroups[0].id;
850
+    }
843 851
     this.hsmsData = {
844 852
       checkedHos: this.checkedHos,
845 853
       scopeGroups: this.scopeGroups,
@@ -1245,37 +1253,64 @@ export class FuwutaiComponent implements OnInit {
1245 1253
   }
1246 1254
 
1247 1255
   // 切换顶部tab栏
1248
-  typeId = -1; //当前选中tab ID
1256
+  // typeId = -1; //当前选中tab ID
1257
+  typeId; //当前选中tab ID
1258
+  typeData; //当前选中tab
1259
+  wLoading:boolean = false;
1249 1260
   checkTab(typeId) {
1250 1261
     if(!this.hsmsData.hsmsSwitch){
1251 1262
       return;
1252 1263
     }
1253 1264
     let that = this;
1254 1265
     that.typeId = typeId;
1255
-    let postData = {
1256
-      groups: [typeId],
1257
-      idx: 0,
1258
-      sum: 100,
1259
-      hosId: this.checkedHos,
1260
-    };
1261
-    if (typeId == -1) {
1262
-      let groups = [];
1263
-      that.scopeGroups.forEach((e) => {
1264
-        groups.push(e.id);
1266
+    this.typeData = this.scopeGroups.find(v => v.id === typeId);
1267
+    let type = this.typeData.type;
1268
+    // 配送
1269
+    if(type === 1 || type === 2){
1270
+      let postData = {
1271
+        groups: [typeId],
1272
+        idx: 0,
1273
+        sum: 100,
1274
+        hosId: this.checkedHos,
1275
+      };
1276
+      // if (typeId == -1) {
1277
+      //   let groups = [];
1278
+      //   that.scopeGroups.forEach((e) => {
1279
+      //     groups.push(e.id);
1280
+      //   });
1281
+      //   postData.groups = groups;
1282
+      // }
1283
+      if (this.hurseInfoHiding == '1'){
1284
+        that.workerMessage = [];
1285
+        that.initTopCount();
1286
+        return;
1287
+      }
1288
+      this.wLoading = true;
1289
+      that.mainService.getSerInfo("getWorkInfo", postData).subscribe((data) => {
1290
+        this.wLoading = false;
1291
+        that.workerMessage = data.data ? data.data : [];
1292
+        that.initTopCount();
1265 1293
       });
1266
-      postData.groups = groups;
1267 1294
     }
1268
-    if (this.hurseInfoHiding == '1'){
1269
-      that.workerMessage = [];
1270
-      that.initTopCount();
1271
-      return;
1295
+
1296
+    // 运维
1297
+    if(type === 3){
1298
+      let postData = {
1299
+        groups: [typeId],
1300
+      };
1301
+      if (this.hurseInfoHiding == '1'){
1302
+        that.workerMessage = [];
1303
+        that.initTopCount();
1304
+        return;
1305
+      }
1306
+      this.wLoading = true;
1307
+      that.mainService.incidentUserTaskCount(postData).subscribe((data:any) => {
1308
+        this.wLoading = false;
1309
+        that.workerMessage = data.data ? data.data : [];
1310
+        that.initTopCount();
1311
+      });
1272 1312
     }
1273
-    that.mainService.getSerInfo("getWorkInfo", postData).subscribe((data) => {
1274
-      that.workerMessage = data.data ? data.data : [];
1275
-      that.initTopCount();
1276
-    });
1277
-    // that.workerMessage = [];
1278
-    // that.initTopCount();
1313
+
1279 1314
   }
1280 1315
 
1281 1316
   // 获取三个状态数据数据
@@ -1346,7 +1381,12 @@ export class FuwutaiComponent implements OnInit {
1346 1381
           "queryTask": "todoReassign",
1347 1382
         }
1348 1383
       }else if(stateId == 3){
1349
-        delete postData.incidentQuery;
1384
+        postData.incidentQuery.incident = {
1385
+          "groupIds": this.itsmData.allDuty == 1 ? undefined : (this.itsmData.scopeGroups.map(v => v.id).toString() || undefined),
1386
+          "urgentType": +this.itsmData.orderScopeRadio + 1,
1387
+          "queryTask": "doing",
1388
+          "assignee": this.tool.getCurrentUserId(),
1389
+        }
1350 1390
       }
1351 1391
     }
1352 1392
 
@@ -1386,7 +1426,7 @@ export class FuwutaiComponent implements OnInit {
1386 1426
           this.loading2 = false;
1387 1427
         } else if (stateId == 3) {
1388 1428
           // 执行中
1389
-          this.executionList = data.list || [];
1429
+          this.executionList = data.data || [];
1390 1430
           this.loading3 = false;
1391 1431
         }
1392 1432
 
@@ -4041,6 +4081,11 @@ export class FuwutaiComponent implements OnInit {
4041 4081
     return (data.state.value === 'pending' || data.state.value === 'handler' || (data.state.value === 'reassign' && this.coopBtns.assign)) && data.deleteFlag !== 1;
4042 4082
   }
4043 4083
 
4084
+  // 是否显示处理按钮
4085
+  computedHandle(data){
4086
+    return this.coopBtns.handle && data.state.value === 'handler' && data.handlingPersonnelUser && data.handlingPersonnelUser.id == this.tool.getCurrentUserId() && data.deleteFlag !== 1;
4087
+  }
4088
+
4044 4089
   delModal: boolean = false; //删除模态框
4045 4090
   tipsMsg1: string; //提示框信息
4046 4091
   tipsMsg2: string; //操作后信息
@@ -4094,4 +4139,21 @@ export class FuwutaiComponent implements OnInit {
4094 4139
         });
4095 4140
     }
4096 4141
   }
4142
+
4143
+  // 处理-弹窗
4144
+  handleModalShow = false; //弹窗开关
4145
+  handle(data) {
4146
+    this.coopData = data;
4147
+    this.handleModalShow = true;
4148
+  }
4149
+  // 关闭弹窗
4150
+  closeHandleModelOrder(e) {
4151
+    this.handleModalShow = JSON.parse(e).show;
4152
+  }
4153
+  // 弹窗确定
4154
+  confirmHandleModelOrder(e){
4155
+    console.log(e);
4156
+    this.handleModalShow = false;
4157
+    this.showPromptModalRefresh();
4158
+  }
4097 4159
 }

+ 2 - 0
src/app/views/fuwutai/fuwutai.module.ts

@@ -12,6 +12,7 @@ import { KnowledgeLookModule } from 'src/app/components/knowledge-look/knowledge
12 12
 import { IncidentDetailModule } from 'src/app/components/incidentManagement/incident-detail/incident-detail.module';
13 13
 import { IncidentRejectModule } from 'src/app/components/incidentManagement/incident-reject/incident-reject.module';
14 14
 import { IncidentSubstitutionModule } from 'src/app/components/incidentManagement/incident-substitution/incident-substitution.module';
15
+import { IncidentHandleModule } from 'src/app/components/incidentManagement/incident-handle/incident-handle.module';
15 16
 
16 17
 
17 18
 @NgModule({
@@ -29,6 +30,7 @@ import { IncidentSubstitutionModule } from 'src/app/components/incidentManagemen
29 30
     IncidentDetailModule,
30 31
     IncidentRejectModule,
31 32
     IncidentSubstitutionModule,
33
+    IncidentHandleModule,
32 34
   ]
33 35
 })
34 36
 export class FuwutaiModule { }

+ 8 - 6
src/common.less

@@ -165,6 +165,14 @@
165 165
   word-break: break-all;
166 166
 }
167 167
 
168
+.fl {
169
+  float: left !important;
170
+}
171
+
172
+.fr {
173
+  float: right !important;
174
+}
175
+
168 176
 .ellipsis-multiline {
169 177
   display: -webkit-box;
170 178
   -webkit-box-orient: vertical;
@@ -237,13 +245,7 @@
237 245
     cursor: not-allowed;
238 246
     border: 1px solid rgba(0, 0, 0, 0.25);
239 247
   }
240
-  .fl {
241
-    float: left !important;
242
-  }
243 248
 
244
-  .fr {
245
-    float: right !important;
246
-  }
247 249
   .clearfixer :after {
248 250
     content: "";
249 251
     display: block;