safecheck-client 3.0.35-8 → 3.0.35-9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (27) hide show
  1. package/package.json +1 -1
  2. package/src/App.vue +31 -31
  3. package/src/components/android/AddPlanItemYy.vue +451 -451
  4. package/src/components/android/CivilCurrentCreate.vue +1031 -1031
  5. package/src/components/android/examples/SafeListExamples.vue +296 -296
  6. package/src/components/android/examples/UserExamples.vue +136 -136
  7. package/src/components/rongcheng/AspiratedAreaPlan.vue +574 -574
  8. package/src/components/rongcheng/PhoneUpUserinfo.vue +1236 -1236
  9. package/src/filiale/bayan/android/AddPlanItem.vue +441 -441
  10. package/src/filiale/bayan/android/PaperFeedback.vue +1669 -1669
  11. package/src/filiale/bayan/android/PhoneUpUserinfo.vue +1380 -1380
  12. package/src/filiale/bayan/android/SafecheckOrderV.vue +2922 -2922
  13. package/src/filiale/bayan/android/SafecheckUserInfo.vue +872 -872
  14. package/src/filiale/bayan/pc/CheckPlanAreaList.vue +607 -607
  15. package/src/filiale/bayan/pc/HiddenSituation.vue +295 -295
  16. package/src/filiale/bayan/pc/NewCheckpaper.vue +1992 -1992
  17. package/src/filiale/bayan/pc/PaperList.vue +900 -900
  18. package/src/filiale/bayan/pc/SelectCheckPlan.vue +391 -391
  19. package/src/filiale/shanxian/android/SafecheckOrderV.vue +2979 -2979
  20. package/src/filiale/siyang/android/AddPlanItem.vue +450 -450
  21. package/src/filiale/tongchuan/android/SafecheckDevices.vue +1207 -1207
  22. package/src/filiale/tongchuan/android/SafecheckOrderV.vue +3035 -3035
  23. package/src/filiale/tongchuan/pc/CheckSearchUser.vue +1053 -1053
  24. package/src/filiale/tongchuan/pc/checkUserList.vue +639 -639
  25. package/src/filiale/xilan/android.js +11 -11
  26. package/src/filiale/yangchunboneng/pc/CheckPlanAreaList.vue +642 -642
  27. package/src/safecheck-android.js +307 -307
