seimin преди 3 месеца
родител
ревизия
c7b6fc6409
променени са 25 файла, в които са добавени 381 реда и са изтрити 222 реда
  1. 4 2
      src/app/components/incidentManagement/incident-detail/incident-detail.component.ts
  2. 5 5
      src/app/components/order-scope/order-scope.component.ts
  3. 1 2
      src/app/views/new-statistics/components/query-range/query-range.component.ts
  4. 1 1
      src/app/views/new-statistics/distribution-inspection-statistics/department-business-statistics/department-business-statistics.component.html
  5. 3 2
      src/app/views/new-statistics/distribution-inspection-statistics/department-business-statistics/department-business-statistics.component.ts
  6. 53 51
      src/app/views/new-statistics/distribution-inspection-statistics/department-quality-control-statistics/department-quality-control-statistics.component.html
  7. 16 1
      src/app/views/new-statistics/distribution-inspection-statistics/department-quality-control-statistics/department-quality-control-statistics.component.less
  8. 14 1
      src/app/views/new-statistics/distribution-inspection-statistics/department-quality-control-statistics/department-quality-control-statistics.component.ts
  9. 28 23
      src/app/views/new-statistics/distribution-inspection-statistics/distribution-department-evaluate-statistics/distribution-department-evaluate-statistics.component.html
  10. 16 1
      src/app/views/new-statistics/distribution-inspection-statistics/distribution-department-evaluate-statistics/distribution-department-evaluate-statistics.component.less
  11. 52 9
      src/app/views/new-statistics/distribution-inspection-statistics/distribution-department-evaluate-statistics/distribution-department-evaluate-statistics.component.ts
  12. 1 1
      src/app/views/new-statistics/distribution-inspection-statistics/distribution-department-source-statistics/distribution-department-source-statistics.component.html
  13. 2 1
      src/app/views/new-statistics/distribution-inspection-statistics/distribution-department-source-statistics/distribution-department-source-statistics.component.ts
  14. 1 0
      src/app/views/new-statistics/distribution-inspection-statistics/distribution-synthesize-statistics/distribution-synthesize-statistics.component.less
  15. 53 51
      src/app/views/new-statistics/maintenance-statistics/department-evaluate-statistics/department-evaluate-statistics.component.html
  16. 16 1
      src/app/views/new-statistics/maintenance-statistics/department-evaluate-statistics/department-evaluate-statistics.component.less
  17. 15 2
      src/app/views/new-statistics/maintenance-statistics/department-evaluate-statistics/department-evaluate-statistics.component.ts
  18. 56 54
      src/app/views/new-statistics/maintenance-statistics/department-incident-statistics/department-incident-statistics.component.html
  19. 16 1
      src/app/views/new-statistics/maintenance-statistics/department-incident-statistics/department-incident-statistics.component.less
  20. 18 5
      src/app/views/new-statistics/maintenance-statistics/department-incident-statistics/department-incident-statistics.component.ts
  21. 1 1
      src/app/views/new-statistics/maintenance-statistics/department-source-statistics/department-source-statistics.component.html
  22. 3 2
      src/app/views/new-statistics/maintenance-statistics/department-source-statistics/department-source-statistics.component.ts
  23. 1 0
      src/app/views/new-statistics/maintenance-statistics/synthesize-statistics/synthesize-statistics.component.less
  24. 2 2
      src/app/views/new-statistics/new-statistics.component.ts
  25. 3 3
      src/app/views/users-management/users-management.component.ts

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

@@ -88,12 +88,14 @@ export class IncidentDetailComponent implements OnInit {
88
         this.message.remove(this.maskFlag);
88
         this.message.remove(this.maskFlag);
89
         this.maskFlag = false;
89
         this.maskFlag = false;
90
         this.incidentData = result.data || {};
90
         this.incidentData = result.data || {};
91
-
91
+				if(this.incidentData.wxdegree){
92
+					this.incidentData.wxdegree.value = Number(this.incidentData.wxdegree.value)
93
+				}
92
         this.clickTbab(this.tabs[0]);
94
         this.clickTbab(this.tabs[0]);
93
 
95
 
94
         let logs = this.incidentData.logs || [];
96
         let logs = this.incidentData.logs || [];
95
         this.resolveLogs = logs.filter(v => v.logType.value == 'resolve').slice(0, 1);
97
         this.resolveLogs = logs.filter(v => v.logType.value == 'resolve').slice(0, 1);
96
-        this.callbackLogs = logs.filter(v => v.logType.value == 'callback').slice(0, 1);
98
+				this.callbackLogs = logs.filter(v => v.logType.value == 'callback').slice(0, 1);
97
 
99
 
98
         this.getHospitalConfig();
100
         this.getHospitalConfig();
99
       });
101
       });

+ 5 - 5
src/app/components/order-scope/order-scope.component.ts

@@ -22,7 +22,7 @@ export class OrderScopeComponent implements OnInit {
22
     orderScopeRadio: undefined,
22
     orderScopeRadio: undefined,
23
   }
23
   }
24
 	@Input() coopBtns:any;
24
 	@Input() coopBtns:any;
25
-	
25
+
26
   @Output() confirmModal = new EventEmitter();
26
   @Output() confirmModal = new EventEmitter();
27
   @Output() cancelModal = new EventEmitter();
27
   @Output() cancelModal = new EventEmitter();
28
   constructor(
28
   constructor(
@@ -45,9 +45,9 @@ export class OrderScopeComponent implements OnInit {
45
 	activeScopeTab:any;
45
 	activeScopeTab:any;
46
 	//#region 工单范围-运维start
46
 	//#region 工单范围-运维start
47
 	allDuty:number = 1;
47
 	allDuty:number = 1;
48
-	showReassign:number = 0;
48
+	showReassign:any = 0;
49
 	menuList:any;
49
 	menuList:any;
50
-	
50
+
51
   ngOnInit() {
51
   ngOnInit() {
52
 		let menuItem = JSON.parse(localStorage.getItem("menuItem"))
52
 		let menuItem = JSON.parse(localStorage.getItem("menuItem"))
53
 		this.menuList = menuItem.find(i=>i.link=='gongdanfanwei')
53
 		this.menuList = menuItem.find(i=>i.link=='gongdanfanwei')
@@ -77,7 +77,7 @@ export class OrderScopeComponent implements OnInit {
77
 				}
77
 				}
78
 			}
78
 			}
79
 		}
79
 		}
80
-		
80
+
81
 		if(this.scopeTabs.length>0){
81
 		if(this.scopeTabs.length>0){
82
 			this.activeScopeTab = this.scopeTabs[0]
82
 			this.activeScopeTab = this.scopeTabs[0]
83
 		}
83
 		}
