safecheck-client 3.0.35-43 → 3.0.35-44

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,1346 +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]) {
643
- continue
644
- }
645
- let options = this.config[this.data[device][item].f_device_type].items[items.f_item_name].options
646
- for (let option in options) {
647
- if (options[option].data == f_item_value) {
648
- if (options[option].isdefect == 'true' || options[option].isdefect == true) {
649
- checkResult = '有隐患'
650
- this.result = '有隐患'
651
- defects = `${defects}:${options[option].data}/`
652
- // let level = options[option].level
653
- }
654
- }
655
- }
656
- //tag)
657
- }
658
- if (defects != '') {
659
- deviceInfos.push(`${items.f_item_name}${defects.substring(0, defects.length - 1)}`)
660
- }
661
- } else if (items.type === 'string') {
662
- checkResult = '有隐患'
663
- this.result = '有隐患'
664
- deviceInfos.push(`${items.f_item_name}:${items.f_item_value[0]}`)
665
- } else if (items.f_item_name == '金额异常差值') {
666
- var deviation = this.$appdata.getSingleValue('金额异常差值允许误差')
667
- //tag
668
- if (parseFloat(items.f_item_value[0]).toString() != "NaN" && parseFloat(deviation).toString() != "NaN") {
669
- if (parseFloat(items.f_item_value[0]) > parseFloat(deviation) || parseFloat(items.f_item_value[0]) < parseFloat(deviation) * -1) {
670
- checkResult = '有隐患'
671
- this.result = '有隐患'
672
- deviceInfos.push(`${items.f_item_name}:${items.f_item_value[0]}`)
673
- }
674
- }
675
- } else if (items.f_item_name == '气量异常差值') {
676
- var deviation = this.$appdata.getSingleValue('气量异常差值允许误差')
677
- //tag
678
- if (parseFloat(items.f_item_value[0]).toString() != "NaN" && parseFloat(deviation).toString() != "NaN") {
679
- if (parseFloat(items.f_item_value[0]) > parseFloat(deviation) || parseFloat(items.f_item_value[0]) < parseFloat(deviation) * -1) {
680
- checkResult = '有隐患'
681
- this.result = '有隐患'
682
- deviceInfos.push(`${items.f_item_name}:${items.f_item_value[0]}`)
683
- }
684
- }
685
- }
686
- //tag)
687
- //tag
688
- //tag
689
- if (items.type === 'selector') {
690
- items.selected = []
691
- } else if (items.type === 'inputSelector') {
692
- items.selected = ''
693
- }
694
- }
695
-
696
-
697
- //tag
698
- this.$set('deviceCollect.name', f_device_type)
699
- this.$set('deviceCollect.value', checkResult)
700
- this.$set('deviceCollect.devices', deviceInfos)
701
- //tag)
702
- if (this.deviceCollect.name) {
703
- //tag
704
- this.deviceCollects.push(JSON.parse(JSON.stringify(this.deviceCollect)))
705
- }
706
-
707
- checkResult = '正常'
708
- this.deviceCollect = {}
709
- }
710
- }
711
- }
712
- if (this.deviceCollects.length > 0) {
713
- this.hasDevice = true
714
- }
715
- this.ajresult = JSON.parse(this.data.f_defect_content).result
716
- this.showimg3 = this.data.f_noanswer_path
717
- this.showimg4 = this.data.f_rejectcheck_path
718
- this.paperdata = this.data
719
- this.loading = false
720
- },
721
- imgclose() {
722
- this.imgshow = false
723
- },
724
- putDevices() {
725
- ////tag
726
- this.$set('data.approve', "true")
727
- this.$set('data.writeback', "false")
728
- if (Vue.config.safecheck.ApproveConfig != undefined) {
729
- if (Vue.config.safecheck.ApproveConfig.approve != undefined) {
730
- this.$set('data.approve', Vue.config.safecheck.ApproveConfig.approve)
731
- }
732
- if (Vue.config.safecheck.ApproveConfig.writeback != undefined) {
733
- this.$set('data.writeback', Vue.config.safecheck.ApproveConfig.writeback)
734
- }
735
- if (Vue.config.safecheck.ApproveConfig.livedispose != undefined) {
736
- this.livedispose = Vue.config.safecheck.ApproveConfig.livedispose
737
- }
738
- if(Vue.config.safecheck.ApproveConfig.hiddendanger != undefined) {
739
- if (parseInt(Vue.config.safecheck.ApproveConfig.hiddendanger) >= 3) {
740
- this.hiddenDangerImgNumber = 3
741
- }else {
742
- this.hiddenDangerImgNumber = parseInt(Vue.config.safecheck.ApproveConfig.hiddendanger)
743
- }
744
- }
745
- }
746
- //tag
747
-
748
- //tag)
749
- if (!this.item.f_safecheck_type) {
750
- this.config = this.extend(this.config, Vue.config.safecheck[Vue.config.safecheck.SafecheckType['年度普检'][this.item.f_check_type]])
751
- } else {
752
- if (Vue.config.safecheck.DevicesConfig != undefined)
753
- this.config = this.extend(this.config, Vue.config.safecheck[Vue.config.safecheck.SafecheckType[this.item.f_safecheck_type][this.item.f_check_type]])
754
- }
755
- //遍历安检项配置
756
- for (let i in this.config) {
757
- //取得安检项索引值
758
- let n = this.config[i].index
759
- this.devices[n - 1] = {device: i, n: n, checkmust: this.config[i].checkmust}
760
- this.$set('data.' + 'device' + n, [])
761
- let items = []
762
- for (let it in this.config[i].items) {
763
- //赋值下拉选项
764
- if (this.config[i].items[it].type == 'selector') {
765
- for (let op in this.config[i].items[it].options)
766
- if (this.config[i].items[it].options[op].isdefault == true) {
767
- items.push({
768
- f_defect_level: this.config[i].items[it].options[op].level,
769
- f_is_defect: this.config[i].items[it].options[op].isdefect,
770
- f_item_name: it,
771
- f_item_value: this.config[i].items[it].options[op].data,
772
- f_path: "",
773
- type: "selector"
774
- })
775
- }
776
- }
777
- }
778
- n = n + 1
779
- }
780
-
781
- },
782
- showpath(val1, val2) {
783
- //tag
784
- //tag
785
- if (val1) {
786
- this.showimg1 = val1
787
- this.picturename = val2
788
- this.imgshow = true
789
- }
790
- },
791
- showpicture(val1, val2) {
792
- //tag
793
- if (val2 == '气量异常差值' || val2 == '金额异常差值') {
794
- return
795
- }
796
- for (let i = 0; i < this.devicesAll.length; i++) {
797
- for (let j = 0; j < this.devicesAll[i].length; j++) {
798
- if (this.devicesAll[i][j].f_device_type == val1) {
799
- for (let k = 0; k < this.devicesAll[i][j].f_items.length; k++) {
800
- if (this.devicesAll[i][j].f_items[k].f_item_name == val2) {
801
- if (!this.devicesAll[i][j].f_items[k].f_is_defect) {
802
- return false
803
- } else {
804
- this.showimg1 = this.devicesAll[i][j].f_items[k].f_path
805
- this.showimg2 = this.devicesAll[i][j].f_items[k].f_second_path
806
- this.otherDarginShowImgs = []
807
- for (let l = 0; l < this.hiddenDangerImgNumber; l++) {
808
- let img = {path:''}
809
- if (this.devicesAll[i][j].f_items[k]['f_p' + (l+1)+'_path']) {
810
- img.path = this.devicesAll[i][j].f_items[k]['f_p' + (l+1)+'_path'] + '?' + Math.random()
811
- this.otherDarginShowImgs.push(img)
812
- }
813
- }
814
- this.picturename = '隐患照片'
815
- this.imgshow = true
816
- return true
817
- }
818
- }
819
- }
820
-
821
- }
822
- }
823
- }
824
- },
825
- isred(val1, val2) {
826
- //tag
827
- if (val2 == '气量异常差值' || val2 == '金额异常差值') {
828
- return
829
- }
830
- for (let i = 0; i < this.devicesAll.length; i++) {
831
- for (let j = 0; j < this.devicesAll[i].length; j++) {
832
- if (this.devicesAll[i][j].f_device_type == val1) {
833
- for (let k = 0; k < this.devicesAll[i][j].f_items.length; k++) {
834
- if (this.devicesAll[i][j].f_items[k].f_item_name == val2) {
835
- if (!this.devicesAll[i][j].f_items[k].f_is_defect) {
836
- return false
837
- } else {
838
- return true
839
- }
840
- }
841
- }
842
-
843
- }
844
- }
845
- }
846
- },
847
- showpicture2() {
848
- this.imgshow2 = true
849
- },
850
- getDeviceValue(val1, val2) {
851
- let aa = ''
852
- for (let i = 0; i < this.devicesAll.length; i++) {
853
- for (let j = 0; j < this.devicesAll[i].length; j++) {
854
- if (this.devicesAll[i][j].f_device_type == val1) {
855
- for (let k = 0; k < this.devicesAll[i][j].f_items.length; k++) {
856
- if (this.devicesAll[i][j].f_items[k].f_item_name == val2) {
857
- if (this.devicesAll[i][j].f_items[k].f_item_lists[0]) {
858
- for (let l = 0; l < this.devicesAll[i][j].f_items[k].f_item_lists.length; l++) {
859
- aa += this.devicesAll[i][j].f_items[k].f_item_lists[l].f_item_value + ' '
860
- }
861
- return aa
862
- }
863
- }
864
- }
865
-
866
- }
867
- }
868
- }
869
-
870
- },
871
- getDevicePath(val1, val2) {
872
- for (let i = 0; i < this.devicesAll.length; i++) {
873
- for (let j = 0; j < this.devicesAll[i].length; j++) {
874
- if (this.devicesAll[i][j].f_device_type == val1) {
875
- for (let k = 0; k < this.devicesAll[i][j].f_items.length; k++) {
876
- if (this.devicesAll[i][j].f_items[k].f_item_name == val2) {
877
- return this.devicesAll[i][j].f_items[k].f_path
878
- }
879
- }
880
-
881
- }
882
- }
883
- }
884
-
885
- },
886
- getDeviceAll() {
887
- let keyall = Object.keys(this.data)
888
- for (let i = 0; i < keyall.length; i++) {
889
- //tag)
890
- if (keyall[i].startsWith('device') && keyall[i] != 'deviceundefined') {
891
- this.devicesAll.push(this.data[keyall[i]])
892
- //tag
893
- }
894
- }
895
- //tag
896
- //tag)
897
- this.devicesCollect()
898
-
899
- },
900
-
901
- back() {
902
- if (this.role == 'inspect') {
903
- if (!this.isStrat) {
904
- this.$back()
905
- return
906
- } else {
907
- this.savePaper(true).then(() => {
908
- this.$back()
909
- this.isStrat = false
910
- })
911
- }
912
- } else {
913
- this.$back()
914
- }
915
- },
916
- checkIsStart() {
917
- alert('asdad')
918
- return
919
- },
920
-
921
- viewPic(fileName) {
922
- //tag
923
- if (this.role == 'view') {
924
- if (!fileName.endsWith('nopic.png')) {
925
- this.pic_to_be_viewed = fileName
926
- this.showModal = true
927
- }
928
- } else {
929
- HostApp.viewPic(fileName)
930
- }
931
- },
932
- tick() {
933
- this.timer = null
934
- this.data.f_offsite_time = Util.toStandardTimeString()
935
- this.timer = window.setTimeout(this.tick, 1000)
936
- },
937
- getRepairState() {
938
- let repaired = true
939
- this.data.f_defects.forEach((defect) => {
940
- repaired = repaired & (defect.f_ratification == '已处理')
941
- })
942
- return repaired
943
- },
944
- verifyRepairDefects() {
945
- this.data.f_repair_date = Util.toStandardTimeString()
946
- this.data.f_repaired = this.getRepairState() ? '已修' : '在修'
947
- },
948
- genuineSave(saveOnly) {
949
- HostApp.__this__.save(saveOnly)
950
- if (!saveOnly)
951
- HostApp.__this__.disableTimer()
952
- HostApp.__callback__ = null
953
- HostApp.__this__ = null
954
- },
955
- setUrgency() {
956
- this.data.f_defect_urgency = 'Z'
957
- let that = this
958
- this.data.f_defects.forEach(function (defect) {
959
- if (that.data.f_defect_urgency > defect.f_defect_level.charAt(0))
960
- that.data.f_defect_urgency = defect.f_defect_level.charAt(0)
961
- })
962
- if (this.data.f_defect_urgency == 'Z')
963
- this.data.f_defect_urgency = null
964
- },
965
- disableTimer() {
966
- if (this.timer) {
967
- window.clearTimeout(this.timer)
968
- this.timer = null
969
- }
970
- },
971
- loaded(paper) {
972
- if (!paper.hasOwnProperty('id')) {
973
- this.$showMessage("该安检单在手机上已经不存在,可能是卸载过程序。可以进入重新安检,或返回安检计划。")
974
- this.init()
975
- } else {
976
- Util.booleanFilter(paper)
977
- HostApp.__this__.$set('data', paper)
978
- HostApp.__this__.$goto('paper-state', {}, 'paper-router')
979
- // 如果打回重检则重新计时
980
- //tag
981
- if (HostApp.__this__.role == 'inspect'
982
- && HostApp.__this__.data.f_approved
983
- && HostApp.__this__.data.f_approved == '打回') {
984
- //tag
985
- HostApp.__this__.data.f_onsite_time = Util.toStandardTimeString()
986
- HostApp.__this__.tick()
987
- }
988
- }
989
- HostApp.__callback__ = null
990
- HostApp.__this__ = null
991
- },
992
- S4() {
993
- return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
994
- },
995
- init() {
996
- this.data.f_noplan_item_id = this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4()
997
- this.data.ename = Vue.user.ename
998
- this.data.f_outlets = Vue.user.f_parentname
999
- this.data.f_meetunit = Vue.user.orgpathnames
1000
- this.data.orgpathstr = Vue.user.orgpathstr
1001
- this.data.f_check_item_id = this.item.id
1002
- this.data.f_check_plan_id = this.f_plan_id
1003
- this.data.f_checker_id = Vue.user.id
1004
- this.data.f_checker_name = Vue.user.name
1005
- this.data.f_check_type = this.item.f_user_type
1006
- this.data.f_subcompany = this.item.f_subcompany
1007
- this.data.f_approved = this.item.f_approved
1008
- this.data.f_repair_approved = this.item.f_repair_approved
1009
- this.data.f_no_checkplan = this.item.f_no_checkplan
1010
- this.data.f_approved = this.item.f_approved
1011
- this.data.f_filialeid = this.item.f_filialeid
1012
- this.data.f_orgstr = this.item.f_orgstr
1013
- this.data.version = this.item.version
1014
- this.$set('data.f_meters', this.item.f_plan_meters)
1015
- this.$set('data.f_userinfo_code', this.item.f_userinfo_code)
1016
- // 安检状态
1017
- this.$set('data.f_entry_status', '入户')
1018
- this.$set('data.f_usegas', '已使用')
1019
- this.$set('data.f_state', this.item.f_state)
1020
- // 用户信息
1021
- this.$set('data.f_user_name', this.item.f_user_name)
1022
- this.$set('data.f_user_phone', this.item.f_user_phone)
1023
- this.$set('data.f_userinfoid', this.item.f_userinfoid)
1024
- this.$set('data.f_address', this.item.f_address)
1025
- this.$set('data.f_card_id', this.item.f_card_id)
1026
- this.$set('data.f_area', this.item.f_area)
1027
- this.$set('data.f_street', this.item.f_street)
1028
- this.$set('data.f_room', this.item.f_room)
1029
- this.$set('data.f_building', this.item.f_building)
1030
- this.$set('data.f_unit', this.item.f_unit)
1031
- this.$set('data.f_floor', this.item.f_floor)
1032
- this.$set('data.f_residential_area', this.item.f_residential_area)
1033
- this.$set('data.f_idnumber', this.item.f_idnumber)
1034
- this.$set('data.f_comments', this.item.f_comments)
1035
- this.$set('data.f_userproperties', this.item.f_userproperties)
1036
- // 处置方式
1037
- this.$set('data.f_no_gas_device', false)
1038
- this.$set('data.f_close_valve', false)
1039
- this.$set('data.f_unload_battery', false)
1040
- if (this.data.f_check_item_id == '' && this.item.f_no_checkplan == '无计划安检') {
1041
- this.data.f_check_item_id = this.data.f_noplan_item_id
1042
- }
1043
-
1044
- //房屋结构
1045
- // this.$set('data.f_room_style', '多层')
1046
- //供暖方式
1047
- // this.$set('data.f_heating_style', '热力公司集中供暖')
1048
- if (this.item.f_plan_meters) {
1049
- for (let de in this.devices) {
1050
- this.$set('data.device' + this.devices[de].n, [])
1051
- for (let i = 0; i < this.item.f_plan_meters.length; i++) {
1052
- if (this.item.f_plan_meters[i].f_meter_type) {
1053
- if (this.devices[de].device == "燃气表" && this.item.f_plan_meters[i].f_meter_type.indexOf('机表') > 0) {
1054
- delete this.config['燃气表']['items']['累计购气量']
1055
- this.data['device' + this.devices[de].n].push({
1056
- f_device_type: "燃气表",
1057
- f_items: [{
1058
- f_defect_level: null,
1059
- f_device_id: "",
1060
- f_is_defect: "",
1061
- f_item_name: "表品牌",
1062
- f_item_value: this.item.f_plan_meters[i].f_aliasname,
1063
- f_path: "",
1064
- type: "string"
1065
- },
1066
- {
1067
- f_defect_level: null,
1068
- f_device_id: "",
1069
- f_is_defect: "",
1070
- f_item_name: "位置",
1071
- f_item_value: this.item.f_plan_meters[i].f_weizhi,
1072
- f_path: "",
1073
- type: "selector"
1074
- },
1075
- {
1076
- f_defect_level: null,
1077
- f_device_id: "",
1078
- f_is_defect: "",
1079
- f_item_name: "表号",
1080
- f_item_value: this.item.f_plan_meters[i].f_meter_no,
1081
- f_path: "",
1082
- type: "number"
1083
- },
1084
- {
1085
- f_defect_level: null,
1086
- f_device_id: "",
1087
- f_is_defect: "",
1088
- f_item_name: "表封号",
1089
- f_item_value: this.item.f_plan_meters[i].f_metertitles,
1090
- f_path: "",
1091
- type: "number"
1092
- },
1093
- {
1094
- f_defect_level: null,
1095
- f_device_id: "",
1096
- f_is_defect: "",
1097
- f_item_name: "表型号",
1098
- f_item_value: this.item.f_plan_meters[i].f_diaphgram_size,
1099
- f_path: "",
1100
- type: "selector"
1101
- },
1102
- {
1103
- f_defect_level: null,
1104
- f_device_id: "",
1105
- f_is_defect: "",
1106
- f_item_name: "表底数",
1107
- f_item_value: this.item.f_plan_meters[i].f_prior_reading,
1108
- f_path: "",
1109
- type: "number"
1110
- }
1111
- ]
1112
- })
1113
- } else if (this.devices[de].device == "燃气表") {
1114
- delete this.config['燃气表']['items']['表底数']
1115
- this.data['device' + this.devices[de].n].push({
1116
- f_device_type: "燃气表",
1117
- f_items: [{
1118
- f_defect_level: null,
1119
- f_device_id: "",
1120
- f_is_defect: "",
1121
- f_item_name: "表品牌",
1122
- f_item_value: this.item.f_plan_meters[i].f_aliasname,
1123
- f_path: "",
1124
- type: "string"
1125
- },
1126
- {
1127
- f_defect_level: null,
1128
- f_device_id: "",
1129
- f_is_defect: "",
1130
- f_item_name: "位置",
1131
- f_item_value: this.item.f_plan_meters[i].f_weizhi,
1132
- f_path: "",
1133
- type: "selector"
1134
- },
1135
- {
1136
- f_defect_level: null,
1137
- f_device_id: "",
1138
- f_is_defect: "",
1139
- f_item_name: "表号",
1140
- f_item_value: this.item.f_plan_meters[i].f_meter_no,
1141
- f_path: "",
1142
- type: "number"
1143
- },
1144
- {
1145
- f_defect_level: null,
1146
- f_device_id: "",
1147
- f_is_defect: "",
1148
- f_item_name: "表封号",
1149
- f_item_value: this.item.f_plan_meters[i].f_metertitles,
1150
- f_path: "",
1151
- type: "number"
1152
- },
1153
- {
1154
- f_defect_level: null,
1155
- f_device_id: "",
1156
- f_is_defect: "",
1157
- f_item_name: "表型号",
1158
- f_item_value: this.item.f_plan_meters[i].f_diaphgram_size,
1159
- f_path: "",
1160
- type: "selector"
1161
- },
1162
- {
1163
- f_defect_level: null,
1164
- f_device_id: "",
1165
- f_is_defect: "",
1166
- f_item_name: "累计购气量",
1167
- f_item_value: this.item.f_plan_meters[i].f_prior_reading,
1168
- f_path: "",
1169
- type: "number"
1170
- }
1171
- ]
1172
- })
1173
- }
1174
- }
1175
- }
1176
- }
1177
- }
1178
-
1179
- this.$goto('paper-state', {}, 'paper-router')
1180
- },
1181
- extend(initalObj, finalObj) {
1182
- var obj = finalObj || {};
1183
- for (var i in initalObj) {
1184
- var prop = initalObj[i];
1185
-
1186
- // 避免相互引用对象导致死循环,如initalObj.a = initalObj的情况
1187
- if (prop === obj) {
1188
- continue;
1189
- }
1190
-
1191
- if (typeof prop === 'object') {
1192
- if (obj[i]) {
1193
- this.extend(obj[i], prop)
1194
- } else {
1195
- obj[i] = prop;
1196
- }
1197
- }
1198
- }
1199
- return obj;
1200
- },
1201
- //获取当前时间
1202
- getNowFormatDate() {
1203
- var date = new Date();
1204
- var seperator1 = "-";
1205
- var seperator2 = ":";
1206
- var month = date.getMonth() + 1;
1207
- var strDate = date.getDate();
1208
- if (month >= 1 && month <= 9) {
1209
- month = "0" + month;
1210
- }
1211
- if (strDate >= 0 && strDate <= 9) {
1212
- strDate = "0" + strDate;
1213
- }
1214
- var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
1215
- + " " + date.getHours() + seperator2 + date.getMinutes()
1216
- + seperator2 + date.getSeconds();
1217
- return currentdate;
1218
- }
1219
- },
1220
- ready() {
1221
- this.putDevices()
1222
- if (this.item.f_state != '未检' || this.item.f_no_checkplan == '无计划安检') {
1223
- if (this.role != 'inspect') {
1224
- let that = this
1225
- let id
1226
- if (this.role == 'view') {
1227
- id = this.item.id
1228
- } else if (this.role == 'androidview') {
1229
- id = this.item.f_paper_id
1230
- }
1231
- this.$resetpost(`rs/path/getUserinfomation`, {data: {condition: `id = '${id}'`}}).then((respanse) => {
1232
- //tag
1233
- if (respanse.data.length != 0) {
1234
- // 包含 其它 特殊处理的数组
1235
- // 对应位置
1236
-
1237
- //tag
1238
-
1239
- that.data = Object.assign(that.data, respanse.data[0])
1240
- if (respanse.data[0].f_devices) {
1241
- for (let da in that.devices) {
1242
- that.$set('data.device' + that.devices[da].n, [])
1243
- }
1244
- respanse.data[0].f_devices.forEach((item) => {
1245
- for (let de in that.devices) {
1246
- if (that.devices[de].device == item.f_device_type) {
1247
- item.f_items.forEach((f_item) => {
1248
- //tag
1249
- //tag
1250
- let itemValues = []
1251
- f_item.f_item_lists.forEach((tempItem) => {
1252
- //tag
1253
- if (tempItem.f_item_value !== 'null') {
1254
- itemValues.push(tempItem.f_item_value)
1255
- }
1256
- })
1257
- f_item.f_item_value = itemValues
1258
- })
1259
- that.data['device' + that.devices[de].n].push({
1260
- f_device_type: item.f_device_type,
1261
- f_items: item.f_items
1262
- })
1263
- }
1264
- }
1265
- })
1266
- }
1267
- Util.replaceFalse(that.data)
1268
- Util.booleanFilter(that.data)
1269
- if (this.role == 'view') {
1270
- Util.ratifyPics(that.data)
1271
- Util.ratifyPics(that.picture)
1272
- } else {
1273
- Util.androidRatifyPics(that.data, this.$androidUtil.getProxyUrl())
1274
- }
1275
- //tag
1276
- }
1277
- // this.$goto('paper-message-blank', {userinfo:this.data,devices:this.devices,config:this.config,role:this.role}, 'self')
1278
- this.isshow = true
1279
- asyncReady(this).then(() => {
1280
- //tag
1281
- //tag)
1282
- if (this.data.f_check_type == '民用') {
1283
- this.deviceconfig = Vue.config.safecheck.DevicesConfig
1284
- if (typeof this.deviceconfig==='string'){
1285
- this.deviceconfig=JSON.parse(this.deviceconfig)
1286
- }
1287
- //tag)
1288
- } else if (this.data.f_check_type == '非民用') {
1289
- this.deviceconfig = Vue.config.safecheck.DevicesSetConfig
1290
- if (typeof this.deviceconfig==='string'){
1291
- this.deviceconfig=JSON.parse(this.deviceconfig)
1292
- }
1293
- //tag)
1294
- }
1295
- if (this.data.f_collection_type == '按金额') {
1296
- let aaa = Object.assign({}, this.config2["燃气表"].items, this.deviceconfig["燃气表"].items)
1297
- this.deviceconfig["燃气表"].items = aaa
1298
- //this.deviceconfig["燃气表"]=this.config2["燃气表"]
1299
- //tag)
1300
- } else {
1301
- let aaa = Object.assign({}, this.config["燃气表"].items, this.deviceconfig["燃气表"].items)
1302
- this.deviceconfig["燃气表"].items = aaa
1303
- //tag)
1304
- }
1305
- this.deviceconfig2 = ObjConfig.getObjConfig(this.deviceconfig)
1306
- this.deviceconfig2[0].items = jsonSort(this.deviceconfig2[0].items, "index")
1307
- this.deviceconfig2[1].items = jsonSort(this.deviceconfig2[1].items, "index")
1308
- this.deviceconfig2 = jsonSort(this.deviceconfig2, "index")
1309
- this.getDeviceAll()
1310
-
1311
-
1312
- })
1313
- }
1314
- ).catch(
1315
- (respanse) => {
1316
- //tag
1317
- alert('查找安检单失败')
1318
- })
1319
- }
1320
- }
1321
-
1322
- },
1323
- watch: {
1324
- // 'isUpload'(val){
1325
- // //tag
1326
- // }
1327
- },
1328
- destroyed() {
1329
- //tag
1330
- this.disableTimer()
1331
- }
1332
- }
1333
-
1334
- </script>
1335
- <style scoped>
1336
- .table-striped thead tr th {
1337
- background-color: rgb(223, 237, 251);
1338
- padding: 10px;
1339
- border-left: solid 0px #dae4f2;
1340
- border-top: solid 1px #dae4f2;
1341
- border-right: none;
1342
- border-bottom: none;
1343
- text-align: center;
1344
- color: black;
1345
- }
1346
- </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/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>