safecheck-client 3.0.33-159 → 3.0.33-160

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,790 +1,790 @@
1
- <template>
2
- <div class="flex-row">
3
- <div class="basic-main">
4
- <criteria-paged :model="model" v-ref:paged @sort="sort">
5
- <criteria partial='criteria' class="search_area" @condition-changed='$parent.selfSearch' v-ref:criteria>
6
- <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
7
- <div class="row">
8
- <div class="form-group col-sm-2">
9
- <label class="font_normal_body">客户编号</label>
10
- <input type="text" class="input_search" v-model="model.f_userinfo_code"
11
- style="width: 60%" placeholder="客户编号" condition="tcp.f_userinfo_code='{}'">
12
- </div>
13
- <div class="form-group col-sm-2">
14
- <label class="font_normal_body">客户名称</label>
15
- <input type="text" class="input_search" v-model="model.f_user_name"
16
- style="width: 60%" placeholder="客户名称" condition="tcp.f_user_name like '%{}%'">
17
- </div>
18
- <div class="form-group col-sm-2">
19
- <label class="font_normal_body">客户电话</label>
20
- <input type="text" class="input_search" v-model="model.f_user_phone"
21
- style="width: 60%" placeholder="客户电话" condition="tcp.f_user_phone like '%{}%'">
22
- </div>
23
- <div class="form-group col-sm-2">
24
- <label class="font_normal_body">小&emsp;&emsp;区</label>
25
- <input type="text" class="input_search" v-model="model.f_residential_area"
26
- style="width: 60%" placeholder="小区" condition="tcp.f_residential_area like '%{}%'">
27
- </div>
28
- <div class="form-group col-sm-2">
29
- <label class="font_normal_body">详细地址</label>
30
- <input type="text" class="input_search" v-model="model.f_address"
31
- style="width: 60%" placeholder="详细地址" condition="tcp.f_address like '%{}%'">
32
- </div>
33
- <div class="form-group col-sm-2" style="width: auto;margin-top:8px;float: right">
34
-
35
- <export-excel-safe :data="$parent.$parent.searchData"
36
- :field="$parent.$parent.excelHeaders"
37
- progress="safeGetExportProgress"
38
- sqlurl="rs/logic/SafeExportExcel" sql-name="defectDetails"
39
- template-name='安检隐患明细'></export-excel-safe>
40
- <!-- <button class="button_spacing button_search" @click="$parent.$parent.showaudio()" v-if="!$parent.$parent.audioshow">录音</button>-->
41
- <button class="button_spacing button_search" @click="$parent.$parent.showaudio()"
42
- v-if="$parent.$parent.audioshow">隐藏
43
- </button>
44
-
45
- <button class="button_spacing button_search" @click="search()">查询</button>
46
- <div style="float: right" class="button_spacing"
47
- :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
48
- @click="$parent.$parent.hidden()"></div>
49
- </div>
50
-
51
- </div>
52
- <div class="row">
53
- <div class="col-sm-4 form-group" v-show="$parent.$parent.criteriaShow" style="margin: 0">
54
- <role-selector-safe
55
- role-name="维修员"
56
- role-lable="维&nbsp;修&nbsp;员&nbsp;"
57
- @re-res="$parent.$parent.getRes"
58
- :value.sync="model.f_checker_id"
59
- v-model="model.f_checker_id"
60
- condition="tdi.f_repairman = '{}'">
61
- </role-selector-safe>
62
- </div>
63
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
64
- <label class="font_normal_body">检&ensp;查&ensp;项</label>
65
- <v-select :value.sync="model.f_device_type" v-model='model.f_device_type'
66
- :value-single="true" style="width: 60%"
67
- class="select_list select"
68
- :options='$parent.$parent.device_types' placeholder='检查项'
69
- close-on-select
70
- @change="$parent.$parent.changeDefect"
71
- condition="f_device_type like '%{}%'"></v-select>
72
- <!--<input type="text" class="input_search" v-model="model.f_device_type"-->
73
- <!--style="width: 60%" placeholder="检&ensp;查&ensp;项" condition="f_device_type like '%{}%'">-->
74
- </div>
75
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
76
- <label class="font_normal_body">隐患名称</label>
77
- <v-select :value.sync="model.f_item_name" v-model='model.f_item_name'
78
- :value-single="true" style="width: 60%"
79
- class="select_list select"
80
- :options='$parent.$parent.DefectConfigs' placeholder='隐患名称'
81
- close-on-select
82
- condition="f_item_name like '%{}%'"></v-select>
83
- </div>
84
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
85
- <label class="font_normal_body">安检起始</label>
86
- <datepicker
87
- class="select_list select"
88
- :value.sync="model.f_check_start"
89
- placeholder='安检起始时间' style="width: 60%"
90
- :disabled-days-of-week="[]"
91
- :format="'yyyy-MM-dd'"
92
- :show-rest-button="reset"
93
- v-model="model.f_check_start"
94
- condition="f_offsite_time > ='{} 00:00:00'">
95
- </datepicker>
96
- </div>
97
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
98
- <label class="font_normal_body">安检结束</label>
99
- <datepicker
100
- class="select_list select"
101
- :value.sync="model.f_check_end"
102
- placeholder='安检结束时间' style="width: 60%"
103
- :disabled-days-of-week="[]"
104
- :format="'yyyy-MM-dd'"
105
- :show-rest-button="reset"
106
- v-model="model.f_check_end"
107
- condition="f_offsite_time < ='{} 23:59:59'">
108
- </datepicker>
109
- </div>
110
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
111
- <label class="font_normal_body">维修起始</label>
112
- <datepicker
113
- class="select_list select"
114
- :value.sync="model.f_repair_start"
115
- placeholder='维修起始' style="width: 60%"
116
- :disabled-days-of-week="[]"
117
- :format="'yyyy-MM-dd'"
118
- :show-rest-button="reset"
119
- v-model="model.f_repair_start"
120
- condition="tdi.f_repair_date >='{} 00:00:00'">
121
- </datepicker>
122
- </div>
123
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
124
- <label class="font_normal_body">维修截止</label>
125
- <datepicker
126
- class="select_list select"
127
- :value.sync="model.f_repair_end"
128
- placeholder='维修截止' style="width: 60%"
129
- :disabled-days-of-week="[]"
130
- :format="'yyyy-MM-dd'"
131
- :show-rest-button="reset"
132
- v-model="model.f_repair_end"
133
- condition="tdi.f_repair_date <='{} 23:59:59'">
134
- </datepicker>
135
- </div>
136
-
137
- </div>
138
- <div class="row">
139
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
140
- <label class="font_normal_body">维修结果</label>
141
- <v-select class="select_list select"
142
- placeholder='维修结果' style="width: 60%"
143
- :value.sync="model.f_is_repaired" v-model="model.f_is_repaired"
144
- :options='$parent.$parent.repaireds'
145
- filer-key="name"
146
- close-on-select clear-button
147
- condition="{}"
148
- :value-single="true">
149
- </v-select>
150
- <!--<input type="text" class="input_search" v-model="model.f_device_type"-->
151
- <!--style="width: 60%" placeholder="检&ensp;查&ensp;项" condition="f_device_type like '%{}%'">-->
152
- </div>
153
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
154
- <label class="font_normal_body">气表状态</label>
155
- <v-select :value.sync="model.f_table_state" v-model='model.f_table_state'
156
- :value-single="true" style="width: 60%"
157
- class="select_list select"
158
- :options='$parent.$parent.table_state' placeholder='气表状态'
159
- close-on-select
160
- condition="uf.f_table_state = '{}'"></v-select>
161
- </div>
162
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
163
- <label class="font_normal_body">处理公司</label>
164
- <v-select
165
- placeholder='处理公司'
166
- :value-single="true"
167
- class="select select_list" style="width: 60%"
168
- v-model='model.f_dealername'
169
- :value.sync="model.f_dealername"
170
- :options='$parent.$parent.dealername'
171
- condition="f_dealer_name = '{}'"
172
- close-on-select clear-button></v-select>
173
- </div>
174
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
175
- <label class="font_normal_body">用户类型</label>
176
- <v-select
177
- placeholder='用户类型'
178
- :value-single="true"
179
- class="select select_list" style="width: 60%"
180
- v-model='model.f_user_type'
181
- :value.sync="model.f_user_type"
182
- :options='$parent.$parent.user_types'
183
- condition="f_user_type = '{}'"
184
- close-on-select clear-button></v-select>
185
- </div>
186
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
187
- <label class="font_normal_body">用气性质</label>
188
- <v-select
189
- placeholder='用气性质'
190
- :value-single="true"
191
- class="select select_list" style="width: 60%"
192
- v-model='model.f_gasproperties'
193
- :value.sync="model.f_gasproperties"
194
- :options='$parent.$parent.gasproperties'
195
- condition="f_gasproperties = '{}'"
196
- close-on-select clear-button></v-select>
197
- </div>
198
- </div>
199
- <modal :show.sync="$parent.$parent.showModal" v-ref:modal>
200
- <div slot="modal-header" class="modal-header">
201
- <h4 class="modal-title">
202
- 选择计划
203
- </h4>
204
- </div>
205
- <div slot="modal-body" class="modal-body">
206
- <plan-chooser :f.sync="$parent.$parent.fun" v-ref:chooser></plan-chooser>
207
- </div>
208
- <div slot="modal-footer" class="modal-footer" style="text-align: center">
209
- <button class="button_search" @click="$parent.$parent.ok">确认</button>
210
- <button class="button_search" @click="$parent.$parent.cancel">取消</button>
211
- </div>
212
- </modal>
213
- </div>
214
- </criteria>
215
- <data-grid style="overflow: hidden" :model="model" partial='list' v-ref:grid>
216
- <template partial='head'>
217
- <tr>
218
- <th>
219
- <nobr>检查项</nobr>
220
- </th>
221
- <th>
222
- <nobr>隐患原因</nobr>
223
- </th>
224
- <th>
225
- <nobr>隐患级别</nobr>
226
- </th>
227
- <th>
228
- <nobr>客户编号</nobr>
229
- </th>
230
- <th>
231
- <nobr>客户名称</nobr>
232
- </th>
233
- <th>
234
- <nobr>用户状态</nobr>
235
- </th>
236
- <th>
237
- <nobr>客户电话</nobr>
238
- </th>
239
- <th>
240
- <nobr>表号</nobr>
241
- </th>
242
- <th>
243
- <nobr>表品牌</nobr>
244
- </th>
245
- <th>
246
- <nobr>表位置</nobr>
247
- </th>
248
- <th>
249
- <nobr>气表状态</nobr>
250
- </th>
251
- <th>
252
- <nobr>客户小区</nobr>
253
- </th>
254
- <th>
255
- <data-order field="f_address" name="客户地址"></data-order>
256
- </th>
257
-
258
- <th>
259
- <data-order field="f_offsite_time" name="安检时间"></data-order>
260
- </th>
261
- <th>
262
- <nobr>安检员</nobr>
263
- </th>
264
- <th>
265
- <nobr>隐患状态</nobr>
266
- </th>
267
- <th>
268
- <nobr>处理人</nobr>
269
- </th>
270
- <th>
271
- <nobr>处理时间</nobr>
272
- </th>
273
-
274
- <th>
275
- <nobr>隐患开始处理时间</nobr>
276
- </th>
277
- <th>
278
- <nobr>隐患结束处理时间</nobr>
279
- </th>
280
- <th>
281
- <nobr>隐患处理备注</nobr>
282
- </th>
283
- <th>
284
- <nobr>隐患处理公司</nobr>
285
- </th>
286
- <th>
287
- <nobr>用户类型</nobr>
288
- </th>
289
- <th>
290
- <nobr>用气性质</nobr>
291
- </th>
292
- <th>
293
- <nobr>操作</nobr>
294
- </th>
295
- </tr>
296
- </template>
297
- <template partial='body'>
298
- <td style="text-align: center">{{ row.f_device_type }}</td>
299
- <td style="text-align: center">{{ row.f_item_name }}/{{ row.f_item_value }}</td>
300
- <td style="text-align: center">{{ row.f_defect_level }}</td>
301
- <td style="text-align: center">{{ row.f_userinfo_code }}</td>
302
- <td style="text-align: center">{{ row.f_user_name }}</td>
303
- <td style="text-align: center">{{ row.f_user_state }}</td>
304
- <td style="text-align: center">{{ row.f_user_phone }}</td>
305
- <td style="text-align: center">{{ row.f_meternumber }}</td>
306
- <td style="text-align: center">{{ row.f_meter_brand }}</td>
307
- <td style="text-align: center">{{ row.f_position }}</td>
308
- <td style="text-align: center">{{ row.f_table_state }}</td>
309
- <td style="text-align: center">{{ row.f_residential_area }}</td>
310
- <td style="text-align: center">{{ row.f_address }}</td>
311
- <td style="text-align: center">{{ row.f_offsite_time }}</td>
312
- <td style="text-align: center">{{ row.f_checker_name }}</td>
313
- <td style="text-align: center">{{ row.f_is_repaired }}</td>
314
- <td style="text-align: center">{{ row.f_repairman }}</td>
315
- <td style="text-align: center">{{ row.f_repair_date }}</td>
316
- <td style="text-align: center">{{ row.f_dealer_starttime }}</td>
317
- <td style="text-align: center">{{ row.f_dealer_endtime }}</td>
318
- <td style="text-align: center">{{ row.f_deal_remark }}</td>
319
- <td style="text-align: center">{{ row.f_dealer_name }}</td>
320
- <td style="text-align: center">{{ row.f_user_type }}</td>
321
- <td style="text-align: center">{{ row.f_gasproperties }}</td>
322
- <td style="text-align: center">
323
- <button class="button_spacing button_search-1" @click="$parent.$parent.$parent.situation(row)">
324
- 处理照片
325
- </button>
326
- <button type="button" class="button_new-1 button_spacing" data-toggle="dropdown"
327
- @click="$parent.$parent.$parent.print(row)">
328
- 打印
329
- </button>
330
- </td>
331
- </template>
332
- </data-grid>
333
- </criteria-paged>
334
- <check-msgdeal v-if="showcheckmsg" :show="showcheckmsg" :data="checkInfodeal" :realpath="realpath"
335
- :realsignpath="yhpathdeals"></check-msgdeal>
336
- </div>
337
- </div>
338
- <modal :show.sync="trouble">
339
- <div slot="modal-header" class="modal-header">
340
- <h4 class="modal-title">
341
- 隐患处理照片及签名
342
- </h4>
343
- </div>
344
- <div slot="modal-body" class="modal-body" v-if="yhpath">
345
- <div style="width: 100%;height: 36px;background-color: #f1f8ff;float: left">
346
- <div style="width: 8px;height: 100%;background-color: #6aa6e2;margin-right: 20px;float: left"></div>
347
- <div style="width: auto;height:100%;float: left;"><p class="title-font" style="margin-top: 5px">处理后图片</p></div>
348
- </div>
349
- <!-- <label class="font_normal_body">处理后图片</label>-->
350
- <img-self :width="300" :height="320" :src="yhpath"></img-self>
351
- <div style="width: 100%;height: 36px;background-color: #f1f8ff;float: left">
352
- <div style="width: 8px;height: 100%;background-color: #6aa6e2;margin-right: 20px;float: left"></div>
353
- <div style="width: auto;height:100%;float: left;"><p class="title-font" style="margin-top: 5px">用户签名</p></div>
354
- </div>
355
- <!-- <label class="font_normal_body">用户签名</label>-->
356
- <img-self :width="300" :height="320" :src="yhpathsign"></img-self>
357
- <!-- <img :src="`/rs/image/file/${yhpath.f_dealpath}`" alt="无照片!!!" width="300" height="320">-->
358
-
359
- </div>
360
- <div slot="modal-footer" class="modal-footer">
361
- <button class="button_spacing button_search-1" @click="trouble = false;yhpath=null">确认</button>
362
- </div>
363
- </modal>
364
- </template>
365
-
366
- <script>
367
- import {PagedList} from 'vue-client'
368
- import Vue from 'vue'
369
- import co from 'co'
370
- import HttpResetClass from "vue-client/src/plugins/HttpResetClass";
371
-
372
- //获取json配置文件
373
- let asyncReady = async function (self) {
374
- // 获取配置信息
375
- try {
376
- let res = await Vue.resetget(`/phone/rs/vue`, {data: {}}, {resolveMsg: null, rejectMsg: null})
377
- Vue.config = res.data
378
- self.getDefectInfoConfig(res.data)
379
- } catch (error) {
380
- // 忽略704,文件找不到异常R
381
- if (error.status !== 704) {
382
- throw error
383
- }
384
- }
385
- }
386
-
387
- let select = function* (self) {
388
- let http = new HttpResetClass()
389
- let getGasman = yield http.load('POST', '/rs/search', {
390
- source: 'this.getParentByType($department$).getAllChildrens().where(row.getAttributes().get($rolestr$).indexOf($安检员$) != -1))',
391
- userid: self.$login.f.id
392
- }, {resolveMsg: null, rejectMsg: null})
393
- ////tag
394
- self.checkersid.push({label: '全部', value: ''})
395
- getGasman.data.forEach((checker) => {
396
- self.checkersid.push({label: checker.name, value: checker.id})
397
- })
398
- }
399
-
400
- export default {
401
- title: '隐患明细查看',
402
- data() {
403
- let model = new PagedList('rs/sql/defectDetails', 20)
404
- model.f_plan_id = ''
405
- model.f_approved = ''
406
- model.f_entry = ''
407
- model.f_no_checkplan = ''
408
- model.f_filialeid = `('${this.$login.f.orgid}')`
409
- //model.f_check_type='民用'
410
- // let searchData={
411
- // f_plan_id: this.model.f_checker_id==undefined?"":this.model.f_checker_id,
412
- // f_approved: this.model.f_approved,
413
- // f_entry_status: this.model.f_entry,
414
- // f_no_checkplan:this.model.f_no_checkplan[0],
415
- // f_filialeid: this.model.f_filialeid,
416
- // //orderitem: this.model.f_offsite_time,
417
- // //condition:this.model.condition
418
- // }
419
- // model.f_subcompany = this.$login.f.f_fengongsi
420
- return {
421
- audioshow: false,
422
- trouble: false,
423
- dealername: [{label: '全部', value: ''}, {label: '洁能', value: '洁能'}, {label: '宏语', value: '宏语'}],
424
- searchData: {
425
- condition: "1=1",
426
- },
427
- table_state: [{label: '全部', value: ''}, ...this.$appdata.getParam('气表状态')],
428
- gasproperties: [{label: '全部', value: ''}, ...this.$appdata.getParam('用气性质')],
429
- user_types: [{label: '全部', value: ''}, ...this.$appdata.getParam('用户类型')],
430
- model: model,
431
- //searchData:searchData,
432
- excelHeaders: {
433
- 'f_device_type': '检查项',
434
- 'f_item_name': '隐患名称',
435
- 'f_defect_level': '隐患级别',
436
- 'f_userinfo_code': '客户编号',
437
- 'f_user_name': '客户姓名',
438
- 'f_user_phone': '客户电话',
439
- 'f_meternumber': '表号',
440
- 'f_meter_brand': '表品牌',
441
- 'f_position': '表位置',
442
- 'f_table_state': '气表状态',
443
- 'f_residential_area': '客户小区',
444
- 'f_address': '客户地址',
445
- 'f_offsite_time': '安检时间',
446
- 'f_deal_remark': '隐患处理备注',
447
- 'f_dealer_starttime': '开始处理时间',
448
- 'f_dealer_endtime': '结束处理时间',
449
- 'f_dealer_name': '隐患处理公司',
450
- 'f_checker_name': '安检员',
451
- 'f_repairman': '维修人',
452
- 'f_user_state': '用户状态',
453
- 'f_is_repaired': '隐患状态',
454
- 'f_user_type': '用户类型',
455
- 'f_gasproperties': '用气性质',
456
- 'f_repair_date': '处理时间'
457
-
458
- },
459
- fun: this.$login.f,
460
- checkersid: [],
461
- repairers: [],
462
- safetype: this.getSafeParam('安检类型'),
463
- criteriaShow: false,
464
- repaireds: [{label: '全部', value: ''},
465
- {label: '已处理', value: `f_is_repaired='已处理'`},
466
- {label: '已整改', value: `f_is_repaired='已整改'`},
467
- {label: '用户已处理', value: `f_is_repaired='用户已处理'`},
468
- {label: '转维修', value: `f_is_repaired='转维修'`},
469
- {label: '未处理', value: "f_is_repaired is null"}
470
- ],
471
- showModal: false,
472
- f_approval_states: this.getSafeParam('安检单审核状态'),
473
- f_entry_status: this.getSafeParam('安检状态'),
474
- f_checkplans: this.getSafeParam('有无计划'),
475
- showcheckmsg: false,
476
- checkInfodeal: {},
477
- orderDefault: "'f_offsite_time'",
478
- orderFields: {
479
- f_offsite_time: 'no'
480
- },
481
- sliceArea: [],
482
- yhpath: null,
483
- yhpathsign: null,
484
- realpath: null,
485
- yhpathdeals: null,
486
- cbc: [],
487
- DefectConfig: '',
488
- DefectConfigs: [{label: '全部', value: ''}, {label: '气量异常差值', value: '气量异常差值'}],
489
- device_types: [{label: '全部', value: ''}],
490
- }
491
- },
492
- methods: {
493
- getEmp() {
494
- let val = {
495
- source: 'this.getParentByType($organization$).getChildByName($维修员$).getUsers()',
496
- userid: `${this.$login.f.id}`
497
- }
498
- // let val = {source: 'this.getParentByType($department$).getAllChildrens().where(row.getAttributes().get($rolestr$) == $维修员$))', userid: `${this.$login.f.id}`}
499
- // let val = {source: 'this.getParentByType($department$).getChildByName($置换员$).getUsers()', userid: `${this.$login.f.id}`}
500
- let http = new HttpResetClass()
501
- http.load('POST', '/rs/search', {data: val}, {resolveMsg: null, rejectMsg: null}).then((res) => {
502
- res.data.forEach((item) => {
503
- this.repairers.push({label: item.name, value: item.name})
504
- })
505
- })
506
- },
507
- //隐患处理照片查看
508
- situation(row) {
509
- //tag
510
- if (row.f_dealpath === '' || row.f_dealpath === null || row.f_item_name === '气量异常差值' || row.f_dealsign_path === '' || row.f_dealsign_path === null) {
511
- this.$showMessage('无签名照片或者隐患处理照片,或处理过数据!!!')
512
- } else {
513
- this.yhpath = '/rs/image/file/' + row.f_dealpath.substring(row.f_dealpath.lastIndexOf('/')+1)
514
- this.yhpathsign = '/rs/image/file/' + row.f_dealsign_path.substring(row.f_dealpath.lastIndexOf('/')+1)
515
- this.trouble = true
516
- }
517
- },
518
-
519
- changeDefect(val) {
520
- try {
521
- if (val) {
522
- for (var Key1 in this.DefectConfig) {
523
- if (Key1 == val) {
524
- this.DefectConfigs = [{label: '全部', value: ''}]
525
- for (var Key2 in this.DefectConfig[Key1].items) {
526
- this.DefectConfigs.push({label: Key2, value: Key2})
527
- }
528
- return
529
- }
530
- }
531
- } else if (val == '') {
532
- this.DefectConfigs = [{label: '全部', value: ''}]
533
- for (var Key1 in this.DefectConfig) {
534
- for (var Key2 in this.DefectConfig[Key1].items) {
535
- this.DefectConfigs.push({label: Key2, value: Key2})
536
- }
537
- }
538
- }
539
- } catch (e) {
540
- //tag
541
- }
542
- },
543
- getDefectInfoConfig(val) {
544
- try {
545
- if (val.safecheck.DevicesSetConfig != undefined) {
546
- this.DefectConfig = val.safecheck.DevicesConfig
547
- // 获取到配置项,进行遍历,获取每个隐患项
548
- for (var Key1 in this.DefectConfig) {
549
- this.device_types.push({label: Key1, value: Key1})
550
- for (var Key2 in this.DefectConfig[Key1].items) {
551
- this.DefectConfigs.push({label: Key2, value: Key2})
552
- }
553
- }
554
- // 非民用或其他配置项加入,在进行遍历
555
- }
556
- } catch (e) {
557
- //tag
558
- }
559
- },
560
- showaudio() {
561
- //tag
562
- this.audioshow = !this.audioshow
563
- //tag
564
- },
565
- getmeterbook(val) {
566
- this.cbc = []
567
- this.cbc.push({
568
- label: '全部',
569
- value: ''
570
- })
571
- if (val == '') {
572
-
573
- this.cbcs.forEach(res => {
574
- this.cbc.push({
575
- label: res.f_book_name,
576
- value: res.id
577
- })
578
- })
579
- } else {
580
- this.cbcs.forEach(res => {
581
- if (res.f_book_slice_area == val) {
582
- this.cbc.push({
583
- label: res.f_book_name,
584
- value: res.id
585
- })
586
- }
587
- })
588
- }
589
- },
590
- getSafeParam(val) {
591
- if (this.$appdata.getParam(val)) {
592
- return [{label: '全部', value: ''}, ...this.$appdata.getParam(val)]
593
- } else {
594
- return [{label: '全部', value: ''}]
595
- }
596
-
597
- },
598
- Mreadibook(val) {
599
- ////tag
600
- ////tag
601
- this.sliceArea = []
602
- if (val) {
603
- new HttpResetClass().load('POST', `/rs/sql/safe_singleTable_OrderBy`, {
604
- data: {
605
- items: 'name',
606
- tablename: 't_zone',
607
- condition: `parentid in ${val}`,
608
- orderitem: 'id'
609
- }
610
- }, {resolveMsg: null, rejectMsg: null}).then((res) => {
611
- this.sliceArea.push({
612
- label: '全部',
613
- value: ''
614
- })
615
- res.data.forEach(ress => {
616
- this.sliceArea.push({
617
- label: ress.name,
618
- value: ress.name
619
- })
620
- })
621
-
622
- })
623
- }
624
- },
625
- getAllMeterBook(val) {
626
- ////tag
627
- ////tag
628
- this.cbcs = []
629
- if (val) {
630
- new HttpResetClass().load('POST', `/rs/sql/safe_singleTable_OrderBy`, {
631
- data: {
632
- items: 'f_book_name,f_book_slice_area,id',
633
- tablename: 't_meter_book',
634
- condition: `f_filiale_id in ${val}`,
635
- orderitem: 'id'
636
- }
637
- }, {resolveMsg: null, rejectMsg: null}).then((res) => {
638
- res.data.forEach(ress => {
639
- this.cbcs.push({
640
- id: ress.id,
641
- f_book_name: ress.f_book_name,
642
- f_book_slice_area: ress.f_book_slice_area
643
- })
644
- })
645
- this.cbc = []
646
- this.cbc.push({
647
- label: '全部',
648
- value: ''
649
- })
650
- this.cbcs.forEach(res => {
651
- this.cbc.push({
652
- label: res.f_book_name,
653
- value: res.id
654
- })
655
- })
656
- })
657
- }
658
- },
659
- getRes(obj) {
660
- this.model.f_filialeid = this.$login.convertToIn(obj.resids);
661
- this.searchData.f_filialeid = this.$login.convertToIn(obj.resids);
662
- this.Mreadibook(this.model.f_filialeid)
663
- this.getAllMeterBook(this.model.f_filialeid)
664
- //this.$refs.paged.$refs.criteria.search()
665
- },
666
-
667
- change(row) {
668
- // Vue.$login = {jwt: row.f_checker_id}
669
- asyncReady(this).then(() => {
670
- ////tag)
671
- row.f_upload_state = '已传'
672
- this.$goto('new-check-paper', {f_plan_id: row.f_check_plan_id, item: row, role: 'view'}, 'self')
673
- }).catch(
674
- (respanse) => {
675
- alert('获取配置文件失败')
676
- })
677
- },
678
- readConfig() {
679
- let gen = asyncReady(this)
680
- return co(gen)
681
- },
682
- showChooser() {
683
- this.showModal = true
684
- },
685
- hidden() {
686
- this.criteriaShow = !this.criteriaShow
687
- },
688
- refresh() {
689
- this.$refs.paged.$refs.criteria.search()
690
- },
691
- ok() {
692
- this.showModal = false
693
- if (this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow.id) {
694
- this.model.f_plan_id = this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow.id
695
- this.model.f_check_plan = this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow
696
- }
697
- },
698
- cancel() {
699
- this.showModal = false
700
- this.model.f_check_plan = {f_plan_name: '', id: ''}
701
- this.model.f_plan_id = ''
702
- },
703
- print(row) {
704
- this.realpath = ''
705
- this.yhpathdeals = ''
706
- this.showcheckmsg = true
707
- this.checkInfodeal = row
708
- this.realpath = '/rs/image/file/' + row.f_dealpath.substring(row.f_dealpath.lastIndexOf('/')+1)
709
- this.yhpathdeals = '/rs/image/file/' + row.f_dealsign_path.substring(row.f_dealpath.lastIndexOf('/')+1)
710
- },
711
-
712
- sort(field, rule) {
713
- // 将所有排序方式设为不排序,实现相互排斥
714
- for (let key in this.orderFields) {
715
- if (key === field) {
716
- this.orderFields[key] = rule
717
- } else {
718
- this.orderFields[key] = 'no'
719
- }
720
- }
721
- // 如果新规则不排序,还原为默认排序
722
- if (rule === 'no') {
723
- this.model.paramSource.orderitem = `'${this.orderDefault}'`
724
- } else {
725
- this.model.paramSource.orderitem = `'${field} ${rule}'`
726
- }
727
- this.search()
728
- },
729
- search() {
730
- this.$refs.paged.$refs.criteria.search()
731
- },
732
- selfSearch(args) {
733
- ////tag
734
- this.model.search(args.condition, args.model, args.condValue)
735
- }
736
- },
737
-
738
- ready() {
739
- this.readConfig()
740
- this.getEmp()
741
- ////tag
742
- this.function = this.f
743
- ////tag
744
-
745
- let gen = select(this)
746
- //this.pianqu()
747
- this.Mreadibook(`('${this.$login.f.orgid}')`)
748
- co(gen)
749
- },
750
- watch: {
751
- 'model.f_no_checkplan'(val) {
752
- if (this.model.f_no_checkplan) {
753
- this.searchData.f_no_checkplan = val
754
- }
755
- if (this.model.f_no_checkplan == '有计划安检') {
756
-
757
- this.showChooser()
758
- }
759
- },
760
- 'model.condition'(val) {
761
- if (val) {
762
- this.searchData.condition = val
763
- }
764
-
765
- },
766
- 'model.f_entry'(val) {
767
- if (val) {
768
- this.searchData.f_entry_status = val
769
-
770
- }
771
- },
772
- 'model.f_plan_id'(val) {
773
- if (val) {
774
- this.searchData.f_plan_id = val
775
- }
776
- },
777
- 'model.f_slice_area'(val) {
778
- if (val) {
779
-
780
- }
781
- },
782
- 'model.f_approved'(val) {
783
- if (val) {
784
- this.searchData.f_approved = val
785
- }
786
- },
787
- }
788
-
789
- }
790
- </script>
1
+ <template>
2
+ <div class="flex-row">
3
+ <div class="basic-main">
4
+ <criteria-paged :model="model" v-ref:paged @sort="sort">
5
+ <criteria partial='criteria' class="search_area" @condition-changed='$parent.selfSearch' v-ref:criteria>
6
+ <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
7
+ <div class="row">
8
+ <div class="form-group col-sm-2">
9
+ <label class="font_normal_body">客户编号</label>
10
+ <input type="text" class="input_search" v-model="model.f_userinfo_code"
11
+ style="width: 60%" placeholder="客户编号" condition="tcp.f_userinfo_code='{}'">
12
+ </div>
13
+ <div class="form-group col-sm-2">
14
+ <label class="font_normal_body">客户名称</label>
15
+ <input type="text" class="input_search" v-model="model.f_user_name"
16
+ style="width: 60%" placeholder="客户名称" condition="tcp.f_user_name like '%{}%'">
17
+ </div>
18
+ <div class="form-group col-sm-2">
19
+ <label class="font_normal_body">客户电话</label>
20
+ <input type="text" class="input_search" v-model="model.f_user_phone"
21
+ style="width: 60%" placeholder="客户电话" condition="tcp.f_user_phone like '%{}%'">
22
+ </div>
23
+ <div class="form-group col-sm-2">
24
+ <label class="font_normal_body">小&emsp;&emsp;区</label>
25
+ <input type="text" class="input_search" v-model="model.f_residential_area"
26
+ style="width: 60%" placeholder="小区" condition="tcp.f_residential_area like '%{}%'">
27
+ </div>
28
+ <div class="form-group col-sm-2">
29
+ <label class="font_normal_body">详细地址</label>
30
+ <input type="text" class="input_search" v-model="model.f_address"
31
+ style="width: 60%" placeholder="详细地址" condition="tcp.f_address like '%{}%'">
32
+ </div>
33
+ <div class="form-group col-sm-2" style="width: auto;margin-top:8px;float: right">
34
+
35
+ <export-excel-safe :data="$parent.$parent.searchData"
36
+ :field="$parent.$parent.excelHeaders"
37
+ progress="safeGetExportProgress"
38
+ sqlurl="rs/logic/SafeExportExcel" sql-name="defectDetails"
39
+ template-name='安检隐患明细'></export-excel-safe>
40
+ <!-- <button class="button_spacing button_search" @click="$parent.$parent.showaudio()" v-if="!$parent.$parent.audioshow">录音</button>-->
41
+ <button class="button_spacing button_search" @click="$parent.$parent.showaudio()"
42
+ v-if="$parent.$parent.audioshow">隐藏
43
+ </button>
44
+
45
+ <button class="button_spacing button_search" @click="search()">查询</button>
46
+ <div style="float: right" class="button_spacing"
47
+ :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
48
+ @click="$parent.$parent.hidden()"></div>
49
+ </div>
50
+
51
+ </div>
52
+ <div class="row">
53
+ <div class="col-sm-4 form-group" v-show="$parent.$parent.criteriaShow" style="margin: 0">
54
+ <role-selector-safe
55
+ role-name="维修员"
56
+ role-lable="维&nbsp;修&nbsp;员&nbsp;"
57
+ @re-res="$parent.$parent.getRes"
58
+ :value.sync="model.f_checker_id"
59
+ v-model="model.f_checker_id"
60
+ condition="tdi.f_repairman = '{}'">
61
+ </role-selector-safe>
62
+ </div>
63
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
64
+ <label class="font_normal_body">检&ensp;查&ensp;项</label>
65
+ <v-select :value.sync="model.f_device_type" v-model='model.f_device_type'
66
+ :value-single="true" style="width: 60%"
67
+ class="select_list select"
68
+ :options='$parent.$parent.device_types' placeholder='检查项'
69
+ close-on-select
70
+ @change="$parent.$parent.changeDefect"
71
+ condition="f_device_type like '%{}%'"></v-select>
72
+ <!--<input type="text" class="input_search" v-model="model.f_device_type"-->
73
+ <!--style="width: 60%" placeholder="检&ensp;查&ensp;项" condition="f_device_type like '%{}%'">-->
74
+ </div>
75
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
76
+ <label class="font_normal_body">隐患名称</label>
77
+ <v-select :value.sync="model.f_item_name" v-model='model.f_item_name'
78
+ :value-single="true" style="width: 60%"
79
+ class="select_list select"
80
+ :options='$parent.$parent.DefectConfigs' placeholder='隐患名称'
81
+ close-on-select
82
+ condition="f_item_name like '%{}%'"></v-select>
83
+ </div>
84
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
85
+ <label class="font_normal_body">安检起始</label>
86
+ <datepicker
87
+ class="select_list select"
88
+ :value.sync="model.f_check_start"
89
+ placeholder='安检起始时间' style="width: 60%"
90
+ :disabled-days-of-week="[]"
91
+ :format="'yyyy-MM-dd'"
92
+ :show-rest-button="reset"
93
+ v-model="model.f_check_start"
94
+ condition="f_offsite_time > ='{} 00:00:00'">
95
+ </datepicker>
96
+ </div>
97
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
98
+ <label class="font_normal_body">安检结束</label>
99
+ <datepicker
100
+ class="select_list select"
101
+ :value.sync="model.f_check_end"
102
+ placeholder='安检结束时间' style="width: 60%"
103
+ :disabled-days-of-week="[]"
104
+ :format="'yyyy-MM-dd'"
105
+ :show-rest-button="reset"
106
+ v-model="model.f_check_end"
107
+ condition="f_offsite_time < ='{} 23:59:59'">
108
+ </datepicker>
109
+ </div>
110
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
111
+ <label class="font_normal_body">维修起始</label>
112
+ <datepicker
113
+ class="select_list select"
114
+ :value.sync="model.f_repair_start"
115
+ placeholder='维修起始' style="width: 60%"
116
+ :disabled-days-of-week="[]"
117
+ :format="'yyyy-MM-dd'"
118
+ :show-rest-button="reset"
119
+ v-model="model.f_repair_start"
120
+ condition="tdi.f_repair_date >='{} 00:00:00'">
121
+ </datepicker>
122
+ </div>
123
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
124
+ <label class="font_normal_body">维修截止</label>
125
+ <datepicker
126
+ class="select_list select"
127
+ :value.sync="model.f_repair_end"
128
+ placeholder='维修截止' style="width: 60%"
129
+ :disabled-days-of-week="[]"
130
+ :format="'yyyy-MM-dd'"
131
+ :show-rest-button="reset"
132
+ v-model="model.f_repair_end"
133
+ condition="tdi.f_repair_date <='{} 23:59:59'">
134
+ </datepicker>
135
+ </div>
136
+
137
+ </div>
138
+ <div class="row">
139
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
140
+ <label class="font_normal_body">维修结果</label>
141
+ <v-select class="select_list select"
142
+ placeholder='维修结果' style="width: 60%"
143
+ :value.sync="model.f_is_repaired" v-model="model.f_is_repaired"
144
+ :options='$parent.$parent.repaireds'
145
+ filer-key="name"
146
+ close-on-select clear-button
147
+ condition="{}"
148
+ :value-single="true">
149
+ </v-select>
150
+ <!--<input type="text" class="input_search" v-model="model.f_device_type"-->
151
+ <!--style="width: 60%" placeholder="检&ensp;查&ensp;项" condition="f_device_type like '%{}%'">-->
152
+ </div>
153
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
154
+ <label class="font_normal_body">气表状态</label>
155
+ <v-select :value.sync="model.f_table_state" v-model='model.f_table_state'
156
+ :value-single="true" style="width: 60%"
157
+ class="select_list select"
158
+ :options='$parent.$parent.table_state' placeholder='气表状态'
159
+ close-on-select
160
+ condition="uf.f_table_state = '{}'"></v-select>
161
+ </div>
162
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
163
+ <label class="font_normal_body">处理公司</label>
164
+ <v-select
165
+ placeholder='处理公司'
166
+ :value-single="true"
167
+ class="select select_list" style="width: 60%"
168
+ v-model='model.f_dealername'
169
+ :value.sync="model.f_dealername"
170
+ :options='$parent.$parent.dealername'
171
+ condition="f_dealer_name = '{}'"
172
+ close-on-select clear-button></v-select>
173
+ </div>
174
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
175
+ <label class="font_normal_body">用户类型</label>
176
+ <v-select
177
+ placeholder='用户类型'
178
+ :value-single="true"
179
+ class="select select_list" style="width: 60%"
180
+ v-model='model.f_user_type'
181
+ :value.sync="model.f_user_type"
182
+ :options='$parent.$parent.user_types'
183
+ condition="f_user_type = '{}'"
184
+ close-on-select clear-button></v-select>
185
+ </div>
186
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
187
+ <label class="font_normal_body">用气性质</label>
188
+ <v-select
189
+ placeholder='用气性质'
190
+ :value-single="true"
191
+ class="select select_list" style="width: 60%"
192
+ v-model='model.f_gasproperties'
193
+ :value.sync="model.f_gasproperties"
194
+ :options='$parent.$parent.gasproperties'
195
+ condition="f_gasproperties = '{}'"
196
+ close-on-select clear-button></v-select>
197
+ </div>
198
+ </div>
199
+ <modal :show.sync="$parent.$parent.showModal" v-ref:modal>
200
+ <div slot="modal-header" class="modal-header">
201
+ <h4 class="modal-title">
202
+ 选择计划
203
+ </h4>
204
+ </div>
205
+ <div slot="modal-body" class="modal-body">
206
+ <plan-chooser :f.sync="$parent.$parent.fun" v-ref:chooser></plan-chooser>
207
+ </div>
208
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
209
+ <button class="button_search" @click="$parent.$parent.ok">确认</button>
210
+ <button class="button_search" @click="$parent.$parent.cancel">取消</button>
211
+ </div>
212
+ </modal>
213
+ </div>
214
+ </criteria>
215
+ <data-grid style="overflow: hidden" :model="model" partial='list' v-ref:grid>
216
+ <template partial='head'>
217
+ <tr>
218
+ <th>
219
+ <nobr>检查项</nobr>
220
+ </th>
221
+ <th>
222
+ <nobr>隐患原因</nobr>
223
+ </th>
224
+ <th>
225
+ <nobr>隐患级别</nobr>
226
+ </th>
227
+ <th>
228
+ <nobr>客户编号</nobr>
229
+ </th>
230
+ <th>
231
+ <nobr>客户名称</nobr>
232
+ </th>
233
+ <th>
234
+ <nobr>用户状态</nobr>
235
+ </th>
236
+ <th>
237
+ <nobr>客户电话</nobr>
238
+ </th>
239
+ <th>
240
+ <nobr>表号</nobr>
241
+ </th>
242
+ <th>
243
+ <nobr>表品牌</nobr>
244
+ </th>
245
+ <th>
246
+ <nobr>表位置</nobr>
247
+ </th>
248
+ <th>
249
+ <nobr>气表状态</nobr>
250
+ </th>
251
+ <th>
252
+ <nobr>客户小区</nobr>
253
+ </th>
254
+ <th>
255
+ <data-order field="f_address" name="客户地址"></data-order>
256
+ </th>
257
+
258
+ <th>
259
+ <data-order field="f_offsite_time" name="安检时间"></data-order>
260
+ </th>
261
+ <th>
262
+ <nobr>安检员</nobr>
263
+ </th>
264
+ <th>
265
+ <nobr>隐患状态</nobr>
266
+ </th>
267
+ <th>
268
+ <nobr>处理人</nobr>
269
+ </th>
270
+ <th>
271
+ <nobr>处理时间</nobr>
272
+ </th>
273
+
274
+ <th>
275
+ <nobr>隐患开始处理时间</nobr>
276
+ </th>
277
+ <th>
278
+ <nobr>隐患结束处理时间</nobr>
279
+ </th>
280
+ <th>
281
+ <nobr>隐患处理备注</nobr>
282
+ </th>
283
+ <th>
284
+ <nobr>隐患处理公司</nobr>
285
+ </th>
286
+ <th>
287
+ <nobr>用户类型</nobr>
288
+ </th>
289
+ <th>
290
+ <nobr>用气性质</nobr>
291
+ </th>
292
+ <th>
293
+ <nobr>操作</nobr>
294
+ </th>
295
+ </tr>
296
+ </template>
297
+ <template partial='body'>
298
+ <td style="text-align: center">{{ row.f_device_type }}</td>
299
+ <td style="text-align: center">{{ row.f_item_name }}/{{ row.f_item_value }}</td>
300
+ <td style="text-align: center">{{ row.f_defect_level }}</td>
301
+ <td style="text-align: center">{{ row.f_userinfo_code }}</td>
302
+ <td style="text-align: center">{{ row.f_user_name }}</td>
303
+ <td style="text-align: center">{{ row.f_user_state }}</td>
304
+ <td style="text-align: center">{{ row.f_user_phone }}</td>
305
+ <td style="text-align: center">{{ row.f_meternumber }}</td>
306
+ <td style="text-align: center">{{ row.f_meter_brand }}</td>
307
+ <td style="text-align: center">{{ row.f_position }}</td>
308
+ <td style="text-align: center">{{ row.f_table_state }}</td>
309
+ <td style="text-align: center">{{ row.f_residential_area }}</td>
310
+ <td style="text-align: center">{{ row.f_address }}</td>
311
+ <td style="text-align: center">{{ row.f_offsite_time }}</td>
312
+ <td style="text-align: center">{{ row.f_checker_name }}</td>
313
+ <td style="text-align: center">{{ row.f_is_repaired }}</td>
314
+ <td style="text-align: center">{{ row.f_repairman }}</td>
315
+ <td style="text-align: center">{{ row.f_repair_date }}</td>
316
+ <td style="text-align: center">{{ row.f_dealer_starttime }}</td>
317
+ <td style="text-align: center">{{ row.f_dealer_endtime }}</td>
318
+ <td style="text-align: center">{{ row.f_deal_remark }}</td>
319
+ <td style="text-align: center">{{ row.f_dealer_name }}</td>
320
+ <td style="text-align: center">{{ row.f_user_type }}</td>
321
+ <td style="text-align: center">{{ row.f_gasproperties }}</td>
322
+ <td style="text-align: center">
323
+ <button class="button_spacing button_search-1" @click="$parent.$parent.$parent.situation(row)">
324
+ 处理照片
325
+ </button>
326
+ <button type="button" class="button_new-1 button_spacing" data-toggle="dropdown"
327
+ @click="$parent.$parent.$parent.print(row)">
328
+ 打印
329
+ </button>
330
+ </td>
331
+ </template>
332
+ </data-grid>
333
+ </criteria-paged>
334
+ <check-msgdeal v-if="showcheckmsg" :show="showcheckmsg" :data="checkInfodeal" :realpath="realpath"
335
+ :realsignpath="yhpathdeals"></check-msgdeal>
336
+ </div>
337
+ </div>
338
+ <modal :show.sync="trouble">
339
+ <div slot="modal-header" class="modal-header">
340
+ <h4 class="modal-title">
341
+ 隐患处理照片及签名
342
+ </h4>
343
+ </div>
344
+ <div slot="modal-body" class="modal-body" v-if="yhpath">
345
+ <div style="width: 100%;height: 36px;background-color: #f1f8ff;float: left">
346
+ <div style="width: 8px;height: 100%;background-color: #6aa6e2;margin-right: 20px;float: left"></div>
347
+ <div style="width: auto;height:100%;float: left;"><p class="title-font" style="margin-top: 5px">处理后图片</p></div>
348
+ </div>
349
+ <!-- <label class="font_normal_body">处理后图片</label>-->
350
+ <img-self :width="300" :height="320" :src="yhpath"></img-self>
351
+ <div style="width: 100%;height: 36px;background-color: #f1f8ff;float: left">
352
+ <div style="width: 8px;height: 100%;background-color: #6aa6e2;margin-right: 20px;float: left"></div>
353
+ <div style="width: auto;height:100%;float: left;"><p class="title-font" style="margin-top: 5px">用户签名</p></div>
354
+ </div>
355
+ <!-- <label class="font_normal_body">用户签名</label>-->
356
+ <img-self :width="300" :height="320" :src="yhpathsign"></img-self>
357
+ <!-- <img :src="`/rs/image/file/${yhpath.f_dealpath}`" alt="无照片!!!" width="300" height="320">-->
358
+
359
+ </div>
360
+ <div slot="modal-footer" class="modal-footer">
361
+ <button class="button_spacing button_search-1" @click="trouble = false;yhpath=null">确认</button>
362
+ </div>
363
+ </modal>
364
+ </template>
365
+
366
+ <script>
367
+ import {PagedList} from 'vue-client'
368
+ import Vue from 'vue'
369
+ import co from 'co'
370
+ import HttpResetClass from "vue-client/src/plugins/HttpResetClass";
371
+
372
+ //获取json配置文件
373
+ let asyncReady = async function (self) {
374
+ // 获取配置信息
375
+ try {
376
+ let res = await Vue.resetget(`/phone/rs/vue`, {data: {}}, {resolveMsg: null, rejectMsg: null})
377
+ Vue.config = res.data
378
+ self.getDefectInfoConfig(res.data)
379
+ } catch (error) {
380
+ // 忽略704,文件找不到异常R
381
+ if (error.status !== 704) {
382
+ throw error
383
+ }
384
+ }
385
+ }
386
+
387
+ let select = function* (self) {
388
+ let http = new HttpResetClass()
389
+ let getGasman = yield http.load('POST', '/rs/search', {
390
+ source: 'this.getParentByType($department$).getAllChildrens().where(row.getAttributes().get($rolestr$).indexOf($安检员$) != -1))',
391
+ userid: self.$login.f.id
392
+ }, {resolveMsg: null, rejectMsg: null})
393
+ ////tag
394
+ self.checkersid.push({label: '全部', value: ''})
395
+ getGasman.data.forEach((checker) => {
396
+ self.checkersid.push({label: checker.name, value: checker.id})
397
+ })
398
+ }
399
+
400
+ export default {
401
+ title: '隐患明细查看',
402
+ data() {
403
+ let model = new PagedList('rs/sql/defectDetails', 20)
404
+ model.f_plan_id = ''
405
+ model.f_approved = ''
406
+ model.f_entry = ''
407
+ model.f_no_checkplan = ''
408
+ model.f_filialeid = `('${this.$login.f.orgid}')`
409
+ //model.f_check_type='民用'
410
+ // let searchData={
411
+ // f_plan_id: this.model.f_checker_id==undefined?"":this.model.f_checker_id,
412
+ // f_approved: this.model.f_approved,
413
+ // f_entry_status: this.model.f_entry,
414
+ // f_no_checkplan:this.model.f_no_checkplan[0],
415
+ // f_filialeid: this.model.f_filialeid,
416
+ // //orderitem: this.model.f_offsite_time,
417
+ // //condition:this.model.condition
418
+ // }
419
+ // model.f_subcompany = this.$login.f.f_fengongsi
420
+ return {
421
+ audioshow: false,
422
+ trouble: false,
423
+ dealername: [{label: '全部', value: ''}, {label: '洁能', value: '洁能'}, {label: '宏语', value: '宏语'}],
424
+ searchData: {
425
+ condition: "1=1",
426
+ },
427
+ table_state: [{label: '全部', value: ''}, ...this.$appdata.getParam('气表状态')],
428
+ gasproperties: [{label: '全部', value: ''}, ...this.$appdata.getParam('用气性质')],
429
+ user_types: [{label: '全部', value: ''}, ...this.$appdata.getParam('用户类型')],
430
+ model: model,
431
+ //searchData:searchData,
432
+ excelHeaders: {
433
+ 'f_device_type': '检查项',
434
+ 'f_item_name': '隐患名称',
435
+ 'f_defect_level': '隐患级别',
436
+ 'f_userinfo_code': '客户编号',
437
+ 'f_user_name': '客户姓名',
438
+ 'f_user_phone': '客户电话',
439
+ 'f_meternumber': '表号',
440
+ 'f_meter_brand': '表品牌',
441
+ 'f_position': '表位置',
442
+ 'f_table_state': '气表状态',
443
+ 'f_residential_area': '客户小区',
444
+ 'f_address': '客户地址',
445
+ 'f_offsite_time': '安检时间',
446
+ 'f_deal_remark': '隐患处理备注',
447
+ 'f_dealer_starttime': '开始处理时间',
448
+ 'f_dealer_endtime': '结束处理时间',
449
+ 'f_dealer_name': '隐患处理公司',
450
+ 'f_checker_name': '安检员',
451
+ 'f_repairman': '维修人',
452
+ 'f_user_state': '用户状态',
453
+ 'f_is_repaired': '隐患状态',
454
+ 'f_user_type': '用户类型',
455
+ 'f_gasproperties': '用气性质',
456
+ 'f_repair_date': '处理时间'
457
+
458
+ },
459
+ fun: this.$login.f,
460
+ checkersid: [],
461
+ repairers: [],
462
+ safetype: this.getSafeParam('安检类型'),
463
+ criteriaShow: false,
464
+ repaireds: [{label: '全部', value: ''},
465
+ {label: '已处理', value: `f_is_repaired='已处理'`},
466
+ {label: '已整改', value: `f_is_repaired='已整改'`},
467
+ {label: '用户已处理', value: `f_is_repaired='用户已处理'`},
468
+ {label: '转维修', value: `f_is_repaired='转维修'`},
469
+ {label: '未处理', value: "f_is_repaired is null"}
470
+ ],
471
+ showModal: false,
472
+ f_approval_states: this.getSafeParam('安检单审核状态'),
473
+ f_entry_status: this.getSafeParam('安检状态'),
474
+ f_checkplans: this.getSafeParam('有无计划'),
475
+ showcheckmsg: false,
476
+ checkInfodeal: {},
477
+ orderDefault: "'f_offsite_time'",
478
+ orderFields: {
479
+ f_offsite_time: 'no'
480
+ },
481
+ sliceArea: [],
482
+ yhpath: null,
483
+ yhpathsign: null,
484
+ realpath: null,
485
+ yhpathdeals: null,
486
+ cbc: [],
487
+ DefectConfig: '',
488
+ DefectConfigs: [{label: '全部', value: ''}, {label: '气量异常差值', value: '气量异常差值'}],
489
+ device_types: [{label: '全部', value: ''}],
490
+ }
491
+ },
492
+ methods: {
493
+ getEmp() {
494
+ let val = {
495
+ source: 'this.getParentByType($organization$).getChildByName($维修员$).getUsers()',
496
+ userid: `${this.$login.f.id}`
497
+ }
498
+ // let val = {source: 'this.getParentByType($department$).getAllChildrens().where(row.getAttributes().get($rolestr$) == $维修员$))', userid: `${this.$login.f.id}`}
499
+ // let val = {source: 'this.getParentByType($department$).getChildByName($置换员$).getUsers()', userid: `${this.$login.f.id}`}
500
+ let http = new HttpResetClass()
501
+ http.load('POST', '/rs/search', {data: val}, {resolveMsg: null, rejectMsg: null}).then((res) => {
502
+ res.data.forEach((item) => {
503
+ this.repairers.push({label: item.name, value: item.name})
504
+ })
505
+ })
506
+ },
507
+ //隐患处理照片查看
508
+ situation(row) {
509
+ //tag
510
+ if (row.f_dealpath === '' || row.f_dealpath === null || row.f_item_name === '气量异常差值' || row.f_dealsign_path === '' || row.f_dealsign_path === null) {
511
+ this.$showMessage('无签名照片或者隐患处理照片,或处理过数据!!!')
512
+ } else {
513
+ this.yhpath = '/rs/image/file/' + row.f_dealpath.substring(row.f_dealpath.lastIndexOf('/')+1)
514
+ this.yhpathsign = '/rs/image/file/' + row.f_dealsign_path.substring(row.f_dealpath.lastIndexOf('/')+1)
515
+ this.trouble = true
516
+ }
517
+ },
518
+
519
+ changeDefect(val) {
520
+ try {
521
+ if (val) {
522
+ for (var Key1 in this.DefectConfig) {
523
+ if (Key1 == val) {
524
+ this.DefectConfigs = [{label: '全部', value: ''}]
525
+ for (var Key2 in this.DefectConfig[Key1].items) {
526
+ this.DefectConfigs.push({label: Key2, value: Key2})
527
+ }
528
+ return
529
+ }
530
+ }
531
+ } else if (val == '') {
532
+ this.DefectConfigs = [{label: '全部', value: ''}]
533
+ for (var Key1 in this.DefectConfig) {
534
+ for (var Key2 in this.DefectConfig[Key1].items) {
535
+ this.DefectConfigs.push({label: Key2, value: Key2})
536
+ }
537
+ }
538
+ }
539
+ } catch (e) {
540
+ //tag
541
+ }
542
+ },
543
+ getDefectInfoConfig(val) {
544
+ try {
545
+ if (val.safecheck.DevicesSetConfig != undefined) {
546
+ this.DefectConfig = val.safecheck.DevicesConfig
547
+ // 获取到配置项,进行遍历,获取每个隐患项
548
+ for (var Key1 in this.DefectConfig) {
549
+ this.device_types.push({label: Key1, value: Key1})
550
+ for (var Key2 in this.DefectConfig[Key1].items) {
551
+ this.DefectConfigs.push({label: Key2, value: Key2})
552
+ }
553
+ }
554
+ // 非民用或其他配置项加入,在进行遍历
555
+ }
556
+ } catch (e) {
557
+ //tag
558
+ }
559
+ },
560
+ showaudio() {
561
+ //tag
562
+ this.audioshow = !this.audioshow
563
+ //tag
564
+ },
565
+ getmeterbook(val) {
566
+ this.cbc = []
567
+ this.cbc.push({
568
+ label: '全部',
569
+ value: ''
570
+ })
571
+ if (val == '') {
572
+
573
+ this.cbcs.forEach(res => {
574
+ this.cbc.push({
575
+ label: res.f_book_name,
576
+ value: res.id
577
+ })
578
+ })
579
+ } else {
580
+ this.cbcs.forEach(res => {
581
+ if (res.f_book_slice_area == val) {
582
+ this.cbc.push({
583
+ label: res.f_book_name,
584
+ value: res.id
585
+ })
586
+ }
587
+ })
588
+ }
589
+ },
590
+ getSafeParam(val) {
591
+ if (this.$appdata.getParam(val)) {
592
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam(val)]
593
+ } else {
594
+ return [{label: '全部', value: ''}]
595
+ }
596
+
597
+ },
598
+ Mreadibook(val) {
599
+ ////tag
600
+ ////tag
601
+ this.sliceArea = []
602
+ if (val) {
603
+ new HttpResetClass().load('POST', `/rs/sql/safe_singleTable_OrderBy`, {
604
+ data: {
605
+ items: 'name',
606
+ tablename: 't_zone',
607
+ condition: `parentid in ${val}`,
608
+ orderitem: 'id'
609
+ }
610
+ }, {resolveMsg: null, rejectMsg: null}).then((res) => {
611
+ this.sliceArea.push({
612
+ label: '全部',
613
+ value: ''
614
+ })
615
+ res.data.forEach(ress => {
616
+ this.sliceArea.push({
617
+ label: ress.name,
618
+ value: ress.name
619
+ })
620
+ })
621
+
622
+ })
623
+ }
624
+ },
625
+ getAllMeterBook(val) {
626
+ ////tag
627
+ ////tag
628
+ this.cbcs = []
629
+ if (val) {
630
+ new HttpResetClass().load('POST', `/rs/sql/safe_singleTable_OrderBy`, {
631
+ data: {
632
+ items: 'f_book_name,f_book_slice_area,id',
633
+ tablename: 't_meter_book',
634
+ condition: `f_filiale_id in ${val}`,
635
+ orderitem: 'id'
636
+ }
637
+ }, {resolveMsg: null, rejectMsg: null}).then((res) => {
638
+ res.data.forEach(ress => {
639
+ this.cbcs.push({
640
+ id: ress.id,
641
+ f_book_name: ress.f_book_name,
642
+ f_book_slice_area: ress.f_book_slice_area
643
+ })
644
+ })
645
+ this.cbc = []
646
+ this.cbc.push({
647
+ label: '全部',
648
+ value: ''
649
+ })
650
+ this.cbcs.forEach(res => {
651
+ this.cbc.push({
652
+ label: res.f_book_name,
653
+ value: res.id
654
+ })
655
+ })
656
+ })
657
+ }
658
+ },
659
+ getRes(obj) {
660
+ this.model.f_filialeid = this.$login.convertToIn(obj.resids);
661
+ this.searchData.f_filialeid = this.$login.convertToIn(obj.resids);
662
+ this.Mreadibook(this.model.f_filialeid)
663
+ this.getAllMeterBook(this.model.f_filialeid)
664
+ //this.$refs.paged.$refs.criteria.search()
665
+ },
666
+
667
+ change(row) {
668
+ // Vue.$login = {jwt: row.f_checker_id}
669
+ asyncReady(this).then(() => {
670
+ ////tag)
671
+ row.f_upload_state = '已传'
672
+ this.$goto('new-check-paper', {f_plan_id: row.f_check_plan_id, item: row, role: 'view'}, 'self')
673
+ }).catch(
674
+ (respanse) => {
675
+ alert('获取配置文件失败')
676
+ })
677
+ },
678
+ readConfig() {
679
+ let gen = asyncReady(this)
680
+ return co(gen)
681
+ },
682
+ showChooser() {
683
+ this.showModal = true
684
+ },
685
+ hidden() {
686
+ this.criteriaShow = !this.criteriaShow
687
+ },
688
+ refresh() {
689
+ this.$refs.paged.$refs.criteria.search()
690
+ },
691
+ ok() {
692
+ this.showModal = false
693
+ if (this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow.id) {
694
+ this.model.f_plan_id = this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow.id
695
+ this.model.f_check_plan = this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow
696
+ }
697
+ },
698
+ cancel() {
699
+ this.showModal = false
700
+ this.model.f_check_plan = {f_plan_name: '', id: ''}
701
+ this.model.f_plan_id = ''
702
+ },
703
+ print(row) {
704
+ this.realpath = ''
705
+ this.yhpathdeals = ''
706
+ this.showcheckmsg = true
707
+ this.checkInfodeal = row
708
+ this.realpath = '/rs/image/file/' + row.f_dealpath.substring(row.f_dealpath.lastIndexOf('/')+1)
709
+ this.yhpathdeals = '/rs/image/file/' + row.f_dealsign_path.substring(row.f_dealpath.lastIndexOf('/')+1)
710
+ },
711
+
712
+ sort(field, rule) {
713
+ // 将所有排序方式设为不排序,实现相互排斥
714
+ for (let key in this.orderFields) {
715
+ if (key === field) {
716
+ this.orderFields[key] = rule
717
+ } else {
718
+ this.orderFields[key] = 'no'
719
+ }
720
+ }
721
+ // 如果新规则不排序,还原为默认排序
722
+ if (rule === 'no') {
723
+ this.model.paramSource.orderitem = `'${this.orderDefault}'`
724
+ } else {
725
+ this.model.paramSource.orderitem = `'${field} ${rule}'`
726
+ }
727
+ this.search()
728
+ },
729
+ search() {
730
+ this.$refs.paged.$refs.criteria.search()
731
+ },
732
+ selfSearch(args) {
733
+ ////tag
734
+ this.model.search(args.condition, args.model, args.condValue)
735
+ }
736
+ },
737
+
738
+ ready() {
739
+ this.readConfig()
740
+ this.getEmp()
741
+ ////tag
742
+ this.function = this.f
743
+ ////tag
744
+
745
+ let gen = select(this)
746
+ //this.pianqu()
747
+ this.Mreadibook(`('${this.$login.f.orgid}')`)
748
+ co(gen)
749
+ },
750
+ watch: {
751
+ 'model.f_no_checkplan'(val) {
752
+ if (this.model.f_no_checkplan) {
753
+ this.searchData.f_no_checkplan = val
754
+ }
755
+ if (this.model.f_no_checkplan == '有计划安检') {
756
+
757
+ this.showChooser()
758
+ }
759
+ },
760
+ 'model.condition'(val) {
761
+ if (val) {
762
+ this.searchData.condition = val
763
+ }
764
+
765
+ },
766
+ 'model.f_entry'(val) {
767
+ if (val) {
768
+ this.searchData.f_entry_status = val
769
+
770
+ }
771
+ },
772
+ 'model.f_plan_id'(val) {
773
+ if (val) {
774
+ this.searchData.f_plan_id = val
775
+ }
776
+ },
777
+ 'model.f_slice_area'(val) {
778
+ if (val) {
779
+
780
+ }
781
+ },
782
+ 'model.f_approved'(val) {
783
+ if (val) {
784
+ this.searchData.f_approved = val
785
+ }
786
+ },
787
+ }
788
+
789
+ }
790
+ </script>