safecheck-client 3.0.35-56 → 3.0.35-58

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,1351 +1,1351 @@
1
- <style scoped>
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
- <work-busy :is-busy="loading"></work-busy>
62
- <div class="container-fluid" style="overflow: scroll">
63
- <div class="row">
64
- <div class="col-md-5" style="margin-right: 2%;margin-left: 2%;height: 100%;overflow: scroll">
65
- <div style="width: 100%;margin: auto">
66
- <table class="table table-striped table-bordered" style="margin-bottom: 6px">
67
- <thead>
68
- <tr>
69
- <th colspan="6" style="text-align: center">用户基本信息</th>
70
- </tr>
71
- </thead>
72
- <tbody>
73
- <tr>
74
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户编号:</td>
75
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_userinfo_code }}</td>
76
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户名称:</td>
77
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_user_name }}</td>
78
- </tr>
79
- <tr>
80
- <td style="text-align: center;border: #E9E9E9 solid 1px">证件号码:</td>
81
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_idnumber }}</td>
82
- <td style="text-align: center;border: #E9E9E9 solid 1px">用户类型:</td>
83
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_check_type }}</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_user_phone }}</td>
88
- <td style="text-align: center;border: #E9E9E9 solid 1px">区 / 县:</td>
89
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_area }}</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_street }}</td>
94
- <td style="text-align: center;border: #E9E9E9 solid 1px">楼 号:</td>
95
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_building }}</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_unit }}</td>
100
- <td style="text-align: center;border: #E9E9E9 solid 1px">楼 层:</td>
101
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_floor }}</td>
102
- </tr>
103
- <tr>
104
- <td style="text-align: center;border: #E9E9E9 solid 1px">门 牌 号 :</td>
105
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_room }}</td>
106
- <td style="text-align: center;border: #E9E9E9 solid 1px">用户性质:</td>
107
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_userproperties }}</td>
108
- </tr>
109
- <tr>
110
- <td style="text-align: center;border: #E9E9E9 solid 1px">备注信息:</td>
111
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_comments }}</td>
112
- <td style="text-align: center;border: #E9E9E9 solid 1px">小区名称:</td>
113
- <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_residential_area }}</td>
114
- </tr>
115
- <tr>
116
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">详细住址:</td>
117
- <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_address }}</td>
118
- </tr>
119
- </tbody>
120
- </table>
121
- <table class="table table-striped table-bordered" v-show="paperdata.f_entry_status=='入户'">
122
- <thead>
123
- <tr>
124
- <th colspan="4" style="text-align: center">用户安检概况</th>
125
- </tr>
126
- </thead>
127
- <tbody>
128
- <tr>
129
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">到达时间:</td>
130
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_onsite_time }}</td>
131
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">离开时间:</td>
132
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_offsite_time }}</td>
133
- </tr>
134
- <tr>
135
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">入户状态:</td>
136
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_entry_status }}</td>
137
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">燃气使用:</td>
138
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_usegas }}</td>
139
- </tr>
140
- <tr>
141
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">用户满意度:</td>
142
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">{{
143
- paperdata.f_client_evaluation
144
- }}
145
- </td>
146
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">安检结果:</td>
147
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">{{ ajresult }}</td>
148
- </tr>
149
- <tr>
150
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">备注:</td>
151
- <td colspan="3"
152
- style="text-align: center;border: #E9E9E9 solid 1px;word-wrap:break-word;word-break:break-all;width:87%">
153
- {{ paperdata.f_repair_approved_note }}
154
- </td>
155
- </tr>
156
- <tr>
157
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">隐患详情:</td>
158
- <td colspan="3"
159
- style="text-align: center;border: #E9E9E9 solid 1px;word-wrap:break-word;word-break:break-all;width:87%">
160
- <span v-for="deviceCollect in deviceCollects">
161
- <span class="li-font">
162
- {{ deviceCollect.name }}:{{ deviceCollect.value }}&nbsp;&nbsp;&nbsp;
163
- </span>
164
- <br>
165
- <span v-if="deviceCollect.value == '有隐患'">
166
- <lable>
167
- 隐患:
168
- </lable>
169
- <span class="li-font" v-for="val in deviceCollect.devices">
170
- {{ val }}&nbsp;&nbsp;&nbsp;
171
- </span><br>
172
- </span>
173
-
174
- </span>
175
- </td>
176
- </tr>
177
-
178
- </tbody>
179
- </table>
180
- <table class="table table-striped table-bordered" v-show="paperdata.f_entry_status!='入户'">
181
- <thead>
182
- <tr>
183
- <th colspan="4" style="text-align: center">用户安检概况</th>
184
- </tr>
185
- </thead>
186
- <tbody>
187
- <tr>
188
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">到达时间:</td>
189
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_onsite_time }}</td>
190
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">离开时间:</td>
191
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_offsite_time }}</td>
192
- </tr>
193
- <tr>
194
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">入户状态:</td>
195
- <td colspan="2" style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
196
- {{ paperdata.f_entry_status }}
197
- </td>
198
- <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">
199
- <button-link style="color: black" type="button" class="btn btn-link" @click="showpicture2()">
200
- {{ dev.lname }}
201
- 查看{{ data.f_entry_status }}照片
202
- </button-link>
203
- </td>
204
- </tr>
205
- </tbody>
206
- </table>
207
- <table class="table table-striped table-bordered" v-show="paperdata.f_entry_status=='入户'">
208
- <thead>
209
- <tr>
210
- <th style="text-align: center">燃气设施全景照片</th>
211
- </tr>
212
- </thead>
213
- <tbody>
214
- <tr>
215
- <td style="margin: auto;text-align: center">
216
- <div class="container" style="max-width: 550px;background: #FFFFFF">
217
- <img-self-plus :src="paperdata.f_fuel_path" style="float: left" width="150"
218
- height="200"></img-self-plus>
219
- </div>
220
- </td>
221
- </tr>
222
- </tbody>
223
- </table>
224
- <table class="table table-striped table-bordered" v-show="paperdata.f_entry_status=='入户'">
225
- <thead>
226
- <tr>
227
- <th style="text-align: center">燃气表照片</th>
228
- </tr>
229
- </thead>
230
- <tbody>
231
- <tr>
232
- <td style="margin: auto;text-align: center">
233
- <div class="container" style="max-width: 550px;background: #FFFFFF">
234
- <img-self-plus :src="paperdata.f_gas_path" style="float: left" width="150"
235
- height="200"></img-self-plus>
236
- </div>
237
- </td>
238
- </tr>
239
- </tbody>
240
- </table>
241
- <table class="table table-striped table-bordered" v-show="paperdata.f_entry_status=='入户'">
242
- <thead>
243
- <tr>
244
- <th style="text-align: center">灶具照片</th>
245
- </tr>
246
- </thead>
247
- <tbody>
248
- <tr>
249
- <td style="margin: auto;text-align: center">
250
- <div class="container" style="max-width: 550px;background: #FFFFFF">
251
- <img-self-plus :src="paperdata.f_stove_path" style="float: left" width="150"
252
- height="200"></img-self-plus>
253
- </div>
254
- </td>
255
- </tr>
256
- </tbody>
257
- </table>
258
- <table class="table table-striped table-bordered" v-show="paperdata.f_entry_status=='入户'">
259
- <thead>
260
- <tr>
261
- <th style="text-align: center">其他照片</th>
262
- </tr>
263
- </thead>
264
- <tbody>
265
- <tr>
266
- <td style="margin: auto;text-align: center">
267
- <div class="container" style="max-width: 550px;background: #FFFFFF">
268
- <img-self-plus :src="paperdata.f_other_path" style="float: left" width="150"
269
- height="200"></img-self-plus>
270
- </div>
271
- </td>
272
- </tr>
273
- </tbody>
274
- </table>
275
- <table class="table table-striped table-bordered" v-show="paperdata.f_entry_status=='入户'">
276
- <thead>
277
- <tr>
278
- <th style="text-align: center">总体安检照片</th>
279
- </tr>
280
- </thead>
281
- <tbody>
282
- <tr>
283
- <td style="margin: auto;text-align: center">
284
- <div class="container" style="max-width: 550px;background: #FFFFFF">
285
- <div class="img" v-for="img in paperdata.f_overall_imgs">
286
- <img-self-plus :src="img.f_overall_path" style="float: left" width="150"
287
- height="200"></img-self-plus>
288
- </div>
289
- </div>
290
-
291
-
292
- </td>
293
-
294
- </tr>
295
- </tbody>
296
- </table>
297
- <table class="table table-striped table-bordered" v-show="paperdata.f_entry_status=='入户'">
298
- <thead>
299
- <tr>
300
- <th style="text-align: center">用户签名照片</th>
301
- </tr>
302
- </thead>
303
- <tbody>
304
- <tr>
305
- <td style="margin: auto;text-align: center">
306
- <div class="container" style="max-width: 500px;background: #FFFFFF">
307
- <div class="img" style="float: none">
308
- <img-self-plus :src="paperdata.f_sign_path" width="486" height="300"></img-self-plus>
309
- </div>
310
- </div>
311
- </td>
312
- </tr>
313
- </tbody>
314
- </table>
315
- <table class="table table-striped table-bordered" v-show="paperdata.f_entry_status=='入户'&& item.f_recording1_path">
316
- <thead>
317
- <tr>
318
- <th style="text-align: center">录音文件</th>
319
- </tr>
320
- </thead>
321
- <tbody>
322
- <tr>
323
- <td style="margin: auto;text-align: center">
324
- <div class="container" style="max-width: 500px;background: #FFFFFF">
325
- <a class="button_spacing button_search-1" :download="item.f_user_name+'-'+item.f_check_type+'-'+录音文件.arm"
326
- :href="'rs/image/file/'+item.f_recording1_path" >录音下载</a>
327
- </div>
328
- </td>
329
- </tr>
330
- </tbody>
331
- </table>
332
- </div>
333
- </div>
334
- <div class style="width: 1%;height: 100%;background-color: #F1F8FF;float: left;"></div>
335
- <div class="col-md-6" style="height: 100%;overflow: scroll">
336
- <div style="width: 95%;margin-left: 5%">
337
- <table class="table table-striped table-bordered" v-for="config in deviceconfig2">
338
- <thead v-show="!(config.checkname!='燃气表'&&paperdata.f_entry_status!='入户')">
339
- <tr>
340
- <th style="text-align: center">{{ config.checkname }}</th>
341
- </tr>
342
- </thead>
343
- <tbody v-show="!(config.checkname!='燃气表'&&paperdata.f_entry_status!='入户')">
344
- <tr v-for="dev in config.items">
345
- <td v-if="dev.type!='text'">
346
- <div class="row">
347
- <div class="col-md-8" style="text-align: center;">
348
- <label>
349
- <button-link type="button" class="btn btn-link" @click="showpicture(config.checkname,dev.lname)"
350
- :style="isred(config.checkname,dev.lname)?'color:red':'color:black'">
351
- {{ dev.lname }}
352
- </button-link>
353
- </label>
354
- </div>
355
- <div class="col-md-4" style="text-align: center">
356
- <label style="font-weight: normal"
357
- v-if="dev.type!='picture'">{{ getDeviceValue(config.checkname, dev.lname) ? getDeviceValue(config.checkname, dev.lname) : '无' }}</label>
358
- <label style="font-weight: normal" v-if="dev.type=='picture'">
359
- <div v-show="getDevicePath(config.checkname,dev.lname)">
360
- <button-link style="color: black" type="button" class="btn btn-link"
361
- @click="showpath(getDevicePath(config.checkname,dev.lname),dev.lname)">查看照片
362
- </button-link>
363
- </div>
364
- <div v-show="!getDevicePath(config.checkname,dev.lname)">无照片</div>
365
- </label>
366
- </div>
367
- </div>
368
- </td>
369
- <td v-if="dev.type==='text'">
370
- <label style="width: 100%;text-align: center">{{ dev.lname }}</label>
371
- </td>
372
- </tr>
373
- </tbody>
374
- </table>
375
- </div>
376
- </div>
377
-
378
- </div>
379
- </div>
380
- </div>
381
- <modal :show.sync="imgshow" v-ref:modal backdrop="true">
382
- <header slot="modal-header" class="modal-header">
383
- {{ picturename }}
384
- </header>
385
- <article slot="modal-body" class="modal-body">
386
- <div class="from-group">
387
- <div class="row">
388
- <div class="col-md-6">
389
- <img-self-plus v-if="showimg1" :src="showimg1" width="240" height="300"></img-self-plus>
390
- </div>
391
- <div class="col-md-6">
392
- <img-self-plus v-if="showimg2" :src="showimg2" width="240" height="300"></img-self-plus>
393
- </div>
394
- <div class="col-md-6" v-for="item in otherDarginShowImgs">
395
- <img-self-plus v-if="item.path" :src="item.path" width="240" height="300"></img-self-plus>
396
- </div>
397
- </div>
398
- </div>
399
- </article>
400
- <footer slot="modal-footer" class="modal-footer" v-show="false">
401
- <button type="button" class="btn btn-success" @click='imgclose'>关闭</button>
402
- </footer>
403
- </modal>
404
- <modal :show.sync="imgshow2" v-ref:modal backdrop="true">
405
- <header slot="modal-header" class="modal-header">
406
- {{ paperdata.f_entry_status }}照片
407
- </header>
408
- <article slot="modal-body" class="modal-body">
409
- <div class="from-group">
410
- <div class="row">
411
- <div class="col-md-6">
412
- <img-self-plus v-if="this.paperdata.f_entry_status=='到访不遇'" :src="data.f_noanswer_path" width="300"
413
- height="400"></img-self-plus>
414
- <img-self-plus v-if="(this.paperdata.f_entry_status=='到访不遇' && data.f_noanswer1_path)" :src="data.f_noanswer1_path" width="300"
415
- height="400"></img-self-plus>
416
- <img-self-plus v-if="(this.paperdata.f_entry_status=='到访不遇' && data.f_noanswer2_path)" :src="data.f_noanswer2_path" width="300"
417
- height="400"></img-self-plus>
418
- </div>
419
- <div class="col-md-6">
420
- <img-self-plus v-if="this.paperdata.f_entry_status=='拒检'" :src="data.f_rejectcheck_path" width="300"
421
- height="400"></img-self-plus>
422
- <img-self-plus v-if="(this.paperdata.f_entry_status=='拒检' && data.f_rejectcheck1_path)" :src="data.f_rejectcheck1_path" width="300"
423
- height="400"></img-self-plus>
424
- <img-self-plus v-if="(this.paperdata.f_entry_status=='拒检' && data.f_rejectcheck2_path)" :src="data.f_rejectcheck2_path" width="300"
425
- height="400"></img-self-plus>
426
- </div>
427
- </div>
428
- </div>
429
- </article>
430
- <footer slot="modal-footer" class="modal-footer" v-show="false">
431
- <button type="button" class="btn btn-success" @click='imgclose'>关闭</button>
432
- </footer>
433
- </modal>
434
- </template>
435
-
436
- <script>
437
- // import PaperUserm from './PaperUserm'
438
- // import PaperStatem from './PaperStatem'
439
- // import Devicesm from './Devicesm'
440
- // import PaperFeedbackm from './PaperFeedbackm'
441
- import ObjConfig from '../../../utils/GerJsonObjectConfig'
442
- import RadioGroup from 'vue-client/src/vue-strap/src/radioGroup'
443
- import Radio from 'vue-client/src/vue-strap/src/radioBtn'
444
- import Vue from 'vue'
445
- import * as Util from '../../Util'
446
- import {jsonSort} from '../../../utils/LdapHelper'
447
- import {HttpResetClass} from "vue-client";
448
-
449
- let asyncReady = async function (self) {
450
- // 获取配置信息
451
- try {
452
- let res = await new HttpResetClass().load('post', 'rs/sql/tel_singleTable_OrderBy', {
453
- data: {
454
- items: 'f_dir',
455
- tablename: 't_organization',
456
- condition: `id = '${self.item.f_filialeid}'`,
457
- orderitem: 'id'
458
- }
459
- })/*.then(res=>{*/
460
- //tag
461
- //tag)
462
- if (!res.data[0].f_dir) {
463
- self.$showMessage("该公司无组织目录,无法获取配置文件,请联系管理员确认")
464
- } else {
465
- //this.f_dir=res.data[0].f_dir
466
- try {
467
- let res1 = await new HttpResetClass().load('GET', `/safecheck/rs/vue/DevicesConfig.json?folderName=phonevues&orgDir=${res.data[0].f_dir}`, {}, {
468
- resolveMsg: '获取居民配置项成功!',
469
- rejectMsg: '获取居民配置项出错!'
470
- })/*.then(res=>{*/
471
- //tag
472
- //this.safeConfig["民用配置项"]=Object.assign({},res.data)
473
- Vue.config.safecheck.DevicesConfig = res1.data
474
- /*})*/
475
- let res2 = await new HttpResetClass().load('GET', `/safecheck/rs/vue/DevicesSetConfig.json?folderName=phonevues&orgDir=${res.data[0].f_dir}`, {}, {
476
- resolveMsg: '获取非居民配置项成功!',
477
- rejectMsg: '获取非居民配置项出错!'
478
- })/*.then(res=>{*/
479
- //tag
480
- //this.safeConfig["非民用配置项"]=Object.assign({},res.data)
481
- Vue.config.safecheck.DevicesSetConfig = res2.data
482
- /*}).then(res=> {
483
- })*/
484
-
485
- } catch (e) {
486
- self.$showMessage("获取配置文件失败" + e)
487
- }
488
- }
489
- } catch (error) {
490
- // 忽略704,文件找不到异常R
491
- if (error.status !== 704) {
492
- throw error
493
- }
494
- }
495
- }
496
- export default {
497
- title: '安检单',
498
- props: ['f_plan_id', 'item', 'role'],
499
- data() {
500
- return {
501
- data: {
502
- f_devices: [],
503
- f_defect_content: ''
504
- },
505
- paperdata: {},
506
- picturename: '隐患照片',
507
- defectDevice: {},
508
- hasDevice: false,
509
- deviceCollect: {},
510
- deviceCollects: [],
511
- isshow: false,
512
- ajresult: '',
513
- loading: true,
514
- imgshow: false,
515
- imgshow2: false,
516
- isUpload: false,
517
- livedispose: '',
518
- showimg1: '',
519
- showimg2: '',
520
- showimg3: '',
521
- showimg4: '',
522
- hiddenDangerImgNumber: 0, //配置项中隐患照片数
523
- otherDarginShowImgs: [],//其他隐患图片
524
- startClick: false, //开始安检按钮是否可点击
525
- isStrat: false, //是否开始安检
526
- checkResult: {},//查询结果
527
- newcheckResult: {},
528
- timer: null,
529
- showModal: false,
530
- pic_to_be_viewed: '',
531
- showBack: true,
532
- devices: [],
533
- devicesAll: [],
534
- configAJ: [],
535
- configRQ: [],
536
- deviceconfig: {},
537
- deviceconfig2: [],
538
- f_devices: [],
539
- config: {
540
- "燃气表": {
541
- "checkmust": true,
542
- "index": 1,
543
- "items": {
544
- //"燃气表照片":{"index":1,"type":"picture","remark":"(拍摄清晰的表具编号、字轮数、剩余气量等)"},
545
- "基表编号": {"index": 1, "type": "string", "readonly": true},
546
- "气表型号": {"index": 2, "type": "string", "readonly": true},
547
- "气表品牌": {"index": 3, "type": "string", "readonly": true},
548
- "进气方向": {"index": 4, "type": "string", "readonly": true},
549
- // "初始表底":{"index":5,"type":"number","isshow":false,"readonly":true},
550
- "上期表读数": {"index": 5, "type": "number", "readonly": true, isshow: false},
551
- "累购气量": {"index": 6, "type": "number", "readonly": true},
552
- "已用气量": {"index": 7, "type": "number", "checkmust": true},//基表数
553
- "剩余气量": {"index": 8, "type": "number", "checkmust": true},//累购-已用
554
- //显示屏数 --实际剩余气量
555
- "气量异常差值": {"index": 9, "type": "number", "readonly": true}
556
- }
557
- // 注意,配置项的index必须与上面的固定配置保持'顺序'
558
- }
559
- },
560
- //金额
561
- config2: {
562
- "燃气表": {
563
- "checkmust": true,
564
- "index": 1,
565
- "items": {
566
- //"燃气表照片":{"index":1,"type":"picture","remark":"(拍摄清晰的表具编号、字轮数、剩余气量等)"},
567
- "基表编号": {"index": 1, "type": "string", "readonly": true},
568
- "气表型号": {"index": 2, "type": "string", "readonly": true},
569
- "气表品牌": {"index": 3, "type": "string", "readonly": true},
570
- "进气方向": {"index": 4, "type": "string", "readonly": true},
571
- // "初始表底":{"index":5,"type":"number","isshow":false,"readonly":true},
572
- "上期表读数": {"index": 5, "type": "number", "readonly": true, isshow: false},
573
- "累购金额": {"index": 6, "type": "number", "readonly": true},
574
- "已用气量": {"index": 7, "type": "number", "checkmust": true},
575
- //显示屏数 --实际剩余气量
576
- "剩余金额": {"index": 8, "type": "number", "checkmust": true},
577
- "金额异常差值": {"index": 9, "type": "number", "readonly": true}
578
- }
579
- }
580
- },
581
- }
582
- },
583
- components: {
584
- RadioGroup,
585
- Radio,
586
- },
587
- computed: {
588
- selector: {
589
- get() {
590
- return 'paper-state'
591
- },
592
- set(val) {
593
- if (this.isStrat) {
594
- //;
595
- this.$goto(val, {userinfo: this.data}, 'paper-router')
596
- } else {
597
- this.$showMessage('未开始安检!')
598
- }
599
- }
600
- },
601
- actionEnabled: {
602
- get() {
603
- return this.role == 'inspect'
604
- }
605
- }
606
- },
607
- methods: {
608
- devicesCollect() {
609
- //tag
610
- //tag)
611
- //tag)
612
- //tag
613
-
614
- this.deviceCollects = []
615
- let checkResult = '正常'
616
- this.result = '正常'
617
- let codata = JSON.parse(JSON.stringify(this.data))
618
- //tag)
619
- for (let device in this.data) {
620
- let f_device_type
621
- if (device.startsWith("device")) {
622
- for (let item in this.data[device]) {
623
- if (this.data[device].length > 1) {
624
- let j = Number.parseInt(item) + 1
625
- f_device_type = `${this.data[device][item].f_device_type}${j}`
626
- } else {
627
- f_device_type = this.data[device][item].f_device_type
628
- }
629
- // //tag
630
- let deviceInfos = []
631
- for (let i in this.data[device][item].f_items) {
632
- let defects = ''
633
- let items = this.data[device][item].f_items[i]
634
- if ((items.type === 'selector' || items.type === 'radio' || items.type === 'checkbox') && items.f_item_value != null && items.f_item_value instanceof Array) {
635
- for (let i in items.f_item_value) {
636
- let f_item_value = items.f_item_value[i]
637
-
638
- //tag)
639
- //tag)
640
- //tag)
641
- //tag)
642
- if (!this.config[this.data[device][item].f_device_type].items[items.f_item_name]&& (items.isdefect && (items.isdefect == 'true' || items.isdefect == true))) {
643
- continue
644
- }
645
- if (items.f_is_defect == 'true' || items.f_is_defect == true) {
646
- checkResult = '有隐患'
647
- this.result = '有隐患'
648
- defects = `${defects}:${items.f_item_value}/`
649
- }
650
- /*let options = this.config[this.data[device][item].f_device_type].items[items.f_item_name].options
651
- for (let option in options) {
652
- if (options[option].data == f_item_value) {
653
- if (options[option].isdefect == 'true' || options[option].isdefect == true) {
654
- checkResult = '有隐患'
655
- this.result = '有隐患'
656
- defects = `${defects}:${options[option].data}/`
657
- // let level = options[option].level
658
- }
659
- }
660
- }*/
661
- //tag)
662
- }
663
- if (defects != '') {
664
- deviceInfos.push(`${items.f_item_name}${defects.substring(0, defects.length - 1)}`)
665
- }
666
- } else if (items.type === 'string' && items.f_is_defect && items.f_item_value[0]) {
667
- checkResult = '有隐患'
668
- this.result = '有隐患'
669
- deviceInfos.push(`${items.f_item_name}:${items.f_item_value[0]}`)
670
- } else if (items.f_item_name == '金额异常差值') {
671
- var deviation = this.$appdata.getSingleValue('金额异常差值允许误差')
672
- //tag
673
- if (parseFloat(items.f_item_value[0]).toString() != "NaN" && parseFloat(deviation).toString() != "NaN") {
674
- if (parseFloat(items.f_item_value[0]) > parseFloat(deviation) || parseFloat(items.f_item_value[0]) < parseFloat(deviation) * -1) {
675
- checkResult = '有隐患'
676
- this.result = '有隐患'
677
- deviceInfos.push(`${items.f_item_name}:${items.f_item_value[0]}`)
678
- }
679
- }
680
- } else if (items.f_item_name == '气量异常差值') {
681
- var deviation = this.$appdata.getSingleValue('气量异常差值允许误差')
682
- //tag
683
- if (parseFloat(items.f_item_value[0]).toString() != "NaN" && parseFloat(deviation).toString() != "NaN") {
684
- if (parseFloat(items.f_item_value[0]) > parseFloat(deviation) || parseFloat(items.f_item_value[0]) < parseFloat(deviation) * -1) {
685
- checkResult = '有隐患'
686
- this.result = '有隐患'
687
- deviceInfos.push(`${items.f_item_name}:${items.f_item_value[0]}`)
688
- }
689
- }
690
- }
691
- //tag)
692
- //tag
693
- //tag
694
- if (items.type === 'selector') {
695
- items.selected = []
696
- } else if (items.type === 'inputSelector') {
697
- items.selected = ''
698
- }
699
- }
700
-
701
-
702
- //tag
703
- this.$set('deviceCollect.name', f_device_type)
704
- this.$set('deviceCollect.value', checkResult)
705
- this.$set('deviceCollect.devices', deviceInfos)
706
- //tag)
707
- if (this.deviceCollect.name) {
708
- //tag
709
- this.deviceCollects.push(JSON.parse(JSON.stringify(this.deviceCollect)))
710
- }
711
-
712
- checkResult = '正常'
713
- this.deviceCollect = {}
714
- }
715
- }
716
- }
717
- if (this.deviceCollects.length > 0) {
718
- this.hasDevice = true
719
- }
720
- this.ajresult = JSON.parse(this.data.f_defect_content).result
721
- this.showimg3 = this.data.f_noanswer_path
722
- this.showimg4 = this.data.f_rejectcheck_path
723
- this.paperdata = this.data
724
- this.loading = false
725
- },
726
- imgclose() {
727
- this.imgshow = false
728
- },
729
- putDevices() {
730
- ////tag
731
- this.$set('data.approve', "true")
732
- this.$set('data.writeback', "false")
733
- if (Vue.config.safecheck.ApproveConfig != undefined) {
734
- if (Vue.config.safecheck.ApproveConfig.approve != undefined) {
735
- this.$set('data.approve', Vue.config.safecheck.ApproveConfig.approve)
736
- }
737
- if (Vue.config.safecheck.ApproveConfig.writeback != undefined) {
738
- this.$set('data.writeback', Vue.config.safecheck.ApproveConfig.writeback)
739
- }
740
- if (Vue.config.safecheck.ApproveConfig.livedispose != undefined) {
741
- this.livedispose = Vue.config.safecheck.ApproveConfig.livedispose
742
- }
743
- if(Vue.config.safecheck.ApproveConfig.hiddendanger != undefined) {
744
- if (parseInt(Vue.config.safecheck.ApproveConfig.hiddendanger) >= 3) {
745
- this.hiddenDangerImgNumber = 3
746
- }else {
747
- this.hiddenDangerImgNumber = parseInt(Vue.config.safecheck.ApproveConfig.hiddendanger)
748
- }
749
- }
750
- }
751
- //tag
752
-
753
- //tag)
754
- if (!this.item.f_safecheck_type) {
755
- this.config = this.extend(this.config, Vue.config.safecheck[Vue.config.safecheck.SafecheckType['年度普检'][this.item.f_check_type]])
756
- } else {
757
- if (Vue.config.safecheck.DevicesConfig != undefined)
758
- this.config = this.extend(this.config, Vue.config.safecheck[Vue.config.safecheck.SafecheckType[this.item.f_safecheck_type][this.item.f_check_type]])
759
- }
760
- //遍历安检项配置
761
- for (let i in this.config) {
762
- //取得安检项索引值
763
- let n = this.config[i].index
764
- this.devices[n - 1] = {device: i, n: n, checkmust: this.config[i].checkmust}
765
- this.$set('data.' + 'device' + n, [])
766
- let items = []
767
- for (let it in this.config[i].items) {
768
- //赋值下拉选项
769
- if (this.config[i].items[it].type == 'selector') {
770
- for (let op in this.config[i].items[it].options)
771
- if (this.config[i].items[it].options[op].isdefault == true) {
772
- items.push({
773
- f_defect_level: this.config[i].items[it].options[op].level,
774
- f_is_defect: this.config[i].items[it].options[op].isdefect,
775
- f_item_name: it,
776
- f_item_value: this.config[i].items[it].options[op].data,
777
- f_path: "",
778
- type: "selector"
779
- })
780
- }
781
- }
782
- }
783
- n = n + 1
784
- }
785
-
786
- },
787
- showpath(val1, val2) {
788
- //tag
789
- //tag
790
- if (val1) {
791
- this.showimg1 = val1
792
- this.picturename = val2
793
- this.imgshow = true
794
- }
795
- },
796
- showpicture(val1, val2) {
797
- //tag
798
- if (val2 == '气量异常差值' || val2 == '金额异常差值') {
799
- return
800
- }
801
- for (let i = 0; i < this.devicesAll.length; i++) {
802
- for (let j = 0; j < this.devicesAll[i].length; j++) {
803
- if (this.devicesAll[i][j].f_device_type == val1) {
804
- for (let k = 0; k < this.devicesAll[i][j].f_items.length; k++) {
805
- if (this.devicesAll[i][j].f_items[k].f_item_name == val2) {
806
- if (!this.devicesAll[i][j].f_items[k].f_is_defect) {
807
- return false
808
- } else {
809
- this.showimg1 = this.devicesAll[i][j].f_items[k].f_path
810
- this.showimg2 = this.devicesAll[i][j].f_items[k].f_second_path
811
- this.otherDarginShowImgs = []
812
- for (let l = 0; l < this.hiddenDangerImgNumber; l++) {
813
- let img = {path:''}
814
- if (this.devicesAll[i][j].f_items[k]['f_p' + (l+1)+'_path']) {
815
- img.path = this.devicesAll[i][j].f_items[k]['f_p' + (l+1)+'_path'] + '?' + Math.random()
816
- this.otherDarginShowImgs.push(img)
817
- }
818
- }
819
- this.picturename = '隐患照片'
820
- this.imgshow = true
821
- return true
822
- }
823
- }
824
- }
825
-
826
- }
827
- }
828
- }
829
- },
830
- isred(val1, val2) {
831
- //tag
832
- if (val2 == '气量异常差值' || val2 == '金额异常差值') {
833
- return
834
- }
835
- for (let i = 0; i < this.devicesAll.length; i++) {
836
- for (let j = 0; j < this.devicesAll[i].length; j++) {
837
- if (this.devicesAll[i][j].f_device_type == val1) {
838
- for (let k = 0; k < this.devicesAll[i][j].f_items.length; k++) {
839
- if (this.devicesAll[i][j].f_items[k].f_item_name == val2) {
840
- if (!this.devicesAll[i][j].f_items[k].f_is_defect) {
841
- return false
842
- } else {
843
- return true
844
- }
845
- }
846
- }
847
-
848
- }
849
- }
850
- }
851
- },
852
- showpicture2() {
853
- this.imgshow2 = true
854
- },
855
- getDeviceValue(val1, val2) {
856
- let aa = ''
857
- for (let i = 0; i < this.devicesAll.length; i++) {
858
- for (let j = 0; j < this.devicesAll[i].length; j++) {
859
- if (this.devicesAll[i][j].f_device_type == val1) {
860
- for (let k = 0; k < this.devicesAll[i][j].f_items.length; k++) {
861
- if (this.devicesAll[i][j].f_items[k].f_item_name == val2) {
862
- if (this.devicesAll[i][j].f_items[k].f_item_lists[0]) {
863
- for (let l = 0; l < this.devicesAll[i][j].f_items[k].f_item_lists.length; l++) {
864
- aa += this.devicesAll[i][j].f_items[k].f_item_lists[l].f_item_value + ' '
865
- }
866
- return aa
867
- }
868
- }
869
- }
870
-
871
- }
872
- }
873
- }
874
-
875
- },
876
- getDevicePath(val1, val2) {
877
- for (let i = 0; i < this.devicesAll.length; i++) {
878
- for (let j = 0; j < this.devicesAll[i].length; j++) {
879
- if (this.devicesAll[i][j].f_device_type == val1) {
880
- for (let k = 0; k < this.devicesAll[i][j].f_items.length; k++) {
881
- if (this.devicesAll[i][j].f_items[k].f_item_name == val2) {
882
- return this.devicesAll[i][j].f_items[k].f_path
883
- }
884
- }
885
-
886
- }
887
- }
888
- }
889
-
890
- },
891
- getDeviceAll() {
892
- let keyall = Object.keys(this.data)
893
- for (let i = 0; i < keyall.length; i++) {
894
- //tag)
895
- if (keyall[i].startsWith('device') && keyall[i] != 'deviceundefined') {
896
- this.devicesAll.push(this.data[keyall[i]])
897
- //tag
898
- }
899
- }
900
- //tag
901
- //tag)
902
- this.devicesCollect()
903
-
904
- },
905
-
906
- back() {
907
- if (this.role == 'inspect') {
908
- if (!this.isStrat) {
909
- this.$back()
910
- return
911
- } else {
912
- this.savePaper(true).then(() => {
913
- this.$back()
914
- this.isStrat = false
915
- })
916
- }
917
- } else {
918
- this.$back()
919
- }
920
- },
921
- checkIsStart() {
922
- alert('asdad')
923
- return
924
- },
925
-
926
- viewPic(fileName) {
927
- //tag
928
- if (this.role == 'view') {
929
- if (!fileName.endsWith('nopic.png')) {
930
- this.pic_to_be_viewed = fileName
931
- this.showModal = true
932
- }
933
- } else {
934
- HostApp.viewPic(fileName)
935
- }
936
- },
937
- tick() {
938
- this.timer = null
939
- this.data.f_offsite_time = Util.toStandardTimeString()
940
- this.timer = window.setTimeout(this.tick, 1000)
941
- },
942
- getRepairState() {
943
- let repaired = true
944
- this.data.f_defects.forEach((defect) => {
945
- repaired = repaired & (defect.f_ratification == '已处理')
946
- })
947
- return repaired
948
- },
949
- verifyRepairDefects() {
950
- this.data.f_repair_date = Util.toStandardTimeString()
951
- this.data.f_repaired = this.getRepairState() ? '已修' : '在修'
952
- },
953
- genuineSave(saveOnly) {
954
- HostApp.__this__.save(saveOnly)
955
- if (!saveOnly)
956
- HostApp.__this__.disableTimer()
957
- HostApp.__callback__ = null
958
- HostApp.__this__ = null
959
- },
960
- setUrgency() {
961
- this.data.f_defect_urgency = 'Z'
962
- let that = this
963
- this.data.f_defects.forEach(function (defect) {
964
- if (that.data.f_defect_urgency > defect.f_defect_level.charAt(0))
965
- that.data.f_defect_urgency = defect.f_defect_level.charAt(0)
966
- })
967
- if (this.data.f_defect_urgency == 'Z')
968
- this.data.f_defect_urgency = null
969
- },
970
- disableTimer() {
971
- if (this.timer) {
972
- window.clearTimeout(this.timer)
973
- this.timer = null
974
- }
975
- },
976
- loaded(paper) {
977
- if (!paper.hasOwnProperty('id')) {
978
- this.$showMessage("该安检单在手机上已经不存在,可能是卸载过程序。可以进入重新安检,或返回安检计划。")
979
- this.init()
980
- } else {
981
- Util.booleanFilter(paper)
982
- HostApp.__this__.$set('data', paper)
983
- HostApp.__this__.$goto('paper-state', {}, 'paper-router')
984
- // 如果打回重检则重新计时
985
- //tag
986
- if (HostApp.__this__.role == 'inspect'
987
- && HostApp.__this__.data.f_approved
988
- && HostApp.__this__.data.f_approved == '打回') {
989
- //tag
990
- HostApp.__this__.data.f_onsite_time = Util.toStandardTimeString()
991
- HostApp.__this__.tick()
992
- }
993
- }
994
- HostApp.__callback__ = null
995
- HostApp.__this__ = null
996
- },
997
- S4() {
998
- return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
999
- },
1000
- init() {
1001
- this.data.f_noplan_item_id = this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4()
1002
- this.data.ename = Vue.user.ename
1003
- this.data.f_outlets = Vue.user.f_parentname
1004
- this.data.f_meetunit = Vue.user.orgpathnames
1005
- this.data.orgpathstr = Vue.user.orgpathstr
1006
- this.data.f_check_item_id = this.item.id
1007
- this.data.f_check_plan_id = this.f_plan_id
1008
- this.data.f_checker_id = Vue.user.id
1009
- this.data.f_checker_name = Vue.user.name
1010
- this.data.f_check_type = this.item.f_user_type
1011
- this.data.f_subcompany = this.item.f_subcompany
1012
- this.data.f_approved = this.item.f_approved
1013
- this.data.f_repair_approved = this.item.f_repair_approved
1014
- this.data.f_no_checkplan = this.item.f_no_checkplan
1015
- this.data.f_approved = this.item.f_approved
1016
- this.data.f_filialeid = this.item.f_filialeid
1017
- this.data.f_orgstr = this.item.f_orgstr
1018
- this.data.version = this.item.version
1019
- this.$set('data.f_meters', this.item.f_plan_meters)
1020
- this.$set('data.f_userinfo_code', this.item.f_userinfo_code)
1021
- // 安检状态
1022
- this.$set('data.f_entry_status', '入户')
1023
- this.$set('data.f_usegas', '已使用')
1024
- this.$set('data.f_state', this.item.f_state)
1025
- // 用户信息
1026
- this.$set('data.f_user_name', this.item.f_user_name)
1027
- this.$set('data.f_user_phone', this.item.f_user_phone)
1028
- this.$set('data.f_userinfoid', this.item.f_userinfoid)
1029
- this.$set('data.f_address', this.item.f_address)
1030
- this.$set('data.f_card_id', this.item.f_card_id)
1031
- this.$set('data.f_area', this.item.f_area)
1032
- this.$set('data.f_street', this.item.f_street)
1033
- this.$set('data.f_room', this.item.f_room)
1034
- this.$set('data.f_building', this.item.f_building)
1035
- this.$set('data.f_unit', this.item.f_unit)
1036
- this.$set('data.f_floor', this.item.f_floor)
1037
- this.$set('data.f_residential_area', this.item.f_residential_area)
1038
- this.$set('data.f_idnumber', this.item.f_idnumber)
1039
- this.$set('data.f_comments', this.item.f_comments)
1040
- this.$set('data.f_userproperties', this.item.f_userproperties)
1041
- // 处置方式
1042
- this.$set('data.f_no_gas_device', false)
1043
- this.$set('data.f_close_valve', false)
1044
- this.$set('data.f_unload_battery', false)
1045
- if (this.data.f_check_item_id == '' && this.item.f_no_checkplan == '无计划安检') {
1046
- this.data.f_check_item_id = this.data.f_noplan_item_id
1047
- }
1048
-
1049
- //房屋结构
1050
- // this.$set('data.f_room_style', '多层')
1051
- //供暖方式
1052
- // this.$set('data.f_heating_style', '热力公司集中供暖')
1053
- if (this.item.f_plan_meters) {
1054
- for (let de in this.devices) {
1055
- this.$set('data.device' + this.devices[de].n, [])
1056
- for (let i = 0; i < this.item.f_plan_meters.length; i++) {
1057
- if (this.item.f_plan_meters[i].f_meter_type) {
1058
- if (this.devices[de].device == "燃气表" && this.item.f_plan_meters[i].f_meter_type.indexOf('机表') > 0) {
1059
- delete this.config['燃气表']['items']['累计购气量']
1060
- this.data['device' + this.devices[de].n].push({
1061
- f_device_type: "燃气表",
1062
- f_items: [{
1063
- f_defect_level: null,
1064
- f_device_id: "",
1065
- f_is_defect: "",
1066
- f_item_name: "表品牌",
1067
- f_item_value: this.item.f_plan_meters[i].f_aliasname,
1068
- f_path: "",
1069
- type: "string"
1070
- },
1071
- {
1072
- f_defect_level: null,
1073
- f_device_id: "",
1074
- f_is_defect: "",
1075
- f_item_name: "位置",
1076
- f_item_value: this.item.f_plan_meters[i].f_weizhi,
1077
- f_path: "",
1078
- type: "selector"
1079
- },
1080
- {
1081
- f_defect_level: null,
1082
- f_device_id: "",
1083
- f_is_defect: "",
1084
- f_item_name: "表号",
1085
- f_item_value: this.item.f_plan_meters[i].f_meter_no,
1086
- f_path: "",
1087
- type: "number"
1088
- },
1089
- {
1090
- f_defect_level: null,
1091
- f_device_id: "",
1092
- f_is_defect: "",
1093
- f_item_name: "表封号",
1094
- f_item_value: this.item.f_plan_meters[i].f_metertitles,
1095
- f_path: "",
1096
- type: "number"
1097
- },
1098
- {
1099
- f_defect_level: null,
1100
- f_device_id: "",
1101
- f_is_defect: "",
1102
- f_item_name: "表型号",
1103
- f_item_value: this.item.f_plan_meters[i].f_diaphgram_size,
1104
- f_path: "",
1105
- type: "selector"
1106
- },
1107
- {
1108
- f_defect_level: null,
1109
- f_device_id: "",
1110
- f_is_defect: "",
1111
- f_item_name: "表底数",
1112
- f_item_value: this.item.f_plan_meters[i].f_prior_reading,
1113
- f_path: "",
1114
- type: "number"
1115
- }
1116
- ]
1117
- })
1118
- } else if (this.devices[de].device == "燃气表") {
1119
- delete this.config['燃气表']['items']['表底数']
1120
- this.data['device' + this.devices[de].n].push({
1121
- f_device_type: "燃气表",
1122
- f_items: [{
1123
- f_defect_level: null,
1124
- f_device_id: "",
1125
- f_is_defect: "",
1126
- f_item_name: "表品牌",
1127
- f_item_value: this.item.f_plan_meters[i].f_aliasname,
1128
- f_path: "",
1129
- type: "string"
1130
- },
1131
- {
1132
- f_defect_level: null,
1133
- f_device_id: "",
1134
- f_is_defect: "",
1135
- f_item_name: "位置",
1136
- f_item_value: this.item.f_plan_meters[i].f_weizhi,
1137
- f_path: "",
1138
- type: "selector"
1139
- },
1140
- {
1141
- f_defect_level: null,
1142
- f_device_id: "",
1143
- f_is_defect: "",
1144
- f_item_name: "表号",
1145
- f_item_value: this.item.f_plan_meters[i].f_meter_no,
1146
- f_path: "",
1147
- type: "number"
1148
- },
1149
- {
1150
- f_defect_level: null,
1151
- f_device_id: "",
1152
- f_is_defect: "",
1153
- f_item_name: "表封号",
1154
- f_item_value: this.item.f_plan_meters[i].f_metertitles,
1155
- f_path: "",
1156
- type: "number"
1157
- },
1158
- {
1159
- f_defect_level: null,
1160
- f_device_id: "",
1161
- f_is_defect: "",
1162
- f_item_name: "表型号",
1163
- f_item_value: this.item.f_plan_meters[i].f_diaphgram_size,
1164
- f_path: "",
1165
- type: "selector"
1166
- },
1167
- {
1168
- f_defect_level: null,
1169
- f_device_id: "",
1170
- f_is_defect: "",
1171
- f_item_name: "累计购气量",
1172
- f_item_value: this.item.f_plan_meters[i].f_prior_reading,
1173
- f_path: "",
1174
- type: "number"
1175
- }
1176
- ]
1177
- })
1178
- }
1179
- }
1180
- }
1181
- }
1182
- }
1183
-
1184
- this.$goto('paper-state', {}, 'paper-router')
1185
- },
1186
- extend(initalObj, finalObj) {
1187
- var obj = finalObj || {};
1188
- for (var i in initalObj) {
1189
- var prop = initalObj[i];
1190
-
1191
- // 避免相互引用对象导致死循环,如initalObj.a = initalObj的情况
1192
- if (prop === obj) {
1193
- continue;
1194
- }
1195
-
1196
- if (typeof prop === 'object') {
1197
- if (obj[i]) {
1198
- this.extend(obj[i], prop)
1199
- } else {
1200
- obj[i] = prop;
1201
- }
1202
- }
1203
- }
1204
- return obj;
1205
- },
1206
- //获取当前时间
1207
- getNowFormatDate() {
1208
- var date = new Date();
1209
- var seperator1 = "-";
1210
- var seperator2 = ":";
1211
- var month = date.getMonth() + 1;
1212
- var strDate = date.getDate();
1213
- if (month >= 1 && month <= 9) {
1214
- month = "0" + month;
1215
- }
1216
- if (strDate >= 0 && strDate <= 9) {
1217
- strDate = "0" + strDate;
1218
- }
1219
- var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
1220
- + " " + date.getHours() + seperator2 + date.getMinutes()
1221
- + seperator2 + date.getSeconds();
1222
- return currentdate;
1223
- }
1224
- },
1225
- ready() {
1226
- this.putDevices()
1227
- if (this.item.f_state != '未检' || this.item.f_no_checkplan == '无计划安检') {
1228
- if (this.role != 'inspect') {
1229
- let that = this
1230
- let id
1231
- if (this.role == 'view') {
1232
- id = this.item.id
1233
- } else if (this.role == 'androidview') {
1234
- id = this.item.f_paper_id
1235
- }
1236
- this.$resetpost(`rs/path/getUserinfomation`, {data: {condition: `id = '${id}'`}}).then((respanse) => {
1237
- //tag
1238
- if (respanse.data.length != 0) {
1239
- // 包含 其它 特殊处理的数组
1240
- // 对应位置
1241
-
1242
- //tag
1243
-
1244
- that.data = Object.assign(that.data, respanse.data[0])
1245
- if (respanse.data[0].f_devices) {
1246
- for (let da in that.devices) {
1247
- that.$set('data.device' + that.devices[da].n, [])
1248
- }
1249
- respanse.data[0].f_devices.forEach((item) => {
1250
- for (let de in that.devices) {
1251
- if (that.devices[de].device == item.f_device_type) {
1252
- item.f_items.forEach((f_item) => {
1253
- //tag
1254
- //tag
1255
- let itemValues = []
1256
- f_item.f_item_lists.forEach((tempItem) => {
1257
- //tag
1258
- if (tempItem.f_item_value !== 'null') {
1259
- itemValues.push(tempItem.f_item_value)
1260
- }
1261
- })
1262
- f_item.f_item_value = itemValues
1263
- })
1264
- that.data['device' + that.devices[de].n].push({
1265
- f_device_type: item.f_device_type,
1266
- f_items: item.f_items
1267
- })
1268
- }
1269
- }
1270
- })
1271
- }
1272
- Util.replaceFalse(that.data)
1273
- Util.booleanFilter(that.data)
1274
- if (this.role == 'view') {
1275
- Util.ratifyPics(that.data)
1276
- Util.ratifyPics(that.picture)
1277
- } else {
1278
- Util.androidRatifyPics(that.data, this.$androidUtil.getProxyUrl())
1279
- }
1280
- //tag
1281
- }
1282
- // this.$goto('paper-message-blank', {userinfo:this.data,devices:this.devices,config:this.config,role:this.role}, 'self')
1283
- this.isshow = true
1284
- asyncReady(this).then(() => {
1285
- //tag
1286
- //tag)
1287
- if (this.data.f_check_type == '民用') {
1288
- this.deviceconfig = Vue.config.safecheck.DevicesConfig
1289
- if (typeof this.deviceconfig==='string'){
1290
- this.deviceconfig=JSON.parse(this.deviceconfig)
1291
- }
1292
- //tag)
1293
- } else if (this.data.f_check_type == '非民用') {
1294
- this.deviceconfig = Vue.config.safecheck.DevicesSetConfig
1295
- if (typeof this.deviceconfig==='string'){
1296
- this.deviceconfig=JSON.parse(this.deviceconfig)
1297
- }
1298
- //tag)
1299
- }
1300
- if (this.data.f_collection_type == '按金额') {
1301
- let aaa = Object.assign({}, this.config2["燃气表"].items, this.deviceconfig["燃气表"].items)
1302
- this.deviceconfig["燃气表"].items = aaa
1303
- //this.deviceconfig["燃气表"]=this.config2["燃气表"]
1304
- //tag)
1305
- } else {
1306
- let aaa = Object.assign({}, this.config["燃气表"].items, this.deviceconfig["燃气表"].items)
1307
- this.deviceconfig["燃气表"].items = aaa
1308
- //tag)
1309
- }
1310
- this.deviceconfig2 = ObjConfig.getObjConfig(this.deviceconfig)
1311
- this.deviceconfig2[0].items = jsonSort(this.deviceconfig2[0].items, "index")
1312
- this.deviceconfig2[1].items = jsonSort(this.deviceconfig2[1].items, "index")
1313
- this.deviceconfig2 = jsonSort(this.deviceconfig2, "index")
1314
- this.getDeviceAll()
1315
-
1316
-
1317
- })
1318
- }
1319
- ).catch(
1320
- (respanse) => {
1321
- //tag
1322
- alert('查找安检单失败')
1323
- })
1324
- }
1325
- }
1326
-
1327
- },
1328
- watch: {
1329
- // 'isUpload'(val){
1330
- // //tag
1331
- // }
1332
- },
1333
- destroyed() {
1334
- //tag
1335
- this.disableTimer()
1336
- }
1337
- }
1338
-
1339
- </script>
1340
- <style scoped>
1341
- .table-striped thead tr th {
1342
- background-color: rgb(223, 237, 251);
1343
- padding: 10px;
1344
- border-left: solid 0px #dae4f2;
1345
- border-top: solid 1px #dae4f2;
1346
- border-right: none;
1347
- border-bottom: none;
1348
- text-align: center;
1349
- color: black;
1350
- }
1351
- </style>
1
+ <style scoped>
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
+ <work-busy :is-busy="loading"></work-busy>
62
+ <div class="container-fluid" style="overflow: scroll">
63
+ <div class="row">
64
+ <div class="col-md-5" style="margin-right: 2%;margin-left: 2%;height: 100%;overflow: scroll">
65
+ <div style="width: 100%;margin: auto">
66
+ <table class="table table-striped table-bordered" style="margin-bottom: 6px">
67
+ <thead>
68
+ <tr>
69
+ <th colspan="6" style="text-align: center">用户基本信息</th>
70
+ </tr>
71
+ </thead>
72
+ <tbody>
73
+ <tr>
74
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户编号:</td>
75
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_userinfo_code }}</td>
76
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">用户名称:</td>
77
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_user_name }}</td>
78
+ </tr>
79
+ <tr>
80
+ <td style="text-align: center;border: #E9E9E9 solid 1px">证件号码:</td>
81
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_idnumber }}</td>
82
+ <td style="text-align: center;border: #E9E9E9 solid 1px">用户类型:</td>
83
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_check_type }}</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_user_phone }}</td>
88
+ <td style="text-align: center;border: #E9E9E9 solid 1px">区 / 县:</td>
89
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_area }}</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_street }}</td>
94
+ <td style="text-align: center;border: #E9E9E9 solid 1px">楼 号:</td>
95
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_building }}</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_unit }}</td>
100
+ <td style="text-align: center;border: #E9E9E9 solid 1px">楼 层:</td>
101
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_floor }}</td>
102
+ </tr>
103
+ <tr>
104
+ <td style="text-align: center;border: #E9E9E9 solid 1px">门 牌 号 :</td>
105
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_room }}</td>
106
+ <td style="text-align: center;border: #E9E9E9 solid 1px">用户性质:</td>
107
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_userproperties }}</td>
108
+ </tr>
109
+ <tr>
110
+ <td style="text-align: center;border: #E9E9E9 solid 1px">备注信息:</td>
111
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_comments }}</td>
112
+ <td style="text-align: center;border: #E9E9E9 solid 1px">小区名称:</td>
113
+ <td style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_residential_area }}</td>
114
+ </tr>
115
+ <tr>
116
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px">详细住址:</td>
117
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px">{{ paperdata.f_address }}</td>
118
+ </tr>
119
+ </tbody>
120
+ </table>
121
+ <table class="table table-striped table-bordered" v-show="paperdata.f_entry_status=='入户'">
122
+ <thead>
123
+ <tr>
124
+ <th colspan="4" style="text-align: center">用户安检概况</th>
125
+ </tr>
126
+ </thead>
127
+ <tbody>
128
+ <tr>
129
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">到达时间:</td>
130
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_onsite_time }}</td>
131
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">离开时间:</td>
132
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_offsite_time }}</td>
133
+ </tr>
134
+ <tr>
135
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">入户状态:</td>
136
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_entry_status }}</td>
137
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">燃气使用:</td>
138
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_usegas }}</td>
139
+ </tr>
140
+ <tr>
141
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">用户满意度:</td>
142
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">{{
143
+ paperdata.f_client_evaluation
144
+ }}
145
+ </td>
146
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">安检结果:</td>
147
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">{{ ajresult }}</td>
148
+ </tr>
149
+ <tr>
150
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">备注:</td>
151
+ <td colspan="3"
152
+ style="text-align: center;border: #E9E9E9 solid 1px;word-wrap:break-word;word-break:break-all;width:87%">
153
+ {{ paperdata.f_repair_approved_note }}
154
+ </td>
155
+ </tr>
156
+ <tr>
157
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">隐患详情:</td>
158
+ <td colspan="3"
159
+ style="text-align: center;border: #E9E9E9 solid 1px;word-wrap:break-word;word-break:break-all;width:87%">
160
+ <span v-for="deviceCollect in deviceCollects">
161
+ <span class="li-font">
162
+ {{ deviceCollect.name }}:{{ deviceCollect.value }}&nbsp;&nbsp;&nbsp;
163
+ </span>
164
+ <br>
165
+ <span v-if="deviceCollect.value == '有隐患'">
166
+ <lable>
167
+ 隐患:
168
+ </lable>
169
+ <span class="li-font" v-for="val in deviceCollect.devices">
170
+ {{ val }}&nbsp;&nbsp;&nbsp;
171
+ </span><br>
172
+ </span>
173
+
174
+ </span>
175
+ </td>
176
+ </tr>
177
+
178
+ </tbody>
179
+ </table>
180
+ <table class="table table-striped table-bordered" v-show="paperdata.f_entry_status!='入户'">
181
+ <thead>
182
+ <tr>
183
+ <th colspan="4" style="text-align: center">用户安检概况</th>
184
+ </tr>
185
+ </thead>
186
+ <tbody>
187
+ <tr>
188
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">到达时间:</td>
189
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_onsite_time }}</td>
190
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">离开时间:</td>
191
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">{{ paperdata.f_offsite_time }}</td>
192
+ </tr>
193
+ <tr>
194
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">入户状态:</td>
195
+ <td colspan="2" style="text-align: center;border: #E9E9E9 solid 1px;width: 33%">
196
+ {{ paperdata.f_entry_status }}
197
+ </td>
198
+ <td style="text-align: center;border: #E9E9E9 solid 1px;width: 17%">
199
+ <button-link style="color: black" type="button" class="btn btn-link" @click="showpicture2()">
200
+ {{ dev.lname }}
201
+ 查看{{ data.f_entry_status }}照片
202
+ </button-link>
203
+ </td>
204
+ </tr>
205
+ </tbody>
206
+ </table>
207
+ <table class="table table-striped table-bordered" v-show="paperdata.f_entry_status=='入户'">
208
+ <thead>
209
+ <tr>
210
+ <th style="text-align: center">燃气设施全景照片</th>
211
+ </tr>
212
+ </thead>
213
+ <tbody>
214
+ <tr>
215
+ <td style="margin: auto;text-align: center">
216
+ <div class="container" style="max-width: 550px;background: #FFFFFF">
217
+ <img-self-plus :src="paperdata.f_fuel_path" style="float: left" width="150"
218
+ height="200"></img-self-plus>
219
+ </div>
220
+ </td>
221
+ </tr>
222
+ </tbody>
223
+ </table>
224
+ <table class="table table-striped table-bordered" v-show="paperdata.f_entry_status=='入户'">
225
+ <thead>
226
+ <tr>
227
+ <th style="text-align: center">燃气表照片</th>
228
+ </tr>
229
+ </thead>
230
+ <tbody>
231
+ <tr>
232
+ <td style="margin: auto;text-align: center">
233
+ <div class="container" style="max-width: 550px;background: #FFFFFF">
234
+ <img-self-plus :src="paperdata.f_gas_path" style="float: left" width="150"
235
+ height="200"></img-self-plus>
236
+ </div>
237
+ </td>
238
+ </tr>
239
+ </tbody>
240
+ </table>
241
+ <table class="table table-striped table-bordered" v-show="paperdata.f_entry_status=='入户'">
242
+ <thead>
243
+ <tr>
244
+ <th style="text-align: center">灶具照片</th>
245
+ </tr>
246
+ </thead>
247
+ <tbody>
248
+ <tr>
249
+ <td style="margin: auto;text-align: center">
250
+ <div class="container" style="max-width: 550px;background: #FFFFFF">
251
+ <img-self-plus :src="paperdata.f_stove_path" style="float: left" width="150"
252
+ height="200"></img-self-plus>
253
+ </div>
254
+ </td>
255
+ </tr>
256
+ </tbody>
257
+ </table>
258
+ <table class="table table-striped table-bordered" v-show="paperdata.f_entry_status=='入户'">
259
+ <thead>
260
+ <tr>
261
+ <th style="text-align: center">其他照片</th>
262
+ </tr>
263
+ </thead>
264
+ <tbody>
265
+ <tr>
266
+ <td style="margin: auto;text-align: center">
267
+ <div class="container" style="max-width: 550px;background: #FFFFFF">
268
+ <img-self-plus :src="paperdata.f_other_path" style="float: left" width="150"
269
+ height="200"></img-self-plus>
270
+ </div>
271
+ </td>
272
+ </tr>
273
+ </tbody>
274
+ </table>
275
+ <table class="table table-striped table-bordered" v-show="paperdata.f_entry_status=='入户'">
276
+ <thead>
277
+ <tr>
278
+ <th style="text-align: center">总体安检照片</th>
279
+ </tr>
280
+ </thead>
281
+ <tbody>
282
+ <tr>
283
+ <td style="margin: auto;text-align: center">
284
+ <div class="container" style="max-width: 550px;background: #FFFFFF">
285
+ <div class="img" v-for="img in paperdata.f_overall_imgs">
286
+ <img-self-plus :src="img.f_overall_path" style="float: left" width="150"
287
+ height="200"></img-self-plus>
288
+ </div>
289
+ </div>
290
+
291
+
292
+ </td>
293
+
294
+ </tr>
295
+ </tbody>
296
+ </table>
297
+ <table class="table table-striped table-bordered" v-show="paperdata.f_entry_status=='入户'">
298
+ <thead>
299
+ <tr>
300
+ <th style="text-align: center">用户签名照片</th>
301
+ </tr>
302
+ </thead>
303
+ <tbody>
304
+ <tr>
305
+ <td style="margin: auto;text-align: center">
306
+ <div class="container" style="max-width: 500px;background: #FFFFFF">
307
+ <div class="img" style="float: none">
308
+ <img-self-plus :src="paperdata.f_sign_path" width="486" height="300"></img-self-plus>
309
+ </div>
310
+ </div>
311
+ </td>
312
+ </tr>
313
+ </tbody>
314
+ </table>
315
+ <table class="table table-striped table-bordered" v-show="paperdata.f_entry_status=='入户'&& item.f_recording1_path">
316
+ <thead>
317
+ <tr>
318
+ <th style="text-align: center">录音文件</th>
319
+ </tr>
320
+ </thead>
321
+ <tbody>
322
+ <tr>
323
+ <td style="margin: auto;text-align: center">
324
+ <div class="container" style="max-width: 500px;background: #FFFFFF">
325
+ <a class="button_spacing button_search-1" :download="item.f_user_name+'-'+item.f_check_type+'-'+录音文件.arm"
326
+ :href="'rs/image/file/'+item.f_recording1_path" >录音下载</a>
327
+ </div>
328
+ </td>
329
+ </tr>
330
+ </tbody>
331
+ </table>
332
+ </div>
333
+ </div>
334
+ <div class style="width: 1%;height: 100%;background-color: #F1F8FF;float: left;"></div>
335
+ <div class="col-md-6" style="height: 100%;overflow: scroll">
336
+ <div style="width: 95%;margin-left: 5%">
337
+ <table class="table table-striped table-bordered" v-for="config in deviceconfig2">
338
+ <thead v-show="!(config.checkname!='燃气表'&&paperdata.f_entry_status!='入户')">
339
+ <tr>
340
+ <th style="text-align: center">{{ config.checkname }}</th>
341
+ </tr>
342
+ </thead>
343
+ <tbody v-show="!(config.checkname!='燃气表'&&paperdata.f_entry_status!='入户')">
344
+ <tr v-for="dev in config.items">
345
+ <td v-if="dev.type!='text'">
346
+ <div class="row">
347
+ <div class="col-md-8" style="text-align: center;">
348
+ <label>
349
+ <button-link type="button" class="btn btn-link" @click="showpicture(config.checkname,dev.lname)"
350
+ :style="isred(config.checkname,dev.lname)?'color:red':'color:black'">
351
+ {{ dev.lname }}
352
+ </button-link>
353
+ </label>
354
+ </div>
355
+ <div class="col-md-4" style="text-align: center">
356
+ <label style="font-weight: normal"
357
+ v-if="dev.type!='picture'">{{ getDeviceValue(config.checkname, dev.lname) ? getDeviceValue(config.checkname, dev.lname) : '无' }}</label>
358
+ <label style="font-weight: normal" v-if="dev.type=='picture'">
359
+ <div v-show="getDevicePath(config.checkname,dev.lname)">
360
+ <button-link style="color: black" type="button" class="btn btn-link"
361
+ @click="showpath(getDevicePath(config.checkname,dev.lname),dev.lname)">查看照片
362
+ </button-link>
363
+ </div>
364
+ <div v-show="!getDevicePath(config.checkname,dev.lname)">无照片</div>
365
+ </label>
366
+ </div>
367
+ </div>
368
+ </td>
369
+ <td v-if="dev.type==='text'">
370
+ <label style="width: 100%;text-align: center">{{ dev.lname }}</label>
371
+ </td>
372
+ </tr>
373
+ </tbody>
374
+ </table>
375
+ </div>
376
+ </div>
377
+
378
+ </div>
379
+ </div>
380
+ </div>
381
+ <modal :show.sync="imgshow" v-ref:modal backdrop="true">
382
+ <header slot="modal-header" class="modal-header">
383
+ {{ picturename }}
384
+ </header>
385
+ <article slot="modal-body" class="modal-body">
386
+ <div class="from-group">
387
+ <div class="row">
388
+ <div class="col-md-6">
389
+ <img-self-plus v-if="showimg1" :src="showimg1" width="240" height="300"></img-self-plus>
390
+ </div>
391
+ <div class="col-md-6">
392
+ <img-self-plus v-if="showimg2" :src="showimg2" width="240" height="300"></img-self-plus>
393
+ </div>
394
+ <div class="col-md-6" v-for="item in otherDarginShowImgs">
395
+ <img-self-plus v-if="item.path" :src="item.path" width="240" height="300"></img-self-plus>
396
+ </div>
397
+ </div>
398
+ </div>
399
+ </article>
400
+ <footer slot="modal-footer" class="modal-footer" v-show="false">
401
+ <button type="button" class="btn btn-success" @click='imgclose'>关闭</button>
402
+ </footer>
403
+ </modal>
404
+ <modal :show.sync="imgshow2" v-ref:modal backdrop="true">
405
+ <header slot="modal-header" class="modal-header">
406
+ {{ paperdata.f_entry_status }}照片
407
+ </header>
408
+ <article slot="modal-body" class="modal-body">
409
+ <div class="from-group">
410
+ <div class="row">
411
+ <div class="col-md-6">
412
+ <img-self-plus v-if="this.paperdata.f_entry_status=='到访不遇'" :src="data.f_noanswer_path" width="300"
413
+ height="400"></img-self-plus>
414
+ <img-self-plus v-if="(this.paperdata.f_entry_status=='到访不遇' && data.f_noanswer1_path)" :src="data.f_noanswer1_path" width="300"
415
+ height="400"></img-self-plus>
416
+ <img-self-plus v-if="(this.paperdata.f_entry_status=='到访不遇' && data.f_noanswer2_path)" :src="data.f_noanswer2_path" width="300"
417
+ height="400"></img-self-plus>
418
+ </div>
419
+ <div class="col-md-6">
420
+ <img-self-plus v-if="this.paperdata.f_entry_status=='拒检'" :src="data.f_rejectcheck_path" width="300"
421
+ height="400"></img-self-plus>
422
+ <img-self-plus v-if="(this.paperdata.f_entry_status=='拒检' && data.f_rejectcheck1_path)" :src="data.f_rejectcheck1_path" width="300"
423
+ height="400"></img-self-plus>
424
+ <img-self-plus v-if="(this.paperdata.f_entry_status=='拒检' && data.f_rejectcheck2_path)" :src="data.f_rejectcheck2_path" width="300"
425
+ height="400"></img-self-plus>
426
+ </div>
427
+ </div>
428
+ </div>
429
+ </article>
430
+ <footer slot="modal-footer" class="modal-footer" v-show="false">
431
+ <button type="button" class="btn btn-success" @click='imgclose'>关闭</button>
432
+ </footer>
433
+ </modal>
434
+ </template>
435
+
436
+ <script>
437
+ // import PaperUserm from './PaperUserm'
438
+ // import PaperStatem from './PaperStatem'
439
+ // import Devicesm from './Devicesm'
440
+ // import PaperFeedbackm from './PaperFeedbackm'
441
+ import ObjConfig from '../../../utils/GerJsonObjectConfig'
442
+ import RadioGroup from 'vue-client/src/vue-strap/src/radioGroup'
443
+ import Radio from 'vue-client/src/vue-strap/src/radioBtn'
444
+ import Vue from 'vue'
445
+ import * as Util from '../../Util'
446
+ import {jsonSort} from '../../../utils/LdapHelper'
447
+ import {HttpResetClass} from "vue-client";
448
+
449
+ let asyncReady = async function (self) {
450
+ // 获取配置信息
451
+ try {
452
+ let res = await new HttpResetClass().load('post', 'rs/sql/tel_singleTable_OrderBy', {
453
+ data: {
454
+ items: 'f_dir',
455
+ tablename: 't_organization',
456
+ condition: `id = '${self.item.f_filialeid}'`,
457
+ orderitem: 'id'
458
+ }
459
+ })/*.then(res=>{*/
460
+ //tag
461
+ //tag)
462
+ if (!res.data[0].f_dir) {
463
+ self.$showMessage("该公司无组织目录,无法获取配置文件,请联系管理员确认")
464
+ } else {
465
+ //this.f_dir=res.data[0].f_dir
466
+ try {
467
+ let res1 = await new HttpResetClass().load('GET', `/safecheck/rs/vue/DevicesConfig.json?folderName=phonevues&orgDir=${res.data[0].f_dir}`, {}, {
468
+ resolveMsg: '获取居民配置项成功!',
469
+ rejectMsg: '获取居民配置项出错!'
470
+ })/*.then(res=>{*/
471
+ //tag
472
+ //this.safeConfig["民用配置项"]=Object.assign({},res.data)
473
+ Vue.config.safecheck.DevicesConfig = res1.data
474
+ /*})*/
475
+ let res2 = await new HttpResetClass().load('GET', `/safecheck/rs/vue/DevicesSetConfig.json?folderName=phonevues&orgDir=${res.data[0].f_dir}`, {}, {
476
+ resolveMsg: '获取非居民配置项成功!',
477
+ rejectMsg: '获取非居民配置项出错!'
478
+ })/*.then(res=>{*/
479
+ //tag
480
+ //this.safeConfig["非民用配置项"]=Object.assign({},res.data)
481
+ Vue.config.safecheck.DevicesSetConfig = res2.data
482
+ /*}).then(res=> {
483
+ })*/
484
+
485
+ } catch (e) {
486
+ self.$showMessage("获取配置文件失败" + e)
487
+ }
488
+ }
489
+ } catch (error) {
490
+ // 忽略704,文件找不到异常R
491
+ if (error.status !== 704) {
492
+ throw error
493
+ }
494
+ }
495
+ }
496
+ export default {
497
+ title: '安检单',
498
+ props: ['f_plan_id', 'item', 'role'],
499
+ data() {
500
+ return {
501
+ data: {
502
+ f_devices: [],
503
+ f_defect_content: ''
504
+ },
505
+ paperdata: {},
506
+ picturename: '隐患照片',
507
+ defectDevice: {},
508
+ hasDevice: false,
509
+ deviceCollect: {},
510
+ deviceCollects: [],
511
+ isshow: false,
512
+ ajresult: '',
513
+ loading: true,
514
+ imgshow: false,
515
+ imgshow2: false,
516
+ isUpload: false,
517
+ livedispose: '',
518
+ showimg1: '',
519
+ showimg2: '',
520
+ showimg3: '',
521
+ showimg4: '',
522
+ hiddenDangerImgNumber: 0, //配置项中隐患照片数
523
+ otherDarginShowImgs: [],//其他隐患图片
524
+ startClick: false, //开始安检按钮是否可点击
525
+ isStrat: false, //是否开始安检
526
+ checkResult: {},//查询结果
527
+ newcheckResult: {},
528
+ timer: null,
529
+ showModal: false,
530
+ pic_to_be_viewed: '',
531
+ showBack: true,
532
+ devices: [],
533
+ devicesAll: [],
534
+ configAJ: [],
535
+ configRQ: [],
536
+ deviceconfig: {},
537
+ deviceconfig2: [],
538
+ f_devices: [],
539
+ config: {
540
+ "燃气表": {
541
+ "checkmust": true,
542
+ "index": 1,
543
+ "items": {
544
+ //"燃气表照片":{"index":1,"type":"picture","remark":"(拍摄清晰的表具编号、字轮数、剩余气量等)"},
545
+ "基表编号": {"index": 1, "type": "string", "readonly": true},
546
+ "气表型号": {"index": 2, "type": "string", "readonly": true},
547
+ "气表品牌": {"index": 3, "type": "string", "readonly": true},
548
+ "进气方向": {"index": 4, "type": "string", "readonly": true},
549
+ // "初始表底":{"index":5,"type":"number","isshow":false,"readonly":true},
550
+ "上期表读数": {"index": 5, "type": "number", "readonly": true, isshow: false},
551
+ "累购气量": {"index": 6, "type": "number", "readonly": true},
552
+ "已用气量": {"index": 7, "type": "number", "checkmust": true},//基表数
553
+ "剩余气量": {"index": 8, "type": "number", "checkmust": true},//累购-已用
554
+ //显示屏数 --实际剩余气量
555
+ "气量异常差值": {"index": 9, "type": "number", "readonly": true}
556
+ }
557
+ // 注意,配置项的index必须与上面的固定配置保持'顺序'
558
+ }
559
+ },
560
+ //金额
561
+ config2: {
562
+ "燃气表": {
563
+ "checkmust": true,
564
+ "index": 1,
565
+ "items": {
566
+ //"燃气表照片":{"index":1,"type":"picture","remark":"(拍摄清晰的表具编号、字轮数、剩余气量等)"},
567
+ "基表编号": {"index": 1, "type": "string", "readonly": true},
568
+ "气表型号": {"index": 2, "type": "string", "readonly": true},
569
+ "气表品牌": {"index": 3, "type": "string", "readonly": true},
570
+ "进气方向": {"index": 4, "type": "string", "readonly": true},
571
+ // "初始表底":{"index":5,"type":"number","isshow":false,"readonly":true},
572
+ "上期表读数": {"index": 5, "type": "number", "readonly": true, isshow: false},
573
+ "累购金额": {"index": 6, "type": "number", "readonly": true},
574
+ "已用气量": {"index": 7, "type": "number", "checkmust": true},
575
+ //显示屏数 --实际剩余气量
576
+ "剩余金额": {"index": 8, "type": "number", "checkmust": true},
577
+ "金额异常差值": {"index": 9, "type": "number", "readonly": true}
578
+ }
579
+ }
580
+ },
581
+ }
582
+ },
583
+ components: {
584
+ RadioGroup,
585
+ Radio,
586
+ },
587
+ computed: {
588
+ selector: {
589
+ get() {
590
+ return 'paper-state'
591
+ },
592
+ set(val) {
593
+ if (this.isStrat) {
594
+ //;
595
+ this.$goto(val, {userinfo: this.data}, 'paper-router')
596
+ } else {
597
+ this.$showMessage('未开始安检!')
598
+ }
599
+ }
600
+ },
601
+ actionEnabled: {
602
+ get() {
603
+ return this.role == 'inspect'
604
+ }
605
+ }
606
+ },
607
+ methods: {
608
+ devicesCollect() {
609
+ //tag
610
+ //tag)
611
+ //tag)
612
+ //tag
613
+
614
+ this.deviceCollects = []
615
+ let checkResult = '正常'
616
+ this.result = '正常'
617
+ let codata = JSON.parse(JSON.stringify(this.data))
618
+ //tag)
619
+ for (let device in this.data) {
620
+ let f_device_type
621
+ if (device.startsWith("device")) {
622
+ for (let item in this.data[device]) {
623
+ if (this.data[device].length > 1) {
624
+ let j = Number.parseInt(item) + 1
625
+ f_device_type = `${this.data[device][item].f_device_type}${j}`
626
+ } else {
627
+ f_device_type = this.data[device][item].f_device_type
628
+ }
629
+ // //tag
630
+ let deviceInfos = []
631
+ for (let i in this.data[device][item].f_items) {
632
+ let defects = ''
633
+ let items = this.data[device][item].f_items[i]
634
+ if ((items.type === 'selector' || items.type === 'radio' || items.type === 'checkbox') && items.f_item_value != null && items.f_item_value instanceof Array) {
635
+ for (let i in items.f_item_value) {
636
+ let f_item_value = items.f_item_value[i]
637
+
638
+ //tag)
639
+ //tag)
640
+ //tag)
641
+ //tag)
642
+ if (!this.config[this.data[device][item].f_device_type].items[items.f_item_name]&& (items.isdefect && (items.isdefect == 'true' || items.isdefect == true))) {
643
+ continue
644
+ }
645
+ if (items.f_is_defect == 'true' || items.f_is_defect == true) {
646
+ checkResult = '有隐患'
647
+ this.result = '有隐患'
648
+ defects = `${defects}:${items.f_item_value}/`
649
+ }
650
+ /*let options = this.config[this.data[device][item].f_device_type].items[items.f_item_name].options
651
+ for (let option in options) {
652
+ if (options[option].data == f_item_value) {
653
+ if (options[option].isdefect == 'true' || options[option].isdefect == true) {
654
+ checkResult = '有隐患'
655
+ this.result = '有隐患'
656
+ defects = `${defects}:${options[option].data}/`
657
+ // let level = options[option].level
658
+ }
659
+ }
660
+ }*/
661
+ //tag)
662
+ }
663
+ if (defects != '') {
664
+ deviceInfos.push(`${items.f_item_name}${defects.substring(0, defects.length - 1)}`)
665
+ }
666
+ } else if (items.type === 'string' && items.f_is_defect && items.f_item_value[0]) {
667
+ checkResult = '有隐患'
668
+ this.result = '有隐患'
669
+ deviceInfos.push(`${items.f_item_name}:${items.f_item_value[0]}`)
670
+ } else if (items.f_item_name == '金额异常差值') {
671
+ var deviation = this.$appdata.getSingleValue('金额异常差值允许误差')
672
+ //tag
673
+ if (parseFloat(items.f_item_value[0]).toString() != "NaN" && parseFloat(deviation).toString() != "NaN") {
674
+ if (parseFloat(items.f_item_value[0]) > parseFloat(deviation) || parseFloat(items.f_item_value[0]) < parseFloat(deviation) * -1) {
675
+ checkResult = '有隐患'
676
+ this.result = '有隐患'
677
+ deviceInfos.push(`${items.f_item_name}:${items.f_item_value[0]}`)
678
+ }
679
+ }
680
+ } else if (items.f_item_name == '气量异常差值') {
681
+ var deviation = this.$appdata.getSingleValue('气量异常差值允许误差')
682
+ //tag
683
+ if (parseFloat(items.f_item_value[0]).toString() != "NaN" && parseFloat(deviation).toString() != "NaN") {
684
+ if (parseFloat(items.f_item_value[0]) > parseFloat(deviation) || parseFloat(items.f_item_value[0]) < parseFloat(deviation) * -1) {
685
+ checkResult = '有隐患'
686
+ this.result = '有隐患'
687
+ deviceInfos.push(`${items.f_item_name}:${items.f_item_value[0]}`)
688
+ }
689
+ }
690
+ }
691
+ //tag)
692
+ //tag
693
+ //tag
694
+ if (items.type === 'selector') {
695
+ items.selected = []
696
+ } else if (items.type === 'inputSelector') {
697
+ items.selected = ''
698
+ }
699
+ }
700
+
701
+
702
+ //tag
703
+ this.$set('deviceCollect.name', f_device_type)
704
+ this.$set('deviceCollect.value', checkResult)
705
+ this.$set('deviceCollect.devices', deviceInfos)
706
+ //tag)
707
+ if (this.deviceCollect.name) {
708
+ //tag
709
+ this.deviceCollects.push(JSON.parse(JSON.stringify(this.deviceCollect)))
710
+ }
711
+
712
+ checkResult = '正常'
713
+ this.deviceCollect = {}
714
+ }
715
+ }
716
+ }
717
+ if (this.deviceCollects.length > 0) {
718
+ this.hasDevice = true
719
+ }
720
+ this.ajresult = JSON.parse(this.data.f_defect_content).result
721
+ this.showimg3 = this.data.f_noanswer_path
722
+ this.showimg4 = this.data.f_rejectcheck_path
723
+ this.paperdata = this.data
724
+ this.loading = false
725
+ },
726
+ imgclose() {
727
+ this.imgshow = false
728
+ },
729
+ putDevices() {
730
+ ////tag
731
+ this.$set('data.approve', "true")
732
+ this.$set('data.writeback', "false")
733
+ if (Vue.config.safecheck.ApproveConfig != undefined) {
734
+ if (Vue.config.safecheck.ApproveConfig.approve != undefined) {
735
+ this.$set('data.approve', Vue.config.safecheck.ApproveConfig.approve)
736
+ }
737
+ if (Vue.config.safecheck.ApproveConfig.writeback != undefined) {
738
+ this.$set('data.writeback', Vue.config.safecheck.ApproveConfig.writeback)
739
+ }
740
+ if (Vue.config.safecheck.ApproveConfig.livedispose != undefined) {
741
+ this.livedispose = Vue.config.safecheck.ApproveConfig.livedispose
742
+ }
743
+ if(Vue.config.safecheck.ApproveConfig.hiddendanger != undefined) {
744
+ if (parseInt(Vue.config.safecheck.ApproveConfig.hiddendanger) >= 3) {
745
+ this.hiddenDangerImgNumber = 3
746
+ }else {
747
+ this.hiddenDangerImgNumber = parseInt(Vue.config.safecheck.ApproveConfig.hiddendanger)
748
+ }
749
+ }
750
+ }
751
+ //tag
752
+
753
+ //tag)
754
+ if (!this.item.f_safecheck_type) {
755
+ this.config = this.extend(this.config, Vue.config.safecheck[Vue.config.safecheck.SafecheckType['年度普检'][this.item.f_check_type]])
756
+ } else {
757
+ if (Vue.config.safecheck.DevicesConfig != undefined)
758
+ this.config = this.extend(this.config, Vue.config.safecheck[Vue.config.safecheck.SafecheckType[this.item.f_safecheck_type][this.item.f_check_type]])
759
+ }
760
+ //遍历安检项配置
761
+ for (let i in this.config) {
762
+ //取得安检项索引值
763
+ let n = this.config[i].index
764
+ this.devices[n - 1] = {device: i, n: n, checkmust: this.config[i].checkmust}
765
+ this.$set('data.' + 'device' + n, [])
766
+ let items = []
767
+ for (let it in this.config[i].items) {
768
+ //赋值下拉选项
769
+ if (this.config[i].items[it].type == 'selector') {
770
+ for (let op in this.config[i].items[it].options)
771
+ if (this.config[i].items[it].options[op].isdefault == true) {
772
+ items.push({
773
+ f_defect_level: this.config[i].items[it].options[op].level,
774
+ f_is_defect: this.config[i].items[it].options[op].isdefect,
775
+ f_item_name: it,
776
+ f_item_value: this.config[i].items[it].options[op].data,
777
+ f_path: "",
778
+ type: "selector"
779
+ })
780
+ }
781
+ }
782
+ }
783
+ n = n + 1
784
+ }
785
+
786
+ },
787
+ showpath(val1, val2) {
788
+ //tag
789
+ //tag
790
+ if (val1) {
791
+ this.showimg1 = val1
792
+ this.picturename = val2
793
+ this.imgshow = true
794
+ }
795
+ },
796
+ showpicture(val1, val2) {
797
+ //tag
798
+ if (val2 == '气量异常差值' || val2 == '金额异常差值') {
799
+ return
800
+ }
801
+ for (let i = 0; i < this.devicesAll.length; i++) {
802
+ for (let j = 0; j < this.devicesAll[i].length; j++) {
803
+ if (this.devicesAll[i][j].f_device_type == val1) {
804
+ for (let k = 0; k < this.devicesAll[i][j].f_items.length; k++) {
805
+ if (this.devicesAll[i][j].f_items[k].f_item_name == val2) {
806
+ if (!this.devicesAll[i][j].f_items[k].f_is_defect) {
807
+ return false
808
+ } else {
809
+ this.showimg1 = this.devicesAll[i][j].f_items[k].f_path
810
+ this.showimg2 = this.devicesAll[i][j].f_items[k].f_second_path
811
+ this.otherDarginShowImgs = []
812
+ for (let l = 0; l < this.hiddenDangerImgNumber; l++) {
813
+ let img = {path:''}
814
+ if (this.devicesAll[i][j].f_items[k]['f_p' + (l+1)+'_path']) {
815
+ img.path = this.devicesAll[i][j].f_items[k]['f_p' + (l+1)+'_path'] + '?' + Math.random()
816
+ this.otherDarginShowImgs.push(img)
817
+ }
818
+ }
819
+ this.picturename = '隐患照片'
820
+ this.imgshow = true
821
+ return true
822
+ }
823
+ }
824
+ }
825
+
826
+ }
827
+ }
828
+ }
829
+ },
830
+ isred(val1, val2) {
831
+ //tag
832
+ if (val2 == '气量异常差值' || val2 == '金额异常差值') {
833
+ return
834
+ }
835
+ for (let i = 0; i < this.devicesAll.length; i++) {
836
+ for (let j = 0; j < this.devicesAll[i].length; j++) {
837
+ if (this.devicesAll[i][j].f_device_type == val1) {
838
+ for (let k = 0; k < this.devicesAll[i][j].f_items.length; k++) {
839
+ if (this.devicesAll[i][j].f_items[k].f_item_name == val2) {
840
+ if (!this.devicesAll[i][j].f_items[k].f_is_defect) {
841
+ return false
842
+ } else {
843
+ return true
844
+ }
845
+ }
846
+ }
847
+
848
+ }
849
+ }
850
+ }
851
+ },
852
+ showpicture2() {
853
+ this.imgshow2 = true
854
+ },
855
+ getDeviceValue(val1, val2) {
856
+ let aa = ''
857
+ for (let i = 0; i < this.devicesAll.length; i++) {
858
+ for (let j = 0; j < this.devicesAll[i].length; j++) {
859
+ if (this.devicesAll[i][j].f_device_type == val1) {
860
+ for (let k = 0; k < this.devicesAll[i][j].f_items.length; k++) {
861
+ if (this.devicesAll[i][j].f_items[k].f_item_name == val2) {
862
+ if (this.devicesAll[i][j].f_items[k].f_item_lists[0]) {
863
+ for (let l = 0; l < this.devicesAll[i][j].f_items[k].f_item_lists.length; l++) {
864
+ aa += this.devicesAll[i][j].f_items[k].f_item_lists[l].f_item_value + ' '
865
+ }
866
+ return aa
867
+ }
868
+ }
869
+ }
870
+
871
+ }
872
+ }
873
+ }
874
+
875
+ },
876
+ getDevicePath(val1, val2) {
877
+ for (let i = 0; i < this.devicesAll.length; i++) {
878
+ for (let j = 0; j < this.devicesAll[i].length; j++) {
879
+ if (this.devicesAll[i][j].f_device_type == val1) {
880
+ for (let k = 0; k < this.devicesAll[i][j].f_items.length; k++) {
881
+ if (this.devicesAll[i][j].f_items[k].f_item_name == val2) {
882
+ return this.devicesAll[i][j].f_items[k].f_path
883
+ }
884
+ }
885
+
886
+ }
887
+ }
888
+ }
889
+
890
+ },
891
+ getDeviceAll() {
892
+ let keyall = Object.keys(this.data)
893
+ for (let i = 0; i < keyall.length; i++) {
894
+ //tag)
895
+ if (keyall[i].startsWith('device') && keyall[i] != 'deviceundefined') {
896
+ this.devicesAll.push(this.data[keyall[i]])
897
+ //tag
898
+ }
899
+ }
900
+ //tag
901
+ //tag)
902
+ this.devicesCollect()
903
+
904
+ },
905
+
906
+ back() {
907
+ if (this.role == 'inspect') {
908
+ if (!this.isStrat) {
909
+ this.$back()
910
+ return
911
+ } else {
912
+ this.savePaper(true).then(() => {
913
+ this.$back()
914
+ this.isStrat = false
915
+ })
916
+ }
917
+ } else {
918
+ this.$back()
919
+ }
920
+ },
921
+ checkIsStart() {
922
+ alert('asdad')
923
+ return
924
+ },
925
+
926
+ viewPic(fileName) {
927
+ //tag
928
+ if (this.role == 'view') {
929
+ if (!fileName.endsWith('nopic.png')) {
930
+ this.pic_to_be_viewed = fileName
931
+ this.showModal = true
932
+ }
933
+ } else {
934
+ HostApp.viewPic(fileName)
935
+ }
936
+ },
937
+ tick() {
938
+ this.timer = null
939
+ this.data.f_offsite_time = Util.toStandardTimeString()
940
+ this.timer = window.setTimeout(this.tick, 1000)
941
+ },
942
+ getRepairState() {
943
+ let repaired = true
944
+ this.data.f_defects.forEach((defect) => {
945
+ repaired = repaired & (defect.f_ratification == '已处理')
946
+ })
947
+ return repaired
948
+ },
949
+ verifyRepairDefects() {
950
+ this.data.f_repair_date = Util.toStandardTimeString()
951
+ this.data.f_repaired = this.getRepairState() ? '已修' : '在修'
952
+ },
953
+ genuineSave(saveOnly) {
954
+ HostApp.__this__.save(saveOnly)
955
+ if (!saveOnly)
956
+ HostApp.__this__.disableTimer()
957
+ HostApp.__callback__ = null
958
+ HostApp.__this__ = null
959
+ },
960
+ setUrgency() {
961
+ this.data.f_defect_urgency = 'Z'
962
+ let that = this
963
+ this.data.f_defects.forEach(function (defect) {
964
+ if (that.data.f_defect_urgency > defect.f_defect_level.charAt(0))
965
+ that.data.f_defect_urgency = defect.f_defect_level.charAt(0)
966
+ })
967
+ if (this.data.f_defect_urgency == 'Z')
968
+ this.data.f_defect_urgency = null
969
+ },
970
+ disableTimer() {
971
+ if (this.timer) {
972
+ window.clearTimeout(this.timer)
973
+ this.timer = null
974
+ }
975
+ },
976
+ loaded(paper) {
977
+ if (!paper.hasOwnProperty('id')) {
978
+ this.$showMessage("该安检单在手机上已经不存在,可能是卸载过程序。可以进入重新安检,或返回安检计划。")
979
+ this.init()
980
+ } else {
981
+ Util.booleanFilter(paper)
982
+ HostApp.__this__.$set('data', paper)
983
+ HostApp.__this__.$goto('paper-state', {}, 'paper-router')
984
+ // 如果打回重检则重新计时
985
+ //tag
986
+ if (HostApp.__this__.role == 'inspect'
987
+ && HostApp.__this__.data.f_approved
988
+ && HostApp.__this__.data.f_approved == '打回') {
989
+ //tag
990
+ HostApp.__this__.data.f_onsite_time = Util.toStandardTimeString()
991
+ HostApp.__this__.tick()
992
+ }
993
+ }
994
+ HostApp.__callback__ = null
995
+ HostApp.__this__ = null
996
+ },
997
+ S4() {
998
+ return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
999
+ },
1000
+ init() {
1001
+ this.data.f_noplan_item_id = this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4()
1002
+ this.data.ename = Vue.user.ename
1003
+ this.data.f_outlets = Vue.user.f_parentname
1004
+ this.data.f_meetunit = Vue.user.orgpathnames
1005
+ this.data.orgpathstr = Vue.user.orgpathstr
1006
+ this.data.f_check_item_id = this.item.id
1007
+ this.data.f_check_plan_id = this.f_plan_id
1008
+ this.data.f_checker_id = Vue.user.id
1009
+ this.data.f_checker_name = Vue.user.name
1010
+ this.data.f_check_type = this.item.f_user_type
1011
+ this.data.f_subcompany = this.item.f_subcompany
1012
+ this.data.f_approved = this.item.f_approved
1013
+ this.data.f_repair_approved = this.item.f_repair_approved
1014
+ this.data.f_no_checkplan = this.item.f_no_checkplan
1015
+ this.data.f_approved = this.item.f_approved
1016
+ this.data.f_filialeid = this.item.f_filialeid
1017
+ this.data.f_orgstr = this.item.f_orgstr
1018
+ this.data.version = this.item.version
1019
+ this.$set('data.f_meters', this.item.f_plan_meters)
1020
+ this.$set('data.f_userinfo_code', this.item.f_userinfo_code)
1021
+ // 安检状态
1022
+ this.$set('data.f_entry_status', '入户')
1023
+ this.$set('data.f_usegas', '已使用')
1024
+ this.$set('data.f_state', this.item.f_state)
1025
+ // 用户信息
1026
+ this.$set('data.f_user_name', this.item.f_user_name)
1027
+ this.$set('data.f_user_phone', this.item.f_user_phone)
1028
+ this.$set('data.f_userinfoid', this.item.f_userinfoid)
1029
+ this.$set('data.f_address', this.item.f_address)
1030
+ this.$set('data.f_card_id', this.item.f_card_id)
1031
+ this.$set('data.f_area', this.item.f_area)
1032
+ this.$set('data.f_street', this.item.f_street)
1033
+ this.$set('data.f_room', this.item.f_room)
1034
+ this.$set('data.f_building', this.item.f_building)
1035
+ this.$set('data.f_unit', this.item.f_unit)
1036
+ this.$set('data.f_floor', this.item.f_floor)
1037
+ this.$set('data.f_residential_area', this.item.f_residential_area)
1038
+ this.$set('data.f_idnumber', this.item.f_idnumber)
1039
+ this.$set('data.f_comments', this.item.f_comments)
1040
+ this.$set('data.f_userproperties', this.item.f_userproperties)
1041
+ // 处置方式
1042
+ this.$set('data.f_no_gas_device', false)
1043
+ this.$set('data.f_close_valve', false)
1044
+ this.$set('data.f_unload_battery', false)
1045
+ if (this.data.f_check_item_id == '' && this.item.f_no_checkplan == '无计划安检') {
1046
+ this.data.f_check_item_id = this.data.f_noplan_item_id
1047
+ }
1048
+
1049
+ //房屋结构
1050
+ // this.$set('data.f_room_style', '多层')
1051
+ //供暖方式
1052
+ // this.$set('data.f_heating_style', '热力公司集中供暖')
1053
+ if (this.item.f_plan_meters) {
1054
+ for (let de in this.devices) {
1055
+ this.$set('data.device' + this.devices[de].n, [])
1056
+ for (let i = 0; i < this.item.f_plan_meters.length; i++) {
1057
+ if (this.item.f_plan_meters[i].f_meter_type) {
1058
+ if (this.devices[de].device == "燃气表" && this.item.f_plan_meters[i].f_meter_type.indexOf('机表') > 0) {
1059
+ delete this.config['燃气表']['items']['累计购气量']
1060
+ this.data['device' + this.devices[de].n].push({
1061
+ f_device_type: "燃气表",
1062
+ f_items: [{
1063
+ f_defect_level: null,
1064
+ f_device_id: "",
1065
+ f_is_defect: "",
1066
+ f_item_name: "表品牌",
1067
+ f_item_value: this.item.f_plan_meters[i].f_aliasname,
1068
+ f_path: "",
1069
+ type: "string"
1070
+ },
1071
+ {
1072
+ f_defect_level: null,
1073
+ f_device_id: "",
1074
+ f_is_defect: "",
1075
+ f_item_name: "位置",
1076
+ f_item_value: this.item.f_plan_meters[i].f_weizhi,
1077
+ f_path: "",
1078
+ type: "selector"
1079
+ },
1080
+ {
1081
+ f_defect_level: null,
1082
+ f_device_id: "",
1083
+ f_is_defect: "",
1084
+ f_item_name: "表号",
1085
+ f_item_value: this.item.f_plan_meters[i].f_meter_no,
1086
+ f_path: "",
1087
+ type: "number"
1088
+ },
1089
+ {
1090
+ f_defect_level: null,
1091
+ f_device_id: "",
1092
+ f_is_defect: "",
1093
+ f_item_name: "表封号",
1094
+ f_item_value: this.item.f_plan_meters[i].f_metertitles,
1095
+ f_path: "",
1096
+ type: "number"
1097
+ },
1098
+ {
1099
+ f_defect_level: null,
1100
+ f_device_id: "",
1101
+ f_is_defect: "",
1102
+ f_item_name: "表型号",
1103
+ f_item_value: this.item.f_plan_meters[i].f_diaphgram_size,
1104
+ f_path: "",
1105
+ type: "selector"
1106
+ },
1107
+ {
1108
+ f_defect_level: null,
1109
+ f_device_id: "",
1110
+ f_is_defect: "",
1111
+ f_item_name: "表底数",
1112
+ f_item_value: this.item.f_plan_meters[i].f_prior_reading,
1113
+ f_path: "",
1114
+ type: "number"
1115
+ }
1116
+ ]
1117
+ })
1118
+ } else if (this.devices[de].device == "燃气表") {
1119
+ delete this.config['燃气表']['items']['表底数']
1120
+ this.data['device' + this.devices[de].n].push({
1121
+ f_device_type: "燃气表",
1122
+ f_items: [{
1123
+ f_defect_level: null,
1124
+ f_device_id: "",
1125
+ f_is_defect: "",
1126
+ f_item_name: "表品牌",
1127
+ f_item_value: this.item.f_plan_meters[i].f_aliasname,
1128
+ f_path: "",
1129
+ type: "string"
1130
+ },
1131
+ {
1132
+ f_defect_level: null,
1133
+ f_device_id: "",
1134
+ f_is_defect: "",
1135
+ f_item_name: "位置",
1136
+ f_item_value: this.item.f_plan_meters[i].f_weizhi,
1137
+ f_path: "",
1138
+ type: "selector"
1139
+ },
1140
+ {
1141
+ f_defect_level: null,
1142
+ f_device_id: "",
1143
+ f_is_defect: "",
1144
+ f_item_name: "表号",
1145
+ f_item_value: this.item.f_plan_meters[i].f_meter_no,
1146
+ f_path: "",
1147
+ type: "number"
1148
+ },
1149
+ {
1150
+ f_defect_level: null,
1151
+ f_device_id: "",
1152
+ f_is_defect: "",
1153
+ f_item_name: "表封号",
1154
+ f_item_value: this.item.f_plan_meters[i].f_metertitles,
1155
+ f_path: "",
1156
+ type: "number"
1157
+ },
1158
+ {
1159
+ f_defect_level: null,
1160
+ f_device_id: "",
1161
+ f_is_defect: "",
1162
+ f_item_name: "表型号",
1163
+ f_item_value: this.item.f_plan_meters[i].f_diaphgram_size,
1164
+ f_path: "",
1165
+ type: "selector"
1166
+ },
1167
+ {
1168
+ f_defect_level: null,
1169
+ f_device_id: "",
1170
+ f_is_defect: "",
1171
+ f_item_name: "累计购气量",
1172
+ f_item_value: this.item.f_plan_meters[i].f_prior_reading,
1173
+ f_path: "",
1174
+ type: "number"
1175
+ }
1176
+ ]
1177
+ })
1178
+ }
1179
+ }
1180
+ }
1181
+ }
1182
+ }
1183
+
1184
+ this.$goto('paper-state', {}, 'paper-router')
1185
+ },
1186
+ extend(initalObj, finalObj) {
1187
+ var obj = finalObj || {};
1188
+ for (var i in initalObj) {
1189
+ var prop = initalObj[i];
1190
+
1191
+ // 避免相互引用对象导致死循环,如initalObj.a = initalObj的情况
1192
+ if (prop === obj) {
1193
+ continue;
1194
+ }
1195
+
1196
+ if (typeof prop === 'object') {
1197
+ if (obj[i]) {
1198
+ this.extend(obj[i], prop)
1199
+ } else {
1200
+ obj[i] = prop;
1201
+ }
1202
+ }
1203
+ }
1204
+ return obj;
1205
+ },
1206
+ //获取当前时间
1207
+ getNowFormatDate() {
1208
+ var date = new Date();
1209
+ var seperator1 = "-";
1210
+ var seperator2 = ":";
1211
+ var month = date.getMonth() + 1;
1212
+ var strDate = date.getDate();
1213
+ if (month >= 1 && month <= 9) {
1214
+ month = "0" + month;
1215
+ }
1216
+ if (strDate >= 0 && strDate <= 9) {
1217
+ strDate = "0" + strDate;
1218
+ }
1219
+ var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
1220
+ + " " + date.getHours() + seperator2 + date.getMinutes()
1221
+ + seperator2 + date.getSeconds();
1222
+ return currentdate;
1223
+ }
1224
+ },
1225
+ ready() {
1226
+ this.putDevices()
1227
+ if (this.item.f_state != '未检' || this.item.f_no_checkplan == '无计划安检') {
1228
+ if (this.role != 'inspect') {
1229
+ let that = this
1230
+ let id
1231
+ if (this.role == 'view') {
1232
+ id = this.item.id
1233
+ } else if (this.role == 'androidview') {
1234
+ id = this.item.f_paper_id
1235
+ }
1236
+ this.$resetpost(`rs/logic/getUserinfomation`, {data: {condition: `id = '${id}'`}}).then((respanse) => {
1237
+ //tag
1238
+ if (respanse.data.length != 0) {
1239
+ // 包含 其它 特殊处理的数组
1240
+ // 对应位置
1241
+
1242
+ //tag
1243
+
1244
+ that.data = Object.assign(that.data, respanse.data[0])
1245
+ if (respanse.data[0].f_devices) {
1246
+ for (let da in that.devices) {
1247
+ that.$set('data.device' + that.devices[da].n, [])
1248
+ }
1249
+ respanse.data[0].f_devices.forEach((item) => {
1250
+ for (let de in that.devices) {
1251
+ if (that.devices[de].device == item.f_device_type) {
1252
+ item.f_items.forEach((f_item) => {
1253
+ //tag
1254
+ //tag
1255
+ let itemValues = []
1256
+ f_item.f_item_lists.forEach((tempItem) => {
1257
+ //tag
1258
+ if (tempItem.f_item_value !== 'null') {
1259
+ itemValues.push(tempItem.f_item_value)
1260
+ }
1261
+ })
1262
+ f_item.f_item_value = itemValues
1263
+ })
1264
+ that.data['device' + that.devices[de].n].push({
1265
+ f_device_type: item.f_device_type,
1266
+ f_items: item.f_items
1267
+ })
1268
+ }
1269
+ }
1270
+ })
1271
+ }
1272
+ Util.replaceFalse(that.data)
1273
+ Util.booleanFilter(that.data)
1274
+ if (this.role == 'view') {
1275
+ Util.ratifyPics(that.data)
1276
+ Util.ratifyPics(that.picture)
1277
+ } else {
1278
+ Util.androidRatifyPics(that.data, this.$androidUtil.getProxyUrl())
1279
+ }
1280
+ //tag
1281
+ }
1282
+ // this.$goto('paper-message-blank', {userinfo:this.data,devices:this.devices,config:this.config,role:this.role}, 'self')
1283
+ this.isshow = true
1284
+ asyncReady(this).then(() => {
1285
+ //tag
1286
+ //tag)
1287
+ if (this.data.f_check_type == '民用') {
1288
+ this.deviceconfig = Vue.config.safecheck.DevicesConfig
1289
+ if (typeof this.deviceconfig==='string'){
1290
+ this.deviceconfig=JSON.parse(this.deviceconfig)
1291
+ }
1292
+ //tag)
1293
+ } else if (this.data.f_check_type == '非民用') {
1294
+ this.deviceconfig = Vue.config.safecheck.DevicesSetConfig
1295
+ if (typeof this.deviceconfig==='string'){
1296
+ this.deviceconfig=JSON.parse(this.deviceconfig)
1297
+ }
1298
+ //tag)
1299
+ }
1300
+ if (this.data.f_collection_type == '按金额') {
1301
+ let aaa = Object.assign({}, this.config2["燃气表"].items, this.deviceconfig["燃气表"].items)
1302
+ this.deviceconfig["燃气表"].items = aaa
1303
+ //this.deviceconfig["燃气表"]=this.config2["燃气表"]
1304
+ //tag)
1305
+ } else {
1306
+ let aaa = Object.assign({}, this.config["燃气表"].items, this.deviceconfig["燃气表"].items)
1307
+ this.deviceconfig["燃气表"].items = aaa
1308
+ //tag)
1309
+ }
1310
+ this.deviceconfig2 = ObjConfig.getObjConfig(this.deviceconfig)
1311
+ this.deviceconfig2[0].items = jsonSort(this.deviceconfig2[0].items, "index")
1312
+ this.deviceconfig2[1].items = jsonSort(this.deviceconfig2[1].items, "index")
1313
+ this.deviceconfig2 = jsonSort(this.deviceconfig2, "index")
1314
+ this.getDeviceAll()
1315
+
1316
+
1317
+ })
1318
+ }
1319
+ ).catch(
1320
+ (respanse) => {
1321
+ //tag
1322
+ alert('查找安检单失败')
1323
+ })
1324
+ }
1325
+ }
1326
+
1327
+ },
1328
+ watch: {
1329
+ // 'isUpload'(val){
1330
+ // //tag
1331
+ // }
1332
+ },
1333
+ destroyed() {
1334
+ //tag
1335
+ this.disableTimer()
1336
+ }
1337
+ }
1338
+
1339
+ </script>
1340
+ <style scoped>
1341
+ .table-striped thead tr th {
1342
+ background-color: rgb(223, 237, 251);
1343
+ padding: 10px;
1344
+ border-left: solid 0px #dae4f2;
1345
+ border-top: solid 1px #dae4f2;
1346
+ border-right: none;
1347
+ border-bottom: none;
1348
+ text-align: center;
1349
+ color: black;
1350
+ }
1351
+ </style>