incident-statistics.component.html 5.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <div class="searchDataWrap">
  2. <div class="searchData">
  3. <div class="searchDataItem">
  4. <span class="label">建单时间</span>:
  5. <nz-range-picker [(ngModel)]="dateRange" [nzAllowClear]="false" (ngModelChange)="changeDate($event)" (nzOnCalendarChange)="onCalendarChangeDate($event)">
  6. </nz-range-picker>
  7. </div>
  8. <div class="searchDataItem">
  9. <span class="label">报修科室</span>:
  10. <nz-select class="selectItem" [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch (nzOnSearch)="changeRepairDeptInp($event)" nzAllowClear nzPlaceHolder="请选择报修科室" [(ngModel)]="repairDeptId" (nzOpenChange)="openChangeRepairDept($event)">
  11. <ng-container *ngFor="let option of repairDeptList">
  12. <nz-option *ngIf="!isLoading" [nzLabel]="option.hospital.hosName + '-' + option.dept" [nzValue]="option.id"></nz-option>
  13. </ng-container>
  14. <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
  15. <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
  16. </nz-option>
  17. </nz-select>
  18. </div>
  19. </div>
  20. <div class="operation">
  21. <i class="icon_transport transport-gengduo" nz-tooltip nzTooltipTitle="更多搜索" (click)="showMore()"></i>
  22. <button nz-button class="btn default" (click)="search()">查询</button>
  23. <button nz-button class="btn default ml8" (click)="reset()">重置</button>
  24. <button nz-button class="btn default ml8" (click)="excelExport()" [nzLoading]="excelExportLoading">导出</button>
  25. </div>
  26. </div>
  27. <div class="moreFilter" *ngIf="fieldConfig.fields.groupDTO || fieldConfig.fields.userDTO || fieldConfig.fields.category1DTO || fieldConfig.fields.category2DTO || fieldConfig.fields.category3DTO || fieldConfig.fields.sourceDTO">
  28. <span>{{fieldConfig.fields.groupDTO?.groupName}}</span>
  29. <span>{{fieldConfig.fields.userDTO?.name}}</span>
  30. <span>{{fieldConfig.fields.category1DTO?.category}}</span>
  31. <span>{{fieldConfig.fields.category2DTO?.category}}</span>
  32. <span>{{fieldConfig.fields.category3DTO?.category}}</span>
  33. <span>{{fieldConfig.fields.sourceDTO?.name}}</span>
  34. </div>
  35. <nz-table class="table" [nzData]="listOfData" nzSize="middle" [nzShowPagination]="false" [nzLoading]="loading1" [nzScroll]="{ y: tableHeight + 'px' }" [nzFooter]="footerTpl">
  36. <thead (nzSortChange)="sort($event)" nzSingleSort>
  37. <tr>
  38. <th nzWidth="10%" nzShowSort nzSortKey="startDate" [(nzSort)]="sortCurrent.startDate">时间</th>
  39. <th nzWidth="9%" nzShowSort nzSortKey="sum" [(nzSort)]="sortCurrent.sum">工单总数</th>
  40. <th nzWidth="9%" nzShowSort nzSortKey="avgResponseTime" [(nzSort)]="sortCurrent.avgResponseTime">平均接单时长</th>
  41. <th nzWidth="9%" nzShowSort nzSortKey="avgResolvedTime" [(nzSort)]="sortCurrent.avgResolvedTime">平均解决时长</th>
  42. <th nzWidth="9%" nzShowSort nzSortKey="resolvedOverNum" [(nzSort)]="sortCurrent.resolvedOverNum">超时单数</th>
  43. <th nzWidth="9%" nzShowSort nzSortKey="overTimeNum" [(nzSort)]="sortCurrent.overTimeNum">挂起单数</th>
  44. <th nzWidth="9%" nzShowSort nzSortKey="consumablePrice" [(nzSort)]="sortCurrent.consumablePrice">耗材费用(元)</th>
  45. <th nzWidth="9%" nzShowSort nzSortKey="workHourPrice" [(nzSort)]="sortCurrent.workHourPrice">工时费用(元)</th>
  46. <th nzWidth="9%" nzShowSort nzSortKey="totalPrice" [(nzSort)]="sortCurrent.totalPrice">总费用(元)</th>
  47. <th nzWidth="9%" nzShowSort nzSortKey="negativeNum" [(nzSort)]="sortCurrent.negativeNum">差评单数</th>
  48. <th nzWidth="9%" nzShowSort nzSortKey="favorableRate" [(nzSort)]="sortCurrent.favorableRate">好评率</th>
  49. </tr>
  50. </thead>
  51. <tbody>
  52. <tr *ngFor="let data of listOfData">
  53. <td>{{ data.startDate }}</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: 10%">{{ data.startDate }}</td>
  70. <td style="width: 9%">{{ data.sum }}</td>
  71. <td style="width: 9%">{{ data.avgResponseTime }}</td>
  72. <td style="width: 9%">{{ data.avgResolvedTime }}</td>
  73. <td style="width: 9%">{{ data.resolvedOverNum }}</td>
  74. <td style="width: 9%">{{ data.overTimeNum }}</td>
  75. <td style="width: 9%">{{ data.consumablePrice }}</td>
  76. <td style="width: 9%">{{ data.workHourPrice }}</td>
  77. <td style="width: 9%">{{ data.totalPrice }}</td>
  78. <td style="width: 9%">{{ data.negativeNum }}</td>
  79. <td style="width: 9%">{{ data.favorableRate }}</td>
  80. </tr>
  81. </table>
  82. </ng-template>
  83. </nz-table>
  84. <div class="pagination">
  85. <ng-template #totalTemplate let-total> 共 {{ total }} 条 </ng-template>
  86. <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. </div>
  88. <!-- 详细搜索 -->
  89. <app-search-more [fieldConfig]="fieldConfig" *ngIf="showSearchMore" [hosId]="hosId" [queryType]="queryType" [dutyId]="dutyId" [parentDutyId]="parentDutyId" (cancelEvent)="cancelEvent()" (submitEvent)="submitEvent($event)"></app-search-more>