safecheck-client 3.0.35-51 → 3.0.35-53

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,795 +1,795 @@
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="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-safe :data="$parent.$parent.searchData"
41
- :field="$parent.$parent.excelHeaders"
42
- :choose-col="true"
43
- sqlurl="rs/logic/SafeExportExcel" sql-name="查找安检单" template-name='安检记录明细'></export-excel-safe>
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.approveds'
224
- filer-key="name"
225
- close-on-select clear-button
226
- condition="f_approved='{}'"
227
- :value-single="true">
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
- <input type="text" class="input_search" v-model="model.f_card_id"
269
- style="width: 60%" placeholder="客户卡号" condition="f_card_id like '%{}%'">
270
- </div>
271
- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
272
- <label class="font_normal_body">距上次安检天数</label>
273
- <input type="number" class="input_search" v-model="model.f_check_date"
274
- style="width: 60%" placeholder="距上次安检天数" >
275
- </div>
276
- </div>
277
- <modal :show.sync="$parent.$parent.showModal" v-ref:modal backdrop="false">
278
- <div slot="modal-header" class="modal-header">
279
- <h4 class="modal-title">
280
- 选择计划
281
- </h4>
282
- </div>
283
- <div slot="modal-body" class="modal-body">
284
- <plan-chooser :f.sync="$parent.$parent.fun" v-ref:chooser></plan-chooser>
285
- </div>
286
- <div slot="modal-footer" class="modal-footer" style="text-align: center">
287
- <button class="button_search" @click="$parent.$parent.ok">确认</button>
288
- <button class="button_search" @click="$parent.$parent.cancel">取消</button>
289
- </div>
290
- </modal>
291
- </div>
292
- </criteria>
293
- <data-grid class="list_area table_sy" style="overflow: hidden" :model="model" partial='list' v-ref:grid>
294
- <template partial='head'>
295
- <tr>
296
- <th>
297
- <nobr>客户编号</nobr>
298
- </th>
299
- <th>
300
- <nobr>客户名称</nobr>
301
- </th>
302
- <th>
303
- <nobr>客户表号</nobr>
304
- </th>
305
- <th>
306
- <nobr>气表品牌</nobr>
307
- </th>
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
- <data-order field="f_offsite_time" name="安检时间"></data-order>
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 v-if="$parent.$parent.$parent.safeAudit">
342
- <nobr>审核人</nobr>
343
- </th>
344
- <th v-if="$parent.$parent.$parent.safeAudit">
345
- <nobr>审核起始</nobr>
346
- </th>
347
- <th v-if="$parent.$parent.$parent.safeAudit">
348
- <nobr>审核结束</nobr>
349
- </th>
350
- <th v-if="$parent.$parent.$parent.safeAudit">
351
- <nobr>审核状态</nobr>
352
- </th>
353
- <th v-if="$parent.$parent.$parent.safeAudit">
354
- <nobr>审核未通过原因</nobr>
355
- </th>
356
- <th>
357
- <nobr>操作</nobr>
358
- </th>
359
- <th v-if="$parent.$parent.$parent.audioshow">
360
- <nobr>录音</nobr>
361
- </th>
362
- </tr>
363
- </template>
364
- <template partial='body'>
365
-
366
- <td style="text-align: center">{{row.f_userinfo_code}}</td>
367
- <td style="text-align: center">{{row.f_user_name}}</td>
368
- <td style="text-align: center">{{row.f_meternumber}}</td>
369
- <td style="text-align: center">{{row.f_meter_brand}}</td>
370
- <td style="text-align: center">{{row.f_user_phone}}</td>
371
- <td style="text-align: center">{{row.f_check_type}}</td>
372
-
373
- <td style="text-align: center">{{ row.f_address }}</td>
374
- <td style="text-align: center">{{ row.f_entry_status }}</td>
375
- <td style="text-align: center">{{ row.f_plan_name }}</td>
376
- <td style="text-align: center">{{ row.f_usegas }}</td>
377
- <td style="text-align: center">{{ row.f_offsite_time }}</td>
378
- <td style="text-align: center">{{ row.f_checker_name }}</td>
379
- <td style="text-align: center">{{ row.f_mechanical_read }}</td>
380
- <td style="text-align: center">{{ row.f_repair_approved_note }}</td>
381
- <td style="text-align: center">{{ row.f_gas_date }}</td>
382
- <td style="text-align: center" v-show="$parent.$parent.$parent.safeAudit">{{ row.f_approved_by }}</td>
383
- <td style="text-align: center" v-show="$parent.$parent.$parent.safeAudit">{{ row.f_approvedstart_time }}</td>
384
- <td style="text-align: center" v-show="$parent.$parent.$parent.safeAudit">{{ row.f_approved_time }}</td>
385
- <td style="text-align: center" v-show="$parent.$parent.$parent.safeAudit">
386
- {{ row.f_approved ? row.f_approved : '未审核' }}
387
- </td>
388
- <td style="text-align: center" v-show="$parent.$parent.$parent.safeAudit">
389
- {{row.f_approved_note}}
390
- </td>
391
- <td style="text-align: center">
392
- <button class="button_spacing button_search-1" @click='$parent.$parent.$parent.change(row)'>查看</button>
393
-
394
-
395
- </td>
396
- <td style="text-align: center" v-if="$parent.$parent.$parent.audioshow">
397
- <!-- <button class="button_spacing button_search-1" @click='$parent.$parent.$parent.change(row)'>查看</button>-->
398
- <audio controls="controls" v-if="row.f_recording1_path">
399
- <source type="audio/mpeg" :src="'rs/audio/file/'+row.f_recording1_path">
400
- </audio>
401
- <!--<button type="button" class="button_new-1 button_spacing" data-toggle="dropdown"
402
- @click="$parent.$parent.$parent.print(row)">
403
- 打印
404
- </button>-->
405
- </td>
406
- </template>
407
- </data-grid>
408
- </criteria-paged>
409
- <check-msg v-if="showcheckmsg" :show="showcheckmsg" :data="checkInfo"></check-msg>
410
- </div>
411
- </div>
412
- </template>
413
-
414
- <script>
415
- import {PagedList} from 'vue-client'
416
- import Vue from 'vue'
417
- import co from 'co'
418
- import AppData from '../../../stores/AppData'
419
- import * as Util from '../../Util'
420
- import getNowDate from "../../../utils/getNowDate";
421
- import HttpResetClass from "vue-client/src/plugins/HttpResetClass";
422
- import BenzAMRRecorder from 'benz-amr-recorder'
423
- import {toEndDateString, toStartDateString} from "../../Util";
424
-
425
- //获取json配置文件
426
- let asyncReady = async function (self) {
427
- // 获取配置信息
428
- try {
429
- let res = await Vue.resetget(`/phone/rs/vue`, {data: {}}, {resolveMsg: null, rejectMsg: null})
430
- Vue.config = res.data
431
- } catch (error) {
432
- // 忽略704,文件找不到异常R
433
- if (error.status !== 704) {
434
- throw error
435
- }
436
- }
437
- }
438
-
439
- let select = function* (self) {
440
- let http = new HttpResetClass()
441
- let getGasman = yield http.load('POST', '/rs/search', {
442
- source: 'this.getParentByType($department$).getAllChildrens().where(row.getAttributes().get($rolestr$).indexOf($安检员$) != -1))',
443
- userid: self.$login.f.id
444
- }, {resolveMsg: null, rejectMsg: null})
445
- ////tag
446
- self.checkersid.push({label: '全部', value: ''})
447
- getGasman.data.forEach((checker) => {
448
- self.checkersid.push({label: checker.name, value: checker.id})
449
- })
450
- }
451
-
452
- export default {
453
- title: '安检结果查看',
454
- data() {
455
- let model = new PagedList('rs/sql/查找安检单', 20, {
456
- f_plan_id: 'this.f_plan_id',
457
- f_approved: 'this.f_approved',
458
- f_entry_status: 'this.f_entry',
459
- f_no_checkplan: 'this.f_no_checkplan',
460
- f_filialeid: 'this.f_filialeid',
461
- orderitem: "'f_offsite_time desc'"
462
- })
463
- model.f_check_type = ''
464
- model.f_plan_id = ''
465
- model.f_approved = ''
466
- model.f_entry = ''
467
- model.f_no_checkplan = ''
468
- model.f_filialeid = `('${this.$login.f.orgid}')`
469
- //model.f_check_type='民用'
470
- // let searchData={
471
- // f_plan_id: this.model.f_checker_id==undefined?"":this.model.f_checker_id,
472
- // f_approved: this.model.f_approved,
473
- // f_entry_status: this.model.f_entry,
474
- // f_no_checkplan:this.model.f_no_checkplan[0],
475
- // f_filialeid: this.model.f_filialeid,
476
- // //orderitem: this.model.f_offsite_time,
477
- // //condition:this.model.condition
478
- // }
479
- // model.f_subcompany = this.$login.f.f_fengongsi
480
- return {
481
- tableBrands: [{label: '全部', value: ''}],
482
- audioshow: false,
483
- safeAudit: this.$appdata.getSingleValue('安检审核') == '是' ? true : false,
484
- searchData: {
485
- condition: "1=1",
486
- orderitem: "f_offsite_time desc",
487
- f_plan_id: "",
488
- f_approved: '',
489
- f_entry_status: '',
490
- f_no_checkplan: '',
491
- f_filialeid: `('${this.$login.f.orgid}')`
492
- },
493
- model: model,
494
- excelHeaders: {
495
- //searchData:searchData,
496
- 'f_userinfo_code': '客户编号',
497
- 'f_user_name': '客户姓名',
498
- 'f_meternumber':'客户表号',
499
- 'f_user_phone':'客户电话',
500
- 'f_check_type': '客户类型',
501
- 'f_residential_area': '小区',
502
- 'f_address': '客户地址',
503
- 'f_entry_status': '安检状态',
504
- 'f_usegas': '用气状态',
505
- 'f_offsite_time': '安检时间',
506
- 'f_checker_name': '安检员',
507
- 'f_safecheck_type':'安检类型',
508
- 'f_mechanical_read': '机械读数',
509
- 'f_repair_approved_note': '备注',
510
- 'f_gas_date': '开户时间',
511
- 'f_plan_name': '计划名称'
512
- },
513
- fun: this.$login.f,
514
- pcds:[],
515
- checkersid: [],
516
- approveds:this.$appdata.getParam('安检审核状态')?[{label: '全部', value: ''}, ...this.$appdata.getParam('安检审核状态')]:[{label: '全部', value: ''}],
517
- safetype: this.$appdata.getParam('安检类型')?[{label: '全部', value: ''}, ...this.$appdata.getParam('安检类型')]:[{label: '全部', value: ''}],
518
- criteriaShow: false,
519
- checktype: this.$appdata.getParam('用户类型')?[{label: '全部', value: ''}, ...this.$appdata.getParam('用户类型')]:[{label: '全部', value: ''}],
520
- f_check_type:[{label:'全部',value:''},{label:'民用',value:'民用'},{label:'非民用',value:'非民用'}],
521
- showModal: false,
522
- safe_types:this.$appdata.getParam('计划类型')?[{label: '全部', value: ''}, ...this.$appdata.getParam('计划类型')]:[{label: '全部', value: ''}],
523
- f_approval_states: this.$appdata.getParam('安检单审核状态')?[{label: '全部', value: ''}, ...this.$appdata.getParam('安检单审核状态')]:[{label: '全部', value: ''}],
524
- f_entry_status: this.$appdata.getParam('安检状态')?[{label: '全部', value: ''}, ...this.$appdata.getParam('安检状态')]:[{label: '全部', value: ''}],
525
- no_checkplans: this.$appdata.getParam('有无计划')?[{label: '全部', value: ''}, ...this.$appdata.getParam('有无计划')]:[{label: '全部', value: ''}],
526
- usegas: this.$appdata.getParam('用气状态')?[{label: '全部', value: ''}, ...this.$appdata.getParam('用气状态')]:[{label: '全部', value: ''}],
527
- showcheckmsg: false,
528
- checkInfo: {},
529
- orderDefault: "'f_offsite_time'",
530
- orderFields: {
531
- f_offsite_time: 'no'
532
- },
533
- sliceArea: [],
534
- cbc:[]
535
- }
536
- },
537
- methods: {
538
- //气表品牌查询
539
- getTableBrands() {
540
- new HttpResetClass().load("POST", `/rs/sql/safe_singleTable_OrderBy`,
541
- {data: {items: "*", tablename: "t_gasbrand", orderitem: "id", condition: ` 1=1 `}},
542
- {resolveMsg: null, rejectMsg: null}).then((resp) => {
543
- resp.data.forEach((result) => {
544
- this.tableBrands.push({label: result.f_meter_brand, value: result.f_meter_brand})
545
- })
546
- })
547
- },
548
- //获取省市区列表
549
- getPcd(val){
550
- this.pcds = [{label:'全部',value:''}]
551
- new HttpResetClass().load("POST", `/rs/sql/safe_singleTable_OrderBy`,
552
- {data:{items:"*",tablename:"t_pcd",orderitem:"id",condition:`f_orgid in ${val}`}},
553
- {resolveMsg: null, rejectMsg: null}).then((pcdlist)=>{
554
- pcdlist.data.forEach((result)=>{
555
- this.pcds.push({label:result.f_pcd,value:result.f_pcd})
556
- })
557
- })
558
- },
559
- showaudio(){
560
- //tag
561
- this.audioshow=!this.audioshow
562
- //tag
563
- },
564
- getmeterbook(val){
565
- this.cbc=[]
566
- this.cbc.push({
567
- label:'全部',
568
- value:''
569
- })
570
- if (val==''){
571
-
572
- this.cbcs.forEach(res=>{
573
- this.cbc.push({
574
- label:res.f_book_name,
575
- value:res.id
576
- })
577
- })
578
- }else{
579
- this.cbcs.forEach(res=>{
580
- if (res.f_book_slice_area==val){
581
- this.cbc.push({
582
- label:res.f_book_name,
583
- value:res.id
584
- })
585
- }
586
- })
587
- }
588
- },
589
- Mreadibook(val){
590
- ////tag
591
- ////tag
592
- if (val){
593
- new HttpResetClass().load('POST',`/rs/sql/tel_singleTable_OrderBy`, {data: {
594
- items: 'name',
595
- tablename: 't_zone',
596
- condition: `parentid in ${val}`,
597
- orderitem: 'id'
598
- }}, {resolveMsg: null, rejectMsg: null}).then((res) => {
599
- this.sliceArea=[]
600
- this.sliceArea.push({
601
- label:'全部',
602
- value:''
603
- })
604
- res.data.forEach(ress=>{
605
- this.sliceArea.push({
606
- label:ress.name,
607
- value:ress.name
608
- })
609
- })
610
-
611
- })
612
- }
613
- },
614
- getAllMeterBook(val){
615
- ////tag
616
- ////tag
617
- this.cbcs=[]
618
- if (val){
619
- new HttpResetClass().load('POST',`/rs/sql/tel_singleTable_OrderBy`, {data: {
620
- items: 'f_book_name,f_book_slice_area,id',
621
- tablename: 't_meter_book',
622
- condition: `f_filiale_id in ${val}`,
623
- orderitem: 'id'
624
- }}, {resolveMsg: null, rejectMsg: null}).then((res) => {
625
- res.data.forEach(ress=>{
626
- this.cbcs.push({
627
- id:ress.id,
628
- f_book_name:ress.f_book_name,
629
- f_book_slice_area:ress.f_book_slice_area
630
- })
631
- })
632
- this.cbc=[]
633
- this.cbc.push({
634
- label:'全部',
635
- value:''
636
- })
637
- this.cbcs.forEach(res=>{
638
- this.cbc.push({
639
- label:res.f_book_name,
640
- value:res.id
641
- })
642
- })
643
- })
644
- }
645
- },
646
- getRes(obj) {
647
- this.model.f_filialeid = this.$login.convertToIn(obj.resids);
648
- this.searchData.f_filialeid = this.$login.convertToIn(obj.resids);
649
- this.Mreadibook(this.model.f_filialeid)
650
- this.getAllMeterBook(this.model.f_filialeid)
651
- this.getPcd(this.model.f_filialeid)
652
- //this.$refs.paged.$refs.criteria.search()
653
- },
654
-
655
- change(row) {
656
- asyncReady(this).then(() => {
657
- if (row.f_safe_type == '已挂表未办卡安检'){
658
- row.f_upload_state = '已传'
659
- this.$goto('new-check-paper-temp', {f_plan_id: row.f_check_plan_id, item: row, role: 'view'}, 'self')
660
- return
661
- }
662
- row.f_upload_state = '已传'
663
- this.$goto('new-check-paper', {f_plan_id: row.f_check_plan_id, item: row, role: 'view'}, 'self')
664
- }).catch(
665
- (respanse) => {
666
- alert('获取配置文件失败')
667
- })
668
- },
669
- readConfig() {
670
- let gen = asyncReady(this)
671
- return co(gen)
672
- },
673
- showChooser() {
674
- this.showModal = true
675
- },
676
- hidden() {
677
- this.criteriaShow = !this.criteriaShow
678
- },
679
- refresh() {
680
- this.$refs.paged.$refs.criteria.search()
681
- },
682
- ok() {
683
- this.showModal = false
684
- if (this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow.id) {
685
- this.model.f_plan_id = this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow.id
686
- this.model.f_check_plan=this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow
687
- }
688
- },
689
- cancel() {
690
- this.showModal = false
691
- this.model.f_check_plan = {f_plan_name: '', id: ''}
692
- this.model.f_plan_id=''
693
- },
694
- print(row) {
695
- this.showcheckmsg = true
696
- this.checkInfo = row
697
- },
698
-
699
- sort(field, rule) {
700
- // 将所有排序方式设为不排序,实现相互排斥
701
- for (let key in this.orderFields) {
702
- if (key === field) {
703
- this.orderFields[key] = rule
704
- } else {
705
- this.orderFields[key] = 'no'
706
- }
707
- }
708
- // 如果新规则不排序,还原为默认排序
709
- if (rule === 'no') {
710
- this.model.paramSource.orderitem = `'${this.orderDefault}'`
711
- } else {
712
- this.model.paramSource.orderitem = `'${field} ${rule}'`
713
- }
714
- this.search()
715
- },
716
- search() {
717
- console.log('审核通过回调')
718
- this.$refs.paged.$refs.criteria.search()
719
- },
720
- selfSearch(args) {
721
- ////tag
722
- //args.condition+=" and f_check_type='民用'"
723
- if(args.model.f_check_date){
724
- const daysBefore = Number(args.model.f_check_date);
725
- if ( daysBefore > 0) {
726
- // 获取当前日期
727
- const now = new Date();
728
- // 计算三天前的日期
729
- const threeDaysBefore = new Date(now.getTime() - (daysBefore * 24 * 60 * 60 * 1000));
730
- // 如果需要格式化日期,可以使用Date对象的方法
731
- var formattedDate = threeDaysBefore.toISOString().split('T')[0];
732
- args.condition += ` and f_offsite_time <='${formattedDate} 23:59:59'`;
733
- } else {
734
- console.error('f_check_date不是一个有效的正整数');
735
- }
736
- }
737
- this.model.search(args.condition, args.model, args.condValue)
738
- }
739
- },
740
- ready() {
741
- if(this.safeAudit){
742
- let oa = {
743
- 'f_approved_by':'审核人',
744
- 'f_approvedstart_time':'审核开始时间',
745
- 'f_approved_time':'审核结束时间',
746
- 'f_approved':'审核状态',
747
- 'f_approved_note': '审核备注'
748
- }
749
- this.excelHeaders = Object.assign({}, this.excelHeaders, oa)
750
- }
751
- this.function = this.f
752
- //获取气表品牌
753
- this.getTableBrands()
754
- let gen = select(this)
755
- //this.pianqu()
756
- this.Mreadibook(`('${this.$login.f.orgid}')`)
757
- co(gen)
758
- this.$refs.paged.$refs.criteria.model.f_check_start = Util.toStartDateString() + ' 00:00:00'
759
- this.$refs.paged.$refs.criteria.model.f_check_end = Util.toEndDateString() + ' 23:59:59'
760
- },
761
- watch: {
762
- 'model.f_no_checkplan'(val) {
763
- if (this.model.f_no_checkplan){
764
- this.searchData.f_no_checkplan = val
765
- }
766
- if (this.model.f_no_checkplan == '有计划安检') {
767
-
768
- this.showChooser()
769
- }
770
- },
771
- 'model.condition'(val) {
772
- if (val) {
773
- this.searchData.condition = val
774
- }
775
-
776
- },
777
- 'model.f_entry'(val) {
778
- this.searchData.f_entry_status = val
779
- },
780
- 'model.f_plan_id'(val) {
781
- if (val) {
782
- this.searchData.f_plan_id = val
783
- }
784
- },
785
- 'model.f_slice_area'(val) {
786
- },
787
- 'model.f_approved'(val) {
788
- if (val) {
789
- this.searchData.f_approved = val
790
- }
791
- },
792
- }
793
-
794
- }
795
- </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="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-safe :data="$parent.$parent.searchData"
41
+ :field="$parent.$parent.excelHeaders"
42
+ :choose-col="true"
43
+ sqlurl="rs/logic/SafeExportExcel" sql-name="查找安检单" template-name='安检记录明细'></export-excel-safe>
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.approveds'
224
+ filer-key="name"
225
+ close-on-select clear-button
226
+ condition="f_approved='{}'"
227
+ :value-single="true">
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
+ <input type="text" class="input_search" v-model="model.f_card_id"
269
+ style="width: 60%" placeholder="客户卡号" condition="f_card_id like '%{}%'">
270
+ </div>
271
+ <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">
272
+ <label class="font_normal_body">距上次安检天数</label>
273
+ <input type="number" class="input_search" v-model="model.f_check_date"
274
+ style="width: 60%" placeholder="距上次安检天数" >
275
+ </div>
276
+ </div>
277
+ <modal :show.sync="$parent.$parent.showModal" v-ref:modal backdrop="false">
278
+ <div slot="modal-header" class="modal-header">
279
+ <h4 class="modal-title">
280
+ 选择计划
281
+ </h4>
282
+ </div>
283
+ <div slot="modal-body" class="modal-body">
284
+ <plan-chooser :f.sync="$parent.$parent.fun" v-ref:chooser></plan-chooser>
285
+ </div>
286
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
287
+ <button class="button_search" @click="$parent.$parent.ok">确认</button>
288
+ <button class="button_search" @click="$parent.$parent.cancel">取消</button>
289
+ </div>
290
+ </modal>
291
+ </div>
292
+ </criteria>
293
+ <data-grid class="list_area table_sy" style="overflow: hidden" :model="model" partial='list' v-ref:grid>
294
+ <template partial='head'>
295
+ <tr>
296
+ <th>
297
+ <nobr>客户编号</nobr>
298
+ </th>
299
+ <th>
300
+ <nobr>客户名称</nobr>
301
+ </th>
302
+ <th>
303
+ <nobr>客户表号</nobr>
304
+ </th>
305
+ <th>
306
+ <nobr>气表品牌</nobr>
307
+ </th>
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
+ <data-order field="f_offsite_time" name="安检时间"></data-order>
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 v-if="$parent.$parent.$parent.safeAudit">
342
+ <nobr>审核人</nobr>
343
+ </th>
344
+ <th v-if="$parent.$parent.$parent.safeAudit">
345
+ <nobr>审核起始</nobr>
346
+ </th>
347
+ <th v-if="$parent.$parent.$parent.safeAudit">
348
+ <nobr>审核结束</nobr>
349
+ </th>
350
+ <th v-if="$parent.$parent.$parent.safeAudit">
351
+ <nobr>审核状态</nobr>
352
+ </th>
353
+ <th v-if="$parent.$parent.$parent.safeAudit">
354
+ <nobr>审核未通过原因</nobr>
355
+ </th>
356
+ <th>
357
+ <nobr>操作</nobr>
358
+ </th>
359
+ <th v-if="$parent.$parent.$parent.audioshow">
360
+ <nobr>录音</nobr>
361
+ </th>
362
+ </tr>
363
+ </template>
364
+ <template partial='body'>
365
+
366
+ <td style="text-align: center">{{row.f_userinfo_code}}</td>
367
+ <td style="text-align: center">{{row.f_user_name}}</td>
368
+ <td style="text-align: center">{{row.f_meternumber}}</td>
369
+ <td style="text-align: center">{{row.f_meter_brand}}</td>
370
+ <td style="text-align: center">{{row.f_user_phone}}</td>
371
+ <td style="text-align: center">{{row.f_check_type}}</td>
372
+
373
+ <td style="text-align: center">{{ row.f_address }}</td>
374
+ <td style="text-align: center">{{ row.f_entry_status }}</td>
375
+ <td style="text-align: center">{{ row.f_plan_name }}</td>
376
+ <td style="text-align: center">{{ row.f_usegas }}</td>
377
+ <td style="text-align: center">{{ row.f_offsite_time }}</td>
378
+ <td style="text-align: center">{{ row.f_checker_name }}</td>
379
+ <td style="text-align: center">{{ row.f_mechanical_read }}</td>
380
+ <td style="text-align: center">{{ row.f_repair_approved_note }}</td>
381
+ <td style="text-align: center">{{ row.f_gas_date }}</td>
382
+ <td style="text-align: center" v-show="$parent.$parent.$parent.safeAudit">{{ row.f_approved_by }}</td>
383
+ <td style="text-align: center" v-show="$parent.$parent.$parent.safeAudit">{{ row.f_approvedstart_time }}</td>
384
+ <td style="text-align: center" v-show="$parent.$parent.$parent.safeAudit">{{ row.f_approved_time }}</td>
385
+ <td style="text-align: center" v-show="$parent.$parent.$parent.safeAudit">
386
+ {{ row.f_approved ? row.f_approved : '未审核' }}
387
+ </td>
388
+ <td style="text-align: center" v-show="$parent.$parent.$parent.safeAudit">
389
+ {{row.f_approved_note}}
390
+ </td>
391
+ <td style="text-align: center">
392
+ <button class="button_spacing button_search-1" @click='$parent.$parent.$parent.change(row)'>查看</button>
393
+
394
+
395
+ </td>
396
+ <td style="text-align: center" v-if="$parent.$parent.$parent.audioshow">
397
+ <!-- <button class="button_spacing button_search-1" @click='$parent.$parent.$parent.change(row)'>查看</button>-->
398
+ <audio controls="controls" v-if="row.f_recording1_path">
399
+ <source type="audio/mpeg" :src="'rs/audio/file/'+row.f_recording1_path">
400
+ </audio>
401
+ <!--<button type="button" class="button_new-1 button_spacing" data-toggle="dropdown"
402
+ @click="$parent.$parent.$parent.print(row)">
403
+ 打印
404
+ </button>-->
405
+ </td>
406
+ </template>
407
+ </data-grid>
408
+ </criteria-paged>
409
+ <check-msg v-if="showcheckmsg" :show="showcheckmsg" :data="checkInfo"></check-msg>
410
+ </div>
411
+ </div>
412
+ </template>
413
+
414
+ <script>
415
+ import {PagedList} from 'vue-client'
416
+ import Vue from 'vue'
417
+ import co from 'co'
418
+ import AppData from '../../../stores/AppData'
419
+ import * as Util from '../../Util'
420
+ import getNowDate from "../../../utils/getNowDate";
421
+ import HttpResetClass from "vue-client/src/plugins/HttpResetClass";
422
+ import BenzAMRRecorder from 'benz-amr-recorder'
423
+ import {toEndDateString, toStartDateString} from "../../Util";
424
+
425
+ //获取json配置文件
426
+ let asyncReady = async function (self) {
427
+ // 获取配置信息
428
+ try {
429
+ let res = await Vue.resetget(`/phone/rs/vue`, {data: {}}, {resolveMsg: null, rejectMsg: null})
430
+ Vue.config = res.data
431
+ } catch (error) {
432
+ // 忽略704,文件找不到异常R
433
+ if (error.status !== 704) {
434
+ throw error
435
+ }
436
+ }
437
+ }
438
+
439
+ let select = function* (self) {
440
+ let http = new HttpResetClass()
441
+ let getGasman = yield http.load('POST', '/rs/search', {
442
+ source: 'this.getParentByType($department$).getAllChildrens().where(row.getAttributes().get($rolestr$).indexOf($安检员$) != -1))',
443
+ userid: self.$login.f.id
444
+ }, {resolveMsg: null, rejectMsg: null})
445
+ ////tag
446
+ self.checkersid.push({label: '全部', value: ''})
447
+ getGasman.data.forEach((checker) => {
448
+ self.checkersid.push({label: checker.name, value: checker.id})
449
+ })
450
+ }
451
+
452
+ export default {
453
+ title: '安检结果查看',
454
+ data() {
455
+ let model = new PagedList('rs/sql/查找安检单', 20, {
456
+ f_plan_id: 'this.f_plan_id',
457
+ f_approved: 'this.f_approved',
458
+ f_entry_status: 'this.f_entry',
459
+ f_no_checkplan: 'this.f_no_checkplan',
460
+ f_filialeid: 'this.f_filialeid',
461
+ orderitem: "'f_offsite_time desc'"
462
+ })
463
+ model.f_check_type = ''
464
+ model.f_plan_id = ''
465
+ model.f_approved = ''
466
+ model.f_entry = ''
467
+ model.f_no_checkplan = ''
468
+ model.f_filialeid = `('${this.$login.f.orgid}')`
469
+ //model.f_check_type='民用'
470
+ // let searchData={
471
+ // f_plan_id: this.model.f_checker_id==undefined?"":this.model.f_checker_id,
472
+ // f_approved: this.model.f_approved,
473
+ // f_entry_status: this.model.f_entry,
474
+ // f_no_checkplan:this.model.f_no_checkplan[0],
475
+ // f_filialeid: this.model.f_filialeid,
476
+ // //orderitem: this.model.f_offsite_time,
477
+ // //condition:this.model.condition
478
+ // }
479
+ // model.f_subcompany = this.$login.f.f_fengongsi
480
+ return {
481
+ tableBrands: [{label: '全部', value: ''}],
482
+ audioshow: false,
483
+ safeAudit: this.$appdata.getSingleValue('安检审核') == '是' ? true : false,
484
+ searchData: {
485
+ condition: "1=1",
486
+ orderitem: "f_offsite_time desc",
487
+ f_plan_id: "",
488
+ f_approved: '',
489
+ f_entry_status: '',
490
+ f_no_checkplan: '',
491
+ f_filialeid: `('${this.$login.f.orgid}')`
492
+ },
493
+ model: model,
494
+ excelHeaders: {
495
+ //searchData:searchData,
496
+ 'f_userinfo_code': '客户编号',
497
+ 'f_user_name': '客户姓名',
498
+ 'f_meternumber':'客户表号',
499
+ 'f_user_phone':'客户电话',
500
+ 'f_check_type': '客户类型',
501
+ 'f_residential_area': '小区',
502
+ 'f_address': '客户地址',
503
+ 'f_entry_status': '安检状态',
504
+ 'f_usegas': '用气状态',
505
+ 'f_offsite_time': '安检时间',
506
+ 'f_checker_name': '安检员',
507
+ 'f_safecheck_type':'安检类型',
508
+ 'f_mechanical_read': '机械读数',
509
+ 'f_repair_approved_note': '备注',
510
+ 'f_gas_date': '开户时间',
511
+ 'f_plan_name': '计划名称'
512
+ },
513
+ fun: this.$login.f,
514
+ pcds:[],
515
+ checkersid: [],
516
+ approveds:this.$appdata.getParam('安检审核状态')?[{label: '全部', value: ''}, ...this.$appdata.getParam('安检审核状态')]:[{label: '全部', value: ''}],
517
+ safetype: this.$appdata.getParam('安检类型')?[{label: '全部', value: ''}, ...this.$appdata.getParam('安检类型')]:[{label: '全部', value: ''}],
518
+ criteriaShow: false,
519
+ checktype: this.$appdata.getParam('用户类型')?[{label: '全部', value: ''}, ...this.$appdata.getParam('用户类型')]:[{label: '全部', value: ''}],
520
+ f_check_type:[{label:'全部',value:''},{label:'民用',value:'民用'},{label:'非民用',value:'非民用'}],
521
+ showModal: false,
522
+ safe_types:this.$appdata.getParam('计划类型')?[{label: '全部', value: ''}, ...this.$appdata.getParam('计划类型')]:[{label: '全部', value: ''}],
523
+ f_approval_states: this.$appdata.getParam('安检单审核状态')?[{label: '全部', value: ''}, ...this.$appdata.getParam('安检单审核状态')]:[{label: '全部', value: ''}],
524
+ f_entry_status: this.$appdata.getParam('安检状态')?[{label: '全部', value: ''}, ...this.$appdata.getParam('安检状态')]:[{label: '全部', value: ''}],
525
+ no_checkplans: this.$appdata.getParam('有无计划')?[{label: '全部', value: ''}, ...this.$appdata.getParam('有无计划')]:[{label: '全部', value: ''}],
526
+ usegas: this.$appdata.getParam('用气状态')?[{label: '全部', value: ''}, ...this.$appdata.getParam('用气状态')]:[{label: '全部', value: ''}],
527
+ showcheckmsg: false,
528
+ checkInfo: {},
529
+ orderDefault: "'f_offsite_time'",
530
+ orderFields: {
531
+ f_offsite_time: 'no'
532
+ },
533
+ sliceArea: [],
534
+ cbc:[]
535
+ }
536
+ },
537
+ methods: {
538
+ //气表品牌查询
539
+ getTableBrands() {
540
+ new HttpResetClass().load("POST", `/rs/sql/safe_singleTable_OrderBy`,
541
+ {data: {items: "*", tablename: "t_gasbrand", orderitem: "id", condition: ` 1=1 `}},
542
+ {resolveMsg: null, rejectMsg: null}).then((resp) => {
543
+ resp.data.forEach((result) => {
544
+ this.tableBrands.push({label: result.f_meter_brand, value: result.f_meter_brand})
545
+ })
546
+ })
547
+ },
548
+ //获取省市区列表
549
+ getPcd(val){
550
+ this.pcds = [{label:'全部',value:''}]
551
+ new HttpResetClass().load("POST", `/rs/sql/safe_singleTable_OrderBy`,
552
+ {data:{items:"*",tablename:"t_pcd",orderitem:"id",condition:`f_orgid in ${val}`}},
553
+ {resolveMsg: null, rejectMsg: null}).then((pcdlist)=>{
554
+ pcdlist.data.forEach((result)=>{
555
+ this.pcds.push({label:result.f_pcd,value:result.f_pcd})
556
+ })
557
+ })
558
+ },
559
+ showaudio(){
560
+ //tag
561
+ this.audioshow=!this.audioshow
562
+ //tag
563
+ },
564
+ getmeterbook(val){
565
+ this.cbc=[]
566
+ this.cbc.push({
567
+ label:'全部',
568
+ value:''
569
+ })
570
+ if (val==''){
571
+
572
+ this.cbcs.forEach(res=>{
573
+ this.cbc.push({
574
+ label:res.f_book_name,
575
+ value:res.id
576
+ })
577
+ })
578
+ }else{
579
+ this.cbcs.forEach(res=>{
580
+ if (res.f_book_slice_area==val){
581
+ this.cbc.push({
582
+ label:res.f_book_name,
583
+ value:res.id
584
+ })
585
+ }
586
+ })
587
+ }
588
+ },
589
+ Mreadibook(val){
590
+ ////tag
591
+ ////tag
592
+ if (val){
593
+ new HttpResetClass().load('POST',`/rs/sql/tel_singleTable_OrderBy`, {data: {
594
+ items: 'name',
595
+ tablename: 't_zone',
596
+ condition: `parentid in ${val}`,
597
+ orderitem: 'id'
598
+ }}, {resolveMsg: null, rejectMsg: null}).then((res) => {
599
+ this.sliceArea=[]
600
+ this.sliceArea.push({
601
+ label:'全部',
602
+ value:''
603
+ })
604
+ res.data.forEach(ress=>{
605
+ this.sliceArea.push({
606
+ label:ress.name,
607
+ value:ress.name
608
+ })
609
+ })
610
+
611
+ })
612
+ }
613
+ },
614
+ getAllMeterBook(val){
615
+ ////tag
616
+ ////tag
617
+ this.cbcs=[]
618
+ if (val){
619
+ new HttpResetClass().load('POST',`/rs/sql/tel_singleTable_OrderBy`, {data: {
620
+ items: 'f_book_name,f_book_slice_area,id',
621
+ tablename: 't_meter_book',
622
+ condition: `f_filiale_id in ${val}`,
623
+ orderitem: 'id'
624
+ }}, {resolveMsg: null, rejectMsg: null}).then((res) => {
625
+ res.data.forEach(ress=>{
626
+ this.cbcs.push({
627
+ id:ress.id,
628
+ f_book_name:ress.f_book_name,
629
+ f_book_slice_area:ress.f_book_slice_area
630
+ })
631
+ })
632
+ this.cbc=[]
633
+ this.cbc.push({
634
+ label:'全部',
635
+ value:''
636
+ })
637
+ this.cbcs.forEach(res=>{
638
+ this.cbc.push({
639
+ label:res.f_book_name,
640
+ value:res.id
641
+ })
642
+ })
643
+ })
644
+ }
645
+ },
646
+ getRes(obj) {
647
+ this.model.f_filialeid = this.$login.convertToIn(obj.resids);
648
+ this.searchData.f_filialeid = this.$login.convertToIn(obj.resids);
649
+ this.Mreadibook(this.model.f_filialeid)
650
+ this.getAllMeterBook(this.model.f_filialeid)
651
+ this.getPcd(this.model.f_filialeid)
652
+ //this.$refs.paged.$refs.criteria.search()
653
+ },
654
+
655
+ change(row) {
656
+ asyncReady(this).then(() => {
657
+ if (row.f_safe_type == '已挂表未办卡安检'){
658
+ row.f_upload_state = '已传'
659
+ this.$goto('new-check-paper-temp', {f_plan_id: row.f_check_plan_id, item: row, role: 'view'}, 'self')
660
+ return
661
+ }
662
+ row.f_upload_state = '已传'
663
+ this.$goto('new-check-paper', {f_plan_id: row.f_check_plan_id, item: row, role: 'view'}, 'self')
664
+ }).catch(
665
+ (respanse) => {
666
+ alert('获取配置文件失败')
667
+ })
668
+ },
669
+ readConfig() {
670
+ let gen = asyncReady(this)
671
+ return co(gen)
672
+ },
673
+ showChooser() {
674
+ this.showModal = true
675
+ },
676
+ hidden() {
677
+ this.criteriaShow = !this.criteriaShow
678
+ },
679
+ refresh() {
680
+ this.$refs.paged.$refs.criteria.search()
681
+ },
682
+ ok() {
683
+ this.showModal = false
684
+ if (this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow.id) {
685
+ this.model.f_plan_id = this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow.id
686
+ this.model.f_check_plan=this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow
687
+ }
688
+ },
689
+ cancel() {
690
+ this.showModal = false
691
+ this.model.f_check_plan = {f_plan_name: '', id: ''}
692
+ this.model.f_plan_id=''
693
+ },
694
+ print(row) {
695
+ this.showcheckmsg = true
696
+ this.checkInfo = row
697
+ },
698
+
699
+ sort(field, rule) {
700
+ // 将所有排序方式设为不排序,实现相互排斥
701
+ for (let key in this.orderFields) {
702
+ if (key === field) {
703
+ this.orderFields[key] = rule
704
+ } else {
705
+ this.orderFields[key] = 'no'
706
+ }
707
+ }
708
+ // 如果新规则不排序,还原为默认排序
709
+ if (rule === 'no') {
710
+ this.model.paramSource.orderitem = `'${this.orderDefault}'`
711
+ } else {
712
+ this.model.paramSource.orderitem = `'${field} ${rule}'`
713
+ }
714
+ this.search()
715
+ },
716
+ search() {
717
+ console.log('审核通过回调')
718
+ this.$refs.paged.$refs.criteria.search()
719
+ },
720
+ selfSearch(args) {
721
+ ////tag
722
+ //args.condition+=" and f_check_type='民用'"
723
+ if(args.model.f_check_date){
724
+ const daysBefore = Number(args.model.f_check_date);
725
+ if ( daysBefore > 0) {
726
+ // 获取当前日期
727
+ const now = new Date();
728
+ // 计算三天前的日期
729
+ const threeDaysBefore = new Date(now.getTime() - (daysBefore * 24 * 60 * 60 * 1000));
730
+ // 如果需要格式化日期,可以使用Date对象的方法
731
+ var formattedDate = threeDaysBefore.toISOString().split('T')[0];
732
+ args.condition += ` and f_offsite_time <='${formattedDate} 23:59:59'`;
733
+ } else {
734
+ console.error('f_check_date不是一个有效的正整数');
735
+ }
736
+ }
737
+ this.model.search(args.condition, args.model, args.condValue)
738
+ }
739
+ },
740
+ ready() {
741
+ if(this.safeAudit){
742
+ let oa = {
743
+ 'f_approved_by':'审核人',
744
+ 'f_approvedstart_time':'审核开始时间',
745
+ 'f_approved_time':'审核结束时间',
746
+ 'f_approved':'审核状态',
747
+ 'f_approved_note': '审核备注'
748
+ }
749
+ this.excelHeaders = Object.assign({}, this.excelHeaders, oa)
750
+ }
751
+ this.function = this.f
752
+ //获取气表品牌
753
+ this.getTableBrands()
754
+ let gen = select(this)
755
+ //this.pianqu()
756
+ this.Mreadibook(`('${this.$login.f.orgid}')`)
757
+ co(gen)
758
+ this.$refs.paged.$refs.criteria.model.f_check_start = Util.toStartDateString() + ' 00:00:00'
759
+ this.$refs.paged.$refs.criteria.model.f_check_end = Util.toEndDateString() + ' 23:59:59'
760
+ },
761
+ watch: {
762
+ 'model.f_no_checkplan'(val) {
763
+ if (this.model.f_no_checkplan){
764
+ this.searchData.f_no_checkplan = val
765
+ }
766
+ if (this.model.f_no_checkplan == '有计划安检') {
767
+
768
+ this.showChooser()
769
+ }
770
+ },
771
+ 'model.condition'(val) {
772
+ if (val) {
773
+ this.searchData.condition = val
774
+ }
775
+
776
+ },
777
+ 'model.f_entry'(val) {
778
+ this.searchData.f_entry_status = val
779
+ },
780
+ 'model.f_plan_id'(val) {
781
+ if (val) {
782
+ this.searchData.f_plan_id = val
783
+ }
784
+ },
785
+ 'model.f_slice_area'(val) {
786
+ },
787
+ 'model.f_approved'(val) {
788
+ if (val) {
789
+ this.searchData.f_approved = val
790
+ }
791
+ },
792
+ }
793
+
794
+ }
795
+ </script>