@@ -100,7 +100,7 @@ export class OrderScopeComponent implements OnInit {
100
     itsmGetOrderScope() {
100
     itsmGetOrderScope() {
101
       // 是否不限制部门
101
       // 是否不限制部门
102
       this.allDuty = this.itsmData.allDuty === undefined ? 1 : this.itsmData.allDuty;
102
       this.allDuty = this.itsmData.allDuty === undefined ? 1 : this.itsmData.allDuty;
103
-      this.showReassign = this.itsmData.showReassign;
103
+      this.showReassign = this.itsmData.showReassign || 0;
104
 			// 权限内的院区和组
104
 			// 权限内的院区和组
105
       let hosList = this.user.infoPermission.dutyList || [];
105
       let hosList = this.user.infoPermission.dutyList || [];
106
       let groups = this.user.infoPermission.dutyGroupList || [];
106
       let groups = this.user.infoPermission.dutyGroupList || [];

+ 1 - 2
src/app/views/new-statistics/components/query-range/query-range.component.ts

@@ -53,7 +53,6 @@ export class QueryRangeComponent implements OnInit {
53
     let queryType = this.validateForm.value.queryType;
53
     let queryType = this.validateForm.value.queryType;
54
     let hospital;
54
     let hospital;
55
     let duty;
55
     let duty;
56
-		let parent = this.validateForm.value.parent;
57
     switch (queryType) {
56
     switch (queryType) {
58
       case 1:
57
       case 1:
59
         break;
58
         break;
@@ -69,7 +68,7 @@ export class QueryRangeComponent implements OnInit {
69
         duty = this.dutyOneList.find(v => v.id == this.validateForm.value.dutyOne);
68
         duty = this.dutyOneList.find(v => v.id == this.validateForm.value.dutyOne);
70
         break;
69
         break;
71
     }
70
     }
72
-    this.submitQueryRange.emit({queryType, hospital, duty, parent});
71
+    this.submitQueryRange.emit({queryType, hospital, duty});
73
     this.hideModal();
72
     this.hideModal();
74
   }
73
   }
75
 
74
 

+ 1 - 1
src/app/views/new-statistics/distribution-inspection-statistics/department-business-statistics/department-business-statistics.component.html

@@ -6,7 +6,7 @@
6
 		  <span class="label">科室</span>:
6
 		  <span class="label">科室</span>:
7
 		  <nz-select class="selectItem" [nzDropdownMatchSelectWidth]="false" nzAllowClear nzPlaceHolder="请选择科室" [(ngModel)]="deptId" nzServerSearch nzShowSearch (nzOnSearch)="changeInp($event)">
7
 		  <nz-select class="selectItem" [nzDropdownMatchSelectWidth]="false" nzAllowClear nzPlaceHolder="请选择科室" [(ngModel)]="deptId" nzServerSearch nzShowSearch (nzOnSearch)="changeInp($event)">
8
 		    <ng-container *ngFor="let option of alldepart">
8
 		    <ng-container *ngFor="let option of alldepart">
9
-		      <nz-option *ngIf="!isLoading" [nzLabel]="option.dept" [nzValue]="option.id"></nz-option>
9
+		      <nz-option *ngIf="!isLoading" [nzLabel]="option.hospital.hosName + '-' + option.dept" [nzValue]="option.id"></nz-option>
10
 		    </ng-container>
10
 		    </ng-container>
11
 		    <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
11
 		    <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
12
 		      <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
12
 		      <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...

+ 3 - 2
src/app/views/new-statistics/distribution-inspection-statistics/department-business-statistics/department-business-statistics.component.ts

@@ -129,7 +129,7 @@ export class DepartmentBusinessStatisticsComponent implements OnInit, AfterViewI
129
       let flag = dictionaryList.some((item) => item.value === 'dateOther');
129
       let flag = dictionaryList.some((item) => item.value === 'dateOther');
130
       !flag && dictionaryList.push({id: 0, name: '未知', value: 'dateOther'});
130
       !flag && dictionaryList.push({id: 0, name: '未知', value: 'dateOther'});
131
       this.dictionaryList = dictionaryList;
131
       this.dictionaryList = dictionaryList;
132
-      this.widthConfig = new Array(this.dictionaryList.length * 3 + 3).fill('100px').map((v, i) => { return (i == 0 || i == 1 && this.parent==1) || (i == 0 && this.parent==0) ? '150px' : '100px' });;
132
+      this.widthConfig = new Array(this.dictionaryList.length * 3 + 3).fill('100px').map((v, i) => { return (i == 0 || i == 1 && this.parent==1) || (i == 0 && this.parent==0) ? '150px' : '100px' });
133
       if(this.parent==1){
133
       if(this.parent==1){
134
 				this.widthValue = this.widthConfig.length * 100 + 300 * 1 + 20
134
 				this.widthValue = this.widthConfig.length * 100 + 300 * 1 + 20
135
 			}else{
135
 			}else{
@@ -264,8 +264,9 @@ export class DepartmentBusinessStatisticsComponent implements OnInit, AfterViewI
264
 	getDeparts(dept?) {
264
 	getDeparts(dept?) {
265
 	  let data = {
265
 	  let data = {
266
 	    department: {
266
 	    department: {
267
-	      cascadeHosId: this.hospital,
267
+	      statisticalHosId: this.getHosId,
268
 	      dept: dept,
268
 	      dept: dept,
269
+	      searchType: 1,
269
 	    },
270
 	    },
270
 	    idx: 0,
271
 	    idx: 0,
271
 	    sum: 20,
272
 	    sum: 20,

+ 53 - 51
src/app/views/new-statistics/distribution-inspection-statistics/department-quality-control-statistics/department-quality-control-statistics.component.html

@@ -5,7 +5,7 @@
5
       <span class="label">科室</span>:
5
       <span class="label">科室</span>:
6
       <nz-select class="selectItem" [nzDropdownMatchSelectWidth]="false" nzAllowClear nzPlaceHolder="请选择科室" [(ngModel)]="deptId" nzServerSearch nzShowSearch (nzOnSearch)="changeInp($event)">
6
       <nz-select class="selectItem" [nzDropdownMatchSelectWidth]="false" nzAllowClear nzPlaceHolder="请选择科室" [(ngModel)]="deptId" nzServerSearch nzShowSearch (nzOnSearch)="changeInp($event)">
7
         <ng-container *ngFor="let option of alldepart">
7
         <ng-container *ngFor="let option of alldepart">
8
-          <nz-option *ngIf="!isLoading" [nzLabel]="option.dept" [nzValue]="option.id"></nz-option>
8
+          <nz-option *ngIf="!isLoading" [nzLabel]="option.hospital.hosName + '-' + option.dept" [nzValue]="option.id"></nz-option>
9
         </ng-container>
9
         </ng-container>
10
         <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
10
         <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
11
           <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
11
           <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
@@ -27,56 +27,58 @@
27
   <span>{{fieldConfig.fields.taskTypeDTO?.taskName}}</span>
27
   <span>{{fieldConfig.fields.taskTypeDTO?.taskName}}</span>
28
 	<span>{{fieldConfig.fields.buildingDTO?.buildingName}}</span>
28
 	<span>{{fieldConfig.fields.buildingDTO?.buildingName}}</span>
29
 </div>
29
 </div>
30
-<nz-table class="table" [nzData]="listOfData" nzSize="middle" [nzShowPagination]="false" [nzLoading]="loading1" [nzScroll]="{ y: tableHeight + 'px' }" [nzFooter]="footerTpl">
31
-  <thead (nzSortChange)="sort($event)" nzSingleSort>
32
-    <tr>
33
-			<th nzWidth="9%" *ngIf="parent==1" nzShowSort nzSortKey="parentOrders" [(nzSort)]="sortCurrent.parentOrders">父级科室(编码)</th>
34
-      <th nzWidth="9%" nzShowSort nzSortKey="orders" [(nzSort)]="sortCurrent.orders">科室(编码)</th>
35
-      <th nzWidth="9%" nzShowSort nzSortKey="totalCount" [(nzSort)]="sortCurrent.totalCount">工单数量</th>
36
-      <th nzWidth="9%" nzShowSort nzSortKey="totalGrade" [(nzSort)]="sortCurrent.totalGrade">总积分</th>
37
-      <th nzWidth="9%" nzShowSort nzSortKey="totalPrice" [(nzSort)]="sortCurrent.totalPrice">总费用</th>
38
-			<th nzWidth="9%" nzShowSort nzSortKey="response_time_num" [(nzSort)]="sortCurrent.response_time_num">平均响应时间</th>
39
-      <th nzWidth="9%" nzShowSort nzSortKey="execution_time_num" [(nzSort)]="sortCurrent.execution_time_num">平均送达时间</th>
40
-      <th nzWidth="9%" nzShowSort nzSortKey="aveper" [(nzSort)]="sortCurrent.aveper">按时完成达标率</th>
41
-      <th nzWidth="9%" nzShowSort nzSortKey="total_time" [(nzSort)]="sortCurrent.total_time">平均总时间</th>
42
-      <th nzWidth="9%" nzShowSort nzSortKey="five_count" [(nzSort)]="sortCurrent.five_count">五分钟内工单</th>
43
-      <th nzWidth="9%" nzShowSort nzSortKey="special_close" [(nzSort)]="sortCurrent.special_close">特殊关闭数</th>
44
-    </tr>
45
-  </thead>
46
-  <tbody>
47
-    <tr *ngFor="let data of listOfData">
48
-			<td *ngIf="parent==1">{{ data.parentName || '无' }}</td>
49
-      <td>{{ data.name }}</td>
50
-      <td>{{ data.totalCount }}</td>
51
-      <td>{{ data.totalGrade }}</td>
52
-			<td>{{ data.totalPrice }}</td>
53
-      <td>{{ data.response_time_num }}</td>
54
-      <td>{{ data.execution_time_num }}</td>
55
-      <td>{{ data.aveper }}</td>
56
-      <td>{{ data.total_time }}</td>
57
-      <td>{{ data.five_count }}</td>
58
-      <td>{{ data.special_close }}</td>
59
-    </tr>
60
-  </tbody>
61
-  <ng-template #footerTpl>
62
-    <table class="footTable">
63
-      <tr *ngFor="let data of listOfDataEnd">
64
-				<td style="width: 9%" *ngIf="parent==1">{{ data.parentName }}</td>
65
-				<td style="width: 9%" *ngIf="parent==0">{{ data.name }}</td>
66
-				<td style="width: 9%" *ngIf="parent==1"></td>
67
-        <td style="width: 9%">{{ data.totalCount }}</td>
68
-        <td style="width: 9%">{{ data.totalGrade }}</td>
69
-				<td style="width: 9%">{{ data.totalPrice }}</td>
70
-        <td style="width: 9%">{{ data.response_time_num }}</td>
71
-        <td style="width: 9%">{{ data.execution_time_num }}</td>
72
-        <td style="width: 9%">{{ data.aveper }}</td>
73
-        <td style="width: 9%">{{ data.total_time }}</td>
74
-        <td style="width: 9%">{{ data.five_count }}</td>
75
-        <td style="width: 9%">{{ data.special_close }}</td>
76
-      </tr>
77
-    </table>
78
-  </ng-template>
79
-</nz-table>
30
+<div class="tableWrap">
31
+	<nz-table class="table" [nzData]="listOfData" nzSize="middle" [nzShowPagination]="false" [nzLoading]="loading1" [nzScroll]="{ y: tableHeight + 'px' }" [nzFooter]="footerTpl">
32
+		<thead (nzSortChange)="sort($event)" nzSingleSort>
33
+			<tr>
34
+				<th [nzWidth]="widthStyle" *ngIf="parent==1" nzShowSort nzSortKey="parentOrders" [(nzSort)]="sortCurrent.parentOrders">父级科室(编码)</th>
35
+				<th [nzWidth]="widthStyle" nzShowSort nzSortKey="orders" [(nzSort)]="sortCurrent.orders">科室(编码)</th>
36
+				<th [nzWidth]="widthStyle" nzShowSort nzSortKey="totalCount" [(nzSort)]="sortCurrent.totalCount">工单数量</th>
37
+				<th [nzWidth]="widthStyle" nzShowSort nzSortKey="totalGrade" [(nzSort)]="sortCurrent.totalGrade">总积分</th>
38
+				<th [nzWidth]="widthStyle" nzShowSort nzSortKey="totalPrice" [(nzSort)]="sortCurrent.totalPrice">总费用</th>
39
+				<th [nzWidth]="widthStyle" nzShowSort nzSortKey="response_time_num" [(nzSort)]="sortCurrent.response_time_num">平均响应时间</th>
40
+				<th [nzWidth]="widthStyle" nzShowSort nzSortKey="execution_time_num" [(nzSort)]="sortCurrent.execution_time_num">平均送达时间</th>
41
+				<th [nzWidth]="widthStyle" nzShowSort nzSortKey="aveper" [(nzSort)]="sortCurrent.aveper">按时完成达标率</th>
42
+				<th [nzWidth]="widthStyle" nzShowSort nzSortKey="total_time" [(nzSort)]="sortCurrent.total_time">平均总时间</th>
43
+				<th [nzWidth]="widthStyle" nzShowSort nzSortKey="five_count" [(nzSort)]="sortCurrent.five_count">五分钟内工单</th>
44
+				<th [nzWidth]="widthStyle" nzShowSort nzSortKey="special_close" [(nzSort)]="sortCurrent.special_close">特殊关闭数</th>
45
+			</tr>
46
+		</thead>
47
+		<tbody>
48
+			<tr *ngFor="let data of listOfData">
49
+				<td *ngIf="parent==1">{{ data.parentName || '无' }}</td>
50
+				<td>{{ data.name }}</td>
51
+				<td>{{ data.totalCount }}</td>
52
+				<td>{{ data.totalGrade }}</td>
53
+				<td>{{ data.totalPrice }}</td>
54
+				<td>{{ data.response_time_num }}</td>
55
+				<td>{{ data.execution_time_num }}</td>
56
+				<td>{{ data.aveper }}</td>
57
+				<td>{{ data.total_time }}</td>
58
+				<td>{{ data.five_count }}</td>
59
+				<td>{{ data.special_close }}</td>
60
+			</tr>
61
+		</tbody>
62
+		<ng-template #footerTpl>
63
+			<table class="footTable">
64
+				<tr *ngFor="let data of listOfDataEnd">
65
+					<td [ngStyle]="{width:widthStyle}" *ngIf="parent==1">{{ data.parentName }}</td>
66
+					<td [ngStyle]="{width:widthStyle}" *ngIf="parent==0">{{ data.name }}</td>
67
+					<td [ngStyle]="{width:widthStyle}" *ngIf="parent==1"></td>
68
+					<td [ngStyle]="{width:widthStyle}">{{ data.totalCount }}</td>
69
+					<td [ngStyle]="{width:widthStyle}">{{ data.totalGrade }}</td>
70
+					<td [ngStyle]="{width:widthStyle}">{{ data.totalPrice }}</td>
71
+					<td [ngStyle]="{width:widthStyle}">{{ data.response_time_num }}</td>
72
+					<td [ngStyle]="{width:widthStyle}">{{ data.execution_time_num }}</td>
73
+					<td [ngStyle]="{width:widthStyle}">{{ data.aveper }}</td>
74
+					<td [ngStyle]="{width:widthStyle}">{{ data.total_time }}</td>
75
+					<td [ngStyle]="{width:widthStyle}">{{ data.five_count }}</td>
76
+					<td [ngStyle]="{width:widthStyle}">{{ data.special_close }}</td>
77
+				</tr>
78
+			</table>
79
+		</ng-template>
80
+	</nz-table>
81
+</div>
80
 <div class="pagination">
82
 <div class="pagination">
81
   <ng-template #totalTemplate let-total> 共 {{ total }} 条 </ng-template>
83
   <ng-template #totalTemplate let-total> 共 {{ total }} 条 </ng-template>
82
   <nz-pagination [(nzPageIndex)]="pageIndex" [(nzTotal)]="listLength" [(nzPageSize)]="pageSize" (nzPageIndexChange)="getList(pageIndex, sortCurrentKey, sortCurrentValue)" (nzPageSizeChange)="getList(pageIndex, sortCurrentKey, sortCurrentValue)" nzShowSizeChanger [nzPageSizeOptions]="[30,50,100,200]" [nzShowTotal]="totalTemplate"></nz-pagination>
84
   <nz-pagination [(nzPageIndex)]="pageIndex" [(nzTotal)]="listLength" [(nzPageSize)]="pageSize" (nzPageIndexChange)="getList(pageIndex, sortCurrentKey, sortCurrentValue)" (nzPageSizeChange)="getList(pageIndex, sortCurrentKey, sortCurrentValue)" nzShowSizeChanger [nzPageSizeOptions]="[30,50,100,200]" [nzShowTotal]="totalTemplate"></nz-pagination>

+ 16 - 1
src/app/views/new-statistics/distribution-inspection-statistics/department-quality-control-statistics/department-quality-control-statistics.component.less

@@ -53,7 +53,22 @@
53
   .table{
53
   .table{
54
     margin: 0 8px;
54
     margin: 0 8px;
55
   }
55
   }
56
-
56
+	
57
+	.tableWrap{
58
+	  margin: 0 8px;
59
+	  overflow-x: auto;
60
+	  .footTable, tbody{
61
+	    td{
62
+	      width: 100px;
63
+	      max-width: 100px;
64
+	      &.width150{
65
+	        width: 150px;
66
+	        max-width: 150px;
67
+	      }
68
+	    }
69
+	  }
70
+	}
71
+	
57
   .moreFilter{
72
   .moreFilter{
58
     margin-bottom: 16px;
73
     margin-bottom: 16px;
59
     span{
74
     span{

+ 14 - 1
src/app/views/new-statistics/distribution-inspection-statistics/department-quality-control-statistics/department-quality-control-statistics.component.ts

@@ -119,6 +119,9 @@ export class DepartmentQualityControlStatisticsComponent implements OnInit, Afte
119
 
119
 
120
   // 表格数据
120
   // 表格数据
121
   loading1 = false;
121
   loading1 = false;
122
+	widthValue:any;
123
+	widthConfig:any = [];
124
+	widthStyle:any;
122
   getList(num?: number, field?: string, sort?: string) {
125
   getList(num?: number, field?: string, sort?: string) {
123
     if (num !== undefined) {
126
     if (num !== undefined) {
124
       this.pageIndex = num;
127
       this.pageIndex = num;
@@ -140,6 +143,15 @@ export class DepartmentQualityControlStatisticsComponent implements OnInit, Afte
140
     if (field && sort) {
143
     if (field && sort) {
141
       postData.sort = `${field} ${sort === "ascend" ? `asc` : `desc`}`
144
       postData.sort = `${field} ${sort === "ascend" ? `asc` : `desc`}`
142
     }
145
     }
146
+		if(this.parent==1){
147
+			this.widthConfig = new Array(11).fill('100px').map((v, i) => { return (i == 0 || i == 1 && this.parent==1) || (i == 0 && this.parent==0) ? '150px' : '100px' });;
148
+			this.widthValue = 11 * 100 + 300 * 1 + 20
149
+			this.widthStyle = '9%'
150
+		}else{
151
+			this.widthConfig = new Array(10).fill('100px').map((v, i) => { return (i == 0 || i == 1 && this.parent==1) || (i == 0 && this.parent==0) ? '150px' : '100px' });;
152
+			this.widthValue = 10 * 100 + 162 * 1 + 20
153
+			this.widthStyle = '10%'
154
+		}
143
     this.loading1 = true;
155
     this.loading1 = true;
144
     this.mainService
156
     this.mainService
145
       .postCustom("itsm/report", "deptTransOrderQc", postData)
157
       .postCustom("itsm/report", "deptTransOrderQc", postData)
@@ -252,8 +264,9 @@ export class DepartmentQualityControlStatisticsComponent implements OnInit, Afte
252
 	getDeparts(dept?) {
264
 	getDeparts(dept?) {
253
 	  let data = {
265
 	  let data = {
254
 	    department: {
266
 	    department: {
255
-	      cascadeHosId: this.hospital,
267
+	      statisticalHosId: this.getHosId,
256
 	      dept: dept,
268
 	      dept: dept,
269
+	      searchType: 1,
257
 	    },
270
 	    },
258
 	    idx: 0,
271
 	    idx: 0,
259
 	    sum: 20,
272
 	    sum: 20,

+ 28 - 23
src/app/views/new-statistics/distribution-inspection-statistics/distribution-department-evaluate-statistics/distribution-department-evaluate-statistics.component.html

@@ -2,10 +2,10 @@
2
   <div class="searchData">
2
   <div class="searchData">
3
     <app-custom-change-date #customChangeDate [isShowType]="false"></app-custom-change-date>
3
     <app-custom-change-date #customChangeDate [isShowType]="false"></app-custom-change-date>
4
     <div class="searchDataItem">
4
     <div class="searchDataItem">
5
-      <span class="label">楼栋</span>:
6
-      <nz-select class="selectItem" [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch (nzOnSearch)="changeBuildingInp($event)" nzAllowClear nzPlaceHolder="请选择楼栋" [(ngModel)]="buildingId" (nzOpenChange)="openChangeBuilding($event)">
7
-        <ng-container *ngFor="let option of buildingList">
8
-          <nz-option *ngIf="!isLoading" [nzLabel]="option.hosName + '-' + option.buildingName" [nzValue]="option.id"></nz-option>
5
+      <span class="label">科室</span>:
6
+      <nz-select class="selectItem" [nzDropdownMatchSelectWidth]="false" nzAllowClear nzPlaceHolder="请选择科室" [(ngModel)]="deptId" nzServerSearch nzShowSearch (nzOnSearch)="changeInp($event)">
7
+        <ng-container *ngFor="let option of alldepart">
8
+          <nz-option *ngIf="!isLoading" [nzLabel]="option.hospital.hosName + '-' + option.dept" [nzValue]="option.id"></nz-option>
9
         </ng-container>
9
         </ng-container>
10
         <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
10
         <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
11
           <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
11
           <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
@@ -20,28 +20,31 @@
20
     <button nz-button class="btn default ml8" (click)="excelExport()" [nzLoading]="excelExportLoading">导出</button>
20
     <button nz-button class="btn default ml8" (click)="excelExport()" [nzLoading]="excelExportLoading">导出</button>
21
   </div>
21
   </div>
22
 </div>
22
 </div>
23
-<div class="moreFilter" *ngIf="fieldConfig.fields.groupDTO || fieldConfig.fields.userDTO || fieldConfig.fields.taskTypeDTO || fieldConfig.fields.statisticsTypeDTO">
23
+<div class="moreFilter" *ngIf="fieldConfig.fields.groupDTO || fieldConfig.fields.userDTO || fieldConfig.fields.taskTypeDTO || fieldConfig.fields.statisticsTypeDTO || fieldConfig.fields.buildingDTO">
24
   <span>{{fieldConfig.fields.groupDTO?.groupName}}</span>
24
   <span>{{fieldConfig.fields.groupDTO?.groupName}}</span>
25
   <span>{{fieldConfig.fields.userDTO?.name}}</span>
25
   <span>{{fieldConfig.fields.userDTO?.name}}</span>
26
   <span>{{fieldConfig.fields.statisticsTypeDTO?.name}}</span>
26
   <span>{{fieldConfig.fields.statisticsTypeDTO?.name}}</span>
27
   <span>{{fieldConfig.fields.taskTypeDTO?.taskName}}</span>
27
   <span>{{fieldConfig.fields.taskTypeDTO?.taskName}}</span>
28
+	<span>{{fieldConfig.fields.buildingDTO?.buildingName}}</span>
28
 </div>
29
 </div>
29
 <nz-table class="table" [nzData]="listOfData" nzSize="middle" [nzShowPagination]="false" [nzLoading]="loading1" [nzScroll]="{ y: tableHeight + 'px' }" [nzFooter]="footerTpl">
30
 <nz-table class="table" [nzData]="listOfData" nzSize="middle" [nzShowPagination]="false" [nzLoading]="loading1" [nzScroll]="{ y: tableHeight + 'px' }" [nzFooter]="footerTpl">
30
   <thead (nzSortChange)="sort($event)" nzSingleSort>
31
   <thead (nzSortChange)="sort($event)" nzSingleSort>
31
     <tr>
32
     <tr>
32
-      <th nzWidth="12%" nzShowSort nzSortKey="orders" [(nzSort)]="sortCurrent.orders">科室(编码)</th>
33
-      <th nzWidth="11%" nzShowSort nzSortKey="totalCount" [(nzSort)]="sortCurrent.totalCount">工单数量</th>
34
-      <th nzWidth="11%" nzShowSort nzSortKey="evaCount" [(nzSort)]="sortCurrent.evaCount">评价总工单数</th>
35
-      <th nzWidth="11%" nzShowSort nzSortKey="eva1" [(nzSort)]="sortCurrent.eva1">一星评价数</th>
36
-      <th nzWidth="11%" nzShowSort nzSortKey="eva2" [(nzSort)]="sortCurrent.eva2">二星评价数</th>
37
-      <th nzWidth="11%" nzShowSort nzSortKey="eva3" [(nzSort)]="sortCurrent.eva3">三星评价数</th>
38
-      <th nzWidth="11%" nzShowSort nzSortKey="eva4" [(nzSort)]="sortCurrent.eva4">四星评价数</th>
39
-      <th nzWidth="11%" nzShowSort nzSortKey="eva5" [(nzSort)]="sortCurrent.eva5">五星评价数</th>
40
-      <th nzWidth="11%" nzShowSort nzSortKey="avgCount" [(nzSort)]="sortCurrent.avgCount">平均总星级</th>
33
+			<th [nzWidth]="widthStyle" *ngIf="parent==1" nzShowSort nzSortKey="parentOrders" [(nzSort)]="sortCurrent.parentOrders">父级科室(编码)</th>
34
+      <th [nzWidth]="widthStyle" nzShowSort nzSortKey="orders" [(nzSort)]="sortCurrent.orders">科室(编码)</th>
35
+      <th [nzWidth]="widthThStyle" nzShowSort nzSortKey="totalCount" [(nzSort)]="sortCurrent.totalCount">工单数量</th>
36
+      <th [nzWidth]="widthThStyle" nzShowSort nzSortKey="evaCount" [(nzSort)]="sortCurrent.evaCount">评价总工单数</th>
37
+      <th [nzWidth]="widthThStyle" nzShowSort nzSortKey="eva1" [(nzSort)]="sortCurrent.eva1">一星评价数</th>
38
+      <th [nzWidth]="widthThStyle" nzShowSort nzSortKey="eva2" [(nzSort)]="sortCurrent.eva2">二星评价数</th>
39
+      <th [nzWidth]="widthThStyle" nzShowSort nzSortKey="eva3" [(nzSort)]="sortCurrent.eva3">三星评价数</th>
40
+      <th [nzWidth]="widthThStyle" nzShowSort nzSortKey="eva4" [(nzSort)]="sortCurrent.eva4">四星评价数</th>
41
+      <th [nzWidth]="widthThStyle" nzShowSort nzSortKey="eva5" [(nzSort)]="sortCurrent.eva5">五星评价数</th>
42
+      <th [nzWidth]="widthThStyle" nzShowSort nzSortKey="avgCount" [(nzSort)]="sortCurrent.avgCount">平均总星级</th>
41
     </tr>
43
     </tr>
42
   </thead>
44
   </thead>
43
   <tbody>
45
   <tbody>
44
     <tr *ngFor="let data of listOfData">
46
     <tr *ngFor="let data of listOfData">
47
+			<td *ngIf="parent==1">{{ data.parentName || '无' }}</td>
45
       <td>{{ data.name }}</td>
48
       <td>{{ data.name }}</td>
46
       <td>{{ data.totalCount }}</td>
49
       <td>{{ data.totalCount }}</td>
47
       <td>{{ data.evaCount }}</td>
50
       <td>{{ data.evaCount }}</td>
@@ -56,15 +59,17 @@
56
   <ng-template #footerTpl>
59
   <ng-template #footerTpl>
57
     <table class="footTable">
60
     <table class="footTable">
58
       <tr *ngFor="let data of listOfDataEnd">
61
       <tr *ngFor="let data of listOfDataEnd">
59
-        <td style="width: 12%">{{ data.name }}</td>
60
-        <td style="width: 11%">{{ data.totalCount }}</td>
61
-        <td style="width: 11%">{{ data.evaCount }}</td>
62
-        <td style="width: 11%">{{ data.eva1 }}</td>
63
-        <td style="width: 11%">{{ data.eva2 }}</td>
64
-        <td style="width: 11%">{{ data.eva3 }}</td>
65
-        <td style="width: 11%">{{ data.eva4 }}</td>
66
-        <td style="width: 11%">{{ data.eva5 }}</td>
67
-        <td style="width: 11%">{{ data.avgCount }}</td>
62
+				<td [ngStyle]="{width: widthStyle}" *ngIf="parent==1">{{ data.parentName }}</td>
63
+				<td [ngStyle]="{width: widthStyle}" *ngIf="parent==0">{{ data.name }}</td>
64
+				<td [ngStyle]="{width: widthStyle}" *ngIf="parent==1"></td>
65
+        <td [ngStyle]="{width: widthThStyle}">{{ data.totalCount }}</td>
66
+        <td [ngStyle]="{width: widthThStyle}">{{ data.evaCount }}</td>
67
+        <td [ngStyle]="{width: widthThStyle}">{{ data.eva1 }}</td>
68
+        <td [ngStyle]="{width: widthThStyle}">{{ data.eva2 }}</td>
69
+        <td [ngStyle]="{width: widthThStyle}">{{ data.eva3 }}</td>
70
+        <td [ngStyle]="{width: widthThStyle}">{{ data.eva4 }}</td>
71
+        <td [ngStyle]="{width: widthThStyle}">{{ data.eva5 }}</td>
72
+        <td [ngStyle]="{width: widthThStyle}">{{ data.avgCount }}</td>
68
       </tr>
73
       </tr>
69
     </table>
74
     </table>
70
   </ng-template>
75
   </ng-template>

+ 16 - 1
src/app/views/new-statistics/distribution-inspection-statistics/distribution-department-evaluate-statistics/distribution-department-evaluate-statistics.component.less

@@ -53,7 +53,22 @@
53
   .table{
53
   .table{
54
     margin: 0 8px;
54
     margin: 0 8px;
55
   }
55
   }
56
-
56
+	
57
+	.tableWrap{
58
+	  margin: 0 8px;
59
+	  overflow-x: auto;
60
+	  .footTable, tbody{
61
+	    td{
62
+	      width: 100px;
63
+	      max-width: 100px;
64
+	      &.width150{
65
+	        width: 150px;
66
+	        max-width: 150px;
67
+	      }
68
+	    }
69
+	  }
70
+	}
71
+	
57
   .moreFilter{
72
   .moreFilter{
58
     margin-bottom: 16px;
73
     margin-bottom: 16px;
59
     span{
74
     span{

+ 52 - 9
src/app/views/new-statistics/distribution-inspection-statistics/distribution-department-evaluate-statistics/distribution-department-evaluate-statistics.component.ts

@@ -26,9 +26,11 @@ export class DistributionDepartmentEvaluateStatisticsComponent implements OnInit
26
   pageSize: number = 30; //表格每页展示条数
26
   pageSize: number = 30; //表格每页展示条数
27
   listLength: number = 0; //表格总数据量
27
   listLength: number = 0; //表格总数据量
28
 
28
 
29
-  buildingId;//楼栋id
30
-
31
-  searchTimerSubject = new Subject();
29
+	buildingId;//楼栋id
30
+	hospital:any;
31
+	deptTypeId;//科室类型id
32
+	deptId;
33
+	searchTimerSubject = new Subject();
32
 
34
 
33
   ngOnInit() {
35
   ngOnInit() {
34
     this.searchTimerSubject.pipe(debounceTime(500)).subscribe((v) => {
36
     this.searchTimerSubject.pipe(debounceTime(500)).subscribe((v) => {
@@ -40,6 +42,7 @@ export class DistributionDepartmentEvaluateStatisticsComponent implements OnInit
40
   ngAfterViewInit(){
42
   ngAfterViewInit(){
41
     this.initSessionData();
43
     this.initSessionData();
42
     this.getQueryParams();
44
     this.getQueryParams();
45
+    this.getDeparts();
43
     setTimeout(() => {
46
     setTimeout(() => {
44
       this.search();
47
       this.search();
45
     }, 0)
48
     }, 0)
@@ -65,7 +68,7 @@ export class DistributionDepartmentEvaluateStatisticsComponent implements OnInit
65
   }
68
   }
66
 
69
 
67
   get getMoreFilter(){
70
   get getMoreFilter(){
68
-    let flag = this.fieldConfig.fields.groupDTO || this.fieldConfig.fields.userDTO || this.fieldConfig.fields.taskTypeDTO || this.fieldConfig.fields.statisticsTypeDTO;
71
+    let flag = this.fieldConfig.fields.groupDTO || this.fieldConfig.fields.userDTO || this.fieldConfig.fields.taskTypeDTO || this.fieldConfig.fields.statisticsTypeDTO || this.fieldConfig.fields.buildingDTO;
69
     return flag ? 37 : 0;
72
     return flag ? 37 : 0;
70
   }
73
   }
71
 
74
 
@@ -74,11 +77,13 @@ export class DistributionDepartmentEvaluateStatisticsComponent implements OnInit
74
   hosId:any;
77
   hosId:any;
75
   dutyId:any;
78
   dutyId:any;
76
   parentDutyId:any;
79
   parentDutyId:any;
80
+  parent:any;
77
   initSessionData(){
81
   initSessionData(){
78
     let newStatistics = JSON.parse(sessionStorage.getItem('newStatistics'));
82
     let newStatistics = JSON.parse(sessionStorage.getItem('newStatistics'));
79
     let queryType:any = newStatistics.queryType;
83
     let queryType:any = newStatistics.queryType;
80
     let hosId:any = newStatistics.hospitalId;
84
     let hosId:any = newStatistics.hospitalId;
81
     let dutyId:any = newStatistics.dutyId;
85
     let dutyId:any = newStatistics.dutyId;
86
+  	this.parent = newStatistics.parent;
82
 
87
 
83
     queryType = queryType ? +queryType : undefined;
88
     queryType = queryType ? +queryType : undefined;
84
     hosId = hosId ? +hosId : undefined;
89
     hosId = hosId ? +hosId : undefined;
@@ -110,6 +115,8 @@ export class DistributionDepartmentEvaluateStatisticsComponent implements OnInit
110
 
115
 
111
   // 表格数据
116
   // 表格数据
112
   loading1 = false;
117
   loading1 = false;
118
+	widthStyle:any;
119
+	widthThStyle:any;
113
   getList(num?: number, field?: string, sort?: string) {
120
   getList(num?: number, field?: string, sort?: string) {
114
     if (num !== undefined) {
121
     if (num !== undefined) {
115
       this.pageIndex = num;
122
       this.pageIndex = num;
@@ -119,8 +126,10 @@ export class DistributionDepartmentEvaluateStatisticsComponent implements OnInit
119
       sum: this.pageSize,
126
       sum: this.pageSize,
120
       startDate: this.customChangeDateComponent.startDate || undefined,
127
       startDate: this.customChangeDateComponent.startDate || undefined,
121
       endDate: this.customChangeDateComponent.endDate || undefined,
128
       endDate: this.customChangeDateComponent.endDate || undefined,
129
+			showParentDept: this.parent==1 ? 'true' : undefined,
130
+			deptId: this.deptId || undefined,
131
+			buildingId: this.fieldConfig.fields.buildingId || undefined,
122
       hosId: this.getHosId,
132
       hosId: this.getHosId,
123
-      buildingId: this.buildingId || undefined,
124
       groupId: this.fieldConfig.fields.userId ? undefined : (this.fieldConfig.fields.groupId || undefined),
133
       groupId: this.fieldConfig.fields.userId ? undefined : (this.fieldConfig.fields.groupId || undefined),
125
       userId: this.fieldConfig.fields.userId || undefined,
134
       userId: this.fieldConfig.fields.userId || undefined,
126
       statisticsTypeId: this.fieldConfig.fields.statisticsTypeId || undefined,
135
       statisticsTypeId: this.fieldConfig.fields.statisticsTypeId || undefined,
@@ -129,6 +138,13 @@ export class DistributionDepartmentEvaluateStatisticsComponent implements OnInit
129
     if (field && sort) {
138
     if (field && sort) {
130
       postData.sort = `${field} ${sort === "ascend" ? `asc` : `desc`}`
139
       postData.sort = `${field} ${sort === "ascend" ? `asc` : `desc`}`
131
     }
140
     }
141
+		if(this.parent==1){
142
+			this.widthThStyle = '9%'
143
+			this.widthStyle = '14%'
144
+		}else{
145
+			this.widthThStyle = '10%'
146
+			this.widthStyle = '20%'
147
+		}
132
     this.loading1 = true;
148
     this.loading1 = true;
133
     this.mainService
149
     this.mainService
134
       .postCustom("itsm/report", "deptDegreeTransOrder", postData)
150
       .postCustom("itsm/report", "deptDegreeTransOrder", postData)
@@ -168,8 +184,10 @@ export class DistributionDepartmentEvaluateStatisticsComponent implements OnInit
168
     let postData:any = {
184
     let postData:any = {
169
       startDate: this.customChangeDateComponent.startDate || undefined,
185
       startDate: this.customChangeDateComponent.startDate || undefined,
170
       endDate: this.customChangeDateComponent.endDate || undefined,
186
       endDate: this.customChangeDateComponent.endDate || undefined,
187
+			showParentDept: this.parent==1 ? 'true' : undefined,
188
+			deptId: this.deptId || undefined,
189
+			buildingId: this.fieldConfig.fields.buildingId || undefined,
171
       hosId: this.getHosId,
190
       hosId: this.getHosId,
172
-      buildingId: this.buildingId || undefined,
173
       groupId: this.fieldConfig.fields.userId ? undefined : (this.fieldConfig.fields.groupId || undefined),
191
       groupId: this.fieldConfig.fields.userId ? undefined : (this.fieldConfig.fields.groupId || undefined),
174
       userId: this.fieldConfig.fields.userId || undefined,
192
       userId: this.fieldConfig.fields.userId || undefined,
175
       statisticsTypeId: this.fieldConfig.fields.statisticsTypeId || undefined,
193
       statisticsTypeId: this.fieldConfig.fields.statisticsTypeId || undefined,
@@ -208,7 +226,7 @@ export class DistributionDepartmentEvaluateStatisticsComponent implements OnInit
208
 		this.sortCurrent = {};
226
 		this.sortCurrent = {};
209
     this.dateRange = []
227
     this.dateRange = []
210
     this.buildingId = undefined;
228
     this.buildingId = undefined;
211
-    this.fieldConfig.fields = {groupId: undefined, userId: undefined, statisticsTypeId: undefined, taskTypeId: undefined};
229
+    this.fieldConfig.fields = {groupId: undefined, userId: undefined, statisticsTypeId: undefined, taskTypeId: undefined, buildingId: undefined};
212
     this.customChangeDateComponent.resetByDate();
230
     this.customChangeDateComponent.resetByDate();
213
     this.search();
231
     this.search();
214
   }
232
   }
@@ -218,6 +236,31 @@ export class DistributionDepartmentEvaluateStatisticsComponent implements OnInit
218
     this.searchTimer(this.getBuildingList, e);
236
     this.searchTimer(this.getBuildingList, e);
219
   }
237
   }
220
 
238
 
239
+	// 科室搜索
240
+	changeInp(e) {
241
+	  this.searchTimer(this.getDeparts, e);
242
+	}
243
+
244
+	// 获取所有科室
245
+	alldepart:any;
246
+	getDeparts(dept?) {
247
+	  let data = {
248
+	    department: {
249
+	      statisticalHosId: this.getHosId,
250
+	      dept: dept,
251
+	      searchType: 1,
252
+	    },
253
+	    idx: 0,
254
+	    sum: 20,
255
+	  };
256
+	  this.mainService
257
+	    .getFetchDataList("data", "department", data)
258
+	    .subscribe((data) => {
259
+				this.isLoading = false;
260
+	      this.alldepart = data.list;
261
+	    });
262
+	}
263
+
221
   // 防抖
264
   // 防抖
222
   isLoading = false;
265
   isLoading = false;
223
   searchTimer(fun, e) {
266
   searchTimer(fun, e) {
@@ -252,8 +295,8 @@ export class DistributionDepartmentEvaluateStatisticsComponent implements OnInit
252
 
295
 
253
   // 详细搜索
296
   // 详细搜索
254
   fieldConfig:any = {
297
   fieldConfig:any = {
255
-    fields: {groupId: undefined, userId: undefined, statisticsTypeId: undefined, taskTypeId: undefined},
256
-    config: {groupAndUser: true, statisticsType: true, taskType: true},
298
+    fields: {groupId: undefined, userId: undefined, statisticsTypeId: undefined, taskTypeId: undefined, buildingId: undefined},
299
+    config: {groupAndUser: true, statisticsType: true, taskType: true, building: true},
257
   }
300
   }
258
   showSearchMore:boolean = false;
301
   showSearchMore:boolean = false;
259
   showMore(){
302
   showMore(){

+ 1 - 1
src/app/views/new-statistics/distribution-inspection-statistics/distribution-department-source-statistics/distribution-department-source-statistics.component.html

@@ -5,7 +5,7 @@
5
       <span class="label">科室</span>:
5
       <span class="label">科室</span>:
6
       <nz-select class="selectItem" [nzDropdownMatchSelectWidth]="false" nzAllowClear nzPlaceHolder="请选择科室" [(ngModel)]="deptId" nzServerSearch nzShowSearch (nzOnSearch)="changeInp($event)">
6
       <nz-select class="selectItem" [nzDropdownMatchSelectWidth]="false" nzAllowClear nzPlaceHolder="请选择科室" [(ngModel)]="deptId" nzServerSearch nzShowSearch (nzOnSearch)="changeInp($event)">
7
         <ng-container *ngFor="let option of alldepart">
7
         <ng-container *ngFor="let option of alldepart">
8
-          <nz-option *ngIf="!isLoading" [nzLabel]="option.dept" [nzValue]="option.id"></nz-option>
8
+          <nz-option *ngIf="!isLoading" [nzLabel]="option.hospital.hosName + '-' + option.dept" [nzValue]="option.id"></nz-option>
9
         </ng-container>
9
         </ng-container>
10
         <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
10
         <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
11
           <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
11
           <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...

+ 2 - 1
src/app/views/new-statistics/distribution-inspection-statistics/distribution-department-source-statistics/distribution-department-source-statistics.component.ts

@@ -239,8 +239,9 @@ export class DistributionDepartmentSourceStatisticsComponent implements OnInit,
239
 	getDeparts(dept?) {
239
 	getDeparts(dept?) {
240
 	  let data = {
240
 	  let data = {
241
 	    department: {
241
 	    department: {
242
-	      cascadeHosId: this.hospital,
242
+	      statisticalHosId: this.getHosId,
243
 	      dept: dept,
243
 	      dept: dept,
244
+	      searchType: 1,
244
 	    },
245
 	    },
245
 	    idx: 0,
246
 	    idx: 0,
246
 	    sum: 20,
247
 	    sum: 20,

+ 1 - 0
src/app/views/new-statistics/distribution-inspection-statistics/distribution-synthesize-statistics/distribution-synthesize-statistics.component.less

@@ -162,6 +162,7 @@
162
 						display: flex;
162
 						display: flex;
163
 						height: 45px;
163
 						height: 45px;
164
 						border-bottom: 1px solid #D9D9D9;
164
 						border-bottom: 1px solid #D9D9D9;
165
+						background: #FAFAFA;
165
 						.table-td{
166
 						.table-td{
166
 							line-height: 45px;
167
 							line-height: 45px;
167
 							text-align: center;
168
 							text-align: center;

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

@@ -5,7 +5,7 @@
5
       <span class="label">科室</span>:
5
       <span class="label">科室</span>:
6
       <nz-select class="selectItem" [nzDropdownMatchSelectWidth]="false" nzAllowClear nzPlaceHolder="请选择科室" [(ngModel)]="deptId" nzServerSearch nzShowSearch (nzOnSearch)="changeInp($event)">
6
       <nz-select class="selectItem" [nzDropdownMatchSelectWidth]="false" nzAllowClear nzPlaceHolder="请选择科室" [(ngModel)]="deptId" nzServerSearch nzShowSearch (nzOnSearch)="changeInp($event)">
7
         <ng-container *ngFor="let option of alldepart">
7
         <ng-container *ngFor="let option of alldepart">
8
-          <nz-option *ngIf="!isLoading" [nzLabel]="option.dept" [nzValue]="option.id"></nz-option>
8
+          <nz-option *ngIf="!isLoading" [nzLabel]="option.hospital.hosName + '-' + option.dept" [nzValue]="option.id"></nz-option>
9
         </ng-container>
9
         </ng-container>
10
         <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
10
         <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
11
           <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
11
           <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
@@ -30,56 +30,58 @@
30
   <span>{{fieldConfig.fields.floorDTO?.floorName}}</span>
30
   <span>{{fieldConfig.fields.floorDTO?.floorName}}</span>
31
 	<span>{{fieldConfig.fields.deptTypeDTO?.name}}</span>
31
 	<span>{{fieldConfig.fields.deptTypeDTO?.name}}</span>
32
 </div>
32
 </div>
33
-<nz-table class="table" [nzData]="listOfData" nzSize="middle" [nzShowPagination]="false" [nzLoading]="loading1" [nzScroll]="{ y: tableHeight + 'px' }" [nzFooter]="footerTpl">
34
-  <thead (nzSortChange)="sort($event)" nzSingleSort>
35
-    <tr>
36
-			<th nzWidth="9%" *ngIf="parent==1" nzShowSort nzSortKey="parentOrders" [(nzSort)]="sortCurrent.parentOrders">父级科室(编码)</th>
37
-      <th nzWidth="10%" nzShowSort nzSortKey="orders" [(nzSort)]="sortCurrent.orders">科室名称(编码)</th>
38
-      <th nzWidth="10%" nzShowSort nzSortKey="sum" [(nzSort)]="sortCurrent.sum">工单总数</th>
39
-      <th nzWidth="10%" nzShowSort nzSortKey="degreeCount" [(nzSort)]="sortCurrent.degreeCount">评价工单数</th>
40
-      <th nzWidth="10%" nzShowSort nzSortKey="oneStar" [(nzSort)]="sortCurrent.oneStar">一星</th>
41
-      <th nzWidth="10%" nzShowSort nzSortKey="twoStar" [(nzSort)]="sortCurrent.twoStar">二星</th>
42
-      <th nzWidth="10%" nzShowSort nzSortKey="threeStar" [(nzSort)]="sortCurrent.threeStar">三星</th>
43
-      <th nzWidth="10%" nzShowSort nzSortKey="fourStar" [(nzSort)]="sortCurrent.fourStar">四星</th>
44
-      <th nzWidth="10%" nzShowSort nzSortKey="fiveStar" [(nzSort)]="sortCurrent.fiveStar">五星</th>
45
-      <th nzWidth="10%" nzShowSort nzSortKey="totalStar" [(nzSort)]="sortCurrent.totalStar">评价总星数</th>
46
-      <th nzWidth="10%" nzShowSort nzSortKey="avgStar" [(nzSort)]="sortCurrent.avgStar">平均总星数</th>
47
-    </tr>
48
-  </thead>
49
-  <tbody>
50
-    <tr *ngFor="let data of listOfData">
51
-			<td *ngIf="parent==1">{{ data.parentName || '无' }}<ng-container *ngIf="parent==1 && data.parentName">({{ data.parentCode }})</ng-container></td>
52
-      <td>{{ data.deptName }}<ng-container *ngIf="data.deptCode">({{ data.deptCode }})</ng-container></td>
53
-      <td>{{ data.sum }}</td>
54
-      <td>{{ data.degreeCount }}</td>
55
-      <td>{{ data.oneStar }}</td>
56
-      <td>{{ data.twoStar }}</td>
57
-      <td>{{ data.threeStar }}</td>
58
-      <td>{{ data.fourStar }}</td>
59
-      <td>{{ data.fiveStar }}</td>
60
-      <td>{{ data.totalStar }}</td>
61
-      <td>{{ data.avgStar }}</td>
62
-    </tr>
63
-  </tbody>
64
-  <ng-template #footerTpl>
65
-    <table class="footTable">
66
-      <tr *ngFor="let data of listOfDataEnd">
67
-				<td style="width: 9%" *ngIf="parent==1">{{ data.parentCode }}</td>
68
-				<td style="width: 10%" *ngIf="parent==0">{{ data.deptCode }}</td>
69
-				<td style="width: 10%" *ngIf="parent==1"></td>
70
-        <td style="width: 10%">{{ data.sum }}</td>
71
-        <td style="width: 10%">{{ data.degreeCount }}</td>
72
-        <td style="width: 10%">{{ data.oneStar }}</td>
73
-        <td style="width: 10%">{{ data.twoStar }}</td>
74
-        <td style="width: 10%">{{ data.threeStar }}</td>
75
-        <td style="width: 10%">{{ data.fourStar }}</td>
76
-        <td style="width: 10%">{{ data.fiveStar }}</td>
77
-        <td style="width: 10%">{{ data.totalStar }}</td>
78
-        <td style="width: 10%">{{ data.avgStar }}</td>
79
-      </tr>
80
-    </table>
81
-  </ng-template>
82
-</nz-table>
33
+<div class="tableWrap">
34
+	<nz-table class="table" [nzData]="listOfData" nzSize="middle" [nzShowPagination]="false" [nzLoading]="loading1" [nzScroll]="{ y: tableHeight + 'px' }"  [nzFooter]="footerTpl">
35
+		<thead (nzSortChange)="sort($event)" nzSingleSort>
36
+			<tr>
37
+				<th [nzWidth]="widthStyle" *ngIf="parent==1" nzShowSort nzSortKey="parentOrders" [(nzSort)]="sortCurrent.parentOrders">父级科室(编码)</th>
38
+				<th [nzWidth]="widthStyle" nzShowSort nzSortKey="orders" [(nzSort)]="sortCurrent.orders">科室名称(编码)</th>
39
+				<th [nzWidth]="widthStyle" nzShowSort nzSortKey="sum" [(nzSort)]="sortCurrent.sum">工单总数</th>
40
+				<th [nzWidth]="widthStyle" nzShowSort nzSortKey="degreeCount" [(nzSort)]="sortCurrent.degreeCount">评价工单数</th>
41
+				<th [nzWidth]="widthStyle" nzShowSort nzSortKey="oneStar" [(nzSort)]="sortCurrent.oneStar">一星</th>
42
+				<th [nzWidth]="widthStyle" nzShowSort nzSortKey="twoStar" [(nzSort)]="sortCurrent.twoStar">二星</th>
43
+				<th [nzWidth]="widthStyle" nzShowSort nzSortKey="threeStar" [(nzSort)]="sortCurrent.threeStar">三星</th>
44
+				<th [nzWidth]="widthStyle" nzShowSort nzSortKey="fourStar" [(nzSort)]="sortCurrent.fourStar">四星</th>
45
+				<th [nzWidth]="widthStyle" nzShowSort nzSortKey="fiveStar" [(nzSort)]="sortCurrent.fiveStar">五星</th>
46
+				<th [nzWidth]="widthStyle" nzShowSort nzSortKey="totalStar" [(nzSort)]="sortCurrent.totalStar">评价总星数</th>
47
+				<th [nzWidth]="widthStyle" nzShowSort nzSortKey="avgStar" [(nzSort)]="sortCurrent.avgStar">平均总星数</th>
48
+			</tr>
49
+		</thead>
50
+		<tbody>
51
+			<tr *ngFor="let data of listOfData">
52
+				<td *ngIf="parent==1">{{ data.parentName || '无' }}<ng-container *ngIf="parent==1 && data.parentName">({{ data.parentCode }})</ng-container></td>
53
+				<td>{{ data.deptName }}<ng-container *ngIf="data.deptCode">({{ data.deptCode }})</ng-container></td>
54
+				<td>{{ data.sum }}</td>
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>
61
+				<td>{{ data.totalStar }}</td>
62
+				<td>{{ data.avgStar }}</td>
63
+			</tr>
64
+		</tbody>
65
+		<ng-template #footerTpl>
66
+			<table class="footTable">
67
+				<tr *ngFor="let data of listOfDataEnd">
68
+					<td [ngStyle]="{width:widthStyle}" *ngIf="parent==1">{{ data.parentCode }}</td>
69
+					<td [ngStyle]="{width:widthStyle}" *ngIf="parent==0">{{ data.deptCode }}</td>
70
+					<td [ngStyle]="{width:widthStyle}" *ngIf="parent==1"></td>
71
+					<td [ngStyle]="{width:widthStyle}">{{ data.sum }}</td>
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>
78
+					<td [ngStyle]="{width:widthStyle}">{{ data.totalStar }}</td>
79
+					<td [ngStyle]="{width:widthStyle}">{{ data.avgStar }}</td>
80
+				</tr>
81
+			</table>
82
+		</ng-template>
83
+	</nz-table>
84
+</div>
83
 <div class="pagination">
85
 <div class="pagination">
84
   <ng-template #totalTemplate let-total> 共 {{ total }} 条 </ng-template>
86
   <ng-template #totalTemplate let-total> 共 {{ total }} 条 </ng-template>
85
   <nz-pagination [(nzPageIndex)]="pageIndex" [(nzTotal)]="listLength" [(nzPageSize)]="pageSize" (nzPageIndexChange)="getList(pageIndex, sortCurrentKey, sortCurrentValue)" (nzPageSizeChange)="getList(pageIndex, sortCurrentKey, sortCurrentValue)" nzShowSizeChanger [nzPageSizeOptions]="[30,50,100,200]" [nzShowTotal]="totalTemplate"></nz-pagination>
87
   <nz-pagination [(nzPageIndex)]="pageIndex" [(nzTotal)]="listLength" [(nzPageSize)]="pageSize" (nzPageIndexChange)="getList(pageIndex, sortCurrentKey, sortCurrentValue)" (nzPageSizeChange)="getList(pageIndex, sortCurrentKey, sortCurrentValue)" nzShowSizeChanger [nzPageSizeOptions]="[30,50,100,200]" [nzShowTotal]="totalTemplate"></nz-pagination>

+ 16 - 1
src/app/views/new-statistics/maintenance-statistics/department-evaluate-statistics/department-evaluate-statistics.component.less

@@ -53,7 +53,22 @@
53
   .table{
53
   .table{
54
     margin: 0 8px;
54
     margin: 0 8px;
55
   }
55
   }
56
-
56
+	
57
+	.tableWrap{
58
+	  // margin: 0 8px;
59
+	  overflow-x: auto;
60
+	  .footTable, tbody{
61
+	    td{
62
+	      width: 100px;
63
+	      max-width: 100px;
64
+	      &.width150{
65
+	        width: 150px;
66
+	        max-width: 150px;
67
+	      }
68
+	    }
69
+	  }
70
+	}
71
+	
57
   .moreFilter{
72
   .moreFilter{
58
     margin-bottom: 16px;
73
     margin-bottom: 16px;
59
     span{
74
     span{

+ 15 - 2
src/app/views/new-statistics/maintenance-statistics/department-evaluate-statistics/department-evaluate-statistics.component.ts

@@ -117,6 +117,9 @@ export class DepartmentEvaluateStatisticsComponent implements OnInit, AfterViewI
117
 
117
 
118
   // 表格数据
118
   // 表格数据
119
   loading1 = false;
119
   loading1 = false;
120
+	widthStyle:any;
121
+	widthValue:any;
122
+	widthConfig:any = [];
120
   getList(num?: number, field?: string, sort?: string) {
123
   getList(num?: number, field?: string, sort?: string) {
121
     if (num !== undefined) {
124
     if (num !== undefined) {
122
       this.pageIndex = num;
125
       this.pageIndex = num;
@@ -142,6 +145,15 @@ export class DepartmentEvaluateStatisticsComponent implements OnInit, AfterViewI
142
     if (field && sort) {
145
     if (field && sort) {
143
       postData.sort = `${field} ${sort === "ascend" ? `asc` : `desc`}`
146
       postData.sort = `${field} ${sort === "ascend" ? `asc` : `desc`}`
144
     }
147
     }
148
+		if(this.parent==1){
149
+			this.widthConfig = new Array(11).fill('100px').map((v, i) => { return (i == 0 || i == 1 && this.parent==1) || (i == 0 && this.parent==0) ? '150px' : '100px' });;
150
+			this.widthStyle = '9%'
151
+			this.widthValue = 12 * 100 + 300 * 1 + 20
152
+		}else{
153
+			this.widthConfig = new Array(10).fill('100px').map((v, i) => { return (i == 0 || i == 1 && this.parent==1) || (i == 0 && this.parent==0) ? '150px' : '100px' });;
154
+			this.widthStyle = '10%'
155
+			this.widthValue = 11 * 100 + 150 * 1 + 20
156
+		}
145
     this.loading1 = true;
157
     this.loading1 = true;
146
     this.mainService
158
     this.mainService
147
       .postCustom("itsm/report", "deptEvaluate", postData)
159
       .postCustom("itsm/report", "deptEvaluate", postData)
@@ -185,7 +197,7 @@ export class DepartmentEvaluateStatisticsComponent implements OnInit, AfterViewI
185
       hosId: this.hosId || undefined,
197
       hosId: this.hosId || undefined,
186
       dutyId: this.dutyId || undefined,
198
       dutyId: this.dutyId || undefined,
187
       parentDutyId: this.parentDutyId || undefined,
199
       parentDutyId: this.parentDutyId || undefined,
188
-      deptTypeId: this.fieldConfig.deptTypeId || undefined,
200
+      deptTypeId: this.fieldConfig.fields.deptTypeId || undefined,
189
       repairDeptId: this.deptId || undefined,
201
       repairDeptId: this.deptId || undefined,
190
       groupId: this.fieldConfig.fields.userId ? undefined : (this.fieldConfig.fields.groupId || undefined),
202
       groupId: this.fieldConfig.fields.userId ? undefined : (this.fieldConfig.fields.groupId || undefined),
191
       userId: this.fieldConfig.fields.userId || undefined,
203
       userId: this.fieldConfig.fields.userId || undefined,
@@ -254,8 +266,9 @@ export class DepartmentEvaluateStatisticsComponent implements OnInit, AfterViewI
254
 	getDeparts(dept?) {
266
 	getDeparts(dept?) {
255
 	  let data = {
267
 	  let data = {
256
 	    department: {
268
 	    department: {
257
-	      cascadeHosId: this.hospital,
269
+	      statisticalHosId: this.getHosId,
258
 	      dept: dept,
270
 	      dept: dept,
271
+	      searchType: 1,
259
 	    },
272
 	    },
260
 	    idx: 0,
273
 	    idx: 0,
261
 	    sum: 20,
274
 	    sum: 20,

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

@@ -5,7 +5,7 @@
5
 		  <span class="label">科室</span>:
5
 		  <span class="label">科室</span>:
6
 		  <nz-select class="selectItem" [nzDropdownMatchSelectWidth]="false" nzAllowClear nzPlaceHolder="请选择科室" [(ngModel)]="deptId" nzServerSearch nzShowSearch (nzOnSearch)="changeInp($event)">
6
 		  <nz-select class="selectItem" [nzDropdownMatchSelectWidth]="false" nzAllowClear nzPlaceHolder="请选择科室" [(ngModel)]="deptId" nzServerSearch nzShowSearch (nzOnSearch)="changeInp($event)">
7
 		    <ng-container *ngFor="let option of alldepart">
7
 		    <ng-container *ngFor="let option of alldepart">
8
-		      <nz-option *ngIf="!isLoading" [nzLabel]="option.dept" [nzValue]="option.id"></nz-option>
8
+		      <nz-option *ngIf="!isLoading" [nzLabel]="option.hospital.hosName + '-' + option.dept" [nzValue]="option.id"></nz-option>
9
 		    </ng-container>
9
 		    </ng-container>
10
 		    <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
10
 		    <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
11
 		      <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
11
 		      <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
@@ -30,59 +30,61 @@
30
   <span>{{fieldConfig.fields.floorDTO?.floorName}}</span>
30
   <span>{{fieldConfig.fields.floorDTO?.floorName}}</span>
31
 	<span>{{fieldConfig.fields.deptTypeDTO?.name}}</span>
31
 	<span>{{fieldConfig.fields.deptTypeDTO?.name}}</span>
32
 </div>
32
 </div>
33
-<nz-table class="table" [nzData]="listOfData" nzSize="middle" [nzShowPagination]="false" [nzLoading]="loading1" [nzScroll]="{ y: tableHeight + 'px' }" [nzFooter]="footerTpl">
34
-  <thead (nzSortChange)="sort($event)" nzSingleSort>
35
-    <tr>
36
-			<th nzWidth="9%" *ngIf="parent==1" nzShowSort nzSortKey="parentOrders" [(nzSort)]="sortCurrent.parentOrders">父级科室(编码)</th>
37
-      <th nzWidth="10%" nzShowSort nzSortKey="orders" [(nzSort)]="sortCurrent.orders">科室名称(编码)</th>
38
-      <th nzWidth="9%" nzShowSort nzSortKey="sum" [(nzSort)]="sortCurrent.sum">工单总数</th>
39
-      <th nzWidth="9%" nzShowSort nzSortKey="avgResponseTime" [(nzSort)]="sortCurrent.avgResponseTime">平均接单时长</th>
40
-      <th nzWidth="9%" nzShowSort nzSortKey="avgResolvedTime" [(nzSort)]="sortCurrent.avgResolvedTime">平均解决时长</th>
41
-      <th nzWidth="9%" nzShowSort nzSortKey="resolvedOverNum" [(nzSort)]="sortCurrent.resolvedOverNum">超时单数</th>
42
-      <th nzWidth="9%" nzShowSort nzSortKey="overTimeNum" [(nzSort)]="sortCurrent.overTimeNum">挂起单数</th>
43
-      <th nzWidth="9%" nzShowSort nzSortKey="consumablePrice" [(nzSort)]="sortCurrent.consumablePrice">耗材费用(元)</th>
44
-      <th nzWidth="9%" nzShowSort nzSortKey="workHourPrice" [(nzSort)]="sortCurrent.workHourPrice">工时费用(元)</th>
45
-      <th nzWidth="9%" nzShowSort nzSortKey="totalPrice" [(nzSort)]="sortCurrent.totalPrice">总费用(元)</th>
46
-      <th nzWidth="9%" nzShowSort nzSortKey="negativeNum" [(nzSort)]="sortCurrent.negativeNum">差评单数</th>
47
-      <th nzWidth="9%" nzShowSort nzSortKey="favorableRate" [(nzSort)]="sortCurrent.favorableRate">好评率</th>
48
-    </tr>
49
-  </thead>
50
-  <tbody>
51
-    <tr *ngFor="let data of listOfData">
52
-			<td *ngIf="parent==1">{{ data.parentName || '无' }}<ng-container *ngIf="parent==1 && data.parentName">({{ data.parentCode }})</ng-container></td>
53
-      <td>{{ data.deptName }}<ng-container *ngIf="data.deptCode">({{ data.deptCode }})</ng-container></td>
54
-      <td>{{ data.sum }}</td>
55
-      <td>{{ data.avgResponseTime }}</td>
56
-      <td>{{ data.avgResolvedTime }}</td>
57
-      <td>{{ data.resolvedOverNum }}</td>
58
-      <td>{{ data.overTimeNum }}</td>
59
-      <td>{{ data.consumablePrice }}</td>
60
-      <td>{{ data.workHourPrice }}</td>
61
-      <td>{{ data.totalPrice }}</td>
62
-      <td>{{ data.negativeNum }}</td>
63
-      <td>{{ data.favorableRate }}</td>
64
-    </tr>
65
-  </tbody>
66
-  <ng-template #footerTpl>
67
-    <table class="footTable">
68
-      <tr *ngFor="let data of listOfDataEnd">
69
-        <td style="width: 9%" *ngIf="parent==1">{{ data.parentCode }}</td>
70
-				<td style="width: 10%" *ngIf="parent==0">{{ data.deptCode}}</td>
71
-				<td style="width: 10%" *ngIf="parent==1"></td>
72
-        <td style="width: 9%">{{ data.sum }}</td>
73
-        <td style="width: 9%">{{ data.avgResponseTime }}</td>
74
-        <td style="width: 9%">{{ data.avgResolvedTime }}</td>
75
-        <td style="width: 9%">{{ data.resolvedOverNum }}</td>
76
-        <td style="width: 9%">{{ data.overTimeNum }}</td>
77
-        <td style="width: 9%">{{ data.consumablePrice }}</td>
78
-        <td style="width: 9%">{{ data.workHourPrice }}</td>
79
-        <td style="width: 9%">{{ data.totalPrice }}</td>
80
-        <td style="width: 9%">{{ data.negativeNum }}</td>
81
-        <td style="width: 9%">{{ data.favorableRate }}</td>
82
-      </tr>
83
-    </table>
84
-  </ng-template>
85
-</nz-table>
33
+<div class="tableWrap">
34
+	<nz-table class="table" accesskey=""[nzData]="listOfData" nzSize="middle" [nzShowPagination]="false" [nzLoading]="loading1" [nzScroll]="{ y: tableHeight + 'px' }" [nzFooter]="footerTpl">
35
+		<thead (nzSortChange)="sort($event)" nzSingleSort>
36
+			<tr>
37
+				<th [nzWidth]="widthStyle" *ngIf="parent==1" nzShowSort nzSortKey="parentOrders" [(nzSort)]="sortCurrent.parentOrders">父级科室(编码)</th>
38
+				<th [nzWidth]="widthStyle" nzShowSort nzSortKey="orders" [(nzSort)]="sortCurrent.orders">科室名称(编码)</th>
39
+				<th [nzWidth]="widthStyle" nzShowSort nzSortKey="sum" [(nzSort)]="sortCurrent.sum">工单总数</th>
40
+				<th [nzWidth]="widthStyle" nzShowSort nzSortKey="avgResponseTime" [(nzSort)]="sortCurrent.avgResponseTime">平均接单时长</th>
41
+				<th [nzWidth]="widthStyle" nzShowSort nzSortKey="avgResolvedTime" [(nzSort)]="sortCurrent.avgResolvedTime">平均解决时长</th>
42
+				<th [nzWidth]="widthStyle" nzShowSort nzSortKey="resolvedOverNum" [(nzSort)]="sortCurrent.resolvedOverNum">超时单数</th>
43
+				<th [nzWidth]="widthStyle" nzShowSort nzSortKey="overTimeNum" [(nzSort)]="sortCurrent.overTimeNum">挂起单数</th>
44
+				<th [nzWidth]="widthStyle" nzShowSort nzSortKey="consumablePrice" [(nzSort)]="sortCurrent.consumablePrice">耗材费用(元)</th>
45
+				<th [nzWidth]="widthStyle" nzShowSort nzSortKey="workHourPrice" [(nzSort)]="sortCurrent.workHourPrice">工时费用(元)</th>
46
+				<th [nzWidth]="widthStyle" nzShowSort nzSortKey="totalPrice" [(nzSort)]="sortCurrent.totalPrice">总费用(元)</th>
47
+				<th [nzWidth]="widthStyle" nzShowSort nzSortKey="negativeNum" [(nzSort)]="sortCurrent.negativeNum">差评单数</th>
48
+				<th [nzWidth]="widthStyle" nzShowSort nzSortKey="favorableRate" [(nzSort)]="sortCurrent.favorableRate">好评率</th>
49
+			</tr>
50
+		</thead>
51
+		<tbody>
52
+			<tr *ngFor="let data of listOfData">
53
+				<td *ngIf="parent==1">{{ data.parentName || '无' }}<ng-container *ngIf="parent==1 && data.parentName">({{ data.parentCode }})</ng-container></td>
54
+				<td>{{ data.deptName }}<ng-container *ngIf="data.deptCode">({{ data.deptCode }})</ng-container></td>
55
+				<td>{{ data.sum }}</td>
56
+				<td>{{ data.avgResponseTime }}</td>
57
+				<td>{{ data.avgResolvedTime }}</td>
58
+				<td>{{ data.resolvedOverNum }}</td>
59
+				<td>{{ data.overTimeNum }}</td>
60
+				<td>{{ data.consumablePrice }}</td>
61
+				<td>{{ data.workHourPrice }}</td>
62
+				<td>{{ data.totalPrice }}</td>
63
+				<td>{{ data.negativeNum }}</td>
64
+				<td>{{ data.favorableRate }}</td>
65
+			</tr>
66
+		</tbody>
67
+		<ng-template #footerTpl>
68
+			<table class="footTable">
69
+				<tr *ngFor="let data of listOfDataEnd">
70
+					<td [ngStyle]="{width:widthStyle}" *ngIf="parent==1">{{ data.parentCode }}</td>
71
+					<td [ngStyle]="{width:widthStyle}" *ngIf="parent==0">{{ data.deptCode}}</td>
72
+					<td [ngStyle]="{width:widthStyle}" *ngIf="parent==1"></td>
73
+					<td [ngStyle]="{width:widthStyle}">{{ data.sum }}</td>
74
+					<td [ngStyle]="{width:widthStyle}">{{ data.avgResponseTime }}</td>
75
+					<td [ngStyle]="{width:widthStyle}">{{ data.avgResolvedTime }}</td>
76
+					<td [ngStyle]="{width:widthStyle}">{{ data.resolvedOverNum }}</td>
77
+					<td [ngStyle]="{width:widthStyle}">{{ data.overTimeNum }}</td>
78
+					<td [ngStyle]="{width:widthStyle}">{{ data.consumablePrice }}</td>
79
+					<td [ngStyle]="{width:widthStyle}">{{ data.workHourPrice }}</td>
80
+					<td [ngStyle]="{width:widthStyle}">{{ data.totalPrice }}</td>
81
+					<td [ngStyle]="{width:widthStyle}">{{ data.negativeNum }}</td>
82
+					<td [ngStyle]="{width:widthStyle}">{{ data.favorableRate }}</td>
83
+				</tr>
84
+			</table>
85
+		</ng-template>
86
+	</nz-table>
87
+</div>
86
 <div class="pagination">
88
 <div class="pagination">
87
   <ng-template #totalTemplate let-total> 共 {{ total }} 条 </ng-template>
89
   <ng-template #totalTemplate let-total> 共 {{ total }} 条 </ng-template>
88
   <nz-pagination [(nzPageIndex)]="pageIndex" [(nzTotal)]="listLength" [(nzPageSize)]="pageSize" (nzPageIndexChange)="getList(pageIndex, sortCurrentKey, sortCurrentValue)" (nzPageSizeChange)="getList(pageIndex, sortCurrentKey, sortCurrentValue)" nzShowSizeChanger [nzPageSizeOptions]="[30,50,100,200]" [nzShowTotal]="totalTemplate"></nz-pagination>
90
   <nz-pagination [(nzPageIndex)]="pageIndex" [(nzTotal)]="listLength" [(nzPageSize)]="pageSize" (nzPageIndexChange)="getList(pageIndex, sortCurrentKey, sortCurrentValue)" (nzPageSizeChange)="getList(pageIndex, sortCurrentKey, sortCurrentValue)" nzShowSizeChanger [nzPageSizeOptions]="[30,50,100,200]" [nzShowTotal]="totalTemplate"></nz-pagination>

+ 16 - 1
src/app/views/new-statistics/maintenance-statistics/department-incident-statistics/department-incident-statistics.component.less

@@ -53,7 +53,22 @@
53
   .table{
53
   .table{
54
     margin: 0 8px;
54
     margin: 0 8px;
55
   }
55
   }
56
-
56
+	
57
+	.tableWrap{
58
+	  margin: 0 8px;
59
+	  overflow-x: auto;
60
+	  .footTable, tbody{
61
+	    td{
62
+	      width: 100px;
63
+	      max-width: 100px;
64
+	      &.width150{
65
+	        width: 150px;
66
+	        max-width: 150px;
67
+	      }
68
+	    }
69
+	  }
70
+	}
71
+	
57
   .moreFilter{
72
   .moreFilter{
58
     margin-bottom: 16px;
73
     margin-bottom: 16px;
59
     span{
74
     span{

+ 18 - 5
src/app/views/new-statistics/maintenance-statistics/department-incident-statistics/department-incident-statistics.component.ts

@@ -117,6 +117,9 @@ export class DepartmentIncidentStatisticsComponent implements OnInit, AfterViewI
117
 
117
 
118
   // 表格数据
118
   // 表格数据
119
   loading1 = false;
119
   loading1 = false;
120
+	widthStyle:any;
121
+	widthValue:any;
122
+	widthConfig:any = [];
120
   getList(num?: number, field?: string, sort?: string) {
123
   getList(num?: number, field?: string, sort?: string) {
121
     if (num !== undefined) {
124
     if (num !== undefined) {
122
       this.pageIndex = num;
125
       this.pageIndex = num;
@@ -142,6 +145,15 @@ export class DepartmentIncidentStatisticsComponent implements OnInit, AfterViewI
142
     if (field && sort) {
145
     if (field && sort) {
143
       postData.sort = `${field} ${sort === "ascend" ? `asc` : `desc`}`
146
       postData.sort = `${field} ${sort === "ascend" ? `asc` : `desc`}`
144
     }
147
     }
148
+		if(this.parent==1){
149
+			this.widthConfig = new Array(12).fill('100px').map((v, i) => { return (i == 0 || i == 1 && this.parent==1) || (i == 0 && this.parent==0) ? '150px' : '100px' });;
150
+			this.widthStyle = '8%'
151
+			this.widthValue = 1920
152
+		}else{
153
+			this.widthConfig = new Array(11).fill('100px').map((v, i) => { return (i == 0 || i == 1 && this.parent==1) || (i == 0 && this.parent==0) ? '150px' : '100px' });;
154
+			this.widthStyle = '9%'
155
+			this.widthValue = 1920
156
+		}
145
     this.loading1 = true;
157
     this.loading1 = true;
146
     this.mainService
158
     this.mainService
147
       .postCustom("itsm/report", "repairDept", postData)
159
       .postCustom("itsm/report", "repairDept", postData)
@@ -185,7 +197,7 @@ export class DepartmentIncidentStatisticsComponent implements OnInit, AfterViewI
185
       hosId: this.hosId || undefined,
197
       hosId: this.hosId || undefined,
186
       dutyId: this.dutyId || undefined,
198
       dutyId: this.dutyId || undefined,
187
       parentDutyId: this.parentDutyId || undefined,
199
       parentDutyId: this.parentDutyId || undefined,
188
-      deptTypeId: this.fieldConfig.deptTypeId || undefined,
200
+			deptTypeId: this.fieldConfig.fields.deptTypeId || undefined,
189
 			repairDeptId: this.deptId || undefined,
201
 			repairDeptId: this.deptId || undefined,
190
       groupId: this.fieldConfig.fields.userId ? undefined : (this.fieldConfig.fields.groupId || undefined),
202
       groupId: this.fieldConfig.fields.userId ? undefined : (this.fieldConfig.fields.groupId || undefined),
191
       userId: this.fieldConfig.fields.userId || undefined,
203
       userId: this.fieldConfig.fields.userId || undefined,
@@ -253,10 +265,11 @@ export class DepartmentIncidentStatisticsComponent implements OnInit, AfterViewI
253
 	alldepart:any;
265
 	alldepart:any;
254
 	getDeparts(dept?) {
266
 	getDeparts(dept?) {
255
 	  let data = {
267
 	  let data = {
256
-	    department: {
257
-	      cascadeHosId: this.hospital,
258
-	      dept: dept,
259
-	    },
268
+			department: {
269
+			  statisticalHosId: this.getHosId,
270
+			  dept: dept,
271
+			  searchType: 1,
272
+			},
260
 	    idx: 0,
273
 	    idx: 0,
261
 	    sum: 20,
274
 	    sum: 20,
262
 	  };
275
 	  };

+ 1 - 1
src/app/views/new-statistics/maintenance-statistics/department-source-statistics/department-source-statistics.component.html

@@ -5,7 +5,7 @@
5
       <span class="label">科室</span>:
5
       <span class="label">科室</span>:
6
       <nz-select class="selectItem" [nzDropdownMatchSelectWidth]="false" nzAllowClear nzPlaceHolder="请选择科室" [(ngModel)]="deptId" nzServerSearch nzShowSearch (nzOnSearch)="changeInp($event)">
6
       <nz-select class="selectItem" [nzDropdownMatchSelectWidth]="false" nzAllowClear nzPlaceHolder="请选择科室" [(ngModel)]="deptId" nzServerSearch nzShowSearch (nzOnSearch)="changeInp($event)">
7
         <ng-container *ngFor="let option of alldepart">
7
         <ng-container *ngFor="let option of alldepart">
8
-          <nz-option *ngIf="!isLoading" [nzLabel]="option.dept" [nzValue]="option.id"></nz-option>
8
+          <nz-option *ngIf="!isLoading" [nzLabel]="option.hospital.hosName + '-' + option.dept" [nzValue]="option.id"></nz-option>
9
         </ng-container>
9
         </ng-container>
10
         <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
10
         <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
11
           <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
11
           <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...

+ 3 - 2
src/app/views/new-statistics/maintenance-statistics/department-source-statistics/department-source-statistics.component.ts

@@ -185,7 +185,7 @@ export class DepartmentSourceStatisticsComponent implements OnInit, AfterViewIni
185
 			hosId: this.hosId || undefined,
185
 			hosId: this.hosId || undefined,
186
 			dutyId: this.dutyId || undefined,
186
 			dutyId: this.dutyId || undefined,
187
 			parentDutyId: this.parentDutyId || undefined,
187
 			parentDutyId: this.parentDutyId || undefined,
188
-			deptTypeId: this.fieldConfig.deptTypeId || undefined,
188
+			deptTypeId: this.fieldConfig.fields.deptTypeId || undefined,
189
 			repairDeptId: this.deptId || undefined,
189
 			repairDeptId: this.deptId || undefined,
190
       groupId: this.fieldConfig.fields.userId ? undefined : (this.fieldConfig.fields.groupId || undefined),
190
       groupId: this.fieldConfig.fields.userId ? undefined : (this.fieldConfig.fields.groupId || undefined),
191
       userId: this.fieldConfig.fields.userId || undefined,
191
       userId: this.fieldConfig.fields.userId || undefined,
@@ -254,8 +254,9 @@ export class DepartmentSourceStatisticsComponent implements OnInit, AfterViewIni
254
   getDeparts(dept?) {
254
   getDeparts(dept?) {
255
     let data = {
255
     let data = {
256
       department: {
256
       department: {
257
-        cascadeHosId: this.hospital,
257
+        statisticalHosId: this.getHosId,
258
         dept: dept,
258
         dept: dept,
259
+        searchType: 1,
259
       },
260
       },
260
       idx: 0,
261
       idx: 0,
261
       sum: 20,
262
       sum: 20,

+ 1 - 0
src/app/views/new-statistics/maintenance-statistics/synthesize-statistics/synthesize-statistics.component.less

@@ -136,6 +136,7 @@
136
 						display: flex;
136
 						display: flex;
137
 						height: 45px;
137
 						height: 45px;
138
 						border-bottom: 1px solid #D9D9D9;
138
 						border-bottom: 1px solid #D9D9D9;
139
+						background: #FAFAFA;
139
 						.table-td{
140
 						.table-td{
140
 							line-height: 45px;
141
 							line-height: 45px;
141
 							text-align: center;
142
 							text-align: center;

+ 2 - 2
src/app/views/new-statistics/new-statistics.component.ts

@@ -35,7 +35,7 @@ export class NewStatisticsComponent implements OnInit, OnDestroy {
35
   hospital;
35
   hospital;
36
   duty;
36
   duty;
37
   queryType;//查询范围
37
   queryType;//查询范围
38
-	parent;
38
+	parent:any = 0;
39
   // 初始化院区、部门显示
39
   // 初始化院区、部门显示
40
   initHospitalAndDuty(hospitalOrDuty){
40
   initHospitalAndDuty(hospitalOrDuty){
41
     let sessionData = JSON.parse(sessionStorage.getItem('newStatistics'));
41
     let sessionData = JSON.parse(sessionStorage.getItem('newStatistics'));
@@ -85,7 +85,7 @@ export class NewStatisticsComponent implements OnInit, OnDestroy {
85
 
85
 
86
   // 缓存数据
86
   // 缓存数据
87
   sessionSave(){
87
   sessionSave(){
88
-    sessionStorage.setItem('newStatistics', JSON.stringify({queryType: this.queryType, hospitalId: this.hospital ? this.hospital.id : undefined, dutyId: this.duty ? this.duty.id : undefined, hospital: this.hospital, duty: this.duty, parent:this.parent}));
88
+    sessionStorage.setItem('newStatistics', JSON.stringify({queryType: this.queryType, hospitalId: this.hospital ? this.hospital.id : undefined, dutyId: this.duty ? this.duty.id : undefined, hospital: this.hospital, duty: this.duty, parent: this.parent}));
89
   }
89
   }
90
 
90
 
91
   // 查询范围
91
   // 查询范围

+ 3 - 3
src/app/views/users-management/users-management.component.ts

@@ -626,7 +626,7 @@ export class UsersManagementComponent implements OnInit {
626
         }
626
         }
627
       });
627
       });
628
   }
628
   }
629
-	
629
+
630
 	// 确认恢复
630
 	// 确认恢复
631
 	confirmRecover() {
631
 	confirmRecover() {
632
 		this.hideRecoverModal();
632
 		this.hideRecoverModal();
@@ -656,12 +656,12 @@ export class UsersManagementComponent implements OnInit {
656
 	      }
656
 	      }
657
 	    });
657
 	    });
658
 	}
658
 	}
659
-	
659
+
660
 	// 关闭恢复模态框
660
 	// 关闭恢复模态框
661
 	hideRecoverModal() {
661
 	hideRecoverModal() {
662
 	  this.recoverModal = false;
662
 	  this.recoverModal = false;
663
 	}
663
 	}
664
-	
664
+
665
   // 关闭删除模态框
665
   // 关闭删除模态框
666
   hideDelModal() {
666
   hideDelModal() {
667
     this.delModal = false;
667
     this.delModal = false;