safecheck-client 4.0.1-67 → 4.0.1-68

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,1136 +1,1142 @@
1
- <template>
2
- <div class="flex-row" v-show="showinfo1">
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="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="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="f_user_phone like '%{}%'">
22
- </div>
23
- <div class="form-group col-sm-2" >
24
- <label class="font_normal_body">客户表号</label>
25
- <input type="text" class="input_search" v-model="model.f_meternumber"
26
- style="width: 60%" placeholder="客户表号" condition="f_meternumber like '%{}%'">
27
- </div>
28
- <div class="form-group col-sm-2" >
29
- <label class="font_normal_body">小&emsp;&emsp;区</label>
30
- <input type="text" class="input_search" v-model="model.f_residential_area"
31
- style="width: 60%" placeholder="小区" condition="f_residential_area like '%{}%'">
32
- </div>
33
- <div class="form-group col-sm-2" >
34
- <label class="font_normal_body">详细地址</label>
35
- <input type="text" class="input_search" v-model="model.f_address"
36
- style="width: 60%" placeholder="详细地址" condition="f_address like '%{}%'">
37
- </div>
38
- <div class="form-group col-sm-2" style="width: auto;margin-top:8px;float: right">
39
-
40
- <export-excel :data="$parent.$parent.searchData"
41
- :field="$parent.$parent.excelHeaders"
42
- :choose-col="true"
43
- sqlurl="api/af-safecheck/logic/exportfile" sql-name="查找安检单" template-name='安检记录明细'></export-excel>
44
- <button class="button_spacing button_search" @click="$parent.$parent.showaudio()" v-if="$parent.$parent.audioshow">隐藏</button>
45
-
46
- <button class="button_spacing button_search" @click="search()">查询</button>
47
- <div style="float: right" class="button_spacing"
48
- :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
49
- @click="$parent.$parent.hidden()"></div>
50
- </div>
51
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow" >
52
- <label class="font_normal_body">安检计划</label>
53
- <input type="text" class="input_search" v-model="$parent.$parent.model.f_check_plan.f_plan_name"
54
- @click="$parent.$parent.showChooser"
55
- style="width: 60%" placeholder="安检计划" readonly="readonly">
56
- </div>
57
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow" >
58
- <label class="font_normal_body">开始时间</label>
59
- <datepicker
60
- :value.sync="model.f_check_start"
61
- placeholder='开始时间' style="width: 60%"
62
- :disabled-days-of-week="[]"
63
- :format="'yyyy-MM-dd'"
64
- :show-rest-button="reset"
65
- v-model="model.f_check_start"
66
- condition="f_offsite_time > ='{} 00:00:00'">
67
- </datepicker>
68
- </div>
69
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow" >
70
- <label class="font_normal_body">结束时间</label>
71
- <datepicker
72
- :value.sync="model.f_check_end"
73
- placeholder='结束时间' style="width: 60%"
74
- :disabled-days-of-week="[]"
75
- :format="'yyyy-MM-dd'"
76
- :show-rest-button="reset"
77
- v-model="model.f_check_end"
78
- condition="f_offsite_time <= '{} 23:59:59'">
79
- </datepicker>
80
- </div>
81
-
82
-
83
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow" >
84
-
85
- <label class="font_normal_body">安检类型</label>
86
- <v-select :value.sync="model.f_safecheck_type" v-model='model.f_safecheck_type'
87
- :value-single="true" style="width: 60%"
88
- class="select_list select"
89
- :options='$parent.$parent.safetype' placeholder='安检类型'
90
- close-on-select
91
- condition="f_safecheck_type = '{}'"></v-select>
92
- </div>
93
-
94
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow" >
95
-
96
- <label class="font_normal_body">客户类型</label>
97
- <v-select :value.sync="model.f_check_type" v-model='model.f_check_type'
98
- :value-single="true" style="width: 60%"
99
- class="select_list select"
100
- :options='$parent.$parent.checktype' placeholder='客户类型'
101
- close-on-select
102
- condition="f_check_type = '{}'"></v-select>
103
- </div>
104
-
105
-
106
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
107
- <label class="font_normal_body">安检状态</label>
108
- <v-select id="f_entry"
109
- class="select_list select"
110
- placeholder='安检状态' style="width: 60%"
111
- v-model='model.f_entry'
112
- :value.sync="$parent.$parent.model.f_entry"
113
- :options='$parent.$parent.f_entry_status'
114
- condition=""
115
- :value-single="true"
116
- close-on-select clear-button></v-select>
117
- </div>
118
- <div class="col-sm-4 form-group" v-show="$parent.$parent.criteriaShow" style="margin: 0">
119
- <role-selector-safe
120
- role-name="安检员"
121
- role-lable="安&nbsp;检&nbsp;员&nbsp;"
122
- @re-res="$parent.$parent.getRes"
123
- :value.sync="model.f_checker_id"
124
- v-model="model.f_checker_id"
125
- condition="f_checker_name = '{}'">
126
- </role-selector-safe>
127
- </div>
128
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
129
- <label class="font_normal_body">片&emsp;&emsp;区</label>
130
- <v-select class="select_list select"
131
- placeholder='片区/管理站' style="width: 60%"
132
- :value.sync="model.f_slice_area" v-model="model.f_slice_area"
133
- :options='$parent.$parent.sliceArea'
134
- filer-key="name"
135
- close-on-select clear-button
136
- condition="f_slice_area='{}'"
137
- @change="$parent.$parent.getmeterbook(model.f_slice_area)"
138
- :value-single="true">
139
- </v-select>
140
- </div>
141
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
142
- <label class="font_normal_body">抄&ensp;表&ensp;册</label>
143
- <v-select class="select_list select"
144
- placeholder='抄表册' style="width: 60%"
145
- :value.sync="model.f_meter_book_num" v-model="model.f_meter_book_num"
146
- :options='$parent.$parent.cbc'
147
- filer-key="name"
148
- close-on-select clear-button
149
- condition="f_meter_book_num={}"
150
- :value-single="true">
151
- </v-select>
152
- </div>
153
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
154
- <label class="font_normal_body">省&ensp;市&ensp;区</label>
155
- <v-select class="select_list select"
156
- placeholder='请选择' style="width: 60%"
157
- :value.sync="model.f_pcd" v-model="model.f_pcd"
158
- :options='$parent.$parent.pcds'
159
- filer-key="name"
160
- close-on-select clear-button
161
- condition="f_pcd='{}'"
162
- :value-single="true">
163
- </v-select>
164
- </div>
165
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow" >
166
- <label class="font_normal_body">开户时间</label>
167
- <datepicker
168
- :value.sync="model.f_check_gasstart"
169
- placeholder='开始时间' style="width: 60%"
170
- :disabled-days-of-week="[]"
171
- :format="'yyyy-MM-dd'"
172
- :show-rest-button="reset"
173
- v-model="model.f_check_gasstart"
174
- condition="f_gas_date > ='{} 00:00:00'">
175
- </datepicker>
176
- </div>
177
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow" >
178
- <label class="font_normal_body">开户时间</label>
179
- <datepicker
180
- :value.sync="model.f_check_gasend"
181
- placeholder='结束时间' style="width: 60%"
182
- :disabled-days-of-week="[]"
183
- :format="'yyyy-MM-dd'"
184
- :show-rest-button="reset"
185
- v-model="model.f_check_gasend"
186
- condition="f_gas_date <= '{} 23:59:59'">
187
- </datepicker>
188
- </div>
189
- <div class="form-group col-sm-2" v-show="$parent.$parent.safeAudit && $parent.$parent.criteriaShow ">
190
- <label class="font_normal_body">审&ensp;核&ensp;人</label>
191
- <input type="text" class="input_search" v-model="model.f_approved_by"
192
- style="width: 60%" placeholder="审核人" condition="f_approved_by like '%{}%'">
193
- </div>
194
- <div class="form-group col-sm-2" v-show="$parent.$parent.safeAudit && $parent.$parent.criteriaShow ">
195
- <label class="font_normal_body">审核时间</label>
196
- <datepicker
197
- :value.sync="model.f_approved_timestart"
198
- placeholder='开始时间' style="width: 60%"
199
- :disabled-days-of-week="[]"
200
- :format="'yyyy-MM-dd'"
201
- :show-rest-button="reset"
202
- v-model="model.f_approved_timestart"
203
- condition="f_approved_time > ='{} 00:00:00'">
204
- </datepicker>
205
- </div>
206
- <div class="form-group col-sm-2" v-show="$parent.$parent.safeAudit && $parent.$parent.criteriaShow ">
207
- <label class="font_normal_body">审核时间</label>
208
- <datepicker
209
- :value.sync="model.f_approved_timeend"
210
- placeholder='结束时间' style="width: 60%"
211
- :disabled-days-of-week="[]"
212
- :format="'yyyy-MM-dd'"
213
- :show-rest-button="reset"
214
- v-model="model.f_approved_timeend"
215
- condition="f_approved_time <= '{} 23:59:59'">
216
- </datepicker>
217
- </div>
218
- <div class="form-group col-sm-2" v-show="$parent.$parent.safeAudit &&$parent.$parent.criteriaShow">
219
- <label class="font_normal_body" title="参数管理:安检审核状态">审核状态</label>
220
- <v-select class="select_list select"
221
- placeholder='请选择' style="width: 60%"
222
- :value.sync="model.f_approved" v-model="model.f_approved"
223
- :options='$parent.$parent.f_approval_states'
224
- filer-key="name"
225
- :multiple="true"
226
- condition="f_approved in {}"
227
- >
228
- </v-select>
229
- </div>
230
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow" >
231
- <label class="font_normal_body">气表品牌</label>
232
- <v-select
233
- class="select_list select"
234
- placeholder='气表品牌' style="width: 60%"
235
- v-model='model.tableBrand'
236
- :value.sync="model.tableBrand"
237
- :options='$parent.$parent.tableBrands'
238
- condition="f_meter_brand = '{}'"
239
- :value-single="true"
240
- close-on-select clear-button></v-select>
241
- </div>
242
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
243
- <label class="font_normal_body">有无计划</label>
244
- <v-select class="select_list select"
245
- placeholder='请选择' style="width: 60%"
246
- :value.sync="model.f_no_checkplan" v-model="model.f_no_checkplan"
247
- :options='$parent.$parent.no_checkplans'
248
- filer-key="name"
249
- close-on-select clear-button
250
- condition="f_no_checkplan='{}'"
251
- :value-single="true">
252
- </v-select>
253
- </div>
254
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
255
- <label class="font_normal_body">未用燃气</label>
256
- <v-select class="select_list select"
257
- placeholder='请选择' style="width: 60%"
258
- :value.sync="model.f_usegas" v-model="model.f_usegas"
259
- :options='$parent.$parent.usegas'
260
- filer-key="name"
261
- close-on-select clear-button
262
- condition="f_usegas='{}'"
263
- :value-single="true">
264
- </v-select>
265
- </div>
266
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
267
- <label class="font_normal_body">有无隐患</label>
268
- <v-select class="select_list select"
269
- placeholder='请选择' style="width: 60%"
270
- :value.sync="model.f_defect_content" v-model="model.f_defect_content"
271
- :options='$parent.$parent.defect_contents'
272
- filer-key="name"
273
- close-on-select clear-button
274
- condition="f_defect_content like '%{}%'"
275
- :value-single="true">
276
- </v-select>
277
- </div>
278
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
279
- <label class="font_normal_body">客户卡号</label>
280
- <input type="text" class="input_search" v-model="model.f_card_id"
281
- style="width: 60%" placeholder="客户卡号" condition="f_card_id like '%{}%'">
282
- </div>
283
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
284
- <label class="font_normal_body">距上次安检天数</label>
285
- <input type="number" class="input_search" v-model="model.f_check_date"
286
- style="width: 60%" placeholder="距上次安检天数" >
287
- </div>
288
- </div>
289
- <modal :show.sync="$parent.$parent.showModal" v-ref:modal backdrop="false">
290
- <div slot="modal-header" class="modal-header">
291
- <h4 class="modal-title">
292
- 选择计划
293
- </h4>
294
- </div>
295
- <div slot="modal-body" class="modal-body">
296
- <plan-chooser :f.sync="$parent.$parent.fun" v-ref:chooser></plan-chooser>
297
- </div>
298
- <div slot="modal-footer" class="modal-footer" style="text-align: center">
299
- <button class="button_search" @click="$parent.$parent.ok">确认</button>
300
- <button class="button_search" @click="$parent.$parent.cancel">取消</button>
301
- </div>
302
- </modal>
303
- </div>
304
- </criteria>
305
- <data-grid class="list_area table_sy" style="overflow: hidden" :model="model" partial='list' v-ref:grid>
306
- <template partial='head'>
307
- <tr>
308
- <th>
309
- <nobr>回访</nobr>
310
- </th>
311
- <th>
312
- <nobr>客户编号</nobr>
313
- </th>
314
- <th>
315
- <nobr>客户名称</nobr>
316
- </th>
317
- <th>
318
- <nobr>客户表号</nobr>
319
- </th>
320
- <th>
321
- <nobr>气表品牌</nobr>
322
- </th>
323
- <th>
324
- <nobr>客户电话</nobr>
325
- </th>
326
- <th>
327
- <nobr>客户类型</nobr>
328
- </th>
329
- <th>
330
- <nobr>客户地址</nobr>
331
- </th>
332
- <th>
333
- <nobr>安检状态</nobr>
334
- </th>
335
- <th>
336
- <nobr>计划名称</nobr>
337
- </th>
338
- <th>
339
- <nobr>用气状态</nobr>
340
- </th>
341
- <th>
342
- <data-order field="f_offsite_time" name="安检时间"></data-order>
343
- </th>
344
- <th>
345
- <nobr>有无隐患</nobr>
346
- </th>
347
- <th>
348
- <nobr>安检员</nobr>
349
- </th>
350
- <th>
351
- <nobr>备注</nobr>
352
- </th>
353
- <th>
354
- <nobr>开户时间</nobr>
355
- </th>
356
- <th v-if="$parent.$parent.$parent.safeAudit">
357
- <nobr>审核人</nobr>
358
- </th>
359
- <th v-if="$parent.$parent.$parent.safeAudit">
360
- <nobr>审核起始</nobr>
361
- </th>
362
- <th v-if="$parent.$parent.$parent.safeAudit">
363
- <nobr>审核结束</nobr>
364
- </th>
365
- <th v-if="$parent.$parent.$parent.safeAudit">
366
- <nobr>审核状态</nobr>
367
- </th>
368
- <th v-if="$parent.$parent.$parent.safeAudit">
369
- <nobr>审核未通过原因</nobr>
370
- </th>
371
- <th>
372
- <nobr>操作</nobr>
373
- </th>
374
- <th v-if="$parent.$parent.$parent.audioshow">
375
- <nobr>录音</nobr>
376
- </th>
377
- </tr>
378
- </template>
379
- <template partial='body'>
380
- <td style="text-align: center">
381
- <button class="button_spacing button_search-1" v-if="!row.f_is_visit" @click='$parent.$parent.$parent.visit(row)'>回访</button>
382
- <button class="button_spacing button_search-1" v-else @click='$parent.$parent.$parent.showVisit(row)'>查看</button>
383
- </td>
384
- <td style="text-align: center">{{row.f_userinfo_code}}</td>
385
- <td style="text-align: center">{{row.f_user_name}}</td>
386
- <td style="text-align: center">{{row.f_meternumber}}</td>
387
- <td style="text-align: center">{{row.f_meter_brand}}</td>
388
- <td style="text-align: center">{{row.f_user_phone}}</td>
389
- <td style="text-align: center">{{row.f_check_type}}</td>
390
-
391
- <td style="text-align: center">{{ row.f_address }}</td>
392
- <td style="text-align: center">{{ row.f_entry_status }}</td>
393
- <td style="text-align: center">{{ row.f_plan_name }}</td>
394
- <td style="text-align: center">{{ row.f_usegas }}</td>
395
- <td style="text-align: center">{{ row.f_offsite_time }}</td>
396
- <td style="text-align: center">{{ row.f_defect_content.includes('正常') ? '正常' : '有隐患' }}</td>
397
- <td style="text-align: center">{{ row.f_checker_name }}</td>
398
- <td style="text-align: center">{{ row.f_repair_approved_note }}</td>
399
- <td style="text-align: center">{{ row.f_gas_date }}</td>
400
- <td style="text-align: center" v-show="$parent.$parent.$parent.safeAudit">{{ row.f_approved_by }}</td>
401
- <td style="text-align: center" v-show="$parent.$parent.$parent.safeAudit">{{ row.f_approvedstart_time }}</td>
402
- <td style="text-align: center" v-show="$parent.$parent.$parent.safeAudit">{{ row.f_approved_time }}</td>
403
- <td style="text-align: center" v-show="$parent.$parent.$parent.safeAudit">
404
- {{ row.f_approved ? row.f_approved : '未审核' }}
405
- </td>
406
- <td style="text-align: center" v-show="$parent.$parent.$parent.safeAudit">
407
- {{row.f_approved_note}}
408
- </td>
409
- <td style="text-align: center">
410
- <button class="button_spacing button_search-1" @click='$parent.$parent.$parent.change(row)'>查看</button>
411
-
412
-
413
- </td>
414
- <td style="text-align: center" v-if="$parent.$parent.$parent.audioshow">
415
- <!-- <button class="button_spacing button_search-1" @click='$parent.$parent.$parent.change(row)'>查看</button>-->
416
- <audio controls="controls" v-if="row.f_recording1_path">
417
- <source type="audio/mpeg" :src="'rs/audio/file/'+row.f_recording1_path">
418
- </audio>
419
- <!--<button type="button" class="button_new-1 button_spacing" data-toggle="dropdown"
420
- @click="$parent.$parent.$parent.print(row)">
421
- 打印
422
- </button>-->
423
- </td>
424
- </template>
425
- </data-grid>
426
- </criteria-paged>
427
- <check-msg v-if="showcheckmsg" :show="showcheckmsg" :data="checkInfo"></check-msg>
428
- </div>
429
- </div>
430
- <new-check-paper v-if="showinfo2" :f_plan_id="shouinfodata.f_check_plan_id" :item="shouinfodata" :role="'view'" v-on:showback="showback1"></new-check-paper>
431
- <new-check-paper-temp v-if="showinfo3" :f_plan_id="shouinfodata.f_check_plan_id" :item="shouinfodata" :role="'view'" v-on:showback="showback2"></new-check-paper-temp>
432
- <new-check-paper-new v-if="showinfo4" :f_plan_id="shouinfodata.f_check_plan_id" :item="shouinfodata" :role="'view'" v-on:showback="showback3"></new-check-paper-new>
433
- <modal :show.sync="show" width="80%">
434
- <div slot="modal-header" class="modal-header">
435
- <h4 class="modal-title">安检电话抽检单录入</h4>
436
- <button type="button" class="close" @click="close()"><span>&times;</span></button>
437
- </div>
438
- <div slot="modal-body" class="modal-body">
439
- <form class="form-horizontal">
440
- <div class="row">
441
- <div class="form-group col-sm-3">
442
- <label class="col-sm-4 control-label">客户编号:</label>
443
- <div class="col-sm-8">
444
- <input type="text" class="form-control" v-model="formData.f_userinfo_code" readonly>
445
- </div>
446
- </div>
447
- <div class="form-group col-sm-3">
448
- <label class="col-sm-4 control-label">姓名:</label>
449
- <div class="col-sm-8">
450
- <input type="text" class="form-control" v-model="formData.f_user_name" readonly>
451
- </div>
452
- </div>
453
- <div class="form-group col-sm-6">
454
- <label class="col-sm-2 control-label">地址:</label>
455
- <div class="col-sm-10">
456
- <input type="text" class="form-control" v-model="formData.f_address" readonly>
457
- </div>
458
- </div>
459
- </div>
460
- <div class="row">
461
- <div class="form-group col-sm-3">
462
- <label class="col-sm-4 control-label">客户电话:</label>
463
- <div class="col-sm-8">
464
- <input type="text" class="form-control" v-model="formData.f_user_phone" readonly>
465
- </div>
466
- </div>
467
- <div class="form-group col-sm-3">
468
- <label class="col-sm-4 control-label">被访人:</label>
469
- <div class="col-sm-8">
470
- <input type="text" class="form-control" v-model="formData.f_interviewee" :readonly="isReadOnly">
471
- </div>
472
- </div>
473
- <div class="form-group col-sm-3">
474
- <label class="col-sm-4 control-label">抽检人:</label>
475
- <div class="col-sm-8">
476
- <input type="text" class="form-control" v-model="formData.f_inspector" readonly>
477
- </div>
478
- </div>
479
- <div class="form-group col-sm-3">
480
- <label class="col-sm-4 control-label">日期:</label>
481
- <div class="col-sm-8">
482
- <input type="text" class="form-control" v-model="formData.f_check_date" readonly>
483
- </div>
484
- </div>
485
- </div>
486
- </form>
487
-
488
- <table class="table table-bordered">
489
- <thead>
490
- <tr>
491
- <th>序号</th>
492
- <th>抽检项目</th>
493
- <th>情况登记</th>
494
- </tr>
495
- </thead>
496
- <tbody>
497
- <tr>
498
- <td>1</td>
499
- <td>安检前有没有看到即将入户安检的通知</td>
500
- <td>
501
- <label class="radio-inline">
502
- <input type="radio" name="q1" value="是" v-model="formData.q1"> 是
503
- </label>
504
- <label class="radio-inline">
505
- <input type="radio" name="q1" value="否" v-model="formData.q1"> 否
506
- </label>
507
- </td>
508
- </tr>
509
- <tr>
510
- <td>2</td>
511
- <td>安检(维修、抄表)员是否按预约时间入户</td>
512
- <td>
513
- <label class="radio-inline">
514
- <input type="radio" name="q2" value="是" v-model="formData.q2"> 是
515
- </label>
516
- <label class="radio-inline">
517
- <input type="radio" name="q2" value="否" v-model="formData.q2"> 否
518
- </label>
519
- </td>
520
- </tr>
521
- <tr>
522
- <td>3</td>
523
- <td>对安检(维修、抄表)员的服务态度</td>
524
- <td>
525
- <label class="radio-inline">
526
- <input type="radio" name="q3" value="满意" v-model="formData.q3"> 满意
527
- </label>
528
- <label class="radio-inline">
529
- <input type="radio" name="q3" value="一般" v-model="formData.q3"> 一般
530
- </label>
531
- <label class="radio-inline">
532
- <input type="radio" name="q3" value="不满意" v-model="formData.q3"> 不满意
533
- </label>
534
- </td>
535
- </tr>
536
- <tr>
537
- <td>4</td>
538
- <td>安检(维修、抄表)员上门是否穿工作服,出示工作牌</td>
539
- <td>
540
- <label class="radio-inline">
541
- <input type="radio" name="q4" value="是" v-model="formData.q4"> 是
542
- </label>
543
- <label class="radio-inline">
544
- <input type="radio" name="q4" value="否" v-model="formData.q4"> 否
545
- </label>
546
- </td>
547
- </tr>
548
- <tr>
549
- <td>5</td>
550
- <td>安检过程中是否使用U型压力计检测</td>
551
- <td>
552
- <label class="radio-inline">
553
- <input type="radio" name="q5" value="是" v-model="formData.q5"> 是
554
- </label>
555
- <label class="radio-inline">
556
- <input type="radio" name="q5" value="否" v-model="formData.q5"> 否
557
- </label>
558
- </td>
559
- </tr>
560
- <tr>
561
- <td>6</td>
562
- <td>安检(维修、抄表)员有无违反职业道德的行为(吃、拿、卡、要)</td>
563
- <td>
564
- <label class="radio-inline">
565
- <input type="radio" name="q6" value="是" v-model="formData.q6"> 是
566
- </label>
567
- <label class="radio-inline">
568
- <input type="radio" name="q6" value="否" v-model="formData.q6"> 否
569
- </label>
570
- </td>
571
- </tr>
572
- <tr>
573
- <td>7</td>
574
- <td>安检(维修、抄表)员是否向您进行了安全方面的宣传并派发了宣传单</td>
575
- <td>
576
- <label class="radio-inline">
577
- <input type="radio" name="q7" value="是" v-model="formData.q7"> 是
578
- </label>
579
- <label class="radio-inline">
580
- <input type="radio" name="q7" value="否" v-model="formData.q7"> 否
581
- </label>
582
- </td>
583
- </tr>
584
- <tr>
585
- <td>8</td>
586
- <td>安检(维修、抄表)员安检(维修、抄表)后是否向您解释了安检(维修、抄表)结果</td>
587
- <td>
588
- <label class="radio-inline">
589
- <input type="radio" name="q8" value="是" v-model="formData.q8"> 是
590
- </label>
591
- <label class="radio-inline">
592
- <input type="radio" name="q8" value="否" v-model="formData.q8"> 否
593
- </label>
594
- </td>
595
- </tr>
596
- <tr>
597
- <td>9</td>
598
- <td>隐患是否已整改</td>
599
- <td>
600
- <label class="radio-inline">
601
- <input type="radio" name="q9" value="是" v-model="formData.q9"> 是
602
- </label>
603
- <label class="radio-inline">
604
- <input type="radio" name="q9" value="否" v-model="formData.q9"> 否
605
- </label>
606
- </td>
607
- </tr>
608
- <tr>
609
- <td>10</td>
610
- <td>您对我们入户人员的工作效率和工作质量是否满意</td>
611
- <td>
612
- <label class="radio-inline">
613
- <input type="radio" name="q10" value="满意" v-model="formData.q10"> 满意
614
- </label>
615
- <label class="radio-inline">
616
- <input type="radio" name="q10" value="一般" v-model="formData.q10"> 一般
617
- </label>
618
- <label class="radio-inline">
619
- <input type="radio" name="q10" value="不满意" v-model="formData.q10"> 不满意
620
- </label>
621
- </td>
622
- </tr>
623
- <tr>
624
- <td>11</td>
625
- <td>谢谢您对我们这次回访大力配合,请问您对我公司的安检(维修、抄表)工作还有那些好的建议?</td>
626
- <td>
627
- <textarea class="form-control" rows="3" v-model="formData.q11"></textarea>
628
- </td>
629
- </tr>
630
- <tr>
631
- <td>12</td>
632
- <td>综合评价:</td>
633
- <td>
634
- <label class="radio-inline">
635
- <input type="radio" name="q12" value="满意" v-model="formData.q12"> 满意
636
- </label>
637
- <label class="radio-inline">
638
- <input type="radio" name="q12" value="一般" v-model="formData.q12"> 一般
639
- </label>
640
- <label class="radio-inline">
641
- <input type="radio" name="q12" value="不满意" v-model="formData.q12"> 不满意
642
- </label>
643
- </td>
644
- </tr>
645
- </tbody>
646
- </table>
647
-
648
- </div>
649
- <div slot="modal-footer" class="modal-footer">
650
- <button class="btn btn-primary" @click="save" v-if="!isReadOnly">保存</button>
651
- <button class="btn btn-default" @click="close">关闭</button>
652
- </div>
653
- </modal>
654
- </template>
655
-
656
- <script>
657
- import {PagedList} from 'vue-client'
658
- import Vue from 'vue'
659
- import co from 'co'
660
- import AppData from '../../../stores/AppData'
661
- import * as Util from '../../Util'
662
- import getNowDate from "../../../utils/getNowDate";
663
- import HttpResetClass from "vue-client/src/plugins/HttpResetClass";
664
- import BenzAMRRecorder from 'benz-amr-recorder'
665
- import {isEmpty, toEndDateString, toStartDateString} from '../../Util'
666
-
667
-
668
- let select = function* (self) {
669
- let http = new HttpResetClass()
670
- let getGasman = yield http.load('POST', '/rs/search', {
671
- source: 'this.getParentByType($department$).getAllChildrens().where(row.getAttributes().get($rolestr$).indexOf($安检员$) != -1))',
672
- userid: self.$login.f.id
673
- }, {resolveMsg: null, rejectMsg: null})
674
- ////tag
675
- self.checkersid.push({label: '全部', value: ''})
676
- getGasman.data.forEach((checker) => {
677
- self.checkersid.push({label: checker.name, value: checker.id})
678
- })
679
- }
680
-
681
- export default {
682
- title: '安检结果查看',
683
- data() {
684
- let model = new PagedList('api/af-safecheck/sql/查找安检单', 20, {
685
- f_plan_id: 'this.f_plan_id',
686
- f_approved: 'this.f_approved',
687
- f_entry_status: 'this.f_entry',
688
- f_no_checkplan: 'this.f_no_checkplan',
689
- f_filialeid: 'this.f_filialeid',
690
- orderitem: "'f_offsite_time desc'"
691
- })
692
- model.f_check_type = ''
693
- model.f_plan_id = ''
694
- model.f_approved = ''
695
- model.f_entry = ''
696
- model.f_no_checkplan = ''
697
- model.f_filialeid = `('${this.$login.f.orgid}')`
698
- //model.f_check_type='民用'
699
- // let searchData={
700
- // f_plan_id: this.model.f_checker_id==undefined?"":this.model.f_checker_id,
701
- // f_approved: this.model.f_approved,
702
- // f_entry_status: this.model.f_entry,
703
- // f_no_checkplan:this.model.f_no_checkplan[0],
704
- // f_filialeid: this.model.f_filialeid,
705
- // //orderitem: this.model.f_offsite_time,
706
- // //condition:this.model.condition
707
- // }
708
- // model.f_subcompany = this.$login.f.f_fengongsi
709
- return {
710
- formData: {
711
- id:'',
712
- f_interviewee: '',
713
- f_userinfo_code:'',
714
- f_address:'',
715
- f_user_phone:'',
716
- f_user_name:'',
717
- f_inspector: this.$login.f.name,
718
- f_check_date: Util.toStandardTimeString(),
719
- q1: '',
720
- q2: '',
721
- q3: '满意',
722
- q4: '',
723
- q5: '',
724
- q6: '否',
725
- q7: '是',
726
- q8: '是',
727
- q9: '是',
728
- q10: '满意',
729
- q11: '',
730
- q12: '满意'
731
- },
732
- show:false,
733
- isReadOnly: false,
734
- showinfo1:true,
735
- showinfo2:false,
736
- showinfo3:false,
737
- showinfo4:false,
738
- shouinfodata:{},
739
- tableBrands: [{label: '全部', value: ''}],
740
- audioshow: false,
741
- safeAudit: this.$login.f.rolestr.includes('安检审核'),
742
- searchData: {
743
- condition: "1=1",
744
- orderitem: "f_offsite_time desc",
745
- f_plan_id: "",
746
- f_approved: '',
747
- f_entry_status: '',
748
- f_no_checkplan: '',
749
- f_filialeid: `('${this.$login.f.orgid}')`
750
- },
751
- model: model,
752
- excelHeaders: {
753
- //searchData:searchData,
754
- 'f_userinfo_code': '客户编号',
755
- 'f_user_name': '客户姓名',
756
- 'f_meternumber':'客户表号',
757
- 'f_user_phone':'客户电话',
758
- 'f_check_type': '客户类型',
759
- 'f_residential_area': '小区',
760
- 'f_address': '客户地址',
761
- 'f_entry_status': '安检状态',
762
- 'f_usegas': '用气状态',
763
- 'f_defect_content':'有无隐患',
764
- 'f_offsite_time': '安检时间',
765
- 'f_checker_name': '安检员',
766
- 'f_safecheck_type':'安检类型',
767
- 'f_repair_approved_note': '备注',
768
- 'f_gas_date': '开户时间',
769
- 'f_approved_by': '审核人',
770
- 'f_approved': '审核状态',
771
- 'f_approved_time': '审核时间'
772
- },
773
- fun: this.$login.f,
774
- pcds:[],
775
- checkersid: [],
776
- safetype: this.$appdata.getParam('安检类型')?[{label: '全部', value: ''}, ...this.$appdata.getParam('安检类型')]:[{label: '全部', value: ''}],
777
- criteriaShow: false,
778
- checktype: this.$appdata.getParam('用户类型')?[{label: '全部', value: ''}, ...this.$appdata.getParam('用户类型')]:[{label: '全部', value: ''}],
779
- f_check_type:[{label:'全部',value:''},{label:'民用',value:'民用'},{label:'非民用',value:'非民用'}],
780
- defect_contents:[{label:'全部',value:''},{label:'有隐患',value:'有隐患'},{label:'正常',value:'正常'}],
781
- showModal: false,
782
- safe_types:this.$appdata.getParam('计划类型')?[{label: '全部', value: ''}, ...this.$appdata.getParam('计划类型')]:[{label: '全部', value: ''}],
783
- f_approval_states: this.$appdata.getParam('安检单审核状态')?[{label: '全部', value: ''}, ...this.$appdata.getParam('安检单审核状态')]:[{label: '全部', value: ''}],
784
- f_entry_status: this.$appdata.getParam('安检状态')?[{label: '全部', value: ''}, ...this.$appdata.getParam('安检状态')]:[{label: '全部', value: ''}],
785
- no_checkplans: this.$appdata.getParam('有无计划')?[{label: '全部', value: ''}, ...this.$appdata.getParam('有无计划')]:[{label: '全部', value: ''}],
786
- usegas: this.$appdata.getParam('用气状态')?[{label: '全部', value: ''}, ...this.$appdata.getParam('用气状态')]:[{label: '全部', value: ''}],
787
- showcheckmsg: false,
788
- checkInfo: {},
789
- orderDefault: "'f_offsite_time'",
790
- orderFields: {
791
- f_offsite_time: 'no'
792
- },
793
- sliceArea: [],
794
- cbc:[]
795
- }
796
- },
797
- created() {
798
- // 使用 $on 监听事件
799
- this.$root.$on('audit-status-changed', () => {
800
- console.log('收到审核状态变更事件')
801
- this.refresh()
802
- })
803
- },
804
- beforeDestroy() {
805
- // 记得在组件销毁前移除事件监听
806
- this.$root.$off('audit-status-changed')
807
- },
808
- methods: {
809
- visit(row){
810
- this.show = true
811
- this.formData.f_address = row.f_address
812
- this.formData.f_userinfo_code = row.f_userinfo_code
813
- this.formData.f_user_phone = row.f_user_phone
814
- this.formData.f_user_name = row.f_user_name
815
- this.formData.id = row.id
816
- },
817
- showVisit(row){
818
- this.formData = JSON.parse(row.f_visit_data)
819
- this.show = true
820
- this.isReadOnly = true
821
- },
822
- save(){
823
- let data = {
824
- f_is_visit : '已回访',
825
- f_visit_date : Util.toStandardTimeString(),
826
- f_visit_people : this.$login.f.name,
827
- f_visit_data : JSON.stringify(this.formData)
828
- }
829
- const sql = `update t_check_paper set f_is_visit = '${data.f_is_visit}',f_visit_date = '${data.f_visit_date}',f_visit_people = '${data.f_visit_people}',f_visit_data='${data.f_visit_data}' where id = '${this.formData.id}'`
830
- new HttpResetClass()
831
- .load('POST', 'api/af-safecheck/logic/runSQL', {data: {sql: sql}},
832
- {resolveMsg: null, rejectMsg: null}).catch(resp=>{
833
- this.search()
834
- this.close()
835
- })
836
- },
837
- close(){
838
- this.formData = {
839
- id:'',
840
- f_interviewee: '',
841
- f_userinfo_code:'',
842
- f_address:'',
843
- f_user_phone:'',
844
- f_user_name:'',
845
- f_inspector: this.$login.f.name,
846
- f_check_date: Util.toStandardTimeString(),
847
- q1: '',
848
- q2: '',
849
- q3: '满意',
850
- q4: '是',
851
- q5: '是',
852
- q6: '',
853
- q7: '是',
854
- q8: '',
855
- q9: '是',
856
- q10: '满意',
857
- q11: '',
858
- q12: '满意'
859
- }
860
- this.show = false
861
- this.isReadOnly = false
862
- },
863
- showback1(){
864
- this.showinfo1 = true
865
- this.showinfo2 = false
866
- this.search()
867
- },
868
- showback2(){
869
- this.showinfo1 = true
870
- this.showinfo3 = false
871
- this.search()
872
- },
873
- showback3(){
874
- this.showinfo1 = true
875
- this.showinfo4 = false
876
- this.search()
877
- },
878
- //气表品牌查询
879
- getTableBrands() {
880
- new HttpResetClass().load("POST", `/api/af-safecheck/sql/safe_singleTable_OrderBy`,
881
- {data: {items: "*", tablename: "t_gasbrand", orderitem: "id", condition: ` 1=1 `}},
882
- {resolveMsg: null, rejectMsg: null}).then((resp) => {
883
- resp.data.forEach((result) => {
884
- this.tableBrands.push({label: result.f_meter_brand, value: result.f_meter_brand})
885
- })
886
- })
887
- },
888
- //获取省市区列表
889
- getPcd(val){
890
- this.pcds = [{label:'全部',value:''}]
891
- new HttpResetClass().load("POST", `/api/af-safecheck/sql/safe_singleTable_OrderBy`,
892
- {data:{items:"*",tablename:"t_pcd",orderitem:"id",condition:`f_orgid in ${val}`}},
893
- {resolveMsg: null, rejectMsg: null}).then((pcdlist)=>{
894
- pcdlist.data.forEach((result)=>{
895
- this.pcds.push({label:result.f_pcd,value:result.f_pcd})
896
- })
897
- })
898
- },
899
- showaudio(){
900
- //tag
901
- this.audioshow=!this.audioshow
902
- //tag
903
- },
904
- getmeterbook(val){
905
- this.cbc=[]
906
- this.cbc.push({
907
- label:'全部',
908
- value:''
909
- })
910
- if (val==''){
911
-
912
- this.cbcs.forEach(res=>{
913
- this.cbc.push({
914
- label:res.f_book_name,
915
- value:res.id
916
- })
917
- })
918
- }else{
919
- this.cbcs.forEach(res=>{
920
- if (res.f_book_slice_area==val){
921
- this.cbc.push({
922
- label:res.f_book_name,
923
- value:res.id
924
- })
925
- }
926
- })
927
- }
928
- },
929
- Mreadibook(val){
930
- ////tag
931
- ////tag
932
- if (val){
933
- new HttpResetClass().load('POST',`/api/af-safecheck/sql/safe_singleTable_OrderBy`, {data: {
934
- items: 'name',
935
- tablename: 't_zone',
936
- condition: `parentid in ${val}`,
937
- orderitem: 'id'
938
- }}, {resolveMsg: null, rejectMsg: null}).then((res) => {
939
- this.sliceArea=[]
940
- this.sliceArea.push({
941
- label:'全部',
942
- value:''
943
- })
944
- res.data.forEach(ress=>{
945
- this.sliceArea.push({
946
- label:ress.name,
947
- value:ress.name
948
- })
949
- })
950
-
951
- })
952
- }
953
- },
954
- getAllMeterBook(val){
955
- ////tag
956
- ////tag
957
- this.cbcs=[]
958
- if (val){
959
- new HttpResetClass().load('POST',`/api/af-safecheck/sql/safe_singleTable_OrderBy`, {data: {
960
- items: 'f_book_name,f_book_slice_area,id',
961
- tablename: 't_meter_book',
962
- condition: `f_filiale_id in ${val}`,
963
- orderitem: 'id'
964
- }}, {resolveMsg: null, rejectMsg: null}).then((res) => {
965
- res.data.forEach(ress=>{
966
- this.cbcs.push({
967
- id:ress.id,
968
- f_book_name:ress.f_book_name,
969
- f_book_slice_area:ress.f_book_slice_area
970
- })
971
- })
972
- this.cbc=[]
973
- this.cbc.push({
974
- label:'全部',
975
- value:''
976
- })
977
- this.cbcs.forEach(res=>{
978
- this.cbc.push({
979
- label:res.f_book_name,
980
- value:res.id
981
- })
982
- })
983
- })
984
- }
985
- },
986
- getRes(obj) {
987
- this.model.f_filialeid = this.$login.convertToIn(obj.resids);
988
- this.searchData.f_filialeid = this.$login.convertToIn(obj.resids);
989
- this.Mreadibook(this.model.f_filialeid)
990
- this.getAllMeterBook(this.model.f_filialeid)
991
- this.getPcd(this.model.f_filialeid)
992
- //this.$refs.paged.$refs.criteria.search()
993
- },
994
-
995
- change(row) {
996
- row.f_upload_state = '已传'
997
- this.shouinfodata = JSON.parse(JSON.stringify(row))
998
- this.showinfo1 = false
999
- if (row.f_safe_type == '已挂表未办卡安检'){
1000
- this.showinfo2 = false
1001
- this.showinfo3 = true
1002
- this.showinfo4 = false
1003
- return
1004
- }else if (!isEmpty(row.f_security_check_type_id)) {
1005
- this.showinfo2 = false
1006
- this.showinfo3 = false
1007
- this.showinfo4 = true
1008
- return
1009
- }
1010
- this.showinfo2 = true
1011
- this.showinfo3 = false
1012
- this.showinfo4 = false
1013
- },
1014
- showChooser() {
1015
- this.showModal = true
1016
- },
1017
- hidden() {
1018
- this.criteriaShow = !this.criteriaShow
1019
- },
1020
- refresh() {
1021
- this.$refs.paged.$refs.criteria.search()
1022
- },
1023
- ok() {
1024
- this.showModal = false
1025
- if (this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow.id) {
1026
- this.model.f_plan_id = this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow.id
1027
- this.model.f_check_plan=this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow
1028
- }
1029
- },
1030
- cancel() {
1031
- this.showModal = false
1032
- this.model.f_check_plan = {f_plan_name: '', id: ''}
1033
- this.model.f_plan_id=''
1034
- },
1035
- print(row) {
1036
- this.showcheckmsg = true
1037
- this.checkInfo = row
1038
- },
1039
-
1040
- sort(field, rule) {
1041
- // 将所有排序方式设为不排序,实现相互排斥
1042
- for (let key in this.orderFields) {
1043
- if (key === field) {
1044
- this.orderFields[key] = rule
1045
- } else {
1046
- this.orderFields[key] = 'no'
1047
- }
1048
- }
1049
- // 如果新规则不排序,还原为默认排序
1050
- if (rule === 'no') {
1051
- this.model.paramSource.orderitem = `'${this.orderDefault}'`
1052
- } else {
1053
- this.model.paramSource.orderitem = `'${field} ${rule}'`
1054
- }
1055
- this.search()
1056
- },
1057
- search() {
1058
- console.log('审核通过回调')
1059
- this.$refs.paged.$refs.criteria.search()
1060
- },
1061
- selfSearch(args) {
1062
- ////tag
1063
- //args.condition+=" and f_check_type='民用'"
1064
- if(args.model.f_check_date){
1065
- const daysBefore = Number(args.model.f_check_date);
1066
- if ( daysBefore > 0) {
1067
- // 获取当前日期
1068
- const now = new Date();
1069
- // 计算三天前的日期
1070
- const threeDaysBefore = new Date(now.getTime() - (daysBefore * 24 * 60 * 60 * 1000));
1071
- // 如果需要格式化日期,可以使用Date对象的方法
1072
- var formattedDate = threeDaysBefore.toISOString().split('T')[0];
1073
- args.condition += ` and f_offsite_time <='${formattedDate} 23:59:59'`;
1074
- } else {
1075
- console.error('f_check_date不是一个有效的正整数');
1076
- }
1077
- }
1078
- this.model.search(args.condition, args.model, args.condValue)
1079
- }
1080
- },
1081
- ready() {
1082
- if(this.safeAudit){
1083
- let oa = {
1084
- 'f_approved_by':'审核人',
1085
- 'f_approvedstart_time':'审核开始时间',
1086
- 'f_approved_time':'审核结束时间',
1087
- 'f_approved':'审核状态',
1088
- 'f_approved_note': '审核备注'
1089
- }
1090
- this.excelHeaders = Object.assign({}, this.excelHeaders, oa)
1091
- }
1092
- this.function = this.f
1093
- //获取气表品牌
1094
- this.getTableBrands()
1095
- let gen = select(this)
1096
- //this.pianqu()
1097
- this.Mreadibook(`('${this.$login.f.orgid}')`)
1098
- co(gen)
1099
- this.$refs.paged.$refs.criteria.model.f_check_start = Util.toStartDateString() + ' 00:00:00'
1100
- this.$refs.paged.$refs.criteria.model.f_check_end = Util.toEndDateString() + ' 23:59:59'
1101
- },
1102
- watch: {
1103
- 'model.f_no_checkplan'(val) {
1104
- if (this.model.f_no_checkplan){
1105
- this.searchData.f_no_checkplan = val
1106
- }
1107
- if (this.model.f_no_checkplan == '有计划安检') {
1108
-
1109
- this.showChooser()
1110
- }
1111
- },
1112
- 'model.condition'(val) {
1113
- if (val) {
1114
- this.searchData.condition = val
1115
- }
1116
-
1117
- },
1118
- 'model.f_entry'(val) {
1119
- this.searchData.f_entry_status = val
1120
- },
1121
- 'model.f_plan_id'(val) {
1122
- if (val) {
1123
- this.searchData.f_plan_id = val
1124
- }
1125
- },
1126
- 'model.f_slice_area'(val) {
1127
- },
1128
- 'model.f_approved'(val) {
1129
- if (val) {
1130
- this.searchData.f_approved = val
1131
- }
1132
- }
1133
- }
1134
-
1135
- }
1136
- </script>
1
+ <template>
2
+ <div class="flex-row" v-show="showinfo1">
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="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="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="f_user_phone like '%{}%'">
22
+ </div>
23
+ <div class="form-group col-sm-2" >
24
+ <label class="font_normal_body">客户表号</label>
25
+ <input type="text" class="input_search" v-model="model.f_meternumber"
26
+ style="width: 60%" placeholder="客户表号" condition="f_meternumber like '%{}%'">
27
+ </div>
28
+ <div class="form-group col-sm-2" >
29
+ <label class="font_normal_body">小&emsp;&emsp;区</label>
30
+ <input type="text" class="input_search" v-model="model.f_residential_area"
31
+ style="width: 60%" placeholder="小区" condition="f_residential_area like '%{}%'">
32
+ </div>
33
+ <div class="form-group col-sm-2" >
34
+ <label class="font_normal_body">详细地址</label>
35
+ <input type="text" class="input_search" v-model="model.f_address"
36
+ style="width: 60%" placeholder="详细地址" condition="f_address like '%{}%'">
37
+ </div>
38
+ <div class="form-group col-sm-2" style="width: auto;margin-top:8px;float: right">
39
+
40
+ <export-excel :data="$parent.$parent.searchData"
41
+ :field="$parent.$parent.excelHeaders"
42
+ :choose-col="true"
43
+ sqlurl="api/af-safecheck/logic/exportfile" sql-name="查找安检单" template-name='安检记录明细'></export-excel>
44
+ <button class="button_spacing button_search" @click="$parent.$parent.showaudio()" v-if="$parent.$parent.audioshow">隐藏</button>
45
+
46
+ <button class="button_spacing button_search" @click="search()">查询</button>
47
+ <div style="float: right" class="button_spacing"
48
+ :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
49
+ @click="$parent.$parent.hidden()"></div>
50
+ </div>
51
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow" >
52
+ <label class="font_normal_body">安检计划</label>
53
+ <input type="text" class="input_search" v-model="$parent.$parent.model.f_check_plan.f_plan_name"
54
+ @click="$parent.$parent.showChooser"
55
+ style="width: 60%" placeholder="安检计划" readonly="readonly">
56
+ </div>
57
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow" >
58
+ <label class="font_normal_body">开始时间</label>
59
+ <datepicker
60
+ :value.sync="model.f_check_start"
61
+ placeholder='开始时间' style="width: 60%"
62
+ :disabled-days-of-week="[]"
63
+ :format="'yyyy-MM-dd'"
64
+ :show-rest-button="reset"
65
+ v-model="model.f_check_start"
66
+ condition="f_offsite_time > ='{} 00:00:00'">
67
+ </datepicker>
68
+ </div>
69
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow" >
70
+ <label class="font_normal_body">结束时间</label>
71
+ <datepicker
72
+ :value.sync="model.f_check_end"
73
+ placeholder='结束时间' style="width: 60%"
74
+ :disabled-days-of-week="[]"
75
+ :format="'yyyy-MM-dd'"
76
+ :show-rest-button="reset"
77
+ v-model="model.f_check_end"
78
+ condition="f_offsite_time <= '{} 23:59:59'">
79
+ </datepicker>
80
+ </div>
81
+
82
+
83
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow" >
84
+
85
+ <label class="font_normal_body">安检类型</label>
86
+ <v-select :value.sync="model.f_safecheck_type" v-model='model.f_safecheck_type'
87
+ :value-single="true" style="width: 60%"
88
+ class="select_list select"
89
+ :options='$parent.$parent.safetype' placeholder='安检类型'
90
+ close-on-select
91
+ condition="f_safecheck_type = '{}'"></v-select>
92
+ </div>
93
+
94
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow" >
95
+
96
+ <label class="font_normal_body">客户类型</label>
97
+ <v-select :value.sync="model.f_check_type" v-model='model.f_check_type'
98
+ :value-single="true" style="width: 60%"
99
+ class="select_list select"
100
+ :options='$parent.$parent.checktype' placeholder='客户类型'
101
+ close-on-select
102
+ condition="f_check_type = '{}'"></v-select>
103
+ </div>
104
+
105
+
106
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
107
+ <label class="font_normal_body">安检状态</label>
108
+ <v-select id="f_entry"
109
+ class="select_list select"
110
+ placeholder='安检状态' style="width: 60%"
111
+ v-model='model.f_entry'
112
+ :value.sync="$parent.$parent.model.f_entry"
113
+ :options='$parent.$parent.f_entry_status'
114
+ condition=""
115
+ :value-single="true"
116
+ close-on-select clear-button></v-select>
117
+ </div>
118
+ <div class="col-sm-4 form-group" v-show="$parent.$parent.criteriaShow" style="margin: 0">
119
+ <role-selector-safe
120
+ role-name="安检员"
121
+ role-lable="安&nbsp;检&nbsp;员&nbsp;"
122
+ @re-res="$parent.$parent.getRes"
123
+ :value.sync="model.f_checker_id"
124
+ v-model="model.f_checker_id"
125
+ condition="f_checker_name = '{}'">
126
+ </role-selector-safe>
127
+ </div>
128
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
129
+ <label class="font_normal_body">片&emsp;&emsp;区</label>
130
+ <v-select class="select_list select"
131
+ placeholder='片区/管理站' style="width: 60%"
132
+ :value.sync="model.f_slice_area" v-model="model.f_slice_area"
133
+ :options='$parent.$parent.sliceArea'
134
+ filer-key="name"
135
+ close-on-select clear-button
136
+ condition="f_slice_area='{}'"
137
+ @change="$parent.$parent.getmeterbook(model.f_slice_area)"
138
+ :value-single="true">
139
+ </v-select>
140
+ </div>
141
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
142
+ <label class="font_normal_body">抄&ensp;表&ensp;册</label>
143
+ <v-select class="select_list select"
144
+ placeholder='抄表册' style="width: 60%"
145
+ :value.sync="model.f_meter_book_num" v-model="model.f_meter_book_num"
146
+ :options='$parent.$parent.cbc'
147
+ filer-key="name"
148
+ close-on-select clear-button
149
+ condition="f_meter_book_num={}"
150
+ :value-single="true">
151
+ </v-select>
152
+ </div>
153
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
154
+ <label class="font_normal_body">省&ensp;市&ensp;区</label>
155
+ <v-select class="select_list select"
156
+ placeholder='请选择' style="width: 60%"
157
+ :value.sync="model.f_pcd" v-model="model.f_pcd"
158
+ :options='$parent.$parent.pcds'
159
+ filer-key="name"
160
+ close-on-select clear-button
161
+ condition="f_pcd='{}'"
162
+ :value-single="true">
163
+ </v-select>
164
+ </div>
165
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow" >
166
+ <label class="font_normal_body">开户时间</label>
167
+ <datepicker
168
+ :value.sync="model.f_check_gasstart"
169
+ placeholder='开始时间' style="width: 60%"
170
+ :disabled-days-of-week="[]"
171
+ :format="'yyyy-MM-dd'"
172
+ :show-rest-button="reset"
173
+ v-model="model.f_check_gasstart"
174
+ condition="f_gas_date > ='{} 00:00:00'">
175
+ </datepicker>
176
+ </div>
177
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow" >
178
+ <label class="font_normal_body">开户时间</label>
179
+ <datepicker
180
+ :value.sync="model.f_check_gasend"
181
+ placeholder='结束时间' style="width: 60%"
182
+ :disabled-days-of-week="[]"
183
+ :format="'yyyy-MM-dd'"
184
+ :show-rest-button="reset"
185
+ v-model="model.f_check_gasend"
186
+ condition="f_gas_date <= '{} 23:59:59'">
187
+ </datepicker>
188
+ </div>
189
+ <div class="form-group col-sm-2" v-show="$parent.$parent.safeAudit && $parent.$parent.criteriaShow ">
190
+ <label class="font_normal_body">审&ensp;核&ensp;人</label>
191
+ <input type="text" class="input_search" v-model="model.f_approved_by"
192
+ style="width: 60%" placeholder="审核人" condition="f_approved_by like '%{}%'">
193
+ </div>
194
+ <div class="form-group col-sm-2" v-show="$parent.$parent.safeAudit && $parent.$parent.criteriaShow ">
195
+ <label class="font_normal_body">审核时间</label>
196
+ <datepicker
197
+ :value.sync="model.f_approved_timestart"
198
+ placeholder='开始时间' style="width: 60%"
199
+ :disabled-days-of-week="[]"
200
+ :format="'yyyy-MM-dd'"
201
+ :show-rest-button="reset"
202
+ v-model="model.f_approved_timestart"
203
+ condition="f_approved_time > ='{} 00:00:00'">
204
+ </datepicker>
205
+ </div>
206
+ <div class="form-group col-sm-2" v-show="$parent.$parent.safeAudit && $parent.$parent.criteriaShow ">
207
+ <label class="font_normal_body">审核时间</label>
208
+ <datepicker
209
+ :value.sync="model.f_approved_timeend"
210
+ placeholder='结束时间' style="width: 60%"
211
+ :disabled-days-of-week="[]"
212
+ :format="'yyyy-MM-dd'"
213
+ :show-rest-button="reset"
214
+ v-model="model.f_approved_timeend"
215
+ condition="f_approved_time <= '{} 23:59:59'">
216
+ </datepicker>
217
+ </div>
218
+ <div class="form-group col-sm-2" v-show="$parent.$parent.safeAudit &&$parent.$parent.criteriaShow">
219
+ <label class="font_normal_body" title="参数管理:安检审核状态">审核状态</label>
220
+ <v-select class="select_list select"
221
+ placeholder='请选择' style="width: 60%"
222
+ :value.sync="model.f_approved" v-model="model.f_approved"
223
+ :options='$parent.$parent.f_approval_states'
224
+ filer-key="name"
225
+ :multiple="true"
226
+ condition="f_approved in {}"
227
+ >
228
+ </v-select>
229
+ </div>
230
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow" >
231
+ <label class="font_normal_body">气表品牌</label>
232
+ <v-select
233
+ class="select_list select"
234
+ placeholder='气表品牌' style="width: 60%"
235
+ v-model='model.tableBrand'
236
+ :value.sync="model.tableBrand"
237
+ :options='$parent.$parent.tableBrands'
238
+ condition="f_meter_brand = '{}'"
239
+ :value-single="true"
240
+ close-on-select clear-button></v-select>
241
+ </div>
242
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
243
+ <label class="font_normal_body">有无计划</label>
244
+ <v-select class="select_list select"
245
+ placeholder='请选择' style="width: 60%"
246
+ :value.sync="model.f_no_checkplan" v-model="model.f_no_checkplan"
247
+ :options='$parent.$parent.no_checkplans'
248
+ filer-key="name"
249
+ close-on-select clear-button
250
+ condition="f_no_checkplan='{}'"
251
+ :value-single="true">
252
+ </v-select>
253
+ </div>
254
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
255
+ <label class="font_normal_body">未用燃气</label>
256
+ <v-select class="select_list select"
257
+ placeholder='请选择' style="width: 60%"
258
+ :value.sync="model.f_usegas" v-model="model.f_usegas"
259
+ :options='$parent.$parent.usegas'
260
+ filer-key="name"
261
+ close-on-select clear-button
262
+ condition="f_usegas='{}'"
263
+ :value-single="true">
264
+ </v-select>
265
+ </div>
266
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
267
+ <label class="font_normal_body">有无隐患</label>
268
+ <v-select class="select_list select"
269
+ placeholder='请选择' style="width: 60%"
270
+ :value.sync="model.f_defect_content" v-model="model.f_defect_content"
271
+ :options='$parent.$parent.defect_contents'
272
+ filer-key="name"
273
+ close-on-select clear-button
274
+ condition="f_defect_content like '%{}%'"
275
+ :value-single="true">
276
+ </v-select>
277
+ </div>
278
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
279
+ <label class="font_normal_body">客户卡号</label>
280
+ <input type="text" class="input_search" v-model="model.f_card_id"
281
+ style="width: 60%" placeholder="客户卡号" condition="f_card_id like '%{}%'">
282
+ </div>
283
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
284
+ <label class="font_normal_body">距上次安检天数</label>
285
+ <input type="number" class="input_search" v-model="model.f_check_date"
286
+ style="width: 60%" placeholder="距上次安检天数" >
287
+ </div>
288
+ </div>
289
+ <modal :show.sync="$parent.$parent.showModal" v-ref:modal backdrop="false">
290
+ <div slot="modal-header" class="modal-header">
291
+ <h4 class="modal-title">
292
+ 选择计划
293
+ </h4>
294
+ </div>
295
+ <div slot="modal-body" class="modal-body">
296
+ <plan-chooser :f.sync="$parent.$parent.fun" v-ref:chooser></plan-chooser>
297
+ </div>
298
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
299
+ <button class="button_search" @click="$parent.$parent.ok">确认</button>
300
+ <button class="button_search" @click="$parent.$parent.cancel">取消</button>
301
+ </div>
302
+ </modal>
303
+ </div>
304
+ </criteria>
305
+ <data-grid class="list_area table_sy" style="overflow: hidden" :model="model" partial='list' v-ref:grid>
306
+ <template partial='head'>
307
+ <tr>
308
+ <th>
309
+ <nobr>回访</nobr>
310
+ </th>
311
+ <th>
312
+ <nobr>客户编号</nobr>
313
+ </th>
314
+ <th>
315
+ <nobr>客户名称</nobr>
316
+ </th>
317
+ <th>
318
+ <nobr>客户表号</nobr>
319
+ </th>
320
+ <th>
321
+ <nobr>气表品牌</nobr>
322
+ </th>
323
+ <th>
324
+ <nobr>客户电话</nobr>
325
+ </th>
326
+ <th>
327
+ <nobr>客户类型</nobr>
328
+ </th>
329
+ <th>
330
+ <nobr>客户地址</nobr>
331
+ </th>
332
+ <th>
333
+ <nobr>安检状态</nobr>
334
+ </th>
335
+ <th>
336
+ <nobr>计划名称</nobr>
337
+ </th>
338
+ <th>
339
+ <nobr>用气状态</nobr>
340
+ </th>
341
+ <th>
342
+ <data-order field="f_offsite_time" name="安检时间"></data-order>
343
+ </th>
344
+ <th>
345
+ <nobr>有无隐患</nobr>
346
+ </th>
347
+ <th>
348
+ <nobr>安检员</nobr>
349
+ </th>
350
+ <th>
351
+ <nobr>备注</nobr>
352
+ </th>
353
+ <th>
354
+ <nobr>开户时间</nobr>
355
+ </th>
356
+ <th v-if="$parent.$parent.$parent.safeAudit">
357
+ <nobr>审核人</nobr>
358
+ </th>
359
+ <th v-if="$parent.$parent.$parent.safeAudit">
360
+ <nobr>审核起始</nobr>
361
+ </th>
362
+ <th v-if="$parent.$parent.$parent.safeAudit">
363
+ <nobr>审核结束</nobr>
364
+ </th>
365
+ <th v-if="$parent.$parent.$parent.safeAudit">
366
+ <nobr>审核状态</nobr>
367
+ </th>
368
+ <th v-if="$parent.$parent.$parent.safeAudit">
369
+ <nobr>审核未通过原因</nobr>
370
+ </th>
371
+ <th>
372
+ <nobr>操作</nobr>
373
+ </th>
374
+ <th v-if="$parent.$parent.$parent.audioshow">
375
+ <nobr>录音</nobr>
376
+ </th>
377
+ </tr>
378
+ </template>
379
+ <template partial='body'>
380
+ <td style="text-align: center">
381
+ <button class="button_spacing button_search-1" v-if="!row.f_is_visit" @click='$parent.$parent.$parent.visit(row)'>回访</button>
382
+ <button class="button_spacing button_search-1" v-else @click='$parent.$parent.$parent.showVisit(row)'>查看</button>
383
+ </td>
384
+ <td style="text-align: center">{{row.f_userinfo_code}}</td>
385
+ <td style="text-align: center">{{row.f_user_name}}</td>
386
+ <td style="text-align: center">{{row.f_meternumber}}</td>
387
+ <td style="text-align: center">{{row.f_meter_brand}}</td>
388
+ <td style="text-align: center">{{row.f_user_phone}}</td>
389
+ <td style="text-align: center">{{row.f_check_type}}</td>
390
+
391
+ <td style="text-align: center">{{ row.f_address }}</td>
392
+ <td style="text-align: center">{{ row.f_entry_status }}</td>
393
+ <td style="text-align: center">{{ row.f_plan_name }}</td>
394
+ <td style="text-align: center">{{ row.f_usegas }}</td>
395
+ <td style="text-align: center">{{ row.f_offsite_time }}</td>
396
+ <td style="text-align: center">{{ row.f_defect_content.includes('正常') ? '正常' : '有隐患' }}</td>
397
+ <td style="text-align: center">{{ row.f_checker_name }}</td>
398
+ <td style="text-align: center">{{ row.f_repair_approved_note }}</td>
399
+ <td style="text-align: center">{{ row.f_gas_date }}</td>
400
+ <td style="text-align: center" v-show="$parent.$parent.$parent.safeAudit">{{ row.f_approved_by }}</td>
401
+ <td style="text-align: center" v-show="$parent.$parent.$parent.safeAudit">{{ row.f_approvedstart_time }}</td>
402
+ <td style="text-align: center" v-show="$parent.$parent.$parent.safeAudit">{{ row.f_approved_time }}</td>
403
+ <td style="text-align: center" v-show="$parent.$parent.$parent.safeAudit">
404
+ {{ row.f_approved ? row.f_approved : '未审核' }}
405
+ </td>
406
+ <td style="text-align: center" v-show="$parent.$parent.$parent.safeAudit">
407
+ {{row.f_approved_note}}
408
+ </td>
409
+ <td style="text-align: center">
410
+ <button class="button_spacing button_search-1" @click='$parent.$parent.$parent.change(row)'>查看</button>
411
+
412
+
413
+ </td>
414
+ <td style="text-align: center" v-if="$parent.$parent.$parent.audioshow">
415
+ <!-- <button class="button_spacing button_search-1" @click='$parent.$parent.$parent.change(row)'>查看</button>-->
416
+ <audio controls="controls" v-if="row.f_recording1_path">
417
+ <source type="audio/mpeg" :src="'rs/audio/file/'+row.f_recording1_path">
418
+ </audio>
419
+ <!--<button type="button" class="button_new-1 button_spacing" data-toggle="dropdown"
420
+ @click="$parent.$parent.$parent.print(row)">
421
+ 打印
422
+ </button>-->
423
+ </td>
424
+ </template>
425
+ </data-grid>
426
+ </criteria-paged>
427
+ <check-msg v-if="showcheckmsg" :show="showcheckmsg" :data="checkInfo"></check-msg>
428
+ </div>
429
+ </div>
430
+ <new-check-paper v-if="showinfo2" :f_plan_id="shouinfodata.f_check_plan_id" :item="shouinfodata" :role="'view'" v-on:showback="showback1"></new-check-paper>
431
+ <new-check-paper-temp v-if="showinfo3" :f_plan_id="shouinfodata.f_check_plan_id" :item="shouinfodata" :role="'view'" v-on:showback="showback2"></new-check-paper-temp>
432
+ <new-check-paper-new v-if="showinfo4" :f_plan_id="shouinfodata.f_check_plan_id" :item="shouinfodata" :role="'view'" v-on:showback="showback3"></new-check-paper-new>
433
+ <modal :show.sync="show" width="80%">
434
+ <div slot="modal-header" class="modal-header">
435
+ <h4 class="modal-title">安检电话抽检单录入</h4>
436
+ <button type="button" class="close" @click="close()"><span>&times;</span></button>
437
+ </div>
438
+ <div slot="modal-body" class="modal-body">
439
+ <form class="form-horizontal">
440
+ <div class="row">
441
+ <div class="form-group col-sm-3">
442
+ <label class="col-sm-4 control-label">客户编号:</label>
443
+ <div class="col-sm-8">
444
+ <input type="text" class="form-control" v-model="formData.f_userinfo_code" readonly>
445
+ </div>
446
+ </div>
447
+ <div class="form-group col-sm-3">
448
+ <label class="col-sm-4 control-label">姓名:</label>
449
+ <div class="col-sm-8">
450
+ <input type="text" class="form-control" v-model="formData.f_user_name" readonly>
451
+ </div>
452
+ </div>
453
+ <div class="form-group col-sm-6">
454
+ <label class="col-sm-2 control-label">地址:</label>
455
+ <div class="col-sm-10">
456
+ <input type="text" class="form-control" v-model="formData.f_address" readonly>
457
+ </div>
458
+ </div>
459
+ </div>
460
+ <div class="row">
461
+ <div class="form-group col-sm-3">
462
+ <label class="col-sm-4 control-label">客户电话:</label>
463
+ <div class="col-sm-8">
464
+ <input type="text" class="form-control" v-model="formData.f_user_phone" readonly>
465
+ </div>
466
+ </div>
467
+ <div class="form-group col-sm-3">
468
+ <label class="col-sm-4 control-label">被访人:</label>
469
+ <div class="col-sm-8">
470
+ <input type="text" class="form-control" v-model="formData.f_interviewee" :readonly="isReadOnly">
471
+ </div>
472
+ </div>
473
+ <div class="form-group col-sm-3">
474
+ <label class="col-sm-4 control-label">抽检人:</label>
475
+ <div class="col-sm-8">
476
+ <input type="text" class="form-control" v-model="formData.f_inspector" readonly>
477
+ </div>
478
+ </div>
479
+ <div class="form-group col-sm-3">
480
+ <label class="col-sm-4 control-label">日期:</label>
481
+ <div class="col-sm-8">
482
+ <input type="text" class="form-control" v-model="formData.f_check_date" readonly>
483
+ </div>
484
+ </div>
485
+ </div>
486
+ </form>
487
+
488
+ <table class="table table-bordered">
489
+ <thead>
490
+ <tr>
491
+ <th>序号</th>
492
+ <th>抽检项目</th>
493
+ <th>情况登记</th>
494
+ </tr>
495
+ </thead>
496
+ <tbody>
497
+ <tr>
498
+ <td>1</td>
499
+ <td>安检前有没有看到即将入户安检的通知</td>
500
+ <td>
501
+ <label class="radio-inline">
502
+ <input type="radio" name="q1" value="是" v-model="formData.q1"> 是
503
+ </label>
504
+ <label class="radio-inline">
505
+ <input type="radio" name="q1" value="否" v-model="formData.q1"> 否
506
+ </label>
507
+ </td>
508
+ </tr>
509
+ <tr>
510
+ <td>2</td>
511
+ <td>安检(维修、抄表)员是否按预约时间入户</td>
512
+ <td>
513
+ <label class="radio-inline">
514
+ <input type="radio" name="q2" value="是" v-model="formData.q2"> 是
515
+ </label>
516
+ <label class="radio-inline">
517
+ <input type="radio" name="q2" value="否" v-model="formData.q2"> 否
518
+ </label>
519
+ </td>
520
+ </tr>
521
+ <tr>
522
+ <td>3</td>
523
+ <td>对安检(维修、抄表)员的服务态度</td>
524
+ <td>
525
+ <label class="radio-inline">
526
+ <input type="radio" name="q3" value="满意" v-model="formData.q3"> 满意
527
+ </label>
528
+ <label class="radio-inline">
529
+ <input type="radio" name="q3" value="一般" v-model="formData.q3"> 一般
530
+ </label>
531
+ <label class="radio-inline">
532
+ <input type="radio" name="q3" value="不满意" v-model="formData.q3"> 不满意
533
+ </label>
534
+ </td>
535
+ </tr>
536
+ <tr>
537
+ <td>4</td>
538
+ <td>安检(维修、抄表)员上门是否穿工作服,出示工作牌</td>
539
+ <td>
540
+ <label class="radio-inline">
541
+ <input type="radio" name="q4" value="是" v-model="formData.q4"> 是
542
+ </label>
543
+ <label class="radio-inline">
544
+ <input type="radio" name="q4" value="否" v-model="formData.q4"> 否
545
+ </label>
546
+ </td>
547
+ </tr>
548
+ <tr>
549
+ <td>5</td>
550
+ <td>安检过程中是否使用U型压力计检测</td>
551
+ <td>
552
+ <label class="radio-inline">
553
+ <input type="radio" name="q5" value="是" v-model="formData.q5"> 是
554
+ </label>
555
+ <label class="radio-inline">
556
+ <input type="radio" name="q5" value="否" v-model="formData.q5"> 否
557
+ </label>
558
+ </td>
559
+ </tr>
560
+ <tr>
561
+ <td>6</td>
562
+ <td>安检(维修、抄表)员有无违反职业道德的行为(吃、拿、卡、要)</td>
563
+ <td>
564
+ <label class="radio-inline">
565
+ <input type="radio" name="q6" value="是" v-model="formData.q6"> 是
566
+ </label>
567
+ <label class="radio-inline">
568
+ <input type="radio" name="q6" value="否" v-model="formData.q6"> 否
569
+ </label>
570
+ </td>
571
+ </tr>
572
+ <tr>
573
+ <td>7</td>
574
+ <td>安检(维修、抄表)员是否向您进行了安全方面的宣传并派发了宣传单</td>
575
+ <td>
576
+ <label class="radio-inline">
577
+ <input type="radio" name="q7" value="是" v-model="formData.q7"> 是
578
+ </label>
579
+ <label class="radio-inline">
580
+ <input type="radio" name="q7" value="否" v-model="formData.q7"> 否
581
+ </label>
582
+ </td>
583
+ </tr>
584
+ <tr>
585
+ <td>8</td>
586
+ <td>安检(维修、抄表)员安检(维修、抄表)后是否向您解释了安检(维修、抄表)结果</td>
587
+ <td>
588
+ <label class="radio-inline">
589
+ <input type="radio" name="q8" value="是" v-model="formData.q8"> 是
590
+ </label>
591
+ <label class="radio-inline">
592
+ <input type="radio" name="q8" value="否" v-model="formData.q8"> 否
593
+ </label>
594
+ </td>
595
+ </tr>
596
+ <tr>
597
+ <td>9</td>
598
+ <td>隐患是否已整改</td>
599
+ <td>
600
+ <label class="radio-inline">
601
+ <input type="radio" name="q9" value="是" v-model="formData.q9"> 是
602
+ </label>
603
+ <label class="radio-inline">
604
+ <input type="radio" name="q9" value="否" v-model="formData.q9"> 否
605
+ </label>
606
+ </td>
607
+ </tr>
608
+ <tr>
609
+ <td>10</td>
610
+ <td>您对我们入户人员的工作效率和工作质量是否满意</td>
611
+ <td>
612
+ <label class="radio-inline">
613
+ <input type="radio" name="q10" value="满意" v-model="formData.q10"> 满意
614
+ </label>
615
+ <label class="radio-inline">
616
+ <input type="radio" name="q10" value="一般" v-model="formData.q10"> 一般
617
+ </label>
618
+ <label class="radio-inline">
619
+ <input type="radio" name="q10" value="不满意" v-model="formData.q10"> 不满意
620
+ </label>
621
+ </td>
622
+ </tr>
623
+ <tr>
624
+ <td>11</td>
625
+ <td>谢谢您对我们这次回访大力配合,请问您对我公司的安检(维修、抄表)工作还有那些好的建议?</td>
626
+ <td>
627
+ <textarea class="form-control" rows="3" v-model="formData.q11"></textarea>
628
+ </td>
629
+ </tr>
630
+ <tr>
631
+ <td>12</td>
632
+ <td>综合评价:</td>
633
+ <td>
634
+ <label class="radio-inline">
635
+ <input type="radio" name="q12" value="满意" v-model="formData.q12"> 满意
636
+ </label>
637
+ <label class="radio-inline">
638
+ <input type="radio" name="q12" value="一般" v-model="formData.q12"> 一般
639
+ </label>
640
+ <label class="radio-inline">
641
+ <input type="radio" name="q12" value="不满意" v-model="formData.q12"> 不满意
642
+ </label>
643
+ </td>
644
+ </tr>
645
+ <tr>
646
+ <td>13</td>
647
+ <td>备注</td>
648
+ <td>
649
+ <textarea class="form-control" rows="3" v-model="formData.q13"></textarea>
650
+ </td>
651
+ </tr>
652
+ </tbody>
653
+ </table>
654
+
655
+ </div>
656
+ <div slot="modal-footer" class="modal-footer">
657
+ <button class="btn btn-primary" @click="save" v-if="!isReadOnly">保存</button>
658
+ <button class="btn btn-default" @click="close">关闭</button>
659
+ </div>
660
+ </modal>
661
+ </template>
662
+
663
+ <script>
664
+ import {PagedList} from 'vue-client'
665
+ import Vue from 'vue'
666
+ import co from 'co'
667
+ import AppData from '../../../stores/AppData'
668
+ import * as Util from '../../Util'
669
+ import getNowDate from "../../../utils/getNowDate";
670
+ import HttpResetClass from "vue-client/src/plugins/HttpResetClass";
671
+ import BenzAMRRecorder from 'benz-amr-recorder'
672
+ import {isEmpty, toEndDateString, toStartDateString} from '../../Util'
673
+
674
+
675
+ let select = function* (self) {
676
+ let http = new HttpResetClass()
677
+ let getGasman = yield http.load('POST', '/rs/search', {
678
+ source: 'this.getParentByType($department$).getAllChildrens().where(row.getAttributes().get($rolestr$).indexOf($安检员$) != -1))',
679
+ userid: self.$login.f.id
680
+ }, {resolveMsg: null, rejectMsg: null})
681
+ ////tag
682
+ self.checkersid.push({label: '全部', value: ''})
683
+ getGasman.data.forEach((checker) => {
684
+ self.checkersid.push({label: checker.name, value: checker.id})
685
+ })
686
+ }
687
+
688
+ export default {
689
+ title: '安检结果查看',
690
+ data() {
691
+ let model = new PagedList('api/af-safecheck/sql/查找安检单', 20, {
692
+ f_plan_id: 'this.f_plan_id',
693
+ f_approved: 'this.f_approved',
694
+ f_entry_status: 'this.f_entry',
695
+ f_no_checkplan: 'this.f_no_checkplan',
696
+ f_filialeid: 'this.f_filialeid',
697
+ orderitem: "'f_offsite_time desc'"
698
+ })
699
+ model.f_check_type = ''
700
+ model.f_plan_id = ''
701
+ model.f_approved = ''
702
+ model.f_entry = ''
703
+ model.f_no_checkplan = ''
704
+ model.f_filialeid = `('${this.$login.f.orgid}')`
705
+ //model.f_check_type='民用'
706
+ // let searchData={
707
+ // f_plan_id: this.model.f_checker_id==undefined?"":this.model.f_checker_id,
708
+ // f_approved: this.model.f_approved,
709
+ // f_entry_status: this.model.f_entry,
710
+ // f_no_checkplan:this.model.f_no_checkplan[0],
711
+ // f_filialeid: this.model.f_filialeid,
712
+ // //orderitem: this.model.f_offsite_time,
713
+ // //condition:this.model.condition
714
+ // }
715
+ // model.f_subcompany = this.$login.f.f_fengongsi
716
+ return {
717
+ formData: {
718
+ id:'',
719
+ f_interviewee: '',
720
+ f_userinfo_code:'',
721
+ f_address:'',
722
+ f_user_phone:'',
723
+ f_user_name:'',
724
+ f_inspector: this.$login.f.name,
725
+ f_check_date: Util.toStandardTimeString(),
726
+ q1: '是',
727
+ q2: '是',
728
+ q3: '满意',
729
+ q4: '',
730
+ q5: '',
731
+ q6: '否',
732
+ q7: '是',
733
+ q8: '是',
734
+ q9: '是',
735
+ q10: '满意',
736
+ q11: '',
737
+ q12: '满意',
738
+ q13:''
739
+ },
740
+ show:false,
741
+ isReadOnly: false,
742
+ showinfo1:true,
743
+ showinfo2:false,
744
+ showinfo3:false,
745
+ showinfo4:false,
746
+ shouinfodata:{},
747
+ tableBrands: [{label: '全部', value: ''}],
748
+ audioshow: false,
749
+ safeAudit: this.$login.f.rolestr.includes('安检审核'),
750
+ searchData: {
751
+ condition: "1=1",
752
+ orderitem: "f_offsite_time desc",
753
+ f_plan_id: "",
754
+ f_approved: '',
755
+ f_entry_status: '',
756
+ f_no_checkplan: '',
757
+ f_filialeid: `('${this.$login.f.orgid}')`
758
+ },
759
+ model: model,
760
+ excelHeaders: {
761
+ //searchData:searchData,
762
+ 'f_userinfo_code': '客户编号',
763
+ 'f_user_name': '客户姓名',
764
+ 'f_meternumber':'客户表号',
765
+ 'f_user_phone':'客户电话',
766
+ 'f_check_type': '客户类型',
767
+ 'f_residential_area': '小区',
768
+ 'f_address': '客户地址',
769
+ 'f_entry_status': '安检状态',
770
+ 'f_usegas': '用气状态',
771
+ 'f_defect_content':'有无隐患',
772
+ 'f_offsite_time': '安检时间',
773
+ 'f_checker_name': '安检员',
774
+ 'f_safecheck_type':'安检类型',
775
+ 'f_repair_approved_note': '备注',
776
+ 'f_gas_date': '开户时间',
777
+ 'f_approved_by': '审核人',
778
+ 'f_approved': '审核状态',
779
+ 'f_approved_time': '审核时间'
780
+ },
781
+ fun: this.$login.f,
782
+ pcds:[],
783
+ checkersid: [],
784
+ safetype: this.$appdata.getParam('安检类型')?[{label: '全部', value: ''}, ...this.$appdata.getParam('安检类型')]:[{label: '全部', value: ''}],
785
+ criteriaShow: false,
786
+ checktype: this.$appdata.getParam('用户类型')?[{label: '全部', value: ''}, ...this.$appdata.getParam('用户类型')]:[{label: '全部', value: ''}],
787
+ f_check_type:[{label:'全部',value:''},{label:'民用',value:'民用'},{label:'非民用',value:'非民用'}],
788
+ defect_contents:[{label:'全部',value:''},{label:'有隐患',value:'有隐患'},{label:'正常',value:'正常'}],
789
+ showModal: false,
790
+ safe_types:this.$appdata.getParam('计划类型')?[{label: '全部', value: ''}, ...this.$appdata.getParam('计划类型')]:[{label: '全部', value: ''}],
791
+ f_approval_states: this.$appdata.getParam('安检单审核状态')?[{label: '全部', value: ''}, ...this.$appdata.getParam('安检单审核状态')]:[{label: '全部', value: ''}],
792
+ f_entry_status: this.$appdata.getParam('安检状态')?[{label: '全部', value: ''}, ...this.$appdata.getParam('安检状态')]:[{label: '全部', value: ''}],
793
+ no_checkplans: this.$appdata.getParam('有无计划')?[{label: '全部', value: ''}, ...this.$appdata.getParam('有无计划')]:[{label: '全部', value: ''}],
794
+ usegas: this.$appdata.getParam('用气状态')?[{label: '全部', value: ''}, ...this.$appdata.getParam('用气状态')]:[{label: '全部', value: ''}],
795
+ showcheckmsg: false,
796
+ checkInfo: {},
797
+ orderDefault: "'f_offsite_time'",
798
+ orderFields: {
799
+ f_offsite_time: 'no'
800
+ },
801
+ sliceArea: [],
802
+ cbc:[]
803
+ }
804
+ },
805
+ created() {
806
+ // 使用 $on 监听事件
807
+ this.$root.$on('audit-status-changed', () => {
808
+ console.log('收到审核状态变更事件')
809
+ this.refresh()
810
+ })
811
+ },
812
+ beforeDestroy() {
813
+ // 记得在组件销毁前移除事件监听
814
+ this.$root.$off('audit-status-changed')
815
+ },
816
+ methods: {
817
+ visit(row){
818
+ this.show = true
819
+ this.formData.f_address = row.f_address
820
+ this.formData.f_userinfo_code = row.f_userinfo_code
821
+ this.formData.f_user_phone = row.f_user_phone
822
+ this.formData.f_user_name = row.f_user_name
823
+ this.formData.id = row.id
824
+ },
825
+ showVisit(row){
826
+ this.formData = JSON.parse(row.f_visit_data)
827
+ this.show = true
828
+ this.isReadOnly = true
829
+ },
830
+ async save(){
831
+ let data = {
832
+ f_is_visit : '已回访',
833
+ f_visit_date : Util.toStandardTimeString(),
834
+ f_visit_people : this.$login.f.name,
835
+ f_visit_data : JSON.stringify(this.formData)
836
+ }
837
+ const sql = `update t_check_paper set f_is_visit = '${data.f_is_visit}',f_visit_date = '${data.f_visit_date}',f_visit_people = '${data.f_visit_people}',f_visit_data='${data.f_visit_data}' where id = '${this.formData.id}'`
838
+ await new HttpResetClass().load('POST', 'api/af-safecheck/logic/runSQL', {data: {sql: sql}}, {resolveMsg: null, rejectMsg: null})
839
+ this.close()
840
+ this.search()
841
+ },
842
+ close(){
843
+ this.formData = {
844
+ id:'',
845
+ f_interviewee: '',
846
+ f_userinfo_code:'',
847
+ f_address:'',
848
+ f_user_phone:'',
849
+ f_user_name:'',
850
+ f_inspector: this.$login.f.name,
851
+ f_check_date: Util.toStandardTimeString(),
852
+ q1: '',
853
+ q2: '是',
854
+ q3: '满意',
855
+ q4: '是',
856
+ q5: '',
857
+ q6: '',
858
+ q7: '',
859
+ q8: '是',
860
+ q9: '是',
861
+ q10: '满意',
862
+ q11: '',
863
+ q12: '满意',
864
+ q13:''
865
+ }
866
+ this.show = false
867
+ this.isReadOnly = false
868
+ },
869
+ showback1(){
870
+ this.showinfo1 = true
871
+ this.showinfo2 = false
872
+ this.search()
873
+ },
874
+ showback2(){
875
+ this.showinfo1 = true
876
+ this.showinfo3 = false
877
+ this.search()
878
+ },
879
+ showback3(){
880
+ this.showinfo1 = true
881
+ this.showinfo4 = false
882
+ this.search()
883
+ },
884
+ //气表品牌查询
885
+ getTableBrands() {
886
+ new HttpResetClass().load("POST", `/api/af-safecheck/sql/safe_singleTable_OrderBy`,
887
+ {data: {items: "*", tablename: "t_gasbrand", orderitem: "id", condition: ` 1=1 `}},
888
+ {resolveMsg: null, rejectMsg: null}).then((resp) => {
889
+ resp.data.forEach((result) => {
890
+ this.tableBrands.push({label: result.f_meter_brand, value: result.f_meter_brand})
891
+ })
892
+ })
893
+ },
894
+ //获取省市区列表
895
+ getPcd(val){
896
+ this.pcds = [{label:'全部',value:''}]
897
+ new HttpResetClass().load("POST", `/api/af-safecheck/sql/safe_singleTable_OrderBy`,
898
+ {data:{items:"*",tablename:"t_pcd",orderitem:"id",condition:`f_orgid in ${val}`}},
899
+ {resolveMsg: null, rejectMsg: null}).then((pcdlist)=>{
900
+ pcdlist.data.forEach((result)=>{
901
+ this.pcds.push({label:result.f_pcd,value:result.f_pcd})
902
+ })
903
+ })
904
+ },
905
+ showaudio(){
906
+ //tag
907
+ this.audioshow=!this.audioshow
908
+ //tag
909
+ },
910
+ getmeterbook(val){
911
+ this.cbc=[]
912
+ this.cbc.push({
913
+ label:'全部',
914
+ value:''
915
+ })
916
+ if (val==''){
917
+
918
+ this.cbcs.forEach(res=>{
919
+ this.cbc.push({
920
+ label:res.f_book_name,
921
+ value:res.id
922
+ })
923
+ })
924
+ }else{
925
+ this.cbcs.forEach(res=>{
926
+ if (res.f_book_slice_area==val){
927
+ this.cbc.push({
928
+ label:res.f_book_name,
929
+ value:res.id
930
+ })
931
+ }
932
+ })
933
+ }
934
+ },
935
+ Mreadibook(val){
936
+ ////tag
937
+ ////tag
938
+ if (val){
939
+ new HttpResetClass().load('POST',`/api/af-safecheck/sql/safe_singleTable_OrderBy`, {data: {
940
+ items: 'name',
941
+ tablename: 't_zone',
942
+ condition: `parentid in ${val}`,
943
+ orderitem: 'id'
944
+ }}, {resolveMsg: null, rejectMsg: null}).then((res) => {
945
+ this.sliceArea=[]
946
+ this.sliceArea.push({
947
+ label:'全部',
948
+ value:''
949
+ })
950
+ res.data.forEach(ress=>{
951
+ this.sliceArea.push({
952
+ label:ress.name,
953
+ value:ress.name
954
+ })
955
+ })
956
+
957
+ })
958
+ }
959
+ },
960
+ getAllMeterBook(val){
961
+ ////tag
962
+ ////tag
963
+ this.cbcs=[]
964
+ if (val){
965
+ new HttpResetClass().load('POST',`/api/af-safecheck/sql/safe_singleTable_OrderBy`, {data: {
966
+ items: 'f_book_name,f_book_slice_area,id',
967
+ tablename: 't_meter_book',
968
+ condition: `f_filiale_id in ${val}`,
969
+ orderitem: 'id'
970
+ }}, {resolveMsg: null, rejectMsg: null}).then((res) => {
971
+ res.data.forEach(ress=>{
972
+ this.cbcs.push({
973
+ id:ress.id,
974
+ f_book_name:ress.f_book_name,
975
+ f_book_slice_area:ress.f_book_slice_area
976
+ })
977
+ })
978
+ this.cbc=[]
979
+ this.cbc.push({
980
+ label:'全部',
981
+ value:''
982
+ })
983
+ this.cbcs.forEach(res=>{
984
+ this.cbc.push({
985
+ label:res.f_book_name,
986
+ value:res.id
987
+ })
988
+ })
989
+ })
990
+ }
991
+ },
992
+ getRes(obj) {
993
+ this.model.f_filialeid = this.$login.convertToIn(obj.resids);
994
+ this.searchData.f_filialeid = this.$login.convertToIn(obj.resids);
995
+ this.Mreadibook(this.model.f_filialeid)
996
+ this.getAllMeterBook(this.model.f_filialeid)
997
+ this.getPcd(this.model.f_filialeid)
998
+ //this.$refs.paged.$refs.criteria.search()
999
+ },
1000
+
1001
+ change(row) {
1002
+ row.f_upload_state = '已传'
1003
+ this.shouinfodata = JSON.parse(JSON.stringify(row))
1004
+ this.showinfo1 = false
1005
+ if (row.f_safe_type == '已挂表未办卡安检'){
1006
+ this.showinfo2 = false
1007
+ this.showinfo3 = true
1008
+ this.showinfo4 = false
1009
+ return
1010
+ }else if (!isEmpty(row.f_security_check_type_id)) {
1011
+ this.showinfo2 = false
1012
+ this.showinfo3 = false
1013
+ this.showinfo4 = true
1014
+ return
1015
+ }
1016
+ this.showinfo2 = true
1017
+ this.showinfo3 = false
1018
+ this.showinfo4 = false
1019
+ },
1020
+ showChooser() {
1021
+ this.showModal = true
1022
+ },
1023
+ hidden() {
1024
+ this.criteriaShow = !this.criteriaShow
1025
+ },
1026
+ refresh() {
1027
+ this.$refs.paged.$refs.criteria.search()
1028
+ },
1029
+ ok() {
1030
+ this.showModal = false
1031
+ if (this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow.id) {
1032
+ this.model.f_plan_id = this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow.id
1033
+ this.model.f_check_plan=this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow
1034
+ }
1035
+ },
1036
+ cancel() {
1037
+ this.showModal = false
1038
+ this.model.f_check_plan = {f_plan_name: '', id: ''}
1039
+ this.model.f_plan_id=''
1040
+ },
1041
+ print(row) {
1042
+ this.showcheckmsg = true
1043
+ this.checkInfo = row
1044
+ },
1045
+
1046
+ sort(field, rule) {
1047
+ // 将所有排序方式设为不排序,实现相互排斥
1048
+ for (let key in this.orderFields) {
1049
+ if (key === field) {
1050
+ this.orderFields[key] = rule
1051
+ } else {
1052
+ this.orderFields[key] = 'no'
1053
+ }
1054
+ }
1055
+ // 如果新规则不排序,还原为默认排序
1056
+ if (rule === 'no') {
1057
+ this.model.paramSource.orderitem = `'${this.orderDefault}'`
1058
+ } else {
1059
+ this.model.paramSource.orderitem = `'${field} ${rule}'`
1060
+ }
1061
+ this.search()
1062
+ },
1063
+ search() {
1064
+ console.log('审核通过回调')
1065
+ this.$refs.paged.$refs.criteria.search()
1066
+ },
1067
+ selfSearch(args) {
1068
+ ////tag
1069
+ //args.condition+=" and f_check_type='民用'"
1070
+ if(args.model.f_check_date){
1071
+ const daysBefore = Number(args.model.f_check_date);
1072
+ if ( daysBefore > 0) {
1073
+ // 获取当前日期
1074
+ const now = new Date();
1075
+ // 计算三天前的日期
1076
+ const threeDaysBefore = new Date(now.getTime() - (daysBefore * 24 * 60 * 60 * 1000));
1077
+ // 如果需要格式化日期,可以使用Date对象的方法
1078
+ var formattedDate = threeDaysBefore.toISOString().split('T')[0];
1079
+ args.condition += ` and f_offsite_time <='${formattedDate} 23:59:59'`;
1080
+ } else {
1081
+ console.error('f_check_date不是一个有效的正整数');
1082
+ }
1083
+ }
1084
+ this.model.search(args.condition, args.model, args.condValue)
1085
+ }
1086
+ },
1087
+ ready() {
1088
+ if(this.safeAudit){
1089
+ let oa = {
1090
+ 'f_approved_by':'审核人',
1091
+ 'f_approvedstart_time':'审核开始时间',
1092
+ 'f_approved_time':'审核结束时间',
1093
+ 'f_approved':'审核状态',
1094
+ 'f_approved_note': '审核备注'
1095
+ }
1096
+ this.excelHeaders = Object.assign({}, this.excelHeaders, oa)
1097
+ }
1098
+ this.function = this.f
1099
+ //获取气表品牌
1100
+ this.getTableBrands()
1101
+ let gen = select(this)
1102
+ //this.pianqu()
1103
+ this.Mreadibook(`('${this.$login.f.orgid}')`)
1104
+ co(gen)
1105
+ this.$refs.paged.$refs.criteria.model.f_check_start = Util.toStartDateString() + ' 00:00:00'
1106
+ this.$refs.paged.$refs.criteria.model.f_check_end = Util.toEndDateString() + ' 23:59:59'
1107
+ },
1108
+ watch: {
1109
+ 'model.f_no_checkplan'(val) {
1110
+ if (this.model.f_no_checkplan){
1111
+ this.searchData.f_no_checkplan = val
1112
+ }
1113
+ if (this.model.f_no_checkplan == '有计划安检') {
1114
+
1115
+ this.showChooser()
1116
+ }
1117
+ },
1118
+ 'model.condition'(val) {
1119
+ if (val) {
1120
+ this.searchData.condition = val
1121
+ }
1122
+
1123
+ },
1124
+ 'model.f_entry'(val) {
1125
+ this.searchData.f_entry_status = val
1126
+ },
1127
+ 'model.f_plan_id'(val) {
1128
+ if (val) {
1129
+ this.searchData.f_plan_id = val
1130
+ }
1131
+ },
1132
+ 'model.f_slice_area'(val) {
1133
+ },
1134
+ 'model.f_approved'(val) {
1135
+ if (val) {
1136
+ this.searchData.f_approved = val
1137
+ }
1138
+ }
1139
+ }
1140
+
1141
+ }
1142
+ </script>