Browse Source

回访列表

seimin 8 months ago
parent
commit
15ece9f016

+ 31 - 22
src/app/components/incidentManagement/incident-ser-visit/incident-ser-visit.component.html

@@ -1,28 +1,37 @@
1
 <div class="modal display_flex align-items_center">
1
 <div class="modal display_flex align-items_center">
2
-  <div class="modalBody" style="width: 1200px;">
2
+  <div class="modalBody">
3
     <div class="title">待回访<i class="icon_transport transport-guanbi" (click)="hideModal()"></i></div>
3
     <div class="title">待回访<i class="icon_transport transport-guanbi" (click)="hideModal()"></i></div>
4
-    <div class="content">
5
-      <div class="items">
6
-        <div class="row">
7
-          <div>单号:SJ2408030022</div>
8
-          <div>优先级:极低</div>
9
-          <div>院区-科室名称:同济医院主院区-神经内科Ⅰ</div>
10
-        </div>
11
-        <div class="row">
12
-          <div>故障描述:故障的描述故障的描述故障的描述故障的描述故障的描述故障的描述故障的描述故障的描述。</div>
13
-        </div>
14
-        <div class="row">
15
-          <div>详细地址:内科楼5楼20病房卫生间</div>
16
-        </div>
17
-        <div class="row">
18
-          <div>申请时间:2024-08-30 12:56</div>
19
-          <div>处理人:张三</div>
20
-          <div>
21
-            <input type="button" class="mid_bot" value="回访" />
22
-            <input type="button" class="btm_bot" value="查看" />
4
+    <overlay-scrollbars #osComponentRef1 class="content">
5
+      <nz-spin nzSimple [nzSpinning]="loading" class="mt8 text_align_center"></nz-spin>
6
+      <ng-container *ngIf="!loading">
7
+        <div class="items" *ngFor="let item of visitList">
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>
12
+          </div>
13
+          <div class="row">
14
+            <div class="col">故障描述:{{item.description}}</div>
15
+          </div>
16
+          <div class="row">
17
+            <div class="col">详细地址:{{ item.place ? item.place.building.buildingName : '' }}{{ item.place ? item.place.floorName : '' }}{{ item.houseNumber }}</div>
18
+          </div>
19
+          <div class="row">
20
+            <div class="col">申请时间:{{ item.startDate | date: 'yyyy-MM-dd HH:mm'}}</div>
21
+            <div class="col">处理人:{{computedHandlerUser(item)}}</div>
22
+            <div class="col btns">
23
+              <input type="button" class="mid_bot mr8" value="回访" (click)="visit(item)" />
24
+              <input type="button" class="btm_bot" value="查看" (click)="openItsmDetails(item)" />
25
+            </div>
23
           </div>
26
           </div>
24
         </div>
27
         </div>
25
-      </div>
26
-    </div>
28
+      </ng-container>
29
+    </overlay-scrollbars>
27
   </div>
30
   </div>
28
 </div>
31
 </div>
32
+
33
+<!-- 详情 -->
34
+<app-incident-detail [id]="coopData.id" *ngIf="detailModalShow" (closeModelHs)="closeDetailModelOrder($event)" (confirmModelHs)="confirmDetailModelOrder($event)"></app-incident-detail>
35
+
36
+<!-- 回访 -->
37
+<app-incident-visit [id]="coopData.id" *ngIf="visitModalShow" (closeModelHs)="closeVisitModelOrder($event)" (confirmModelHs)="confirmVisitModelOrder($event)"></app-incident-visit>

+ 34 - 6
src/app/components/incidentManagement/incident-ser-visit/incident-ser-visit.component.less

@@ -60,12 +60,11 @@
60
   }
60
   }
61
 
61
 
