瀏覽代碼

巡检执行-详情

seimin 9 月之前
父節點
當前提交
9bc3780de5

+ 124 - 0
src/app/share/inspection-execute-detail/inspection-execute-detail.component.html

@@ -0,0 +1,124 @@
1
+<div class="detail" *ngIf="!maskFlag">
2
+  <div class="title">
3
+    查看详情<i class="icon_transport transport-guanbi" (click)="close()"></i>
4
+  </div>
5
+  <div class="box">
6
+    <div class="tab display_flex">
7
+      <div
8
+        [ngClass]="{ item: true, flex_1: true, checked: tabType == 1 }"
9
+        (click)="checkTab(1)"
10
+      >
11
+        基础信息
12
+      </div>
13
+      <div
14
+        [ngClass]="{ item: true, flex_1: true, checked: tabType == 4 }"
15
+        (click)="checkTab(4)"
16
+      >
17
+        日志
18
+      </div>
19
+    </div>
20
+
21
+    <!-- 基础信息 -->
22
+    <overlay-scrollbars
23
+      #osComponentRef3
24
+      style="flex: 1"
25
+      *ngIf="tabType == 1"
26
+    >
27
+      <div class="content orders">
28
+        <div class="inner">
29
+          <div class="top">
30
+            <div class="info" nz-row>
31
+              <div nz-col nzSpan="8">
32
+                单号:{{ orderInfo.code }}
33
+              </div>
34
+              <div nz-col nzSpan="8">
35
+                计划主题:{{ orderInfo.inspectionDTO?.name }}
36
+              </div>
37
+              <div nz-col nzSpan="8">
38
+                批次号:{{ orderInfo.batchNo }}
39
+              </div>
40
+            </div>
41
+          </div>
42
+          <div class="top">
43
+            <div class="info" nz-row>
44
+              <div nz-col nzSpan="8">
45
+                巡检点:{{ orderInfo.inspectionNodeDTO?.name }}
46
+              </div>
47
+              <div nz-col nzSpan="8">
48
+                巡检单:{{ orderInfo.inspectionDTO?.inspectionFormDTO?.name }}
49
+              </div>
50
+              <div nz-col nzSpan="8">
51
+                创建时间:{{ orderInfo.addTime | date:'yyyy-MM-dd HH:mm' }}
52
+              </div>
53
+            </div>
54
+          </div>
55
+          <div class="top">
56
+            <div class="info" nz-row>
57
+              <div nz-col nzSpan="8">
58
+                签到方式:{{ orderInfo.signType?.name }}
59
+              </div>
60
+              <div nz-col nzSpan="8">
61
+                执行人:{{ orderInfo.userDTO?.name || orderInfo.groupDTO?.groupName }}
62
+              </div>
63
+              <div nz-col nzSpan="8">
64
+                状态:{{ orderInfo.status?.name }}
65
+              </div>
66
+            </div>
67
+          </div>
68
+          <div class="top">
69
+            <div class="info" nz-row>
70
+              <div nz-col nzSpan="8">
71
+                截至时间:{{ orderInfo.overtime | date:'yyyy-MM-dd HH:mm' }}
72
+              </div>
73
+              <div nz-col nzSpan="8">
74
+                完成时间:{{ orderInfo.completeTime | date:'yyyy-MM-dd HH:mm' }}
75
+              </div>
76
+              <div nz-col nzSpan="8">
77
+                是否异常:<span [ngClass]="orderInfo.exception === 1 ? 'red': ''">{{ orderInfo.exception === 1 ? '是' : '否' }}</span>
78
+              </div>
79
+            </div>
80
+          </div>
81
+        </div>
82
+      </div>
83
+    </overlay-scrollbars>
84
+    <!-- 日志 -->
85
+    <overlay-scrollbars
86
+      #osComponentRef2
87
+      style="flex:1;"
88
+      *ngIf="tabType == 4"
89
+    >
90
+      <div class="content jifen">
91
+        <div class="table">
92
+          <nz-table class="integralTable" [nzData]="list" nzSize="middle" [nzShowPagination]="null" [nzLoading]="hsLoading" [nzScroll]="{ y: '500px' }">
93
+            <thead>
94
+              <tr class="thead">
95
+                <th nzWidth="8%">序号</th>
96
+                <th nzWidth="23%">操作动作</th>
97
+                <th nzWidth="23%">操作时间</th>
98
+                <th nzWidth="23%">操作人</th>
99
+                <th nzWidth="23%">备注</th>
100
+              </tr>
101
+            </thead>
102
+            <tbody>
103
+              <tr *ngFor="let item of list; let i = index">
104
+                <td>{{ i + 1 }}</td>
105
+                <td>{{ item.operationType?.name }}</td>
106
+                <td>{{ item.operationTime | date:'yyyy-MM-dd HH:mm' }}</td>
107
+                <td>{{ item.username }}</td>
108
+                <td>{{ item.remarks }}</td>
109
+              </tr>
110
+            </tbody>
111
+          </nz-table>
112
+        </div>
113
+      </div>
114
+    </overlay-scrollbars>
115
+  </div>
116
+  <div class="btns">
117
+    <button class="btn cancel" nz-button nzType="default" (click)="close()">
118
+      关闭
119
+    </button>
120
+  </div>
121
+</div>
122
+
123
+<!-- 遮罩 -->
124
+<app-mask *ngIf="maskFlag"></app-mask>