@@ -1,1992 +1,1992 @@
1
- <style scoped id="printStyle">
2
- .img {
3
- border: 1px solid #9773ed;
4
- width: auto;
5
- height: auto;
6
- float: left;
7
- text-align: center;
8
- margin: 6px;
9
- }
10
-
11
- img {
12
- margin: 6px;
13
- }
14
-
15
-
16
- .container {
17
- margin: 10px auto;
18
- width: 80%;
19
- height: auto;
20
- }
21
-
22
- div::-webkit-scrollbar {
23
- width: 0 !important;
24
- height: 0 !important;
25
- }
26
-
27
- div {
28
- -ms-overflow-style: none;
29
- overflow: -moz-scrollbars-none;
30
- }
31
-
32
- .divmask {
33
- pointer-events: none;
34
- }
35
-
36
- .app-header {
37
- border-radius: 50%;
38
- background: rgba(73, 158, 223, 0.4);
39
- color: #FFF;
40
- padding: 20px;
41
- text-align: center;
42
- font-size: 1.2em;
43
- z-index: 10;
44
- opacity: 0.5;
45
- bottom: 50px;
46
- margin-top: -20px;
47
- position: absolute;
48
- top: 10%;
49
- right: 2%;
50
- height: 8%;
51
- }
52
- </style>
53
-
54
- <template>
55
- <div class="basic-main" style="height: 100%">
56
- <div class="page-header app-header auto" style="padding: 15px;margin-right: 10px;right: 0%;height: 7%">
57
- <div @click="back()">
58
- <img src="../../../assets/back.png" style="margin: 0px"/>
59
- </div>
60
- </div>
61
- <div v-show="showPdfDownload" class="page-header app-header auto"
62
- style="padding: 15px;margin-right: 3.7%;right: 0%;height: 7%">
63
- <div @click="exportToPDF()">
64
- <img src="../../../assets/下载_.png" style="margin: 0px;width: 30px"/>
65
- </div>
66
- </div>
67
- <work-busy :is-busy="loading"></work-busy>
68
- <div class="container-fluid" style="overflow: scroll">
69
- <div class="row">
70
- <div class="col-md-5" style="margin-right: 2%;margin-left: 2%;height: 100%;overflow: scroll">
71
- <div style="width: 100%;margin: auto">
72
- <table class="table table-striped table-bordered" style="margin-bottom: 6px;margin-top: 35px">
73
- <thead>
74
- <tr>
75
- <th colspan="6" style="text-align: center">用户基本信息</th>
76
- </tr>
77
- </thead>
78
- <tbody>
79
- <tr>
80
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户编号:</td>
81
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_userinfo_code }}</td>
82
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户名称:</td>
83
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_user_name }}</td>
84
- </tr>
85
- <tr>
86
- <td style="text-align: center;border: #E9E9E9 solid 1px">证件号码:</td>
87
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_idnumber }}</td>
88
- <td style="text-align: center;border: #E9E9E9 solid 1px">用户类型:</td>
89
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_check_type }}</td>
90
- </tr>
91
- <tr>
92
- <td style="text-align: center;border: #E9E9E9 solid 1px">用户电话:</td>
93
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_user_phone }}</td>
94
- <td style="text-align: center;border: #E9E9E9 solid 1px">区 / 县:</td>
95
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_slice_area }}</td>
96
- </tr>
97
- <tr>
98
- <td style="text-align: center;border: #E9E9E9 solid 1px">街 道:</td>
99
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_street }}</td>
100
- <td style="text-align: center;border: #E9E9E9 solid 1px" v-if="paperdata.f_check_type=='民用'">楼 号:</td>
101
- <td style="text-align: center;border: #E9E9E9 solid 1px" v-if="paperdata.f_check_type=='民用'">{{ paperdata.f_building }}</td>
102
- </tr>
103
- <tr>
104
- <td style="text-align: center;border: #E9E9E9 solid 1px" v-if="paperdata.f_check_type=='民用'">单 元:</td>
105
- <td style="text-align: center;border: #E9E9E9 solid 1px" v-if="paperdata.f_check_type=='民用'">{{ paperdata.f_unit }}</td>
106
- <td style="text-align: center;border: #E9E9E9 solid 1px" v-if="paperdata.f_check_type=='民用'">楼 层:</td>
107
- <td style="text-align: center;border: #E9E9E9 solid 1px" v-if="paperdata.f_check_type=='民用'">{{ paperdata.f_floor }}</td>
108
- </tr>
109
- <tr>
110
- <td style="text-align: center;border: #E9E9E9 solid 1px" v-if="paperdata.f_check_type=='民用'">门 牌 号 :</td>
111
- <td style="text-align: center;border: #E9E9E9 solid 1px" v-if="paperdata.f_check_type=='民用'">{{ paperdata.f_room }}</td>
112
- <td style="text-align: center;border: #E9E9E9 solid 1px" >用户性质:</td>
113
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_userproperties }}</td>
114
- </tr>
115
- <tr>
116
- <td style="text-align: center;border: #E9E9E9 solid 1px">备注信息:</td>
117
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_comments }}</td>
118
- <td style="text-align: center;border: #E9E9E9 solid 1px">小区名称:</td>
119
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_residential_area }}</td>
120
- </tr>
121
- <tr>
122
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">详细住址:</td>
123
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_address }}</td>
124
- </tr>
125
- </tbody>
126
- </table>
127
- <table class="table table-striped table-bordered" style="margin-top: 40px"
128
- v-show="paperdata.f_entry_status=='入户'">
129
- <thead>
130
- <tr>
131
- <th colspan="4" style="text-align: center">用户安检概况</th>
132
- </tr>
133
- </thead>
134
- <tbody>
135
- <tr>
136
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">到达时间:</td>
137
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_onsite_time }}</td>
138
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">离开时间:</td>
139
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_offsite_time }}</td>
140
- </tr>
141
- <tr>
142
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">入户状态:</td>
143
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_entry_status }}</td>
144
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">燃气使用:</td>
145
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_usegas }}</td>
146
- </tr>
147
- <tr>
148
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">用户满意度:</td>
149
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">{{
150
- paperdata.f_client_evaluation
151
- }}
152
- </td>
153
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">安检结果:</td>
154
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;"
155
- :style="{'color':ajresult=='有隐患'?'red':''}">{{ ajresult }}
156
- </td>
157
- </tr>
158
- <tr>
159
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">备注:</td>
160
- <td colspan="3"
161
- style="text-align: center;border: #E9E9E9 solid 1px;word-wrap:break-word;word-break:break-all;width:87%">
162
- {{ paperdata.f_repair_approved_note }}
163
- </td>
164
- </tr>
165
- <tr>
166
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">隐患通知单单号:</td>
167
- <td colspan="3"
168
- style="text-align: center;border: #E9E9E9 solid 1px;word-wrap:break-word;word-break:break-all;width:87%">
169
- {{ paperdata.f_repairorder_id }}
170
- </td>
171
- </tr>
172
- <tr>
173
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">隐患详情:</td>
174
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px;word-wrap:break-word;word-break:break-all;width:87%">
175
- <span v-for="deviceCollect in deviceCollects">
176
- <span class="li-font">
177
- {{ deviceCollect.name }}:{{ deviceCollect.value }}&nbsp;&nbsp;&nbsp;
178
- </span>
179
- <br>
180
- <span v-if="deviceCollect.value == '有隐患'">
181
- <lable>隐患:</lable>
182
- <span v-for="val in deviceCollect.devices">{{ val }}</span>
183
- <br>
184
- </span>
185
- </span>
186
- </td>
187
- </tr>
188
-
189
- </tbody>
190
- </table>
191
- <table class="table table-striped table-bordered" style="margin-top: 40px"
192
- v-show="paperdata.f_entry_status!='入户'">
193
- <thead>
194
- <tr>
195
- <th colspan="4" style="text-align: center">用户安检概况</th>
196
- </tr>
197
- </thead>
198
- <tbody>
199
- <tr>
200
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">到达时间:</td>
201
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_onsite_time }}</td>
202
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">离开时间:</td>
203
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_offsite_time }}</td>
204
- </tr>
205
- <tr>
206
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">入户状态:</td>
207
- <td colspan="2" style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
208
- {{ paperdata.f_entry_status }}
209
- </td>
210
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">
211
- <button-link style="color: black" type="button" class="btn btn-link" @click="showpicture2()">
212
- {{ dev.lname }}
213
- 查看{{ data.f_entry_status }}照片
214
- </button-link>
215
- </td>
216
- </tr>
217
- <tr>
218
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">到访单号:</td>
219
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
220
- {{ paperdata.f_visit_number }}
221
- </td>
222
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">备注:</td>
223
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
224
- {{ paperdata.f_remark }}
225
- </td>
226
- </tr>
227
- <tr>
228
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">备注信息:</td>
229
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px;width: 50%">
230
- {{ paperdata.f_remark }}
231
- </td>
232
- </tr>
233
-
234
- </tbody>
235
- </table>
236
- <table class="table table-striped table-bordered" style="margin-top: 40px"
237
- v-show="item.f_no_checkplan == '复检'">
238
- <thead>
239
- <tr>
240
- <th colspan="4" style="text-align: center">上次安检情况</th>
241
- </tr>
242
- </thead>
243
- <tbody>
244
- <tr>
245
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">上次安检到达时间:</td>
246
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{
247
- lastCheckData.f_onsite_time
248
- }}
249
- </td>
250
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">上次安检离开时间:</td>
251
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{
252
- lastCheckData.f_offsite_time
253
- }}
254
- </td>
255
- </tr>
256
- <tr>
257
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">上次安检员:</td>
258
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
259
- {{ lastCheckData.f_checker_name }}
260
- </td>
261
- </tr>
262
- <tr>
263
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">安检结果:</td>
264
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
265
- {{ lastCheckData.f_defect_text }}
266
- </td>
267
- </tr>
268
-
269
- </tbody>
270
- </table>
271
- <table class="table table-striped table-bordered" style="margin-top: 35px"
272
- v-show="paperdata.f_entry_status=='入户' && paperdata.f_usegas == '未用气'">
273
- <thead>
274
- <tr>
275
- <th style="text-align: center">未用气照片</th>
276
- </tr>
277
- </thead>
278
- <tbody>
279
- <tr>
280
- <td style="margin: auto;text-align: center">
281
- <div class="container" style="max-width: 550px;background: #FFFFFF">
282
- <div class="img">
283
- <img-self-plus :src="paperdata.f_nongasuser_path" style="float: left" width="150"
284
- height="200"></img-self-plus>
285
- </div>
286
- </div>
287
- </td>
288
- </tr>
289
- </tbody>
290
- </table>
291
- <table class="table table-striped table-bordered" style="margin-top: 35px"
292
- v-show="paperdata.f_entry_status=='入户'">
293
- <thead>
294
- <tr>
295
- <th style="text-align: center">总体安检照片</th>
296
- </tr>
297
- </thead>
298
- <tbody>
299
- <tr>
300
- <td style="margin: auto;text-align: center">
301
- <div class="container" style="max-width: 550px;background: #FFFFFF">
302
- <div class="img" v-for="img in paperdata.f_overall_imgs">
303
- <img-self-plus :list="paperdata.f_overall_imgs " :src="img.f_overall_path" style="float: left"
304
- width="150"
305
- height="200"></img-self-plus>
306
- </div>
307
- </div>
308
-
309
-
310
- </td>
311
-
312
- </tr>
313
- </tbody>
314
- </table>
315
- <table class="table table-striped table-bordered" style="width: 100%"
316
- v-show="paperdata.f_entry_status=='入户' && (paperdata.f_sign_path || f_user_path) ">
317
- <thead>
318
- <tr>
319
- <th style="text-align: center">用户签名照片</th>
320
- </tr>
321
- </thead>
322
- <tbody>
323
- <tr>
324
- <td style="margin: auto;text-align: center" v-if="paperdata.f_sign_path">
325
- <div class="container" style="max-width: 500px;background: #FFFFFF" >
326
- <div class="img" style="float: none">
327
- <img-self-plus :src="paperdata.f_sign_path" width="200" height="200"></img-self-plus>
328
- </div>
329
- </div>
330
- </td>
331
- <td style="margin: auto;text-align: center" v-if="f_user_path">
332
- <div class="container" style="max-width: 550px;background: #FFFFFF" >
333
- <div class="img" style="float: none">
334
- <img-self-plus :src="'rs/image/file/'+f_user_path"
335
- width="200"
336
- height="200"></img-self-plus>
337
- </div>
338
- </div>
339
- </td>
340
- </tr>
341
- </tbody>
342
- </table>
343
- <table class="table table-striped table-bordered"
344
- v-show="paperdata.f_entry_status=='入户' && paperdata.f_defect_notified">
345
- <thead>
346
- <tr>
347
- <th style="text-align: center">安检通知书/隐患整改通知书</th>
348
- </tr>
349
- </thead>
350
- <tbody>
351
- <tr>
352
- <td style="margin: auto;text-align: center">
353
- <div class="container" style="max-width: 500px;background: #FFFFFF">
354
- <div class="img" style="float: none">
355
- <img-self-plus :src="paperdata.f_notified_path" width="486" height="300"></img-self-plus>
356
- </div>
357
- </div>
358
- </td>
359
- </tr>
360
- </tbody>
361
- </table>
362
- <table class="table table-striped table-bordered"
363
- v-show="paperdata.f_entry_status=='入户'&& paperdata.f_video_path">
364
- <thead>
365
- <tr>
366
- <th style="text-align: center">安检视频</th>
367
- </tr>
368
- </thead>
369
- <tbody>
370
- <tr>
371
- <td style="margin: auto;text-align: center">
372
- <div class="container" style="max-width: 500px;background: #FFFFFF">
373
- <video width="320" height="200" controls v-if="paperdata.f_video_path">
374
- <source :src="paperdata.f_video_path" type="video/mp4">
375
- </video>
376
- </div>
377
- </td>
378
- </tr>
379
- </tbody>
380
- </table>
381
- <table class="table table-striped table-bordered"
382
- v-show="item.f_recording1_path">
383
- <thead>
384
- <tr>
385
- <th style="text-align: center">录音文件</th>
386
- </tr>
387
- </thead>
388
- <tbody>
389
- <tr>
390
- <td style="margin: auto;text-align: center">
391
- <div class="container" style="max-width: 500px;background: #FFFFFF">
392
- <a class="button_spacing button_search-1"
393
- :download="item.f_user_name+'-'+item.f_check_type+'-'+'录音文件.arm'"
394
- :href="'rs/image/file/'+item.f_recording1_path">录音下载</a>
395
- </div>
396
- </td>
397
- </tr>
398
- </tbody>
399
- </table>
400
- </div>
401
- </div>
402
- <div class style="width: 1%;height: 100%;background-color: #F1F8FF;float: left;"></div>
403
- <div class="col-md-6" style="height: 100%;overflow: scroll">
404
- <div style="width: 95%;margin-left: 5%">
405
- <table class="table table-striped table-bordered" v-for="config in deviceconfig2" style="margin-top: 35px">
406
- <thead v-show="!(config.checkname!='燃气表'&&paperdata.f_entry_status!='入户')">
407
- <tr>
408
- <th style="text-align: center">{{ config.checkname }}</th>
409
- </tr>
410
- </thead>
411
- <tbody v-show="!(config.checkname!='燃气表'&&paperdata.f_entry_status!='入户')">
412
- <tr v-for="dev in config.items">
413
- <td v-if="dev.type!='text' && dev.isshow != false">
414
- <div class="row">
415
- <div class="col-md-8" style="text-align: center;">
416
- <label>
417
- <button-link type="button" class="btn btn-link" @click="showpicture(config.checkname,dev.lname)"
418
- :style="isred(config.checkname,dev.lname)?'color:red':'color:black'">
419
- {{ dev.lname }}
420
- </button-link>
421
- </label>
422
- </div>
423
- <div class="col-md-4" style="text-align: center">
424
- <label style="font-weight: normal"
425
- v-if="dev.type!='picture'">{{
426
- getDeviceValue(config.checkname, dev.lname) ? getDeviceValue(config.checkname, dev.lname) : '无'
427
- }}</label>
428
- <label style="font-weight: normal" v-if="dev.type=='picture'">
429
- <div v-show="getDevicePath(config.checkname,dev.lname)">
430
- <button-link style="color: black" type="button" class="btn btn-link"
431
- @click="showpath(getDevicePath(config.checkname,dev.lname),dev.lname)">查看照片
432
- </button-link>
433
- </div>
434
- <div v-show="!getDevicePath(config.checkname,dev.lname)">无照片</div>
435
- </label>
436
- </div>
437
- </div>
438
- </td>
439
- <td v-if="dev.type==='text' && dev.isshow != false">
440
- <label style="width: 100%;text-align: center">{{ dev.lname }}</label>
441
- </td>
442
- </tr>
443
- </tbody>
444
- </table>
445
- <div v-show="showButton">
446
- <button class="button_spacing button_search" @click="auditSuccesss()">通过</button>
447
- <button class="button_spacing button_search" @click="auditFail()">不通过</button>
448
- </div>
449
- </div>
450
- </div>
451
-
452
- </div>
453
- </div>
454
- <div v-show="false">
455
- <div class="container-fluid" id="toPdf" style="overflow: scroll">
456
- <div class="row">
457
- <div style="margin-right: 2%;margin-left: 2%;height: 100%;overflow: scroll">
458
- <div style="width: 100%;margin: auto">
459
- <table class="table table-striped table-bordered" style="margin-bottom: 6px;margin-top: 35px">
460
- <thead>
461
- <tr>
462
- <th colspan="6" style="text-align: center">用户基本信息</th>
463
- </tr>
464
- </thead>
465
- <tbody>
466
- <tr>
467
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户编号:</td>
468
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{
469
- paperdata.f_userinfo_code
470
- }}
471
- </td>
472
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户名称:</td>
473
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_user_name }}</td>
474
- </tr>
475
- <tr>
476
- <td style="text-align: center;border: #E9E9E9 solid 1px">证件号码:</td>
477
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_idnumber }}</td>
478
- <td style="text-align: center;border: #E9E9E9 solid 1px">用户类型:</td>
479
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_check_type }}</td>
480
- </tr>
481
- <tr>
482
- <td style="text-align: center;border: #E9E9E9 solid 1px">用户电话:</td>
483
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_user_phone }}</td>
484
- <td style="text-align: center;border: #E9E9E9 solid 1px">区 / 县:</td>
485
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_slice_area }}</td>
486
- </tr>
487
- <tr>
488
- <td style="text-align: center;border: #E9E9E9 solid 1px">街 道:</td>
489
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_street }}</td>
490
- <td style="text-align: center;border: #E9E9E9 solid 1px" v-if="paperdata.f_check_type=='民用'">楼 号:</td>
491
- <td style="text-align: center;border: #E9E9E9 solid 1px" v-if="paperdata.f_check_type=='民用'">{{ paperdata.f_building }}</td>
492
- </tr>
493
- <tr>
494
- <td style="text-align: center;border: #E9E9E9 solid 1px" v-if="paperdata.f_check_type=='民用'">单 元:</td>
495
- <td style="text-align: center;border: #E9E9E9 solid 1px" v-if="paperdata.f_check_type=='民用'">{{ paperdata.f_unit }}</td>
496
- <td style="text-align: center;border: #E9E9E9 solid 1px" v-if="paperdata.f_check_type=='民用'">楼 层:</td>
497
- <td style="text-align: center;border: #E9E9E9 solid 1px" v-if="paperdata.f_check_type=='民用'">{{ paperdata.f_floor }}</td>
498
- </tr>
499
- <tr>
500
- <td style="text-align: center;border: #E9E9E9 solid 1px" v-if="paperdata.f_check_type=='民用'">门 牌 号 :</td>
501
- <td style="text-align: center;border: #E9E9E9 solid 1px" v-if="paperdata.f_check_type=='民用'">{{ paperdata.f_room }}</td>
502
- <td style="text-align: center;border: #E9E9E9 solid 1px">用户性质:</td>
503
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_userproperties }}</td>
504
- </tr>
505
- <tr>
506
- <td style="text-align: center;border: #E9E9E9 solid 1px">备注信息:</td>
507
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_comments }}</td>
508
- <td style="text-align: center;border: #E9E9E9 solid 1px">小区名称:</td>
509
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_residential_area }}</td>
510
- </tr>
511
- <tr>
512
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">详细住址:</td>
513
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_address }}</td>
514
- </tr>
515
- </tbody>
516
- </table>
517
- <table class="table table-striped table-bordered" style="margin-top: 40px"
518
- v-show="paperdata.f_entry_status=='入户'">
519
- <thead>
520
- <tr>
521
- <th colspan="4" style="text-align: center">用户安检概况</th>
522
- </tr>
523
- </thead>
524
- <tbody>
525
- <tr>
526
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">到达时间:</td>
527
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_onsite_time }}</td>
528
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">离开时间:</td>
529
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{
530
- paperdata.f_offsite_time
531
- }}
532
- </td>
533
- </tr>
534
- <tr>
535
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">入户状态:</td>
536
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{
537
- paperdata.f_entry_status
538
- }}
539
- </td>
540
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">燃气使用:</td>
541
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_usegas }}</td>
542
- </tr>
543
- <tr>
544
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">用户满意度:</td>
545
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">{{
546
- paperdata.f_client_evaluation
547
- }}
548
- </td>
549
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">安检结果:</td>
550
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;"
551
- :style="{'color':ajresult=='有隐患'?'red':''}">{{ ajresult }}
552
- </td>
553
- </tr>
554
- <tr>
555
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">备注:</td>
556
- <td colspan="3"
557
- style="text-align: center;border: #E9E9E9 solid 1px;word-wrap:break-word;word-break:break-all;width:87%">
558
- {{ paperdata.f_repair_approved_note }}
559
- </td>
560
- </tr>
561
- <tr>
562
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">隐患通知单单号:</td>
563
- <td colspan="3"
564
- style="text-align: center;border: #E9E9E9 solid 1px;word-wrap:break-word;word-break:break-all;width:87%">
565
- {{ paperdata.f_repairorder_id }}
566
- </td>
567
- </tr>
568
- <tr>
569
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">隐患详情:</td>
570
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px;word-wrap:break-word;word-break:break-all;width:87%">
571
- <span v-for="deviceCollect in deviceCollects">
572
- <span class="li-font">
573
- {{ deviceCollect.name }}:{{ deviceCollect.value }}&nbsp;&nbsp;&nbsp;
574
- </span>
575
- <br>
576
- <span v-if="deviceCollect.value == '有隐患'">
577
- <lable>隐患:</lable>
578
- <span v-for="val in deviceCollect.devices">{{ val }}</span>
579
- <br>
580
- </span>
581
- </span>
582
- </td>
583
- </tr>
584
- </tbody>
585
- </table>
586
- <table class="table table-striped table-bordered" style="margin-top: 40px"
587
- v-show="paperdata.f_entry_status!='入户'">
588
- <thead>
589
- <tr>
590
- <th colspan="4" style="text-align: center">用户安检概况</th>
591
- </tr>
592
- </thead>
593
- <tbody>
594
- <tr>
595
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">到达时间:</td>
596
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_onsite_time }}</td>
597
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">离开时间:</td>
598
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{
599
- paperdata.f_offsite_time
600
- }}
601
- </td>
602
- </tr>
603
- <tr>
604
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">入户状态:</td>
605
- <td colspan="2" style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
606
- {{ paperdata.f_entry_status }}
607
- </td>
608
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">
609
- <button-link style="color: black" type="button" class="btn btn-link" @click="showpicture2()">
610
- {{ dev.lname }}
611
- 查看{{ data.f_entry_status }}照片
612
- </button-link>
613
- </td>
614
- </tr>
615
- <tr>
616
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">到访单号:</td>
617
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
618
- {{ paperdata.f_visit_number }}
619
- </td>
620
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">备注:</td>
621
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
622
- {{ paperdata.f_remark }}
623
- </td>
624
- </tr>
625
-
626
- </tbody>
627
- </table>
628
- <table class="table table-striped table-bordered" style="margin-top: 40px"
629
- v-show="item.f_no_checkplan == '复检'">
630
- <thead>
631
- <tr>
632
- <th colspan="4" style="text-align: center">上次安检情况</th>
633
- </tr>
634
- </thead>
635
- <tbody>
636
- <tr>
637
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">上次安检到达时间:</td>
638
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{
639
- lastCheckData.f_onsite_time
640
- }}
641
- </td>
642
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">上次安检离开时间:</td>
643
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{
644
- lastCheckData.f_offsite_time
645
- }}
646
- </td>
647
- </tr>
648
- <tr>
649
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">上次安检员:</td>
650
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
651
- {{ lastCheckData.f_checker_name }}
652
- </td>
653
- </tr>
654
- <tr>
655
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">安检结果:</td>
656
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
657
- {{ lastCheckData.f_defect_text }}
658
- </td>
659
- </tr>
660
-
661
- </tbody>
662
- </table>
663
- <table class="table table-striped table-bordered" style="margin-top: 35px"
664
- v-show="paperdata.f_entry_status=='入户'">
665
- <thead>
666
- <tr>
667
- <th style="text-align: center">总体安检照片</th>
668
- </tr>
669
- </thead>
670
- <tbody>
671
- <tr>
672
- <td style="margin: auto;text-align: center">
673
- <div class="container" style="max-width: 550px;background: #FFFFFF">
674
- <div class="img" v-for="img in paperdata.f_overall_imgs">
675
- <img-self-plus :list="paperdata.f_overall_imgs " :src="img.f_overall_path" style="float: left"
676
- width="150"
677
- height="200"></img-self-plus>
678
- </div>
679
- </div>
680
-
681
-
682
- </td>
683
-
684
- </tr>
685
- </tbody>
686
- </table>
687
- <table class="table table-striped table-bordered" style="width: 100%"
688
- v-show="paperdata.f_entry_status=='入户'">
689
- <thead>
690
- <tr>
691
- <th style="text-align: center">用户签名照片</th>
692
- </tr>
693
- </thead>
694
- <tbody>
695
- <tr>
696
- <td style="margin: auto;text-align: center">
697
- <div class="container" style="max-width: 500px;background: #FFFFFF">
698
- <div class="img" style="float: none">
699
- <img-self-plus :src="paperdata.f_sign_path" width="200" height="200"></img-self-plus>
700
- </div>
701
- </div>
702
- </td>
703
- <td style="margin: auto;text-align: center">
704
- <div class="container" style="max-width: 550px;background: #FFFFFF" v-if="f_user_path">
705
- <div class="img" style="float: none">
706
- <img-self-plus :src="'rs/image/file/'+f_user_path"
707
- width="200"
708
- height="200"></img-self-plus>
709
- </div>
710
- </div>
711
- </td>
712
- </tr>
713
- </tbody>
714
- </table>
715
- <table class="table table-striped table-bordered"
716
- v-show="paperdata.f_entry_status=='入户' && paperdata.f_defect_notified">
717
- <thead>
718
- <tr>
719
- <th style="text-align: center">安检通知书/隐患整改通知书</th>
720
- </tr>
721
- </thead>
722
- <tbody>
723
- <tr>
724
- <td style="margin: auto;text-align: center">
725
- <div class="container" style="max-width: 500px;background: #FFFFFF">
726
- <div class="img" style="float: none">
727
- <img-self-plus :src="paperdata.f_notified_path" width="486" height="300"></img-self-plus>
728
- </div>
729
- </div>
730
- </td>
731
- </tr>
732
- </tbody>
733
- </table>
734
- <table class="table table-striped table-bordered"
735
- v-show="paperdata.f_entry_status=='入户'&& paperdata.f_video_path">
736
- <thead>
737
- <tr>
738
- <th style="text-align: center">安检视频</th>
739
- </tr>
740
- </thead>
741
- <tbody>
742
- <tr>
743
- <td style="margin: auto;text-align: center">
744
- <div class="container" style="max-width: 500px;background: #FFFFFF">
745
- <video width="320" height="200" controls v-if="paperdata.f_video_path">
746
- <source :src="paperdata.f_video_path" type="video/mp4">
747
- </video>
748
- </div>
749
- </td>
750
- </tr>
751
- </tbody>
752
- </table>
753
- <table class="table table-striped table-bordered"
754
- v-show="paperdata.f_entry_status=='入户'&& item.f_recording1_path">
755
- <thead>
756
- <tr>
757
- <th style="text-align: center">录音文件</th>
758
- </tr>
759
- </thead>
760
- <tbody>
761
- <tr>
762
- <td style="margin: auto;text-align: center">
763
- <div class="container" style="max-width: 500px;background: #FFFFFF">
764
- <a class="button_spacing button_search-1"
765
- :download="item.f_user_name+'-'+item.f_check_type+'-'+'录音文件.arm'"
766
- :href="'rs/image/file/'+item.f_recording1_path">录音下载</a>
767
- </div>
768
- </td>
769
- </tr>
770
- </tbody>
771
- </table>
772
- </div>
773
- </div>
774
- <div style="margin-right: 2%;margin-left: 2%;height: 100%;overflow: scroll">
775
- <div style="width: 95%;margin-left: 5%">
776
- <table class="table table-striped table-bordered" v-for="config in deviceconfig2"
777
- style="margin-top: 35px">
778
- <thead v-show="!(config.checkname!='燃气表'&&paperdata.f_entry_status!='入户')">
779
- <tr>
780
- <th style="text-align: center">{{ config.checkname }}</th>
781
- </tr>
782
- </thead>
783
- <tbody v-show="!(config.checkname!='燃气表'&&paperdata.f_entry_status!='入户')">
784
- <tr v-for="dev in config.items">
785
- <td v-if="dev.type!='text' && dev.isshow != false">
786
- <div class="row">
787
- <div class="col-md-8" style="text-align: center;">
788
- <label>
789
- <button-link type="button" class="btn btn-link"
790
- @click="showpicture(config.checkname,dev.lname)"
791
- :style="isred(config.checkname,dev.lname)?'color:red':'color:black'">
792
- {{ dev.lname }}
793
- </button-link>
794
- </label>
795
- </div>
796
- <div class="col-md-4" style="text-align: center">
797
- <label style="font-weight: normal"
798
- v-if="dev.type!='picture'">{{
799
- getDeviceValue(config.checkname, dev.lname) ? getDeviceValue(config.checkname, dev.lname) : '无'
800
- }}</label>
801
- <label style="font-weight: normal" v-if="dev.type=='picture'">
802
- <div v-show="getDevicePath(config.checkname,dev.lname)">
803
- <button-link style="color: black" type="button" class="btn btn-link"
804
- @click="showpath(getDevicePath(config.checkname,dev.lname),dev.lname)">查看照片
805
- </button-link>
806
- </div>
807
- <div v-show="!getDevicePath(config.checkname,dev.lname)">无照片</div>
808
- </label>
809
- </div>
810
- </div>
811
- </td>
812
- <td v-if="dev.type==='text' && dev.isshow != false">
813
- <label style="width: 100%;text-align: center">{{ dev.lname }}</label>
814
- </td>
815
- </tr>
816
- </tbody>
817
- </table>
818
- </div>
819
- </div>
820
-
821
- </div>
822
- </div>
823
- </div>
824
- </div>
825
- <modal :show.sync="imgshow" v-ref:modal backdrop="true">
826
- <header slot="modal-header" class="modal-header">
827
- {{ picturename }}
828
- </header>
829
- <article slot="modal-body" class="modal-body">
830
- <div class="from-group">
831
- <div class="row">
832
- <div class="col-md-6">
833
- <img-self-plus v-if="showimg1" :src="showimg1" width="240" height="300"></img-self-plus>
834
- </div>
835
- <div class="col-md-6">
836
- <img-self-plus v-if="showimg2" :src="showimg2" width="240" height="300"></img-self-plus>
837
- </div>
838
- <div class="col-md-6" v-for="item in otherDarginShowImgs">
839
- <img-self-plus v-if="item.path" :src="item.path" width="240" height="300"></img-self-plus>
840
- </div>
841
- </div>
842
- </div>
843
- </article>
844
- <footer slot="modal-footer" class="modal-footer" v-show="false">
845
- <button type="button" class="btn btn-success" @click='imgclose'>关闭</button>
846
- </footer>
847
- </modal>
848
- <modal :show.sync="imgshow2" v-ref:modal backdrop="true">
849
- <header slot="modal-header" class="modal-header">
850
- {{ paperdata.f_entry_status }}照片
851
- </header>
852
- <article slot="modal-body" class="modal-body">
853
- <div class="from-group">
854
- <div class="row">
855
- <div class="col-md-6">
856
- <img-self-plus v-if="this.paperdata.f_entry_status=='到访不遇'&& this.paperdata.f_noanswer_path" :src="showimg3"
857
- width="282"
858
- height="400"></img-self-plus>
859
- </div>
860
- <div class="col-md-6">
861
- <img-self-plus v-if="this.paperdata.f_entry_status=='到访不遇'&& this.paperdata.f_noanswer1_path"
862
- :src="showimg5" width="282"
863
- height="400"></img-self-plus>
864
- </div>
865
- <div class="col-md-6">
866
- <img-self-plus v-if="this.paperdata.f_entry_status=='到访不遇'&& this.paperdata.f_noanswer2_path"
867
- :src="showimg6" width="282"
868
- height="400"></img-self-plus>
869
- </div>
870
- <div class="col-md-6">
871
- <img-self-plus v-if="this.paperdata.f_entry_status=='拒检' && this.paperdata.f_rejectcheck_path"
872
- :src="showimg4" width="282"
873
- height="400"></img-self-plus>
874
- </div>
875
- <div class="col-md-6">
876
- <img-self-plus v-if="this.paperdata.f_entry_status=='拒检' && this.paperdata.f_rejectcheck1_path"
877
- :src="showimg7" width="282"
878
- height="400"></img-self-plus>
879
- </div>
880
- <div class="col-md-6">
881
- <img-self-plus v-if="this.paperdata.f_entry_status=='拒检' && this.paperdata.f_rejectcheck2_path"
882
- :src="showimg8" width="282"
883
- height="400"></img-self-plus>
884
- </div>
885
- </div>
886
- </div>
887
- </article>
888
- <footer slot="modal-footer" class="modal-footer" v-show="false">
889
- <button type="button" class="btn btn-success" @click='imgclose'>关闭</button>
890
- </footer>
891
- </modal>
892
- <modal :show.sync="showModel" :width="'50%'" :backdrop="false">
893
- <div slot="modal-header" class="modal-header">
894
- <h4 class="modal-title">
895
- 安检审核备注
896
- </h4>
897
- </div>
898
- <div slot="modal-body" class="modal-body">
899
- <div class="row">
900
- <div class="form-group col-sm-4">
901
- <label class="font_normal_body">审核备注:</label>
902
- <textarea v-model="message"></textarea>
903
- </div>
904
- </div>
905
- </div>
906
- <div slot="modal-footer" class="modal-footer" style="text-align: center">
907
- <button class="button_search" style="margin-right: 15px" @click="auditFailOK()">确定</button>
908
- <button class="button_search" style="margin-right: 15px" @click="auditFailCancel()">取消</button>
909
- </div>
910
- </modal>
911
- </template>
912
-
913
- <script>
914
- import html2pdf from 'html2pdf.js'
915
- import ObjConfig from '../../../utils/GerJsonObjectConfig'
916
- import RadioGroup from 'vue-client/src/vue-strap/src/radioGroup'
917
- import Radio from 'vue-client/src/vue-strap/src/radioBtn'
918
- import Vue from 'vue'
919
- import * as Util from '../../Util'
920
- import {jsonSort} from '../../../utils/LdapHelper'
921
- import {HttpResetClass} from "vue-client";
922
- import {isEmpty} from "../../Util";
923
-
924
- let asyncReady = async function (self) {
925
- // 获取配置信息
926
- try {
927
- let res = await new HttpResetClass().load('post', 'rs/sql/safe_singleTable_OrderBy', {
928
- data: {
929
- items: 'f_dir',
930
- tablename: 't_organization',
931
- condition: `id = '${self.item.f_filialeid}'`,
932
- orderitem: 'id'
933
- }
934
- })/*.then(res=>{*/
935
- //tag
936
- //tag)
937
- console.log(res)
938
- if (!res.data[0].f_dir) {
939
- self.$showMessage("该公司无组织目录,无法获取配置文件,请联系管理员确认")
940
- } else {
941
- //this.f_dir=res.data[0].f_dir
942
- let url = self.newConfig == '是' ? '/safecheck/rs/safe_vue' : '/safecheck/rs/vue'
943
- try {
944
- let res1 = await new HttpResetClass().load('GET', `${url}/DevicesConfig.json?folderName=phonevues&orgDir=${res.data[0].f_dir}`, {}, {
945
- resolveMsg: '获取居民配置项成功!',
946
- rejectMsg: '获取居民配置项出错!'
947
- })/*.then(res=>{*/
948
- //tag
949
- //this.safeConfig["民用配置项"]=Object.assign({},res.data)
950
- if (!Vue.config.safecheck) {
951
- Vue.config = {safecheck: {}}
952
- }
953
- Vue.config.safecheck.DevicesConfig = res1.data
954
- console.log(Vue.config.safecheck.DevicesConfig)
955
- /*})*/
956
- let res2 = await new HttpResetClass().load('GET', `${url}/DevicesSetConfig.json?folderName=phonevues&orgDir=${res.data[0].f_dir}`, {}, {
957
- resolveMsg: '获取非居民配置项成功!',
958
- rejectMsg: '获取非居民配置项出错!'
959
- })/*.then(res=>{*/
960
- //tag
961
- //this.safeConfig["非民用配置项"]=Object.assign({},res.data)
962
- Vue.config.safecheck.DevicesSetConfig = res2.data
963
- /*}).then(res=> {
964
- })*/
965
-
966
- } catch (e) {
967
- self.$showMessage("获取配置文件失败" + e)
968
- self.loading = false
969
- }
970
- }
971
- if (self.data.f_recheck_id) {
972
- let res3 = await new HttpResetClass().load('post', 'rs/sql/safe_singleTable_OrderBy', {
973
- data: {
974
- items: '*',
975
- tablename: 't_check_paper',
976
- condition: `id = '${self.data.f_recheck_id}'`,
977
- orderitem: 'id'
978
- }
979
- })
980
- self.lastCheckData = res3.data[0]
981
- }
982
- } catch (error) {
983
- // 忽略704,文件找不到异常R
984
- if (error.status !== 704) {
985
- throw error
986
- }
987
- this.loading = false
988
- }
989
- }
990
- export default {
991
- title: '安检单',
992
- props: ['f_plan_id', 'item', 'role'],
993
- data() {
994
- return {
995
- f_user_path:'',
996
- message: '',
997
- showButton: false,
998
- showModel: false,
999
- data: {
1000
- f_devices: [],
1001
- f_defect_content: ''
1002
- },
1003
- showPdfDownload: this.$appdata.getSingleValue('安检结果pdf下载') ? this.$appdata.getSingleValue('安检结果pdf下载') : false,
1004
- lastCheckData: {},
1005
- paperdata: {},
1006
- picturename: '隐患照片',
1007
- defectDevice: {},
1008
- hasDevice: false,
1009
- deviceCollect: {},
1010
- deviceCollects: [],
1011
- isshow: false,
1012
- ajresult: '',
1013
- loading: true,
1014
- imgshow: false,
1015
- imgshow2: false,
1016
- isUpload: false,
1017
- livedispose: '',
1018
- showimg1: '',
1019
- showimg2: '',
1020
- showimg3: '',
1021
- showimg4: '',
1022
- showimg5: '',
1023
- showimg6: '',
1024
- showimg7: '',
1025
- showimg8: '',
1026
- hiddenDangerImgNumber: 0, //配置项中隐患照片数
1027
- otherDarginShowImgs: [],//其他隐患图片
1028
- startClick: false, //开始安检按钮是否可点击
1029
- isStrat: false, //是否开始安检
1030
- checkResult: {},//查询结果
1031
- newcheckResult: {},
1032
- timer: null,
1033
- showModal: false,
1034
- pic_to_be_viewed: '',
1035
- showBack: true,
1036
- devices: [],
1037
- devicesAll: [],
1038
- configAJ: [],
1039
- configRQ: [],
1040
- deviceconfig: {},
1041
- newConfig: '',
1042
- deviceconfig2: [],
1043
- f_devices: [],
1044
- config: {
1045
- "燃气表": {
1046
- "checkmust": true,
1047
- "index": 1,
1048
- "items": {
1049
- "基表编号": {"index": 1, "type": "string", "readonly": true},
1050
- "气表型号": {"index": 2, "type": "string", "readonly": true},
1051
- "气表品牌": {"index": 3, "type": "string", "readonly": true},
1052
- "进气方向": {"index": 4, "type": "string", "readonly": true},
1053
- "初始表底": {"index": 5, "type": "number", "isshow": false, "readonly": true},
1054
- "上期表读数": {"index": 6, "type": "number", "readonly": true, isshow: false},
1055
- "累购气量": {"index": 7, "type": "number", "readonly": true},
1056
- "已用气量": {"index": 8, "type": "number", "checkmust": false},//基表数
1057
- "剩余气量": {"index": 9, "type": "number", "checkmust": false},//累购-已用
1058
- //显示屏数 --实际剩余气量
1059
- "气量异常差值": {"index": 10, "type": "number", "readonly": true},
1060
- "表箱号": {"index": 11, "type": "string", "readonly": true},
1061
- "燃气表照片": {"index": 12, "type": "picture", "checkmust": false},
1062
- }
1063
- // 注意,配置项的index必须与上面的固定配置保持'顺序'
1064
- }
1065
- },
1066
- //金额
1067
- config2: {
1068
- "燃气表": {
1069
- "checkmust": true,
1070
- "index": 1,
1071
- "items": {
1072
- "基表编号": {"index": 1, "type": "string", "readonly": true},
1073
- "气表型号": {"index": 2, "type": "string", "readonly": true},
1074
- "气表品牌": {"index": 3, "type": "string", "readonly": true},
1075
- "进气方向": {"index": 4, "type": "string", "readonly": true},
1076
- "初始表底": {"index": 5, "type": "number", "isshow": false, "readonly": true},
1077
- "上期表读数": {"index": 6, "type": "number", "readonly": true, isshow: false},
1078
- "累购金额": {"index": 7, "type": "number", "readonly": true},
1079
- "已用金额": {"index": 8, "type": "number", "checkmust": false},
1080
- //显示屏数 --实际剩余气量
1081
- "剩余金额": {"index": 9, "type": "number", "checkmust": false},
1082
- "金额异常差值": {"index": 10, "type": "number", "readonly": true},
1083
- "表箱号": {"index": 11, "type": "string", "readonly": true},
1084
- "燃气表照片": {"index": 12, "type": "picture", "checkmust": false},
1085
- }
1086
- }
1087
- },
1088
- config3: {
1089
- "燃气表":{
1090
- "checkmust":true,
1091
- "index":1,
1092
- "items":{
1093
- "基表编号":{"index":1,"type":"string","readonly":true},
1094
- "气表型号":{"index":2,"type":"string","readonly":true},
1095
- "气表品牌":{"index":3,"type":"string","readonly":true},
1096
- "进气方向":{"index":4,"type":"string","readonly":true},
1097
- "初始表底":{"index":5,"type":"string","isshow":false,"readonly":true},
1098
- "累购金额":{"index":6,"type":"string","readonly":true},
1099
- "表累购金额":{"index":7,"type":"string","readonly":false},
1100
- "已用金额":{"index":8,"type":"string","checkmust": false},
1101
- "剩余金额":{"index":9,"type":"string","checkmust": false},
1102
- "累购气量":{"index":10,"type":"string","readonly":true},
1103
- "表累购气量":{"index":11,"type":"string","readonly":false},
1104
- "已用气量":{"index":12,"type":"string","checkmust": false},
1105
- "剩余气量":{"index":13,"type":"string","checkmust": false},
1106
- "燃气表照片":{"index":14,"type":"picture","checkmust": false}
1107
- }
1108
- },
1109
- },
1110
- }
1111
- },
1112
- components: {
1113
- RadioGroup,
1114
- Radio,
1115
- },
1116
- computed: {
1117
- isRecodrDownloadBtn() {
1118
- // 投诉单下派还是处理
1119
- let res = this.$appdata.getSingleValue('无限制录音');
1120
- if (res == 'true') {
1121
- return true;
1122
- } else {
1123
- return false;
1124
- }
1125
- },
1126
- selector: {
1127
- get() {
1128
- return 'paper-state'
1129
- },
1130
- set(val) {
1131
- if (this.isStrat) {
1132
- this.$goto(val, {userinfo: this.data}, 'paper-router')
1133
- } else {
1134
- this.$showMessage('未开始安检!')
1135
- }
1136
- }
1137
- },
1138
- actionEnabled: {
1139
- get() {
1140
- return this.role == 'inspect'
1141
- }
1142
- }
1143
- },
1144
- methods: {
1145
- exportToPDF() {
1146
- const element = document.getElementById('toPdf') // 替换为您要导出的页面元素的ID
1147
- html2pdf(element)
1148
- },
1149
-
1150
- showAudit() {
1151
- var audit = this.$appdata.getSingleValue('安检审核');
1152
- if (audit == '是' && (this.item.f_approved == '未审核' || !this.item.f_approved)) {
1153
- this.showButton = true
1154
- }
1155
- },
1156
- //安检审核成功
1157
- auditSuccesss() {
1158
- this.loading = true;
1159
- var reqdata = {
1160
- audit_result: '通过',
1161
- operator: "success",
1162
- audit_time: Util.getNowDate(),
1163
- user_name: this.$login.f.name,
1164
- id: this.item.id,
1165
- f_check_item_id: this.item.f_check_item_id
1166
- }
1167
- new HttpResetClass().load('POST', '/rs/logic/updateAafeAudit', {data: reqdata}, {
1168
- resolveMsg: '安检审核成功!',
1169
- rejectMsg: '安检审核出错!'
1170
- }).then((res) => {
1171
- if (res.data.code == 200) {
1172
- this.loading = false;
1173
- this.$back()
1174
- }
1175
- })
1176
- },
1177
- auditFail() {
1178
- this.showModel = true;
1179
- },
1180
- auditFailOK() {
1181
-
1182
- this.loading = true;
1183
- var reqdata = {
1184
- message: this.message,
1185
- audit_result: '不通过',
1186
- operator: "fail",
1187
- audit_time: Util.getNowDate(),
1188
- user_name: this.$login.f.name,
1189
- id: this.item.id,
1190
- f_check_item_id: this.item.f_check_item_id
1191
- }
1192
- new HttpResetClass().load('POST', '/rs/logic/updateAafeAudit', {data: reqdata}, {
1193
- resolveMsg: '安检审核成功!',
1194
- rejectMsg: '安检审核出错!'
1195
- }).then((res) => {
1196
- if (res.data.code == 200) {
1197
- this.loading = false;
1198
- this.message = '';
1199
- this.showModel = false;
1200
- this.$back()
1201
- }
1202
- })
1203
- },
1204
- auditFailCancel() {
1205
- this.showModel = false;
1206
- this.message = '';
1207
- },
1208
-
1209
- devicesCollect() {
1210
- //tag
1211
- //tag)
1212
- //tag)
1213
- //tag
1214
- this.deviceCollects = []
1215
- let checkResult = '正常'
1216
- this.result = '正常'
1217
- let codata = JSON.parse(JSON.stringify(this.data))
1218
- //tag)
1219
- for (let device in this.data) {
1220
- let f_device_type
1221
- if (device.startsWith("device")) {
1222
- for (let item in this.data[device]) {
1223
- if (this.data[device].length > 1) {
1224
- let j = Number.parseInt(item) + 1
1225
- f_device_type = `${this.data[device][item].f_device_type}${j}`
1226
- } else {
1227
- f_device_type = this.data[device][item].f_device_type
1228
- }
1229
- // //tag
1230
- let deviceelse = []
1231
- let deviceInfos = []
1232
- for (let i in this.data[device][item].f_items) {
1233
- let defects = ''
1234
-
1235
- let items = this.data[device][item].f_items[i]
1236
-
1237
-
1238
- if ((items.type === 'selector' || items.type === 'radio' || items.type === 'checkbox' || items.type === 'picture') && items.f_item_value != null && items.f_item_value instanceof Array) {
1239
- for (let i in items.f_item_value) {
1240
- let f_item_value = items.f_item_value[i]
1241
-
1242
- //tag)
1243
- //tag)
1244
- //tag)
1245
- //tag)
1246
-
1247
- if (!this.config[this.data[device][item].f_device_type].items[items.f_item_name] && (items.isdefect && (items.isdefect == 'true' || items.isdefect == true))) {
1248
- continue
1249
- }
1250
- /*if(items.f_is_defect != true && items.f_is_defect != 'true'){
1251
- continue
1252
- }*/
1253
- if (items.f_is_defect == 'true' || items.f_is_defect == true) {
1254
- checkResult = '有隐患'
1255
- this.result = '有隐患'
1256
- defects = `${defects}:${items.f_item_value}/`
1257
- }
1258
- /*let options = this.config[this.data[device][item].f_device_type].items[items.f_item_name].options
1259
- for (let option in options) {
1260
- if (options[option].data == f_item_value) {
1261
- if (options[option].isdefect == 'true' || options[option].isdefect == true) {
1262
- checkResult = '有隐患'
1263
- this.result = '有隐患'
1264
- defects = `${defects}:${options[option].data}/`
1265
- // let level = options[option].level
1266
- }
1267
- }
1268
- }*/
1269
- //tag)
1270
- }
1271
- if (defects != '') {
1272
- console.log('有隐患items', items)
1273
- deviceInfos.push(`${items.f_item_name}${defects.substring(0, defects.length - 1)}${items.f_else ? items.f_else : ''}`)
1274
- }
1275
- } else if ((items.type === 'string' || items.type === 'number') && items.f_is_defect && items.f_item_value[0]) {
1276
- checkResult = '有隐患'
1277
- this.result = '有隐患'
1278
- deviceInfos.push(`${items.f_item_name}:${items.f_item_value[0]}`)
1279
-
1280
- } else if (items.f_item_name == '金额异常差值') {
1281
- var deviation = this.$appdata.getSingleValue('金额异常差值允许误差')
1282
- //tag
1283
- if (parseFloat(items.f_item_value[0]).toString() != "NaN" && parseFloat(deviation).toString() != "NaN") {
1284
- if (parseFloat(items.f_item_value[0]) > parseFloat(deviation) || parseFloat(items.f_item_value[0]) < parseFloat(deviation) * -1) {
1285
- checkResult = '有隐患'
1286
- this.result = '有隐患'
1287
- deviceInfos.push(`${items.f_item_name}:${items.f_item_value[0]}`)
1288
- }
1289
- }
1290
- } else if (items.f_item_name == '气量异常差值') {
1291
- var deviation = this.$appdata.getSingleValue('气量异常差值允许误差')
1292
- //tag
1293
- if (parseFloat(items.f_item_value[0]).toString() != "NaN" && parseFloat(deviation).toString() != "NaN") {
1294
- if (parseFloat(items.f_item_value[0]) > parseFloat(deviation) || parseFloat(items.f_item_value[0]) < parseFloat(deviation) * -1) {
1295
- checkResult = '有隐患'
1296
- this.result = '有隐患'
1297
- deviceInfos.push(`${items.f_item_name}:${items.f_item_value[0]}`)
1298
- }
1299
- }
1300
- }
1301
- if (!this.config[this.data[device][item].f_device_type].items[items.f_item_name]) {
1302
- // console.log('this.config[this.data[device][item].f_device_type]', this.config[this.data[device][item].f_device_type])
1303
- // console.log('this.deviceconfig2', this.deviceconfig2)
1304
- for (let dev in this.deviceconfig2) {
1305
- if (this.deviceconfig2[dev].checkname == this.data[device][item].f_device_type) {
1306
- this.deviceconfig2[dev].items.push({
1307
- lname: items.f_item_name
1308
- })
1309
- }
1310
- }
1311
- }
1312
- //tag)
1313
- //tag
1314
- //tag
1315
- if (items.type === 'selector') {
1316
- items.selected = []
1317
- } else if (items.type === 'inputSelector') {
1318
- items.selected = ''
1319
- }
1320
- }
1321
-
1322
-
1323
- //tag
1324
- this.$set('deviceCollect.name', f_device_type)
1325
- this.$set('deviceCollect.value', checkResult)
1326
- this.$set('deviceCollect.devices', deviceInfos)
1327
- this.$set('deviceCollect.else', deviceelse)
1328
- console.log('deviceCollect.devices', this.deviceCollect.devices)
1329
- console.log('deviceCollect.else', this.deviceCollect.else)
1330
- //tag)
1331
- if (this.deviceCollect.name) {
1332
- //tag
1333
- this.deviceCollects.push(JSON.parse(JSON.stringify(this.deviceCollect)))
1334
- }
1335
-
1336
- checkResult = '正常'
1337
- this.deviceCollect = {}
1338
- }
1339
- }
1340
- }
1341
- if (this.deviceCollects.length > 0) {
1342
- this.hasDevice = true
1343
- }
1344
- this.data.f_userproperties = this.item.f_gasproperties
1345
- this.ajresult = JSON.parse(this.item.f_defect_content).result
1346
- this.showimg3 = this.data.f_noanswer_path
1347
- this.showimg5 = this.data.f_noanswer1_path
1348
- this.showimg6 = this.data.f_noanswer2_path
1349
- this.showimg4 = this.data.f_rejectcheck_path
1350
- this.showimg7 = this.data.f_rejectcheck1_path
1351
- this.showimg8 = this.data.f_rejectcheck2_path
1352
- this.paperdata = this.data
1353
- this.f_user_path = this.paperdata.f_user_pictures ? JSON.parse(this.paperdata.f_user_pictures)[0].f_user_path : ''
1354
- this.loading = false
1355
- },
1356
- imgclose() {
1357
- this.imgshow = false
1358
- },
1359
- putDevices() {
1360
- ////tag
1361
- this.$set('data.approve', "true")
1362
- this.$set('data.writeback', "false")
1363
- if (Vue.config.safecheck.ApproveConfig != undefined) {
1364
- if (Vue.config.safecheck.ApproveConfig.approve != undefined) {
1365
- this.$set('data.approve', Vue.config.safecheck.ApproveConfig.approve)
1366
- }
1367
- if (Vue.config.safecheck.ApproveConfig.writeback != undefined) {
1368
- this.$set('data.writeback', Vue.config.safecheck.ApproveConfig.writeback)
1369
- }
1370
- if (Vue.config.safecheck.ApproveConfig.livedispose != undefined) {
1371
- this.livedispose = Vue.config.safecheck.ApproveConfig.livedispose
1372
- }
1373
- if (Vue.config.safecheck.ApproveConfig.hiddendanger != undefined) {
1374
- if (parseInt(Vue.config.safecheck.ApproveConfig.hiddendanger) >= 3) {
1375
- this.hiddenDangerImgNumber = 3
1376
- } else {
1377
- this.hiddenDangerImgNumber = parseInt(Vue.config.safecheck.ApproveConfig.hiddendanger)
1378
- }
1379
- }
1380
- }
1381
- //tag
1382
-
1383
- //tag)
1384
- if (!this.item.f_safecheck_type) {
1385
- this.config = this.extend(this.config, Vue.config.safecheck[Vue.config.safecheck.SafecheckType['年度普检'][this.item.f_check_type]])
1386
- } else {
1387
- if (Vue.config.safecheck.DevicesConfig != undefined)
1388
- this.config = this.extend(this.config, Vue.config.safecheck[Vue.config.safecheck.SafecheckType[this.item.f_safecheck_type][this.item.f_check_type]])
1389
- }
1390
- //遍历安检项配置
1391
- for (let i in this.config) {
1392
- //取得安检项索引值
1393
- let n = this.config[i].index
1394
- this.devices[n - 1] = {device: i, n: n, checkmust: this.config[i].checkmust}
1395
- this.$set('data.' + 'device' + n, [])
1396
- let items = []
1397
- for (let it in this.config[i].items) {
1398
- //赋值下拉选项
1399
- if (this.config[i].items[it].type == 'selector') {
1400
- for (let op in this.config[i].items[it].options)
1401
- if (this.config[i].items[it].options[op].isdefault == true) {
1402
- items.push({
1403
- f_defect_level: this.config[i].items[it].options[op].level,
1404
- f_is_defect: this.config[i].items[it].options[op].isdefect,
1405
- f_item_name: it,
1406
- f_item_value: this.config[i].items[it].options[op].data,
1407
- f_path: "",
1408
- type: "selector"
1409
- })
1410
- }
1411
- }
1412
- }
1413
- n = n + 1
1414
- }
1415
-
1416
- },
1417
- showpath(val1, val2) {
1418
- //tag
1419
- //tag
1420
- if (val1) {
1421
- this.showimg1 = val1
1422
- this.picturename = val2
1423
- this.imgshow = true
1424
- }
1425
- },
1426
- showpicture(val1, val2) {
1427
- //tag
1428
- if (val2 == '气量异常差值' || val2 == '金额异常差值') {
1429
- return
1430
- }
1431
- for (let i = 0; i < this.devicesAll.length; i++) {
1432
- for (let j = 0; j < this.devicesAll[i].length; j++) {
1433
- if (this.devicesAll[i][j].f_device_type == val1) {
1434
- for (let k = 0; k < this.devicesAll[i][j].f_items.length; k++) {
1435
- if (this.devicesAll[i][j].f_items[k].f_item_name == val2) {
1436
- if (!this.devicesAll[i][j].f_items[k].f_is_defect) {
1437
- return false
1438
- } else {
1439
- this.showimg1 = this.devicesAll[i][j].f_items[k].f_path
1440
- this.showimg2 = this.devicesAll[i][j].f_items[k].f_second_path
1441
- this.otherDarginShowImgs = []
1442
- for (let l = 0; l < this.hiddenDangerImgNumber; l++) {
1443
- let img = {path: ''}
1444
- if (this.devicesAll[i][j].f_items[k]['f_p' + (l + 1) + '_path']) {
1445
- img.path = this.devicesAll[i][j].f_items[k]['f_p' + (l + 1) + '_path'] + '?' + Math.random()
1446
- this.otherDarginShowImgs.push(img)
1447
- }
1448
- }
1449
- this.picturename = '隐患照片'
1450
- this.imgshow = true
1451
- return true
1452
- }
1453
- }
1454
- }
1455
-
1456
- }
1457
- }
1458
- }
1459
- },
1460
- isred(val1, val2) {
1461
- //tag
1462
- if (val2 == '气量异常差值' || val2 == '金额异常差值') {
1463
- return
1464
- }
1465
- for (let i = 0; i < this.devicesAll.length; i++) {
1466
- for (let j = 0; j < this.devicesAll[i].length; j++) {
1467
- if (this.devicesAll[i][j].f_device_type == val1) {
1468
- for (let k = 0; k < this.devicesAll[i][j].f_items.length; k++) {
1469
- if (this.devicesAll[i][j].f_items[k].f_item_name == val2) {
1470
- if (!this.devicesAll[i][j].f_items[k].f_is_defect) {
1471
- return false
1472
- } else {
1473
- return true
1474
- }
1475
- }
1476
- }
1477
-
1478
- }
1479
- }
1480
- }
1481
- },
1482
- showpicture2() {
1483
- this.imgshow2 = true
1484
- },
1485
- getDeviceValue(val1, val2) {
1486
- let aa = ''
1487
- for (let i = 0; i < this.devicesAll.length; i++) {
1488
- for (let j = 0; j < this.devicesAll[i].length; j++) {
1489
- if (this.devicesAll[i][j].f_device_type == val1) {
1490
- for (let k = 0; k < this.devicesAll[i][j].f_items.length; k++) {
1491
- if (this.devicesAll[i][j].f_items[k].f_item_name == val2) {
1492
- if (this.devicesAll[i][j].f_items[k].f_item_lists[0]) {
1493
- for (let l = 0; l < this.devicesAll[i][j].f_items[k].f_item_lists.length; l++) {
1494
- let val = this.devicesAll[i][j].f_items[k].f_item_lists[l].f_item_value
1495
- aa += (val === null? '空' : val) + ' '
1496
- }
1497
- if(isEmpty(aa)){
1498
- return '无'
1499
- }
1500
- return aa
1501
- }
1502
- }
1503
- }
1504
-
1505
- }
1506
- }
1507
- }
1508
-
1509
- },
1510
- getDevicePath(val1, val2) {
1511
- for (let i = 0; i < this.devicesAll.length; i++) {
1512
- for (let j = 0; j < this.devicesAll[i].length; j++) {
1513
- if (this.devicesAll[i][j].f_device_type == val1) {
1514
- for (let k = 0; k < this.devicesAll[i][j].f_items.length; k++) {
1515
- if (this.devicesAll[i][j].f_items[k].f_item_name == val2) {
1516
- return this.devicesAll[i][j].f_items[k].f_path
1517
- }
1518
- }
1519
-
1520
- }
1521
- }
1522
- }
1523
-
1524
- },
1525
- getDeviceAll() {
1526
- let keyall = Object.keys(this.data)
1527
- for (let i = 0; i < keyall.length; i++) {
1528
- //tag)
1529
- if ((keyall[i].startsWith('f_devices') || keyall[i].startsWith('devices')) && keyall[i] != 'deviceundefined') {
1530
- this.devicesAll.push(this.data[keyall[i]])
1531
- //tag
1532
- }
1533
- }
1534
- //tag
1535
- //tag)
1536
- this.devicesCollect()
1537
-
1538
- },
1539
-
1540
- back() {
1541
- if (this.role == 'inspect') {
1542
- if (!this.isStrat) {
1543
- this.$back()
1544
- return
1545
- } else {
1546
- this.savePaper(true).then(() => {
1547
- this.$back()
1548
- this.isStrat = false
1549
- })
1550
- }
1551
- } else {
1552
- this.$back()
1553
- }
1554
- },
1555
- checkIsStart() {
1556
- alert('asdad')
1557
- return
1558
- },
1559
-
1560
- viewPic(fileName) {
1561
- //tag
1562
- if (this.role == 'view') {
1563
- if (!fileName.endsWith('nopic.png')) {
1564
- this.pic_to_be_viewed = fileName
1565
- this.showModal = true
1566
- }
1567
- } else {
1568
- HostApp.viewPic(fileName)
1569
- }
1570
- },
1571
- tick() {
1572
- this.timer = null
1573
- this.data.f_offsite_time = Util.toStandardTimeString()
1574
- this.timer = window.setTimeout(this.tick, 1000)
1575
- },
1576
- getRepairState() {
1577
- let repaired = true
1578
- this.data.f_defects.forEach((defect) => {
1579
- repaired = repaired & (defect.f_ratification == '已处理')
1580
- })
1581
- return repaired
1582
- },
1583
- verifyRepairDefects() {
1584
- this.data.f_repair_date = Util.toStandardTimeString()
1585
- this.data.f_repaired = this.getRepairState() ? '已修' : '在修'
1586
- },
1587
- genuineSave(saveOnly) {
1588
- HostApp.__this__.save(saveOnly)
1589
- if (!saveOnly)
1590
- HostApp.__this__.disableTimer()
1591
- HostApp.__callback__ = null
1592
- HostApp.__this__ = null
1593
- },
1594
- setUrgency() {
1595
- this.data.f_defect_urgency = 'Z'
1596
- let that = this
1597
- this.data.f_defects.forEach(function (defect) {
1598
- if (that.data.f_defect_urgency > defect.f_defect_level.charAt(0))
1599
- that.data.f_defect_urgency = defect.f_defect_level.charAt(0)
1600
- })
1601
- if (this.data.f_defect_urgency == 'Z')
1602
- this.data.f_defect_urgency = null
1603
- },
1604
- disableTimer() {
1605
- if (this.timer) {
1606
- window.clearTimeout(this.timer)
1607
- this.timer = null
1608
- }
1609
- },
1610
- loaded(paper) {
1611
- if (!paper.hasOwnProperty('id')) {
1612
- this.$showMessage("该安检单在手机上已经不存在,可能是卸载过程序。可以进入重新安检,或返回安检计划。")
1613
- this.init()
1614
- } else {
1615
- Util.booleanFilter(paper)
1616
- HostApp.__this__.$set('data', paper)
1617
- HostApp.__this__.$goto('paper-state', {}, 'paper-router')
1618
- // 如果打回重检则重新计时
1619
- //tag
1620
- if (HostApp.__this__.role == 'inspect'
1621
- && HostApp.__this__.data.f_approved
1622
- && HostApp.__this__.data.f_approved == '打回') {
1623
- //tag
1624
- HostApp.__this__.data.f_onsite_time = Util.toStandardTimeString()
1625
- HostApp.__this__.tick()
1626
- }
1627
- }
1628
- HostApp.__callback__ = null
1629
- HostApp.__this__ = null
1630
- },
1631
- S4() {
1632
- return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
1633
- },
1634
- init() {
1635
- this.data.f_noplan_item_id = this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4()
1636
- this.data.ename = Vue.user.ename
1637
- this.data.f_outlets = Vue.user.f_parentname
1638
- this.data.f_meetunit = Vue.user.orgpathnames
1639
- this.data.orgpathstr = Vue.user.orgpathstr
1640
- this.data.f_check_item_id = this.item.id
1641
- this.data.f_check_plan_id = this.f_plan_id
1642
- this.data.f_checker_id = Vue.user.id
1643
- this.data.f_checker_name = Vue.user.name
1644
- this.data.f_check_type = this.item.f_user_type
1645
- this.data.f_subcompany = this.item.f_subcompany
1646
- this.data.f_approved = this.item.f_approved
1647
- this.data.f_repair_approved = this.item.f_repair_approved
1648
- this.data.f_no_checkplan = this.item.f_no_checkplan
1649
- this.data.f_approved = this.item.f_approved
1650
- this.data.f_filialeid = this.item.f_filialeid
1651
- this.data.f_orgstr = this.item.f_orgstr
1652
- this.data.version = this.item.version
1653
- this.$set('data.f_meters', this.item.f_plan_meters)
1654
- this.$set('data.f_userinfo_code', this.item.f_userinfo_code)
1655
- // 安检状态
1656
- this.$set('data.f_entry_status', '入户')
1657
- this.$set('data.f_usegas', '已使用')
1658
- this.$set('data.f_state', this.item.f_state)
1659
- // 用户信息
1660
- this.$set('data.f_user_name', this.item.f_user_name)
1661
- this.$set('data.f_user_phone', this.item.f_user_phone)
1662
- this.$set('data.f_userinfoid', this.item.f_userinfoid)
1663
- this.$set('data.f_address', this.item.f_address)
1664
- this.$set('data.f_card_id', this.item.f_card_id)
1665
- this.$set('data.f_area', this.item.f_area)
1666
- this.$set('data.f_street', this.item.f_street)
1667
- this.$set('data.f_room', this.item.f_room)
1668
- this.$set('data.f_building', this.item.f_building)
1669
- this.$set('data.f_unit', this.item.f_unit)
1670
- this.$set('data.f_floor', this.item.f_floor)
1671
- this.$set('data.f_residential_area', this.item.f_residential_area)
1672
- this.$set('data.f_idnumber', this.item.f_idnumber)
1673
- this.$set('data.f_comments', this.item.f_comments)
1674
- this.$set('data.f_userproperties', this.item.f_userproperties)
1675
- // 处置方式
1676
- this.$set('data.f_no_gas_device', false)
1677
- this.$set('data.f_close_valve', false)
1678
- this.$set('data.f_unload_battery', false)
1679
- if (this.data.f_check_item_id == '' && this.item.f_no_checkplan == '无计划安检') {
1680
- this.data.f_check_item_id = this.data.f_noplan_item_id
1681
- }
1682
-
1683
- //房屋结构
1684
- // this.$set('data.f_room_style', '多层')
1685
- //供暖方式
1686
- // this.$set('data.f_heating_style', '热力公司集中供暖')
1687
- if (this.item.f_plan_meters) {
1688
- for (let de in this.devices) {
1689
- this.$set('data.device' + this.devices[de].n, [])
1690
- for (let i = 0; i < this.item.f_plan_meters.length; i++) {
1691
- if (this.item.f_plan_meters[i].f_meter_type) {
1692
- if (this.devices[de].device == "燃气表" && this.item.f_plan_meters[i].f_meter_type.indexOf('机表') > 0) {
1693
- delete this.config['燃气表']['items']['累计购气量']
1694
- this.data['device' + this.devices[de].n].push({
1695
- f_device_type: "燃气表",
1696
- f_items: [{
1697
- f_defect_level: null,
1698
- f_device_id: "",
1699
- f_is_defect: "",
1700
- f_item_name: "表品牌",
1701
- f_item_value: this.item.f_plan_meters[i].f_aliasname,
1702
- f_path: "",
1703
- type: "string"
1704
- },
1705
- {
1706
- f_defect_level: null,
1707
- f_device_id: "",
1708
- f_is_defect: "",
1709
- f_item_name: "位置",
1710
- f_item_value: this.item.f_plan_meters[i].f_weizhi,
1711
- f_path: "",
1712
- type: "selector"
1713
- },
1714
- {
1715
- f_defect_level: null,
1716
- f_device_id: "",
1717
- f_is_defect: "",
1718
- f_item_name: "表号",
1719
- f_item_value: this.item.f_plan_meters[i].f_meter_no,
1720
- f_path: "",
1721
- type: "number"
1722
- },
1723
- {
1724
- f_defect_level: null,
1725
- f_device_id: "",
1726
- f_is_defect: "",
1727
- f_item_name: "表封号",
1728
- f_item_value: this.item.f_plan_meters[i].f_metertitles,
1729
- f_path: "",
1730
- type: "number"
1731
- },
1732
- {
1733
- f_defect_level: null,
1734
- f_device_id: "",
1735
- f_is_defect: "",
1736
- f_item_name: "表型号",
1737
- f_item_value: this.item.f_plan_meters[i].f_diaphgram_size,
1738
- f_path: "",
1739
- type: "selector"
1740
- },
1741
- {
1742
- f_defect_level: null,
1743
- f_device_id: "",
1744
- f_is_defect: "",
1745
- f_item_name: "表底数",
1746
- f_item_value: this.item.f_plan_meters[i].f_prior_reading,
1747
- f_path: "",
1748
- type: "number"
1749
- }
1750
- ]
1751
- })
1752
- } else if (this.devices[de].device == "燃气表") {
1753
- delete this.config['燃气表']['items']['表底数']
1754
- this.data['device' + this.devices[de].n].push({
1755
- f_device_type: "燃气表",
1756
- f_items: [{
1757
- f_defect_level: null,
1758
- f_device_id: "",
1759
- f_is_defect: "",
1760
- f_item_name: "表品牌",
1761
- f_item_value: this.item.f_plan_meters[i].f_aliasname,
1762
- f_path: "",
1763
- type: "string"
1764
- },
1765
- {
1766
- f_defect_level: null,
1767
- f_device_id: "",
1768
- f_is_defect: "",
1769
- f_item_name: "位置",
1770
- f_item_value: this.item.f_plan_meters[i].f_weizhi,
1771
- f_path: "",
1772
- type: "selector"
1773
- },
1774
- {
1775
- f_defect_level: null,
1776
- f_device_id: "",
1777
- f_is_defect: "",
1778
- f_item_name: "表号",
1779
- f_item_value: this.item.f_plan_meters[i].f_meter_no,
1780
- f_path: "",
1781
- type: "number"
1782
- },
1783
- {
1784
- f_defect_level: null,
1785
- f_device_id: "",
1786
- f_is_defect: "",
1787
- f_item_name: "表封号",
1788
- f_item_value: this.item.f_plan_meters[i].f_metertitles,
1789
- f_path: "",
1790
- type: "number"
1791
- },
1792
- {
1793
- f_defect_level: null,
1794
- f_device_id: "",
1795
- f_is_defect: "",
1796
- f_item_name: "表型号",
1797
- f_item_value: this.item.f_plan_meters[i].f_diaphgram_size,
1798
- f_path: "",
1799
- type: "selector"
1800
- },
1801
- {
1802
- f_defect_level: null,
1803
- f_device_id: "",
1804
- f_is_defect: "",
1805
- f_item_name: "累计购气量",
1806
- f_item_value: this.item.f_plan_meters[i].f_prior_reading,
1807
- f_path: "",
1808
- type: "number"
1809
- }
1810
- ]
1811
- })
1812
- }
1813
- }
1814
- }
1815
- }
1816
- }
1817
-
1818
- this.$goto('paper-state', {}, 'paper-router')
1819
- },
1820
- extend(initalObj, finalObj) {
1821
- var obj = finalObj || {};
1822
- for (var i in initalObj) {
1823
- var prop = initalObj[i];
1824
-
1825
- // 避免相互引用对象导致死循环,如initalObj.a = initalObj的情况
1826
- if (prop === obj) {
1827
- continue;
1828
- }
1829
-
1830
- if (typeof prop === 'object') {
1831
- if (obj[i]) {
1832
- this.extend(obj[i], prop)
1833
- } else {
1834
- obj[i] = prop;
1835
- }
1836
- }
1837
- }
1838
- return obj;
1839
- },
1840
- //获取当前时间
1841
- getNowFormatDate() {
1842
- var date = new Date();
1843
- var seperator1 = "-";
1844
- var seperator2 = ":";
1845
- var month = date.getMonth() + 1;
1846
- var strDate = date.getDate();
1847
- if (month >= 1 && month <= 9) {
1848
- month = "0" + month;
1849
- }
1850
- if (strDate >= 0 && strDate <= 9) {
1851
- strDate = "0" + strDate;
1852
- }
1853
- var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
1854
- + " " + date.getHours() + seperator2 + date.getMinutes()
1855
- + seperator2 + date.getSeconds();
1856
- return currentdate;
1857
- }
1858
- },
1859
- ready() {
1860
-
1861
- if (this.item.f_check_type == '非民用'){
1862
- this.config = this.config3
1863
- }
1864
- setTimeout(() => {
1865
- this.loading = false;
1866
- }, 10000)
1867
- this.putDevices()
1868
- this.showAudit()
1869
- this.newConfig = this.$appdata.getSingleValue('配置中心获取文件') ? this.$appdata.getSingleValue('配置中心获取文件') : '否';
1870
- if (this.item.f_state != '未检' || this.item.f_no_checkplan == '无计划安检' || this.item.f_no_checkplan == '复检') {
1871
- if (this.role != 'inspect') {
1872
- let that = this
1873
- let id
1874
- if (this.role == 'view') {
1875
- id = this.item.id
1876
- } else if (this.role == 'androidview') {
1877
- id = this.item.f_paper_id
1878
- }
1879
- this.$resetpost(`rs/path/getUserinfomation`, {data: {condition: `id = '${id}'`}}).then((respanse) => {
1880
- //tag
1881
- if (respanse.data.length != 0) {
1882
- // 包含 其它 特殊处理的数组
1883
- // 对应位置
1884
- that.data = Object.assign(that.data, respanse.data[0])
1885
- if (respanse.data[0].f_devices) {
1886
- for (let da in that.devices) {
1887
- that.$set('data.device' + that.devices[da].n, [])
1888
- }
1889
- respanse.data[0].f_devices.forEach((item) => {
1890
- for (let de in that.devices) {
1891
- if (that.devices[de].device == item.f_device_type) {
1892
- item.f_items.forEach((f_item) => {
1893
- //tag
1894
- //tag
1895
- let itemValues = []
1896
- f_item.f_item_lists.forEach((tempItem) => {
1897
- //tag
1898
- if (tempItem.f_item_value !== 'null') {
1899
- itemValues.push(tempItem.f_item_value)
1900
- }
1901
- })
1902
- f_item.f_item_value = itemValues
1903
- })
1904
- that.data['device' + that.devices[de].n].push({
1905
- f_device_type: item.f_device_type,
1906
- f_items: item.f_items
1907
- })
1908
- }
1909
- }
1910
- })
1911
- }
1912
- Util.replaceFalse(that.data)
1913
- Util.booleanFilter(that.data)
1914
- if (this.role == 'view') {
1915
- Util.ratifyPics(that.data)
1916
- Util.ratifyPics(that.picture)
1917
- } else {
1918
- Util.androidRatifyPics(that.data, this.$androidUtil.getProxyUrl())
1919
- }
1920
- //tag
1921
- }
1922
- // this.$goto('paper-message-blank', {userinfo:this.data,devices:this.devices,config:this.config,role:this.role}, 'self')
1923
- this.isshow = true
1924
- asyncReady(this).then(() => {
1925
- //tag
1926
- //tag)
1927
- console.log('Vue.config.safecheck.DevicesConfig', Vue.config.safecheck.DevicesConfig)
1928
- if (this.data.f_check_type == '民用') {
1929
- this.deviceconfig = Vue.config.safecheck.DevicesConfig
1930
- if (typeof this.deviceconfig === 'string') {
1931
- this.deviceconfig = JSON.parse(this.deviceconfig)
1932
- }
1933
- //tag)
1934
- } else if (this.data.f_check_type == '非民用') {
1935
- this.deviceconfig = Vue.config.safecheck.DevicesSetConfig
1936
- if (typeof this.deviceconfig === 'string') {
1937
- this.deviceconfig = JSON.parse(this.deviceconfig)
1938
- }
1939
- //tag)
1940
- }
1941
- if (this.data.f_collection_type == '按金额') {
1942
- if (this.deviceconfig["燃气表"]){
1943
- let aaa = Object.assign({}, this.config2["燃气表"].items, this.deviceconfig["燃气表"].items)
1944
- this.deviceconfig["燃气表"].items = aaa
1945
- }
1946
- } else {
1947
- if (this.deviceconfig["燃气表"]){
1948
- let aaa = Object.assign({}, this.config["燃气表"].items, this.deviceconfig["燃气表"].items)
1949
- this.deviceconfig["燃气表"].items = aaa
1950
- }
1951
- }
1952
- this.deviceconfig2 = ObjConfig.getObjConfig(this.deviceconfig)
1953
- this.deviceconfig2[0].items = jsonSort(this.deviceconfig2[0].items, "index")
1954
- this.deviceconfig2[1].items = jsonSort(this.deviceconfig2[1].items, "index")
1955
- this.deviceconfig2 = jsonSort(this.deviceconfig2, "index")
1956
- this.getDeviceAll()
1957
- })
1958
- }
1959
- ).catch(
1960
- (respanse) => {
1961
- //tag
1962
- alert('查找安检单失败')
1963
- this.loading = false
1964
- })
1965
- }
1966
- }
1967
-
1968
- },
1969
- watch: {
1970
- // 'isUpload'(val){
1971
- // //tag
1972
- // }
1973
- },
1974
- destroyed() {
1975
- //tag
1976
- this.disableTimer()
1977
- }
1978
- }
1979
-
1980
- </script>
1981
- <style scoped>
1982
- .table-striped thead tr th {
1983
- background-color: rgb(223, 237, 251);
1984
- padding: 10px;
1985
- border-left: solid 0px #dae4f2;
1986
- border-top: solid 1px #dae4f2;
1987
- border-right: none;
1988
- border-bottom: none;
1989
- text-align: center;
1990
- color: black;
1991
- }
1992
- </style>
1
+ <style scoped id="printStyle">
2
+ .img {
3
+ border: 1px solid #9773ed;
4
+ width: auto;
5
+ height: auto;
6
+ float: left;
7
+ text-align: center;
8
+ margin: 6px;
9
+ }
10
+
11
+ img {
12
+ margin: 6px;
13
+ }
14
+
15
+
16
+ .container {
17
+ margin: 10px auto;
18
+ width: 80%;
19
+ height: auto;
20
+ }
21
+
22
+ div::-webkit-scrollbar {
23
+ width: 0 !important;
24
+ height: 0 !important;
25
+ }
26
+
27
+ div {
28
+ -ms-overflow-style: none;
29
+ overflow: -moz-scrollbars-none;
30
+ }
31
+
32
+ .divmask {
33
+ pointer-events: none;
34
+ }
35
+
36
+ .app-header {
37
+ border-radius: 50%;
38
+ background: rgba(73, 158, 223, 0.4);
39
+ color: #FFF;
40
+ padding: 20px;
41
+ text-align: center;
42
+ font-size: 1.2em;
43
+ z-index: 10;
44
+ opacity: 0.5;
45
+ bottom: 50px;
46
+ margin-top: -20px;
47
+ position: absolute;
48
+ top: 10%;
49
+ right: 2%;
50
+ height: 8%;
51
+ }
52
+ </style>
53
+
54
+ <template>
55
+ <div class="basic-main" style="height: 100%">
56
+ <div class="page-header app-header auto" style="padding: 15px;margin-right: 10px;right: 0%;height: 7%">
57
+ <div @click="back()">
58
+ <img src="../../../assets/back.png" style="margin: 0px"/>
59
+ </div>
60
+ </div>
61
+ <div v-show="showPdfDownload" class="page-header app-header auto"
62
+ style="padding: 15px;margin-right: 3.7%;right: 0%;height: 7%">
63
+ <div @click="exportToPDF()">
64
+ <img src="../../../assets/下载_.png" style="margin: 0px;width: 30px"/>
65
+ </div>
66
+ </div>
67
+ <work-busy :is-busy="loading"></work-busy>
68
+ <div class="container-fluid" style="overflow: scroll">
69
+ <div class="row">
70
+ <div class="col-md-5" style="margin-right: 2%;margin-left: 2%;height: 100%;overflow: scroll">
71
+ <div style="width: 100%;margin: auto">
72
+ <table class="table table-striped table-bordered" style="margin-bottom: 6px;margin-top: 35px">
73
+ <thead>
74
+ <tr>
75
+ <th colspan="6" style="text-align: center">用户基本信息</th>
76
+ </tr>
77
+ </thead>
78
+ <tbody>
79
+ <tr>
80
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户编号:</td>
81
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_userinfo_code }}</td>
82
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户名称:</td>
83
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_user_name }}</td>
84
+ </tr>
85
+ <tr>
86
+ <td style="text-align: center;border: #E9E9E9 solid 1px">证件号码:</td>
87
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_idnumber }}</td>
88
+ <td style="text-align: center;border: #E9E9E9 solid 1px">用户类型:</td>
89
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_check_type }}</td>
90
+ </tr>
91
+ <tr>
92
+ <td style="text-align: center;border: #E9E9E9 solid 1px">用户电话:</td>
93
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_user_phone }}</td>
94
+ <td style="text-align: center;border: #E9E9E9 solid 1px">区 / 县:</td>
95
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_slice_area }}</td>
96
+ </tr>
97
+ <tr>
98
+ <td style="text-align: center;border: #E9E9E9 solid 1px">街 道:</td>
99
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_street }}</td>
100
+ <td style="text-align: center;border: #E9E9E9 solid 1px" v-if="paperdata.f_check_type=='民用'">楼 号:</td>
101
+ <td style="text-align: center;border: #E9E9E9 solid 1px" v-if="paperdata.f_check_type=='民用'">{{ paperdata.f_building }}</td>
102
+ </tr>
103
+ <tr>
104
+ <td style="text-align: center;border: #E9E9E9 solid 1px" v-if="paperdata.f_check_type=='民用'">单 元:</td>
105
+ <td style="text-align: center;border: #E9E9E9 solid 1px" v-if="paperdata.f_check_type=='民用'">{{ paperdata.f_unit }}</td>
106
+ <td style="text-align: center;border: #E9E9E9 solid 1px" v-if="paperdata.f_check_type=='民用'">楼 层:</td>
107
+ <td style="text-align: center;border: #E9E9E9 solid 1px" v-if="paperdata.f_check_type=='民用'">{{ paperdata.f_floor }}</td>
108
+ </tr>
109
+ <tr>
110
+ <td style="text-align: center;border: #E9E9E9 solid 1px" v-if="paperdata.f_check_type=='民用'">门 牌 号 :</td>
111
+ <td style="text-align: center;border: #E9E9E9 solid 1px" v-if="paperdata.f_check_type=='民用'">{{ paperdata.f_room }}</td>
112
+ <td style="text-align: center;border: #E9E9E9 solid 1px" >用户性质:</td>
113
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_userproperties }}</td>
114
+ </tr>
115
+ <tr>
116
+ <td style="text-align: center;border: #E9E9E9 solid 1px">备注信息:</td>
117
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_comments }}</td>
118
+ <td style="text-align: center;border: #E9E9E9 solid 1px">小区名称:</td>
119
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_residential_area }}</td>
120
+ </tr>
121
+ <tr>
122
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">详细住址:</td>
123
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_address }}</td>
124
+ </tr>
125
+ </tbody>
126
+ </table>
127
+ <table class="table table-striped table-bordered" style="margin-top: 40px"
128
+ v-show="paperdata.f_entry_status=='入户'">
129
+ <thead>
130
+ <tr>
131
+ <th colspan="4" style="text-align: center">用户安检概况</th>
132
+ </tr>
133
+ </thead>
134
+ <tbody>
135
+ <tr>
136
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">到达时间:</td>
137
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_onsite_time }}</td>
138
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">离开时间:</td>
139
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_offsite_time }}</td>
140
+ </tr>
141
+ <tr>
142
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">入户状态:</td>
143
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_entry_status }}</td>
144
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">燃气使用:</td>
145
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_usegas }}</td>
146
+ </tr>
147
+ <tr>
148
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">用户满意度:</td>
149
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">{{
150
+ paperdata.f_client_evaluation
151
+ }}
152
+ </td>
153
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">安检结果:</td>
154
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;"
155
+ :style="{'color':ajresult=='有隐患'?'red':''}">{{ ajresult }}
156
+ </td>
157
+ </tr>
158
+ <tr>
159
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">备注:</td>
160
+ <td colspan="3"
161
+ style="text-align: center;border: #E9E9E9 solid 1px;word-wrap:break-word;word-break:break-all;width:87%">
162
+ {{ paperdata.f_repair_approved_note }}
163
+ </td>
164
+ </tr>
165
+ <tr>
166
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">隐患通知单单号:</td>
167
+ <td colspan="3"
168
+ style="text-align: center;border: #E9E9E9 solid 1px;word-wrap:break-word;word-break:break-all;width:87%">
169
+ {{ paperdata.f_repairorder_id }}
170
+ </td>
171
+ </tr>
172
+ <tr>
173
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">隐患详情:</td>
174
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px;word-wrap:break-word;word-break:break-all;width:87%">
175
+ <span v-for="deviceCollect in deviceCollects">
176
+ <span class="li-font">
177
+ {{ deviceCollect.name }}:{{ deviceCollect.value }}&nbsp;&nbsp;&nbsp;
178
+ </span>
179
+ <br>
180
+ <span v-if="deviceCollect.value == '有隐患'">
181
+ <lable>隐患:</lable>
182
+ <span v-for="val in deviceCollect.devices">{{ val }}</span>
183
+ <br>
184
+ </span>
185
+ </span>
186
+ </td>
187
+ </tr>
188
+
189
+ </tbody>
190
+ </table>
191
+ <table class="table table-striped table-bordered" style="margin-top: 40px"
192
+ v-show="paperdata.f_entry_status!='入户'">
193
+ <thead>
194
+ <tr>
195
+ <th colspan="4" style="text-align: center">用户安检概况</th>
196
+ </tr>
197
+ </thead>
198
+ <tbody>
199
+ <tr>
200
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">到达时间:</td>
201
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_onsite_time }}</td>
202
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">离开时间:</td>
203
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_offsite_time }}</td>
204
+ </tr>
205
+ <tr>
206
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">入户状态:</td>
207
+ <td colspan="2" style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
208
+ {{ paperdata.f_entry_status }}
209
+ </td>
210
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">
211
+ <button-link style="color: black" type="button" class="btn btn-link" @click="showpicture2()">
212
+ {{ dev.lname }}
213
+ 查看{{ data.f_entry_status }}照片
214
+ </button-link>
215
+ </td>
216
+ </tr>
217
+ <tr>
218
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">到访单号:</td>
219
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
220
+ {{ paperdata.f_visit_number }}
221
+ </td>
222
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">备注:</td>
223
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
224
+ {{ paperdata.f_remark }}
225
+ </td>
226
+ </tr>
227
+ <tr>
228
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">备注信息:</td>
229
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px;width: 50%">
230
+ {{ paperdata.f_remark }}
231
+ </td>
232
+ </tr>
233
+
234
+ </tbody>
235
+ </table>
236
+ <table class="table table-striped table-bordered" style="margin-top: 40px"
237
+ v-show="item.f_no_checkplan == '复检'">
238
+ <thead>
239
+ <tr>
240
+ <th colspan="4" style="text-align: center">上次安检情况</th>
241
+ </tr>
242
+ </thead>
243
+ <tbody>
244
+ <tr>
245
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">上次安检到达时间:</td>
246
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{
247
+ lastCheckData.f_onsite_time
248
+ }}
249
+ </td>
250
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">上次安检离开时间:</td>
251
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{
252
+ lastCheckData.f_offsite_time
253
+ }}
254
+ </td>
255
+ </tr>
256
+ <tr>
257
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">上次安检员:</td>
258
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
259
+ {{ lastCheckData.f_checker_name }}
260
+ </td>
261
+ </tr>
262
+ <tr>
263
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">安检结果:</td>
264
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
265
+ {{ lastCheckData.f_defect_text }}
266
+ </td>
267
+ </tr>
268
+
269
+ </tbody>
270
+ </table>
271
+ <table class="table table-striped table-bordered" style="margin-top: 35px"
272
+ v-show="paperdata.f_entry_status=='入户' && paperdata.f_usegas == '未用气'">
273
+ <thead>
274
+ <tr>
275
+ <th style="text-align: center">未用气照片</th>
276
+ </tr>
277
+ </thead>
278
+ <tbody>
279
+ <tr>
280
+ <td style="margin: auto;text-align: center">
281
+ <div class="container" style="max-width: 550px;background: #FFFFFF">
282
+ <div class="img">
283
+ <img-self-plus :src="paperdata.f_nongasuser_path" style="float: left" width="150"
284
+ height="200"></img-self-plus>
285
+ </div>
286
+ </div>
287
+ </td>
288
+ </tr>
289
+ </tbody>
290
+ </table>
291
+ <table class="table table-striped table-bordered" style="margin-top: 35px"
292
+ v-show="paperdata.f_entry_status=='入户'">
293
+ <thead>
294
+ <tr>
295
+ <th style="text-align: center">总体安检照片</th>
296
+ </tr>
297
+ </thead>
298
+ <tbody>
299
+ <tr>
300
+ <td style="margin: auto;text-align: center">
301
+ <div class="container" style="max-width: 550px;background: #FFFFFF">
302
+ <div class="img" v-for="img in paperdata.f_overall_imgs">
303
+ <img-self-plus :list="paperdata.f_overall_imgs " :src="img.f_overall_path" style="float: left"
304
+ width="150"
305
+ height="200"></img-self-plus>
306
+ </div>
307
+ </div>
308
+
309
+
310
+ </td>
311
+
312
+ </tr>
313
+ </tbody>
314
+ </table>
315
+ <table class="table table-striped table-bordered" style="width: 100%"
316
+ v-show="paperdata.f_entry_status=='入户' && (paperdata.f_sign_path || f_user_path) ">
317
+ <thead>
318
+ <tr>
319
+ <th style="text-align: center">用户签名照片</th>
320
+ </tr>
321
+ </thead>
322
+ <tbody>
323
+ <tr>
324
+ <td style="margin: auto;text-align: center" v-if="paperdata.f_sign_path">
325
+ <div class="container" style="max-width: 500px;background: #FFFFFF" >
326
+ <div class="img" style="float: none">
327
+ <img-self-plus :src="paperdata.f_sign_path" width="200" height="200"></img-self-plus>
328
+ </div>
329
+ </div>
330
+ </td>
331
+ <td style="margin: auto;text-align: center" v-if="f_user_path">
332
+ <div class="container" style="max-width: 550px;background: #FFFFFF" >
333
+ <div class="img" style="float: none">
334
+ <img-self-plus :src="'rs/image/file/'+f_user_path"
335
+ width="200"
336
+ height="200"></img-self-plus>
337
+ </div>
338
+ </div>
339
+ </td>
340
+ </tr>
341
+ </tbody>
342
+ </table>
343
+ <table class="table table-striped table-bordered"
344
+ v-show="paperdata.f_entry_status=='入户' && paperdata.f_defect_notified">
345
+ <thead>
346
+ <tr>
347
+ <th style="text-align: center">安检通知书/隐患整改通知书</th>
348
+ </tr>
349
+ </thead>
350
+ <tbody>
351
+ <tr>
352
+ <td style="margin: auto;text-align: center">
353
+ <div class="container" style="max-width: 500px;background: #FFFFFF">
354
+ <div class="img" style="float: none">
355
+ <img-self-plus :src="paperdata.f_notified_path" width="486" height="300"></img-self-plus>
356
+ </div>
357
+ </div>
358
+ </td>
359
+ </tr>
360
+ </tbody>
361
+ </table>
362
+ <table class="table table-striped table-bordered"
363
+ v-show="paperdata.f_entry_status=='入户'&& paperdata.f_video_path">
364
+ <thead>
365
+ <tr>
366
+ <th style="text-align: center">安检视频</th>
367
+ </tr>
368
+ </thead>
369
+ <tbody>
370
+ <tr>
371
+ <td style="margin: auto;text-align: center">
372
+ <div class="container" style="max-width: 500px;background: #FFFFFF">
373
+ <video width="320" height="200" controls v-if="paperdata.f_video_path">
374
+ <source :src="paperdata.f_video_path" type="video/mp4">
375
+ </video>
376
+ </div>
377
+ </td>
378
+ </tr>
379
+ </tbody>
380
+ </table>
381
+ <table class="table table-striped table-bordered"
382
+ v-show="item.f_recording1_path">
383
+ <thead>
384
+ <tr>
385
+ <th style="text-align: center">录音文件</th>
386
+ </tr>
387
+ </thead>
388
+ <tbody>
389
+ <tr>
390
+ <td style="margin: auto;text-align: center">
391
+ <div class="container" style="max-width: 500px;background: #FFFFFF">
392
+ <a class="button_spacing button_search-1"
393
+ :download="item.f_user_name+'-'+item.f_check_type+'-'+'录音文件.arm'"
394
+ :href="'rs/image/file/'+item.f_recording1_path">录音下载</a>
395
+ </div>
396
+ </td>
397
+ </tr>
398
+ </tbody>
399
+ </table>
400
+ </div>
401
+ </div>
402
+ <div class style="width: 1%;height: 100%;background-color: #F1F8FF;float: left;"></div>
403
+ <div class="col-md-6" style="height: 100%;overflow: scroll">
404
+ <div style="width: 95%;margin-left: 5%">
405
+ <table class="table table-striped table-bordered" v-for="config in deviceconfig2" style="margin-top: 35px">
406
+ <thead v-show="!(config.checkname!='燃气表'&&paperdata.f_entry_status!='入户')">
407
+ <tr>
408
+ <th style="text-align: center">{{ config.checkname }}</th>
409
+ </tr>
410
+ </thead>
411
+ <tbody v-show="!(config.checkname!='燃气表'&&paperdata.f_entry_status!='入户')">
412
+ <tr v-for="dev in config.items">
413
+ <td v-if="dev.type!='text' && dev.isshow != false">
414
+ <div class="row">
415
+ <div class="col-md-8" style="text-align: center;">
416
+ <label>
417
+ <button-link type="button" class="btn btn-link" @click="showpicture(config.checkname,dev.lname)"
418
+ :style="isred(config.checkname,dev.lname)?'color:red':'color:black'">
419
+ {{ dev.lname }}
420
+ </button-link>
421
+ </label>
422
+ </div>
423
+ <div class="col-md-4" style="text-align: center">
424
+ <label style="font-weight: normal"
425
+ v-if="dev.type!='picture'">{{
426
+ getDeviceValue(config.checkname, dev.lname) ? getDeviceValue(config.checkname, dev.lname) : '无'
427
+ }}</label>
428
+ <label style="font-weight: normal" v-if="dev.type=='picture'">
429
+ <div v-show="getDevicePath(config.checkname,dev.lname)">
430
+ <button-link style="color: black" type="button" class="btn btn-link"
431
+ @click="showpath(getDevicePath(config.checkname,dev.lname),dev.lname)">查看照片
432
+ </button-link>
433
+ </div>
434
+ <div v-show="!getDevicePath(config.checkname,dev.lname)">无照片</div>
435
+ </label>
436
+ </div>
437
+ </div>
438
+ </td>
439
+ <td v-if="dev.type==='text' && dev.isshow != false">
440
+ <label style="width: 100%;text-align: center">{{ dev.lname }}</label>
441
+ </td>
442
+ </tr>
443
+ </tbody>
444
+ </table>
445
+ <div v-show="showButton">
446
+ <button class="button_spacing button_search" @click="auditSuccesss()">通过</button>
447
+ <button class="button_spacing button_search" @click="auditFail()">不通过</button>
448
+ </div>
449
+ </div>
450
+ </div>
451
+
452
+ </div>
453
+ </div>
454
+ <div v-show="false">
455
+ <div class="container-fluid" id="toPdf" style="overflow: scroll">
456
+ <div class="row">
457
+ <div style="margin-right: 2%;margin-left: 2%;height: 100%;overflow: scroll">
458
+ <div style="width: 100%;margin: auto">
459
+ <table class="table table-striped table-bordered" style="margin-bottom: 6px;margin-top: 35px">
460
+ <thead>
461
+ <tr>
462
+ <th colspan="6" style="text-align: center">用户基本信息</th>
463
+ </tr>
464
+ </thead>
465
+ <tbody>
466
+ <tr>
467
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户编号:</td>
468
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{
469
+ paperdata.f_userinfo_code
470
+ }}
471
+ </td>
472
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户名称:</td>
473
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_user_name }}</td>
474
+ </tr>
475
+ <tr>
476
+ <td style="text-align: center;border: #E9E9E9 solid 1px">证件号码:</td>
477
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_idnumber }}</td>
478
+ <td style="text-align: center;border: #E9E9E9 solid 1px">用户类型:</td>
479
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_check_type }}</td>
480
+ </tr>
481
+ <tr>
482
+ <td style="text-align: center;border: #E9E9E9 solid 1px">用户电话:</td>
483
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_user_phone }}</td>
484
+ <td style="text-align: center;border: #E9E9E9 solid 1px">区 / 县:</td>
485
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_slice_area }}</td>
486
+ </tr>
487
+ <tr>
488
+ <td style="text-align: center;border: #E9E9E9 solid 1px">街 道:</td>
489
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_street }}</td>
490
+ <td style="text-align: center;border: #E9E9E9 solid 1px" v-if="paperdata.f_check_type=='民用'">楼 号:</td>
491
+ <td style="text-align: center;border: #E9E9E9 solid 1px" v-if="paperdata.f_check_type=='民用'">{{ paperdata.f_building }}</td>
492
+ </tr>
493
+ <tr>
494
+ <td style="text-align: center;border: #E9E9E9 solid 1px" v-if="paperdata.f_check_type=='民用'">单 元:</td>
495
+ <td style="text-align: center;border: #E9E9E9 solid 1px" v-if="paperdata.f_check_type=='民用'">{{ paperdata.f_unit }}</td>
496
+ <td style="text-align: center;border: #E9E9E9 solid 1px" v-if="paperdata.f_check_type=='民用'">楼 层:</td>
497
+ <td style="text-align: center;border: #E9E9E9 solid 1px" v-if="paperdata.f_check_type=='民用'">{{ paperdata.f_floor }}</td>
498
+ </tr>
499
+ <tr>
500
+ <td style="text-align: center;border: #E9E9E9 solid 1px" v-if="paperdata.f_check_type=='民用'">门 牌 号 :</td>
501
+ <td style="text-align: center;border: #E9E9E9 solid 1px" v-if="paperdata.f_check_type=='民用'">{{ paperdata.f_room }}</td>
502
+ <td style="text-align: center;border: #E9E9E9 solid 1px">用户性质:</td>
503
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_userproperties }}</td>
504
+ </tr>
505
+ <tr>
506
+ <td style="text-align: center;border: #E9E9E9 solid 1px">备注信息:</td>
507
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_comments }}</td>
508
+ <td style="text-align: center;border: #E9E9E9 solid 1px">小区名称:</td>
509
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_residential_area }}</td>
510
+ </tr>
511
+ <tr>
512
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">详细住址:</td>
513
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_address }}</td>
514
+ </tr>
515
+ </tbody>
516
+ </table>
517
+ <table class="table table-striped table-bordered" style="margin-top: 40px"
518
+ v-show="paperdata.f_entry_status=='入户'">
519
+ <thead>
520
+ <tr>
521
+ <th colspan="4" style="text-align: center">用户安检概况</th>
522
+ </tr>
523
+ </thead>
524
+ <tbody>
525
+ <tr>
526
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">到达时间:</td>
527
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_onsite_time }}</td>
528
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">离开时间:</td>
529
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{
530
+ paperdata.f_offsite_time
531
+ }}
532
+ </td>
533
+ </tr>
534
+ <tr>
535
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">入户状态:</td>
536
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{
537
+ paperdata.f_entry_status
538
+ }}
539
+ </td>
540
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">燃气使用:</td>
541
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_usegas }}</td>
542
+ </tr>
543
+ <tr>
544
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">用户满意度:</td>
545
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">{{
546
+ paperdata.f_client_evaluation
547
+ }}
548
+ </td>
549
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">安检结果:</td>
550
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;"
551
+ :style="{'color':ajresult=='有隐患'?'red':''}">{{ ajresult }}
552
+ </td>
553
+ </tr>
554
+ <tr>
555
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">备注:</td>
556
+ <td colspan="3"
557
+ style="text-align: center;border: #E9E9E9 solid 1px;word-wrap:break-word;word-break:break-all;width:87%">
558
+ {{ paperdata.f_repair_approved_note }}
559
+ </td>
560
+ </tr>
561
+ <tr>
562
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">隐患通知单单号:</td>
563
+ <td colspan="3"
564
+ style="text-align: center;border: #E9E9E9 solid 1px;word-wrap:break-word;word-break:break-all;width:87%">
565
+ {{ paperdata.f_repairorder_id }}
566
+ </td>
567
+ </tr>
568
+ <tr>
569
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">隐患详情:</td>
570
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px;word-wrap:break-word;word-break:break-all;width:87%">
571
+ <span v-for="deviceCollect in deviceCollects">
572
+ <span class="li-font">
573
+ {{ deviceCollect.name }}:{{ deviceCollect.value }}&nbsp;&nbsp;&nbsp;
574
+ </span>
575
+ <br>
576
+ <span v-if="deviceCollect.value == '有隐患'">
577
+ <lable>隐患:</lable>
578
+ <span v-for="val in deviceCollect.devices">{{ val }}</span>
579
+ <br>
580
+ </span>
581
+ </span>
582
+ </td>
583
+ </tr>
584
+ </tbody>
585
+ </table>
586
+ <table class="table table-striped table-bordered" style="margin-top: 40px"
587
+ v-show="paperdata.f_entry_status!='入户'">
588
+ <thead>
589
+ <tr>
590
+ <th colspan="4" style="text-align: center">用户安检概况</th>
591
+ </tr>
592
+ </thead>
593
+ <tbody>
594
+ <tr>
595
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">到达时间:</td>
596
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_onsite_time }}</td>
597
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">离开时间:</td>
598
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{
599
+ paperdata.f_offsite_time
600
+ }}
601
+ </td>
602
+ </tr>
603
+ <tr>
604
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">入户状态:</td>
605
+ <td colspan="2" style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
606
+ {{ paperdata.f_entry_status }}
607
+ </td>
608
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">
609
+ <button-link style="color: black" type="button" class="btn btn-link" @click="showpicture2()">
610
+ {{ dev.lname }}
611
+ 查看{{ data.f_entry_status }}照片
612
+ </button-link>
613
+ </td>
614
+ </tr>
615
+ <tr>
616
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">到访单号:</td>
617
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
618
+ {{ paperdata.f_visit_number }}
619
+ </td>
620
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">备注:</td>
621
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
622
+ {{ paperdata.f_remark }}
623
+ </td>
624
+ </tr>
625
+
626
+ </tbody>
627
+ </table>
628
+ <table class="table table-striped table-bordered" style="margin-top: 40px"
629
+ v-show="item.f_no_checkplan == '复检'">
630
+ <thead>
631
+ <tr>
632
+ <th colspan="4" style="text-align: center">上次安检情况</th>
633
+ </tr>
634
+ </thead>
635
+ <tbody>
636
+ <tr>
637
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">上次安检到达时间:</td>
638
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{
639
+ lastCheckData.f_onsite_time
640
+ }}
641
+ </td>
642
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">上次安检离开时间:</td>
643
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{
644
+ lastCheckData.f_offsite_time
645
+ }}
646
+ </td>
647
+ </tr>
648
+ <tr>
649
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">上次安检员:</td>
650
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
651
+ {{ lastCheckData.f_checker_name }}
652
+ </td>
653
+ </tr>
654
+ <tr>
655
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">安检结果:</td>
656
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
657
+ {{ lastCheckData.f_defect_text }}
658
+ </td>
659
+ </tr>
660
+
661
+ </tbody>
662
+ </table>
663
+ <table class="table table-striped table-bordered" style="margin-top: 35px"
664
+ v-show="paperdata.f_entry_status=='入户'">
665
+ <thead>
666
+ <tr>
667
+ <th style="text-align: center">总体安检照片</th>
668
+ </tr>
669
+ </thead>
670
+ <tbody>
671
+ <tr>
672
+ <td style="margin: auto;text-align: center">
673
+ <div class="container" style="max-width: 550px;background: #FFFFFF">
674
+ <div class="img" v-for="img in paperdata.f_overall_imgs">
675
+ <img-self-plus :list="paperdata.f_overall_imgs " :src="img.f_overall_path" style="float: left"
676
+ width="150"
677
+ height="200"></img-self-plus>
678
+ </div>
679
+ </div>
680
+
681
+
682
+ </td>
683
+
684
+ </tr>
685
+ </tbody>
686
+ </table>
687
+ <table class="table table-striped table-bordered" style="width: 100%"
688
+ v-show="paperdata.f_entry_status=='入户'">
689
+ <thead>
690
+ <tr>
691
+ <th style="text-align: center">用户签名照片</th>
692
+ </tr>
693
+ </thead>
694
+ <tbody>
695
+ <tr>
696
+ <td style="margin: auto;text-align: center">
697
+ <div class="container" style="max-width: 500px;background: #FFFFFF">
698
+ <div class="img" style="float: none">
699
+ <img-self-plus :src="paperdata.f_sign_path" width="200" height="200"></img-self-plus>
700
+ </div>
701
+ </div>
702
+ </td>
703
+ <td style="margin: auto;text-align: center">
704
+ <div class="container" style="max-width: 550px;background: #FFFFFF" v-if="f_user_path">
705
+ <div class="img" style="float: none">
706
+ <img-self-plus :src="'rs/image/file/'+f_user_path"
707
+ width="200"
708
+ height="200"></img-self-plus>
709
+ </div>
710
+ </div>
711
+ </td>
712
+ </tr>
713
+ </tbody>
714
+ </table>
715
+ <table class="table table-striped table-bordered"
716
+ v-show="paperdata.f_entry_status=='入户' && paperdata.f_defect_notified">
717
+ <thead>
718
+ <tr>
719
+ <th style="text-align: center">安检通知书/隐患整改通知书</th>
720
+ </tr>
721
+ </thead>
722
+ <tbody>
723
+ <tr>
724
+ <td style="margin: auto;text-align: center">
725
+ <div class="container" style="max-width: 500px;background: #FFFFFF">
726
+ <div class="img" style="float: none">
727
+ <img-self-plus :src="paperdata.f_notified_path" width="486" height="300"></img-self-plus>
728
+ </div>
729
+ </div>
730
+ </td>
731
+ </tr>
732
+ </tbody>
733
+ </table>
734
+ <table class="table table-striped table-bordered"
735
+ v-show="paperdata.f_entry_status=='入户'&& paperdata.f_video_path">
736
+ <thead>
737
+ <tr>
738
+ <th style="text-align: center">安检视频</th>
739
+ </tr>
740
+ </thead>
741
+ <tbody>
742
+ <tr>
743
+ <td style="margin: auto;text-align: center">
744
+ <div class="container" style="max-width: 500px;background: #FFFFFF">
745
+ <video width="320" height="200" controls v-if="paperdata.f_video_path">
746
+ <source :src="paperdata.f_video_path" type="video/mp4">
747
+ </video>
748
+ </div>
749
+ </td>
750
+ </tr>
751
+ </tbody>
752
+ </table>
753
+ <table class="table table-striped table-bordered"
754
+ v-show="paperdata.f_entry_status=='入户'&& item.f_recording1_path">
755
+ <thead>
756
+ <tr>
757
+ <th style="text-align: center">录音文件</th>
758
+ </tr>
759
+ </thead>
760
+ <tbody>
761
+ <tr>
762
+ <td style="margin: auto;text-align: center">
763
+ <div class="container" style="max-width: 500px;background: #FFFFFF">
764
+ <a class="button_spacing button_search-1"
765
+ :download="item.f_user_name+'-'+item.f_check_type+'-'+'录音文件.arm'"
766
+ :href="'rs/image/file/'+item.f_recording1_path">录音下载</a>
767
+ </div>
768
+ </td>
769
+ </tr>
770
+ </tbody>
771
+ </table>
772
+ </div>
773
+ </div>
774
+ <div style="margin-right: 2%;margin-left: 2%;height: 100%;overflow: scroll">
775
+ <div style="width: 95%;margin-left: 5%">
776
+ <table class="table table-striped table-bordered" v-for="config in deviceconfig2"
777
+ style="margin-top: 35px">
778
+ <thead v-show="!(config.checkname!='燃气表'&&paperdata.f_entry_status!='入户')">
779
+ <tr>
780
+ <th style="text-align: center">{{ config.checkname }}</th>
781
+ </tr>
782
+ </thead>
783
+ <tbody v-show="!(config.checkname!='燃气表'&&paperdata.f_entry_status!='入户')">
784
+ <tr v-for="dev in config.items">
785
+ <td v-if="dev.type!='text' && dev.isshow != false">
786
+ <div class="row">
787
+ <div class="col-md-8" style="text-align: center;">
788
+ <label>
789
+ <button-link type="button" class="btn btn-link"
790
+ @click="showpicture(config.checkname,dev.lname)"
791
+ :style="isred(config.checkname,dev.lname)?'color:red':'color:black'">
792
+ {{ dev.lname }}
793
+ </button-link>
794
+ </label>
795
+ </div>
796
+ <div class="col-md-4" style="text-align: center">
797
+ <label style="font-weight: normal"
798
+ v-if="dev.type!='picture'">{{
799
+ getDeviceValue(config.checkname, dev.lname) ? getDeviceValue(config.checkname, dev.lname) : '无'
800
+ }}</label>
801
+ <label style="font-weight: normal" v-if="dev.type=='picture'">
802
+ <div v-show="getDevicePath(config.checkname,dev.lname)">
803
+ <button-link style="color: black" type="button" class="btn btn-link"
804
+ @click="showpath(getDevicePath(config.checkname,dev.lname),dev.lname)">查看照片
805
+ </button-link>
806
+ </div>
807
+ <div v-show="!getDevicePath(config.checkname,dev.lname)">无照片</div>
808
+ </label>
809
+ </div>
810
+ </div>
811
+ </td>
812
+ <td v-if="dev.type==='text' && dev.isshow != false">
813
+ <label style="width: 100%;text-align: center">{{ dev.lname }}</label>
814
+ </td>
815
+ </tr>
816
+ </tbody>
817
+ </table>
818
+ </div>
819
+ </div>
820
+
821
+ </div>
822
+ </div>
823
+ </div>
824
+ </div>
825
+ <modal :show.sync="imgshow" v-ref:modal backdrop="true">
826
+ <header slot="modal-header" class="modal-header">
827
+ {{ picturename }}
828
+ </header>
829
+ <article slot="modal-body" class="modal-body">
830
+ <div class="from-group">
831
+ <div class="row">
832
+ <div class="col-md-6">
833
+ <img-self-plus v-if="showimg1" :src="showimg1" width="240" height="300"></img-self-plus>
834
+ </div>
835
+ <div class="col-md-6">
836
+ <img-self-plus v-if="showimg2" :src="showimg2" width="240" height="300"></img-self-plus>
837
+ </div>
838
+ <div class="col-md-6" v-for="item in otherDarginShowImgs">
839
+ <img-self-plus v-if="item.path" :src="item.path" width="240" height="300"></img-self-plus>
840
+ </div>
841
+ </div>
842
+ </div>
843
+ </article>
844
+ <footer slot="modal-footer" class="modal-footer" v-show="false">
845
+ <button type="button" class="btn btn-success" @click='imgclose'>关闭</button>
846
+ </footer>
847
+ </modal>
848
+ <modal :show.sync="imgshow2" v-ref:modal backdrop="true">
849
+ <header slot="modal-header" class="modal-header">
850
+ {{ paperdata.f_entry_status }}照片
851
+ </header>
852
+ <article slot="modal-body" class="modal-body">
853
+ <div class="from-group">
854
+ <div class="row">
855
+ <div class="col-md-6">
856
+ <img-self-plus v-if="this.paperdata.f_entry_status=='到访不遇'&& this.paperdata.f_noanswer_path" :src="showimg3"
857
+ width="282"
858
+ height="400"></img-self-plus>
859
+ </div>
860
+ <div class="col-md-6">
861
+ <img-self-plus v-if="this.paperdata.f_entry_status=='到访不遇'&& this.paperdata.f_noanswer1_path"
862
+ :src="showimg5" width="282"
863
+ height="400"></img-self-plus>
864
+ </div>
865
+ <div class="col-md-6">
866
+ <img-self-plus v-if="this.paperdata.f_entry_status=='到访不遇'&& this.paperdata.f_noanswer2_path"
867
+ :src="showimg6" width="282"
868
+ height="400"></img-self-plus>
869
+ </div>
870
+ <div class="col-md-6">
871
+ <img-self-plus v-if="this.paperdata.f_entry_status=='拒检' && this.paperdata.f_rejectcheck_path"
872
+ :src="showimg4" width="282"
873
+ height="400"></img-self-plus>
874
+ </div>
875
+ <div class="col-md-6">
876
+ <img-self-plus v-if="this.paperdata.f_entry_status=='拒检' && this.paperdata.f_rejectcheck1_path"
877
+ :src="showimg7" width="282"
878
+ height="400"></img-self-plus>
879
+ </div>
880
+ <div class="col-md-6">
881
+ <img-self-plus v-if="this.paperdata.f_entry_status=='拒检' && this.paperdata.f_rejectcheck2_path"
882
+ :src="showimg8" width="282"
883
+ height="400"></img-self-plus>
884
+ </div>
885
+ </div>
886
+ </div>
887
+ </article>
888
+ <footer slot="modal-footer" class="modal-footer" v-show="false">
889
+ <button type="button" class="btn btn-success" @click='imgclose'>关闭</button>
890
+ </footer>
891
+ </modal>
892
+ <modal :show.sync="showModel" :width="'50%'" :backdrop="false">
893
+ <div slot="modal-header" class="modal-header">
894
+ <h4 class="modal-title">
895
+ 安检审核备注
896
+ </h4>
897
+ </div>
898
+ <div slot="modal-body" class="modal-body">
899
+ <div class="row">
900
+ <div class="form-group col-sm-4">
901
+ <label class="font_normal_body">审核备注:</label>
902
+ <textarea v-model="message"></textarea>
903
+ </div>
904
+ </div>
905
+ </div>
906
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
907
+ <button class="button_search" style="margin-right: 15px" @click="auditFailOK()">确定</button>
908
+ <button class="button_search" style="margin-right: 15px" @click="auditFailCancel()">取消</button>
909
+ </div>
910
+ </modal>
911
+ </template>
912
+
913
+ <script>
914
+ import html2pdf from 'html2pdf.js'
915
+ import ObjConfig from '../../../utils/GerJsonObjectConfig'
916
+ import RadioGroup from 'vue-client/src/vue-strap/src/radioGroup'
917
+ import Radio from 'vue-client/src/vue-strap/src/radioBtn'
918
+ import Vue from 'vue'
919
+ import * as Util from '../../Util'
920
+ import {jsonSort} from '../../../utils/LdapHelper'
921
+ import {HttpResetClass} from "vue-client";
922
+ import {isEmpty} from "../../Util";
923
+
924
+ let asyncReady = async function (self) {
925
+ // 获取配置信息
926
+ try {
927
+ let res = await new HttpResetClass().load('post', 'rs/sql/safe_singleTable_OrderBy', {
928
+ data: {
929
+ items: 'f_dir',
930
+ tablename: 't_organization',
931
+ condition: `id = '${self.item.f_filialeid}'`,
932
+ orderitem: 'id'
933
+ }
934
+ })/*.then(res=>{*/
935
+ //tag
936
+ //tag)
937
+ console.log(res)
938
+ if (!res.data[0].f_dir) {
939
+ self.$showMessage("该公司无组织目录,无法获取配置文件,请联系管理员确认")
940
+ } else {
941
+ //this.f_dir=res.data[0].f_dir
942
+ let url = self.newConfig == '是' ? '/safecheck/rs/safe_vue' : '/safecheck/rs/vue'
943
+ try {
944
+ let res1 = await new HttpResetClass().load('GET', `${url}/DevicesConfig.json?folderName=phonevues&orgDir=${res.data[0].f_dir}`, {}, {
945
+ resolveMsg: '获取居民配置项成功!',
946
+ rejectMsg: '获取居民配置项出错!'
947
+ })/*.then(res=>{*/
948
+ //tag
949
+ //this.safeConfig["民用配置项"]=Object.assign({},res.data)
950
+ if (!Vue.config.safecheck) {
951
+ Vue.config = {safecheck: {}}
952
+ }
953
+ Vue.config.safecheck.DevicesConfig = res1.data
954
+ console.log(Vue.config.safecheck.DevicesConfig)
955
+ /*})*/
956
+ let res2 = await new HttpResetClass().load('GET', `${url}/DevicesSetConfig.json?folderName=phonevues&orgDir=${res.data[0].f_dir}`, {}, {
957
+ resolveMsg: '获取非居民配置项成功!',
958
+ rejectMsg: '获取非居民配置项出错!'
959
+ })/*.then(res=>{*/
960
+ //tag
961
+ //this.safeConfig["非民用配置项"]=Object.assign({},res.data)
962
+ Vue.config.safecheck.DevicesSetConfig = res2.data
963
+ /*}).then(res=> {
964
+ })*/
965
+
966
+ } catch (e) {
967
+ self.$showMessage("获取配置文件失败" + e)
968
+ self.loading = false
969
+ }
970
+ }
971
+ if (self.data.f_recheck_id) {
972
+ let res3 = await new HttpResetClass().load('post', 'rs/sql/safe_singleTable_OrderBy', {
973
+ data: {
974
+ items: '*',
975
+ tablename: 't_check_paper',
976
+ condition: `id = '${self.data.f_recheck_id}'`,
977
+ orderitem: 'id'
978
+ }
979
+ })
980
+ self.lastCheckData = res3.data[0]
981
+ }
982
+ } catch (error) {
983
+ // 忽略704,文件找不到异常R
984
+ if (error.status !== 704) {
985
+ throw error
986
+ }
987
+ this.loading = false
988
+ }
989
+ }
990
+ export default {
991
+ title: '安检单',
992
+ props: ['f_plan_id', 'item', 'role'],
993
+ data() {
994
+ return {
995
+ f_user_path:'',
996
+ message: '',
997
+ showButton: false,
998
+ showModel: false,
999
+ data: {
1000
+ f_devices: [],
1001
+ f_defect_content: ''
1002
+ },
1003
+ showPdfDownload: this.$appdata.getSingleValue('安检结果pdf下载') ? this.$appdata.getSingleValue('安检结果pdf下载') : false,
1004
+ lastCheckData: {},
1005
+ paperdata: {},
1006
+ picturename: '隐患照片',
1007
+ defectDevice: {},
1008
+ hasDevice: false,
1009
+ deviceCollect: {},
1010
+ deviceCollects: [],
1011
+ isshow: false,
1012
+ ajresult: '',
1013
+ loading: true,
1014
+ imgshow: false,
1015
+ imgshow2: false,
1016
+ isUpload: false,
1017
+ livedispose: '',
1018
+ showimg1: '',
1019
+ showimg2: '',
1020
+ showimg3: '',
1021
+ showimg4: '',
1022
+ showimg5: '',
1023
+ showimg6: '',
1024
+ showimg7: '',
1025
+ showimg8: '',
1026
+ hiddenDangerImgNumber: 0, //配置项中隐患照片数
1027
+ otherDarginShowImgs: [],//其他隐患图片
1028
+ startClick: false, //开始安检按钮是否可点击
1029
+ isStrat: false, //是否开始安检
1030
+ checkResult: {},//查询结果
1031
+ newcheckResult: {},
1032
+ timer: null,
1033
+ showModal: false,
1034
+ pic_to_be_viewed: '',
1035
+ showBack: true,
1036
+ devices: [],
1037
+ devicesAll: [],
1038
+ configAJ: [],
1039
+ configRQ: [],
1040
+ deviceconfig: {},
1041
+ newConfig: '',
1042
+ deviceconfig2: [],
1043
+ f_devices: [],
1044
+ config: {
1045
+ "燃气表": {
1046
+ "checkmust": true,
1047
+ "index": 1,
1048
+ "items": {
1049
+ "基表编号": {"index": 1, "type": "string", "readonly": true},
1050
+ "气表型号": {"index": 2, "type": "string", "readonly": true},
1051
+ "气表品牌": {"index": 3, "type": "string", "readonly": true},
1052
+ "进气方向": {"index": 4, "type": "string", "readonly": true},
1053
+ "初始表底": {"index": 5, "type": "number", "isshow": false, "readonly": true},
1054
+ "上期表读数": {"index": 6, "type": "number", "readonly": true, isshow: false},
1055
+ "累购气量": {"index": 7, "type": "number", "readonly": true},
1056
+ "已用气量": {"index": 8, "type": "number", "checkmust": false},//基表数
1057
+ "剩余气量": {"index": 9, "type": "number", "checkmust": false},//累购-已用
1058
+ //显示屏数 --实际剩余气量
1059
+ "气量异常差值": {"index": 10, "type": "number", "readonly": true},
1060
+ "表箱号": {"index": 11, "type": "string", "readonly": true},
1061
+ "燃气表照片": {"index": 12, "type": "picture", "checkmust": false},
1062
+ }
1063
+ // 注意,配置项的index必须与上面的固定配置保持'顺序'
1064
+ }
1065
+ },
1066
+ //金额
1067
+ config2: {
1068
+ "燃气表": {
1069
+ "checkmust": true,
1070
+ "index": 1,
1071
+ "items": {
1072
+ "基表编号": {"index": 1, "type": "string", "readonly": true},
1073
+ "气表型号": {"index": 2, "type": "string", "readonly": true},
1074
+ "气表品牌": {"index": 3, "type": "string", "readonly": true},
1075
+ "进气方向": {"index": 4, "type": "string", "readonly": true},
1076
+ "初始表底": {"index": 5, "type": "number", "isshow": false, "readonly": true},
1077
+ "上期表读数": {"index": 6, "type": "number", "readonly": true, isshow: false},
1078
+ "累购金额": {"index": 7, "type": "number", "readonly": true},
1079
+ "已用金额": {"index": 8, "type": "number", "checkmust": false},
1080
+ //显示屏数 --实际剩余气量
1081
+ "剩余金额": {"index": 9, "type": "number", "checkmust": false},
1082
+ "金额异常差值": {"index": 10, "type": "number", "readonly": true},
1083
+ "表箱号": {"index": 11, "type": "string", "readonly": true},
1084
+ "燃气表照片": {"index": 12, "type": "picture", "checkmust": false},
1085
+ }
1086
+ }
1087
+ },
1088
+ config3: {
1089
+ "燃气表":{
1090
+ "checkmust":true,
1091
+ "index":1,
1092
+ "items":{
1093
+ "基表编号":{"index":1,"type":"string","readonly":true},
1094
+ "气表型号":{"index":2,"type":"string","readonly":true},
1095
+ "气表品牌":{"index":3,"type":"string","readonly":true},
1096
+ "进气方向":{"index":4,"type":"string","readonly":true},
1097
+ "初始表底":{"index":5,"type":"string","isshow":false,"readonly":true},
1098
+ "累购金额":{"index":6,"type":"string","readonly":true},
1099
+ "表累购金额":{"index":7,"type":"string","readonly":false},
1100
+ "已用金额":{"index":8,"type":"string","checkmust": false},
1101
+ "剩余金额":{"index":9,"type":"string","checkmust": false},
1102
+ "累购气量":{"index":10,"type":"string","readonly":true},
1103
+ "表累购气量":{"index":11,"type":"string","readonly":false},
1104
+ "已用气量":{"index":12,"type":"string","checkmust": false},
1105
+ "剩余气量":{"index":13,"type":"string","checkmust": false},
1106
+ "燃气表照片":{"index":14,"type":"picture","checkmust": false}
1107
+ }
1108
+ },
1109
+ },
1110
+ }
1111
+ },
1112
+ components: {
1113
+ RadioGroup,
1114
+ Radio,
1115
+ },
1116
+ computed: {
1117
+ isRecodrDownloadBtn() {
1118
+ // 投诉单下派还是处理
1119
+ let res = this.$appdata.getSingleValue('无限制录音');
1120
+ if (res == 'true') {
1121
+ return true;
1122
+ } else {
1123
+ return false;
1124
+ }
1125
+ },
1126
+ selector: {
1127
+ get() {
1128
+ return 'paper-state'
1129
+ },
1130
+ set(val) {
1131
+ if (this.isStrat) {
1132
+ this.$goto(val, {userinfo: this.data}, 'paper-router')
1133
+ } else {
1134
+ this.$showMessage('未开始安检!')
1135
+ }
1136
+ }
1137
+ },
1138
+ actionEnabled: {
1139
+ get() {
1140
+ return this.role == 'inspect'
1141
+ }
1142
+ }
1143
+ },
1144
+ methods: {
1145
+ exportToPDF() {
1146
+ const element = document.getElementById('toPdf') // 替换为您要导出的页面元素的ID
1147
+ html2pdf(element)
1148
+ },
1149
+
1150
+ showAudit() {
1151
+ var audit = this.$appdata.getSingleValue('安检审核');
1152
+ if (audit == '是' && (this.item.f_approved == '未审核' || !this.item.f_approved)) {
1153
+ this.showButton = true
1154
+ }
1155
+ },
1156
+ //安检审核成功
1157
+ auditSuccesss() {
1158
+ this.loading = true;
1159
+ var reqdata = {
1160
+ audit_result: '通过',
1161
+ operator: "success",
1162
+ audit_time: Util.getNowDate(),
1163
+ user_name: this.$login.f.name,
1164
+ id: this.item.id,
1165
+ f_check_item_id: this.item.f_check_item_id
1166
+ }
1167
+ new HttpResetClass().load('POST', '/rs/logic/updateAafeAudit', {data: reqdata}, {
1168
+ resolveMsg: '安检审核成功!',
1169
+ rejectMsg: '安检审核出错!'
1170
+ }).then((res) => {
1171
+ if (res.data.code == 200) {
1172
+ this.loading = false;
1173
+ this.$back()
1174
+ }
1175
+ })
1176
+ },
1177
+ auditFail() {
1178
+ this.showModel = true;
1179
+ },
1180
+ auditFailOK() {
1181
+
1182
+ this.loading = true;
1183
+ var reqdata = {
1184
+ message: this.message,
1185
+ audit_result: '不通过',
1186
+ operator: "fail",
1187
+ audit_time: Util.getNowDate(),
1188
+ user_name: this.$login.f.name,
1189
+ id: this.item.id,
1190
+ f_check_item_id: this.item.f_check_item_id
1191
+ }
1192
+ new HttpResetClass().load('POST', '/rs/logic/updateAafeAudit', {data: reqdata}, {
1193
+ resolveMsg: '安检审核成功!',
1194
+ rejectMsg: '安检审核出错!'
1195
+ }).then((res) => {
1196
+ if (res.data.code == 200) {
1197
+ this.loading = false;
1198
+ this.message = '';
1199
+ this.showModel = false;
1200
+ this.$back()
1201
+ }
1202
+ })
1203
+ },
1204
+ auditFailCancel() {
1205
+ this.showModel = false;
1206
+ this.message = '';
1207
+ },
1208
+
1209
+ devicesCollect() {
1210
+ //tag
1211
+ //tag)
1212
+ //tag)
1213
+ //tag
1214
+ this.deviceCollects = []
1215
+ let checkResult = '正常'
1216
+ this.result = '正常'
1217
+ let codata = JSON.parse(JSON.stringify(this.data))
1218
+ //tag)
1219
+ for (let device in this.data) {
1220
+ let f_device_type
1221
+ if (device.startsWith("device")) {
1222
+ for (let item in this.data[device]) {
1223
+ if (this.data[device].length > 1) {
1224
+ let j = Number.parseInt(item) + 1
1225
+ f_device_type = `${this.data[device][item].f_device_type}${j}`
1226
+ } else {
1227
+ f_device_type = this.data[device][item].f_device_type
1228
+ }
1229
+ // //tag
1230
+ let deviceelse = []
1231
+ let deviceInfos = []
1232
+ for (let i in this.data[device][item].f_items) {
1233
+ let defects = ''
1234
+
1235
+ let items = this.data[device][item].f_items[i]
1236
+
1237
+
1238
+ if ((items.type === 'selector' || items.type === 'radio' || items.type === 'checkbox' || items.type === 'picture') && items.f_item_value != null && items.f_item_value instanceof Array) {
1239
+ for (let i in items.f_item_value) {
1240
+ let f_item_value = items.f_item_value[i]
1241
+
1242
+ //tag)
1243
+ //tag)
1244
+ //tag)
1245
+ //tag)
1246
+
1247
+ if (!this.config[this.data[device][item].f_device_type].items[items.f_item_name] && (items.isdefect && (items.isdefect == 'true' || items.isdefect == true))) {
1248
+ continue
1249
+ }
1250
+ /*if(items.f_is_defect != true && items.f_is_defect != 'true'){
1251
+ continue
1252
+ }*/
1253
+ if (items.f_is_defect == 'true' || items.f_is_defect == true) {
1254
+ checkResult = '有隐患'
1255
+ this.result = '有隐患'
1256
+ defects = `${defects}:${items.f_item_value}/`
1257
+ }
1258
+ /*let options = this.config[this.data[device][item].f_device_type].items[items.f_item_name].options
1259
+ for (let option in options) {
1260
+ if (options[option].data == f_item_value) {
1261
+ if (options[option].isdefect == 'true' || options[option].isdefect == true) {
1262
+ checkResult = '有隐患'
1263
+ this.result = '有隐患'
1264
+ defects = `${defects}:${options[option].data}/`
1265
+ // let level = options[option].level
1266
+ }
1267
+ }
1268
+ }*/
1269
+ //tag)
1270
+ }
1271
+ if (defects != '') {
1272
+ console.log('有隐患items', items)
1273
+ deviceInfos.push(`${items.f_item_name}${defects.substring(0, defects.length - 1)}${items.f_else ? items.f_else : ''}`)
1274
+ }
1275
+ } else if ((items.type === 'string' || items.type === 'number') && items.f_is_defect && items.f_item_value[0]) {
1276
+ checkResult = '有隐患'
1277
+ this.result = '有隐患'
1278
+ deviceInfos.push(`${items.f_item_name}:${items.f_item_value[0]}`)
1279
+
1280
+ } else if (items.f_item_name == '金额异常差值') {
1281
+ var deviation = this.$appdata.getSingleValue('金额异常差值允许误差')
1282
+ //tag
1283
+ if (parseFloat(items.f_item_value[0]).toString() != "NaN" && parseFloat(deviation).toString() != "NaN") {
1284
+ if (parseFloat(items.f_item_value[0]) > parseFloat(deviation) || parseFloat(items.f_item_value[0]) < parseFloat(deviation) * -1) {
1285
+ checkResult = '有隐患'
1286
+ this.result = '有隐患'
1287
+ deviceInfos.push(`${items.f_item_name}:${items.f_item_value[0]}`)
1288
+ }
1289
+ }
1290
+ } else if (items.f_item_name == '气量异常差值') {
1291
+ var deviation = this.$appdata.getSingleValue('气量异常差值允许误差')
1292
+ //tag
1293
+ if (parseFloat(items.f_item_value[0]).toString() != "NaN" && parseFloat(deviation).toString() != "NaN") {
1294
+ if (parseFloat(items.f_item_value[0]) > parseFloat(deviation) || parseFloat(items.f_item_value[0]) < parseFloat(deviation) * -1) {
1295
+ checkResult = '有隐患'
1296
+ this.result = '有隐患'
1297
+ deviceInfos.push(`${items.f_item_name}:${items.f_item_value[0]}`)
1298
+ }
1299
+ }
1300
+ }
1301
+ if (!this.config[this.data[device][item].f_device_type].items[items.f_item_name]) {
1302
+ // console.log('this.config[this.data[device][item].f_device_type]', this.config[this.data[device][item].f_device_type])
1303
+ // console.log('this.deviceconfig2', this.deviceconfig2)
1304
+ for (let dev in this.deviceconfig2) {
1305
+ if (this.deviceconfig2[dev].checkname == this.data[device][item].f_device_type) {
1306
+ this.deviceconfig2[dev].items.push({
1307
+ lname: items.f_item_name
1308
+ })
1309
+ }
1310
+ }
1311
+ }
1312
+ //tag)
1313
+ //tag
1314
+ //tag
1315
+ if (items.type === 'selector') {
1316
+ items.selected = []
1317
+ } else if (items.type === 'inputSelector') {
1318
+ items.selected = ''
1319
+ }
1320
+ }
1321
+
1322
+
1323
+ //tag
1324
+ this.$set('deviceCollect.name', f_device_type)
1325
+ this.$set('deviceCollect.value', checkResult)
1326
+ this.$set('deviceCollect.devices', deviceInfos)
1327
+ this.$set('deviceCollect.else', deviceelse)
1328
+ console.log('deviceCollect.devices', this.deviceCollect.devices)
1329
+ console.log('deviceCollect.else', this.deviceCollect.else)
1330
+ //tag)
1331
+ if (this.deviceCollect.name) {
1332
+ //tag
1333
+ this.deviceCollects.push(JSON.parse(JSON.stringify(this.deviceCollect)))
1334
+ }
1335
+
1336
+ checkResult = '正常'
1337
+ this.deviceCollect = {}
1338
+ }
1339
+ }
1340
+ }
1341
+ if (this.deviceCollects.length > 0) {
1342
+ this.hasDevice = true
1343
+ }
1344
+ this.data.f_userproperties = this.item.f_gasproperties
1345
+ this.ajresult = JSON.parse(this.item.f_defect_content).result
1346
+ this.showimg3 = this.data.f_noanswer_path
1347
+ this.showimg5 = this.data.f_noanswer1_path
1348
+ this.showimg6 = this.data.f_noanswer2_path
1349
+ this.showimg4 = this.data.f_rejectcheck_path
1350
+ this.showimg7 = this.data.f_rejectcheck1_path
1351
+ this.showimg8 = this.data.f_rejectcheck2_path
1352
+ this.paperdata = this.data
1353
+ this.f_user_path = this.paperdata.f_user_pictures ? JSON.parse(this.paperdata.f_user_pictures)[0].f_user_path : ''
1354
+ this.loading = false
1355
+ },
1356
+ imgclose() {
1357
+ this.imgshow = false
1358
+ },
1359
+ putDevices() {
1360
+ ////tag
1361
+ this.$set('data.approve', "true")
1362
+ this.$set('data.writeback', "false")
1363
+ if (Vue.config.safecheck.ApproveConfig != undefined) {
1364
+ if (Vue.config.safecheck.ApproveConfig.approve != undefined) {
1365
+ this.$set('data.approve', Vue.config.safecheck.ApproveConfig.approve)
1366
+ }
1367
+ if (Vue.config.safecheck.ApproveConfig.writeback != undefined) {
1368
+ this.$set('data.writeback', Vue.config.safecheck.ApproveConfig.writeback)
1369
+ }
1370
+ if (Vue.config.safecheck.ApproveConfig.livedispose != undefined) {
1371
+ this.livedispose = Vue.config.safecheck.ApproveConfig.livedispose
1372
+ }
1373
+ if (Vue.config.safecheck.ApproveConfig.hiddendanger != undefined) {
1374
+ if (parseInt(Vue.config.safecheck.ApproveConfig.hiddendanger) >= 3) {
1375
+ this.hiddenDangerImgNumber = 3
1376
+ } else {
1377
+ this.hiddenDangerImgNumber = parseInt(Vue.config.safecheck.ApproveConfig.hiddendanger)
1378
+ }
1379
+ }
1380
+ }
1381
+ //tag
1382
+
1383
+ //tag)
1384
+ if (!this.item.f_safecheck_type) {
1385
+ this.config = this.extend(this.config, Vue.config.safecheck[Vue.config.safecheck.SafecheckType['年度普检'][this.item.f_check_type]])
1386
+ } else {
1387
+ if (Vue.config.safecheck.DevicesConfig != undefined)
1388
+ this.config = this.extend(this.config, Vue.config.safecheck[Vue.config.safecheck.SafecheckType[this.item.f_safecheck_type][this.item.f_check_type]])
1389
+ }
1390
+ //遍历安检项配置
1391
+ for (let i in this.config) {
1392
+ //取得安检项索引值
1393
+ let n = this.config[i].index
1394
+ this.devices[n - 1] = {device: i, n: n, checkmust: this.config[i].checkmust}
1395
+ this.$set('data.' + 'device' + n, [])
1396
+ let items = []
1397
+ for (let it in this.config[i].items) {
1398
+ //赋值下拉选项
1399
+ if (this.config[i].items[it].type == 'selector') {
1400
+ for (let op in this.config[i].items[it].options)
1401
+ if (this.config[i].items[it].options[op].isdefault == true) {
1402
+ items.push({
1403
+ f_defect_level: this.config[i].items[it].options[op].level,
1404
+ f_is_defect: this.config[i].items[it].options[op].isdefect,
1405
+ f_item_name: it,
1406
+ f_item_value: this.config[i].items[it].options[op].data,
1407
+ f_path: "",
1408
+ type: "selector"
1409
+ })
1410
+ }
1411
+ }
1412
+ }
1413
+ n = n + 1
1414
+ }
1415
+
1416
+ },
1417
+ showpath(val1, val2) {
1418
+ //tag
1419
+ //tag
1420
+ if (val1) {
1421
+ this.showimg1 = val1
1422
+ this.picturename = val2
1423
+ this.imgshow = true
1424
+ }
1425
+ },
1426
+ showpicture(val1, val2) {
1427
+ //tag
1428
+ if (val2 == '气量异常差值' || val2 == '金额异常差值') {
1429
+ return
1430
+ }
1431
+ for (let i = 0; i < this.devicesAll.length; i++) {
1432
+ for (let j = 0; j < this.devicesAll[i].length; j++) {
1433
+ if (this.devicesAll[i][j].f_device_type == val1) {
1434
+ for (let k = 0; k < this.devicesAll[i][j].f_items.length; k++) {
1435
+ if (this.devicesAll[i][j].f_items[k].f_item_name == val2) {
1436
+ if (!this.devicesAll[i][j].f_items[k].f_is_defect) {
1437
+ return false
1438
+ } else {
1439
+ this.showimg1 = this.devicesAll[i][j].f_items[k].f_path
1440
+ this.showimg2 = this.devicesAll[i][j].f_items[k].f_second_path
1441
+ this.otherDarginShowImgs = []
1442
+ for (let l = 0; l < this.hiddenDangerImgNumber; l++) {
1443
+ let img = {path: ''}
1444
+ if (this.devicesAll[i][j].f_items[k]['f_p' + (l + 1) + '_path']) {
1445
+ img.path = this.devicesAll[i][j].f_items[k]['f_p' + (l + 1) + '_path'] + '?' + Math.random()
1446
+ this.otherDarginShowImgs.push(img)
1447
+ }
1448
+ }
1449
+ this.picturename = '隐患照片'
1450
+ this.imgshow = true
1451
+ return true
1452
+ }
1453
+ }
1454
+ }
1455
+
1456
+ }
1457
+ }
1458
+ }
1459
+ },
1460
+ isred(val1, val2) {
1461
+ //tag
1462
+ if (val2 == '气量异常差值' || val2 == '金额异常差值') {
1463
+ return
1464
+ }
1465
+ for (let i = 0; i < this.devicesAll.length; i++) {
1466
+ for (let j = 0; j < this.devicesAll[i].length; j++) {
1467
+ if (this.devicesAll[i][j].f_device_type == val1) {
1468
+ for (let k = 0; k < this.devicesAll[i][j].f_items.length; k++) {
1469
+ if (this.devicesAll[i][j].f_items[k].f_item_name == val2) {
1470
+ if (!this.devicesAll[i][j].f_items[k].f_is_defect) {
1471
+ return false
1472
+ } else {
1473
+ return true
1474
+ }
1475
+ }
1476
+ }
1477
+
1478
+ }
1479
+ }
1480
+ }
1481
+ },
1482
+ showpicture2() {
1483
+ this.imgshow2 = true
1484
+ },
1485
+ getDeviceValue(val1, val2) {
1486
+ let aa = ''
1487
+ for (let i = 0; i < this.devicesAll.length; i++) {
1488
+ for (let j = 0; j < this.devicesAll[i].length; j++) {
1489
+ if (this.devicesAll[i][j].f_device_type == val1) {
1490
+ for (let k = 0; k < this.devicesAll[i][j].f_items.length; k++) {
1491
+ if (this.devicesAll[i][j].f_items[k].f_item_name == val2) {
1492
+ if (this.devicesAll[i][j].f_items[k].f_item_lists[0]) {
1493
+ for (let l = 0; l < this.devicesAll[i][j].f_items[k].f_item_lists.length; l++) {
1494
+ let val = this.devicesAll[i][j].f_items[k].f_item_lists[l].f_item_value
1495
+ aa += (val === null? '空' : val) + ' '
1496
+ }
1497
+ if(isEmpty(aa)){
1498
+ return '无'
1499
+ }
1500
+ return aa
1501
+ }
1502
+ }
1503
+ }
1504
+
1505
+ }
1506
+ }
1507
+ }
1508
+
1509
+ },
1510
+ getDevicePath(val1, val2) {
1511
+ for (let i = 0; i < this.devicesAll.length; i++) {
1512
+ for (let j = 0; j < this.devicesAll[i].length; j++) {
1513
+ if (this.devicesAll[i][j].f_device_type == val1) {
1514
+ for (let k = 0; k < this.devicesAll[i][j].f_items.length; k++) {
1515
+ if (this.devicesAll[i][j].f_items[k].f_item_name == val2) {
1516
+ return this.devicesAll[i][j].f_items[k].f_path
1517
+ }
1518
+ }
1519
+
1520
+ }
1521
+ }
1522
+ }
1523
+
1524
+ },
1525
+ getDeviceAll() {
1526
+ let keyall = Object.keys(this.data)
1527
+ for (let i = 0; i < keyall.length; i++) {
1528
+ //tag)
1529
+ if ((keyall[i].startsWith('f_devices') || keyall[i].startsWith('devices')) && keyall[i] != 'deviceundefined') {
1530
+ this.devicesAll.push(this.data[keyall[i]])
1531
+ //tag
1532
+ }
1533
+ }
1534
+ //tag
1535
+ //tag)
1536
+ this.devicesCollect()
1537
+
1538
+ },
1539
+
1540
+ back() {
1541
+ if (this.role == 'inspect') {
1542
+ if (!this.isStrat) {
1543
+ this.$back()
1544
+ return
1545
+ } else {
1546
+ this.savePaper(true).then(() => {
1547
+ this.$back()
1548
+ this.isStrat = false
1549
+ })
1550
+ }
1551
+ } else {
1552
+ this.$back()
1553
+ }
1554
+ },
1555
+ checkIsStart() {
1556
+ alert('asdad')
1557
+ return
1558
+ },
1559
+
1560
+ viewPic(fileName) {
1561
+ //tag
1562
+ if (this.role == 'view') {
1563
+ if (!fileName.endsWith('nopic.png')) {
1564
+ this.pic_to_be_viewed = fileName
1565
+ this.showModal = true
1566
+ }
1567
+ } else {
1568
+ HostApp.viewPic(fileName)
1569
+ }
1570
+ },
1571
+ tick() {
1572
+ this.timer = null
1573
+ this.data.f_offsite_time = Util.toStandardTimeString()
1574
+ this.timer = window.setTimeout(this.tick, 1000)
1575
+ },
1576
+ getRepairState() {
1577
+ let repaired = true
1578
+ this.data.f_defects.forEach((defect) => {
1579
+ repaired = repaired & (defect.f_ratification == '已处理')
1580
+ })
1581
+ return repaired
1582
+ },
1583
+ verifyRepairDefects() {
1584
+ this.data.f_repair_date = Util.toStandardTimeString()
1585
+ this.data.f_repaired = this.getRepairState() ? '已修' : '在修'
1586
+ },
1587
+ genuineSave(saveOnly) {
1588
+ HostApp.__this__.save(saveOnly)
1589
+ if (!saveOnly)
1590
+ HostApp.__this__.disableTimer()
1591
+ HostApp.__callback__ = null
1592
+ HostApp.__this__ = null
1593
+ },
1594
+ setUrgency() {
1595
+ this.data.f_defect_urgency = 'Z'
1596
+ let that = this
1597
+ this.data.f_defects.forEach(function (defect) {
1598
+ if (that.data.f_defect_urgency > defect.f_defect_level.charAt(0))
1599
+ that.data.f_defect_urgency = defect.f_defect_level.charAt(0)
1600
+ })
1601
+ if (this.data.f_defect_urgency == 'Z')
1602
+ this.data.f_defect_urgency = null
1603
+ },
1604
+ disableTimer() {
1605
+ if (this.timer) {
1606
+ window.clearTimeout(this.timer)
1607
+ this.timer = null
1608
+ }
1609
+ },
1610
+ loaded(paper) {
1611
+ if (!paper.hasOwnProperty('id')) {
1612
+ this.$showMessage("该安检单在手机上已经不存在,可能是卸载过程序。可以进入重新安检,或返回安检计划。")
1613
+ this.init()
1614
+ } else {
1615
+ Util.booleanFilter(paper)
1616
+ HostApp.__this__.$set('data', paper)
1617
+ HostApp.__this__.$goto('paper-state', {}, 'paper-router')
1618
+ // 如果打回重检则重新计时
1619
+ //tag
1620
+ if (HostApp.__this__.role == 'inspect'
1621
+ && HostApp.__this__.data.f_approved
1622
+ && HostApp.__this__.data.f_approved == '打回') {
1623
+ //tag
1624
+ HostApp.__this__.data.f_onsite_time = Util.toStandardTimeString()
1625
+ HostApp.__this__.tick()
1626
+ }
1627
+ }
1628
+ HostApp.__callback__ = null
1629
+ HostApp.__this__ = null
1630
+ },
1631
+ S4() {
1632
+ return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
1633
+ },
1634
+ init() {
1635
+ this.data.f_noplan_item_id = this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4()
1636
+ this.data.ename = Vue.user.ename
1637
+ this.data.f_outlets = Vue.user.f_parentname
1638
+ this.data.f_meetunit = Vue.user.orgpathnames
1639
+ this.data.orgpathstr = Vue.user.orgpathstr
1640
+ this.data.f_check_item_id = this.item.id
1641
+ this.data.f_check_plan_id = this.f_plan_id
1642
+ this.data.f_checker_id = Vue.user.id
1643
+ this.data.f_checker_name = Vue.user.name
1644
+ this.data.f_check_type = this.item.f_user_type
1645
+ this.data.f_subcompany = this.item.f_subcompany
1646
+ this.data.f_approved = this.item.f_approved
1647
+ this.data.f_repair_approved = this.item.f_repair_approved
1648
+ this.data.f_no_checkplan = this.item.f_no_checkplan
1649
+ this.data.f_approved = this.item.f_approved
1650
+ this.data.f_filialeid = this.item.f_filialeid
1651
+ this.data.f_orgstr = this.item.f_orgstr
1652
+ this.data.version = this.item.version
1653
+ this.$set('data.f_meters', this.item.f_plan_meters)
1654
+ this.$set('data.f_userinfo_code', this.item.f_userinfo_code)
1655
+ // 安检状态
1656
+ this.$set('data.f_entry_status', '入户')
1657
+ this.$set('data.f_usegas', '已使用')
1658
+ this.$set('data.f_state', this.item.f_state)
1659
+ // 用户信息
1660
+ this.$set('data.f_user_name', this.item.f_user_name)
1661
+ this.$set('data.f_user_phone', this.item.f_user_phone)
1662
+ this.$set('data.f_userinfoid', this.item.f_userinfoid)
1663
+ this.$set('data.f_address', this.item.f_address)
1664
+ this.$set('data.f_card_id', this.item.f_card_id)
1665
+ this.$set('data.f_area', this.item.f_area)
1666
+ this.$set('data.f_street', this.item.f_street)
1667
+ this.$set('data.f_room', this.item.f_room)
1668
+ this.$set('data.f_building', this.item.f_building)
1669
+ this.$set('data.f_unit', this.item.f_unit)
1670
+ this.$set('data.f_floor', this.item.f_floor)
1671
+ this.$set('data.f_residential_area', this.item.f_residential_area)
1672
+ this.$set('data.f_idnumber', this.item.f_idnumber)
1673
+ this.$set('data.f_comments', this.item.f_comments)
1674
+ this.$set('data.f_userproperties', this.item.f_userproperties)
1675
+ // 处置方式
1676
+ this.$set('data.f_no_gas_device', false)
1677
+ this.$set('data.f_close_valve', false)
1678
+ this.$set('data.f_unload_battery', false)
1679
+ if (this.data.f_check_item_id == '' && this.item.f_no_checkplan == '无计划安检') {
1680
+ this.data.f_check_item_id = this.data.f_noplan_item_id
1681
+ }
1682
+
1683
+ //房屋结构
1684
+ // this.$set('data.f_room_style', '多层')
1685
+ //供暖方式
1686
+ // this.$set('data.f_heating_style', '热力公司集中供暖')
1687
+ if (this.item.f_plan_meters) {
1688
+ for (let de in this.devices) {
1689
+ this.$set('data.device' + this.devices[de].n, [])
1690
+ for (let i = 0; i < this.item.f_plan_meters.length; i++) {
1691
+ if (this.item.f_plan_meters[i].f_meter_type) {
1692
+ if (this.devices[de].device == "燃气表" && this.item.f_plan_meters[i].f_meter_type.indexOf('机表') > 0) {
1693
+ delete this.config['燃气表']['items']['累计购气量']
1694
+ this.data['device' + this.devices[de].n].push({
1695
+ f_device_type: "燃气表",
1696
+ f_items: [{
1697
+ f_defect_level: null,
1698
+ f_device_id: "",
1699
+ f_is_defect: "",
1700
+ f_item_name: "表品牌",
1701
+ f_item_value: this.item.f_plan_meters[i].f_aliasname,
1702
+ f_path: "",
1703
+ type: "string"
1704
+ },
1705
+ {
1706
+ f_defect_level: null,
1707
+ f_device_id: "",
1708
+ f_is_defect: "",
1709
+ f_item_name: "位置",
1710
+ f_item_value: this.item.f_plan_meters[i].f_weizhi,
1711
+ f_path: "",
1712
+ type: "selector"
1713
+ },
1714
+ {
1715
+ f_defect_level: null,
1716
+ f_device_id: "",
1717
+ f_is_defect: "",
1718
+ f_item_name: "表号",
1719
+ f_item_value: this.item.f_plan_meters[i].f_meter_no,
1720
+ f_path: "",
1721
+ type: "number"
1722
+ },
1723
+ {
1724
+ f_defect_level: null,
1725
+ f_device_id: "",
1726
+ f_is_defect: "",
1727
+ f_item_name: "表封号",
1728
+ f_item_value: this.item.f_plan_meters[i].f_metertitles,
1729
+ f_path: "",
1730
+ type: "number"
1731
+ },
1732
+ {
1733
+ f_defect_level: null,
1734
+ f_device_id: "",
1735
+ f_is_defect: "",
1736
+ f_item_name: "表型号",
1737
+ f_item_value: this.item.f_plan_meters[i].f_diaphgram_size,
1738
+ f_path: "",
1739
+ type: "selector"
1740
+ },
1741
+ {
1742
+ f_defect_level: null,
1743
+ f_device_id: "",
1744
+ f_is_defect: "",
1745
+ f_item_name: "表底数",
1746
+ f_item_value: this.item.f_plan_meters[i].f_prior_reading,
1747
+ f_path: "",
1748
+ type: "number"
1749
+ }
1750
+ ]
1751
+ })
1752
+ } else if (this.devices[de].device == "燃气表") {
1753
+ delete this.config['燃气表']['items']['表底数']
1754
+ this.data['device' + this.devices[de].n].push({
1755
+ f_device_type: "燃气表",
1756
+ f_items: [{
1757
+ f_defect_level: null,
1758
+ f_device_id: "",
1759
+ f_is_defect: "",
1760
+ f_item_name: "表品牌",
1761
+ f_item_value: this.item.f_plan_meters[i].f_aliasname,
1762
+ f_path: "",
1763
+ type: "string"
1764
+ },
1765
+ {
1766
+ f_defect_level: null,
1767
+ f_device_id: "",
1768
+ f_is_defect: "",
1769
+ f_item_name: "位置",
1770
+ f_item_value: this.item.f_plan_meters[i].f_weizhi,
1771
+ f_path: "",
1772
+ type: "selector"
1773
+ },
1774
+ {
1775
+ f_defect_level: null,
1776
+ f_device_id: "",
1777
+ f_is_defect: "",
1778
+ f_item_name: "表号",
1779
+ f_item_value: this.item.f_plan_meters[i].f_meter_no,
1780
+ f_path: "",
1781
+ type: "number"
1782
+ },
1783
+ {
1784
+ f_defect_level: null,
1785
+ f_device_id: "",
1786
+ f_is_defect: "",
1787
+ f_item_name: "表封号",
1788
+ f_item_value: this.item.f_plan_meters[i].f_metertitles,
1789
+ f_path: "",
1790
+ type: "number"
1791
+ },
1792
+ {
1793
+ f_defect_level: null,
1794
+ f_device_id: "",
1795
+ f_is_defect: "",
1796
+ f_item_name: "表型号",
1797
+ f_item_value: this.item.f_plan_meters[i].f_diaphgram_size,
1798
+ f_path: "",
1799
+ type: "selector"
1800
+ },
1801
+ {
1802
+ f_defect_level: null,
1803
+ f_device_id: "",
1804
+ f_is_defect: "",
1805
+ f_item_name: "累计购气量",
1806
+ f_item_value: this.item.f_plan_meters[i].f_prior_reading,
1807
+ f_path: "",
1808
+ type: "number"
1809
+ }
1810
+ ]
1811
+ })
1812
+ }
1813
+ }
1814
+ }
1815
+ }
1816
+ }
1817
+
1818
+ this.$goto('paper-state', {}, 'paper-router')
1819
+ },
1820
+ extend(initalObj, finalObj) {
1821
+ var obj = finalObj || {};
1822
+ for (var i in initalObj) {
1823
+ var prop = initalObj[i];
1824
+
1825
+ // 避免相互引用对象导致死循环,如initalObj.a = initalObj的情况
1826
+ if (prop === obj) {
1827
+ continue;
1828
+ }
1829
+
1830
+ if (typeof prop === 'object') {
1831
+ if (obj[i]) {
1832
+ this.extend(obj[i], prop)
1833
+ } else {
1834
+ obj[i] = prop;
1835
+ }
1836
+ }
1837
+ }
1838
+ return obj;
1839
+ },
1840
+ //获取当前时间
1841
+ getNowFormatDate() {
1842
+ var date = new Date();
1843
+ var seperator1 = "-";
1844
+ var seperator2 = ":";
1845
+ var month = date.getMonth() + 1;
1846
+ var strDate = date.getDate();
1847
+ if (month >= 1 && month <= 9) {
1848
+ month = "0" + month;
1849
+ }
1850
+ if (strDate >= 0 && strDate <= 9) {
1851
+ strDate = "0" + strDate;
1852
+ }
1853
+ var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
1854
+ + " " + date.getHours() + seperator2 + date.getMinutes()
1855
+ + seperator2 + date.getSeconds();
1856
+ return currentdate;
1857
+ }
1858
+ },
1859
+ ready() {
1860
+
1861
+ if (this.item.f_check_type == '非民用'){
1862
+ this.config = this.config3
1863
+ }
1864
+ setTimeout(() => {
1865
+ this.loading = false;
1866
+ }, 10000)
1867
+ this.putDevices()
1868
+ this.showAudit()
1869
+ this.newConfig = this.$appdata.getSingleValue('配置中心获取文件') ? this.$appdata.getSingleValue('配置中心获取文件') : '否';
1870
+ if (this.item.f_state != '未检' || this.item.f_no_checkplan == '无计划安检' || this.item.f_no_checkplan == '复检') {
1871
+ if (this.role != 'inspect') {
1872
+ let that = this
1873
+ let id
1874
+ if (this.role == 'view') {
1875
+ id = this.item.id
1876
+ } else if (this.role == 'androidview') {
1877
+ id = this.item.f_paper_id
1878
+ }
1879
+ this.$resetpost(`rs/path/getUserinfomation`, {data: {condition: `id = '${id}'`}}).then((respanse) => {
1880
+ //tag
1881
+ if (respanse.data.length != 0) {
1882
+ // 包含 其它 特殊处理的数组
1883
+ // 对应位置
1884
+ that.data = Object.assign(that.data, respanse.data[0])
1885
+ if (respanse.data[0].f_devices) {
1886
+ for (let da in that.devices) {
1887
+ that.$set('data.device' + that.devices[da].n, [])
1888
+ }
1889
+ respanse.data[0].f_devices.forEach((item) => {
1890
+ for (let de in that.devices) {
1891
+ if (that.devices[de].device == item.f_device_type) {
1892
+ item.f_items.forEach((f_item) => {
1893
+ //tag
1894
+ //tag
1895
+ let itemValues = []
1896
+ f_item.f_item_lists.forEach((tempItem) => {
1897
+ //tag
1898
+ if (tempItem.f_item_value !== 'null') {
1899
+ itemValues.push(tempItem.f_item_value)
1900
+ }
1901
+ })
1902
+ f_item.f_item_value = itemValues
1903
+ })
1904
+ that.data['device' + that.devices[de].n].push({
1905
+ f_device_type: item.f_device_type,
1906
+ f_items: item.f_items
1907
+ })
1908
+ }
1909
+ }
1910
+ })
1911
+ }
1912
+ Util.replaceFalse(that.data)
1913
+ Util.booleanFilter(that.data)
1914
+ if (this.role == 'view') {
1915
+ Util.ratifyPics(that.data)
1916
+ Util.ratifyPics(that.picture)
1917
+ } else {
1918
+ Util.androidRatifyPics(that.data, this.$androidUtil.getProxyUrl())
1919
+ }
1920
+ //tag
1921
+ }
1922
+ // this.$goto('paper-message-blank', {userinfo:this.data,devices:this.devices,config:this.config,role:this.role}, 'self')
1923
+ this.isshow = true
1924
+ asyncReady(this).then(() => {
1925
+ //tag
1926
+ //tag)
1927
+ console.log('Vue.config.safecheck.DevicesConfig', Vue.config.safecheck.DevicesConfig)
1928
+ if (this.data.f_check_type == '民用') {
1929
+ this.deviceconfig = Vue.config.safecheck.DevicesConfig
1930
+ if (typeof this.deviceconfig === 'string') {
1931
+ this.deviceconfig = JSON.parse(this.deviceconfig)
1932
+ }
1933
+ //tag)
1934
+ } else if (this.data.f_check_type == '非民用') {
1935
+ this.deviceconfig = Vue.config.safecheck.DevicesSetConfig
1936
+ if (typeof this.deviceconfig === 'string') {
1937
+ this.deviceconfig = JSON.parse(this.deviceconfig)
1938
+ }
1939
+ //tag)
1940
+ }
1941
+ if (this.data.f_collection_type == '按金额') {
1942
+ if (this.deviceconfig["燃气表"]){
1943
+ let aaa = Object.assign({}, this.config2["燃气表"].items, this.deviceconfig["燃气表"].items)
1944
+ this.deviceconfig["燃气表"].items = aaa
1945
+ }
1946
+ } else {
1947
+ if (this.deviceconfig["燃气表"]){
1948
+ let aaa = Object.assign({}, this.config["燃气表"].items, this.deviceconfig["燃气表"].items)
1949
+ this.deviceconfig["燃气表"].items = aaa
1950
+ }
1951
+ }
1952
+ this.deviceconfig2 = ObjConfig.getObjConfig(this.deviceconfig)
1953
+ this.deviceconfig2[0].items = jsonSort(this.deviceconfig2[0].items, "index")
1954
+ this.deviceconfig2[1].items = jsonSort(this.deviceconfig2[1].items, "index")
1955
+ this.deviceconfig2 = jsonSort(this.deviceconfig2, "index")
1956
+ this.getDeviceAll()
1957
+ })
1958
+ }
1959
+ ).catch(
1960
+ (respanse) => {
1961
+ //tag
1962
+ alert('查找安检单失败')
1963
+ this.loading = false
1964
+ })
1965
+ }
1966
+ }
1967
+
1968
+ },
1969
+ watch: {
1970
+ // 'isUpload'(val){
1971
+ // //tag
1972
+ // }
1973
+ },
1974
+ destroyed() {
1975
+ //tag
1976
+ this.disableTimer()
1977
+ }
1978
+ }
1979
+
1980
+ </script>
1981
+ <style scoped>
1982
+ .table-striped thead tr th {
1983
+ background-color: rgb(223, 237, 251);
1984
+ padding: 10px;
1985
+ border-left: solid 0px #dae4f2;
1986
+ border-top: solid 1px #dae4f2;
1987
+ border-right: none;
1988
+ border-bottom: none;
1989
+ text-align: center;
1990
+ color: black;
1991
+ }
1992
+ </style>