seimin il y a 7 mois
Parent
commit
925e8b4510
23 fichiers modifiés avec 806 ajouts et 140 suppressions
  1. 1 1
      proxy.conf.json
  2. 115 39
      src/app/components/incidentManagement/incident-detail/incident-detail.component.html
  3. 206 7
      src/app/components/incidentManagement/incident-detail/incident-detail.component.less
  4. 191 65
      src/app/components/incidentManagement/incident-detail/incident-detail.component.ts
  5. 2 0
      src/app/components/incidentManagement/incident-detail/incident-detail.module.ts
  6. 1 1
      src/app/components/incidentManagement/incident-handle-order/incident-handle-order.component.html
  7. 20 0
      src/app/components/incidentManagement/incident-handle-order/incident-handle-order.module.ts
  8. 3 3
      src/app/components/incidentManagement/incident-handle/incident-handle.component.html
  9. 1 1
      src/app/components/incidentManagement/incident-handle/incident-handle.component.less
  10. 3 2
      src/app/components/incidentManagement/incident-handle/incident-handle.component.ts
  11. 2 3
      src/app/components/incidentManagement/incident-handle/incident-handle.module.ts
  12. 5 0
      src/app/services/main.service.ts
  13. 1 1
      src/app/share/detail-bx/detail-bx.component.html
  14. 2 2
      src/app/share/detail-bx/detail-bx.component.ts
  15. 2 2
      src/app/share/incident-details/incident-details.component.html
  16. 6 6
      src/app/views/inspection-configuration/inspection-configuration.component.html
  17. 164 3
      src/assets/iconfont/demo_index.html
  18. 31 3
      src/assets/iconfont/iconfont.css
  19. 1 1
      src/assets/iconfont/iconfont.js
  20. 49 0
      src/assets/iconfont/iconfont.json
  21. BIN
      src/assets/iconfont/iconfont.ttf
  22. BIN
      src/assets/iconfont/iconfont.woff
  23. BIN
      src/assets/iconfont/iconfont.woff2

+ 1 - 1
proxy.conf.json