+ 544 - 0
src/app/share/inspection-execute-detail/inspection-execute-detail.component.less

@@ -0,0 +1,544 @@
1
+@import "../../../../src/theme.less";
2
+:host {
3
+  width: 100%;
4
+  height: 100%;
5
+  position: fixed;
6
+  left: 0;
7
+  top: 0;
8
+  background: rgba(0, 0, 0, 0.4);
9
+  z-index: 99;
10
+
11
+  display: flex;
12
+  justify-content: center;
13
+  align-items: center;
14
+}
15
+
16
+.detail {
17
+  display: flex;
18
+  flex-direction: column;
19
+  width: 1200px;
20
+  // min-height: 580px;
21
+  border-radius: 5px;
22
+  background: #fff;
23
+  color: #333;
24
+  font-size: 14px;
25
+  padding: 12px 20px;
26
+  position: relative;
27
+  padding-bottom: 70px;
28
+
29
+  .pagination{
30
+    margin: 8px;
31
+    text-align: right;
32
+  }
33
+
34
+  .title {
35
+    font-size: 18px;
36
+    text-align: center;
37
+    line-height: 24px;
38
+    margin: 0;
39
+    margin-bottom: 12px;
40
+    position: relative;
41
+
42
+    i {
43
+      position: absolute;
44
+      right: 0;
45
+      top: 0;
46
+      font-size: 20px;
47
+      color: #666;
48
+      cursor: pointer;
49
+      padding: 0 5px;
50
+    }
51
+  }
52
+
53
+  & > .box {
54
+    width: 1160px;
55
+    border: 1px solid #e5e9ed;
56
+    border-radius: 5px;
57
+    flex: 1;
58
+    overflow: hidden;
59
+    display: flex;
60
+    flex-direction: column;
61
+
62
+    .tab {
63
+      width: 100%;
64
+      height: 60px;
65
+      border-bottom: 1px solid #e5e9ed;
66
+
67
+      .item {
68
+        cursor: pointer;
69
+        text-align: center;
70
+        line-height: 60px;
71
+        height: 100%;
72
+        border-right: 1px solid #e5e9ed;
73
+
74
+        &:nth-last-child(1) {
75
+          border: none;
76
+        }
77
+
78
+        &.checked {
79
+          background: #F0F6ED;
80
+        }
81
+      }
82
+    }
83
+
84
+    .content {
85
+      width: 100%;
86
+      // min-height: 453px;
87
+      display: flex;
88
+      flex-direction: column;
89
+
90
+      &.orders {
91
+        background: #fff;
92
+        padding: 16px;
93
+        .inner{
94
+          background: #f9fafb;
95
+          border-radius: 8px;
96
+          width: 100%;
97
+          border: 1px solid #D9D9D9;
98
+          overflow: hidden;
99
+          padding: 10px 0;
100
+        }
101
+      }
102
+
103
+      & .top {
104
+        padding: 10px 32px;
105
+        overflow: hidden;
106
+
107
+        .num {
108
+          font-size: 16px;
109
+          overflow: hidden;
110
+          margin-bottom: 6px;
111
+
112
+          .left {
113
+            float: left;
114
+            font-weight: 600;
115
+          }
116
+
117
+          .right {
118
+            float: right;
119
+          }
120
+        }
121
+
122
+        .info {
123
+          color: #666;
124
+
125
+          .jiaji {
126
+            margin: 0;
127
+            margin-top: 8px;
128
+          }
129
+        }
130
+      }
131
+
132
+      & > .center {
133
+        padding: 27px 0 17px 0;
134
+        border-bottom: 1px solid #e5e9ed;
135
+        font-size: 12px;
136
+        background: #fff;
137
+
138
+        .box {
139
+          display: flex;
140
+          justify-content: center;
141
+
142
+          .steps {
143
+            &:nth-last-child(1) {
144
+              .line {
145
+                display: none !important;
146
+              }
147
+            }
148
+
149
+            .step {
150
+              .info {
151
+                width: 90px;
152
+                text-align: center;
153
+                display: inline-block;
154
+                vertical-align: top;
155
+
156
+                i {
157
+                  color: #e5e9ed;
158
+
159
+                  &.green {
160
+                    color: @primary-color;
161
+                  }
162
+                }
163
+              }
164
+
165
+              p {
166
+                margin: 0;
167
+              }
168
+
169
+              .line {
170
+                display: inline-block;
171
+                width: 60px;
172
+                height: 2px;
173
+                background: #e5e9ed;
174
+              }
175
+            }
176
+          }
177
+        }
178
+      }
179
+
180
+      & > .bottom {
181
+        flex: 1;
182
+        padding: 25px 32px;
183
+        background: #f9fafb;
184
+
185
+        .amplification {
186
+          display: flex;
187
+          justify-content: flex-end;
188
+          margin-bottom: 8px;
189
+        }
190
+
191
+        .urgent {
192
+          input {
193
+            width: 600px;
194
+          }
195
+
196
+          .candelBtn {
197
+            margin-left: 20px;
198
+          }
199
+        }
200
+
201
+        .table {
202
+          width: 100%;
203
+          height: 100%;
204
+          min-height: 160px;
205
+          background: #fff;
206
+          border-radius: 5px;
207
+
208
+          .thead {
209
+            background-image: repeating-linear-gradient(
210
+              to right,
211
+              @bg-start,
212
+              @bg-end 100%
213
+            ) !important;
214
+
215
+            th {
216
+              color: #fff !important;
217
+              text-align: center;
218
+              font-size: 12px;
219
+              border: none;
220
+            }
221
+          }
222
+
223
+          .detailDrugTable {
224
+            .thead {
225
+              background-image: repeating-linear-gradient(
226
+                to right,
227
+                @bg-start,
228
+                @bg-end 50%
229
+              ) !important;
230
+            }
231
+          }
232
+
233
+          .ant-table-tbody {
234
+            tr {
235
+              text-align: center;
236
+              font-size: 12px;
237
+              border: none;
238
+
239
+              td {
240
+                border: none;
241
+                position: relative;
242
+              }
243
+            }
244
+
245
+            tr:nth-child(2n) {
246
+              background: #f9fafb;
247
+            }
248
+          }
249
+        }
250
+
251
+        .info {
252
+          width: 100%;
253
+          height: 100%;
254
+          background: #fff;
255
+          border-radius: 5px;
256
+          border: 1px solid #e5e9ed;
257
+          padding: 24px 28px 14px 28px;
258
+          margin-bottom: 8px;
259
+
260
+          .top {
261
+            .left {
262
+              border-right: 1px dashed #e5e9ed;
263
+
264
+              p {
265
+                padding: 0 70px 0 102px;
266
+                overflow: hidden;
267
+
268
+                & > span:nth-child(1) {
269
+                  float: left;
270
+                }
271
+
272
+                & > span:nth-child(2) {
273
+                  float: right;
274
+                  color: #666;
275
+                  text-align: right;
276
+                  max-width: 175px;
277
+                }
278
+              }
279
+            }
280
+
281
+            .right {
282
+              p {
283
+                padding: 0 102px 0 70px;
284
+                overflow: hidden;
285
+
286
+                span:nth-child(1) {
287
+                  float: left;
288
+                }
289
+
290
+                span:nth-child(2) {
291
+                  float: right;
292
+                  color: #666;
293
+                  text-align: right;
294
+                }
295
+              }
296
+            }
297
+          }
298
+
299
+          .wait {
300
+            text-align: center;
301
+            margin-top: 7px;
302
+
303
+            i {
304
+              font-size: 24px;
305
+              color: #62c26d;
306
+            }
307
+
308
+            span {
309
+              color: #62c26d;
310
+            }
311
+          }
312
+        }
313
+      }
314
+
315
+      &.pingjia {
316
+        .msg {
317
+          width: 100%;
318
+          height: 50px;
319
+          line-height: 50px;
320
+          padding-left: 32px;
321
+          border-bottom: 1px solid #e5e9ed;
322
+
323
+          div {
324
+            display: inline-block;
325
+            margin-right: 100px;
326
+          }
327
+        }
328
+
329
+        .con {
330
+          padding: 16px 32px;
331
+          min-height: 360px;
332
+        }
333
+      }
334
+
335
+      & > .form {
336
+        .ant-form-item {
337
+          padding: 0 32px 13px 32px;
338
+          margin-bottom: 0;
339
+          border-bottom: 1px solid #e5e9ed;
340
+
341
+          &:nth-last-child(1) {
342
+            border: none;
343
+          }
344
+        }
345
+
346
+        .ant-form-item-label {
347
+          line-height: 34px;
348
+          text-align: left;
349
+        }
350
+      }
351
+
352
+      & > .mediation {
353
+        padding: 16px 32px;
354
+
355
+        .item {
356
+          border-bottom: 1px solid #e5e9ed;
357
+          padding-top: 10px;
358
+
359
+          .label {
360
+            line-height: 28px;
361
+            margin-top: 10px;
362
+          }
363
+
364
+          .info {
365
+            line-height: 28px;
366
+            color: #999;
367
+            padding-bottom: 20px;
368
+          }
369
+        }
370
+      }
371
+
372
+      &.jifen {
373
+        padding: 16px;
374
+
375
+        & > .table {
376
+          width: 100%;
377
+          height: 100%;
378
+          min-height: 160px;
379
+          padding: 6px;
380
+          background: #fff;
381
+          border: 1px solid #e5e9ed;
382
+          border-radius: 5px;
383
+          overflow: hidden;
384
+
385
+          .thead {
386
+            background-image: repeating-linear-gradient(
387
+              to right,
388
+              @bg-start,
389
+              @bg-end 100%
390
+            ) !important;
391
+
392
+            th {
393
+              color: #fff !important;
394
+              text-align: center;
395
+              font-size: 12px;
396
+              border: none;
397
+              background: transparent;
398
+            }
399
+          }
400
+
401
+          .ant-table-tbody {
402
+            tr {
403
+              text-align: center;
404
+              font-size: 12px;
405
+              border: none;
406
+
407
+              td {
408
+                border: none;
409
+              }
410
+            }
411
+
412
+            tr:nth-child(2n) {
413
+              background: #f9fafb;
414
+            }
415
+          }
416
+        }
417
+      }
418
+    }
419
+  }
420
+
421
+  .btns {
422
+    display: flex;
423
+    justify-content: center;
424
+    align-items: center;
425
+    width: 100%;
426
+    position: absolute;
427
+    left: 0;
428
+    bottom: 20px;
429
+
430
+    .btn {
431
+      margin: 9px;
432
+      margin-bottom: 0;
433
+    }
434
+  }
435
+
436
+  .ant-table {
437
+    border: none !important;
438
+  }
439
+}
440
+
441
+// 撤回工单
442
+.recallOrder {
443
+  position: fixed;
444
+  left: 0;
445
+  top: 0;
446
+  width: 100%;
447
+  height: 100%;
448
+
449
+  display: flex;
450
+  justify-content: center;
451
+  align-items: center;
452
+  background: rgba(0, 0, 0, 0.4);
453
+  z-index: 99;
454
+
455
+  .modalBody {
456
+    width: 350px;
457
+    height: 220px;
458
+    background: #fff;
459
+    border-radius: 5px;
460
+    padding: 10px 20px;
461
+    color: #333;
462
+
463
+    .title {
464
+      width: 100%;
465
+      text-align: center;
466
+      font-size: 18px;
467
+      position: relative;
468
+
469
+      i {
470
+        position: absolute;
471
+        right: 0;
472
+        top: 0;
473
+        font-size: 20px;
474
+        color: #666;
475
+        cursor: pointer;
476
+        padding: 0 5px;
477
+      }
478
+    }
479
+
480
+    .content {
481
+      width: 310px;
482
+      height: 117px;
483
+      background: #f9fafb;
484
+      border: 1px solid #e5e9ed;
485
+      border-radius: 5px;
486
+      overflow: hidden;
487
+      margin-top: 12px;
488
+
489
+      div {
490
+        text-align: center;
491
+        margin: 0;
492
+
493
+        &.icon {
494
+          margin-top: 17px;
495
+
496
+          i {
497
+            color: #ff3b53;
498
+            font-size: 30px !important;
499
+
500
+            &.transport-wenhao {
501
+              color: #f5a523;
502
+            }
503
+          }
504
+        }
505
+
506
+        &.defeat {
507
+          color: #333;
508
+          font-size: 18px;
509
+        }
510
+
511
+        &:nth-child(3) {
512
+          font-size: 14px;
513
+          color: #666;
514
+        }
515
+      }
516
+
517
+      .conditions {
518
+        padding: 16px 20px;
519
+
520
+        div {
521
+          text-align: left;
522
+        }
523
+      }
524
+    }
525
+
526
+    button {
527
+      margin-top: 10px;
528
+
529
+      &.btn {
530
+        margin-left: 8px;
531
+      }
532
+    }
533
+  }
534
+}
535
+
536
+.txtC {
537
+  text-align: center;
538
+}
539
+.ji {
540
+  position: absolute;
541
+  right: 0px;
542
+  top: -3px;
543
+  width: 30px;
544
+}

