Ver código fonte

拉取代码

maotao 4 meses atrás
pai
commit
c44de38a28
36 arquivos alterados com 2044 adições e 223 exclusões
  1. 5 1
      src/app/share/businessData-detail-info-modal/businessData-detail-info-modal.component.html
  2. 6 8
      src/app/share/businessData-detail-modal/businessData-detail-modal.component.html
  3. 15 5
      src/app/share/businessData-detail-modal/businessData-detail-modal.component.less
  4. 18 3
      src/app/views/fuwutai/fuwutai.component.html
  5. 239 20
      src/app/views/fuwutai/fuwutai.component.ts
  6. 7 3
      src/app/views/home/home.component.html
  7. 7 1
      src/app/views/home/home.component.less
  8. 30 6
      src/app/views/new-statistics/components/custom-change-date/custom-change-date.component.ts
  9. 17 17
      src/app/views/new-statistics/components/distribution-search-more/distribution-search-more.component.html
  10. 8 3
      src/app/views/new-statistics/components/distribution-search-more/distribution-search-more.component.less
  11. 20 20
      src/app/views/new-statistics/components/search-more/search-more.component.html
  12. 8 3
      src/app/views/new-statistics/components/search-more/search-more.component.less
  13. 3 1
      src/app/views/new-statistics/distribution-inspection-statistics/incident-list/incident-list.component.html
  14. 8 8
      src/app/views/new-statistics/maintenance-statistics/category-one-statistics/category-one-statistics.component.html
  15. 140 1
      src/app/views/new-statistics/maintenance-statistics/category-one-statistics/category-one-statistics.component.ts
  16. 8 8
      src/app/views/new-statistics/maintenance-statistics/category-three-statistics/category-three-statistics.component.html
  17. 141 2
      src/app/views/new-statistics/maintenance-statistics/category-three-statistics/category-three-statistics.component.ts
  18. 8 8
      src/app/views/new-statistics/maintenance-statistics/category-two-statistics/category-two-statistics.component.html
  19. 140 1
      src/app/views/new-statistics/maintenance-statistics/category-two-statistics/category-two-statistics.component.ts
  20. 12 12
      src/app/views/new-statistics/maintenance-statistics/department-evaluate-statistics/department-evaluate-statistics.component.html
  21. 210 1
      src/app/views/new-statistics/maintenance-statistics/department-evaluate-statistics/department-evaluate-statistics.component.ts
  22. 8 8
      src/app/views/new-statistics/maintenance-statistics/department-incident-statistics/department-incident-statistics.component.html
  23. 140 1
      src/app/views/new-statistics/maintenance-statistics/department-incident-statistics/department-incident-statistics.component.ts
  24. 8 8
      src/app/views/new-statistics/maintenance-statistics/group-statistics/group-statistics.component.html
  25. 128 1
      src/app/views/new-statistics/maintenance-statistics/group-statistics/group-statistics.component.ts
  26. 17 9
      src/app/views/new-statistics/maintenance-statistics/incident-list/incident-list.component.html
  27. 43 19
      src/app/views/new-statistics/maintenance-statistics/incident-list/incident-list.component.ts
  28. 8 8
      src/app/views/new-statistics/maintenance-statistics/incident-statistics/incident-statistics.component.html
  29. 128 1
      src/app/views/new-statistics/maintenance-statistics/incident-statistics/incident-statistics.component.ts
  30. 14 5
      src/app/views/new-statistics/maintenance-statistics/synthesize-statistics/synthesize-statistics.component.ts
  31. 8 8
      src/app/views/new-statistics/maintenance-statistics/tripartite-company-statistics/tripartite-company-statistics.component.html
  32. 136 1
      src/app/views/new-statistics/maintenance-statistics/tripartite-company-statistics/tripartite-company-statistics.component.ts
  33. 12 12
      src/app/views/new-statistics/maintenance-statistics/user-evaluate-statistics/user-evaluate-statistics.component.html
  34. 204 1
      src/app/views/new-statistics/maintenance-statistics/user-evaluate-statistics/user-evaluate-statistics.component.ts
  35. 8 8
      src/app/views/new-statistics/maintenance-statistics/user-statistics/user-statistics.component.html
  36. 132 1
      src/app/views/new-statistics/maintenance-statistics/user-statistics/user-statistics.component.ts

+ 5 - 1
src/app/share/businessData-detail-info-modal/businessData-detail-info-modal.component.html

@@ -17,8 +17,9 @@
17 17
           <thead>
18 18
             <tr class="thead">
19 19
               <th nzWidth="5%">序号</th>
20
-              <th nzWidth="85%">药品名称+规格</th>
20
+              <th nzWidth="65%">药品名称+规格</th>
21 21
               <th nzWidth="10%">数量</th>
22
+							<th nzWidth="20%" *ngIf="configs.showPatientInfo==1">患者信息</th>
22 23
             </tr>
23 24
           </thead>
24 25
           <tbody>
@@ -26,6 +27,9 @@
26 27
               <td>{{i+1}}</td>
27 28
               <td>{{ data.drugsInfo }} {{ data.model }}</td>
28 29
               <td>{{ data.drugsNum }}</td>
30
+							<td nz-tooltip [nzTooltipTitle]="data.patientNames" *ngIf="configs.showPatientInfo==1">
31
+								{{ data.patientNames }}
32
+							</td>
29 33
             </tr>
30 34
           </tbody>
31 35
         </nz-table>

+ 6 - 8
src/app/share/businessData-detail-modal/businessData-detail-modal.component.html

@@ -46,20 +46,19 @@
46 46
         <thead>
47 47
           <tr class="thead">
48 48
             <th nzWidth="5%">序号</th>
49
-						<th *ngIf="configs.showPatientInfo==1">患者信息</th>
50 49
             <th nzWidth="65%">药品名称+规格</th>
51 50
             <th nzWidth="10%">数量</th>
51
+						<th nzWidth="20%" *ngIf="configs.showPatientInfo==1">患者信息</th>
52 52
           </tr>
53 53
         </thead>
54 54
         <tbody>
55 55
           <tr *ngFor="let data of drugsBugSingleList;let i = index;">
56 56
             <td>{{i+1}}</td>
57
-						<td *ngIf="configs.showPatientInfo==1">
58
-							<div>{{ data.patientName }}{{(data.bedNum)}}</div>
59
-							<div>{{data.residenceNo}}</div>
60
-						</td>
61 57
             <td>{{ data.drugsInfo }} {{ data.model }}</td>
62 58
             <td>{{ data.drugsNum }}</td>
59
+						<td nz-tooltip [nzTooltipTitle]="data.patientNames" *ngIf="configs.showPatientInfo==1">
60
+							{{ data.patientNames }}
61
+						</td>
63 62
           </tr>
64 63
         </tbody>
65 64
       </nz-table>
@@ -85,9 +84,8 @@
85 84
           <tr *ngFor="let data of drugsBugMultipleList;let i = index;" (click)="viewDetail(type, data.id)">
86 85
             <td>{{i+1}}</td>
87 86
             <td>{{ data.packid }}</td>
88
-						<td *ngIf="configs.showPatientInfo==1">
89
-							<div>{{ data.patientName }}{{(data.bedNum)}}</div>
90
-							<div>{{data.residenceNo}}</div>
87
+						<td nz-tooltip [nzTooltipTitle]="data.patientNames" *ngIf="configs.showPatientInfo==1">
88
+							{{ data.patientNames }}
91 89
 						</td>
92 90
             <td>{{ data.drugsTypeCount }}</td>
93 91
             <td>{{ data.drugsCount }}</td>

+ 15 - 5
src/app/share/businessData-detail-modal/businessData-detail-modal.component.less

@@ -68,12 +68,22 @@
68 68
   }
69 69
 
70 70
   .modalBody {
71
-		height: calc(100vh - 40px);
72
-    width: 700px;
73
-    background: #fff;
74
-    border-radius: 5px;
75
-    color: #333;
71
+		// height: calc(100vh - 40px);
72
+  //   width: 700px;
73
+  //   background: #fff;
74
+  //   border-radius: 5px;
75
+  //   color: #333;
76
+		// position: relative;
77
+		
78
+		height: calc(100vh - 100px);
79
+		min-height: 580px;
80
+		border-radius: 5px;
81
+		background: #fff;
82
+		color: #333;
83
+		font-size: 14px;
84
+		padding: 12px 20px;
76 85
 		position: relative;
86
+		padding-bottom: 70px;
77 87
     &.modalBody-search {
78 88
       width: 480px;
79 89
       min-height: 250px;

+ 18 - 3
src/app/views/fuwutai/fuwutai.component.html

@@ -118,7 +118,7 @@
118 118
                   <div class="gongdan" (click)="batchDispatchSelect(!data.checked, data.data.id, $event)">
119 119
                     <span class="left mr8" *ngIf="!flagList.itsmFlag1 && flagList.hsmsFlag1"><label nz-checkbox [ngModel]="data.checked" (ngModelChange)="batchDispatchSelect($event, data.data.id)"></label></span>
120 120
                     <span class="left gongdan_name" nz-tooltip [nzTooltipTitle]="data.data.taskType.taskName + (data.data.goodsRemark?'-'+data.data.goodsRemark:'')+'(' + data.data.gdcode + ')'">
121
-                      <strong>{{ data.data.taskType.taskName }}</strong><ng-container *ngIf="data.data.goodsRemark">-{{data.data.goodsRemark}}</ng-container>({{ data.data.gdcode }})
121
+                      <strong [ngStyle]="{color: data.taskTypeConfig.renderColors?data.taskTypeConfig.renderColors:'#333'}">{{ data.data.taskType.taskName }}</strong><ng-container *ngIf="data.data.goodsRemark">-{{data.data.goodsRemark}}</ng-container>({{ data.data.gdcode }})
122 122
                     </span>
123 123
                     <div class="right_all">
124 124
                       <span nz-tooltip [nzTooltipTitle]="data.data.worker ? data.data.worker.phone : ''" class="right_all_name">{{ data.data.worker ? data.data.worker.name : "" }}</span>
@@ -315,7 +315,7 @@
315 315
                       <label nz-checkbox [ngModel]="data.checked" (ngModelChange)="batchWithdrawalSelect($event, data.data.id)"></label>
316 316
                     </span>
317 317
                     <span class="left gongdan_name" nz-tooltip [nzTooltipTitle]="data.data.taskType.taskName + (data.data.goodsRemark?'-'+data.data.goodsRemark:'')+'(' + data.data.gdcode + ')'">
318
-                      <strong>{{ data.data.taskType.taskName }}</strong><ng-container *ngIf="data.data.goodsRemark">-{{data.data.goodsRemark}}</ng-container>({{ data.data.gdcode }})
318
+                      <strong [ngStyle]="{color: data.taskTypeConfig.renderColors?data.taskTypeConfig.renderColors:'#333'}">{{ data.data.taskType.taskName }}</strong><ng-container *ngIf="data.data.goodsRemark">-{{data.data.goodsRemark}}</ng-container>({{ data.data.gdcode }})
319 319
                     </span>
320 320
                     <div class="right_all">
321 321
                       <span nz-tooltip [nzTooltipTitle]="data.data.worker ? data.data.worker.phone : ''" class="right_all_name">{{ data.data.worker ? data.data.worker.name : "" }}</span>
@@ -500,7 +500,7 @@
500 500
                       <label nz-checkbox [ngModel]="data.checked" (ngModelChange)="batchWithdrawalSelect($event, data.data.id)"></label>
501 501
                     </span>
502 502
                     <span class="left gongdan_name" nz-tooltip [nzTooltipTitle]="data.data.taskType.taskName + (data.data.goodsRemark?'-'+data.data.goodsRemark:'')+'(' + data.data.gdcode + ')'">
503
-                      <strong>{{ data.data.taskType.taskName }}</strong><ng-container *ngIf="data.data.goodsRemark">-{{data.data.goodsRemark}}</ng-container>({{ data.data.gdcode }})
503
+                      <strong [ngStyle]="{color: data.taskTypeConfig.renderColors?data.taskTypeConfig.renderColors:'#333'}">{{ data.data.taskType.taskName }}</strong><ng-container *ngIf="data.data.goodsRemark">-{{data.data.goodsRemark}}</ng-container>({{ data.data.gdcode }})
504 504
                     </span>
505 505
                     <div class="right_all">
506 506
                       <span nz-tooltip [nzTooltipTitle]="data.data.worker ? data.data.worker.phone : ''" class="right_all_name">{{ data.data.worker ? data.data.worker.name : "" }}</span>
@@ -1847,6 +1847,21 @@
1847 1847
     (confirmDelEvent)="confirmLogout()"
1848 1848
     content="您确认要退出系统吗?"
1849 1849
   ></app-dialog-delete>
1850
+	<!-- 重复建单策略 -->
1851
+	<app-dialog-delete
1852
+	  [delModal]="repeatModal"
1853
+	  (hideDelModalEvent)="hideRepeatModal()"
1854
+	  [btnLoading]="loadingRepeat"
1855
+	  (confirmDelEvent)="confirmRepeat()"
1856
+	  [content]="repeatMsg"
1857
+	  confirmTxt="是"
1858
+	  cancelTxt="否"
1859
+	  (cancelDelEvent)="hideRepeatModal()"
1860
+	></app-dialog-delete>
1861
+	
1862
+	<!-- 是否限制业务发起时间模态框 -->
1863
+	<app-dialog-delete [delModal]="limitTimeModal" (hideDelModalEvent)="hideLimitTimeModal()" [btnLoading]="limitTimeLoading"
1864
+	(confirmDelEvent)="confirmLimitTime()" [content]="limitTimeInfo" confirmTxt="继续建单" [isShowConfirm]="isShowConfirm" [isShowConfirmInfo]="isShowConfirmInfo"></app-dialog-delete>
1850 1865
 </div>
1851 1866
 <!-- 绑定分机 -->
1852 1867
 <app-bind-extension-number [hsmsData]="hsmsData" [itsmData]="itsmData" [coopBtns]="coopBtns" [websocketLoading]="websocketLoading" *ngIf="showBindExtensionNumberModal" (confirmModal)="checkIn($event)" (cancelModal)="cancelBindExtensionNumber($event)"></app-bind-extension-number>

+ 239 - 20
src/app/views/fuwutai/fuwutai.component.ts

@@ -453,9 +453,13 @@ export class FuwutaiComponent implements OnInit {
453 453
             }
454 454
             this.showPromptModal("建单", true, "", "close");
455 455
           }
456
-        } else {
457
-          this.showPromptModal("建单", false, data["msg"]);
458
-        }
456
+        } else if(data["status"] == 1000033){
457
+					//重复建单那策略
458
+					this.repeatMsg = data["msg"];
459
+					this.showRepeatModal(postData, "transport");
460
+				}else{
461
+					this.showPromptModal("建单", false, data["msg"]);
462
+				}
459 463
       });
460 464
     }
461 465
   }
@@ -539,9 +543,13 @@ export class FuwutaiComponent implements OnInit {
539 543
         } else if(data["status"] == 100042){
540 544
           this.newOrderShow = false; //关闭弹窗
541 545
           this.showPromptModal("建单", false, data["msg"]);
542
-        } else {
543
-          this.showPromptModal("建单", false, data["msg"]);
544
-        }
546
+        } else if(data["status"] == 1000033){
547
+					//重复建单那策略
548
+					this.repeatMsg = data["msg"];
549
+					this.showRepeatModal(postData, "inspection");
550
+				}else{
551
+					this.showPromptModal("建单", false, data["msg"]);
552
+				}
545 553
       });
546 554
     }
547 555
   }
@@ -578,9 +586,13 @@ export class FuwutaiComponent implements OnInit {
578 586
           }
579 587
           this.showPromptModal("建单", true, "", "close");
580 588
         }
581
-      } else {
582
-        this.showPromptModal("建单", false, data["msg"]);
583
-      }
589
+      } else if(data["status"] == 1000033){
590
+				//重复建单那策略
591
+				this.repeatMsg = data["msg"];
592
+				this.showRepeatModal(postData, "specimen");
593
+			}else{
594
+				this.showPromptModal("建单", false, data["msg"]);
595
+			}
584 596
     });
585 597
   }
586 598
   // 其他表单提交
@@ -640,9 +652,13 @@ export class FuwutaiComponent implements OnInit {
640 652
           }
641 653
           this.showPromptModal("建单", true, "", "close");
642 654
         }
643
-      } else {
644
-        this.showPromptModal("建单", false, data["msg"]);
645
-      }
655
+      } else if(data["status"] == 1000033){
656
+				//重复建单那策略
657
+				this.repeatMsg = data["msg"];
658
+				this.showRepeatModal(postData, "other");
659
+			}else{
660
+				this.showPromptModal("建单", false, data["msg"]);
661
+			}
646 662
     });
647 663
   }
648 664
   // 万能交接表单提交
@@ -694,9 +710,13 @@ export class FuwutaiComponent implements OnInit {
694 710
           }
695 711
           this.showPromptModal("建单", true, "", "close");
696 712
         }
697
-      } else {
698
-        this.showPromptModal("建单", false, data["msg"]);
699
-      }
713
+      } else if(data["status"] == 1000033){
714
+				//重复建单那策略
715
+				this.repeatMsg = data["msg"];
716
+				this.showRepeatModal(postData, "ordinary");
717
+			}else{
718
+				this.showPromptModal("建单", false, data["msg"]);
719
+			}
700 720
     });
701 721
   }
702 722
   // 核酸打印
@@ -750,6 +770,7 @@ export class FuwutaiComponent implements OnInit {
750 770
     })
751 771
   }
752 772
   //获取检查页面任务类型
773
+	allTaskType:any;
753 774
   getInspectAndPatientTransportConfigTasktype() {
754 775
     if(!this.hsmsData.hsmsSwitch){
755 776
       return;
@@ -776,6 +797,24 @@ export class FuwutaiComponent implements OnInit {
776 797
           this.getInspectAndPatientTransportConfig(tasktype);
777 798
         }
778 799
       });
800
+			
801
+			let query = {
802
+			  idx: 0,
803
+			  sum: 9999,
804
+			  taskType: {
805
+			    hosId: {
806
+			      id: this.checkedHos
807
+			    }
808
+			  }
809
+			};
810
+			this.mainService
811
+			  .getFetchDataList("simple/data", "taskType", query)
812
+			  .subscribe((result) => {
813
+			    if (result.status == 200) {
814
+			      this.allTaskType = result.list || {};
815
+						this.initControlView();
816
+			    }
817
+			  });
779 818
   }
780 819
   // 获取检查页面信息配置
781 820
   getInspectAndPatientTransportConfig(tasktype) {
@@ -803,8 +842,10 @@ export class FuwutaiComponent implements OnInit {
803 842
         }
804 843
       });
805 844
   }
845
+	currentDept:any;
806 846
   ngOnInit() {
807 847
     this.websocketLoading = true;
848
+		this.currentDept = this.tool.getCurrentUserDept();
808 849
     this.coopBtns = this.tool.initCoopBtns(this.route);
809 850
 		// console.log(8989899,this.coopBtns)
810 851
     //防抖
@@ -866,7 +907,6 @@ export class FuwutaiComponent implements OnInit {
866 907
     this.initOrderScope();
867 908
     this.getVisitList();
868 909
     this.getMessageList();
869
-    this.initControlView();
870 910
     this.moveMenu("fixedMenu");
871 911
     this.moveMenu("fixedMenuLeft");
872 912
     this.moveMenuAll("fixedMenuAll");
@@ -2199,6 +2239,7 @@ export class FuwutaiComponent implements OnInit {
2199 2239
               item.computedReceiveFlag = this.computedReceive(item.data)
2200 2240
               item.computedEditFlag = this.computedEdit(item.data)
2201 2241
             }
2242
+						item.taskTypeConfig = this.allTaskType.find(i=>i.associationType.id == item.data.taskType.associationType.id)
2202 2243
           });
2203 2244
           this.unassignedList = unassignedList;
2204 2245
           this.batchType = false;
@@ -2225,6 +2266,7 @@ export class FuwutaiComponent implements OnInit {
2225 2266
               item.computedReceiveFlag = this.computedReceive(item.data)
2226 2267
               item.computedEditFlag = this.computedEdit(item.data)
2227 2268
             }
2269
+						item.taskTypeConfig = this.allTaskType.find(i=>i.associationType.id == item.data.taskType.associationType.id)
2228 2270
           });
2229 2271
           this.arriveList = arriveList;
2230 2272
           this.batchType1 = false;
@@ -2240,6 +2282,7 @@ export class FuwutaiComponent implements OnInit {
2240 2282
               item.computedHandleFlag = this.computedHandle(item.data)
2241 2283
               item.computedEditFlag = this.computedEdit(item.data)
2242 2284
             }
2285
+						item.taskTypeConfig = this.allTaskType.find(i=>i.associationType.id == item.data.taskType.associationType.id)
2243 2286
           });
2244 2287
           this.executionList = executionList;
2245 2288
           this.loading3 = false;
@@ -2521,6 +2564,7 @@ export class FuwutaiComponent implements OnInit {
2521 2564
       },0)
2522 2565
     }
2523 2566
     this.buildType = buildType;