@@ -1,6 +1,6 @@
1 1
 {
2 2
   "/service": {
3
-		"target": "http://192.168.4.105",
3
+		"target": "http://192.168.3.108",
4 4
     "logLevel": "debug",
5 5
     "changeOrigin": true,
6 6
     "pathRewrite": {

+ 115 - 39
src/app/components/incidentManagement/incident-detail/incident-detail.component.html

@@ -1,50 +1,126 @@
1 1
 <div class="save display_flex justify-content_flex-center align-items_center add">
2 2
   <div class="modalBody">
3
-    <div class="title">延期处理<i class="icon_transport transport-guanbi" (click)="hideModal()"></i></div>
3
+    <div class="title">查看<i class="icon_transport transport-guanbi" (click)="hideModal()"></i></div>
4 4
     <div class="content">
5
-      <form nz-form [formGroup]="validateForm" class="addForm">
6
-        <nz-form-item>
7
-          <nz-form-label [nzSpan]="6" nzRequired nzFor="repairTypeId">延期原因</nz-form-label>
8
-          <nz-form-control [nzSpan]="18" nzErrorTip="请选择延期原因!">
9
-            <nz-select [nzDropdownMatchSelectWidth]="false" formControlName="repairTypeId" nzPlaceHolder="请选择延期原因" nzServerSearch>
10
-              <ng-container *ngFor="let data of repairTypeList">
11
-                <nz-option *ngIf="!isLoading" [nzLabel]="data.name" [nzValue]="data.id"></nz-option>
12
-              </ng-container>
13
-              <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
14
-                <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
15
-              </nz-option>
16
-            </nz-select>
17
-          </nz-form-control>
18
-        </nz-form-item>
19
-        <nz-form-item>
20
-          <nz-form-label [nzSpan]="6" nzRequired nzFor="deferralDayId">延期天数</nz-form-label>
21
-          <nz-form-control [nzSpan]="18" nzErrorTip="请选择延期天数!">
22
-            <nz-select [nzDropdownMatchSelectWidth]="false" formControlName="deferralDayId" nzPlaceHolder="请选择延期天数" nzServerSearch>
23
-              <ng-container *ngFor="let data of deferralDayList">
24
-                <nz-option *ngIf="!isLoading" [nzLabel]="data.text" [nzValue]="data.value"></nz-option>
25
-              </ng-container>
26
-              <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
27
-                <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
28
-              </nz-option>
29
-            </nz-select>
30
-          </nz-form-control>
31
-        </nz-form-item>
32
-        <nz-form-item>
33
-          <nz-form-label [nzSpan]="6" nzRequired nzFor="deferralRemark">延期说明</nz-form-label>
34
-          <nz-form-control [nzSpan]="18" nzErrorTip="请输入延期说明!">
35
-            <nz-input-group>
36
-              <textarea formControlName="deferralRemark" nz-input rows="3" placeholder="请输入延期说明"></textarea>
37
-            </nz-input-group>
38
-          </nz-form-control>
39
-        </nz-form-item>
40
-      </form>
5
+      <div class="workingArea">
6
+        <div class="tabs">
7
+          <div class="tab" *ngFor="let item of tabs" (click)="clickTbab(item)" [ngClass]="{ active: activeTabValue === item.value }">{{ item.name }}</div>
8
+        </div>
9
+        <overlay-scrollbars #osComponentRef1 class="detail">
10
+          <!-- 报修信息 -->
11
+          <div class="repair" *ngIf="activeTabValue === 1">
12
+            <div class="row">
13
+              <div class="col">单号:{{incidentData.incidentsign}}</div>
14
+              <div class="col">优先级:{{incidentData.priorityDTO?.name}}</div>
15
+              <div class="col">状态:{{incidentData.state?.name}}</div>
16
+            </div>
17
+            <div class="row">
18
+              <div class="col">故障现象:{{incidentData.category?.mutiCategory}}</div>
19
+            </div>
20
+            <div class="row">
21
+              <div class="col">故障描述:{{incidentData.description}}</div>
22
+            </div>
23
+            <div class="row">
24
+              <div class="col">详细地址:{{ incidentData.place?.building?.buildingName }}{{ incidentData.place?.floorName }}{{ incidentData.houseNumber }}</div>
25
+            </div>
26
+            <div class="row">
27
+              <div class="col thumbs">
28
+                <span class="colName">报修图片:</span>
29
+                <div class="thumbList">
30
+                  <div class="thumb" *ngFor="let item of repairImgs;let index = index;" (click)="previewImageHandler(repairImgs, index)"><img [src]="item.thumbFilePath" alt=""></div>
31
+                </div>
32
+              </div>
33
+              <div class="col">联系人:{{incidentData.contacts}}</div>
34
+              <div class="col">联系电话:{{incidentData.contactsInformation}}</div>
35
+            </div>
36
+            <div class="row">
37
+              <div class="col">来电电话:{{incidentData.incomingPhone}}</div>
38
+              <div class="col"><audio class="audio" controls style="outline: none;" *ngIf="incidentData.callID"><source [src]="audioSrc"></audio></div>
39
+              <div class="col">关联资产:{{incidentData.assetDTO?.name}}</div>
40
+            </div>
41
+            <div class="row">
42
+              <div class="col">报修科室:{{incidentData.department?.dept}}</div>
43
+              <div class="col">报修人:{{incidentData.requester?.name}}</div>
44
+              <div class="col">受理人:{{incidentData.acceptUser?.name}}</div>
45
+            </div>
46
+            <div class="row">
47
+              <div class="col">登记时间:{{incidentData.acceptDate|date:'yyyy-MM-dd HH:mm:ss'}}</div>
48
+              <div class="col flex2">预约维修时间:{{incidentData.yyTime}}</div>
49
+            </div>
50
+          </div>
51
+          <!-- 处理信息 -->
52
+          <div class="handle" *ngIf="activeTabValue === 2">
53
+            <div class="row">
54
+              <div class="col">处理方式:{{incidentData.handleCategory?.name}}</div>
55
+              <div class="col">处理结果:{{incidentData.closecode?.name}}</div>
56
+              <div class="col">处理人:{{computedHandlerUser}}</div>
57
+            </div>
58
+            <div class="row">
59
+              <div class="col">解决方案:{{incidentData.handleDescription}}</div>
60
+            </div>
61
+            <div class="row">
62
+              <div class="col">是否生成知识库:{{incidentData.transSolution == 1 ? '是' : '否'}}</div>
63
+              <div class="col flex2">是否引用知识库:{{incidentData.solutionNo ? '是' : '否'}}</div>
64
+            </div>
65
+            <div class="row">
66
+              <div class="col thumbs">
67
+                <span class="colName">处理图片:</span>
68
+                <div class="thumbList">
69
+                  <div class="thumb" *ngFor="let item of handleImgs;let index = index;" (click)="previewImageHandler(handleImgs, index)"><img [src]="item.thumbFilePath" alt=""></div>
70
+                </div>
71
+              </div>
72
+              <div class="col">维修总价:{{incidentData.rsPrice === undefined ? '' : incidentData.rsPrice + '元'}}</div>
73
+              <div class="col">协同人:{{computedSynergeticUser}}</div>
74
+            </div>
75
+            <div class="row">
76
+              <div class="col files">
77
+                附件列表:
78
+                <div class="fileList">
79
+                  <div class="file" *ngFor="let item of handleAttachments;let index = index;" (click)="download(item.name,item.token)">{{item.name}}</div>
80
+                </div>
81
+              </div>
82
+            </div>
83
+          </div>
84
+          <!-- 汇总单 -->
85
+          <div class="order" *ngIf="activeTabValue === 4">
86
+            <app-incident-handle-order [id]="id"></app-incident-handle-order>
87
+          </div>
88
+          <!-- 评价信息 -->
89
+          <div class="evaluation" *ngIf="activeTabValue === 5">
90
+            <div class="evaluationList">
91
+              <div class="title"><div class="dot"></div>用户评价</div>
92
+              <div class="body">
93
+                <div class="top" *ngIf="incidentData.wxdegree"><nz-rate [ngModel]="incidentData.wxdegree.value" nzDisabled></nz-rate></div>
94
+                <div class="bottom" *ngFor="let item of resolveLogs">{{item.remark}}</div>
95
+              </div>
96
+            </div>
97
+
98
+            <div class="evaluationList">
99
+              <div class="title"><div class="dot"></div>回访信息</div>
100
+              <div class="body">
101
+                <div class="top" *ngIf="incidentData.degree">{{incidentData.degree.name}}</div>
102
+                <div class="bottom" *ngFor="let item of callbackLogs">{{item.remark}}</div>
103
+              </div>
104
+            </div>
105
+          </div>
106
+        </overlay-scrollbars>
107
+      </div>
108
+      <overlay-scrollbars #osComponentRef2 class="process">
109
+        <div class="head">处理流程</div>
110
+        <div class="process_step" *ngFor="let item of incidentLogList;let index = index;let last = last;">
111
+          <div class="title"><i class="icon_transport transport-duigou1 num" *ngIf="last"></i><span class="num" *ngIf="!last">{{index + 1}}</span><span class="name">{{item.logType ? item.logType.name : ''}}<span class="remark" *ngIf="item.remark" [title]="item.remark">({{item.remark}})</span></span></div>
112
+          <div class="body">{{item.startTime | date: 'yyyy-MM-dd HH:mm:ss'}}  <span class="remark" *ngIf="item.appointorName">{{item.appointorName}}</span></div>
113
+        </div>
114
+      </overlay-scrollbars>
41 115
     </div>
42 116
     <div class="display_flex justify-content_flex-center">
43
-      <button nz-button nzType="primary" (click)="submitForm()"[nzLoading]="isLoading">确认</button>
44
-      <button nz-button nzType="default" class="btn cancel" (click)="hideModal()">取消</button>
117
+      <button nz-button nzType="primary" (click)="hideModal()">知道了</button>
45 118
     </div>
46 119
   </div>
47 120
 </div>
48 121
 
49 122
 <!-- 遮罩 -->
50 123
 <app-mask *ngIf="maskFlag"></app-mask>
124
+
125
+<!-- 图片预览 -->
126
+<app-image-viewer [imageUrl]="imgs" hidden *ngIf="isPreview" [isPreviewNow]="true" [initialViewIndex]="initialViewIndex"></app-image-viewer>

+ 206 - 7
src/app/components/incidentManagement/incident-detail/incident-detail.component.less

@@ -1,4 +1,9 @@
1 1
 @import "../../../../../src/theme.less";
2
+:host{
3
+  ::ng-deep .os-padding{
4
+    z-index: auto!important;
5
+  }
6
+}
2 7
 .save {
3 8
   position: fixed;
4 9
   left: 0;
@@ -21,7 +26,7 @@
21 26
       font-size: 18px;
22 27
       position: relative;
23 28
 
24
-      i {
29
+      .transport-guanbi {
25 30
         position: absolute;
26 31
         right: 0;
27 32
         top: 0;
@@ -42,8 +47,6 @@
42 47
       margin-top: 12px;
43 48
 
44 49
       div {
45
-        text-align: center;
46
-        margin: 0;
47 50
 
48 51
         &.icon {
49 52
           margin-top: 17px;
@@ -86,17 +89,19 @@
86 89
   // 新增
87 90
   &.add {
88 91
     .modalBody {
89
-      width: 480px;
92
+      width: 1300px;
90 93
       height: auto;
91 94
 
92 95
       .content {
93 96
         width: 100%;
94
-        height: auto;
95
-        padding: 19px 14px 0 14px;
96
-        max-height: 500px;
97
+        height: 600px;
97 98
         overflow-y: auto;
99
+        display: flex;
98 100
 
99 101
         .addForm {
102
+          width: 50%;
103
+          height: 100%;
104
+          padding: 16px;
100 105
           .ant-form-item {
101 106
             margin-bottom: 14px;
102 107
 
@@ -122,4 +127,198 @@
122 127
       }
123 128
     }
124 129
   }
130
+
131
+  .workingArea{
132
+    width: 75%;
133
+    height: 100%;
134
+    border-right: 1px solid #D9D9D9;
135
+    background-color: #fff;
136
+    .detail{
137
+      height: 506px;
138
+      margin: 16px;
139
+      background: #F9FAFB;
140
+      border-radius: 8px;
141
+      border: 1px solid #D9D9D9;
142
+      .repair,
143
+      .handle{
144
+        font-size: 14px;
145
+        display: flex;
146
+        flex-direction: column;
147
+        gap: 24px;
148
+        padding: 24px 16px;
149
+        .row{
150
+          display: flex;
151
+          align-items: center;
152
+          justify-content: space-between;
153
+          .col{
154
+            flex: 1;
155
+            &.flex2{
156
+              flex: 2;
157
+            }
158
+            &.thumbs{
159
+              display: flex;
160
+              align-items: center;
161
+              .thumbList{
162
+                display: flex;
163
+                align-items: center;
164
+                flex-wrap: wrap;
165
+                gap: 8px;
166
+              }
167
+              .colName{
168
+                flex-shrink: 0;
169
+              }
170
+              .thumb{
171
+                width: 64px;
172
+                height: 64px;
173
+                padding: 4px;
174
+                border-radius: 4px;
175
+                border: 1px solid rgba(0,0,0,0.15);
176
+                img{
177
+                  width: 100%;
178
+                  height: 100%;
179
+                  object-fit: cover;
180
+                  object-position: center;
181
+                  cursor: pointer;
182
+                }
183
+              }
184
+            }
185
+            &.files{
186
+              display: flex;
187
+              .file{
188
+                margin-bottom: 4px;
189
+                padding-bottom: 6px;
190
+                border-bottom: 1px solid #1890FF;
191
+                font-size: 14px;
192
+                color: #1890FF;
193
+                position: relative;
194
+                cursor: pointer;
195
+                &:last-of-type{
196
+                  margin-bottom: 0;
197
+                }
198
+                &::after{
199
+                  content: '\e62b';
200
+                  font-family: 'icon_transport';
201
+                  position: absolute;
202
+                  left: 105%;
203
+                  top: 50%;
204
+                  transform: translateY(-50%);
205
+                  color: #000;
206
+                }
207
+              }
208
+            }
209
+          }
210
+        }
211
+      }
212
+      .evaluation{
213
+        .evaluationList{
214
+          .title{
215
+            height: 55px;
216
+            font-size: 16px;
217
+            font-weight: bold;
218
+            display: flex;
219
+            align-items: center;
220
+            border-bottom: 1px solid #E9E9E9;
221
+            padding: 0 16px;
222
+            .dot{
223
+              width: 10px;
224
+              height: 10px;
225
+              border-radius: 50%;
226
+              background-color: @primary-color;
227
+              margin-right: 4px;
228
+            }
229
+          }
230
+          .body{
231
+            padding: 16px;
232
+            .top{
233
+              font-weight: bold;
234
+            }
235
+            .bottom{
236
+              margin-top: 8px;
237
+              font-size: 14px;
238
+              line-height: 21px;
239
+            }
240
+          }
241
+        }
242
+      }
243
+    }
244
+    .tabs{
245
+      height: 60px;
246
+      border-bottom: 1px solid #D9D9D9;
247
+      display: flex;
248
+      align-items: center;
249
+      background-color: #fff;
250
+      .tab{
251
+        flex: 1;
252
+        display: flex;
253
+        height: 100%;
254
+        justify-content: center;
255
+        align-items: center;
256
+        border-right: 1px solid #D9D9D9;
257
+        font-size: #333;
258
+        cursor: pointer;
259
+        &:last-of-type{
260
+          border-right: none;
261
+        }
262
+        &.active{
263
+          background-color: #F0F6ED;
264
+        }
265
+      }
266
+    }
267
+  }
268
+
269
+  .process{
270
+    width: 25%;
271
+    height: 100%;
272
+    padding: 16px 8px;
273
+    background-color: #fff;
274
+    .head{
275
+      font-size: 16px;
276
+      color: #333333;
277
+      font-weight: bold;
278
+      margin-bottom: 16px;
279
+    }
280
+    .process_step{
281
+      &:last-of-type{
282
+        margin-bottom: 10px;
283
+        .body{
284
+          border-left: none;
285
+        }
286
+      }
287
+      .title{
288
+        display: flex;
289
+        align-items: center;
290
+        .num{
291
+          display: flex;
292
+          justify-content: center;
293
+          align-items: center;
294
+          width: 32px;
295
+          height: 32px;
296
+          border-radius: 50%;
297
+          background-color: @primary-color;
298
+          color: #fff;
299
+          flex-shrink: 0;
300
+        }
301
+        .name{
302
+          color: @primary-color;
303
+          font-size: 16px;
304
+          margin-left: 16px;
305
+          overflow: hidden;
306
+          text-overflow: ellipsis;
307
+          white-space: nowrap;
308
+        }
309
+      }
310
+      .body{
311
+        border-left: 1px solid @primary-color;
312
+        padding-left: 32px;
313
+        font-size: 14px;
314
+        line-height: 22px;
315
+        margin: 6px 0 6px 16px;
316
+        word-break: break-all;
317
+      }
318
+    }
319
+  }
320
+  .audio{
321
+    width: 264px;
322
+    height: 1.5em;
323
+  }
125 324
 }

+ 191 - 65
src/app/components/incidentManagement/incident-detail/incident-detail.component.ts

@@ -17,6 +17,11 @@ export class IncidentDetailComponent implements OnInit {
17 17
     static: false,
18 18
   })
19 19
   osComponentRef1: OverlayScrollbarsComponent;
20
+  @ViewChild("osComponentRef2", {
21
+    read: OverlayScrollbarsComponent,
22
+    static: false,
23
+  })
24
+  osComponentRef2: OverlayScrollbarsComponent;
20 25
   @Output() closeModelHs = new EventEmitter<any>();//1.组件暴露一个 EventEmitter 属性,当事件发生时,子组件利用该属性 emits(向上弹射)事件
21 26
   @Output() confirmModelHs = new EventEmitter<any>();//1.组件暴露一个 EventEmitter 属性,当事件发生时,子组件利用该属性 emits(向上弹射)事件
22 27
 
@@ -32,50 +37,46 @@ export class IncidentDetailComponent implements OnInit {
32 37
   ) { }
33 38
 
34 39
   isLoading = false;
40
+  hosId:any;
35 41
 
36 42
   ngOnInit() {
37
-    this.initForm();
43
+    this.hosId = this.tool.getCurrentHospital().id;
38 44
     this.getDetail();
39
-    this.getRepairTypeList();
40
-    this.getDeferralDayList();
45
+    this.getIncidentLogList();
41 46
   }
42 47
 
43
-  // 初始化新增form表单
44
-  validateForm: FormGroup; //新增/编辑表单
45
-  initForm() {
46
-    this.validateForm = this.fb.group({
47
-      repairTypeId: [null, [Validators.required]],//延期原因
48
-      deferralDayId: [null, [Validators.required]],//延期天数
49
-      deferralRemark: [null, [Validators.required]],//延期说明
50
-    });
51
-    console.log(this.validateForm.controls)
52
-  }
48
+  tabs:any[] = [
49
+    { name: '报修信息', value: 1 },
50
+    { name: '处理信息', value: 2 },
51
+    // { name: '质控', value: 3 },
52
+    // { name: '汇总单', value: 4 },
53
+    { name: '评价信息', value: 5 },
54
+  ]
53 55
 
54
-  // 获取延期原因
55
-  repairTypeList: any = [];
56
-  getRepairTypeList() {
57
-    this.mainService
58
-    .getDictionary('list', 'repair_type')
59
-    .subscribe((data) => {
60
-      this.repairTypeList = data || [];
61
-    });
62
-  }
56
+  // 点击tab
57
+  activeTabValue:any;
58
+  clickTbab(item){
59
+    this.activeTabValue = item.value;
60
+
61
+    if(this.activeTabValue == 1){
62
+      this.incidentData.callID && this.getCallrecord();
63
+      this.incidentData.reqAttachment && this.getRepairImgs();
64
+    }else if(this.activeTabValue == 2){
65
+      this.getHandleImgs();
66
+      this.getHandleAttachments();
67
+    }else if(this.activeTabValue == 3){
63 68
 
64
-  // 获取延期天数
65
-  deferralDayList: any = [];
66
-  getDeferralDayList() {
67
-    this.deferralDayList = this.tool.generateNumberArray(1, 15).map(v => ({
68
-      text: v + '天',
69
-      value: v,
70
-    }));
71
-		this.deferralDayList.unshift({
72
-			text: '0.5天',
73
-			value: 0.5,
74
-		})
69
+    }else if(this.activeTabValue == 4){
70
+
71
+    }else if(this.activeTabValue == 5){
72
+
73
+    }
75 74
   }
76 75
 
77
-  // 操作权限
78
-  incidentData:any = {};
76
+  // 事件详情
77
+  incidentData:any = {};//事件详情
78
+  resolveLogs:any = {};//评价信息
79
+  callbackLogs:any = {};//回访信息
79 80
   getDetail(){
80 81
     this.maskFlag = this.message.loading("正在加载中..", {
81 82
       nzDuration: 0,
@@ -86,52 +87,177 @@ export class IncidentDetailComponent implements OnInit {
86 87
         this.message.remove(this.maskFlag);
87 88
         this.maskFlag = false;
88 89
         this.incidentData = result.data || {};
90
+
91
+        this.clickTbab(this.tabs[0]);
92
+
93
+        let logs = this.incidentData.logs || [];
94
+        this.resolveLogs = logs.filter(v => v.logType.value == 'resolve').slice(0, 1);
95
+        this.callbackLogs = logs.filter(v => v.logType.value == 'callback').slice(0, 1);
96
+
97
+        this.getHospitalConfig();
89 98
       });
90 99
   }
91 100
 
101
+  // 获取报修图片
102
+  repairImgs:any[] = [];//报修图片
103
+  getRepairImgs() {
104
+    this.mainService
105
+      .getPreviewImage('wechatRequesterIncident', this.incidentData.id)
106
+      .subscribe((res:any) => {
107
+        res.data = res.data || [];
108
+        res.data.forEach(v => {
109
+          v.previewUrl = location.origin + "/file" + v.relativeFilePath;
110
+          v.thumbFilePath = location.origin + "/file" + v.thumbFilePath;
111
+        })
112
+        this.repairImgs = res.data;
113
+      });
114
+  }
115
+
116
+  // 获取处理图片
117
+  handleImgs:any[] = [];//处理图片
118
+  getHandleImgs() {
119
+    this.mainService
120
+      .getPreviewImage('incident', this.incidentData.id)
121
+      .subscribe((res:any) => {
122
+        res.data = res.data || [];
123
+        res.data.forEach(v => {
124
+          v.previewUrl = location.origin + "/file" + v.relativeFilePath;
125
+          v.thumbFilePath = location.origin + "/file" + v.thumbFilePath;
126
+        })
127
+        this.handleImgs = res.data;
128
+      });
129
+  }
130
+
131
+  // 获取处理附件
132
+  handleAttachments:any[] = [];//处理图片
133
+  getHandleAttachments() {
134
+    this.mainService
135
+      .getPreviewImage('handleAttachment', this.incidentData.id)
136
+      .subscribe((res:any) => {
137
+        this.handleAttachments = res.data || [];
138
+      });
139
+  }
140
+
141
+  // 下载
142
+  download(filename, token) {
143
+    //附件下载
144
+    let downUrl = this.mainService.downloadAttachment(token);
145
+    console.log(downUrl);
146
+    var a = document.createElement("a");
147
+    a.href = downUrl;
148
+    a.target = "_blank";
149
+    a.download = filename;
150
+    document.body.appendChild(a);
151
+    a.click();
152
+  };
153
+
154
+  // 预览图片
155
+  imgs = [];
156
+  isPreview = false;
157
+  initialViewIndex:number = 0;
158
+  previewImageHandler(data = [], index = 0) {
159
+    this.initialViewIndex = index;
160
+    console.log(index)
161
+    this.isPreview = false;
162
+    data = data || [];
163
+    this.imgs = data.map((v) => location.origin + '/file' + v.relativeFilePath);
164
+    setTimeout(() => {
165
+      this.isPreview = true;
166
+    }, 0)
167
+  }
168
+
92 169
   // 关闭弹窗
93 170
   hideModal() {
94 171
     this.closeModelHs.emit(JSON.stringify({ show: false }));//emits(向上弹射)事件
95 172
   }
96 173
 
97
-  // 表单提交
174
+  // 获取通话音频
175
+  audioSrc =  '';//音频
176
+  getCallrecord() {
177
+    let postData = {
178
+      idx: 0,
179
+      sum: 1,
180
+      callrecord: {callAccept: this.incidentData.callID},
181
+    };
182
+    this.mainService
183
+      .getFetchDataList('simple/data', 'callrecord', postData)
184
+      .subscribe((result) => {
185
+        if(result.status == 200){
186
+          result.list = result.list || [];
187
+          if(result.list.length){
188
+            this.audioSrc = location.origin + result.list[0].recordingFileName;
189
+          }else{
190
+            this.audioSrc = '';
191
+          }
192
+        }else{
193
+          this.message.error(result.msg || '请求数据失败!');
194
+        }
195
+      });
196
+  }
197
+
98 198
   maskFlag:any = false;
99
-  submitForm(): void {
100
-    for (const i in this.validateForm.controls) {
101
-      this.validateForm.controls[i].markAsDirty();
102
-      this.validateForm.controls[i].updateValueAndValidity();
199
+  // 获取处理流程
200
+  incidentLogList:any[] = [];
201
+  getIncidentLogList(){
202
+    let postData = {
203
+      "idx": 0,
204
+      "sum": 9999,
205
+      "incidentLog": {
206
+          "incidentId": this.id,
207
+      }
208
+    };
209
+    this.mainService
210
+      .getFetchDataList("simple/data", "incidentLog", postData)
211
+      .subscribe((result) => {
212
+        this.incidentLogList = result.list || {};
213
+      });
214
+  }
215
+
216
+  // 处理人
217
+  get computedHandlerUser(){
218
+    if(this.incidentData.state.value == 'pending' && this.incidentData.currentLog){
219
+      return this.incidentData.currentLog.workerName;
103 220
     }
104
-    if (this.validateForm.invalid) {
105
-      return;
221
+    if(this.incidentData.state.value != 'pending' && this.incidentData.handlingPersonnelUser){
222
+      return this.incidentData.handlingPersonnelUser.name;
106 223
     }
224
+  }
107 225
 
108
-    this.maskFlag = this.message.loading("正在加载中..", {
109
-      nzDuration: 0,
110
-    }).messageId;
226
+  // 协同人
227
+  get computedSynergeticUser(){
228
+    return this.incidentData.synergetic && this.incidentData.synergetic.length ? this.incidentData.synergetic.map(v => v.name).join(',') : '';
229
+  }
111 230
 
112
-    let postData = {
113
-      incident: this.incidentData,
114
-    }
231
+  // 是否进入汇总单
232
+  isInSummaryOrder(){
233
+    return this.incidentData.duty && this.itsmSummarySheet.value == 1 && (this.incidentData.handlingPersonnelUser.id == this.tool.getCurrentUserId());
234
+  }
115 235
 
116
-    postData.incident.currentLog = {
117
-      remark: this.validateForm.value.deferralRemark,
118
-      extra1: this.validateForm.value.repairTypeId,
119
-      extra2: this.validateForm.value.deferralDayId,
236
+  // 获取院区配置信息
237
+  itsmSummarySheet:any = {};//是否需要填写汇总单
238
+  getHospitalConfig() {
239
+    let postData = {
240
+      idx: 0,
241
+      sum: 9999,
242
+      hospitalConfig: {
243
+        model: "itsm",
244
+        hosId: this.hosId,
245
+      },
120 246
     }
121
-
122 247
     this.mainService
123
-    .flowPost("incident/task/overtime", postData)
124
-    .subscribe((result) => {
125
-      this.message.remove(this.maskFlag);
126
-      this.maskFlag = false;
127
-      this.confirmModelHs.emit();
128
-
129
-      if (result.state == 200) {
130
-        this.message.success('操作成功');
131
-      } else {
132
-        this.message.error('操作失败');
133
-      }
134
-    });
248
+      .getFetchDataList("simple/data", "hospitalConfig", postData)
249
+      .subscribe((result) => {
250
+        let list = result.list || [];
251
+        this.itsmSummarySheet = list.find(v => v.key == 'itsmSummarySheet') || {};
252
+        console.log(this.itsmSummarySheet)
253
+        if(this.isInSummaryOrder()){
254
+          // 维修汇总单
255
+          if(this.incidentData.state.value == 'close' && this.incidentData.summaryId){
256
+            let flag = this.tabs.some(v => v.value === 4);
257
+            !flag && this.tabs.splice(2, 0, {name: '汇总单', value: 4});
258
+          }
259
+        }
260
+      });
135 261
   }
136 262
 }
137 263
 

+ 2 - 0
src/app/components/incidentManagement/incident-detail/incident-detail.module.ts

@@ -3,6 +3,7 @@ import { CommonModule } from '@angular/common';
3 3
 
4 4
 import { IncidentDetailComponent } from './incident-detail.component';
5 5
 import { ShareModule } from 'src/app/share/share.module';
6
+import { IncidentHandleOrderModule } from '../incident-handle-order/incident-handle-order.module';
6 7
 
7 8
 
8 9
 @NgModule({
@@ -12,6 +13,7 @@ import { ShareModule } from 'src/app/share/share.module';
12 13
   imports: [
13 14
     CommonModule,
14 15
     ShareModule,
16
+    IncidentHandleOrderModule,
15 17
   ],
16 18
   exports: [
17 19
     IncidentDetailComponent,

+ 1 - 1
src/app/components/incidentManagement/incident-handle-order/incident-handle-order.component.html

@@ -58,7 +58,7 @@
58 58
     <div class="add" (click)="addWorkHourManagement()"><i class="icon_transport transport-tag27fuben"></i></div>
59 59
   </div>
60 60
 
61
-  <div class="allTotalPrice">维修单总价:{{summaryObj.totalMaintenancePrice}}元</div>
61
+  <div class="allTotalPrice">汇总单总价:{{summaryObj.totalMaintenancePrice}}元</div>
62 62
 </div>
63 63
 <nz-spin nzSimple [nzSpinning]="summaryLoading" class="mt8 text_align_center"></nz-spin>
64 64
 

+ 20 - 0
src/app/components/incidentManagement/incident-handle-order/incident-handle-order.module.ts

@@ -0,0 +1,20 @@
1
+import { NgModule } from '@angular/core';
2
+import { CommonModule } from '@angular/common';
3
+
4
+import { IncidentHandleOrderComponent } from '../incident-handle-order/incident-handle-order.component';
5
+import { ShareModule } from 'src/app/share/share.module';
6
+
7
+
8
+@NgModule({
9
+  declarations: [
10
+    IncidentHandleOrderComponent,
11
+  ],
12
+  imports: [
13
+    CommonModule,
14
+    ShareModule,
15
+  ],
16
+  exports: [
17
+    IncidentHandleOrderComponent,
18
+  ]
19
+})
20
+export class IncidentHandleOrderModule { }

+ 3 - 3
src/app/components/incidentManagement/incident-handle/incident-handle.component.html

@@ -9,10 +9,10 @@
9 9
         <div class="tabs">
10 10
           <div class="tab" *ngFor="let item of tabs" (click)="clickTbab(item)" [ngClass]="{ active: activeTabValue === item.value }">{{ item.name }}</div>
11 11
         </div>
12
-        <ng-container *ngIf="activeTabValue === 1">
12
+        <div [hidden]="activeTabValue !== 1">
13 13
           <app-incident-handle-info [incidentData]="incidentData" (changeCategoryHs)="changeCategoryHs($event)" *ngIf="itsmSimpleHandle.value == 0"></app-incident-handle-info>
14 14
           <app-incident-handle-info-simple [incidentData]="incidentData" *ngIf="itsmSimpleHandle.value == 1"></app-incident-handle-info-simple>
15
-        </ng-container>
15
+        </div>
16 16
         <ng-container *ngIf="activeTabValue === 2">
17 17
           <app-incident-handle-order [id]="id"></app-incident-handle-order>
18 18
         </ng-container>
@@ -31,7 +31,7 @@
31 31
       </overlay-scrollbars>
32 32
     </div>
33 33
     <div class="display_flex justify-content_flex-center">
34
-      <button nz-button nzType="primary" (click)="submitForm()"[nzLoading]="isLoading">确认</button>
34
+      <button nz-button nzType="primary" (click)="submitForm()"[nzLoading]="isLoading" *ngIf="activeTabValue === 1">确认</button>
35 35
       <button nz-button nzType="default" class="btn cancel" (click)="hideModal()">取消</button>
36 36
     </div>
37 37
   </div>

+ 1 - 1
src/app/components/incidentManagement/incident-handle/incident-handle.component.less

@@ -85,7 +85,7 @@
85 85
       }
86 86
       .workingArea{
87 87
         flex: 1;
88
-        height: 100%;
88
+        height: 101%;
89 89
         .tabs{
90 90
           height: 60px;
91 91
           border-bottom: 1px solid #D9D9D9;

+ 3 - 2
src/app/components/incidentManagement/incident-handle/incident-handle.component.ts

@@ -66,7 +66,6 @@ export class IncidentHandleComponent implements OnInit {
66 66
   ngOnInit() {
67 67
     this.hosId = this.tool.getCurrentHospital().id;
68 68
     this.getDetail();
69
-    this.getHospitalConfig();
70 69
   }
71 70
   // 关闭弹窗
72 71
   hideModal() {
@@ -96,7 +95,7 @@ export class IncidentHandleComponent implements OnInit {
96 95
         this.itsmSummarySheet = list.find(v => v.key == 'itsmSummarySheet') || {};
97 96
         this.itsmSimpleHandle = list.find(v => v.key == 'itsmSimpleHandle') || {};
98 97
         console.log(this.itsmSummarySheet)
99
-        if(this.isInSummaryOrder){
98
+        if(this.isInSummaryOrder()){
100 99
           let summary = this.tabs.some(v => v.value == 2);
101 100
           console.log(summary)
102 101
           !summary && this.tabs.push({ name: '汇总单', value: 2 });
@@ -119,6 +118,7 @@ export class IncidentHandleComponent implements OnInit {
119 118
         this.incidentData = result.data || {};
120 119
 
121 120
         this.getDictionaryList();
121
+        this.getHospitalConfig();
122 122
       });
123 123
   }
124 124
 
@@ -221,6 +221,7 @@ export class IncidentHandleComponent implements OnInit {
221 221
 
222 222
   // 表单提交
223 223
   submitForm() {
224
+    console.log(this.itsmSimpleHandle.value)
224 225
     if(this.itsmSimpleHandle.value == 0){
225 226
       // 详细处理
226 227
       console.log(this.incidentHandleInfoComponent)

+ 2 - 3
src/app/components/incidentManagement/incident-handle/incident-handle.module.ts

@@ -5,9 +5,9 @@ import { IncidentHandleComponent } from './incident-handle.component';
5 5
 import { ShareModule } from 'src/app/share/share.module';
6 6
 import { IncidentHandleInfoComponent } from '../incident-handle-info/incident-handle-info.component';
7 7
 import { IncidentHandleInfoSimpleComponent } from '../incident-handle-info-simple/incident-handle-info-simple.component';
8
-import { IncidentHandleOrderComponent } from '../incident-handle-order/incident-handle-order.component';
9 8
 import { KnowledgeLookModule } from '../../knowledge-look/knowledge-look.module';
10 9
 import { IncidentHandleRepairModule } from '../incident-handle-repair/incident-handle-repair.module';
10
+import { IncidentHandleOrderModule } from '../incident-handle-order/incident-handle-order.module';
11 11
 
12 12
 
13 13
 @NgModule({
@@ -15,19 +15,18 @@ import { IncidentHandleRepairModule } from '../incident-handle-repair/incident-h
15 15
     IncidentHandleComponent,
16 16
     IncidentHandleInfoComponent,
17 17
     IncidentHandleInfoSimpleComponent,
18
-    IncidentHandleOrderComponent,
19 18
   ],
20 19
   imports: [
21 20
     CommonModule,
22 21
     ShareModule,
23 22
     KnowledgeLookModule,
24 23
     IncidentHandleRepairModule,
24
+    IncidentHandleOrderModule,
25 25
   ],
26 26
   exports: [
27 27
     IncidentHandleComponent,
28 28
     IncidentHandleInfoComponent,
29 29
     IncidentHandleInfoSimpleComponent,
30
-    IncidentHandleOrderComponent,
31 30
   ]
32 31
 })
33 32
 export class IncidentHandleModule { }

+ 5 - 0
src/app/services/main.service.ts

@@ -911,4 +911,9 @@ export class MainService {
911 911
 	    headers: this.headers,
912 912
 	  });
913 913
 	}
914
+
915
+  // 下载附件
916
+	downloadAttachment(token): any {
917
+	  return host.host + "/common/common/downloadAttachment/" + token;
918
+	}
914 919
 }

+ 1 - 1
src/app/share/detail-bx/detail-bx.component.html

@@ -75,7 +75,7 @@
75 75
     </div>
76 76
   </overlay-scrollbars>
77 77
   <div class="btns display_flex justify-content_flex-center">
78
-    <button nz-button nzType="primary" (click)="goToSummary()" *ngIf="orderInfo.duty && orderInfo.duty.addSummary == 1">维修单</button>
78
+    <button nz-button nzType="primary" (click)="goToSummary()" *ngIf="orderInfo.duty && orderInfo.duty.addSummary == 1">汇总单</button>
79 79
     <button class=" btn cancel" nz-button nzType="default" (click)="close()">取消</button>
80 80
   </div>
81 81
 </div>

+ 2 - 2
src/app/share/detail-bx/detail-bx.component.ts

@@ -75,12 +75,12 @@ export class DetailBxComponent implements OnInit {
75 75
     });
76 76
   }
77 77
 
78
-  // 维修
78
+  // 汇总
79 79
   goToSummary(){
80 80
     this.isShowIncidentDetails = true;
81 81
   }
82 82
 
83
-  // 关闭维修
83
+  // 关闭汇总
84 84
   closeIncidentDetails(){
85 85
     this.isShowIncidentDetails = false;
86 86
   }

+ 2 - 2
src/app/share/incident-details/incident-details.component.html

@@ -1,6 +1,6 @@
1
-<!-- 维修单信息 -->
1
+<!-- 汇总单信息 -->
2 2
 <div class="detail" *ngIf="!maskFlag">
3
-  <div class="title">维修单详情<i class="icon_transport transport-guanbi" (click)="closeHandler()"></i></div>
3
+  <div class="title">汇总单详情<i class="icon_transport transport-guanbi" (click)="closeHandler()"></i></div>
4 4
   <overlay-scrollbars #osComponentRef1 style="height: 90%; flex: 1">
5 5
     <div class="content">
6 6
       <div class="top">

+ 6 - 6
src/app/views/inspection-configuration/inspection-configuration.component.html

@@ -12,8 +12,8 @@
12 12
         <thead>
13 13
           <tr class="thead">
14 14
             <th nzWidth="20%">表单名称</th>
15
-            <th nzWidth="20%">是否显示生成维修单</th>
16
-            <th nzWidth="20%">是否自动生成维修单</th>
15
+            <th nzWidth="20%">是否显示生成汇总单</th>
16
+            <th nzWidth="20%">是否自动生成汇总单</th>
17 17
             <th nzWidth="20%">状态</th>
18 18
             <th nzWidth="20%">操作</th>
19 19
           </tr>
@@ -59,8 +59,8 @@
59 59
             </nz-form-control>
60 60
           </nz-form-item>
61 61
           <nz-form-item>
62
-            <nz-form-label [nzSpan]="9" nzRequired nzFor="showOrder">是否显示生成维修单</nz-form-label>
63
-            <nz-form-control [nzSpan]="15" nzErrorTip="请选择是否显示生成维修单!">
62
+            <nz-form-label [nzSpan]="9" nzRequired nzFor="showOrder">是否显示生成汇总单</nz-form-label>
63
+            <nz-form-control [nzSpan]="15" nzErrorTip="请选择是否显示生成汇总单!">
64 64
               <nz-radio-group formControlName="showOrder">
65 65
                 <label nz-radio [nzValue]="1">是</label>
66 66
                 <label nz-radio [nzValue]="0">否</label>
@@ -68,8 +68,8 @@
68 68
             </nz-form-control>
69 69
           </nz-form-item>
70 70
           <nz-form-item>
71
-            <nz-form-label [nzSpan]="9" nzRequired nzFor="createOrder">是否自动生成维修单</nz-form-label>
72
-            <nz-form-control [nzSpan]="15" nzErrorTip="请选择是否自动生成维修单!">
71
+            <nz-form-label [nzSpan]="9" nzRequired nzFor="createOrder">是否自动生成汇总单</nz-form-label>
72
+            <nz-form-control [nzSpan]="15" nzErrorTip="请选择是否自动生成汇总单!">
73 73
               <nz-radio-group formControlName="createOrder">
74 74
                 <label nz-radio [nzValue]="1">是</label>
75 75
                 <label nz-radio [nzValue]="0">否</label>

+ 164 - 3
src/assets/iconfont/demo_index.html

@@ -55,6 +55,48 @@
55 55
           <ul class="icon_lists dib-box">
56 56
           
57 57
             <li class="dib">
58
+              <span class="icon icon_transport">&#xe62b;</span>
59
+                <div class="name">下载</div>
60
+                <div class="code-name">&amp;#xe62b;</div>
61
+              </li>
62
+          
63
+            <li class="dib">
64
+              <span class="icon icon_transport">&#xe656;</span>
65
+                <div class="name">图例</div>
66
+                <div class="code-name">&amp;#xe656;</div>
67
+              </li>
68
+          
69
+            <li class="dib">
70
+              <span class="icon icon_transport">&#xe649;</span>
71
+                <div class="name">身体</div>
72
+                <div class="code-name">&amp;#xe649;</div>
73
+              </li>
74
+          
75
+            <li class="dib">
76
+              <span class="icon icon_transport">&#xe64c;</span>
77
+                <div class="name">iconPark-shopping-cart-add Copy</div>
78
+                <div class="code-name">&amp;#xe64c;</div>
79
+              </li>
80
+          
81
+            <li class="dib">
82
+              <span class="icon icon_transport">&#xe64d;</span>
83
+                <div class="name">标本</div>
84
+                <div class="code-name">&amp;#xe64d;</div>
85
+              </li>
86
+          
87
+            <li class="dib">
88
+              <span class="icon icon_transport">&#xe717;</span>
89
+                <div class="name">添加</div>
90
+                <div class="code-name">&amp;#xe717;</div>
91
+              </li>
92
+          
93
+            <li class="dib">
94
+              <span class="icon icon_transport">&#xe952;</span>
95
+                <div class="name">条形码</div>
96
+                <div class="code-name">&amp;#xe952;</div>
97
+              </li>
98
+          
99
+            <li class="dib">
58 100
               <span class="icon icon_transport">&#xe62a;</span>
59 101
                 <div class="name">图片</div>
60 102
                 <div class="code-name">&amp;#xe62a;</div>
@@ -864,9 +906,9 @@
864 906
 <pre><code class="language-css"
865 907
 >@font-face {
866 908
   font-family: 'icon_transport';
867
-  src: url('iconfont.woff2?t=1723428088159') format('woff2'),
868
-       url('iconfont.woff?t=1723428088159') format('woff'),
869
-       url('iconfont.ttf?t=1723428088159') format('truetype');
909
+  src: url('iconfont.woff2?t=1724726830485') format('woff2'),
910
+       url('iconfont.woff?t=1724726830485') format('woff'),
911
+       url('iconfont.ttf?t=1724726830485') format('truetype');
870 912
 }
871 913
 </code></pre>
872 914
           <h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
@@ -893,6 +935,69 @@
893 935
         <ul class="icon_lists dib-box">
894 936
           
895 937
           <li class="dib">
938
+            <span class="icon icon_transport transport-xiazai"></span>
939
+            <div class="name">
940
+              下载
941
+            </div>
942
+            <div class="code-name">.transport-xiazai
943
+            </div>
944
+          </li>
945
+          
946
+          <li class="dib">
947
+            <span class="icon icon_transport transport-tuli"></span>
948
+            <div class="name">
949
+              图例
950
+            </div>
951
+            <div class="code-name">.transport-tuli
952
+            </div>
953
+          </li>
954
+          
955
+          <li class="dib">
956
+            <span class="icon icon_transport transport-shenti"></span>
957
+            <div class="name">
958
+              身体
959
+            </div>
960
+            <div class="code-name">.transport-shenti
961
+            </div>
962
+          </li>
963
+          
964
+          <li class="dib">
965
+            <span class="icon icon_transport transport-a-iconPark-shopping-cart-addCopy"></span>
966
+            <div class="name">
967
+              iconPark-shopping-cart-add Copy
968
+            </div>
969
+            <div class="code-name">.transport-a-iconPark-shopping-cart-addCopy
970
+            </div>
971
+          </li>
972
+          
973
+          <li class="dib">
974
+            <span class="icon icon_transport transport-icon_biaoben"></span>
975
+            <div class="name">
976
+              标本
977
+            </div>
978
+            <div class="code-name">.transport-icon_biaoben
979
+            </div>
980
+          </li>
981
+          
982
+          <li class="dib">
983
+            <span class="icon icon_transport transport-tianjia"></span>
984
+            <div class="name">
985
+              添加
986
+            </div>
987
+            <div class="code-name">.transport-tianjia
988
+            </div>
989
+          </li>
990
+          
991
+          <li class="dib">
992
+            <span class="icon icon_transport transport-bar-code"></span>
993
+            <div class="name">
994
+              条形码
995
+            </div>
996
+            <div class="code-name">.transport-bar-code
997
+            </div>
998
+          </li>
999
+          
1000
+          <li class="dib">
896 1001
             <span class="icon icon_transport transport-a-11111"></span>
897 1002
             <div class="name">
898 1003
               图片
@@ -2109,6 +2214,62 @@
2109 2214
           
2110 2215
             <li class="dib">
2111 2216
                 <svg class="icon svg-icon" aria-hidden="true">
2217
+                  <use xlink:href="#transport-xiazai"></use>
2218
+                </svg>
2219
+                <div class="name">下载</div>
2220
+                <div class="code-name">#transport-xiazai</div>
2221
+            </li>
2222
+          
2223
+            <li class="dib">
2224
+                <svg class="icon svg-icon" aria-hidden="true">
2225
+                  <use xlink:href="#transport-tuli"></use>
2226
+                </svg>
2227
+                <div class="name">图例</div>
2228
+                <div class="code-name">#transport-tuli</div>
2229
+            </li>
2230
+          
2231
+            <li class="dib">
2232
+                <svg class="icon svg-icon" aria-hidden="true">
2233
+                  <use xlink:href="#transport-shenti"></use>
2234
+                </svg>
2235
+                <div class="name">身体</div>
2236
+                <div class="code-name">#transport-shenti</div>
2237
+            </li>
2238
+          
2239
+            <li class="dib">
2240
+                <svg class="icon svg-icon" aria-hidden="true">
2241
+                  <use xlink:href="#transport-a-iconPark-shopping-cart-addCopy"></use>
2242
+                </svg>
2243
+                <div class="name">iconPark-shopping-cart-add Copy</div>
2244
+                <div class="code-name">#transport-a-iconPark-shopping-cart-addCopy</div>
2245
+            </li>
2246
+          
2247
+            <li class="dib">
2248
+                <svg class="icon svg-icon" aria-hidden="true">
2249
+                  <use xlink:href="#transport-icon_biaoben"></use>
2250
+                </svg>
2251
+                <div class="name">标本</div>
2252
+                <div class="code-name">#transport-icon_biaoben</div>
2253
+            </li>
2254
+          
2255
+            <li class="dib">
2256
+                <svg class="icon svg-icon" aria-hidden="true">
2257
+                  <use xlink:href="#transport-tianjia"></use>
2258
+                </svg>
2259
+                <div class="name">添加</div>
2260
+                <div class="code-name">#transport-tianjia</div>
2261
+            </li>
2262
+          
2263
+            <li class="dib">
2264
+                <svg class="icon svg-icon" aria-hidden="true">
2265
+                  <use xlink:href="#transport-bar-code"></use>
2266
+                </svg>
2267
+                <div class="name">条形码</div>
2268
+                <div class="code-name">#transport-bar-code</div>
2269
+            </li>
2270
+          
2271
+            <li class="dib">
2272
+                <svg class="icon svg-icon" aria-hidden="true">
2112 2273
                   <use xlink:href="#transport-a-11111"></use>
2113 2274
                 </svg>
2114 2275
                 <div class="name">图片</div>

+ 31 - 3
src/assets/iconfont/iconfont.css

@@ -1,8 +1,8 @@
1 1
 @font-face {
2 2
   font-family: "icon_transport"; /* Project id 4543613 */
3
-  src: url('iconfont.woff2?t=1723428088159') format('woff2'),
4
-       url('iconfont.woff?t=1723428088159') format('woff'),
5
-       url('iconfont.ttf?t=1723428088159') format('truetype');
3
+  src: url('iconfont.woff2?t=1724726830485') format('woff2'),
4
+       url('iconfont.woff?t=1724726830485') format('woff'),
5
+       url('iconfont.ttf?t=1724726830485') format('truetype');
6 6
 }
7 7
 
8 8
 .icon_transport {
@@ -13,6 +13,34 @@
13 13
   -moz-osx-font-smoothing: grayscale;
14 14
 }
15 15
 
16
+.transport-xiazai:before {
17
+  content: "\e62b";
18
+}
19
+
20
+.transport-tuli:before {
21
+  content: "\e656";
22
+}
23
+
24
+.transport-shenti:before {
25
+  content: "\e649";
26
+}
27
+
28
+.transport-a-iconPark-shopping-cart-addCopy:before {
29
+  content: "\e64c";
30
+}
31
+
32
+.transport-icon_biaoben:before {
33
+  content: "\e64d";
34
+}
35
+
36
+.transport-tianjia:before {
37
+  content: "\e717";
38
+}
39
+
40
+.transport-bar-code:before {
41
+  content: "\e952";
42
+}
43
+
16 44
 .transport-a-11111:before {
17 45
   content: "\e62a";
18 46
 }

Fichier diff supprimé car celui-ci est trop grand
+ 1 - 1
src/assets/iconfont/iconfont.js


+ 49 - 0
src/assets/iconfont/iconfont.json

@@ -6,6 +6,55 @@
6 6
   "description": "",
7 7
   "glyphs": [
8 8
     {
9
+      "icon_id": "11833563",
10
+      "name": "下载",
11
+      "font_class": "xiazai",
12
+      "unicode": "e62b",
13
+      "unicode_decimal": 58923
14
+    },
15
+    {
16
+      "icon_id": "11501361",
17
+      "name": "图例",
18
+      "font_class": "tuli",
19
+      "unicode": "e656",
20
+      "unicode_decimal": 58966
21
+    },
22
+    {
23
+      "icon_id": "28217529",
24
+      "name": "身体",
25
+      "font_class": "shenti",
26
+      "unicode": "e649",
27
+      "unicode_decimal": 58953
28
+    },
29
+    {
30
+      "icon_id": "32835228",
31
+      "name": "iconPark-shopping-cart-add Copy",
32
+      "font_class": "a-iconPark-shopping-cart-addCopy",
33
+      "unicode": "e64c",
34
+      "unicode_decimal": 58956
35
+    },
36
+    {
37
+      "icon_id": "36613077",
38
+      "name": "标本",
39
+      "font_class": "icon_biaoben",
40
+      "unicode": "e64d",
41
+      "unicode_decimal": 58957
42
+    },
43
+    {
44
+      "icon_id": "9297319",
45
+      "name": "添加",
46
+      "font_class": "tianjia",
47
+      "unicode": "e717",
48
+      "unicode_decimal": 59159
49
+    },
50
+    {
51
+      "icon_id": "18169891",
52
+      "name": "条形码",
53
+      "font_class": "bar-code",
54
+      "unicode": "e952",
55
+      "unicode_decimal": 59730
56
+    },
57
+    {
9 58
       "icon_id": "39056749",
10 59
       "name": "图片",
11 60
       "font_class": "a-11111",

BIN
src/assets/iconfont/iconfont.ttf


BIN
src/assets/iconfont/iconfont.woff


BIN
src/assets/iconfont/iconfont.woff2