+ 73 - 0
src/app/share/inspection-execute-detail/inspection-execute-detail.component.ts

@@ -0,0 +1,73 @@
1
+import { Component, OnInit, ViewChild } from "@angular/core";
2
+import { ActivatedRoute } from "@angular/router";
3
+import { MainService } from "../../services/main.service";
4
+import { OverlayScrollbarsComponent } from "overlayscrollbars-ngx";
5
+import { NzMessageService } from "ng-zorro-antd";
6
+import { ToolService } from 'src/app/services/tool.service';
7
+@Component({
8
+  selector: "app-inspection-execute-detail",
9
+  templateUrl: "./inspection-execute-detail.component.html",
10
+  styleUrls: ["./inspection-execute-detail.component.less"],
11
+})
12
+export class InspectionExecuteDetailComponent implements OnInit {
13
+  @ViewChild("osComponentRef1", {
14
+    read: OverlayScrollbarsComponent,
15
+    static: false,
16
+  })
17
+  osComponentRef1: OverlayScrollbarsComponent;
18
+  @ViewChild("osComponentRef2", {
19
+    read: OverlayScrollbarsComponent,
20
+    static: false,
21
+  })
22
+  osComponentRef2: OverlayScrollbarsComponent;
23
+  constructor(
24
+    private message: NzMessageService,
25
+    private route: ActivatedRoute,
26
+    private mainService: MainService,
27
+    private tool: ToolService,
28
+  ) {}
29
+  maskFlag: any = false;
30
+  id: number; //id
31
+  orderInfo: any; //详情信息
32
+  hosId;
33
+
34
+  ngOnInit() {
35
+    this.hosId = this.tool.getCurrentHospital().id;
36
+    this.tabType = this.route.snapshot.params.type || 1;
37
+    this.getInfo();
38
+  }
39
+
40
+  // 获取详情
41
+  hsLoading:boolean = false;
42
+  getInfo() {
43
+    this.id = +this.route.snapshot.paramMap.get("id");
44
+    this.maskFlag = this.message.loading("正在加载中..", {
45
+      nzDuration: 0,
46
+    }).messageId;
47
+    this.mainService
48
+      .getFetchData("simple/data", "inspectionTask", this.id)
49
+      .subscribe((data) => {
50
+        this.orderInfo = data.data || {};
51
+        this.list = this.orderInfo.logList || [];
52
+        this.message.remove(this.maskFlag);
53
+        this.maskFlag = false;
54
+      });
55
+  }
56
+
57
+  // 获取列表
58
+  pageIndex: number = 1;//表格当前页码
59
+  pageSize: number = 10;//表格每页展示条数
60
+  total: number = 0;//表格总数据量
61
+  list: any = [];
62
+  // 切换tab栏
63
+  tabType: number = 1; //tab栏
64
+  checkTab(type) {
65
+    this.tabType = type;
66
+  }
67
+
68
+  // 关闭弹框
69
+  close() {
70
+    history.go(-1);
71
+  }
72
+
73
+}