2567
+		console.log(123,buildType)
2524 2568
     if(this.itsmData.mdv2Switch){
2525 2569
       if(this.buildType !== '继续建单' && this.buildType !== '编辑事件' && this.buildType !== '报修转事件'){
2526 2570
         this.resetOrderData();
@@ -4608,6 +4652,7 @@ export class FuwutaiComponent implements OnInit {
4608 4652
     console.log(this.workTypesArrange[index].value);
4609 4653
     let taskType = this.workTypesArrange[index].value.find(v => v.id == value);
4610 4654
     let patientCode;
4655
+		this.taskType = taskType.associationTypeValue
4611 4656
     if(taskType.associationTypeValue === 'inspect'){
4612 4657
       patientCode = this.patientZy;
4613 4658
       this.requiredConfigChange('validateFormZy', 'startDept', false);
@@ -4727,11 +4772,15 @@ export class FuwutaiComponent implements OnInit {
4727 4772
     }, 0)
4728 4773
   }
4729 4774
 	psValue:any;
4775
+	taskType:any;
4730 4776
   radioChangeQt(value) {
4731 4777
     //任务类型id
4732 4778
     if (value === "" || value === null) {
4733 4779
       return;
4734 4780
     }
4781
+		let index = this.tabIndex;
4782
+		let item = this.workTypesArrange[1].value.find(v => v.id == value);
4783
+		this.taskType = item.associationTypeValue
4735 4784
 		this.psValue = value
4736 4785
     this.startDeptQt = null;
4737 4786
     this.endDeptQt = null;
@@ -5009,16 +5058,184 @@ export class FuwutaiComponent implements OnInit {
5009 5058
         },
5010 5059
       },
5011 5060
     };
5012
-    this.mainService.buildOrder(postData).subscribe((result) => {
5061
+    this.mainService.buildOrder(postData).subscribe((result:any) => {
5013 5062
       this.createLoading = false;
5014 5063
       this.deptFlag = false;
5015 5064
       if (result["status"] == 200) {
5016 5065
         this.showPromptModal("建单", true, "");
5017
-      } else {
5018
-        this.showPromptModal("建单", false, result["msg"]);
5019
-      }
5066
+      } else if(result["status"] == 1000033){
5067
+				//重复建单那策略
5068
+				this.repeatMsg = result.msg;
5069
+				this.showRepeatModal(postData, "");
5070
+      }else{
5071
+				this.showPromptModal("建单", false, result["msg"]);
5072
+			}
5020 5073
     });
5021 5074
   }
5075
+	
5076
+	limitTimeModal: boolean = false; //模态框
5077
+	limitTimeInfo:string = '';
5078
+	limitTimeItem: any = {};
5079
+	hideLimitTimeModal() {
5080
+	  this.limitTimeModal = false;
5081
+	}
5082
+	
5083
+	// 建单判断时间-护士端建单通用方法
5084
+	isShowConfirm:boolean = true;
5085
+	isShowConfirmInfo:string = '';
5086
+	newOrderTimeFun(order, fun1, fun2){
5087
+	  if(this.currentDept.typeValue != 'recovery' && this.currentDept.typeValue != 'surgery'){
5088
+	    let taskTypeId = order.taskType.id;
5089
+	    let deptId = order.createDept;
5090
+	    let maskFlag = this.msg.loading("正在加载中..", {
5091
+	      nzDuration: 0,
5092
+	    }).messageId;
5093
+	    this.mainService
5094
+	    .postCustom("api", "compareWorkTime", {taskTypeId, deptId, yyTime: order.yyTime})
5095
+	    .subscribe((data) => {
5096
+	      this.msg.remove(maskFlag);
5097
+	      if(data.state == 200){
5098
+	        fun2.call(this);
5099
+	      }else{
5100
+	        fun1.call(this);
5101
+	        this.limitTimeModal = true;
5102
+	        this.limitTimeItem = {taskTypeId, fun1, fun2};
5103
+	        this.limitTimeInfo = data.data.remark;
5104
+	        this.isShowConfirm = data.data.limitType == 1;
5105
+	        if(this.isShowConfirm || data.data.limitNum == 1){
5106
+	          this.isShowConfirmInfo = '';
5107
+	        }else{
5108
+	          this.isShowConfirmInfo = '请在规定时间内下单';
5109
+	        }
5110
+	      }
5111
+	    })
5112
+	  }else{
5113
+	    fun2.call(this);
5114
+	  }
5115
+	}
5116
+	
5117
+	repeatModal: boolean = false; //删除模态框
5118
+	repeatMsg = "";
5119
+	loadingRepeat = false;
5120
+	repeatPostData;
5121
+	sourceType;
5122
+	isYuyue;
5123
+	showRepeatModal(postData, sourceType, yuyue?) {
5124
+	  this.repeatModal = true;
5125
+	  this.repeatPostData = postData;
5126
+	  this.sourceType = sourceType;
5127
+	  this.isYuyue = yuyue ? yuyue : false;
5128
+	}
5129
+	hideRepeatModal() {
5130
+	  this.repeatModal = false;
5131
+	  this.btnLoading = false;
5132
+	}
5133
+	confirmRepeat() {
5134
+	  this.loadingRepeat = true;
5135
+	  this.repeatPostData.tipsCreateOder = 1;
5136
+	  this.newOrderTimeFun(this.repeatPostData.workOrder, () => {
5137
+	    this.loadingRepeat = false;
5138
+	    this.repeatModal = false;
5139
+	  }, () => {
5140
+	    this.mainService
5141
+	    .postCustom(
5142
+	      "api",
5143
+	      this.isYuyue ? "appointmentOrder" : "startOrder",
5144
+	      this.repeatPostData
5145
+	    )
5146
+	    .subscribe((data) => {
5147
+	      this.loadingRepeat = false;
5148
+	      this.repeatModal = false;
5149
+	      if(this.currentDept.typeValue == 'recovery'){
5150
+	        this.mainService.postCustom("api", "clearPatientRecoveryDept", {patientCode: this.repeatPostData.workOrder.patient.patientCode}).subscribe((resultData) => {
5151
+	          this.confirmRepeatFun(data);
5152
+	        });
5153
+	      }else{
5154
+	        this.confirmRepeatFun(data);
5155
+	      }
5156
+	    });
5157
+	  })
5158
+	}
5159
+	confirmRepeatFun(data){
5160
+	  if (this.sourceType === "specimen") {
5161
+	    // 标本建单
5162
+	    if (data.status == 200 && (this.taskType == "other" || this.taskType == "ordinary")) {
5163
+	      this.showPromptModal("创建", true, "", this.taskType);
5164
+	    } else if (data.status == 200 && this.taskType == "bb") {
5165
+	      this.showPromptModal("创建", true, "", "bb");
5166
+	    } else if (this.taskType == "bb" && data.status == 100043) {
5167
+	      this.showPromptModal("创建", true, data.msg);
5168
+	    } else {
5169
+	      this.showPromptModal("创建", false, data.msg);
5170
+	    }
5171
+	  } else if (this.sourceType === "other" || this.sourceType === "ordinary") {
5172
+			// 其他建单
5173
+	    if (data.status == 200 && (this.taskType == "other" || this.taskType == "ordinary")) {
5174
+	      this.showPromptModal("创建", true, "", this.taskType);
5175
+	    } else if (data.status == 200 && this.taskType == "bb") {
5176
+	      this.showPromptModal("创建", true, "", "bb");
5177
+	    } else if (this.taskType == "bb" && data.status == 100043) {
5178
+	      this.showPromptModal("创建", true, data.msg);
5179
+	    } else {
5180
+	      this.showPromptModal("创建", false, data.msg);
5181
+	    }
5182
+	  } else if (this.sourceType === "transport") {
5183
+	    // 转运
5184
+	    if (data.status == 200) {
5185
+	      this.showPromptModal("创建", true, "");
5186
+	    } else if (data.status == 100042) {
5187
+	      this.showPromptModal("创建", false, data.msg);
5188
+	    } else {
5189
+	      this.showPromptModal("创建", false, data.msg);
5190
+	    }
5191
+	  } else if (this.sourceType === "accompany1") {
5192
+	    // 陪检
5193
+	    if (data.status == 200) {
5194
+	      this.showPromptModal("创建", true, "");
5195
+	    } else if (data.status == 100042) {
5196
+	      this.showPromptModal("创建", false, data.msg);
5197
+	    } else {
5198
+	      this.showPromptModal("创建", false, data.msg);
5199
+	    }
5200
+	  } else if (this.sourceType === "accompany2") {
5201
+	    // 陪检
5202
+	    if (data.status == 200) {
5203
+	      this.showPromptModal("创建", true, "");
5204
+	    } else if (data.status == 100042) {
5205
+	      this.showPromptModal("创建", false, data.msg);
5206
+	    } else {
5207
+	      this.showPromptModal("创建", false, data.msg);
5208
+	    }
5209
+	  } else if (this.sourceType === "accompany3") {
5210
+	    // 陪检
5211
+	    if (data.status == 200) {
5212
+	      this.showPromptModal("创建", true, "");
5213
+	    } else if (data.status == 100042) {
5214
+	      this.showPromptModal("创建", false, data.msg);
5215
+	    } else {
5216
+	      this.showPromptModal("创建", false, data.msg);
5217
+	    }
5218
+	  } else if (this.sourceType === "accompany4") {
5219
+	    // 陪检
5220
+	    if (data.status == 200) {
5221
+	      this.showPromptModal("创建", true, "");
5222
+	    } else if (data.status == 100042) {
5223
+	      this.showPromptModal("创建", false, data.msg);
5224
+	    } else {
5225
+	      this.showPromptModal("创建", false, data.msg);
5226
+	    }
5227
+	  } else if (this.sourceType === "accompany5") {
5228
+	    // 陪检
5229
+	    if (data.status == 200) {
5230
+	      this.showPromptModal("创建", true, "");
5231
+	    } else if (data.status == 100042) {
5232
+	      this.showPromptModal("创建", false, data.msg);
5233
+	    } else {
5234
+	      this.showPromptModal("创建", false, data.msg);
5235
+	    }
5236
+	  }
5237
+	}
5238
+	
5022 5239
   // 隐藏选择转入科室的模态框
5023 5240
   deptFlagHand(e) {
5024 5241
     this.deptFlag = false;
@@ -5149,6 +5366,8 @@ export class FuwutaiComponent implements OnInit {
5149 5366
     } else if (this.currentRTab === 3) {
5150 5367
       this.getDictionaryList();
5151 5368
     }
5369
+		this.newOrderShow = false;
5370
+		this.newOrderShowOpen = false;
5152 5371
     this.fixedTab = "";
5153 5372
     this.fixedMenuShangla();
5154 5373
   }

+ 7 - 3
src/app/views/home/home.component.html

@@ -214,10 +214,14 @@
214 214
                   </div>
215 215
                   <div [title]="data.evaluationContent"
216 216
                     [ngClass]="{'over':true,'noOver':(isOpen&&coopOpenId==data.id)}">
217
-                    意见内容:{{data.evaluationContent}}</div>
218
-                  <div class="up">
217
+                    评价内容:{{data.evaluationContent}}</div>
218
+                  <!-- <div class="up">
219 219
                     <span (click)="more(data.id)">{{(isOpen&&coopOpenId==data.id)?'收起 <<':'展开>>'}}</span>
220
-                  </div>
220
+                  </div> -->
221
+									 <div class="flex">
222
+										 <div>评价时间:{{data.evaluationTime|date:'yyyy-MM-dd HH:mm:ss' || ''}}</div>
223
+										 <div>评价等级:{{data.evaluationLevel ? data.evaluationLevel.name : '-'}}</div>
224
+									 </div>
221 225
                   <div class="time">发起时间:{{data.startTime|date:'yyyy-MM-dd HH:mm:ss'}}</div>
222 226
                 </div>
223 227
                 <div class="btns display_flex">

+ 7 - 1
src/app/views/home/home.component.less

@@ -421,7 +421,12 @@
421 421
                   width: 100%;
422 422
                   padding: 16px 16px 8px 16px;
423 423
                   font-size: 12px;
424
-
424
+									
425
+									.flex{
426
+										display: flex;
427
+										justify-content: space-between;
428
+									}
429
+									
425 430
                   .title {
426 431
                     color: #333;
427 432
 
@@ -445,6 +450,7 @@
445 450
                     &.noOver {
446 451
                       -webkit-line-clamp: unset;
447 452
                     }
453
+										
448 454
                   }
449 455
 
450 456
                   .up {

+ 30 - 6
src/app/views/new-statistics/components/custom-change-date/custom-change-date.component.ts

@@ -1,17 +1,22 @@
1
-import { Component, OnInit, Input } from '@angular/core';
1
+import { Component, OnInit, Input, OnDestroy } from '@angular/core';
2 2
 import { differenceInCalendarDays, endOfMonth, endOfYear, startOfDay, format, endOfDay, startOfMonth, startOfYear } from "date-fns";
3 3
 import { DateService } from 'src/app/services/date.service';
4
+import { ActivatedRoute, Router, NavigationEnd  } from '@angular/router';
5
+import { debounceTime, filter } from 'rxjs/operators';
4 6
 
5 7
 @Component({
6 8
   selector: 'app-custom-change-date',
7 9
   templateUrl: './custom-change-date.component.html',
8 10
   styleUrls: ['./custom-change-date.component.less']
9 11
 })
10
-export class CustomChangeDateComponent implements OnInit {
12
+export class CustomChangeDateComponent implements OnInit, OnDestroy {
11 13
   @Input() isShowType: boolean = true;
14
+	@Input() dateData1: any;
15
+	@Input() dateData2: any;
12 16
   @Input() name: string = '建单时间';
13 17
   constructor(
14 18
     private dateService: DateService,
19
+		private router: Router,
15 20
   ) { }
16 21
 
17 22
   dateType: string = "day"; //选中时间维度
@@ -68,13 +73,32 @@ export class CustomChangeDateComponent implements OnInit {
68 73
   yearRangeEnd: any; //发起时间 年 止
69 74
 
70 75
   ngOnInit() {
71
-    this.resetByDate();
76
+		this.resetByDate();
77
+		this.router.events
78
+		  .pipe(filter(event => event instanceof NavigationEnd))
79
+		  .subscribe((event: NavigationEnd) => {
80
+		    if(event.urlAfterRedirects.endsWith('/incidentList')){
81
+					this.resetByDate();
82
+		    }
83
+		  });
72 84
   }
73
-
85
+	
86
+	ngOnDestroy(){
87
+		// this.dateData1 = null 
88
+		// this.dateData2 = null
89
+	}
90
+	
74 91
   // 根据时间区间重置
75 92
   resetByDate(){
76
-    this.dateType = 'day';
77
-    this.changeDateType(this.dateType, 6);
93
+		setTimeout(_=>{
94
+			console.log(2222,this.dateData1, this.dateData2)
95
+			if(this.dateData1 && this.dateData2){
96
+				this.dateRange = [this.dateData1, this.dateData2]
97
+			}else{
98
+				this.dateType = 'day';
99
+				this.changeDateType(this.dateType, 6);
100
+			}
101
+		})
78 102
   }
79 103
 
80 104
   // 根据时间区间初始化

+ 17 - 17
src/app/views/new-statistics/components/distribution-search-more/distribution-search-more.component.html

@@ -6,7 +6,7 @@
6 6
       <form nz-form [formGroup]="validateForm" class="addForm">
7 7
         <nz-form-item [hidden]="!fieldConfig.config.group">
8 8
           <nz-form-label [nzSpan]="6" nzFor="groupId">分<span style="visibility: hidden;">囧囧</span>组</nz-form-label>
9
-          <nz-form-control [nzSpan]="18" nzErrorTip="请选择分组!">
9
+          <nz-form-control [nzSpan]="16" nzErrorTip="请选择分组!">
10 10
             <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear nzServerSearch nzShowSearch (nzOnSearch)="changeGroupInp($event)" formControlName="groupId" nzPlaceHolder="请选择分组" (nzOpenChange)="openChangeGroup($event)" (ngModelChange)="changeGroup($event)">
11 11
               <ng-container *ngFor="let option of groupList">
12 12
                 <nz-option *ngIf="!isLoading" [nzLabel]="option.groupName" [nzValue]="option.id"></nz-option>
@@ -20,7 +20,7 @@
20 20
 
21 21
         <nz-form-item [hidden]="!fieldConfig.config.groupAndUser">
22 22
           <nz-form-label [nzSpan]="6" nzFor="groupId">分<span style="visibility: hidden;">囧囧</span>组</nz-form-label>
23
-          <nz-form-control [nzSpan]="18" nzErrorTip="请选择分组!">
23
+          <nz-form-control [nzSpan]="16" nzErrorTip="请选择分组!">
24 24
             <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear nzServerSearch nzShowSearch (nzOnSearch)="changeGroupInp($event)" formControlName="groupId" nzPlaceHolder="请选择分组" (nzOpenChange)="openChangeGroup($event)" (ngModelChange)="changeGroup($event)">
25 25
               <ng-container *ngFor="let option of groupList">
26 26
                 <nz-option *ngIf="!isLoading" [nzLabel]="option.groupName" [nzValue]="option.id"></nz-option>
@@ -34,7 +34,7 @@
34 34
 
35 35
         <nz-form-item [hidden]="!fieldConfig.config.groupAndUser">
36 36
           <nz-form-label [nzSpan]="6" nzFor="userId">人<span style="visibility: hidden;">囧囧</span>员</nz-form-label>
37
-          <nz-form-control [nzSpan]="18" nzErrorTip="请选择人员!">
37
+          <nz-form-control [nzSpan]="16" nzErrorTip="请选择人员!">
38 38
             <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear nzServerSearch nzShowSearch (nzOnSearch)="changeUserInp($event)" formControlName="userId" nzPlaceHolder="请选择人员" (nzOpenChange)="openChangeUser($event)" (ngModelChange)="setIsSelecting(true)">
39 39
               <ng-container *ngFor="let option of userList">
40 40
                 <nz-option *ngIf="!isLoading" [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
@@ -48,7 +48,7 @@
48 48
 
49 49
         <nz-form-item [hidden]="!fieldConfig.config.statisticsType">
50 50
           <nz-form-label [nzSpan]="6" nzFor="statisticsTypeId">统计分类</nz-form-label>
51
-          <nz-form-control [nzSpan]="18" nzErrorTip="请选择统计分类!">
51
+          <nz-form-control [nzSpan]="16" nzErrorTip="请选择统计分类!">
52 52
             <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear formControlName="statisticsTypeId" nzPlaceHolder="请选择统计分类">
53 53
               <ng-container *ngFor="let option of statisticsTypeList">
54 54
                 <nz-option *ngIf="!isLoading" [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
@@ -62,7 +62,7 @@
62 62
 
63 63
         <nz-form-item [hidden]="!fieldConfig.config.taskType">
64 64
           <nz-form-label [nzSpan]="6" nzFor="taskTypeId">任务类型</nz-form-label>
65
-          <nz-form-control [nzSpan]="18" nzErrorTip="请选择任务类型!">
65
+          <nz-form-control [nzSpan]="16" nzErrorTip="请选择任务类型!">
66 66
             <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear nzServerSearch nzShowSearch (nzOnSearch)="changeTaskTypeInp($event)" formControlName="taskTypeId" nzPlaceHolder="请选择任务类型" (nzOpenChange)="openChangeTaskType($event)" (ngModelChange)="setIsSelecting(true)">
67 67
               <ng-container *ngFor="let option of taskTypeList">
68 68
                 <nz-option *ngIf="!isLoading" [nzLabel]="option.hosId.hosName + '-' + option.taskName" [nzValue]="option.id"></nz-option>
@@ -76,7 +76,7 @@
76 76
 
77 77
         <nz-form-item [hidden]="!fieldConfig.config.building">
78 78
           <nz-form-label [nzSpan]="6" nzFor="buildingId">楼<span style="visibility: hidden;">囧囧</span>栋</nz-form-label>
79
-          <nz-form-control [nzSpan]="18" nzErrorTip="请选择楼栋!">
79
+          <nz-form-control [nzSpan]="16" nzErrorTip="请选择楼栋!">
80 80
             <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear nzServerSearch nzShowSearch (nzOnSearch)="changeBuildingInp($event)" formControlName="buildingId" nzPlaceHolder="请选择楼栋" (nzOpenChange)="openChangeBuilding($event)" (ngModelChange)="setIsSelecting(true)">
81 81
               <ng-container *ngFor="let option of buildingList">
82 82
                 <nz-option *ngIf="!isLoading" [nzLabel]="option.hosName + '-' + option.buildingName" [nzValue]="option.id"></nz-option>
@@ -90,7 +90,7 @@
90 90
 
91 91
         <nz-form-item [hidden]="!fieldConfig.config.dept">
92 92
           <nz-form-label [nzSpan]="6" nzFor="deptId">科<span style="visibility: hidden;">囧囧</span>室</nz-form-label>
93
-          <nz-form-control [nzSpan]="18" nzErrorTip="请选择科室!">
93
+          <nz-form-control [nzSpan]="16" nzErrorTip="请选择科室!">
94 94
             <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear nzServerSearch nzShowSearch (nzOnSearch)="changeRepairDeptInp($event)" formControlName="deptId" nzPlaceHolder="请选择科室" (nzOpenChange)="openChangeRepairDept($event)" (ngModelChange)="setIsSelecting(true)">
95 95
               <ng-container *ngFor="let option of deptList">
96 96
                 <nz-option *ngIf="!isLoading" [nzLabel]="option.hospital.hosName + '-' + option.dept" [nzValue]="option.id"></nz-option>
@@ -104,7 +104,7 @@
104 104
 				
105 105
 				<nz-form-item [hidden]="!fieldConfig.config.source">
106 106
 				  <nz-form-label [nzSpan]="6" nzFor="sourceId">来<span style="visibility: hidden;">囧囧</span>源</nz-form-label>
107
-				  <nz-form-control [nzSpan]="18" nzErrorTip="请选择来源!">
107
+				  <nz-form-control [nzSpan]="16" nzErrorTip="请选择来源!">
108 108
 				    <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear formControlName="sourceId" nzPlaceHolder="请选择来源">
109 109
 				      <ng-container *ngFor="let option of sourceList">
110 110
 				        <nz-option [nzLabel]="option.name " [nzValue]="option.name"></nz-option>
@@ -114,8 +114,8 @@
114 114
 				</nz-form-item>
115 115
 				
116 116
 				<nz-form-item [hidden]="!fieldConfig.config.minute">
117
-				  <nz-form-label [nzSpan]="7" nzFor="minuteClose">分钟内关单</nz-form-label>
118
-				  <nz-form-control [nzSpan]="17" nzErrorTip="请输入分钟内关单!">
117
+				  <nz-form-label [nzSpan]="6" nzFor="minuteClose">分钟内关单</nz-form-label>
118
+				  <nz-form-control [nzSpan]="16" nzErrorTip="请输入分钟内关单!">
119 119
 						<nz-input-number
120 120
 							class="width-200"
121 121
 							formControlName="minuteClose"
@@ -130,7 +130,7 @@
130 130
 				
131 131
 				<nz-form-item [hidden]="!fieldConfig.config.special">
132 132
 				  <nz-form-label [nzSpan]="8" nzFor="specialId">特殊情况关闭</nz-form-label>
133
-				  <nz-form-control [nzSpan]="16" nzErrorTip="请选择特殊情况关闭!">
133
+				  <nz-form-control [nzSpan]="14" nzErrorTip="请选择特殊情况关闭!">
134 134
 				    <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear formControlName="specialId" nzPlaceHolder="请选择特殊情况关闭">
135 135
 				      <ng-container *ngFor="let option of specialList">
136 136
 				        <nz-option [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
@@ -141,7 +141,7 @@
141 141
 				
142 142
 				<nz-form-item [hidden]="!fieldConfig.config.overtime">
143 143
 				  <nz-form-label [nzSpan]="6" nzFor="overtimeId">超时工单</nz-form-label>
144
-				  <nz-form-control [nzSpan]="18" nzErrorTip="请选择超时工单!">
144
+				  <nz-form-control [nzSpan]="16" nzErrorTip="请选择超时工单!">
145 145
 				    <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear formControlName="overtimeId" nzPlaceHolder="请选择超时工单">
146 146
 				      <ng-container *ngFor="let option of overtimeList">
147 147
 				        <nz-option [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
@@ -152,7 +152,7 @@
152 152
 				
153 153
 				<nz-form-item [hidden]="!fieldConfig.config.abnormal">
154 154
 				  <nz-form-label [nzSpan]="6" nzFor="abnormalId">异常工单</nz-form-label>
155
-				  <nz-form-control [nzSpan]="18" nzErrorTip="请选择异常工单!">
155
+				  <nz-form-control [nzSpan]="16" nzErrorTip="请选择异常工单!">
156 156
 				    <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear formControlName="abnormalId" nzPlaceHolder="请选择异常工单">
157 157
 				      <ng-container *ngFor="let option of abnormalList">
158 158
 				        <nz-option [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
@@ -163,7 +163,7 @@
163 163
 				
164 164
 				<nz-form-item [hidden]="!fieldConfig.config.evaluate">
165 165
 				  <nz-form-label [nzSpan]="6" nzFor="evaluateId">评<span style="visibility: hidden;">囧囧</span>价</nz-form-label>
166
-				  <nz-form-control [nzSpan]="18" nzErrorTip="请选择评价!">
166
+				  <nz-form-control [nzSpan]="16" nzErrorTip="请选择评价!">
167 167
 				    <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear formControlName="evaluateId" nzPlaceHolder="请选择评价">
168 168
 				      <ng-container *ngFor="let option of evaluateList">
169 169
 				        <nz-option *ngIf="!isLoading" [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
@@ -177,7 +177,7 @@
177 177
 				
178 178
 				<nz-form-item [hidden]="!fieldConfig.config.executeUser">
179 179
 				  <nz-form-label [nzSpan]="6" nzFor="executeUserId">执行人</nz-form-label>
180
-				  <nz-form-control [nzSpan]="18" nzErrorTip="请选择人员!">
180
+				  <nz-form-control [nzSpan]="16" nzErrorTip="请选择人员!">
181 181
 				    <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear nzServerSearch nzShowSearch (nzOnSearch)="changeExecuteUserInp($event)" formControlName="executeUserId" nzPlaceHolder="请选择人员" (nzOpenChange)="openChangeExecuteUser($event)" (ngModelChange)="setIsSelecting(true)">
182 182
 				      <ng-container *ngFor="let option of executeUserList">
183 183
 				        <nz-option *ngIf="!isLoading" [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
@@ -191,7 +191,7 @@
191 191
 				
192 192
 				<nz-form-item [hidden]="!fieldConfig.config.timeFrame">
193 193
 				  <nz-form-label [nzSpan]="6" nzFor="timeFrameId">时<span style="visibility: hidden;">囧囧</span>段</nz-form-label>
194
-				  <nz-form-control [nzSpan]="18" nzErrorTip="请选择人员!">
194
+				  <nz-form-control [nzSpan]="16" nzErrorTip="请选择人员!">
195 195
 				    <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear nzShowSearch formControlName="timeFrameId" nzPlaceHolder="请选择时段">
196 196
 				      <ng-container *ngFor="let option of timeFrameList">
197 197
 				        <nz-option [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
@@ -202,7 +202,7 @@
202 202
 				
203 203
 				<nz-form-item [hidden]="!fieldConfig.config.code">
204 204
 				  <nz-form-label [nzSpan]="6" nzFor="codeNum">单<span style="visibility: hidden;">囧囧</span>号</nz-form-label>
205
-				  <nz-form-control [nzSpan]="18" nzErrorTip="请输入单号!">
205
+				  <nz-form-control [nzSpan]="16" nzErrorTip="请输入单号!">
206 206
 				    <input class="width-200" type="text" placeHolder="请输入单号" nz-input formControlName="codeNum" />
207 207
 				  </nz-form-control>
208 208
 				</nz-form-item>

+ 8 - 3
src/app/views/new-statistics/components/distribution-search-more/distribution-search-more.component.less

@@ -82,18 +82,23 @@
82 82
   // 新增
83 83
   &.add {
84 84
     .modalBody {
85
-      width: 400px;
85
+      width: 80%;
86 86
       padding: 0 24px;
87 87
 
88 88
       .content {
89 89
         width: 100%;
90
-        padding: 10px 24px 0;
90
+        padding: 10px 10px 0;
91 91
 				 max-height: calc(100vh - 120px);
92 92
 				 overflow-y: auto;
93 93
 
94 94
         .addForm {
95
+          display: flex;
96
+          flex-wrap: wrap;
97
+          justify-content: start;
95 98
           .ant-form-item {
96
-            margin-bottom: 14px;
99
+          	width: 33%;
100
+            // margin-bottom: 14px;
101
+						margin: 0 3px 14px 0;
97 102
             .ant-form-item-label {
98 103
               text-align: left;
99 104
             }

+ 20 - 20
src/app/views/new-statistics/components/search-more/search-more.component.html

@@ -6,7 +6,7 @@
6 6
       <form nz-form [formGroup]="validateForm" class="addForm">
7 7
         <nz-form-item [hidden]="!fieldConfig.config.workHourParent">
8 8
           <nz-form-label [nzSpan]="6" nzFor="workHourParentId">工时大类</nz-form-label>
9
-          <nz-form-control [nzSpan]="18" nzErrorTip="请选择工时大类!">
9
+          <nz-form-control [nzSpan]="16" nzErrorTip="请选择工时大类!">
10 10
             <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear nzServerSearch nzShowSearch (nzOnSearch)="changeWorkHourParentInp($event)" formControlName="workHourParentId" nzPlaceHolder="请选择工时大类" (nzOpenChange)="openChangeWorkHourParent($event)" (ngModelChange)="setIsSelecting(true)">
11 11
               <ng-container *ngFor="let option of workHourParentList">
12 12
                 <nz-option *ngIf="!isLoading" [nzLabel]="option.workName" [nzValue]="option.id"></nz-option>
@@ -20,7 +20,7 @@
20 20
 				
21 21
 				<nz-form-item [hidden]="!fieldConfig.config.workHourSmall">
22 22
 				  <nz-form-label [nzSpan]="6" nzFor="workHourSmallId">工时小类</nz-form-label>
23
-				  <nz-form-control [nzSpan]="18" nzErrorTip="请选择工时小类!">
23
+				  <nz-form-control [nzSpan]="16" nzErrorTip="请选择工时小类!">
24 24
 				    <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear nzServerSearch nzShowSearch (nzOnSearch)="changeWorkHourSmallInp($event)" formControlName="workHourSmallId" nzPlaceHolder="请选择工时小类" (nzOpenChange)="openChangeWorkHourSmall($event)" (ngModelChange)="setIsSelecting(true)">
25 25
 				      <ng-container *ngFor="let option of workHourSmallList">
26 26
 				        <nz-option *ngIf="!isLoading" [nzLabel]="option.workName" [nzValue]="option.id"></nz-option>
@@ -34,7 +34,7 @@
34 34
 				
35 35
         <nz-form-item [hidden]="!fieldConfig.config.group">
36 36
           <nz-form-label [nzSpan]="6" nzFor="groupId">维修分组</nz-form-label>
37
-          <nz-form-control [nzSpan]="18" nzErrorTip="请选择维修分组!">
37
+          <nz-form-control [nzSpan]="16" nzErrorTip="请选择维修分组!">
38 38
             <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear nzServerSearch nzShowSearch (nzOnSearch)="changeGroupInp($event)" formControlName="groupId" nzPlaceHolder="请选择维修分组" (nzOpenChange)="openChangeGroup($event)" (ngModelChange)="changeGroup($event)">
39 39
               <ng-container *ngFor="let option of groupList">
40 40
                 <nz-option *ngIf="!isLoading" [nzLabel]="option.groupName" [nzValue]="option.id"></nz-option>
@@ -48,7 +48,7 @@
48 48
 
49 49
         <nz-form-item [hidden]="!fieldConfig.config.groupAndUser">
50 50
           <nz-form-label [nzSpan]="6" nzFor="groupId">维修分组</nz-form-label>
51
-          <nz-form-control [nzSpan]="18" nzErrorTip="请选择维修分组!">
51
+          <nz-form-control [nzSpan]="16" nzErrorTip="请选择维修分组!">
52 52
             <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear nzServerSearch nzShowSearch (nzOnSearch)="changeGroupInp($event)" formControlName="groupId" nzPlaceHolder="请选择维修分组" (nzOpenChange)="openChangeGroup($event)" (ngModelChange)="changeGroup($event)">
53 53
               <ng-container *ngFor="let option of groupList">
54 54
                 <nz-option *ngIf="!isLoading" [nzLabel]="option.groupName" [nzValue]="option.id"></nz-option>
@@ -62,7 +62,7 @@
62 62
 
63 63
         <nz-form-item [hidden]="!fieldConfig.config.groupAndUser">
64 64
           <nz-form-label [nzSpan]="6" nzFor="userId">维修人员</nz-form-label>
65
-          <nz-form-control [nzSpan]="18" nzErrorTip="请选择维修人员!">
65
+          <nz-form-control [nzSpan]="16" nzErrorTip="请选择维修人员!">
66 66
             <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear nzServerSearch nzShowSearch (nzOnSearch)="changeUserInp($event)" formControlName="userId" nzPlaceHolder="请选择维修人员" (nzOpenChange)="openChangeUser($event)" (ngModelChange)="setIsSelecting(true)">
67 67
               <ng-container *ngFor="let option of userList">
68 68
                 <nz-option *ngIf="!isLoading" [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
@@ -76,7 +76,7 @@
76 76
 
77 77
         <nz-form-item [hidden]="!fieldConfig.config.category123">
78 78
           <nz-form-label [nzSpan]="6" nzFor="category1Id">一级分类</nz-form-label>
79
-          <nz-form-control [nzSpan]="18" nzErrorTip="请选择一级分类!">
79
+          <nz-form-control [nzSpan]="16" nzErrorTip="请选择一级分类!">
80 80
             <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear nzServerSearch nzShowSearch (nzOnSearch)="changeCategory1Inp($event)" formControlName="category1Id" nzPlaceHolder="请选择一级分类" (nzOpenChange)="openChangeCategory1($event)" (ngModelChange)="changeCategory1($event)">
81 81
               <ng-container *ngFor="let option of category1List">
82 82
                 <nz-option *ngIf="!isLoading" [nzLabel]="option.category" [nzValue]="option.id"></nz-option>
@@ -90,7 +90,7 @@
90 90
 
91 91
         <nz-form-item [hidden]="!fieldConfig.config.category123">
92 92
           <nz-form-label [nzSpan]="6" nzFor="category2Id">二级分类</nz-form-label>
93
-          <nz-form-control [nzSpan]="18" nzErrorTip="请选择二级分类!">
93
+          <nz-form-control [nzSpan]="16" nzErrorTip="请选择二级分类!">
94 94
             <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear nzServerSearch nzShowSearch (nzOnSearch)="changeCategory2Inp($event)" formControlName="category2Id" nzPlaceHolder="请选择二级分类" (nzOpenChange)="openChangeCategory2($event)" (ngModelChange)="changeCategory2($event)">
95 95
               <ng-container *ngFor="let option of category2List">
96 96
                 <nz-option *ngIf="!isLoading" [nzLabel]="option.category" [nzValue]="option.id"></nz-option>
@@ -104,7 +104,7 @@
104 104
 
105 105
         <nz-form-item [hidden]="!fieldConfig.config.category123">
106 106
           <nz-form-label [nzSpan]="6" nzFor="category3Id">三级分类</nz-form-label>
107
-          <nz-form-control [nzSpan]="18" nzErrorTip="请选择三级分类!">
107
+          <nz-form-control [nzSpan]="16" nzErrorTip="请选择三级分类!">
108 108
             <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear nzServerSearch nzShowSearch (nzOnSearch)="changeCategory3Inp($event)" formControlName="category3Id" nzPlaceHolder="请选择三级分类" (nzOpenChange)="openChangeCategory3($event)" (ngModelChange)="setIsSelecting(true)">
109 109
               <ng-container *ngFor="let option of category3List">
110 110
                 <nz-option *ngIf="!isLoading" [nzLabel]="option.category" [nzValue]="option.id"></nz-option>
@@ -118,7 +118,7 @@
118 118
 
119 119
         <nz-form-item [hidden]="!fieldConfig.config.source">
120 120
           <nz-form-label [nzSpan]="6" nzFor="sourceId">故障来源</nz-form-label>
121
-          <nz-form-control [nzSpan]="18" nzErrorTip="请选择故障来源!">
121
+          <nz-form-control [nzSpan]="16" nzErrorTip="请选择故障来源!">
122 122
             <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear formControlName="sourceId" nzPlaceHolder="请选择故障来源">
123 123
               <ng-container *ngFor="let option of sourceList">
124 124
                 <nz-option *ngIf="!isLoading" [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
@@ -132,7 +132,7 @@
132 132
 
133 133
         <nz-form-item [hidden]="!fieldConfig.config.buildingAndFloor">
134 134
           <nz-form-label [nzSpan]="6" nzFor="buildingId">楼<span style="visibility: hidden;">囧囧</span>栋</nz-form-label>
135
-          <nz-form-control [nzSpan]="18" nzErrorTip="请选择楼栋!">
135
+          <nz-form-control [nzSpan]="16" nzErrorTip="请选择楼栋!">
136 136
             <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear nzServerSearch nzShowSearch (nzOnSearch)="changeBuildingInp($event)" formControlName="buildingId" nzPlaceHolder="请选择楼栋" (nzOpenChange)="openChangeBuilding($event)" (ngModelChange)="changeBuilding($event)">
137 137
               <ng-container *ngFor="let option of buildingList">
138 138
                 <nz-option *ngIf="!isLoading" [nzLabel]="option.hosName + '-' + option.buildingName" [nzValue]="option.id"></nz-option>
@@ -146,7 +146,7 @@
146 146
 
147 147
         <nz-form-item [hidden]="!fieldConfig.config.buildingAndFloor">
148 148
           <nz-form-label [nzSpan]="6" nzFor="floorId">楼<span style="visibility: hidden;">囧囧</span>层</nz-form-label>
149
-          <nz-form-control [nzSpan]="18" nzErrorTip="请选择楼层!">
149
+          <nz-form-control [nzSpan]="16" nzErrorTip="请选择楼层!">
150 150
             <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear nzServerSearch nzShowSearch (nzOnSearch)="changeFloorInp($event)" formControlName="floorId" nzPlaceHolder="请选择楼层" (nzOpenChange)="openChangeFloor($event)" (ngModelChange)="setIsSelecting(true)">
151 151
               <ng-container *ngFor="let option of floorList">
152 152
                 <nz-option *ngIf="!isLoading" [nzLabel]="option.floorName" [nzValue]="option.id"></nz-option>
@@ -160,7 +160,7 @@
160 160
 
161 161
         <nz-form-item [hidden]="!fieldConfig.config.company">
162 162
           <nz-form-label [nzSpan]="6" nzFor="companyId">三方公司</nz-form-label>
163
-          <nz-form-control [nzSpan]="18" nzErrorTip="请选择三方公司!">
163
+          <nz-form-control [nzSpan]="16" nzErrorTip="请选择三方公司!">
164 164
             <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear nzServerSearch nzShowSearch (nzOnSearch)="changeCompanyInp($event)" formControlName="companyId" nzPlaceHolder="请选择三方公司" (nzOpenChange)="openChangeCompany($event)" (ngModelChange)="setIsSelecting(true)">
165 165
               <ng-container *ngFor="let option of companyList">
166 166
                 <nz-option *ngIf="!isLoading" [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
@@ -174,7 +174,7 @@
174 174
 
175 175
         <nz-form-item [hidden]="!fieldConfig.config.repairDept">
176 176
           <nz-form-label [nzSpan]="6" nzFor="repairDeptId">报修科室</nz-form-label>
177
-          <nz-form-control [nzSpan]="18" nzErrorTip="请选择报修科室!">
177
+          <nz-form-control [nzSpan]="16" nzErrorTip="请选择报修科室!">
178 178
             <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear nzServerSearch nzShowSearch (nzOnSearch)="changeRepairDeptInp($event)" formControlName="repairDeptId" nzPlaceHolder="请选择报修科室" (nzOpenChange)="openChangeRepairDept($event)" (ngModelChange)="setIsSelecting(true)">
179 179
               <ng-container *ngFor="let option of repairDeptList">
180 180
                 <nz-option *ngIf="!isLoading" [nzLabel]="option.hospital.hosName + '-' + option.dept" [nzValue]="option.id"></nz-option>
@@ -188,7 +188,7 @@
188 188
 				
189 189
 				<nz-form-item [hidden]="!fieldConfig.config.repairUser">
190 190
 				  <nz-form-label [nzSpan]="6" nzFor="repairUserId">报修人</nz-form-label>
191
-				  <nz-form-control [nzSpan]="18" nzErrorTip="请选择报修人!">
191
+				  <nz-form-control [nzSpan]="16" nzErrorTip="请选择报修人!">
192 192
 				    <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear nzServerSearch nzShowSearch (nzOnSearch)="changerepairUserInp($event)" formControlName="repairUserId" nzPlaceHolder="请选择报修人" (nzOpenChange)="openChangerepairUser($event)" (ngModelChange)="setIsSelecting(true)">
193 193
 				      <ng-container *ngFor="let option of repairUserList">
194 194
 				        <nz-option *ngIf="!isLoading" [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
@@ -202,7 +202,7 @@
202 202
 				
203 203
 				<nz-form-item [hidden]="!fieldConfig.config.deptType">
204 204
 				  <nz-form-label [nzSpan]="6" nzFor="deptTypeId">科室类型</nz-form-label>
205
-				  <nz-form-control [nzSpan]="18" nzErrorTip="请选择科室类型!">
205
+				  <nz-form-control [nzSpan]="16" nzErrorTip="请选择科室类型!">
206 206
 				    <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear nzShowSearch formControlName="deptTypeId" nzPlaceHolder="请选择科室类型" (nzOpenChange)="openChangeDeptType($event)">
207 207
 				      <ng-container *ngFor="let option of deptTypeList">
208 208
 				        <nz-option *ngIf="!isLoading" [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
@@ -216,7 +216,7 @@
216 216
 				
217 217
 				<nz-form-item [hidden]="!fieldConfig.config.evaluate">
218 218
 				  <nz-form-label [nzSpan]="6" nzFor="evaluateId">评价</nz-form-label>
219
-				  <nz-form-control [nzSpan]="18" nzErrorTip="请选择评价!">
219
+				  <nz-form-control [nzSpan]="16" nzErrorTip="请选择评价!">
220 220
 				    <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear formControlName="evaluateId" nzPlaceHolder="请选择评价">
221 221
 				      <ng-container *ngFor="let option of evaluateList">
222 222
 				        <nz-option *ngIf="!isLoading" [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
@@ -230,7 +230,7 @@
230 230
 				
231 231
 				<nz-form-item [hidden]="!fieldConfig.config.consumable">
232 232
 				  <nz-form-label [nzSpan]="6" nzFor="consumableId">耗材</nz-form-label>
233
-				  <nz-form-control [nzSpan]="18" nzErrorTip="请选择耗材!">
233
+				  <nz-form-control [nzSpan]="16" nzErrorTip="请选择耗材!">
234 234
 				    <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear nzServerSearch nzShowSearch (nzOnSearch)="changeConsumableInp($event)" formControlName="consumableId" nzPlaceHolder="请选择耗材" (nzOpenChange)="openChangeConsumable($event)" (ngModelChange)="setIsSelecting(true)">
235 235
 				      <ng-container *ngFor="let option of consumableList">
236 236
 				        <nz-option *ngIf="!isLoading" [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
@@ -244,7 +244,7 @@
244 244
 				
245 245
 				<nz-form-item [hidden]="!fieldConfig.config.isHang">
246 246
 				  <nz-form-label [nzSpan]="6" nzFor="isHangId">是否挂起</nz-form-label>
247
-				  <nz-form-control [nzSpan]="18" nzErrorTip="请选择是否挂起!">
247
+				  <nz-form-control [nzSpan]="16" nzErrorTip="请选择是否挂起!">
248 248
 				    <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear formControlName="isHangId" nzPlaceHolder="请选择是否挂起">
249 249
 				      <ng-container *ngFor="let option of isHangList">
250 250
 				        <nz-option [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
@@ -255,14 +255,14 @@
255 255
 				
256 256
 				<nz-form-item [hidden]="!fieldConfig.config.code">
257 257
 				  <nz-form-label [nzSpan]="6" nzFor="codeNum">单号</nz-form-label>
258
-				  <nz-form-control [nzSpan]="18" nzErrorTip="请输入单号!">
258
+				  <nz-form-control [nzSpan]="16" nzErrorTip="请输入单号!">
259 259
 				    <input class="width-200" type="text" placeHolder="请输入单号" nz-input formControlName="codeNum" />
260 260
 				  </nz-form-control>
261 261
 				</nz-form-item>
262 262
 				
263 263
 				<nz-form-item [hidden]="!fieldConfig.config.overtime">
264 264
 				  <nz-form-label [nzSpan]="6" nzFor="overtimeId">超时工单</nz-form-label>
265
-				  <nz-form-control [nzSpan]="18" nzErrorTip="请选择超时工单!">
265
+				  <nz-form-control [nzSpan]="16" nzErrorTip="请选择超时工单!">
266 266
 				    <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear formControlName="overtimeId" nzPlaceHolder="请选择超时工单">
267 267
 				      <ng-container *ngFor="let option of overtimeList">
268 268
 				        <nz-option [nzLabel]="option.name" [nzValue]="option.id"></nz-option>

+ 8 - 3
src/app/views/new-statistics/components/search-more/search-more.component.less

@@ -82,18 +82,23 @@
82 82
   // 新增
83 83
   &.add {
84 84
     .modalBody {
85
-      width: 400px;
85
+      width: 80%;
86 86
       padding: 0 24px;
87 87
 
88 88
       .content {
89 89
         width: 100%;
90
-        padding: 10px 24px 0;
90
+        padding: 10px 10px 0;
91 91
         max-height: calc(100vh - 120px);
92 92
         overflow-y: auto;
93 93
 
94 94
         .addForm {
95
+					display: flex;
96
+					flex-wrap: wrap;
97
+					justify-content: start;
95 98
           .ant-form-item {
96
-            margin-bottom: 14px;
99
+						width: 33%;
100
+            // margin-bottom: 14px;
101
+						margin: 0 3px 14px 0;
97 102
             .ant-form-item-label {
98 103
               text-align: left;
99 104
             }

+ 3 - 1
src/app/views/new-statistics/distribution-inspection-statistics/incident-list/incident-list.component.html

@@ -33,7 +33,7 @@
33 33
 	<span>{{fieldConfig.fields.codeNumDTO}}</span>
34 34
 	<span>{{fieldConfig.fields.timeFrameDTO?.name}}</span>
35 35
 </div>
36
-<nz-table class="table" [nzData]="listOfData" nzSize="middle" [nzShowPagination]="false" [nzLoading]="loading1" [nzScroll]="{ y: tableHeight + 'px', x: '1400px'}">
36
+<nz-table class="table" [nzData]="listOfData" nzSize="middle" [nzShowPagination]="false" [nzLoading]="loading1" [nzScroll]="{ y: tableHeight + 'px', x: '1500px'}">
37 37
   <thead>
38 38
     <tr>
39 39
       <th nzWidth="150px">序号|单号</th>
@@ -44,6 +44,7 @@
44 44
       <th nzWidth="200px">时间考核</th>
45 45
       <th nzWidth="150px">状态|评价</th>
46 46
       <th nzWidth="150px">费用|积分</th>
47
+			<th nzWidth="100px">执行人</th>
47 48
     </tr>
48 49
   </thead>
49 50
   <tbody>
@@ -85,6 +86,7 @@
85 86
       	<div>{{ data.totalGrade }}{{data.totalGrade?'元':''}}</div>
86 87
       	<div>{{ data.scorePrice }}{{data.scorePrice?'分':''}}</div>
87 88
       </td>
89
+			<td>{{data.workerName}}</td>
88 90
     </tr>
89 91
   </tbody>
90 92
 </nz-table>

+ 8 - 8
src/app/views/new-statistics/maintenance-statistics/category-one-statistics/category-one-statistics.component.html

@@ -36,15 +36,15 @@
36 36
   <tbody>
37 37
     <tr *ngFor="let data of listOfData">
38 38
       <td>{{ data.category }}</td>
39
-      <td>{{ data.sum }}</td>
39
+      <td (click)="viewDetail1(data)">{{ data.sum }}</td>
40 40
       <td>{{ data.avgResponseTime }}</td>
41 41
       <td>{{ data.avgResolvedTime }}</td>
42
-      <td>{{ data.resolvedOverNum }}</td>
43
-      <td>{{ data.overTimeNum }}</td>
42
+      <td (click)="viewDetail2(data)">{{ data.resolvedOverNum }}</td>
43
+      <td (click)="viewDetail3(data)">{{ data.overTimeNum }}</td>
44 44
       <td>{{ data.consumablePrice }}</td>
45 45
       <td>{{ data.workHourPrice }}</td>
46 46
       <td>{{ data.totalPrice }}</td>
47
-      <td>{{ data.negativeNum }}</td>
47
+      <td (click)="viewDetail4(data)">{{ data.negativeNum }}</td>
48 48
       <td>{{ data.favorableRate }}</td>
49 49
     </tr>
50 50
   </tbody>
@@ -52,15 +52,15 @@
52 52
     <table class="footTable">
53 53
       <tr *ngFor="let data of listOfDataEnd">
54 54
         <td style="width: 10%">{{ data.category }}</td>
55
-        <td style="width: 9%">{{ data.sum }}</td>
55
+        <td style="width: 9%" (click)="viewDetail1(data, 'all')">{{ data.sum }}</td>
56 56
         <td style="width: 9%">{{ data.avgResponseTime }}</td>
57 57
         <td style="width: 9%">{{ data.avgResolvedTime }}</td>
58
-        <td style="width: 9%">{{ data.resolvedOverNum }}</td>
59
-        <td style="width: 9%">{{ data.overTimeNum }}</td>
58
+        <td style="width: 9%" (click)="viewDetail2(data, 'all')">{{ data.resolvedOverNum }}</td>
59
+        <td style="width: 9%" (click)="viewDetail3(data, 'all')">{{ data.overTimeNum }}</td>
60 60
         <td style="width: 9%">{{ data.consumablePrice }}</td>
61 61
         <td style="width: 9%">{{ data.workHourPrice }}</td>
62 62
         <td style="width: 9%">{{ data.totalPrice }}</td>
63
-        <td style="width: 9%">{{ data.negativeNum }}</td>
63
+        <td style="width: 9%" (click)="viewDetail4(data, 'all')">{{ data.negativeNum }}</td>
64 64
         <td style="width: 9%">{{ data.favorableRate }}</td>
65 65
       </tr>
66 66
     </table>

+ 140 - 1
src/app/views/new-statistics/maintenance-statistics/category-one-statistics/category-one-statistics.component.ts

@@ -2,7 +2,7 @@ import { TabService } from './../../services/tab.service';
2 2
 import { NzMessageService } from 'ng-zorro-antd/message';
3 3
 import { Component, OnInit, HostListener, AfterViewInit, ViewChild } from "@angular/core";
4 4
 import { MainService } from 'src/app/services/main.service';
5
-import { ActivatedRoute } from '@angular/router';
5
+import { ActivatedRoute, Router } from '@angular/router';
6 6
 import { CustomChangeDateComponent } from '../../components/custom-change-date/custom-change-date.component';
7 7
 @Component({
8 8
   selector: "app-category-one-statistics",
@@ -15,6 +15,7 @@ export class CategoryOneStatisticsComponent implements OnInit, AfterViewInit {
15 15
     private mainService: MainService,
16 16
     private message: NzMessageService,
17 17
     private route: ActivatedRoute,
18
+		private router: Router,
18 19
     private tabService: TabService,
19 20
   ) {}
20 21
 
@@ -43,7 +44,145 @@ export class CategoryOneStatisticsComponent implements OnInit, AfterViewInit {
43 44
 
44 45
     }, 0)
45 46
   }
47
+	
48
+	// 数据下钻
49
+	viewDetail1(data, type){
50
+		let query = null
51
+		if(type=='all'){
52
+			query = {
53
+				startDate: this.customChangeDateComponent.startDate || undefined,
54
+				endDate: this.customChangeDateComponent.endDate || undefined,
55
+				searchQuery:{
56
+					statusValue: 'close',
57
+				}
58
+			}
59
+		}else{
60
+			query = {
61
+				startDate: this.customChangeDateComponent.startDate || undefined,
62
+				endDate: this.customChangeDateComponent.endDate || undefined,
63
+				repairDeptId: this.fieldConfig.fields.repairDeptId || undefined,
64
+				searchQuery:{
65
+					statusValue: 'close',
66
+					hierarchy: data.hierarchy,
67
+					categoryId: data.categoryId,
68
+					groupId: this.fieldConfig.fields.userId ? undefined : (this.fieldConfig.fields.groupId || undefined),
69
+					userId: this.fieldConfig.fields.userId || undefined,
70
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
71
+					placeId: this.fieldConfig.fields.floorId || undefined,
72
+					companyId: this.fieldConfig.fields.companyId || undefined,
73
+				}
74
+			}
75
+		}
46 76
 
77
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
78
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
79
+	}
80
+	
81
+	// 数据下钻
82
+	viewDetail2(data, type){
83
+		let query = null
84
+		if(type=='all'){
85
+			query = {
86
+				startDate: this.customChangeDateComponent.startDate || undefined,
87
+				endDate: this.customChangeDateComponent.endDate || undefined,
88
+				searchQuery:{
89
+					statusValue: 'close',
90
+					overtimeId: 1,
91
+				}
92
+			}
93
+		}else{
94
+			query = {
95
+				startDate: this.customChangeDateComponent.startDate || undefined,
96
+				endDate: this.customChangeDateComponent.endDate || undefined,
97
+				repairDeptId: this.fieldConfig.fields.repairDeptId || undefined,
98
+				searchQuery:{
99
+					statusValue: 'close',
100
+					hierarchy: data.hierarchy,
101
+					categoryId: data.categoryId,
102
+					overtimeId: 1,
103
+					groupId: this.fieldConfig.fields.userId ? undefined : (this.fieldConfig.fields.groupId || undefined),
104
+					userId: this.fieldConfig.fields.userId || undefined,
105
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
106
+					placeId: this.fieldConfig.fields.floorId || undefined,
107
+					companyId: this.fieldConfig.fields.companyId || undefined,
108
+				}
109
+			}
110
+		}
111
+
112
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
113
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
114
+	}
115
+	
116
+	// 数据下钻
117
+	viewDetail3(data, type){
118
+		let query = null
119
+		if(type=='all'){
120
+			query = {
121
+				startDate: this.customChangeDateComponent.startDate || undefined,
122
+				endDate: this.customChangeDateComponent.endDate || undefined,
123
+				searchQuery:{
124
+					statusValue: 'close',
125
+					isHangId: 1,
126
+				}
127
+			}
128
+		}else{
129
+			query = {
130
+				startDate: this.customChangeDateComponent.startDate || undefined,
131
+				endDate: this.customChangeDateComponent.endDate || undefined,
132
+				repairDeptId: this.fieldConfig.fields.repairDeptId || undefined,
133
+				searchQuery:{
134
+					statusValue: 'close',
135
+					hierarchy: data.hierarchy,
136
+					categoryId: data.categoryId,
137
+					isHangId: 1,
138
+					groupId: this.fieldConfig.fields.userId ? undefined : (this.fieldConfig.fields.groupId || undefined),
139
+					userId: this.fieldConfig.fields.userId || undefined,
140
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
141
+					placeId: this.fieldConfig.fields.floorId || undefined,
142
+					companyId: this.fieldConfig.fields.companyId || undefined,
143
+				}
144
+			}
145
+		}
146
+
147
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
148
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
149
+	}
150
+	
151
+	// 数据下钻
152
+	viewDetail4(data, type){
153
+		let query = null
154
+		if(type=='all'){
155
+			query = {
156
+				startDate: this.customChangeDateComponent.startDate || undefined,
157
+				endDate: this.customChangeDateComponent.endDate || undefined,
158
+				searchQuery:{
159
+					statusValue: 'close',
160
+					evaluateId: 20424,
161
+				}
162
+			}
163
+		}else{
164
+			query = {
165
+				startDate: this.customChangeDateComponent.startDate || undefined,
166
+				endDate: this.customChangeDateComponent.endDate || undefined,
167
+				repairDeptId: this.fieldConfig.fields.repairDeptId || undefined,
168
+				searchQuery:{
169
+					statusValue: 'close',
170
+					hierarchy: data.hierarchy,
171
+					categoryId: data.categoryId,
172
+					evaluateId: 20424,
173
+					groupId: this.fieldConfig.fields.userId ? undefined : (this.fieldConfig.fields.groupId || undefined),
174
+					userId: this.fieldConfig.fields.userId || undefined,
175
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
176
+					placeId: this.fieldConfig.fields.floorId || undefined,
177
+					companyId: this.fieldConfig.fields.companyId || undefined,
178
+				}
179
+			}
180
+		}
181
+		
182
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
183
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
184
+	}
185
+	
47 186
   getQueryParams(){
48 187
     let queryParams = this.tabService.getQueryParams();
49 188
     this.tabService.clearQueryParams();

+ 8 - 8
src/app/views/new-statistics/maintenance-statistics/category-three-statistics/category-three-statistics.component.html

@@ -56,15 +56,15 @@
56 56
   <tbody>
57 57
     <tr *ngFor="let data of listOfData">
58 58
       <td>{{ data.category }}</td>
59
-      <td>{{ data.sum }}</td>
59
+      <td (click)="viewDetail1(data)">{{ data.sum }}</td>
60 60
       <td>{{ data.avgResponseTime }}</td>
61 61
       <td>{{ data.avgResolvedTime }}</td>
62
-      <td>{{ data.resolvedOverNum }}</td>
63
-      <td>{{ data.overTimeNum }}</td>
62
+      <td (click)="viewDetail2(data)">{{ data.resolvedOverNum }}</td>
63
+      <td (click)="viewDetail3(data)">{{ data.overTimeNum }}</td>
64 64
       <td>{{ data.consumablePrice }}</td>
65 65
       <td>{{ data.workHourPrice }}</td>
66 66
       <td>{{ data.totalPrice }}</td>
67
-      <td>{{ data.negativeNum }}</td>
67
+      <td (click)="viewDetail4(data)">{{ data.negativeNum }}</td>
68 68
       <td>{{ data.favorableRate }}</td>
69 69
     </tr>
70 70
   </tbody>
@@ -72,15 +72,15 @@
72 72
     <table class="footTable">
73 73
       <tr *ngFor="let data of listOfDataEnd">
74 74
         <td style="width: 10%">{{ data.category }}</td>
75
-        <td style="width: 9%">{{ data.sum }}</td>
75
+        <td style="width: 9%" (click)="viewDetail1(data, 'all')">{{ data.sum }}</td>
76 76
         <td style="width: 9%">{{ data.avgResponseTime }}</td>
77 77
         <td style="width: 9%">{{ data.avgResolvedTime }}</td>
78
-        <td style="width: 9%">{{ data.resolvedOverNum }}</td>
79
-        <td style="width: 9%">{{ data.overTimeNum }}</td>
78
+        <td style="width: 9%" (click)="viewDetail2(data, 'all')">{{ data.resolvedOverNum }}</td>
79
+        <td style="width: 9%" (click)="viewDetail3(data, 'all')">{{ data.overTimeNum }}</td>
80 80
         <td style="width: 9%">{{ data.consumablePrice }}</td>
81 81
         <td style="width: 9%">{{ data.workHourPrice }}</td>
82 82
         <td style="width: 9%">{{ data.totalPrice }}</td>
83
-        <td style="width: 9%">{{ data.negativeNum }}</td>
83
+        <td style="width: 9%" (click)="viewDetail4(data, 'all')">{{ data.negativeNum }}</td>
84 84
         <td style="width: 9%">{{ data.favorableRate }}</td>
85 85
       </tr>
86 86
     </table>

+ 141 - 2
src/app/views/new-statistics/maintenance-statistics/category-three-statistics/category-three-statistics.component.ts

@@ -4,7 +4,7 @@ import { Subject } from 'rxjs';
4 4
 import { NzMessageService } from 'ng-zorro-antd/message';
5 5
 import { Component, OnInit, HostListener, AfterViewInit, ViewChild } from "@angular/core";
6 6
 import { MainService } from 'src/app/services/main.service';
7
-import { ActivatedRoute } from '@angular/router';
7
+import { ActivatedRoute, Router } from '@angular/router';
8 8
 import { CustomChangeDateComponent } from '../../components/custom-change-date/custom-change-date.component';
9 9
 @Component({
10 10
   selector: "app-category-three-statistics",
@@ -17,6 +17,7 @@ export class CategoryThreeStatisticsComponent implements OnInit, AfterViewInit {
17 17
     private mainService: MainService,
18 18
     private message: NzMessageService,
19 19
     private route: ActivatedRoute,
20
+		private router: Router,
20 21
     private tabService: TabService,
21 22
   ) {}
22 23
 
@@ -54,7 +55,145 @@ export class CategoryThreeStatisticsComponent implements OnInit, AfterViewInit {
54 55
 
55 56
     }, 0)
56 57
   }
57
-
58
+	
59
+	// 数据下钻
60
+	viewDetail1(data, type){
61
+		let query = null
62
+		if(type=='all'){
63
+			query = {
64
+				startDate: this.customChangeDateComponent.startDate || undefined,
65
+				endDate: this.customChangeDateComponent.endDate || undefined,
66
+				searchQuery:{
67
+					statusValue: 'close',
68
+				}
69
+			}
70
+		}else{
71
+			query = {
72
+				startDate: this.customChangeDateComponent.startDate || undefined,
73
+				endDate: this.customChangeDateComponent.endDate || undefined,
74
+				repairDeptId: this.fieldConfig.fields.repairDeptId || undefined,
75
+				searchQuery:{
76
+					statusValue: 'close',
77
+					hierarchy: data.hierarchy,
78
+					categoryId: data.categoryId,
79
+					groupId: this.fieldConfig.fields.userId ? undefined : (this.fieldConfig.fields.groupId || undefined),
80
+					userId: this.fieldConfig.fields.userId || undefined,
81
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
82
+					placeId: this.fieldConfig.fields.floorId || undefined,
83
+					companyId: this.fieldConfig.fields.companyId || undefined,
84
+				}
85
+			}
86
+		}
87
+		
88
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
89
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
90
+	}
91
+	
92
+	// 数据下钻
93
+	viewDetail2(data, type){
94
+		let query = null
95
+		if(type=='all'){
96
+			query = {
97
+				startDate: this.customChangeDateComponent.startDate || undefined,
98
+				endDate: this.customChangeDateComponent.endDate || undefined,
99
+				searchQuery:{
100
+					statusValue: 'close',
101
+					overtimeId: 1,
102
+				}
103
+			}
104
+		}else{
105
+			query = {
106
+				startDate: this.customChangeDateComponent.startDate || undefined,
107
+				endDate: this.customChangeDateComponent.endDate || undefined,
108
+				repairDeptId: this.fieldConfig.fields.repairDeptId || undefined,
109
+				searchQuery:{
110
+					statusValue: 'close',
111
+					hierarchy: data.hierarchy,
112
+					categoryId: data.categoryId,
113
+					overtimeId: 1,
114
+					groupId: this.fieldConfig.fields.userId ? undefined : (this.fieldConfig.fields.groupId || undefined),
115
+					userId: this.fieldConfig.fields.userId || undefined,
116
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
117
+					placeId: this.fieldConfig.fields.floorId || undefined,
118
+					companyId: this.fieldConfig.fields.companyId || undefined,
119
+				}
120
+			}
121
+		}
122
+
123
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
124
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
125
+	}
126
+	
127
+	// 数据下钻
128
+	viewDetail3(data, type){
129
+		let query = null
130
+		if(type=='all'){
131
+			query = {
132
+				startDate: this.customChangeDateComponent.startDate || undefined,
133
+				endDate: this.customChangeDateComponent.endDate || undefined,
134
+				searchQuery:{
135
+					statusValue: 'close',
136
+					isHangId: 1,
137
+				}
138
+			}
139
+		}else{
140
+			query = {
141
+				startDate: this.customChangeDateComponent.startDate || undefined,
142
+				endDate: this.customChangeDateComponent.endDate || undefined,
143
+				repairDeptId: this.fieldConfig.fields.repairDeptId || undefined,
144
+				searchQuery:{
145
+					statusValue: 'close',
146
+					hierarchy: data.hierarchy,
147
+					categoryId: data.categoryId,
148
+					isHangId: 1,
149
+					groupId: this.fieldConfig.fields.userId ? undefined : (this.fieldConfig.fields.groupId || undefined),
150
+					userId: this.fieldConfig.fields.userId || undefined,
151
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
152
+					placeId: this.fieldConfig.fields.floorId || undefined,
153
+					companyId: this.fieldConfig.fields.companyId || undefined,
154
+				}
155
+			}
156
+		}
157
+
158
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
159
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
160
+	}
161
+	
162
+	// 数据下钻
163
+	viewDetail4(data, type){
164
+		let query = null
165
+		if(type=='all'){
166
+			query = {
167
+				startDate: this.customChangeDateComponent.startDate || undefined,
168
+				endDate: this.customChangeDateComponent.endDate || undefined,
169
+				searchQuery:{
170
+					statusValue: 'close',
171
+					evaluateId: 20424,
172
+				}
173
+			}
174
+		}else{
175
+			query = {
176
+				startDate: this.customChangeDateComponent.startDate || undefined,
177
+				endDate: this.customChangeDateComponent.endDate || undefined,
178
+				repairDeptId: this.fieldConfig.fields.repairDeptId || undefined,
179
+				searchQuery:{
180
+					statusValue: 'close',
181
+					hierarchy: data.hierarchy,
182
+					categoryId: data.categoryId,
183
+					evaluateId: 20424,
184
+					groupId: this.fieldConfig.fields.userId ? undefined : (this.fieldConfig.fields.groupId || undefined),
185
+					userId: this.fieldConfig.fields.userId || undefined,
186
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
187
+					placeId: this.fieldConfig.fields.floorId || undefined,
188
+					companyId: this.fieldConfig.fields.companyId || undefined,
189
+				}
190
+			}
191
+		}
192
+
193
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
194
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
195
+	}
196
+	
58 197
   getQueryParams(){
59 198
     let queryParams = this.tabService.getQueryParams();
60 199
     this.tabService.clearQueryParams();

+ 8 - 8
src/app/views/new-statistics/maintenance-statistics/category-two-statistics/category-two-statistics.component.html

@@ -46,15 +46,15 @@
46 46
   <tbody>
47 47
     <tr *ngFor="let data of listOfData">
48 48
       <td>{{ data.category }}</td>
49
-      <td>{{ data.sum }}</td>
49
+      <td (click)="viewDetail1(data)">{{ data.sum }}</td>
50 50
       <td>{{ data.avgResponseTime }}</td>
51 51
       <td>{{ data.avgResolvedTime }}</td>
52
-      <td>{{ data.resolvedOverNum }}</td>
53
-      <td>{{ data.overTimeNum }}</td>
52
+      <td (click)="viewDetail2(data)">{{ data.resolvedOverNum }}</td>
53
+      <td (click)="viewDetail3(data)">{{ data.overTimeNum }}</td>
54 54
       <td>{{ data.consumablePrice }}</td>
55 55
       <td>{{ data.workHourPrice }}</td>
56 56
       <td>{{ data.totalPrice }}</td>
57
-      <td>{{ data.negativeNum }}</td>
57
+      <td (click)="viewDetail4(data)">{{ data.negativeNum }}</td>
58 58
       <td>{{ data.favorableRate }}</td>
59 59
     </tr>
60 60
   </tbody>
@@ -62,15 +62,15 @@
62 62
     <table class="footTable">
63 63
       <tr *ngFor="let data of listOfDataEnd">
64 64
         <td style="width: 10%">{{ data.category }}</td>
65
-        <td style="width: 9%">{{ data.sum }}</td>
65
+        <td style="width: 9%" (click)="viewDetail1(data, 'all')">{{ data.sum }}</td>
66 66
         <td style="width: 9%">{{ data.avgResponseTime }}</td>
67 67
         <td style="width: 9%">{{ data.avgResolvedTime }}</td>
68
-        <td style="width: 9%">{{ data.resolvedOverNum }}</td>
69
-        <td style="width: 9%">{{ data.overTimeNum }}</td>
68
+        <td style="width: 9%" (click)="viewDetail2(data, 'all')">{{ data.resolvedOverNum }}</td>
69
+        <td style="width: 9%" (click)="viewDetail3(data, 'all')">{{ data.overTimeNum }}</td>
70 70
         <td style="width: 9%">{{ data.consumablePrice }}</td>
71 71
         <td style="width: 9%">{{ data.workHourPrice }}</td>
72 72
         <td style="width: 9%">{{ data.totalPrice }}</td>
73
-        <td style="width: 9%">{{ data.negativeNum }}</td>
73
+        <td style="width: 9%" (click)="viewDetail4(data, 'all')">{{ data.negativeNum }}</td>
74 74
         <td style="width: 9%">{{ data.favorableRate }}</td>
75 75
       </tr>
76 76
     </table>

+ 140 - 1
src/app/views/new-statistics/maintenance-statistics/category-two-statistics/category-two-statistics.component.ts

@@ -4,7 +4,7 @@ import { Subject } from 'rxjs';
4 4
 import { NzMessageService } from 'ng-zorro-antd/message';
5 5
 import { Component, OnInit, HostListener, AfterViewInit, ViewChild } from "@angular/core";
6 6
 import { MainService } from 'src/app/services/main.service';
7
-import { ActivatedRoute } from '@angular/router';
7
+import { ActivatedRoute, Router } from '@angular/router';
8 8
 import { CustomChangeDateComponent } from '../../components/custom-change-date/custom-change-date.component';
9 9
 @Component({
10 10
   selector: "app-category-two-statistics",
@@ -17,6 +17,7 @@ export class CategoryTwoStatisticsComponent implements OnInit, AfterViewInit {
17 17
     private mainService: MainService,
18 18
     private message: NzMessageService,
19 19
     private route: ActivatedRoute,
20
+		private router: Router,
20 21
     private tabService: TabService,
21 22
   ) {}
22 23
 
@@ -54,7 +55,145 @@ export class CategoryTwoStatisticsComponent implements OnInit, AfterViewInit {
54 55
 
55 56
     }, 0)
56 57
   }
58
+	
59
+	// 数据下钻
60
+	viewDetail1(data, type){
61
+		let query = null
62
+		if(type=='all'){
63
+			query = {
64
+				startDate: this.customChangeDateComponent.startDate || undefined,
65
+				endDate: this.customChangeDateComponent.endDate || undefined,
66
+				searchQuery:{
67
+					statusValue: 'close',
68
+				}
69
+			}
70
+		}else{
71
+			query = {
72
+				startDate: this.customChangeDateComponent.startDate || undefined,
73
+				endDate: this.customChangeDateComponent.endDate || undefined,
74
+				repairDeptId: this.fieldConfig.fields.repairDeptId || undefined,
75
+				searchQuery:{
76
+					statusValue: 'close',
77
+					hierarchy: data.hierarchy,
78
+					categoryId: data.categoryId,
79
+					groupId: this.fieldConfig.fields.userId ? undefined : (this.fieldConfig.fields.groupId || undefined),
80
+					userId: this.fieldConfig.fields.userId || undefined,
81
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
82
+					placeId: this.fieldConfig.fields.floorId || undefined,
83
+					companyId: this.fieldConfig.fields.companyId || undefined,
84
+				}
85
+			}
86
+		}
57 87
 
88
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
89
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
90
+	}
91
+	
92
+	// 数据下钻
93
+	viewDetail2(data, type){
94
+		let query = null
95
+		if(type=='all'){
96
+			query = {
97
+				startDate: this.customChangeDateComponent.startDate || undefined,
98
+				endDate: this.customChangeDateComponent.endDate || undefined,
99
+				searchQuery:{
100
+					statusValue: 'close',
101
+					overtimeId: 1,
102
+				}
103
+			}
104
+		}else{
105
+			query = {
106
+				startDate: this.customChangeDateComponent.startDate || undefined,
107
+				endDate: this.customChangeDateComponent.endDate || undefined,
108
+				repairDeptId: this.fieldConfig.fields.repairDeptId || undefined,
109
+				searchQuery:{
110
+					statusValue: 'close',
111
+					hierarchy: data.hierarchy,
112
+					categoryId: data.categoryId,
113
+					overtimeId: 1,
114
+					groupId: this.fieldConfig.fields.userId ? undefined : (this.fieldConfig.fields.groupId || undefined),
115
+					userId: this.fieldConfig.fields.userId || undefined,
116
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
117
+					placeId: this.fieldConfig.fields.floorId || undefined,
118
+					companyId: this.fieldConfig.fields.companyId || undefined,
119
+				}
120
+			}
121
+		}
122
+
123
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
124
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
125
+	}
126
+	
127
+	// 数据下钻
128
+	viewDetail3(data, type){
129
+		let query = null
130
+		if(type=='all'){
131
+			query = {
132
+				startDate: this.customChangeDateComponent.startDate || undefined,
133
+				endDate: this.customChangeDateComponent.endDate || undefined,
134
+				searchQuery:{
135
+					statusValue: 'close',
136
+					isHangId: 1,
137
+				}
138
+			}
139
+		}else{
140
+			query = {
141
+				startDate: this.customChangeDateComponent.startDate || undefined,
142
+				endDate: this.customChangeDateComponent.endDate || undefined,
143
+				repairDeptId: this.fieldConfig.fields.repairDeptId || undefined,
144
+				searchQuery:{
145
+					statusValue: 'close',
146
+					hierarchy: data.hierarchy,
147
+					categoryId: data.categoryId,
148
+					isHangId: 1,
149
+					groupId: this.fieldConfig.fields.userId ? undefined : (this.fieldConfig.fields.groupId || undefined),
150
+					userId: this.fieldConfig.fields.userId || undefined,
151
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
152
+					placeId: this.fieldConfig.fields.floorId || undefined,
153
+					companyId: this.fieldConfig.fields.companyId || undefined,
154
+				}
155
+			}
156
+		}
157
+
158
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
159
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
160
+	}
161
+	
162
+	// 数据下钻
163
+	viewDetail4(data, type){
164
+		let query = null
165
+		if(type=='all'){
166
+			query = {
167
+				startDate: this.customChangeDateComponent.startDate || undefined,
168
+				endDate: this.customChangeDateComponent.endDate || undefined,
169
+				searchQuery:{
170
+					statusValue: 'close',
171
+					evaluateId: 20424,
172
+				}
173
+			}
174
+		}else{
175
+			query = {
176
+				startDate: this.customChangeDateComponent.startDate || undefined,
177
+				endDate: this.customChangeDateComponent.endDate || undefined,
178
+				repairDeptId: this.fieldConfig.fields.repairDeptId || undefined,
179
+				searchQuery:{
180
+					statusValue: 'close',
181
+					hierarchy: data.hierarchy,
182
+					categoryId: data.categoryId,
183
+					evaluateId: 20424,
184
+					groupId: this.fieldConfig.fields.userId ? undefined : (this.fieldConfig.fields.groupId || undefined),
185
+					userId: this.fieldConfig.fields.userId || undefined,
186
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
187
+					placeId: this.fieldConfig.fields.floorId || undefined,
188
+					companyId: this.fieldConfig.fields.companyId || undefined,
189
+				}
190
+			}
191
+		}
192
+
193
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
194
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
195
+	}
196
+	
58 197
   getQueryParams(){
59 198
     let queryParams = this.tabService.getQueryParams();
60 199
     this.tabService.clearQueryParams();

+ 12 - 12
src/app/views/new-statistics/maintenance-statistics/department-evaluate-statistics/department-evaluate-statistics.component.html

@@ -51,13 +51,13 @@
51 51
 			<tr *ngFor="let data of listOfData">
52 52
 				<td *ngIf="parent==1">{{ data.parentName || '无' }}<ng-container *ngIf="parent==1 && data.parentName">({{ data.parentCode }})</ng-container></td>
53 53
 				<td>{{ data.deptName }}<ng-container *ngIf="data.deptCode">({{ data.deptCode }})</ng-container></td>
54
-				<td>{{ data.sum }}</td>
54
+				<td (click)="viewDetail1(data)">{{ data.sum }}</td>
55 55
 				<td>{{ data.degreeCount }}</td>
56
-				<td>{{ data.oneStar }}</td>
57
-				<td>{{ data.twoStar }}</td>
58
-				<td>{{ data.threeStar }}</td>
59
-				<td>{{ data.fourStar }}</td>
60
-				<td>{{ data.fiveStar }}</td>
56
+				<td (click)="viewDetail2(data)">{{ data.oneStar }}</td>
57
+				<td (click)="viewDetail3(data)">{{ data.twoStar }}</td>
58
+				<td (click)="viewDetail4(data)">{{ data.threeStar }}</td>
59
+				<td (click)="viewDetail5(data)">{{ data.fourStar }}</td>
60
+				<td (click)="viewDetail6(data)">{{ data.fiveStar }}</td>
61 61
 				<td>{{ data.totalStar }}</td>
62 62
 				<td>{{ data.avgStar }}</td>
63 63
 			</tr>
@@ -68,13 +68,13 @@
68 68
 					<td [ngStyle]="{width:widthStyle}" *ngIf="parent==1">{{ data.parentCode }}</td>
69 69
 					<td [ngStyle]="{width:widthStyle}" *ngIf="parent==0">{{ data.deptCode }}</td>
70 70
 					<td [ngStyle]="{width:widthStyle}" *ngIf="parent==1"></td>
71
-					<td [ngStyle]="{width:widthStyle}">{{ data.sum }}</td>
71
+					<td [ngStyle]="{width:widthStyle}" (click)="viewDetail1(data, 'all')">{{ data.sum }}</td>
72 72
 					<td [ngStyle]="{width:widthStyle}">{{ data.degreeCount }}</td>
73
-					<td [ngStyle]="{width:widthStyle}">{{ data.oneStar }}</td>
74
-					<td [ngStyle]="{width:widthStyle}">{{ data.twoStar }}</td>
75
-					<td [ngStyle]="{width:widthStyle}">{{ data.threeStar }}</td>
76
-					<td [ngStyle]="{width:widthStyle}">{{ data.fourStar }}</td>
77
-					<td [ngStyle]="{width:widthStyle}">{{ data.fiveStar }}</td>
73
+					<td [ngStyle]="{width:widthStyle}" (click)="viewDetail2(data, 'all')">{{ data.oneStar }}</td>
74
+					<td [ngStyle]="{width:widthStyle}" (click)="viewDetail3(data, 'all')">{{ data.twoStar }}</td>
75
+					<td [ngStyle]="{width:widthStyle}" (click)="viewDetail4(data, 'all')">{{ data.threeStar }}</td>
76
+					<td [ngStyle]="{width:widthStyle}" (click)="viewDetail5(data, 'all')">{{ data.fourStar }}</td>
77
+					<td [ngStyle]="{width:widthStyle}" (click)="viewDetail6(data, 'all')">{{ data.fiveStar }}</td>
78 78
 					<td [ngStyle]="{width:widthStyle}">{{ data.totalStar }}</td>
79 79
 					<td [ngStyle]="{width:widthStyle}">{{ data.avgStar }}</td>
80 80
 				</tr>

+ 210 - 1
src/app/views/new-statistics/maintenance-statistics/department-evaluate-statistics/department-evaluate-statistics.component.ts

@@ -2,7 +2,7 @@ import { TabService } from './../../services/tab.service';
2 2
 import { NzMessageService } from 'ng-zorro-antd/message';
3 3
 import { Component, OnInit, HostListener, AfterViewInit, ViewChild } from "@angular/core";
4 4
 import { MainService } from 'src/app/services/main.service';
5
-import { ActivatedRoute } from '@angular/router';
5
+import { ActivatedRoute, Router } from '@angular/router';
6 6
 import { ToolService } from "../../../../services/tool.service";
7 7
 import { Subject } from "rxjs";
8 8
 import { debounceTime } from "rxjs/operators";
@@ -19,6 +19,7 @@ export class DepartmentEvaluateStatisticsComponent implements OnInit, AfterViewI
19 19
     private mainService: MainService,
20 20
     private message: NzMessageService,
21 21
     private route: ActivatedRoute,
22
+		private router: Router,
22 23
     private tabService: TabService,
23 24
 		private tool: ToolService,
24 25
   ) {}
@@ -59,7 +60,215 @@ export class DepartmentEvaluateStatisticsComponent implements OnInit, AfterViewI
59 60
 
60 61
     }, 0)
61 62
   }
63
+	
64
+	// 数据下钻
65
+	viewDetail1(data, type){
66
+		let query = null
67
+		if(type=='all'){
68
+			query = {
69
+				startDate: this.customChangeDateComponent.startDate || undefined,
70
+				endDate: this.customChangeDateComponent.endDate || undefined,
71
+				searchQuery:{
72
+					statusValue: 'close',
73
+				}
74
+			}
75
+		}else{
76
+			query = {
77
+				startDate: this.customChangeDateComponent.startDate || undefined,
78
+				endDate: this.customChangeDateComponent.endDate || undefined,
79
+				repairDeptId: data.repairDeptId || undefined,
80
+				searchQuery:{
81
+					statusValue: 'close',
82
+					categoryId: this.fieldConfig.fields.categoryId || undefined,
83
+					hierarchy: this.fieldConfig.fields.hierarchy || undefined,
84
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
85
+					floorId: this.fieldConfig.fields.floorId || undefined,
86
+					groupId: this.fieldConfig.fields.groupId || undefined,
87
+					deptTypeId: this.fieldConfig.fields.deptTypeId || undefined,
88
+					userId: this.fieldConfig.fields.userId || undefined,
89
+				}
90
+			}
91
+		}
92
+
93
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
94
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
95
+	}
96
+	
97
+	// 数据下钻
98
+	viewDetail2(data, type){
99
+		let query = null
100
+		if(type=='all'){
101
+			query = {
102
+				startDate: this.customChangeDateComponent.startDate || undefined,
103
+				endDate: this.customChangeDateComponent.endDate || undefined,
104
+				searchQuery:{
105
+					statusValue: 'close',
106
+					evaluateId: 20424,
107
+				}
108
+			}
109
+		}else{
110
+			query = {
111
+				startDate: this.customChangeDateComponent.startDate || undefined,
112
+				endDate: this.customChangeDateComponent.endDate || undefined,
113
+				repairDeptId: data.repairDeptId || undefined,
114
+				searchQuery:{
115
+					statusValue: 'close',
116
+					evaluateId: 20424,
117
+					categoryId: this.fieldConfig.fields.categoryId || undefined,
118
+					hierarchy: this.fieldConfig.fields.hierarchy || undefined,
119
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
120
+					floorId: this.fieldConfig.fields.floorId || undefined,
121
+					groupId: this.fieldConfig.fields.groupId || undefined,
122
+					deptTypeId: this.fieldConfig.fields.deptTypeId || undefined,
123
+					userId: this.fieldConfig.fields.userId || undefined,
124
+				}
125
+			}
126
+		}
62 127
 
128
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
129
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
130
+	}
131
+	
132
+	// 数据下钻
133
+	viewDetail3(data, type){
134
+		let query = null
135
+		if(type=='all'){
136
+			query = {
137
+				startDate: this.customChangeDateComponent.startDate || undefined,
138
+				endDate: this.customChangeDateComponent.endDate || undefined,
139
+				searchQuery:{
140
+					statusValue: 'close',
141
+					evaluateId: 20423,
142
+				}
143
+			}
144
+		}else{
145
+			query = {
146
+				startDate: this.customChangeDateComponent.startDate || undefined,
147
+				endDate: this.customChangeDateComponent.endDate || undefined,
148
+				repairDeptId: data.repairDeptId || undefined,
149
+				searchQuery:{
150
+					statusValue: 'close',
151
+					evaluateId: 20423,
152
+					categoryId: this.fieldConfig.fields.categoryId || undefined,
153
+					hierarchy: this.fieldConfig.fields.hierarchy || undefined,
154
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
155
+					floorId: this.fieldConfig.fields.floorId || undefined,
156
+					groupId: this.fieldConfig.fields.groupId || undefined,
157
+					deptTypeId: this.fieldConfig.fields.deptTypeId || undefined,
158
+					userId: this.fieldConfig.fields.userId || undefined,
159
+				}
160
+			}
161
+		}
162
+
163
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
164
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
165
+	}
166
+	
167
+	// 数据下钻
168
+	viewDetail4(data, type){
169
+		let query = null
170
+		if(type=='all'){
171
+			query = {
172
+				startDate: this.customChangeDateComponent.startDate || undefined,
173
+				endDate: this.customChangeDateComponent.endDate || undefined,
174
+				searchQuery:{
175
+					statusValue: 'close',
176
+					evaluateId: 20422,
177
+				}
178
+			}
179
+		}else{
180
+			query = {
181
+				startDate: this.customChangeDateComponent.startDate || undefined,
182
+				endDate: this.customChangeDateComponent.endDate || undefined,
183
+				repairDeptId: data.repairDeptId || undefined,
184
+				searchQuery:{
185
+					statusValue: 'close',
186
+					evaluateId: 20422,
187
+					categoryId: this.fieldConfig.fields.categoryId || undefined,
188
+					hierarchy: this.fieldConfig.fields.hierarchy || undefined,
189
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
190
+					floorId: this.fieldConfig.fields.floorId || undefined,
191
+					groupId: this.fieldConfig.fields.groupId || undefined,
192
+					deptTypeId: this.fieldConfig.fields.deptTypeId || undefined,
193
+					userId: this.fieldConfig.fields.userId || undefined,
194
+				}
195
+			}
196
+		}
197
+
198
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
199
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
200
+	}
201
+	
202
+	// 数据下钻
203
+	viewDetail5(data, type){
204
+		let query = null
205
+		if(type=='all'){
206
+			query = {
207
+				startDate: this.customChangeDateComponent.startDate || undefined,
208
+				endDate: this.customChangeDateComponent.endDate || undefined,
209
+				searchQuery:{
210
+					statusValue: 'close',
211
+					evaluateId: 20421,
212
+				}
213
+			}
214
+		}else{
215
+			query = {
216
+				startDate: this.customChangeDateComponent.startDate || undefined,
217
+				endDate: this.customChangeDateComponent.endDate || undefined,
218
+				repairDeptId: data.repairDeptId || undefined,
219
+				searchQuery:{
220
+					statusValue: 'close',
221
+					evaluateId: 20421,
222
+					categoryId: this.fieldConfig.fields.categoryId || undefined,
223
+					hierarchy: this.fieldConfig.fields.hierarchy || undefined,
224
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
225
+					floorId: this.fieldConfig.fields.floorId || undefined,
226
+					groupId: this.fieldConfig.fields.groupId || undefined,
227
+					deptTypeId: this.fieldConfig.fields.deptTypeId || undefined,
228
+					userId: this.fieldConfig.fields.userId || undefined,
229
+				}
230
+			}
231
+		}
232
+
233
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
234
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
235
+	}
236
+	
237
+	// 数据下钻
238
+	viewDetail6(data, type){
239
+		let query = null
240
+		if(type=='all'){
241
+			query = {
242
+				startDate: this.customChangeDateComponent.startDate || undefined,
243
+				endDate: this.customChangeDateComponent.endDate || undefined,
244
+				searchQuery:{
245
+					statusValue: 'close',
246
+					evaluateId: 20420,
247
+				}
248
+			}
249
+		}else{
250
+			query = {
251
+				startDate: this.customChangeDateComponent.startDate || undefined,
252
+				endDate: this.customChangeDateComponent.endDate || undefined,
253
+				repairDeptId: data.repairDeptId || undefined,
254
+				searchQuery:{
255
+					statusValue: 'close',
256
+					evaluateId: 20420,
257
+					categoryId: this.fieldConfig.fields.categoryId || undefined,
258
+					hierarchy: this.fieldConfig.fields.hierarchy || undefined,
259
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
260
+					floorId: this.fieldConfig.fields.floorId || undefined,
261
+					groupId: this.fieldConfig.fields.groupId || undefined,
262
+					deptTypeId: this.fieldConfig.fields.deptTypeId || undefined,
263
+					userId: this.fieldConfig.fields.userId || undefined,
264
+				}
265
+			}
266
+		}
267
+
268
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
269
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
270
+	}
271
+	
63 272
   getQueryParams(){
64 273
     let queryParams = this.tabService.getQueryParams();
65 274
     this.tabService.clearQueryParams();

+ 8 - 8
src/app/views/new-statistics/maintenance-statistics/department-incident-statistics/department-incident-statistics.component.html

@@ -52,15 +52,15 @@
52 52
 			<tr *ngFor="let data of listOfData">
53 53
 				<td *ngIf="parent==1">{{ data.parentName || '无' }}<ng-container *ngIf="parent==1 && data.parentName">({{ data.parentCode }})</ng-container></td>
54 54
 				<td>{{ data.deptName }}<ng-container *ngIf="data.deptCode">({{ data.deptCode }})</ng-container></td>
55
-				<td>{{ data.sum }}</td>
55
+				<td (click)="viewDetail1(data)">{{ data.sum }}</td>
56 56
 				<td>{{ data.avgResponseTime }}</td>
57 57
 				<td>{{ data.avgResolvedTime }}</td>
58
-				<td>{{ data.resolvedOverNum }}</td>
59
-				<td>{{ data.overTimeNum }}</td>
58
+				<td (click)="viewDetail2(data)">{{ data.resolvedOverNum }}</td>
59
+				<td (click)="viewDetail3(data)">{{ data.overTimeNum }}</td>
60 60
 				<td>{{ data.consumablePrice }}</td>
61 61
 				<td>{{ data.workHourPrice }}</td>
62 62
 				<td>{{ data.totalPrice }}</td>
63
-				<td>{{ data.negativeNum }}</td>
63
+				<td (click)="viewDetail4(data)">{{ data.negativeNum }}</td>
64 64
 				<td>{{ data.favorableRate }}</td>
65 65
 			</tr>
66 66
 		</tbody>
@@ -70,15 +70,15 @@
70 70
 					<td [ngStyle]="{width:widthStyle}" *ngIf="parent==1">{{ data.parentCode }}</td>
71 71
 					<td [ngStyle]="{width:widthStyle}" *ngIf="parent==0">{{ data.deptCode}}</td>
72 72
 					<td [ngStyle]="{width:widthStyle}" *ngIf="parent==1"></td>
73
-					<td [ngStyle]="{width:widthStyle}">{{ data.sum }}</td>
73
+					<td [ngStyle]="{width:widthStyle}" (click)="viewDetail1(data, 'all')">{{ data.sum }}</td>
74 74
 					<td [ngStyle]="{width:widthStyle}">{{ data.avgResponseTime }}</td>
75 75
 					<td [ngStyle]="{width:widthStyle}">{{ data.avgResolvedTime }}</td>
76
-					<td [ngStyle]="{width:widthStyle}">{{ data.resolvedOverNum }}</td>
77
-					<td [ngStyle]="{width:widthStyle}">{{ data.overTimeNum }}</td>
76
+					<td [ngStyle]="{width:widthStyle}" (click)="viewDetail2(data, 'all')">{{ data.resolvedOverNum }}</td>
77
+					<td [ngStyle]="{width:widthStyle}" (click)="viewDetail3(data, 'all')">{{ data.overTimeNum }}</td>
78 78
 					<td [ngStyle]="{width:widthStyle}">{{ data.consumablePrice }}</td>
79 79
 					<td [ngStyle]="{width:widthStyle}">{{ data.workHourPrice }}</td>
80 80
 					<td [ngStyle]="{width:widthStyle}">{{ data.totalPrice }}</td>
81
-					<td [ngStyle]="{width:widthStyle}">{{ data.negativeNum }}</td>
81
+					<td [ngStyle]="{width:widthStyle}" (click)="viewDetail4(data, 'all')">{{ data.negativeNum }}</td>
82 82
 					<td [ngStyle]="{width:widthStyle}">{{ data.favorableRate }}</td>
83 83
 				</tr>
84 84
 			</table>

+ 140 - 1
src/app/views/new-statistics/maintenance-statistics/department-incident-statistics/department-incident-statistics.component.ts

@@ -2,7 +2,7 @@ import { TabService } from './../../services/tab.service';
2 2
 import { NzMessageService } from 'ng-zorro-antd/message';
3 3
 import { Component, OnInit, HostListener, AfterViewInit, ViewChild } from "@angular/core";
4 4
 import { MainService } from 'src/app/services/main.service';
5
-import { ActivatedRoute } from '@angular/router';
5
+import { ActivatedRoute, Router } from '@angular/router';
6 6
 import { ToolService } from "../../../../services/tool.service";
7 7
 import { Subject } from "rxjs";
8 8
 import { debounceTime } from "rxjs/operators";
@@ -19,6 +19,7 @@ export class DepartmentIncidentStatisticsComponent implements OnInit, AfterViewI
19 19
     private mainService: MainService,
20 20
     private message: NzMessageService,
21 21
     private route: ActivatedRoute,
22
+		private router: Router,
22 23
     private tabService: TabService,
23 24
 		private tool: ToolService,
24 25
   ) {}
@@ -59,7 +60,145 @@ export class DepartmentIncidentStatisticsComponent implements OnInit, AfterViewI
59 60
 
60 61
     }, 0)
61 62
   }
63
+	
64
+	// 数据下钻
65
+	viewDetail1(data, type){
66
+		let query = null
67
+		if(type=='all'){
68
+			query = {
69
+				startDate: this.customChangeDateComponent.startDate || undefined,
70
+				endDate: this.customChangeDateComponent.endDate || undefined,
71
+				searchQuery:{
72
+					statusValue: 'close',
73
+				}
74
+			}
75
+		}else{
76
+			query = {
77
+				startDate: this.customChangeDateComponent.startDate || undefined,
78
+				endDate: this.customChangeDateComponent.endDate || undefined,
79
+				repairDeptId: data.repairDeptId || undefined,
80
+				searchQuery:{
81
+					statusValue: 'close',
82
+					categoryId: this.fieldConfig.fields.categoryId || undefined,
83
+					hierarchy: this.fieldConfig.fields.hierarchy || undefined,
84
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
85
+					floorId: this.fieldConfig.fields.floorId || undefined,
86
+					groupId: this.fieldConfig.fields.groupId || undefined,
87
+					deptTypeId: this.fieldConfig.fields.deptTypeId || undefined,
88
+					userId: this.fieldConfig.fields.userId || undefined,
89
+				}
90
+			}
91
+		}
92
+
93
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
94
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
95
+	}
96
+	
97
+	// 数据下钻
98
+	viewDetail2(data, type){
99
+		let query = null
100
+		if(type=='all'){
101
+			query = {
102
+				startDate: this.customChangeDateComponent.startDate || undefined,
103
+				endDate: this.customChangeDateComponent.endDate || undefined,
104
+				searchQuery:{
105
+					statusValue: 'close',
106
+					overtimeId: 1,
107
+				}
108
+			}
109
+		}else{
110
+			query = {
111
+				startDate: this.customChangeDateComponent.startDate || undefined,
112
+				endDate: this.customChangeDateComponent.endDate || undefined,
113
+				repairDeptId: data.repairDeptId || undefined,
114
+				searchQuery:{
115
+					statusValue: 'close',
116
+					overtimeId: 1,
117
+					categoryId: this.fieldConfig.fields.categoryId || undefined,
118
+					hierarchy: this.fieldConfig.fields.hierarchy || undefined,
119
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
120
+					floorId: this.fieldConfig.fields.floorId || undefined,
121
+					groupId: this.fieldConfig.fields.groupId || undefined,
122
+					deptTypeId: this.fieldConfig.fields.deptTypeId || undefined,
123
+					userId: this.fieldConfig.fields.userId || undefined,
124
+				}
125
+			}
126
+		}
62 127
 
128
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
129
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
130
+	}
131
+	
132
+	// 数据下钻
133
+	viewDetail3(data, type){
134
+		let query = null
135
+		if(type=='all'){
136
+			query = {
137
+				startDate: this.customChangeDateComponent.startDate || undefined,
138
+				endDate: this.customChangeDateComponent.endDate || undefined,
139
+				searchQuery:{
140
+					statusValue: 'close',
141
+					isHangId: 1,
142
+				}
143
+			}
144
+		}else{
145
+			query = {
146
+				startDate: this.customChangeDateComponent.startDate || undefined,
147
+				endDate: this.customChangeDateComponent.endDate || undefined,
148
+				repairDeptId: data.repairDeptId || undefined,
149
+				searchQuery:{
150
+					statusValue: 'close',
151
+					isHangId: 1,
152
+					categoryId: this.fieldConfig.fields.categoryId || undefined,
153
+					hierarchy: this.fieldConfig.fields.hierarchy || undefined,
154
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
155
+					floorId: this.fieldConfig.fields.floorId || undefined,
156
+					groupId: this.fieldConfig.fields.groupId || undefined,
157
+					deptTypeId: this.fieldConfig.fields.deptTypeId || undefined,
158
+					userId: this.fieldConfig.fields.userId || undefined,
159
+				}
160
+			}
161
+		}
162
+
163
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
164
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
165
+	}
166
+	
167
+	// 数据下钻
168
+	viewDetail4(data, type){
169
+		let query = null
170
+		if(type=='all'){
171
+			query = {
172
+				startDate: this.customChangeDateComponent.startDate || undefined,
173
+				endDate: this.customChangeDateComponent.endDate || undefined,
174
+				searchQuery:{
175
+					statusValue: 'close',
176
+					evaluateId: 20424,
177
+				}
178
+			}
179
+		}else{
180
+			query = {
181
+				startDate: this.customChangeDateComponent.startDate || undefined,
182
+				endDate: this.customChangeDateComponent.endDate || undefined,
183
+				repairDeptId: data.repairDeptId || undefined,
184
+				searchQuery:{
185
+					statusValue: 'close',
186
+					evaluateId: 20424,
187
+					categoryId: this.fieldConfig.fields.categoryId || undefined,
188
+					hierarchy: this.fieldConfig.fields.hierarchy || undefined,
189
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
190
+					floorId: this.fieldConfig.fields.floorId || undefined,
191
+					groupId: this.fieldConfig.fields.groupId || undefined,
192
+					deptTypeId: this.fieldConfig.fields.deptTypeId || undefined,
193
+					userId: this.fieldConfig.fields.userId || undefined,
194
+				}
195
+			}
196
+		}
197
+
198
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
199
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
200
+	}
201
+	
63 202
   getQueryParams(){
64 203
     let queryParams = this.tabService.getQueryParams();
65 204
     this.tabService.clearQueryParams();

+ 8 - 8
src/app/views/new-statistics/maintenance-statistics/group-statistics/group-statistics.component.html

@@ -35,15 +35,15 @@
35 35
   <tbody>
36 36
     <tr *ngFor="let data of listOfData">
37 37
       <td>{{ data.groupName }}</td>
38
-      <td>{{ data.sum }}</td>
38
+      <td (click)="viewDetail1(data)">{{ data.sum }}</td>
39 39
       <td>{{ data.avgResponseTime }}</td>
40 40
       <td>{{ data.avgResolvedTime }}</td>
41
-      <td>{{ data.resolvedOverNum }}</td>
42
-      <td>{{ data.overTimeNum }}</td>
41
+      <td (click)="viewDetail2(data)">{{ data.resolvedOverNum }}</td>
42
+      <td (click)="viewDetail3(data)">{{ data.overTimeNum }}</td>
43 43
       <td>{{ data.consumablePrice }}</td>
44 44
       <td>{{ data.workHourPrice }}</td>
45 45
       <td>{{ data.totalPrice }}</td>
46
-      <td>{{ data.negativeNum }}</td>
46
+      <td (click)="viewDetail4(data)">{{ data.negativeNum }}</td>
47 47
       <td>{{ data.favorableRate }}</td>
48 48
     </tr>
49 49
   </tbody>
@@ -51,15 +51,15 @@
51 51
     <table class="footTable">
52 52
       <tr *ngFor="let data of listOfDataEnd">
53 53
         <td style="width: 10%">{{ data.groupName }}</td>
54
-        <td style="width: 9%">{{ data.sum }}</td>
54
+        <td style="width: 9%" (click)="viewDetail1(data, 'all')">{{ data.sum }}</td>
55 55
         <td style="width: 9%">{{ data.avgResponseTime }}</td>
56 56
         <td style="width: 9%">{{ data.avgResolvedTime }}</td>
57
-        <td style="width: 9%">{{ data.resolvedOverNum }}</td>
58
-        <td style="width: 9%">{{ data.overTimeNum }}</td>
57
+        <td style="width: 9%" (click)="viewDetail2(data, 'all')">{{ data.resolvedOverNum }}</td>
58
+        <td style="width: 9%" (click)="viewDetail3(data, 'all')">{{ data.overTimeNum }}</td>
59 59
         <td style="width: 9%">{{ data.consumablePrice }}</td>
60 60
         <td style="width: 9%">{{ data.workHourPrice }}</td>
61 61
         <td style="width: 9%">{{ data.totalPrice }}</td>
62
-        <td style="width: 9%">{{ data.negativeNum }}</td>
62
+        <td style="width: 9%" (click)="viewDetail4(data, 'all')">{{ data.negativeNum }}</td>
63 63
         <td style="width: 9%">{{ data.favorableRate }}</td>
64 64
       </tr>
65 65
     </table>

+ 128 - 1
src/app/views/new-statistics/maintenance-statistics/group-statistics/group-statistics.component.ts

@@ -2,7 +2,7 @@ import { TabService } from './../../services/tab.service';
2 2
 import { NzMessageService } from 'ng-zorro-antd/message';
3 3
 import { Component, OnInit, HostListener, AfterViewInit, ViewChild } from "@angular/core";
4 4
 import { MainService } from 'src/app/services/main.service';
5
-import { ActivatedRoute } from '@angular/router';
5
+import { ActivatedRoute, Router } from '@angular/router';
6 6
 import { CustomChangeDateComponent } from '../../components/custom-change-date/custom-change-date.component';
7 7
 @Component({
8 8
   selector: "app-group-statistics",
@@ -15,6 +15,7 @@ export class GroupStatisticsComponent implements OnInit, AfterViewInit {
15 15
     private mainService: MainService,
16 16
     private message: NzMessageService,
17 17
     private route: ActivatedRoute,
18
+		private router: Router,
18 19
     private tabService: TabService,
19 20
   ) {}
20 21
 
@@ -43,7 +44,133 @@ export class GroupStatisticsComponent implements OnInit, AfterViewInit {
43 44
 
44 45
     }, 0)
45 46
   }
47
+	
48
+	// 数据下钻
49
+	viewDetail1(data, type){
50
+		let query = null
51
+		if(type=='all'){
52
+			query = {
53
+				startDate: this.customChangeDateComponent.startDate || undefined,
54
+				endDate: this.customChangeDateComponent.endDate || undefined,
55
+				searchQuery:{
56
+					statusValue: 'close',
57
+				}
58
+			}
59
+		}else{
60
+			query = {
61
+				startDate: this.customChangeDateComponent.startDate || undefined,
62
+				endDate: this.customChangeDateComponent.endDate || undefined,
63
+				searchQuery:{
64
+					statusValue: 'close',
65
+					groupId: data.groupId ? data.groupId : -1,
66
+					categoryId: this.fieldConfig.fields.categoryId || undefined,
67
+					hierarchy: this.fieldConfig.fields.hierarchy || undefined,
68
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
69
+					floorId: this.fieldConfig.fields.floorId || undefined,
70
+				}
71
+			}
72
+		}
46 73
 
74
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
75
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
76
+	}
77
+	
78
+	// 数据下钻
79
+	viewDetail2(data, type){
80
+		let query = null
81
+		if(type=='all'){
82
+			query = {
83
+				startDate: this.customChangeDateComponent.startDate || undefined,
84
+				endDate: this.customChangeDateComponent.endDate || undefined,
85
+				searchQuery:{
86
+					statusValue: 'close',
87
+					overtimeId: 1,
88
+				}
89
+			}
90
+		}else{
91
+			query = {
92
+				startDate: this.customChangeDateComponent.startDate || undefined,
93
+				endDate: this.customChangeDateComponent.endDate || undefined,
94
+				searchQuery:{
95
+					statusValue: 'close',
96
+					groupId: data.groupId ? data.groupId : -1,
97
+					overtimeId: 1,
98
+					categoryId: this.fieldConfig.fields.categoryId || undefined,
99
+					hierarchy: this.fieldConfig.fields.hierarchy || undefined,
100
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
101
+					floorId: this.fieldConfig.fields.floorId || undefined,
102
+				}
103
+			}
104
+		}
105
+
106
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
107
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
108
+	}
109
+	
110
+	// 数据下钻
111
+	viewDetail3(data, type){
112
+		let query = null
113
+		if(type=='all'){
114
+			query = {
115
+				startDate: this.customChangeDateComponent.startDate || undefined,
116
+				endDate: this.customChangeDateComponent.endDate || undefined,
117
+				searchQuery:{
118
+					statusValue: 'close',
119
+					isHangId: 1,
120
+				}
121
+			}
122
+		}else{
123
+			query = {
124
+				startDate: this.customChangeDateComponent.startDate || undefined,
125
+				endDate: this.customChangeDateComponent.endDate || undefined,
126
+				searchQuery:{
127
+					statusValue: 'close',
128
+					groupId: data.groupId ? data.groupId : -1,
129
+					isHangId: 1,
130
+					categoryId: this.fieldConfig.fields.categoryId || undefined,
131
+					hierarchy: this.fieldConfig.fields.hierarchy || undefined,
132
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
133
+					floorId: this.fieldConfig.fields.floorId || undefined,
134
+				}
135
+			}
136
+		}
137
+
138
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
139
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
140
+	}
141
+	
142
+	// 数据下钻
143
+	viewDetail4(data, type){
144
+		let query = null
145
+		if(type=='all'){
146
+			query = {
147
+				startDate: this.customChangeDateComponent.startDate || undefined,
148
+				endDate: this.customChangeDateComponent.endDate || undefined,
149
+				searchQuery:{
150
+					statusValue: 'close',
151
+					evaluateId: 20424,
152
+				}
153
+			}
154
+		}else{
155
+			query = {
156
+				startDate: this.customChangeDateComponent.startDate || undefined,
157
+				endDate: this.customChangeDateComponent.endDate || undefined,
158
+				searchQuery:{
159
+					statusValue: 'close',
160
+					groupId: data.groupId ? data.groupId : -1,
161
+					evaluateId: 20424,
162
+					categoryId: this.fieldConfig.fields.categoryId || undefined,
163
+					hierarchy: this.fieldConfig.fields.hierarchy || undefined,
164
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
165
+					floorId: this.fieldConfig.fields.floorId || undefined,
166
+				}
167
+			}
168
+		}
169
+
170
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
171
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
172
+	}
173
+	
47 174
   getQueryParams(){
48 175
     let queryParams = this.tabService.getQueryParams();
49 176
     this.tabService.clearQueryParams();

+ 17 - 9
src/app/views/new-statistics/maintenance-statistics/incident-list/incident-list.component.html

@@ -1,6 +1,6 @@
1 1
 <div class="searchDataWrap">
2 2
   <div class="searchData">
3
-    <app-custom-change-date #customChangeDate [isShowType]="false"></app-custom-change-date>
3
+    <app-custom-change-date #customChangeDate [isShowType]="false" [dateData1]="dateData1" [dateData2]="dateData2"></app-custom-change-date>
4 4
     <div class="searchDataItem">
5 5
       <span class="label">报修科室</span>:
6 6
       <nz-select class="selectItem" [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch (nzOnSearch)="changeRepairDeptInp($event)" nzAllowClear nzPlaceHolder="请选择报修科室" [(ngModel)]="repairDeptId" (nzOpenChange)="openChangeRepairDept($event)">
@@ -20,9 +20,9 @@
20 20
     <button nz-button class="btn default ml8" (click)="excelExport()" [nzLoading]="excelExportLoading">导出</button>
21 21
   </div>
22 22
 </div>
23
-<div class="moreFilter" *ngIf="fieldConfig.fields.groupDTO || fieldConfig.fields.userDTO || fieldConfig.fields.category1DTO || fieldConfig.fields.category2DTO || fieldConfig.fields.category3DTO || fieldConfig.fields.sourceDTO || this.fieldConfig.fields.buildingDTO || this.fieldConfig.fields.floorDTO || 
24
-		this.fieldConfig.fields.companyDTO || this.fieldConfig.fields.workHourParentDTO || this.fieldConfig.fields.workHourSmallDTO || this.fieldConfig.fields.evaluateDTO || this.fieldConfig.fields.repairUserDTO || this.fieldConfig.fields.consumableDTO || 
25
-		this.fieldConfig.fields.isHangDTO || this.fieldConfig.fields.overtimeDTO || this.fieldConfig.fields.codeNumDTO">
23
+<div class="moreFilter" *ngIf="fieldConfig.fields.groupDTO || fieldConfig.fields.userDTO || fieldConfig.fields.category1DTO || fieldConfig.fields.category2DTO || fieldConfig.fields.category3DTO || fieldConfig.fields.sourceDTO || fieldConfig.fields.buildingDTO || fieldConfig.fields.floorDTO || 
24
+		fieldConfig.fields.companyDTO || fieldConfig.fields.workHourParentDTO || fieldConfig.fields.workHourSmallDTO || fieldConfig.fields.evaluateDTO || fieldConfig.fields.repairUserDTO || fieldConfig.fields.consumableDTO || 
25
+		fieldConfig.fields.isHangDTO || fieldConfig.fields.overtimeDTO || fieldConfig.fields.codeNumDTO || fieldConfig.fields.deptTypeDTO">
26 26
   <span>{{fieldConfig.fields.workHourParentDTO?.workName}}</span>
27 27
 	<span>{{fieldConfig.fields.workHourSmallDTO?.workName}}</span>
28 28
 	<span>{{fieldConfig.fields.groupDTO?.groupName}}</span>
@@ -40,13 +40,15 @@
40 40
 	<span>{{fieldConfig.fields.isHangDTO?.name}}</span>
41 41
 	<span>{{fieldConfig.fields.overtimeDTO?.name}}</span>
42 42
 	<span>{{fieldConfig.fields.codeNumDTO}}</span>
43
+	<span>{{fieldConfig.fields.deptTypeDTO.name}}</span>
44
+	
43 45
 </div>
44
-<nz-table class="table" [nzData]="listOfData" nzSize="middle" [nzShowPagination]="false" [nzLoading]="loading1" [nzScroll]="{ y: tableHeight + 'px', x: '1550px'}">
46
+<nz-table class="table" [nzData]="listOfData" nzSize="middle" [nzShowPagination]="false" [nzLoading]="loading1" [nzScroll]="{ y: tableHeight + 'px', x: '1600px'}">
45 47
   <thead>
46 48
     <tr>
47 49
       <th nzWidth="150px">序号|单号</th>
48 50
       <th nzWidth="300px">故障描述</th>
49
-      <th nzWidth="150px">详细地址</th>
51
+      <th nzWidth="200px">详细地址</th>
50 52
       <th nzWidth="100px">受|处理人/组</th>
51 53
       <th nzWidth="200px">时间过程</th>
52 54
       <th nzWidth="100px">时长</th>
@@ -59,11 +61,17 @@
59 61
   <tbody>
60 62
     <tr *ngFor="let data of listOfData; let index = index;">
61 63
       <td (click)="viewDetail(data)">
62
-				<div>{{index+(pageIndex-1) * pageSize + 1}}</div>
64
+				<div>{{index+(pageIndex-1) * pageSize + 1}} {{data.priorityName}}</div>
63 65
 				<div class="text-style">{{data.incidentsign}}</div>
64 66
 			</td>
65
-      <td class="hide-describe">{{data.description}}</td>
66
-      <td>{{ data.housenumber }}</td>
67
+      <td class="hide-describe">
68
+				<div>{{data.mutiCategory}}</div>
69
+				<div>{{data.description}}</div>
70
+			</td>
71
+      <td>
72
+				<div>{{data.hosName}}-{{data.repairDept}}</div>
73
+				<div>{{ data.housenumber }}</div>
74
+			</td>
67 75
       <td>
68 76
 				<div>{{data.creator}}</div>
69 77
 				<div>{{data.groupOrHandlerUser}}</div>

+ 43 - 19
src/app/views/new-statistics/maintenance-statistics/incident-list/incident-list.component.ts

@@ -2,7 +2,7 @@ import { TabService } from './../../services/tab.service';
2 2
 import { debounceTime, filter } from 'rxjs/operators';
3 3
 import { Subject } from 'rxjs';
4 4
 import { NzMessageService } from 'ng-zorro-antd/message';
5
-import { Component, OnInit, HostListener, AfterViewInit, ViewChild } from "@angular/core";
5
+import { Component, OnInit, HostListener, AfterViewInit, ViewChild, OnDestroy } from "@angular/core";
6 6
 import { MainService } from 'src/app/services/main.service';
7 7
 import { ActivatedRoute, Router, NavigationEnd  } from '@angular/router';
8 8
 import cloneDeep from 'lodash-es/cloneDeep'
@@ -12,7 +12,7 @@ import { CustomChangeDateComponent } from '../../components/custom-change-date/c
12 12
   templateUrl: "./incident-list.component.html",
13 13
   styleUrls: ["./incident-list.component.less"],
14 14
 })
15
-export class IncidentListComponent implements OnInit, AfterViewInit {
15
+export class IncidentListComponent implements OnInit, AfterViewInit, OnDestroy {
16 16
   @ViewChild('customChangeDate', { static: false }) customChangeDateComponent!: CustomChangeDateComponent;
17 17
   constructor(
18 18
     private mainService: MainService,
@@ -31,13 +31,16 @@ export class IncidentListComponent implements OnInit, AfterViewInit {
31 31
   repairDeptId;//报修科室id
32 32
 
33 33
   searchTimerSubject = new Subject();
34
-
34
+	dateData1:any;
35
+	dateData2:any;
36
+	
35 37
   ngOnInit() {
38
+		// 数据下钻搜索
36 39
 		this.getRouteQuery()
37 40
 		this.router.events
38 41
 		  .pipe(filter(event => event instanceof NavigationEnd))
39 42
 		  .subscribe((event: NavigationEnd) => {
40
-		    if(event.urlAfterRedirects=='/newStatistics/maintenanceStatistics/incidentList'){
43
+		    if(event.urlAfterRedirects.endsWith('/incidentList')){
41 44
 					this.getRouteQuery()
42 45
 		    }
43 46
 		  });
@@ -47,7 +50,11 @@ export class IncidentListComponent implements OnInit, AfterViewInit {
47 50
       fun.call(this, v[1]);
48 51
     });
49 52
   }
50
-
53
+	
54
+	ngOnDestroy(){
55
+		sessionStorage.removeItem('maintenanceData')
56
+	}
57
+	
51 58
   ngAfterViewInit(){
52 59
     this.initSessionData();
53 60
     this.getQueryParams();
@@ -71,18 +78,31 @@ export class IncidentListComponent implements OnInit, AfterViewInit {
71 78
 		if(data){
72 79
 			query = JSON.parse(data)
73 80
 			console.log('query==========',query)
74
-			if(query.startData){
75
-				this.customChangeDateComponent.startDate = query.startData
76
-			}
77
-			if(query.endDate){
78
-				this.customChangeDateComponent.startDate = query.endDate
79
-			}
80
-			if(query.searchQuery){
81
-				this.fieldConfig.fields = query.searchQuery
82
-			}
83
-			
84
-			this.search();
85
-			this.onResize(37);
81
+			setTimeout(_=>{
82
+				// console.log(777,this.customChangeDateComponent)
83
+				if(query.startDate){
84
+					this.dateData1 = query.startDate
85
+					this.customChangeDateComponent.startDate = query.startDate
86
+				}
87
+				if(query.endDate){
88
+					this.dateData2 = query.endDate
89
+					this.customChangeDateComponent.endDate = query.endDate
90
+				}
91
+				if(query.repairDeptId){
92
+					this.getRepairDeptList();
93
+					this.repairDeptId = query.repairDeptId
94
+				}else{
95
+					this.repairDeptId = undefined
96
+				}
97
+				if(query.searchQuery){
98
+					this.fieldConfig.fields = query.searchQuery
99
+				}else{
100
+					this.fieldConfig.fields = {}
101
+				}
102
+				
103
+				this.search();
104
+				this.onResize(37);
105
+			})
86 106
 		}
87 107
 	}
88 108
 	
@@ -174,6 +194,8 @@ export class IncidentListComponent implements OnInit, AfterViewInit {
174 194
 			hangUp: this.fieldConfig.fields.isHangId==0 ? undefined : this.fieldConfig.fields.isHangId,
175 195
 			incidentSign: this.fieldConfig.fields.codeNum,
176 196
 			wxDegreeId: this.fieldConfig.fields.evaluateId,
197
+			statusValue: this.fieldConfig.fields.statusValue || undefined,
198
+			deptTypeId: this.fieldConfig.fields.deptTypeId || undefined,
177 199
     };
178 200
 		
179 201
 		if(this.fieldConfig.fields.workHourParentId && this.fieldConfig.fields.workHourSmallId){
@@ -243,6 +265,8 @@ export class IncidentListComponent implements OnInit, AfterViewInit {
243 265
     	hangUp: this.fieldConfig.fields.isHangId==0 ? undefined : this.fieldConfig.fields.isHangId,
244 266
     	incidentSign: this.fieldConfig.fields.codeNum,
245 267
 			wxDegreeId: this.fieldConfig.fields.evaluateId,
268
+			statusValue: this.fieldConfig.fields.statusValue || undefined,
269
+			deptTypeId: this.fieldConfig.fields.deptTypeId || undefined
246 270
     };
247 271
     
248 272
     if(this.fieldConfig.fields.workHourParentId && this.fieldConfig.fields.workHourSmallId){
@@ -345,8 +369,8 @@ export class IncidentListComponent implements OnInit, AfterViewInit {
345 369
   fieldConfig:any = {
346 370
     fields: {groupId: undefined, userId: undefined, categoryId: undefined, sourceId: undefined, hierarchy: 
347 371
 		undefined,buildingId: undefined, floorId: undefined, companyId: undefined, 
348
-		workHourParentId: undefined, workHourSmallId: undefined, evaluateId: undefined, repairUserId: undefined, consumableId: undefined, isHangId: undefined, codeNum: undefined, overtimeId: undefined},
349
-    config: {groupAndUser: true, category123: true, source: true, buildingAndFloor: true, company: true, workHourParent: true, workHourSmall: true, evaluate: true, repairUser: true, consumable: true, isHang: true, code: true, overtime: true},
372
+		workHourParentId: undefined, workHourSmallId: undefined, evaluateId: undefined, repairUserId: undefined, consumableId: undefined, isHangId: undefined, codeNum: undefined, overtimeId: undefined, deptTypeId: undefined},
373
+    config: {groupAndUser: true, category123: true, source: true, buildingAndFloor: true, company: true, workHourParent: true, workHourSmall: true, evaluate: true, repairUser: true, consumable: true, isHang: true, code: true, overtime: true, deptType: true},
350 374
   }
351 375
   showSearchMore:boolean = false;
352 376
   showMore(){

+ 8 - 8
src/app/views/new-statistics/maintenance-statistics/incident-statistics/incident-statistics.component.html

@@ -47,15 +47,15 @@
47 47
   <tbody>
48 48
     <tr *ngFor="let data of listOfData">
49 49
       <td>{{ data.startDate }}</td>
50
-      <td>{{ data.sum }}</td>
50
+      <td (click)="viewDetail1(data)">{{ data.sum }}</td>
51 51
       <td>{{ data.avgResponseTime }}</td>
52 52
       <td>{{ data.avgResolvedTime }}</td>
53
-      <td>{{ data.resolvedOverNum }}</td>
54
-      <td>{{ data.overTimeNum }}</td>
53
+      <td (click)="viewDetail2(data)">{{ data.resolvedOverNum }}</td>
54
+      <td (click)="viewDetail3(data)">{{ data.overTimeNum }}</td>
55 55
       <td>{{ data.consumablePrice }}</td>
56 56
       <td>{{ data.workHourPrice }}</td>
57 57
       <td>{{ data.totalPrice }}</td>
58
-      <td>{{ data.negativeNum }}</td>
58
+      <td (click)="viewDetail3(data)">{{ data.negativeNum }}</td>
59 59
       <td>{{ data.favorableRate }}</td>
60 60
     </tr>
61 61
   </tbody>
@@ -63,15 +63,15 @@
63 63
     <table class="footTable">
64 64
       <tr *ngFor="let data of listOfDataEnd">
65 65
         <td style="width: 10%">{{ data.startDate }}</td>
66
-        <td style="width: 9%">{{ data.sum }}</td>
66
+        <td style="width: 9%" (click)="viewDetail1(data,'all')">{{ data.sum }}</td>
67 67
         <td style="width: 9%">{{ data.avgResponseTime }}</td>
68 68
         <td style="width: 9%">{{ data.avgResolvedTime }}</td>
69
-        <td style="width: 9%">{{ data.resolvedOverNum }}</td>
70
-        <td style="width: 9%">{{ data.overTimeNum }}</td>
69
+        <td style="width: 9%" (click)="viewDetail2(data,'all')">{{ data.resolvedOverNum }}</td>
70
+        <td style="width: 9%" (click)="viewDetail3(data,'all')">{{ data.overTimeNum }}</td>
71 71
         <td style="width: 9%">{{ data.consumablePrice }}</td>
72 72
         <td style="width: 9%">{{ data.workHourPrice }}</td>
73 73
         <td style="width: 9%">{{ data.totalPrice }}</td>
74
-        <td style="width: 9%">{{ data.negativeNum }}</td>
74
+        <td style="width: 9%" (click)="viewDetail4(data,'all')">{{ data.negativeNum }}</td>
75 75
         <td style="width: 9%">{{ data.favorableRate }}</td>
76 76
       </tr>
77 77
     </table>

+ 128 - 1
src/app/views/new-statistics/maintenance-statistics/incident-statistics/incident-statistics.component.ts

@@ -4,7 +4,7 @@ import { Subject } from 'rxjs';
4 4
 import { NzMessageService } from 'ng-zorro-antd/message';
5 5
 import { Component, OnInit, HostListener, AfterViewInit, ViewChild } from "@angular/core";
6 6
 import { MainService } from 'src/app/services/main.service';
7
-import { ActivatedRoute } from '@angular/router';
7
+import { ActivatedRoute, Router } from '@angular/router';
8 8
 import { CustomChangeDateComponent } from '../../components/custom-change-date/custom-change-date.component';
9 9
 @Component({
10 10
   selector: "app-incident-statistics",
@@ -17,6 +17,7 @@ export class IncidentStatisticsComponent implements OnInit, AfterViewInit {
17 17
     private mainService: MainService,
18 18
     private message: NzMessageService,
19 19
     private route: ActivatedRoute,
20
+		private router: Router,
20 21
     private tabService: TabService,
21 22
   ) {}
22 23
 
@@ -54,7 +55,133 @@ export class IncidentStatisticsComponent implements OnInit, AfterViewInit {
54 55
 
55 56
     }, 0)
56 57
   }
58
+	
59
+	// 数据下钻
60
+	viewDetail1(data,type){
61
+		let query = null
62
+		if(type=='all'){
63
+			query = {
64
+				startDate: this.customChangeDateComponent.startDate,
65
+				endDate: this.customChangeDateComponent.endDate,
66
+				searchQuery:{
67
+					statusValue: 'close',
68
+				}
69
+			}
70
+		}else{
71
+			 query = {
72
+				startDate: data.startDate + ' ' + '00:00:00',
73
+				endDate: data.startDate + ' ' + '23:59:59',
74
+				searchQuery:{
75
+					statusValue: 'close',
76
+					groupId: this.fieldConfig.fields.userId ? undefined : (this.fieldConfig.fields.groupId || undefined),
77
+					userId: this.fieldConfig.fields.userId || undefined,
78
+					categoryId: this.fieldConfig.fields.categoryId || undefined,
79
+					sourceId: this.fieldConfig.fields.sourceId || undefined,
80
+					hierarchy: this.fieldConfig.fields.hierarchy || undefined,
81
+				}
82
+			}
83
+		}
57 84
 
85
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
86
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
87
+	}
88
+	
89
+	// 数据下钻
90
+	viewDetail2(data, type){
91
+		let query = null
92
+		if(type=='all'){
93
+			query = {
94
+				startDate: this.customChangeDateComponent.startDate,
95
+				endDate: this.customChangeDateComponent.endDate,
96
+				searchQuery:{
97
+					statusValue: 'close',
98
+					overtimeId: 1,
99
+				}
100
+			}
101
+		}else{
102
+			query = {
103
+				startDate: data.startDate + ' ' + '00:00:00',
104
+				endDate: data.startDate + ' ' + '23:59:59',
105
+				searchQuery:{
106
+					statusValue: 'close',
107
+					overtimeId: 1,
108
+					groupId: this.fieldConfig.fields.userId ? undefined : (this.fieldConfig.fields.groupId || undefined),
109
+					userId: this.fieldConfig.fields.userId || undefined,
110
+					categoryId: this.fieldConfig.fields.categoryId || undefined,
111
+					sourceId: this.fieldConfig.fields.sourceId || undefined,
112
+					hierarchy: this.fieldConfig.fields.hierarchy || undefined,
113
+				}
114
+			}
115
+		}
116
+
117
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
118
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
119
+	}
120
+	
121
+	// 数据下钻
122
+	viewDetail3(data, type){
123
+		let query = null;
124
+		if(type=='all'){
125
+			query = {
126
+				startDate: this.customChangeDateComponent.startDate,
127
+				endDate: this.customChangeDateComponent.endDate,
128
+				searchQuery:{
129
+					statusValue: 'close',
130
+					isHangId: 1
131
+				}
132
+			}
133
+		}else{
134
+			query = {
135
+				startDate: data.startDate + ' ' + '00:00:00',
136
+				endDate: data.startDate + ' ' + '23:59:59',
137
+				searchQuery:{
138
+					statusValue: 'close',
139
+					isHangId: 1,
140
+					groupId: this.fieldConfig.fields.userId ? undefined : (this.fieldConfig.fields.groupId || undefined),
141
+					userId: this.fieldConfig.fields.userId || undefined,
142
+					categoryId: this.fieldConfig.fields.categoryId || undefined,
143
+					sourceId: this.fieldConfig.fields.sourceId || undefined,
144
+					hierarchy: this.fieldConfig.fields.hierarchy || undefined,
145
+				}
146
+			}
147
+		}
148
+
149
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
150
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
151
+	}
152
+	
153
+	// 数据下钻
154
+	viewDetail4(data, type){
155
+		let query = null
156
+		if(type=='all'){
157
+			query = {
158
+				startDate: this.customChangeDateComponent.startDate,
159
+				endDate: this.customChangeDateComponent.endDate,
160
+				searchQuery:{
161
+					statusValue: 'close',
162
+					evaluateId: 20424
163
+				}
164
+			}
165
+		}else{
166
+			query = {
167
+				startDate: data.startDate + ' ' + '00:00:00',
168
+				endDate: data.startDate + ' ' + '23:59:59',
169
+				searchQuery:{
170
+					statusValue: 'close',
171
+					evaluateId: 20424,
172
+					groupId: this.fieldConfig.fields.userId ? undefined : (this.fieldConfig.fields.groupId || undefined),
173
+					userId: this.fieldConfig.fields.userId || undefined,
174
+					categoryId: this.fieldConfig.fields.categoryId || undefined,
175
+					sourceId: this.fieldConfig.fields.sourceId || undefined,
176
+					hierarchy: this.fieldConfig.fields.hierarchy || undefined,
177
+				}
178
+			}
179
+		}
180
+
181
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
182
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
183
+	}
184
+	
58 185
   getQueryParams(){
59 186
     let queryParams = this.tabService.getQueryParams();
60 187
     this.tabService.clearQueryParams();

+ 14 - 5
src/app/views/new-statistics/maintenance-statistics/synthesize-statistics/synthesize-statistics.component.ts

@@ -114,7 +114,7 @@ export class SynthesizeStatisticsComponent implements OnInit, AfterViewInit {
114 114
 			startDate: this.customChangeDateComponent.startDate,
115 115
 			endDate: this.customChangeDateComponent.endDate,
116 116
 			searchQuery:{
117
-				wxDegreeId: 20424
117
+				evaluateId: 20424
118 118
 			}
119 119
 		}
120 120
 		sessionStorage.setItem('maintenanceData', JSON.stringify(query))
@@ -133,10 +133,10 @@ export class SynthesizeStatisticsComponent implements OnInit, AfterViewInit {
133 133
 			}
134 134
 		}
135 135
 		if(this.activeIndex==0){
136
-			query.searchQuery.userId = data.userId
136
+			query.searchQuery.userId = data.userId ? data.userId : -1
137 137
 			delete query.searchQuery.groupId
138 138
 		}else{
139
-			query.searchQuery.groupId = data.groupId
139
+			query.searchQuery.groupId = data.groupId ? data.groupId: -1
140 140
 			delete query.searchQuery.userId
141 141
 		}
142 142
 		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
@@ -155,10 +155,10 @@ export class SynthesizeStatisticsComponent implements OnInit, AfterViewInit {
155 155
 			}
156 156
 		}
157 157
 		if(this.activeIndex==0){
158
-			query.searchQuery.userId = data.userId
158
+			query.searchQuery.userId = data.userId ? data.userId : -1
159 159
 			delete query.searchQuery.groupId
160 160
 		}else{
161
-			query.searchQuery.groupId = data.groupId
161
+			query.searchQuery.groupId = data.groupId ? data.groupId: -1
162 162
 			delete query.searchQuery.userId
163 163
 		}
164 164
 		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
@@ -167,6 +167,15 @@ export class SynthesizeStatisticsComponent implements OnInit, AfterViewInit {
167 167
 	
168 168
 	// 课科室费用top5
169 169
 	viewDept(data){
170
+		let query = {
171
+			startDate: this.customChangeDateComponent.startDate,
172
+			endDate: this.customChangeDateComponent.endDate,
173
+			repairDeptId: data.repairDeptId ? data.repairDeptId : -1,
174
+			searchQuery:{
175
+				statusValue: 'close',
176
+			}
177
+		}
178
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
170 179
 		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
171 180
 	}
172 181
 	

+ 8 - 8
src/app/views/new-statistics/maintenance-statistics/tripartite-company-statistics/tripartite-company-statistics.component.html

@@ -47,15 +47,15 @@
47 47
   <tbody>
48 48
     <tr *ngFor="let data of listOfData">
49 49
       <td>{{ data.companyName }}</td>
50
-      <td>{{ data.sum }}</td>
50
+      <td (click)="viewDetail1(data)">{{ data.sum }}</td>
51 51
       <td>{{ data.avgResponseTime }}</td>
52 52
       <td>{{ data.avgResolvedTime }}</td>
53
-      <td>{{ data.resolvedOverNum }}</td>
54
-      <td>{{ data.overTimeNum }}</td>
53
+      <td (click)="viewDetail2(data)">{{ data.resolvedOverNum }}</td>
54
+      <td (click)="viewDetail3(data)">{{ data.overTimeNum }}</td>
55 55
       <td>{{ data.consumablePrice }}</td>
56 56
       <td>{{ data.workHourPrice }}</td>
57 57
       <td>{{ data.totalPrice }}</td>
58
-      <td>{{ data.negativeNum }}</td>
58
+      <td (click)="viewDetail4(data)">{{ data.negativeNum }}</td>
59 59
       <td>{{ data.favorableRate }}</td>
60 60
     </tr>
61 61
   </tbody>
@@ -63,15 +63,15 @@
63 63
     <table class="footTable">
64 64
       <tr *ngFor="let data of listOfDataEnd">
65 65
         <td style="width: 10%">{{ data.companyName }}</td>
66
-        <td style="width: 9%">{{ data.sum }}</td>
66
+        <td style="width: 9%" (click)="viewDetail1(data, 'all')">{{ data.sum }}</td>
67 67
         <td style="width: 9%">{{ data.avgResponseTime }}</td>
68 68
         <td style="width: 9%">{{ data.avgResolvedTime }}</td>
69
-        <td style="width: 9%">{{ data.resolvedOverNum }}</td>
70
-        <td style="width: 9%">{{ data.overTimeNum }}</td>
69
+        <td style="width: 9%" (click)="viewDetail2(data, 'all')">{{ data.resolvedOverNum }}</td>
70
+        <td style="width: 9%" (click)="viewDetail3(data, 'all')">{{ data.overTimeNum }}</td>
71 71
         <td style="width: 9%">{{ data.consumablePrice }}</td>
72 72
         <td style="width: 9%">{{ data.workHourPrice }}</td>
73 73
         <td style="width: 9%">{{ data.totalPrice }}</td>
74
-        <td style="width: 9%">{{ data.negativeNum }}</td>
74
+        <td style="width: 9%" (click)="viewDetail4(data, 'all')">{{ data.negativeNum }}</td>
75 75
         <td style="width: 9%">{{ data.favorableRate }}</td>
76 76
       </tr>
77 77
     </table>

+ 136 - 1
src/app/views/new-statistics/maintenance-statistics/tripartite-company-statistics/tripartite-company-statistics.component.ts

@@ -4,7 +4,7 @@ import { Subject } from 'rxjs';
4 4
 import { NzMessageService } from 'ng-zorro-antd/message';
5 5
 import { Component, OnInit, HostListener, AfterViewInit, ViewChild } from "@angular/core";
6 6
 import { MainService } from 'src/app/services/main.service';
7
-import { ActivatedRoute } from '@angular/router';
7
+import { ActivatedRoute, Router } from '@angular/router';
8 8
 import { CustomChangeDateComponent } from '../../components/custom-change-date/custom-change-date.component';
9 9
 @Component({
10 10
   selector: "app-tripartite-company-statistics",
@@ -17,6 +17,7 @@ export class TripartiteCompanyStatisticsComponent implements OnInit, AfterViewIn
17 17
     private mainService: MainService,
18 18
     private message: NzMessageService,
19 19
     private route: ActivatedRoute,
20
+		private router: Router,
20 21
     private tabService: TabService,
21 22
   ) {}
22 23
 
@@ -53,7 +54,141 @@ export class TripartiteCompanyStatisticsComponent implements OnInit, AfterViewIn
53 54
 
54 55
     }, 0)
55 56
   }
57
+	
58
+	// 数据下钻
59
+	viewDetail1(data, type){
60
+		let query = null
61
+		if(type=='all'){
62
+			query = {
63
+				startDate: this.customChangeDateComponent.startDate || undefined,
64
+				endDate: this.customChangeDateComponent.endDate || undefined,
65
+				searchQuery:{
66
+					statusValue: 'close',
67
+				}
68
+			}
69
+		}else{
70
+			query = {
71
+				startDate: this.customChangeDateComponent.startDate || undefined,
72
+				endDate: this.customChangeDateComponent.endDate || undefined,
73
+				repairDeptId: this.fieldConfig.fields.repairDeptId || undefined,
74
+				searchQuery:{
75
+					statusValue: 'close',
76
+					categoryId: this.fieldConfig.fields.categoryId || undefined,
77
+					hierarchy: this.fieldConfig.fields.hierarchy || undefined,
78
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
79
+					floorId: this.fieldConfig.fields.floorId || undefined,
80
+					groupId: this.fieldConfig.fields.groupId || undefined,
81
+					companyId: data.companyId,
82
+				}
83
+			}
84
+		}
56 85
 
86
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
87
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
88
+	}
89
+	
90
+	// 数据下钻
91
+	viewDetail2(data, type){
92
+		let query = null
93
+		if(type=='all'){
94
+			let query = {
95
+				startDate: this.customChangeDateComponent.startDate || undefined,
96
+				endDate: this.customChangeDateComponent.endDate || undefined,
97
+				searchQuery:{
98
+					statusValue: 'close',
99
+					overtimeId: 1,
100
+				}
101
+			}
102
+		}else{
103
+			let query = {
104
+				startDate: this.customChangeDateComponent.startDate || undefined,
105
+				endDate: this.customChangeDateComponent.endDate || undefined,
106
+				repairDeptId: this.fieldConfig.fields.repairDeptId || undefined,
107
+				searchQuery:{
108
+					statusValue: 'close',
109
+					overtimeId: 1,
110
+					categoryId: this.fieldConfig.fields.categoryId || undefined,
111
+					hierarchy: this.fieldConfig.fields.hierarchy || undefined,
112
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
113
+					floorId: this.fieldConfig.fields.floorId || undefined,
114
+					groupId: this.fieldConfig.fields.groupId || undefined,
115
+					companyId: data.companyId,
116
+				}
117
+			}
118
+		}
119
+
120
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
121
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
122
+	}
123
+	
124
+	// 数据下钻
125
+	viewDetail3(data, type){
126
+		let query = null
127
+		if(type=='all'){
128
+			query = {
129
+				startDate: this.customChangeDateComponent.startDate || undefined,
130
+				endDate: this.customChangeDateComponent.endDate || undefined,
131
+				searchQuery:{
132
+					statusValue: 'close',
133
+					isHangId: 1,
134
+				}
135
+			}
136
+		}else{
137
+			query = {
138
+				startDate: this.customChangeDateComponent.startDate || undefined,
139
+				endDate: this.customChangeDateComponent.endDate || undefined,
140
+				repairDeptId: this.fieldConfig.fields.repairDeptId || undefined,
141
+				searchQuery:{
142
+					statusValue: 'close',
143
+					isHangId: 1,
144
+					categoryId: this.fieldConfig.fields.categoryId || undefined,
145
+					hierarchy: this.fieldConfig.fields.hierarchy || undefined,
146
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
147
+					floorId: this.fieldConfig.fields.floorId || undefined,
148
+					groupId: this.fieldConfig.fields.groupId || undefined,
149
+					companyId: data.companyId,
150
+				}
151
+			}
152
+		}
153
+
154
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
155
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
156
+	}
157
+	
158
+	// 数据下钻
159
+	viewDetail4(data, type){
160
+		let query = null
161
+		if(type=='all'){
162
+			query = {
163
+				startDate: this.customChangeDateComponent.startDate || undefined,
164
+				endDate: this.customChangeDateComponent.endDate || undefined,
165
+				searchQuery:{
166
+					statusValue: 'close',
167
+					evaluateId: 20424,
168
+				}
169
+			}
170
+		}else{
171
+			query = {
172
+				startDate: this.customChangeDateComponent.startDate || undefined,
173
+				endDate: this.customChangeDateComponent.endDate || undefined,
174
+				repairDeptId: this.fieldConfig.fields.repairDeptId || undefined,
175
+				searchQuery:{
176
+					statusValue: 'close',
177
+					evaluateId: 20424,
178
+					categoryId: this.fieldConfig.fields.categoryId || undefined,
179
+					hierarchy: this.fieldConfig.fields.hierarchy || undefined,
180
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
181
+					floorId: this.fieldConfig.fields.floorId || undefined,
182
+					groupId: this.fieldConfig.fields.groupId || undefined,
183
+					companyId: data.companyId,
184
+				}
185
+			}
186
+		}
187
+
188
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
189
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
190
+	}
191
+	
57 192
   getQueryParams(){
58 193
     let queryParams = this.tabService.getQueryParams();
59 194
     this.tabService.clearQueryParams();

+ 12 - 12
src/app/views/new-statistics/maintenance-statistics/user-evaluate-statistics/user-evaluate-statistics.component.html

@@ -47,13 +47,13 @@
47 47
   <tbody>
48 48
     <tr *ngFor="let data of listOfData">
49 49
       <td>{{ data.userName }}<ng-container *ngIf="data.userAccount">({{ data.userAccount }})</ng-container></td>
50
-      <td>{{ data.sum }}</td>
50
+      <td (click)="viewDetail1(data)">{{ data.sum }}</td>
51 51
       <td>{{ data.degreeCount }}</td>
52
-      <td>{{ data.oneStar }}</td>
53
-      <td>{{ data.twoStar }}</td>
54
-      <td>{{ data.threeStar }}</td>
55
-      <td>{{ data.fourStar }}</td>
56
-      <td>{{ data.fiveStar }}</td>
52
+      <td (click)="viewDetail2(data)">{{ data.oneStar }}</td>
53
+      <td (click)="viewDetail3(data)">{{ data.twoStar }}</td>
54
+      <td (click)="viewDetail4(data)">{{ data.threeStar }}</td>
55
+      <td (click)="viewDetail5(data)">{{ data.fourStar }}</td>
56
+      <td (click)="viewDetail6(data)">{{ data.fiveStar }}</td>
57 57
       <td>{{ data.totalStar }}</td>
58 58
       <td>{{ data.avgStar }}</td>
59 59
     </tr>
@@ -62,13 +62,13 @@
62 62
     <table class="footTable">
63 63
       <tr *ngFor="let data of listOfDataEnd">
64 64
         <td style="width: 10%">{{ data.userName }}</td>
65
-        <td style="width: 10%">{{ data.sum }}</td>
65
+        <td style="width: 10%" (click)="viewDetail1(data, 'all')">{{ data.sum }}</td>
66 66
         <td style="width: 10%">{{ data.degreeCount }}</td>
67
-        <td style="width: 10%">{{ data.oneStar }}</td>
68
-        <td style="width: 10%">{{ data.twoStar }}</td>
69
-        <td style="width: 10%">{{ data.threeStar }}</td>
70
-        <td style="width: 10%">{{ data.fourStar }}</td>
71
-        <td style="width: 10%">{{ data.fiveStar }}</td>
67
+        <td style="width: 10%" (click)="viewDetail2(data, 'all')">{{ data.oneStar }}</td>
68
+        <td style="width: 10%" (click)="viewDetail3(data, 'all')">{{ data.twoStar }}</td>
69
+        <td style="width: 10%" (click)="viewDetail4(data, 'all')">{{ data.threeStar }}</td>
70
+        <td style="width: 10%" (click)="viewDetail5(data, 'all')">{{ data.fourStar }}</td>
71
+        <td style="width: 10%" (click)="viewDetail6(data, 'all')">{{ data.fiveStar }}</td>
72 72
         <td style="width: 10%">{{ data.totalStar }}</td>
73 73
         <td style="width: 10%">{{ data.avgStar }}</td>
74 74
       </tr>

+ 204 - 1
src/app/views/new-statistics/maintenance-statistics/user-evaluate-statistics/user-evaluate-statistics.component.ts

@@ -3,7 +3,7 @@ import { Subject } from 'rxjs';
3 3
 import { NzMessageService } from 'ng-zorro-antd/message';
4 4
 import { Component, OnInit, HostListener, AfterViewInit, ViewChild } from "@angular/core";
5 5
 import { MainService } from 'src/app/services/main.service';
6
-import { ActivatedRoute } from '@angular/router';
6
+import { ActivatedRoute, Router } from '@angular/router';
7 7
 import { TabService } from '../../services/tab.service';
8 8
 import { CustomChangeDateComponent } from '../../components/custom-change-date/custom-change-date.component';
9 9
 @Component({
@@ -17,6 +17,7 @@ export class UserEvaluateStatisticsComponent implements OnInit, AfterViewInit {
17 17
     private mainService: MainService,
18 18
     private message: NzMessageService,
19 19
     private route: ActivatedRoute,
20
+		private router: Router,
20 21
     private tabService: TabService,
21 22
   ) {}
22 23
 
@@ -54,7 +55,209 @@ export class UserEvaluateStatisticsComponent implements OnInit, AfterViewInit {
54 55
 
55 56
     }, 0)
56 57
   }
58
+	
59
+	// 数据下钻
60
+	viewDetail1(data, type){
61
+		let query = null
62
+		if(type=='all'){
63
+			query = {
64
+				startDate: this.customChangeDateComponent.startDate || undefined,
65
+				endDate: this.customChangeDateComponent.endDate || undefined,
66
+				searchQuery:{
67
+					statusValue: 'close',
68
+				}
69
+			}
70
+		}else{
71
+			query = {
72
+				startDate: this.customChangeDateComponent.startDate || undefined,
73
+				endDate: this.customChangeDateComponent.endDate || undefined,
74
+				repairDeptId: this.fieldConfig.fields.repairDeptId || undefined,
75
+				searchQuery:{
76
+					statusValue: 'close',
77
+					categoryId: this.fieldConfig.fields.categoryId || undefined,
78
+					hierarchy: this.fieldConfig.fields.hierarchy || undefined,
79
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
80
+					floorId: this.fieldConfig.fields.floorId || undefined,
81
+					groupId: this.fieldConfig.fields.groupId || undefined,
82
+					userId: data.userId || undefined,
83
+				}
84
+			}
85
+		}
57 86
 
87
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
88
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
89
+	}
90
+	
91
+	// 数据下钻
92
+	viewDetail2(data, type){
93
+		let query = null
94
+		if(type=='all'){
95
+			query = {
96
+				startDate: this.customChangeDateComponent.startDate || undefined,
97
+				endDate: this.customChangeDateComponent.endDate || undefined,
98
+				searchQuery:{
99
+					statusValue: 'close',
100
+					evaluateId: 20424,
101
+				}
102
+			}
103
+		}else{
104
+			query = {
105
+				startDate: this.customChangeDateComponent.startDate || undefined,
106
+				endDate: this.customChangeDateComponent.endDate || undefined,
107
+				repairDeptId: this.fieldConfig.fields.repairDeptId || undefined,
108
+				searchQuery:{
109
+					statusValue: 'close',
110
+					evaluateId: 20424,
111
+					categoryId: this.fieldConfig.fields.categoryId || undefined,
112
+					hierarchy: this.fieldConfig.fields.hierarchy || undefined,
113
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
114
+					floorId: this.fieldConfig.fields.floorId || undefined,
115
+					groupId: this.fieldConfig.fields.groupId || undefined,
116
+					userId: data.userId || undefined,
117
+				}
118
+			}
119
+		}
120
+
121
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
122
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
123
+	}
124
+	
125
+	// 数据下钻
126
+	viewDetail3(data, type){
127
+		let query = null
128
+		if(type=='all'){
129
+			query = {
130
+				startDate: this.customChangeDateComponent.startDate || undefined,
131
+				endDate: this.customChangeDateComponent.endDate || undefined,
132
+				searchQuery:{
133
+					statusValue: 'close',
134
+					evaluateId: 20423,
135
+				}
136
+			}
137
+		}else{
138
+			query = {
139
+				startDate: this.customChangeDateComponent.startDate || undefined,
140
+				endDate: this.customChangeDateComponent.endDate || undefined,
141
+				repairDeptId: this.fieldConfig.fields.repairDeptId || undefined,
142
+				searchQuery:{
143
+					statusValue: 'close',
144
+					evaluateId: 20423,
145
+					categoryId: this.fieldConfig.fields.categoryId || undefined,
146
+					hierarchy: this.fieldConfig.fields.hierarchy || undefined,
147
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
148
+					floorId: this.fieldConfig.fields.floorId || undefined,
149
+					groupId: this.fieldConfig.fields.groupId || undefined,
150
+					userId: data.userId || undefined,
151
+				}
152
+			}
153
+		}
154
+
155
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
156
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
157
+	}
158
+	
159
+	// 数据下钻
160
+	viewDetail4(data, type){
161
+		let query = null
162
+		if(type=='all'){
163
+			query = {
164
+				startDate: this.customChangeDateComponent.startDate || undefined,
165
+				endDate: this.customChangeDateComponent.endDate || undefined,
166
+				searchQuery:{
167
+					statusValue: 'close',
168
+					evaluateId: 20422,
169
+				}
170
+			}
171
+		}else{
172
+			query = {
173
+				startDate: this.customChangeDateComponent.startDate || undefined,
174
+				endDate: this.customChangeDateComponent.endDate || undefined,
175
+				repairDeptId: this.fieldConfig.fields.repairDeptId || undefined,
176
+				searchQuery:{
177
+					statusValue: 'close',
178
+					evaluateId: 20422,
179
+					categoryId: this.fieldConfig.fields.categoryId || undefined,
180
+					hierarchy: this.fieldConfig.fields.hierarchy || undefined,
181
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
182
+					floorId: this.fieldConfig.fields.floorId || undefined,
183
+					groupId: this.fieldConfig.fields.groupId || undefined,
184
+					userId: data.userId || undefined,
185
+				}
186
+			}
187
+		}
188
+
189
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
190
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
191
+	}
192
+	
193
+	// 数据下钻
194
+	viewDetail5(data, type){
195
+		let query = null
196
+		if(type=='all'){
197
+			query = {
198
+				startDate: this.customChangeDateComponent.startDate || undefined,
199
+				endDate: this.customChangeDateComponent.endDate || undefined,
200
+				searchQuery:{
201
+					statusValue: 'close',
202
+					evaluateId: 20421,
203
+				}
204
+			}
205
+		}else{
206
+			query = {
207
+				startDate: this.customChangeDateComponent.startDate || undefined,
208
+				endDate: this.customChangeDateComponent.endDate || undefined,
209
+				repairDeptId: this.fieldConfig.fields.repairDeptId || undefined,
210
+				searchQuery:{
211
+					statusValue: 'close',
212
+					evaluateId: 20421,
213
+					categoryId: this.fieldConfig.fields.categoryId || undefined,
214
+					hierarchy: this.fieldConfig.fields.hierarchy || undefined,
215
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
216
+					floorId: this.fieldConfig.fields.floorId || undefined,
217
+					groupId: this.fieldConfig.fields.groupId || undefined,
218
+					userId: data.userId || undefined,
219
+				}
220
+			}
221
+		}
222
+
223
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
224
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
225
+	}
226
+	
227
+	// 数据下钻
228
+	viewDetail6(data, type){
229
+		let query = null
230
+		if(type=='all'){
231
+			query = {
232
+				startDate: this.customChangeDateComponent.startDate || undefined,
233
+				endDate: this.customChangeDateComponent.endDate || undefined,
234
+				searchQuery:{
235
+					statusValue: 'close',
236
+					evaluateId: 20420
237
+				}
238
+			}
239
+		}else{
240
+			query = {
241
+				startDate: this.customChangeDateComponent.startDate || undefined,
242
+				endDate: this.customChangeDateComponent.endDate || undefined,
243
+				repairDeptId: this.fieldConfig.fields.repairDeptId || undefined,
244
+				searchQuery:{
245
+					statusValue: 'close',
246
+					evaluateId: 20420,
247
+					categoryId: this.fieldConfig.fields.categoryId || undefined,
248
+					hierarchy: this.fieldConfig.fields.hierarchy || undefined,
249
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
250
+					floorId: this.fieldConfig.fields.floorId || undefined,
251
+					groupId: this.fieldConfig.fields.groupId || undefined,
252
+					userId: data.userId || undefined,
253
+				}
254
+			}
255
+		}
256
+
257
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
258
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
259
+	}
260
+	
58 261
   getQueryParams(){
59 262
     let queryParams = this.tabService.getQueryParams();
60 263
     this.tabService.clearQueryParams();

+ 8 - 8
src/app/views/new-statistics/maintenance-statistics/user-statistics/user-statistics.component.html

@@ -48,16 +48,16 @@
48 48
   <tbody>
49 49
     <tr *ngFor="let data of listOfData">
50 50
       <td>{{ data.userName }}<ng-container *ngIf="data.userAccount">({{ data.userAccount }})</ng-container></td>
51
-      <td>{{ data.sum }}</td>
51
+      <td (click)="viewDetail1(data)">{{ data.sum }}</td>
52 52
       <td>{{ data.avgResponseTime }}</td>
53 53
       <td>{{ data.avgResolvedTime }}</td>
54
-      <td>{{ data.resolvedOverNum }}</td>
55
-      <td>{{ data.overTimeNum }}</td>
54
+      <td (click)="viewDetail2(data)">{{ data.resolvedOverNum }}</td>
55
+      <td (click)="viewDetail3(data)">{{ data.overTimeNum }}</td>
56 56
       <td>{{ data.consumablePrice }}</td>
57 57
       <td>{{ data.workHourPrice }}</td>
58 58
       <td>{{ data.totalPrice }}</td>
59 59
 			<td>{{ data.totalScore }}</td>
60
-      <td>{{ data.negativeNum }}</td>
60
+      <td (click)="viewDetail4(data)">{{ data.negativeNum }}</td>
61 61
       <td>{{ data.favorableRate }}</td>
62 62
     </tr>
63 63
   </tbody>
@@ -65,16 +65,16 @@
65 65
     <table class="footTable">
66 66
       <tr *ngFor="let data of listOfDataEnd">
67 67
         <td style="width: 8%">{{ data.userName }}</td>
68
-        <td style="width: 8%">{{ data.sum }}</td>
68
+        <td style="width: 8%" (click)="viewDetail1(data, 'all')">{{ data.sum }}</td>
69 69
         <td style="width: 8%">{{ data.avgResponseTime }}</td>
70 70
         <td style="width: 8%">{{ data.avgResolvedTime }}</td>
71
-        <td style="width: 8%">{{ data.resolvedOverNum }}</td>
72
-        <td style="width: 8%">{{ data.overTimeNum }}</td>
71
+        <td style="width: 8%" (click)="viewDetail2(data, 'all')">{{ data.resolvedOverNum }}</td>
72
+        <td style="width: 8%" (click)="viewDetail3(data, 'all')">{{ data.overTimeNum }}</td>
73 73
         <td style="width: 8%">{{ data.consumablePrice }}</td>
74 74
         <td style="width: 8%">{{ data.workHourPrice }}</td>
75 75
         <td style="width: 8%">{{ data.totalPrice }}</td>
76 76
 				<td style="width: 8%">{{ data.totalScore }}</td>
77
-        <td style="width: 8%">{{ data.negativeNum }}</td>
77
+        <td style="width: 8%" (click)="viewDetail4(data, 'all')">{{ data.negativeNum }}</td>
78 78
         <td style="width: 8%">{{ data.favorableRate }}</td>
79 79
       </tr>
80 80
     </table>

+ 132 - 1
src/app/views/new-statistics/maintenance-statistics/user-statistics/user-statistics.component.ts

@@ -3,7 +3,7 @@ import { Subject } from 'rxjs';
3 3
 import { NzMessageService } from 'ng-zorro-antd/message';
4 4
 import { Component, OnInit, HostListener, AfterViewInit, ViewChild } from "@angular/core";
5 5
 import { MainService } from 'src/app/services/main.service';
6
-import { ActivatedRoute } from '@angular/router';
6
+import { ActivatedRoute, Router } from '@angular/router';
7 7
 import { TabService } from '../../services/tab.service';
8 8
 import { CustomChangeDateComponent } from '../../components/custom-change-date/custom-change-date.component';
9 9
 @Component({
@@ -17,6 +17,7 @@ export class UserStatisticsComponent implements OnInit, AfterViewInit {
17 17
     private mainService: MainService,
18 18
     private message: NzMessageService,
19 19
     private route: ActivatedRoute,
20
+		private router: Router,
20 21
     private tabService: TabService,
21 22
   ) {}
22 23
 
@@ -54,7 +55,137 @@ export class UserStatisticsComponent implements OnInit, AfterViewInit {
54 55
 
55 56
     }, 0)
56 57
   }
58
+	
59
+	// 数据下钻
60
+	viewDetail1(data, type){
61
+		let query = null
62
+		if(type=='all'){
63
+			query = {
64
+				startDate: this.customChangeDateComponent.startDate || undefined,
65
+				endDate: this.customChangeDateComponent.endDate || undefined,
66
+				searchQuery:{
67
+					statusValue: 'close',
68
+				}
69
+			}
70
+		}else{
71
+			query = {
72
+				startDate: this.customChangeDateComponent.startDate || undefined,
73
+				endDate: this.customChangeDateComponent.endDate || undefined,
74
+				searchQuery:{
75
+					statusValue: 'close',
76
+					userId: data.userId ? data.userId : -1,
77
+					categoryId: this.fieldConfig.fields.categoryId || undefined,
78
+					hierarchy: this.fieldConfig.fields.hierarchy || undefined,
79
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
80
+					floorId: this.fieldConfig.fields.floorId || undefined,
81
+					groupId: this.fieldConfig.fields.groupId || undefined,
82
+				}
83
+			}
84
+		}
57 85
 
86
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
87
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
88
+	}
89
+	
90
+	// 数据下钻
91
+	viewDetail2(data, type){
92
+		let query = null
93
+		if(type=='all'){
94
+			query = {
95
+				startDate: this.customChangeDateComponent.startDate || undefined,
96
+				endDate: this.customChangeDateComponent.endDate || undefined,
97
+				searchQuery:{
98
+					statusValue: 'close',
99
+					overtimeId: 1,
100
+				}
101
+			}
102
+		}else{
103
+			query = {
104
+				startDate: this.customChangeDateComponent.startDate || undefined,
105
+				endDate: this.customChangeDateComponent.endDate || undefined,
106
+				searchQuery:{
107
+					statusValue: 'close',
108
+					userId: data.userId ? data.userId : -1,
109
+					overtimeId: 1,
110
+					categoryId: this.fieldConfig.fields.categoryId || undefined,
111
+					hierarchy: this.fieldConfig.fields.hierarchy || undefined,
112
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
113
+					floorId: this.fieldConfig.fields.floorId || undefined,
114
+					groupId: this.fieldConfig.fields.groupId || undefined,
115
+				}
116
+			}
117
+		}
118
+
119
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
120
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
121
+	}
122
+	
123
+	// 数据下钻
124
+	viewDetail3(data, type){
125
+		let query = null
126
+		if(type=='all'){
127
+			query = {
128
+				startDate: this.customChangeDateComponent.startDate || undefined,
129
+				endDate: this.customChangeDateComponent.endDate || undefined,
130
+				searchQuery:{
131
+					statusValue: 'close',
132
+					isHangId: 1,
133
+				}
134
+			}
135
+		}else{
136
+			query = {
137
+				startDate: this.customChangeDateComponent.startDate || undefined,
138
+				endDate: this.customChangeDateComponent.endDate || undefined,
139
+				searchQuery:{
140
+					statusValue: 'close',
141
+					userId: data.userId ? data.userId : -1,
142
+					isHangId: 1,
143
+					categoryId: this.fieldConfig.fields.categoryId || undefined,
144
+					hierarchy: this.fieldConfig.fields.hierarchy || undefined,
145
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
146
+					floorId: this.fieldConfig.fields.floorId || undefined,
147
+					groupId: this.fieldConfig.fields.groupId || undefined,
148
+				}
149
+			}
150
+		}
151
+
152
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
153
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
154
+	}
155
+	
156
+	// 数据下钻
157
+	viewDetail4(data, type){
158
+		let query = null
159
+		if(type=='all'){
160
+			query = {
161
+				startDate: this.customChangeDateComponent.startDate || undefined,
162
+				endDate: this.customChangeDateComponent.endDate || undefined,
163
+				searchQuery:{
164
+					statusValue: 'close',
165
+					evaluateId: 20424,
166
+				}
167
+			}
168
+		}else{
169
+			query = {
170
+				startDate: this.customChangeDateComponent.startDate || undefined,
171
+				endDate: this.customChangeDateComponent.endDate || undefined,
172
+				searchQuery:{
173
+					statusValue: 'close',
174
+					userId: data.userId ? data.userId : -1,
175
+					evaluateId: 20424,
176
+					categoryId: this.fieldConfig.fields.categoryId || undefined,
177
+					hierarchy: this.fieldConfig.fields.hierarchy || undefined,
178
+					buildingId: this.fieldConfig.fields.buildingId || undefined,
179
+					floorId: this.fieldConfig.fields.floorId || undefined,
180
+					groupId: this.fieldConfig.fields.groupId || undefined,
181
+				}
182
+			}
183
+		}
184
+
185
+		sessionStorage.setItem('maintenanceData',JSON.stringify(query))
186
+		this.router.navigateByUrl('/newStatistics/maintenanceStatistics/incidentList')
187
+	}
188
+	
58 189
   getQueryParams(){
59 190
     let queryParams = this.tabService.getQueryParams();
60 191
     this.tabService.clearQueryParams();