safecheck-client 3.0.35-gongyi → 3.0.35-gongyi-1

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