+ 3 - 0
src/app/share/share.module.ts

@@ -51,6 +51,7 @@ import { BloodHistoryPromptModalComponent } from './blood-history-prompt-modal/b
51 51
 import { MedicalWasteHistoryPromptModalComponent } from './medical-waste-history-prompt-modal/medical-waste-history-prompt-modal.component';
52 52
 import { MedicalWasteLogPromptModalComponent } from './medical-waste-log-prompt-modal/medical-waste-log-prompt-modal.component';
53 53
 import { OutgoingRecordDetailComponent } from './outgoing-record-detail/outgoing-record-detail.component';
54
+import { InspectionExecuteDetailComponent } from './inspection-execute-detail/inspection-execute-detail.component';
54 55
 
55 56
 @NgModule({
56 57
   declarations: [
@@ -78,6 +79,7 @@ import { OutgoingRecordDetailComponent } from './outgoing-record-detail/outgoing
78 79
     AppraiseDetailComponent,
79 80
     OrderDetailComponent,
80 81
     OutgoingRecordDetailComponent,
82
+    InspectionExecuteDetailComponent,
81 83
     DateTransformPipe,
82 84
     DataToNamePipe,
83 85
     DialogDeleteComponent,
@@ -138,6 +140,7 @@ import { OutgoingRecordDetailComponent } from './outgoing-record-detail/outgoing
138 140
     AppraiseDetailComponent,
139 141
     OrderDetailComponent,
140 142
     OutgoingRecordDetailComponent,
143
+    InspectionExecuteDetailComponent,
141 144
     CommonModule,
142 145
     NgZorroAntdModule,
143 146
     FormsModule,

+ 12 - 1
src/app/views/inspection-execute/inspection-execute-routing.module.ts

@@ -1,10 +1,21 @@
1 1
 import { NgModule } from '@angular/core';
2 2
 import { Routes, RouterModule } from '@angular/router';
3 3
 import { InspectionExecuteComponent } from './inspection-execute.component';
4
+import { InspectionExecuteDetailComponent } from 'src/app/share/inspection-execute-detail/inspection-execute-detail.component';
4 5
 
5 6
 
6 7
 const routes: Routes = [
7
-  { path: '', component: InspectionExecuteComponent }
8
+  {
9
+    path: '',
10
+    component: InspectionExecuteComponent,
11
+    children: [
12
+      {
13
+        // 查看详情
14
+        path: 'inspectionExecuteDetail/:id',
15
+        component: InspectionExecuteDetailComponent,
16
+      }
17
+    ]
18
+  }
8 19
 ];
9 20
 
10 21
 @NgModule({

+ 8 - 5
src/app/views/inspection-execute/inspection-execute.component.html

@@ -43,8 +43,8 @@
43 43
         </div>
44 44
       </div>
45 45
       <div nz-col nzLg="8" class="list-template__btns">
46
-        <button nz-button *ngIf="coopBtns.del" class="btn default" (click)="showDelModal(data,'您确认要删除选中的巡检任务吗?','删除','delList')">批量删除</button>
47
-        <button nz-button *ngIf="coopBtns.designate" class="btn default ml8" (click)="showInspectionExecuteAssign()">批量指派</button>
46
+        <button nz-button *ngIf="coopBtns.del" [disabled]="!checkedDepIds.length" class="btn default" (click)="showDelModal(data,'您确认要删除选中的巡检任务吗?','删除','delList')">批量删除</button>
47
+        <button nz-button *ngIf="coopBtns.designate" [disabled]="!checkedDepIds.length" class="btn default ml8" (click)="showInspectionExecuteAssign()">批量指派</button>
48 48
         <button nz-button class="btn default ml8" (click)='search()'>搜索</button>
49 49
         <button nz-button class="btn default ml8" (click)='reset()'>重置</button>
50 50
       </div>
@@ -68,10 +68,10 @@
68 68
         </thead>
69 69
         <tbody>
70 70
           <tr *ngFor="let data of listOfData;let i = index" (click)="selectedListData(data)">
71
-            <td nzShowCheckbox [(nzChecked)]="mapOfCheckedId[data.id]" (nzCheckedChange)="refreshStatus()"></td>
71
+            <td nzShowCheckbox [nzDisabled]="data.status.value != 1" [(nzChecked)]="mapOfCheckedId[data.id]" (nzCheckedChange)="refreshStatus()"></td>
72 72
             <td>{{data.code}}</td>
73 73
             <td>{{data.inspectionDTO?.name}}<br>{{data.batchNo}}</td>
74
-            <td>{{data.inspectionNodeDTO?.name}}<br>{{data.inspectionFormDTO?.inspectionFormDTO?.name}}</td>
74
+            <td>{{data.inspectionNodeDTO?.name}}<br>{{data.inspectionDTO?.inspectionFormDTO?.name}}</td>
75 75
             <td>{{data.overtime | date:'yyyy-MM-dd HH:mm'}}</td>
76 76
             <td>{{data.signType?.name}}</td>
77 77
             <td>{{data.userDTO?.name || data.groupDTO?.groupName}}</td>
@@ -79,7 +79,7 @@
79 79
             <td>{{data.status?.name}}</td>
80 80
             <td>
81 81
               <div class="coop">
82
-                <span *ngIf="coopBtns.look" (click)="edit(data)">查看</span>
82
+                <span *ngIf="coopBtns.look" (click)="detail($event,data.id)">查看</span>
83 83
                 <span *ngIf="coopBtns.designate && data.status.value == 1" (click)="showInspectionExecuteAssign(data)">指派</span>
84 84
                 <span *ngIf="coopBtns.del" (click)="showDelModal(data,'您确认要删除选中的巡检任务吗?','删除','del')">删除</span>
85 85
               </div>
@@ -113,3 +113,6 @@
113 113
 
114 114
 <!-- 遮罩 -->
115 115
 <app-mask *ngIf="maskFlag"></app-mask>
116
+
117
+<!-- 查看详情 -->
118
+<router-outlet></router-outlet>

+ 15 - 2
src/app/views/inspection-execute/inspection-execute.component.ts

@@ -63,6 +63,12 @@ export class InspectionExecuteComponent implements OnInit {
63 63
   // 初始化增删改按钮
64 64
   coopBtns: any = {};
65 65
 
66
+  // 查看
67
+  detail(e, id) {
68
+    e.stopPropagation();
69
+    this.router.navigateByUrl("/main/inspectionExecute/inspectionExecuteDetail/" + id);
70
+  }
71
+
66 72
   // 派单给人
67 73
   inspectionExecuteAssignPromptModalShow = false;
68 74
   showInspectionExecuteAssign(data?) {
@@ -106,7 +112,9 @@ export class InspectionExecuteComponent implements OnInit {
106 112
   mapOfCheckedId: { [key: string]: boolean } = {};
107 113
   checkedDepIds:any[] = []; //已选中单列id
108 114
   refreshStatus(): void {
109
-    let listOfData = this.listOfData;
115
+    let listOfData = this.listOfData.filter(
116
+      (item) => item.status.value == 1
117
+    );
110 118
     this.isAllDisplayDataChecked = listOfData.every(
111 119
       (item) => this.mapOfCheckedId[item.id]
112 120
     );
@@ -120,6 +128,9 @@ export class InspectionExecuteComponent implements OnInit {
120 128
   }
121 129
   // 整行操作
122 130
   selectedListData(data) {
131
+    if (data.status.value != 1) {
132
+      return;
133
+    }
123 134
     this.mapOfCheckedId[data.id] = !this.mapOfCheckedId[data.id];
124 135
     this.refreshStatus();
125 136
   }
@@ -127,7 +138,9 @@ export class InspectionExecuteComponent implements OnInit {
127 138
   isAllDisplayDataChecked = false; //当前页是否全选
128 139
   checkAll(value: boolean): void {
129 140
     this.listOfData.forEach((item) => {
130
-      this.mapOfCheckedId[item.id] = value;
141
+      if (item.status.value == 1) {
142
+        this.mapOfCheckedId[item.id] = value;
143
+      }
131 144
     });
132 145
     this.refreshStatus();
133 146
   }