62
   .modalBody {
62
   .modalBody {
63
-    width: 700px;
63
+    width: 742px;
64
     height: 707px;
64
     height: 707px;
65
-    min-height: 220px;
66
     background: #fff;
65
     background: #fff;
67
     border-radius: 5px;
66
     border-radius: 5px;
68
-    padding: 10px 20px;
67
+    padding-bottom: 30px;
69
     color: #333;
68
     color: #333;
70
     &.modalBody-search {
69
     &.modalBody-search {
71
       width: 480px;
70
       width: 480px;
@@ -74,24 +73,53 @@
74
 
73
 
75
     .title {
74
     .title {
76
       width: 100%;
75
       width: 100%;
76
+      height: 40px;
77
+      line-height: 40px;
77
       text-align: center;
78
       text-align: center;
78
-      font-size: 18px;
79
+      font-size: 16px;
79
       position: relative;
80
       position: relative;
80
 
81
 
81
       i {
82
       i {
82
         position: absolute;
83
         position: absolute;
83
         right: 0;
84
         right: 0;
84
         top: 0;
85
         top: 0;
85
-        font-size: 20px;
86
+        font-size: 16px;
86
         color: #666;
87
         color: #666;
87
         cursor: pointer;
88
         cursor: pointer;
88
-        padding: 0 5px;
89
+        padding: 0 16px;
89
       }
90
       }
90
     }
91
     }
91
 
92
 
92
     .content {
93
     .content {
94
+      height: calc(100% - 40px);
95
+      border-top: 1px solid #D9D9D9;
96
+      border-bottom: 1px solid #D9D9D9;
93
       .items{
97
       .items{
94
         border-bottom: 1px solid #D9D9D9;
98
         border-bottom: 1px solid #D9D9D9;
99
+        padding: 16px 48px;
100
+        font-size: 14px;
101
+        &:last-of-type{
102
+          border-bottom: none;
103
+        }
104
+        .row{
105
+          position: relative;
106
+          display: flex;
107
+          margin-top: 12px;
108
+          &:first-of-type{
109
+            margin-top: 0;
110
+          }
111
+          .col{
112
+            margin-right: 48px;
113
+            &:last-of-type{
114
+              margin-right: 0;
115
+            }
116
+            &.btns{
117
+              position: absolute;
118
+              bottom: 0;
119
+              right: 0;
120
+            }
121
+          }
122
+        }
95
         /* 中按钮 */
123
         /* 中按钮 */
96
         .mid_bot {
124
         .mid_bot {
97
           width: 65px;
125
           width: 65px;

+ 84 - 14
src/app/components/incidentManagement/incident-ser-visit/incident-ser-visit.component.ts

@@ -1,20 +1,27 @@
1
-import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
1
+import { Component, OnInit, Input, Output, EventEmitter, ViewChild } from '@angular/core';
2
 import { ToolService } from 'src/app/services/tool.service';
2
 import { ToolService } from 'src/app/services/tool.service';
3
 import { MainService } from 'src/app/services/main.service';
3
 import { MainService } from 'src/app/services/main.service';
4
+import { OverlayScrollbarsComponent } from 'overlayscrollbars-ngx';
4
 @Component({
5
 @Component({
5
   selector: 'app-incident-ser-visit',
6
   selector: 'app-incident-ser-visit',
6
   templateUrl: './incident-ser-visit.component.html',
7
   templateUrl: './incident-ser-visit.component.html',
7
   styleUrls: ['./incident-ser-visit.component.less']
8
   styleUrls: ['./incident-ser-visit.component.less']
8
 })
9
 })
9
 export class IncidentSerVisitComponent implements OnInit {
10
 export class IncidentSerVisitComponent implements OnInit {
11
+  @ViewChild("osComponentRef1", {
12
+    read: OverlayScrollbarsComponent,
13
+    static: false,
14
+  })
15
+  osComponentRef1: OverlayScrollbarsComponent;
10
   // 切换科室,切换弹窗
16
   // 切换科室,切换弹窗
11
   hosId;
17
   hosId;
12
-  hsLoading = false;
18
+  loading = false;
13
   visitList: any = [];// 列表
19
   visitList: any = [];// 列表
14
   pageIndex: number = 1;//表格当前页码
20
   pageIndex: number = 1;//表格当前页码
15
   pageSize: number = 10;//表格每页展示条数
21
   pageSize: number = 10;//表格每页展示条数
16
   total: number = 0;//表格总数据量
22
   total: number = 0;//表格总数据量
17
 
23
 
24
+  @Input() itsmData:any;
18
   @Output() closeModelHs = new EventEmitter<any>();//1.组件暴露一个 EventEmitter 属性,当事件发生时,子组件利用该属性 emits(向上弹射)事件
25
   @Output() closeModelHs = new EventEmitter<any>();//1.组件暴露一个 EventEmitter 属性,当事件发生时,子组件利用该属性 emits(向上弹射)事件
19
 
26
 
20
   constructor(private mainService: MainService, private tool: ToolService) { }
27
   constructor(private mainService: MainService, private tool: ToolService) { }
@@ -28,26 +35,89 @@ export class IncidentSerVisitComponent implements OnInit {
28
     this.closeModelHs.emit(JSON.stringify({ show: false }));//emits(向上弹射)事件
35
     this.closeModelHs.emit(JSON.stringify({ show: false }));//emits(向上弹射)事件
29
   }
36
   }
30
 
37
 
38
+  // 优先级颜色
39
+  priorityColor(priorityId) {
40
+    // 极低|低
41
+    if(priorityId == 1 || priorityId == 2){
42
+      return '';
43
+    } else if(priorityId == 3){
44
+      return 'yellow';
45
+    } else if(priorityId == 4 || priorityId == 5){
46
+      return 'red';
47
+    }
48
+  }
49
+
50
+  // 处理人
51
+  computedHandlerUser(item){
52
+    if(item.state.value == 'pending' && item.currentLog){
53
+      return item.currentLog.workerName;
54
+    }
55
+    if(item.state.value != 'pending' && item.handlingPersonnelUser){
56
+      return item.handlingPersonnelUser.name;
57
+    }
58
+  }
59
+
60
+  // 查看ITSM工单详情
61
+  detailModalShow = false; //弹窗开关
62
+  coopData:any = {};
63
+  openItsmDetails(data) {
64
+    this.coopData = data;
65
+    this.detailModalShow = true;
66
+  }
67
+  // 关闭弹窗
68
+  closeDetailModelOrder(e) {
69
+    this.detailModalShow = JSON.parse(e).show;
70
+  }
71
+  // 弹窗确定
72
+  confirmDetailModelOrder(e){
73
+    console.log(e);
74
+    this.detailModalShow = false;
75
+  }
76
+
77
+  // 回访-弹窗
78
+  visitModalShow = false; //弹窗开关
79
+  visit(data) {
80
+    this.coopData = data;
81
+    this.visitModalShow = true;
82
+  }
83
+  // 关闭弹窗
84
+  closeVisitModelOrder(e) {
85
+    this.visitModalShow = JSON.parse(e).show;
86
+  }
87
+  // 弹窗确定
88
+  confirmVisitModelOrder(e){
89
+    console.log(e);
90
+    this.visitModalShow = false;
91
+    this.getList();
92
+  }
93
+
31
   // 分页获取数据
94
   // 分页获取数据
32
   getList(){
95
   getList(){
33
     this.getVisitList();
96
     this.getVisitList();
34
   }
97
   }
35
 
98
 
36
   // 获取回访列表
99
   // 获取回访列表
37
-  getVisitList() {
38
-    let postData = {
100
+  getVisitList(){
101
+    this.loading = true;
102
+    let postData: any = {
39
       idx: 0,
103
       idx: 0,
40
       sum: 9999,
104
       sum: 9999,
41
-      clothesException: {
42
-        hosId: this.hosId,
43
-      }
44
-    }
45
-    this.hsLoading = true;
46
-    this.mainService.getFetchDataList('simple/data','clothesException',postData).subscribe(data => {
47
-      this.hsLoading = false;
48
-      this.visitList = data.list || [];
49
-      this.total = data.totalNum || 0;
50
-    })
105
+      incident: {
106
+        "groupIds": this.itsmData.allDuty == 1 ? undefined : (this.itsmData.scopeGroups.map(v => v.id).toString() || undefined),
107
+        "hosIds": this.itsmData.allDuty == 1 ? undefined : (this.itsmData.checkedHos.map(v => v.id).toString() || undefined),
108
+        "urgentType": +this.itsmData.orderScopeRadio + 1,
109
+        "queryTask": "callback",
110
+        "assignee": this.tool.getCurrentUserId(),
111
+        "deleteFlag": 0,
112
+      },
113
+    };
114
+
115
+    this.mainService
116
+      .getFetchDataList("simple/data", "incident", postData)
117
+      .subscribe((result) => {
118
+        this.loading = false;
119
+        this.visitList = result.list.map(v => ({...v, endDeptsName: v.endDepts ? v.endDepts.map(v => v.dept).toString() : ''}));
120
+      });
51
   }
121
   }
52
 }
122
 }
53
 
123
 

+ 4 - 0
src/app/components/incidentManagement/incident-ser-visit/incident-ser-visit.module.ts

@@ -3,6 +3,8 @@ import { CommonModule } from '@angular/common';
3
 
3
 
4
 import { IncidentSerVisitComponent } from './incident-ser-visit.component';
4
 import { IncidentSerVisitComponent } from './incident-ser-visit.component';
5
 import { ShareModule } from 'src/app/share/share.module';
5
 import { ShareModule } from 'src/app/share/share.module';
6
+import { IncidentDetailModule } from '../incident-detail/incident-detail.module';
7
+import { IncidentVisitModule } from '../incident-visit/incident-visit.module';
6
 
8
 
7
 
9
 
8
 @NgModule({
10
 @NgModule({
@@ -12,6 +14,8 @@ import { ShareModule } from 'src/app/share/share.module';
12
   imports: [
14
   imports: [
13
     CommonModule,
15
     CommonModule,
14
     ShareModule,
16
     ShareModule,
17
+    IncidentDetailModule,
18
+    IncidentVisitModule,
15
   ],
19
   ],
16
   exports: [
20
   exports: [
17
     IncidentSerVisitComponent,
21
     IncidentSerVisitComponent,

+ 28 - 40
src/app/views/fuwutai/fuwutai.component.html

@@ -328,9 +328,9 @@
328
               <ng-container *ngIf="data.type === 'hsms'">
328
               <ng-container *ngIf="data.type === 'hsms'">
329
                 <div class="left_cots" (click)="openDetails(data.data)">
329
                 <div class="left_cots" (click)="openDetails(data.data)">
330
                   <!-- 工单 -->
330
                   <!-- 工单 -->
331
-                  <div class="gongdan" (click)="batchWithdrawalSelect(!data.data.checked, data.data.id, $event)">
332
-                    <span class="left mr8">
333
-                      <label nz-checkbox [ngModel]="data.data.checked" (ngModelChange)="batchWithdrawalSelect($event, data.data.id)"></label>
331
+                  <div class="gongdan" (click)="batchWithdrawalSelect(!data.checked, data.data.id, $event)">
332
+                    <span class="left mr8" *ngIf="!flagList.itsmFlag2 && flagList.hsmsFlag2">
333
+                      <label nz-checkbox [ngModel]="data.checked" (ngModelChange)="batchWithdrawalSelect($event, data.data.id)"></label>
334
                     </span>
334
                     </span>
335
                     <span class="left gongdan_name" nz-tooltip [nzTooltipTitle]="data.data.taskType.taskName + (data.data.goodsRemark?'-'+data.data.goodsRemark:'')+'(' + data.data.gdcode + ')'">
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
                       {{ data.data.isHalfInspect === 1 ? "半程陪检" : data.data.taskType.taskName }}<ng-container *ngIf="data.data.goodsRemark">-{{data.data.goodsRemark}}</ng-container>({{ data.data.gdcode }})
@@ -338,7 +338,7 @@
338
                     <div class="right_all">
338
                     <div class="right_all">
339
                       <span nz-tooltip [nzTooltipTitle]="data.data.worker ? data.data.worker.phone : ''" class="right_all_name">{{ data.data.worker ? data.data.worker.name : "" }}</span>
339
                       <span nz-tooltip [nzTooltipTitle]="data.data.worker ? data.data.worker.phone : ''" class="right_all_name">{{ data.data.worker ? data.data.worker.name : "" }}</span>
340
                       <span class="right">
340
                       <span class="right">
341
-                        <span [ngClass]="{ colorRed: data.data.timeOut == true }">{{ data.gdState.name }}</span>
341
+                        <span [ngClass]="{ colorRed: data.data.timeOut == true }">{{ data.data.gdState.name }}</span>
342
                       </span>
342
                       </span>
343
                     </div>
343
                     </div>
344
                   </div>
344
                   </div>
@@ -478,26 +478,26 @@
478
               <div class="left_cots" (click)="openDetails(data)">
478
               <div class="left_cots" (click)="openDetails(data)">
479
                 <!-- 工单 -->
479
                 <!-- 工单 -->
480
                 <div class="gongdan">
480
                 <div class="gongdan">
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>
481
+                  <span class="left">{{ data.data.taskType.associationType.name }}{{ data.data.createDeptDTO ? "(" + data.data.createDeptDTO.dept + ")" : "" }}</span>
482
+                  <span [ngClass]="{ right: true, colorRed: data.data.timeOut == true }">{{ data.data.gdState.name }}</span>
483
                 </div>
483
                 </div>
484
                 <!-- 时间 -->
484
                 <!-- 时间 -->
485
                 <div class="shijian">
485
                 <div class="shijian">
486
                   <span class="left">
486
                   <span class="left">
487
-                    {{ data.worker ? data.worker.name : "" }}
487
+                    {{ data.data.worker ? data.data.worker.name : "" }}
488
                   </span>
488
                   </span>
489
                   <span class="right">
489
                   <span class="right">
490
-                    <span>{{ data.showCreateTime }}</span>
490
+                    <span>{{ data.data.showCreateTime }}</span>
491
                   </span>
491
                   </span>
492
                 </div>
492
                 </div>
493
                 <!-- 急标 -->
493
                 <!-- 急标 -->
494
                 <!-- 急单 -->
494
                 <!-- 急单 -->
495
-                <img *ngIf="data.emergencyType && data.emergencyType.id == 300" src="../../assets/images/icon_ji.png" alt="" class="ji" />
495
+                <img *ngIf="data.data.emergencyType && data.data.emergencyType.id == 300" src="../../assets/images/icon_ji.png" alt="" class="ji" />
496
                 <!-- 加急单 -->
496
                 <!-- 加急单 -->
497
-                <img *ngIf="data.emergencyType && data.emergencyType.id == 301" src="../../assets/images/icon_jiaji.png" alt="" class="ji" />
497
+                <img *ngIf="data.data.emergencyType && data.data.emergencyType.id == 301" src="../../assets/images/icon_jiaji.png" alt="" class="ji" />
498
               </div>
498
               </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>
499
+              <div *ngIf="data.data.timeOut != true" class="slider sgreen" [ngStyle]="{ width: data.data.percent + '%' }"></div>
500
+              <div *ngIf="data.data.timeOut == true" class="slider sred" [ngStyle]="{ width: '100%' }"></div>
501
             </div>
501
             </div>
502
           </ng-container>
502
           </ng-container>
503
           <div class="loading display_flex col-flex justify-content_flex-center align-items_center" *ngIf="loading2">
503
           <div class="loading display_flex col-flex justify-content_flex-center align-items_center" *ngIf="loading2">
@@ -533,8 +533,8 @@
533
                 <div class="left_cots" (click)="openDetails(data.data)">
533
                 <div class="left_cots" (click)="openDetails(data.data)">
534
                   <!-- 工单 -->
534
                   <!-- 工单 -->
535
                   <div class="gongdan">
535
                   <div class="gongdan">
536
-                    <span class="left mr8">
537
-                      <label nz-checkbox [ngModel]="data.data.checked" (ngModelChange)="batchWithdrawalSelect($event, data.data.id)"></label>
536
+                    <span class="left mr8" *ngIf="!flagList.itsmFlag3 && flagList.hsmsFlag3">
537
+                      <label nz-checkbox [ngModel]="data.checked" (ngModelChange)="batchWithdrawalSelect($event, data.data.id)"></label>
538
                     </span>
538
                     </span>
539
                     <span class="left gongdan_name" nz-tooltip [nzTooltipTitle]="data.data.taskType.taskName + (data.data.goodsRemark?'-'+data.data.goodsRemark:'')+'(' + data.data.gdcode + ')'">
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
                       {{ data.data.isHalfInspect === 1 ? "半程陪检" : data.data.taskType.taskName }}<ng-container *ngIf="data.data.goodsRemark">-{{data.data.goodsRemark}}</ng-container>({{ data.data.gdcode }})
@@ -542,7 +542,7 @@
542
                     <div class="right_all">
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>
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">
544
                       <span class="right">
545
-                        <span [ngClass]="{ colorRed: data.data.timeOut == true }">{{ data.gdState.name }}</span>
545
+                        <span [ngClass]="{ colorRed: data.data.timeOut == true }">{{ data.data.gdState.name }}</span>
546
                       </span>
546
                       </span>
547
                     </div>
547
                     </div>
548
                   </div>
548
                   </div>
@@ -682,25 +682,25 @@
682
               <div class="left_cots" (click)="openDetails(data)">
682
               <div class="left_cots" (click)="openDetails(data)">
683
                 <!-- 工单 -->
683
                 <!-- 工单 -->
684
                 <div class="gongdan">
684
                 <div class="gongdan">
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>
685
+                  <span class="left">{{ data.data.taskType.associationType.name }}{{ data.data.createDeptDTO ? "(" + data.data.createDeptDTO.dept + ")" : "" }}</span>
686
+                  <span [ngClass]="{ right: true, colorRed: data.data.timeOut == true }">{{ data.data.gdState.name }}</span>
687
                 </div>
687
                 </div>
688
                 <!-- 时间 -->
688
                 <!-- 时间 -->
689
                 <div class="shijian">
689
                 <div class="shijian">
690
                   <span class="left">
690
                   <span class="left">
691
-                    {{ data.worker ? data.worker.name : "" }}
691
+                    {{ data.data.worker ? data.data.worker.name : "" }}
692
                   </span>
692
                   </span>
693
                   <span class="right">
693
                   <span class="right">
694
-                    <span>{{ data.showCreateTime }}</span>
694
+                    <span>{{ data.data.showCreateTime }}</span>
695
                   </span>
695
                   </span>
696
                 </div>
696
                 </div>
697
                 <!-- 急单 -->
697
                 <!-- 急单 -->
698
-                <img *ngIf="data.emergencyType && data.emergencyType.id == 300" src="../../assets/images/icon_ji.png" alt="" class="ji" />
698
+                <img *ngIf="data.data.emergencyType && data.data.emergencyType.id == 300" src="../../assets/images/icon_ji.png" alt="" class="ji" />
699
                 <!-- 加急单 -->
699
                 <!-- 加急单 -->
700
-                <img *ngIf="data.emergencyType && data.emergencyType.id == 301" src="../../assets/images/icon_jiaji.png" alt="" class="ji" />
700
+                <img *ngIf="data.data.emergencyType && data.data.emergencyType.id == 301" src="../../assets/images/icon_jiaji.png" alt="" class="ji" />
701
               </div>
701
               </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>
702
+              <div *ngIf="data.data.timeOut != true" class="slider sgreen" [ngStyle]="{ width: data.data.percent + '%' }"></div>
703
+              <div *ngIf="data.data.timeOut == true" class="slider sred" [ngStyle]="{ width: '100%' }"></div>
704
             </div>
704
             </div>
705
           </ng-container>
705
           </ng-container>
706
           <div class="loading display_flex col-flex justify-content_flex-center align-items_center" *ngIf="loading3">
706
           <div class="loading display_flex col-flex justify-content_flex-center align-items_center" *ngIf="loading3">
@@ -817,13 +817,7 @@
817
               <div nz-row>
817
               <div nz-row>
818
                 <div nz-col nzSpan="">
818
                 <div nz-col nzSpan="">
819
                   <nz-input-group nzAddOnAfter="秒">
819
                   <nz-input-group nzAddOnAfter="秒">
820
-                    <nz-input-number
821
-                      class="w100"
822
-                      [(ngModel)]="workerInfoTime"
823
-                      [nzMin]="10"
824
-                      [nzStep]="1"
825
-                      placeholder="请输入配送人员刷新时间"
826
-                    ></nz-input-number>
820
+                    <nz-input-number class="w100" [(ngModel)]="workerInfoTime" [nzMin]="10" [nzStep]="1" placeholder="请输入配送人员刷新时间"></nz-input-number>
827
                   </nz-input-group>
821
                   </nz-input-group>
828
                 </div>
822
                 </div>
829
               </div>
823
               </div>
@@ -835,13 +829,7 @@
835
               <div nz-row>
829
               <div nz-row>
836
                 <div nz-col nzSpan="">
830
                 <div nz-col nzSpan="">
837
                   <nz-input-group nzAddOnAfter="秒">
831
                   <nz-input-group nzAddOnAfter="秒">
838
-                    <nz-input-number
839
-                      class="w100"
840
-                      [(ngModel)]="orderInfoTime"
841
-                      [nzMin]="10"
842
-                      [nzStep]="1"
843
-                      placeholder="请输入工单刷新时间"
844
-                    ></nz-input-number>
832
+                    <nz-input-number class="w100" [(ngModel)]="orderInfoTime" [nzMin]="10" [nzStep]="1" placeholder="请输入工单刷新时间"></nz-input-number>
845
                   </nz-input-group>
833
                   </nz-input-group>
846
                 </div>
834
                 </div>
847
               </div>
835
               </div>
@@ -1073,7 +1061,7 @@
1073
       <div class="fixedMenu">
1061
       <div class="fixedMenu">
1074
         <div class="menuItems">
1062
         <div class="menuItems">
1075
           <div class="others">
1063
           <div class="others">
1076
-            <div class="item" (click)="visitOrder()">回访-{{visitNum}}</div>
1064
+            <div class="item" (click)="visitOrder()">回访<span *ngIf="visitNum !== undefined">-{{visitNum}}</span></div>
1077
             <div class="item">留言-10</div>
1065
             <div class="item">留言-10</div>
1078
             <div class="item itemLink">通话</div>
1066
             <div class="item itemLink">通话</div>
1079
           </div>
1067
           </div>
@@ -2443,5 +2431,5 @@
2443
 <!-- 处理 -->
2431
 <!-- 处理 -->
2444
 <app-incident-handle [id]="coopData.id" *ngIf="handleModalShow" (closeModelHs)="closeHandleModelOrder($event)" (confirmModelHs)="confirmHandleModelOrder($event)"></app-incident-handle>
2432
 <app-incident-handle [id]="coopData.id" *ngIf="handleModalShow" (closeModelHs)="closeHandleModelOrder($event)" (confirmModelHs)="confirmHandleModelOrder($event)"></app-incident-handle>
2445
 
2433
 
2446
-<!-- 回访 -->
2447
-<app-incident-ser-visit *ngIf="visitShow" (closeModelHs)="closeVisit($event)"></app-incident-ser-visit>
2434
+<!-- 回访列表 -->
2435
+<app-incident-ser-visit [itsmData]="itsmData" *ngIf="visitShow" (closeModelHs)="closeVisit($event)"></app-incident-ser-visit>

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

@@ -1550,7 +1550,7 @@
1550
     position: fixed;
1550
     position: fixed;
1551
     top: 40%;
1551
     top: 40%;
1552
     right: 0;
1552
     right: 0;
1553
-    z-index: 8;
1553
+    z-index: 9;
1554
     border-radius: 5px 0 0 5px;
1554
     border-radius: 5px 0 0 5px;
1555
 
1555
 
1556
     &.maskFull{
1556
     &.maskFull{

+ 13 - 16
src/app/views/fuwutai/fuwutai.component.ts

@@ -287,7 +287,7 @@ export class FuwutaiComponent implements OnInit {
287
     this.unassignedList.forEach((v) => (v.checked = e));
287
     this.unassignedList.forEach((v) => (v.checked = e));
288
     this.unassignedList.forEach((item1) => {
288
     this.unassignedList.forEach((item1) => {
289
       this.unassignedListClone.forEach((item2) => {
289
       this.unassignedListClone.forEach((item2) => {
290
-        if (item1.id == item2.id) {
290
+        if (item1.data.id == item2.data.id) {
291
           item2.checked = item1.checked;
291
           item2.checked = item1.checked;
292
         }
292
         }
293
       });
293
       });
@@ -299,7 +299,7 @@ export class FuwutaiComponent implements OnInit {
299
     this.arriveList.forEach((v) => (v.checked = e));
299
     this.arriveList.forEach((v) => (v.checked = e));
300
     this.arriveList.forEach((item1) => {
300
     this.arriveList.forEach((item1) => {
301
       this.arriveListClone.forEach((item2) => {
301
       this.arriveListClone.forEach((item2) => {
302
-        if (item1.id == item2.id) {
302
+        if (item1.data.id == item2.data.id) {
303
           item2.checked = item1.checked;
303
           item2.checked = item1.checked;
304
         }
304
         }
305
       });
305
       });
@@ -318,13 +318,13 @@ export class FuwutaiComponent implements OnInit {
318
     let stateIds = [];
318
     let stateIds = [];
319
     this.unassignedList.forEach((item) => {
319
     this.unassignedList.forEach((item) => {
320
       if (item.checked) {
320
       if (item.checked) {
321
-        if (item.gdState.value == 2) {
321
+        if (item.data.gdState.value == 2) {
322
           //普通派单
322
           //普通派单
323
-          ids_types.push(`${item.id}_assign`);
324
-        } else if (!item.worker && item.gdState.value != 2) {
325
-          ids_types.push(`${item.id}_reassign`);
323
+          ids_types.push(`${item.data.id}_assign`);
324
+        } else if (!item.data.worker && item.data.gdState.value != 2) {
325
+          ids_types.push(`${item.data.id}_reassign`);
326
         }
326
         }
327
-        stateIds.push(item.gdState.id);
327
+        stateIds.push(item.data.gdState.id);
328
       }
328
       }
329
     });
329
     });
330
     this.router.navigateByUrl(
330
     this.router.navigateByUrl(
@@ -344,7 +344,7 @@ export class FuwutaiComponent implements OnInit {
344
     let ids = [];
344
     let ids = [];
345
     this.arriveList.forEach((item) => {
345
     this.arriveList.forEach((item) => {
346
       if (item.checked) {
346
       if (item.checked) {
347
-        ids.push(item.id);
347
+        ids.push(item.data.id);
348
       }
348
       }
349
     });
349
     });
350
     this.openRecallModal(ids.join("-"));
350
     this.openRecallModal(ids.join("-"));
@@ -354,13 +354,13 @@ export class FuwutaiComponent implements OnInit {
354
   batchDispatchSelect(e, id, event?) {
354
   batchDispatchSelect(e, id, event?) {
355
     event && event.stopPropagation();
355
     event && event.stopPropagation();
356
     this.unassignedList.forEach((item) => {
356
     this.unassignedList.forEach((item) => {
357
-      if (item.id == id) {
357
+      if (item.data.id == id) {
358
         item.checked = e;
358
         item.checked = e;
359
       }
359
       }
360
     });
360
     });
361
     this.unassignedList.forEach((item1) => {
361
     this.unassignedList.forEach((item1) => {
362
       this.unassignedListClone.forEach((item2) => {
362
       this.unassignedListClone.forEach((item2) => {
363
-        if (item1.id == item2.id) {
363
+        if (item1.data.id == item2.data.id) {
364
           item2.checked = item1.checked;
364
           item2.checked = item1.checked;
365
         }
365
         }
366
       });
366
       });
@@ -379,13 +379,13 @@ export class FuwutaiComponent implements OnInit {
379
   batchWithdrawalSelect(e, id, event?) {
379
   batchWithdrawalSelect(e, id, event?) {
380
     event && event.stopPropagation();
380
     event && event.stopPropagation();
381
     this.arriveList.forEach((item) => {
381
     this.arriveList.forEach((item) => {
382
-      if (item.id == id) {
382
+      if (item.data.id == id) {
383
         item.checked = e;
383
         item.checked = e;
384
       }
384
       }
385
     });
385
     });
386
     this.arriveList.forEach((item1) => {
386
     this.arriveList.forEach((item1) => {
387
       this.arriveListClone.forEach((item2) => {
387
       this.arriveListClone.forEach((item2) => {
388
-        if (item1.id == item2.id) {
388
+        if (item1.data.id == item2.data.id) {
389
           item2.checked = item1.checked;
389
           item2.checked = item1.checked;
390
         }
390
         }
391
       });
391
       });
@@ -1315,8 +1315,7 @@ export class FuwutaiComponent implements OnInit {
1315
   }
1315
   }
1316
 
1316
 
1317
   // 获取回访列表
1317
   // 获取回访列表
1318
-  visitList:any[] = [];
1319
-  visitNum:number = 0;
1318
+  visitNum:any;
1320
   getVisitList(){
1319
   getVisitList(){
1321
     let postData: any = {
1320
     let postData: any = {
1322
       idx: 0,
1321
       idx: 0,
@@ -1334,7 +1333,6 @@ export class FuwutaiComponent implements OnInit {
1334
     this.mainService
1333
     this.mainService
1335
       .getFetchDataList("simple/data", "incident", postData)
1334
       .getFetchDataList("simple/data", "incident", postData)
1336
       .subscribe((result) => {
1335
       .subscribe((result) => {
1337
-        this.visitList = result.list.map(v => ({...v, endDeptsName: v.endDepts ? v.endDepts.map(v => v.dept).toString() : ''}));
1338
         this.visitNum = result.totalNum;
1336
         this.visitNum = result.totalNum;
1339
       });
1337
       });
1340
   }
1338
   }
@@ -3861,7 +3859,6 @@ export class FuwutaiComponent implements OnInit {
3861
         document.onmousemove = null;
3859
         document.onmousemove = null;
3862
         document.onmouseup = null;
3860
         document.onmouseup = null;
3863
       };
3861
       };
3864
-      return false;
3865
     };
3862
     };
3866
   }
3863
   }
3867
 
3864