safecheck-client 3.0.35-gongyi-8 → 3.0.35-gongyi-9

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,998 +1,998 @@
1
- <template>
2
- <div class="flex-row">
3
- <div class="basic-main">
4
- <criteria-paged :model="model" v-ref:paged>
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="tui.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="tui.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="tui.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_address"
26
- style="width: 60%" placeholder="客户地址" condition="tua.f_address like '%{}%'">
27
- </div>
28
-
29
- <div class="form-group col-sm-2" style="width: auto;margin-top:8px;float: right">
30
-
31
- <export-excel-safe :data="$parent.$parent.searchData"
32
- :field="$parent.$parent.excelHeaders"
33
- progress="safeGetExportProgress"
34
- sqlurl="rs/logic/SafeExportExcel" sql-name="getUserByCheckBook"
35
- template-name='用户安检明细'></export-excel-safe>
36
-
37
-
38
- <button class="button_spacing button_search" @click="search()">查询</button>
39
- <!-- <div style="float: right" class="button_spacing"-->
40
- <!-- :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"-->
41
- <!-- @click="$parent.$parent.hidden()"></div>-->
42
- </div>
43
- <div class="form-group col-sm-2" style="width: auto;margin-top:8px;float: right" v-if="$parent.$parent.permission === 'c1'">
44
-
45
-
46
- <button class="button_spacing button_search" @click="$parent.$parent.beforeCreateBook">创建安检册</button>
47
-
48
- </div>
49
- </div>
50
- <div class="row">
51
- <div class="col-sm-2 form-group" style="margin-top: 0px">
52
- <label class="font_normal_body">公&emsp;&emsp;司</label>
53
- <right-tree-safe @re-res="$parent.$parent.getResm" v-model="model.f_orgid" condition="tua.f_orgid in {}"></right-tree-safe>
54
- </div>
55
- <div class="form-group col-sm-2" style="margin-top: 0px">
56
- <label class="font_normal_body">小&emsp;&emsp;区</label>
57
- <input type="text" class="input_search" v-model="model.f_residential_area"
58
- style="width: 60%" placeholder="小区" condition="tua.f_residential_area like '%{}%'">
59
- </div>
60
- <div class="col-sm-2 form-group" style="margin-top: 0px">
61
-
62
- <label class="font_normal_body" title="用户类型">用户类型</label>
63
- <v-select :value.sync="model.f_user_type" v-model='model.f_user_type'
64
- :value-single="true" style="width: 60%"
65
- class="select_list select"
66
- :options='$parent.$parent.usertypes' placeholder='用户类型'
67
- close-on-select
68
- condition="tuf.f_user_type ='{}'"></v-select>
69
-
70
- </div>
71
- <!-- <div class="col-sm-2 form-group" style="margin: 0">
72
-
73
- <label class="font_normal_body" title="安检用户状态">用户状态</label>
74
- <v-select :value.sync="model.f_user_state" v-model='model.f_user_state'
75
- :value-single="true" style="width: 60%"
76
- class="select_list select"
77
- :options='$parent.$parent.userstates' placeholder='用户状态'
78
- close-on-select
79
- condition="tui.f_user_state ='{}'"></v-select>
80
-
81
- </div> -->
82
- <div class="col-sm-2 form-group" style="margin-top: 0px">
83
-
84
- <label class="font_normal_body" title="用气性质">用气性质</label>
85
- <v-select :value.sync="model.f_gasproperties" v-model='model.f_gasproperties'
86
- :value-single="true" style="width: 60%"
87
- class="select_list select"
88
- :options='$parent.$parent.gasproperties' placeholder='用气性质'
89
- close-on-select
90
- condition="tuf.f_gasproperties ='{}'"></v-select>
91
-
92
- </div>
93
- <div class="col-sm-2 form-group" style="margin-top: 0px">
94
-
95
- <label class="font_normal_body" title="气表类型">气表类型</label>
96
- <v-select
97
- class="select select_list"
98
- :value.sync="model.f_meter_classify"
99
- v-model="model.f_meter_classify"
100
- :options='$parent.$parent.meter_classifys'
101
- placeholder='请选择'
102
- condition="tuf.f_meter_classify='{}'"
103
- :search="false"
104
- style="width: 60%"
105
- close-on-select
106
- value-single
107
- ></v-select>
108
- </div>
109
- <div class="col-sm-2 form-group" style="margin-top: 0px">
110
-
111
- <label class="font_normal_body">气表品牌</label>
112
- <v-select :value.sync="model.gasbrand" v-model='model.gasbrand'
113
- :value-single="true" style="width: 60%"
114
- class="select_list select"
115
- :options='$parent.$parent.getgasbrand' placeholder='气表品牌'
116
- close-on-select
117
- ></v-select>
118
- </div>
119
- <div class="col-sm-2 form-group" style="margin-top: 0px">
120
-
121
- <label class="font_normal_body">气表型号</label>
122
- <v-select :value.sync="model.gasmodel" v-model='model.gasmodel'
123
- :value-single="true" style="width: 60%"
124
- class="select_list select"
125
- :options='$parent.$parent.getgasmodel' placeholder='气表型号'
126
- close-on-select
127
- condition="tuf.f_gasmodel_id = '{}'"></v-select>
128
-
129
- </div>
130
- <div class="col-sm-2 form-group" style="margin-top: 0px">
131
-
132
- <label class="font_normal_body" title="房屋类型">房屋类型</label>
133
- <v-select :value.sync="model.f_house_type" v-model='model.f_house_type'
134
- :value-single="true" style="width: 60%"
135
- class="select_list select"
136
- :options='$parent.$parent.housetypes' placeholder='房屋类型'
137
- close-on-select
138
- condition="tui.f_house_type = '{}'"></v-select>
139
-
140
- </div>
141
- <div class="col-sm-2 form-group" style="margin-top: 0px">
142
-
143
- <label class="font_normal_body" title="安装位置">安装位置</label>
144
- <v-select :value.sync="model.f_position" v-model='model.f_position'
145
- :value-single="true" style="width: 60%"
146
- class="select_list select"
147
- :options='$parent.$parent.positions' placeholder='安装位置'
148
- close-on-select
149
- condition="tuf.f_position = '{}'"></v-select>
150
-
151
- </div>
152
- <div class="col-sm-2 form-group" style="margin-top: 0px">
153
-
154
- <label class="font_normal_body" title="使用类型">使用类型</label>
155
- <v-select :value.sync="model.f_usetype" v-model='model.f_usetype'
156
- :value-single="true" style="width: 60%"
157
- class="select_list select"
158
- :options='$parent.$parent.usetypes' placeholder='使用类型'
159
- close-on-select
160
- condition="tuf.f_usetype = '{}'"></v-select>
161
-
162
- </div>
163
- <div class="form-group col-sm-2" style="margin-top: 0px">
164
- <label class="font_normal_body">开户起始</label>
165
- <datepicker
166
- placeholder='开户起始'
167
- style="width:60%"
168
- :disabled-days-of-week="[]"
169
- :format="'yyyy-MM-dd'"
170
- :show-rest-button="reset"
171
- :value.sync="model.f_startfile_time"
172
- v-model="model.f_startfile_time"
173
- condition="tui.f_createfile_date >= '{} 00:00:00'">
174
- </datepicker>
175
- </div>
176
- <div class="form-group col-sm-2"style="margin-top: 0px" >
177
- <label class="font_normal_body">开户截止</label>
178
- <datepicker
179
- placeholder='开户截止'
180
- :disabled-days-of-week="[]"
181
- style="width:60%"
182
- :format="'yyyy-MM-dd'"
183
- :show-rest-button="reset"
184
- :value.sync="model.f_endfile_time"
185
- v-model="model.f_endfile_time"
186
- condition="tui.f_createfile_date <= '{} 00:00:00'">
187
- </datepicker>
188
- </div>
189
- <div class="form-group col-sm-2" style="margin-top: 0px">
190
- <label class="font_normal_body">片&ensp;&ensp;&ensp;&ensp;区</label>
191
- <v-select
192
- class="select select_list"
193
- style="width:60%"
194
- :value.sync="model.f_book_slice_area"
195
- v-model="model.f_book_slice_area"
196
- :options='$parent.$parent.sliceArea'
197
- placeholder='片区'
198
- condition="tua.f_slice_area ='{}'"
199
- close-on-select
200
- value-single
201
- >
202
- </v-select>
203
- </div>
204
- <div class="form-group col-sm-2" style="margin-top: 0px">
205
- <label class="font_normal_body" title="安检状态">安检状态</label>
206
- <v-select
207
- class="select select_list"
208
- style="width:60%"
209
- :value.sync="model.f_last_check_state"
210
- v-model="model.f_last_check_state"
211
- :options='$parent.$parent.check_states'
212
- placeholder='安检状态'
213
- condition="tua.f_last_check_state ='{}'"
214
- close-on-select
215
- value-single
216
- >
217
- </v-select>
218
- </div>
219
- <div class="col-sm-2 form-group" style="margin-top: 0px">
220
-
221
- <label class="font_normal_body">安&ensp;检&ensp;册</label>
222
- <v-select :value.sync="model.f_check_book_id" v-model='model.f_check_book_id'
223
- :value-single="true" style="width: 60%"
224
- class="select_list select"
225
- :options='$parent.$parent.checkBooks' placeholder='安&ensp;检&ensp;册'
226
- close-on-select
227
- condition="f_check_book_id ='{}'"></v-select>
228
-
229
- </div>
230
- <div class="col-sm-2 form-group" style="margin-top: 0px">
231
-
232
- <label class="font_normal_body">是否划分</label>
233
- <v-select :value.sync="model.f_is_checkbook" v-model='model.f_is_checkbook'
234
- :value-single="true" style="width: 60%"
235
- class="select_list select"
236
- @change="$parent.$parent.changeState"
237
- :options='$parent.$parent.isCheckBook' placeholder='有无所属安检册'
238
- close-on-select
239
- condition="{}"></v-select>
240
-
241
- </div>
242
- <div class="col-sm-2 form-group" style="margin-top: 0px">
243
-
244
- <label class="font_normal_body">抄&ensp;表&ensp;员</label>
245
- <v-select :value.sync="model.f_inputtor" v-model='model.f_inputtor'
246
- :value-single="true" style="width: 60%"
247
- class="select_list select"
248
- :options='$parent.$parent.meterReader' placeholder='抄&ensp;表&ensp;员'
249
- close-on-select
250
- condition="f_inputtor ='{}'"></v-select>
251
-
252
- </div>
253
- <div class="form-group col-sm-2" style="width: auto;margin-top:8px;float: right" v-if="$parent.$parent.permission === 'c1'">
254
-
255
-
256
- <button class="button_spacing button_search" @click="$parent.$parent.addUser">添加用户</button>
257
-
258
- </div>
259
- <div class="form-group col-sm-2" style="width: auto;margin-top:8px;float: right">
260
-
261
-
262
- <button class="button_spacing button_search" @click="$parent.$parent.upUser">调整用户</button>
263
-
264
- </div>
265
- <div class="form-group col-sm-2" style="width: auto;margin-top:8px;float: right" v-if="$parent.$parent.permission === 'c1'">
266
-
267
-
268
- <button class="button_spacing button_search" @click="$parent.$parent.delUser">移除用户</button>
269
-
270
- </div>
271
- </div>
272
- </div>
273
- </criteria>
274
- <data-grid class="list_area table_sy" style="overflow: hidden" :model="model" partial='list' v-ref:grid>
275
- <template partial='head'>
276
- <tr @dblclick.stop="">
277
- <th>
278
- <nobr><input type="checkbox" v-model="$parent.$parent.$parent.bookAll"></input>全选</nobr>
279
- </th>
280
- <th>
281
- <nobr><input type="checkbox" v-model="$parent.$parent.$parent.bookCheckedAll"></input>本页全选</nobr>
282
- </th>
283
- <th>
284
- <nobr>客户姓名</nobr>
285
- </th>
286
- <th>
287
- <nobr>客户编号</nobr>
288
- </th>
289
- <th>
290
- <nobr>客户类型</nobr>
291
- </th>
292
- <th>
293
- <nobr>客户电话</nobr>
294
- </th>
295
- <th>
296
- <nobr>客户地址</nobr>
297
- </th>
298
- <th>
299
- <nobr>所属安检册</nobr>
300
- </th>
301
- </tr>
302
- </template>
303
- <template partial='body'>
304
- <td style="text-align: center">
305
- <nobr><input type="checkbox" :checked="$parent.$parent.$parent.checkModel(row)"
306
- @change="$parent.$parent.$parent.checkChange(row, $event)"></input>
307
- </nobr>
308
- </td>
309
- <td style="text-align: center">
310
- <nobr>
311
- <input type="checkbox" :checked="$parent.$parent.$parent.pageCheckModel(row)"></input>
312
- </nobr>
313
- </td>
314
- <td style="text-align: center">{{ row.f_user_name }}</td>
315
- <td style="text-align: center">{{ row.f_userinfo_code }}</td>
316
- <td style="text-align: center">{{ row.f_user_type }}</td>
317
- <td style="text-align: center">{{ row.f_user_phone }}</td>
318
- <td style="text-align: center">{{ row.f_address }}</td>
319
- <td style="text-align: center">{{ row.f_check_book_name }}</td>
320
- </template>
321
- </data-grid>
322
- </criteria-paged>
323
- </div>
324
- <modal :show.sync="showModal" :backdrop="false">
325
- <div slot="modal-header" class="modal-header">
326
- <h4 class="modal-title">
327
- 创建安检册
328
- </h4>
329
- </div>
330
- <div slot="modal-body" class="modal-body">
331
- <div v-if="true">
332
- <div class="row" style="margin-top: 10px">
333
- <!-- <label class="control-label font text-left" style="float:left;margin-left:10%;margin-top:5px">安检册名称</label>-->
334
- <!-- <div class="col-xs-8 col-md-8">-->
335
- <!-- <input type="text" class="input_search" style="width: 70%;" v-model="checkBook.f_check_book_name"/>-->
336
- <!-- </div>-->
337
- <div class="col-sm-6 form-group" style="margin-top: 20px" v-if="permission === 'c1' && showModal ">
338
- <label class="font_normal_body">安检科室</label>
339
- <right-tree islist :userid="userid" :source="source" v-on:re-res="reres" :textContent="选择科室" :selectData="''" v-ref:f_reciever>
340
- </right-tree>
341
- </div>
342
- <div class="col-sm-6 form-group" style="margin-top: 20px" v-if="permission === 'c2' ">
343
- <label class="font_normal_body">安&ensp;检&ensp;员</label>
344
- <v-select :value.sync="checkBook.f_checker_name" v-model='checkBook.f_checker_name'
345
- :value-single="true" style="width: 60%"
346
- class="select_list select"
347
- :options='checkers' placeholder='安检员'
348
- close-on-select></v-select>
349
- </div>
350
- <div class="form-group col-sm-6" style="margin-top: 20px">
351
- <label class="font_normal_body">安检册名</label>
352
- <input type="text" class="input_search" v-model="checkBook.f_check_book_name"
353
- style="width: 60%" >
354
- </div>
355
- <div class="form-group col-sm-6" style="margin-top: 20px">
356
- <label class="font_normal_body">执行日期</label>
357
- <datepicker
358
- :value.sync="checkBook.f_run_date"
359
- style="width: 60%"
360
- :format="'yyyy-MM-dd'"
361
- v-model="checkBook.f_run_date"
362
- >
363
- </datepicker>
364
- </div>
365
- <div class="form-group col-sm-6" style="margin-top: 20px">
366
- <label class="font_normal_body">执行周期</label>
367
- <input type="number" class="input_search" v-model="checkBook.f_around_time"
368
- style="width: 60%" >
369
- </div>
370
- <div class="form-group col-sm-6" style="margin-top: 20px">
371
- <label class="font_normal_body">周期单位</label>
372
- <v-select :value.sync="checkBook.f_around_unit" v-model='checkBook.f_around_unit'
373
- :value-single="true" style="width: 60%"
374
- class="select_list select"
375
- :options='aroundUnit' placeholder=''
376
- close-on-select></v-select>
377
- </div>
378
- </div>
379
- </div>
380
- </div>
381
- <div slot="modal-footer" class="modal-footer" style="text-align: center">
382
- <button class="button_search" style="margin-right: 20px" @click="ok">确认</button>
383
- <button class="button_search" @click="cancel">取消</button>
384
- </div>
385
- </modal>
386
- <modal :show.sync="showModal2" :backdrop="false">
387
- <div slot="modal-header" class="modal-header">
388
- <h4 class="modal-title">
389
- 添加用户
390
- </h4>
391
- </div>
392
- <div slot="modal-body" class="modal-body">
393
- <div v-if="true">
394
- <div class="row" style="margin-top: 10px">
395
- <div class="form-group col-sm-12" style="margin-top: 20px">
396
- <label class="font_normal_body">安&ensp;检&ensp;册</label>
397
- <v-select :value.sync="selectBook" v-model='selectBook'
398
- :value-single="true" style="width: 80%"
399
- class="select_list select"
400
- :options='checkBooks' placeholder=''
401
- close-on-select></v-select>
402
- </div>
403
- </div>
404
- </div>
405
- </div>
406
- <div slot="modal-footer" class="modal-footer" style="text-align: center">
407
- <button class="button_search" style="margin-right: 20px" @click="ok2">确认</button>
408
- <button class="button_search" @click="cancel2">取消</button>
409
- </div>
410
- </modal>
411
- <modal :show.sync="showModal3" :backdrop="false">
412
- <div slot="modal-header" class="modal-header">
413
- <h4 class="modal-title">
414
- 调整用户
415
- </h4>
416
- </div>
417
- <div slot="modal-body" class="modal-body">
418
- <div v-if="true">
419
- <div class="row" style="margin-top: 10px;text-align: center">
420
- <div class="form-group col-sm-12" style="margin-top: 20px">
421
- <label class="font_normal_body">安&ensp;检&ensp;册</label>
422
- <v-select :value.sync="selectBook" v-model='selectBook'
423
- :value-single="true" style="width: 80%"
424
- class="select_list select"
425
- :options='checkBooks' placeholder=''
426
- close-on-select></v-select>
427
- </div>
428
- </div>
429
- </div>
430
- </div>
431
- <div slot="modal-footer" class="modal-footer" style="text-align: center">
432
- <button class="button_search" style="margin-right: 20px" @click="ok3">确认</button>
433
- <button class="button_search" @click="cancel3">取消</button>
434
- </div>
435
- </modal>
436
-
437
- </div>
438
- </template>
439
-
440
- <script>
441
- import {PagedList, HttpResetClass} from 'vue-client'
442
- import * as Util from '../../components/Util'
443
-
444
- export default {
445
- title: '安检册管理',
446
- data () {
447
- let model = new PagedList('rs/sql/getUserByCheckBook', 20)
448
- return {
449
- model: model,
450
- criteriaShow: false,
451
- excelHeaders: {
452
- "f_user_name":'客户姓名',
453
- "f_userinfo_code":'客户编号',
454
- "f_user_type":'客户类型',
455
- "f_user_phone":'客户电话',
456
- "f_address":'客户地址',
457
- "f_check_book_name":'所属安检册'
458
- },
459
- checkBooks: [],
460
- meterReader:[],
461
- f_orgid: '',
462
- bookAll: false,
463
- bookCheckedAll:false,
464
- bookList: [],
465
- selectBook:'',
466
- // init:false,
467
- aroundUnit: [{label: '年', value: '年'}, {label: '月', value: '月'}, {label: '日', value: '月'}],
468
- isCheckBook: [{label: '全部', value: ''}, {label: '是', value: 'f_check_book_name is not null'}, {label: '否', value: 'f_check_book_name is null'}],
469
- isSearch: false,
470
- checkers:[],
471
- source:
472
- 'dep=this.getParentByType($organization$).getSpecialResByType($department$),' +
473
- 'tool.getFullTree(dep.where(row.hasSpecialRole($安检册二次分配$)))',
474
- userid: this.$login.f.id,
475
- checkBook: {
476
- f_check_book_name: '',
477
- f_run_date: '',
478
- f_around_time: '',
479
- f_around_unit: '',
480
- f_create_date: Util.toStandardDateString(),
481
- f_create_person: this.$login.f.name,
482
- f_orgid: this.$login.f.orgid,
483
- f_depid:'',
484
- f_dep:'',
485
- f_checker_name: '',
486
- f_checker_id:''
487
- },
488
- showModal: false,
489
- showModal2: false,
490
- showModal3: false,
491
- userstates:this.$appdata.getParam('安检用户状态')?[{label: '全部', value: ''}, ...this.$appdata.getParam('安检用户状态')]:[{label: '全部', value: ''}],
492
- usertypes:this.$appdata.getParam('用户类型')?[{label: '全部', value: ''}, ...this.$appdata.getParam('用户类型')]:[{label: '全部', value: ''}],
493
- gasproperties:this.$appdata.getParam('用气性质')?[{label: '全部', value: ''}, ...this.$appdata.getParam('用气性质')]:[{label: '全部', value: ''}],
494
- meter_classifys:this.$appdata.getParam('气表类型')?[{label: '全部', value: ''}, ...this.$appdata.getParam('气表类型')]:[{label: '全部', value: ''}],
495
- housetypes:this.$appdata.getParam('房屋类型')?[{label: '全部', value: ''}, ...this.$appdata.getParam('房屋类型')]:[{label: '全部', value: ''}],
496
- positions:this.$appdata.getParam('安装位置')?[{label: '全部', value: ''}, ...this.$appdata.getParam('安装位置')]:[{label: '全部', value: ''}],
497
- usetypes:this.$appdata.getParam('使用类型')?[{label: '全部', value: ''}, ...this.$appdata.getParam('使用类型')]:[{label: '全部', value: ''}],
498
- check_states:this.$appdata.getParam('安检状态')?[{label: '全部', value: ''}, ...this.$appdata.getParam('安检状态')]:[{label: '全部', value: ''}],
499
- meterbrands:[],
500
- sliceArea:[]
501
-
502
- }
503
- },
504
- props:['f_check_book_name','permission'],
505
- computed: {
506
- getgasbrand(){
507
- let ops=[{label:'全部',value:''}]
508
- this.meterbrands.forEach(b =>{
509
- ops.push({label:b.f_meter_brand,value:b})
510
- })
511
- return ops
512
- },
513
- getgasmodel(){
514
- let ops=[{label:'全部',value:''}]
515
- this.$refs.paged.$refs.criteria.model.gasmodel=''
516
- if(this.$refs.paged.$refs.criteria.model && this.$refs.paged.$refs.criteria.model.gasbrand){
517
- this.$refs.paged.$refs.criteria.model.gasbrand.gasmodel.forEach(b =>{
518
- ops.push({label:b.f_meter_style,value:b.id})
519
- })
520
- }
521
- return ops
522
- },
523
- searchData () {
524
- return {condition: this.model.condition}
525
- },
526
- bookCondition () {
527
- return this.model.condition
528
- },
529
- isCreateBook () {
530
- return this.$refs.paged.$refs.criteria.model.f_is_checkbook === 'f_check_book_name is null'
531
- },
532
- isChangeBook () {
533
- return this.$refs.paged.$refs.criteria.model.f_is_checkbook === 'f_check_book_name is not null'
534
- }
535
- },
536
- methods: {
537
- async getmeterreader(){
538
- this.meterReader=[]
539
- let http=new HttpResetClass()
540
- let getMeterReader = await http.load('pOST',`rs/sql/safe_singleTable_OrderBy`,{
541
- data:{
542
- items:'f_inputtor',
543
- tablename: 't_userfiles',
544
- condition:`f_orgid = '${this.$login.f.orgid}' and f_inputtor is not null ` + ` group by f_inputtor`,
545
- orderitem: 'f_inputtor'
546
- }
547
- },{resolveMsg:null,rejectMsg:"获取抄表员失败"}).then(res =>{
548
- this.meterReader = res.data.map(item=>{
549
- console.log('打印item',item)
550
- return{
551
- label : item.f_inputtor,
552
- value : item.f_inputtor
553
- }
554
-
555
- })
556
- this.meterReader.unshift({label:'全部',value:''})
557
- }
558
-
559
- )
560
- },
561
- //片区获取
562
- async getSliceArea() {
563
- let http = new HttpResetClass()
564
- let getAllArea = await http.load('POST', '/rs/search', {
565
- source: 'this.getParentByType($organization$).getAllChildrens().where(row.getType() == $zone$)',
566
- userid: this.userlogin.id
567
- }, {resolveMsg: null, rejectMsg: '获取片区出错!!!'})
568
- this.sliceArea = [{label: '全部', value: ''}]
569
- getAllArea.data.forEach((res) => {
570
- if(res.parentid==this.userlogin.orgid){
571
- this.sliceArea.push({label:res.name,value:res.name})
572
- }
573
- })
574
- console.log('片区' + this.sliceArea)
575
- },
576
- //片区改变-对应抄表册下拉重新赋值
577
- slice_areaChange(value) {
578
- console.log("下拉改变--"+value)
579
- if(!value){
580
- this.cbc=[]
581
- this.meterbooks.forEach((res) => {
582
- this.cbc.push({label: res.f_book_name, value: res.id})
583
- })
584
- }else{
585
- this.cbc=[]
586
- this.meterbooks.forEach((res) => {
587
- if(res.f_book_slice_area==value){
588
- this.cbc.push({label: res.f_book_name, value: res.id})
589
- }
590
- })
591
- }
592
- },
593
- // 获取气表品牌
594
- setConList(){
595
- new HttpResetClass().load("POST", `/rs/logic/getSaleInitData`, {data:{f_orgid:`${this.$login.f.orgid}`}}, {resolveMsg: null, rejectMsg: null}).then((res)=>{
596
- this.meterbrands=res.data.gasbrands
597
- })
598
- },
599
- reres(val){
600
- if (!val.resids || val.resids.length === 0 || val.resids[0] ==='undefined' || val.resids.length>1){
601
- return
602
- }
603
- console.log('val2',val)
604
- const resids = val.orgobj.filter(res=>res.resourcetype==='department')
605
- console.log('val2',resids)
606
- if (resids.length>0){
607
- this.checkBook.f_depid = resids[0].id
608
- this.checkBook.f_dep = resids[0].name
609
- }
610
- },
611
- clearBook(){
612
- this.checkBook ={
613
- f_check_book_name: '',
614
- f_run_date: '',
615
- f_around_time: '',
616
- f_around_unit: '',
617
- f_create_date: Util.toStandardDateString(),
618
- f_create_person: this.$login.f.name,
619
- f_orgid: this.$login.f.orgid,
620
- f_depid:'',
621
- f_dep:'',
622
- f_checker_name: '',
623
- f_checker_id:''
624
- }
625
- },
626
- async ok2() {
627
- if (!this.selectBook) {
628
- this.$showMessage('请选择安检册')
629
- return
630
- }
631
- if (this.isSearch && (this.bookAll || this.bookCheckedAll || this.bookList.length > 0) && this.model.rows.length > 0) {
632
- let userCondition = ''
633
- if (this.bookList.length < 1) {
634
- console.log('bookCondition', this.bookCondition)
635
- userCondition = this.bookCondition
636
- } else {
637
- console.log('this.bookList', JSON.stringify(this.bookList))
638
-
639
- userCondition = JSON.stringify(this.bookList).substring(JSON.stringify(this.bookList).indexOf('[') + 1, JSON.stringify(this.bookList).indexOf(']'))
640
- userCondition = 'tui.f_userinfo_id in (' + userCondition + ')'
641
- console.log('condition', userCondition)
642
- }
643
- let addUser = `update t_user_address set f_check_book_id ='${this.selectBook}'
644
- FROM
645
- t_userinfo tui
646
- LEFT JOIN t_userfiles tuf ON tui.f_userinfo_id= tuf.f_userinfo_id
647
- LEFT JOIN t_user_address tua ON tuf.f_userinfo_id = tua.f_userinfo_id
648
- LEFT JOIN t_check_book tcb ON tua.f_check_book_id= tcb.id
649
- WHERE
650
- tui.f_user_state = '正常'
651
- AND ( tuf.f_table_state= '正常' OR tuf.f_table_state= '停用' )
652
- AND ${userCondition}`
653
- await new HttpResetClass().load('POST', 'rs/logic/runSQL', {data: {sql: addUser}},
654
- {resolveMsg: null, rejectMsg: '添加用户失败'})
655
- this.$showMessage('添加用户成功')
656
- this.selectBook = ''
657
- this.clearBook()
658
- this.bookAll = false
659
- this.bookCheckedAll = false
660
- this.bookList = []
661
- this.showModal2 = false
662
- this.$refs.paged.$refs.criteria.search()
663
- }
664
- },
665
- async ok3() {
666
- if (!this.selectBook) {
667
- this.$showMessage('请选择安检册')
668
- return
669
- }
670
- if (this.isSearch && (this.bookAll || this.bookCheckedAll || this.bookList.length > 0) && this.model.rows.length > 0) {
671
- let userCondition = ''
672
- if (this.bookList.length < 1) {
673
- console.log('bookCondition', this.bookCondition)
674
- userCondition = this.bookCondition
675
- } else {
676
- console.log('this.bookList', JSON.stringify(this.bookList))
677
-
678
- userCondition = JSON.stringify(this.bookList).substring(JSON.stringify(this.bookList).indexOf('[') + 1, JSON.stringify(this.bookList).indexOf(']'))
679
- userCondition = 'tui.f_userinfo_id in (' + userCondition + ')'
680
- console.log('condition', userCondition)
681
- }
682
- let upUser = `update t_user_address set f_check_book_id ='${this.selectBook}'
683
- FROM
684
- t_userinfo tui
685
- LEFT JOIN t_userfiles tuf ON tui.f_userinfo_id= tuf.f_userinfo_id
686
- LEFT JOIN t_user_address tua ON tuf.f_userinfo_id = tua.f_userinfo_id
687
- LEFT JOIN t_check_book tcb ON tua.f_check_book_id= tcb.id
688
- WHERE
689
- tui.f_user_state = '正常'
690
- AND ( tuf.f_table_state= '正常' OR tuf.f_table_state= '停用' )
691
- AND ${userCondition}`
692
- await new HttpResetClass().load('POST', 'rs/logic/runSQL', {data: {sql: upUser}},
693
- {resolveMsg: null, rejectMsg: '调整用户失败'})
694
- this.$showMessage('调整用户成功')
695
- this.selectBook = ''
696
- this.clearBook()
697
- this.bookAll = false
698
- this.bookCheckedAll = false
699
- this.bookList = []
700
- this.showModal3 = false
701
- this.$refs.paged.$refs.criteria.search()
702
- }
703
- },
704
- cancel2(){
705
- this.selectBook = ''
706
- this.clearBook()
707
- this.bookAll = false
708
- this.bookCheckedAll = false
709
- this.bookList = []
710
- this.showModal2 = false
711
- this.$refs.paged.$refs.criteria.search()
712
- },
713
- cancel3(){
714
- this.selectBook = ''
715
- this.clearBook()
716
- this.bookAll = false
717
- this.bookCheckedAll = false
718
- this.bookList = []
719
- this.showModal3 = false
720
- this.$refs.paged.$refs.criteria.search()
721
- },
722
- addUser () {
723
- if (!this.isCreateBook) {
724
- this.$showMessage('请选择查询未划分安检册的用户')
725
- return
726
- }
727
- if (this.isSearch && (this.bookAll ||this.bookCheckedAll || this.bookList.length > 0) && this.model.rows.length > 0) {
728
- this.showModal2 = true
729
- this.freshCheckBook()
730
- return
731
- }
732
- this.$showMessage('请选择用户')
733
- },
734
- upUser () {
735
- if (!this.isChangeBook) {
736
- this.$showMessage('请选择查询已划分安检册的用户')
737
- return
738
- }
739
- if (this.isSearch && ( this.bookAll ||this.bookCheckedAll|| this.bookList.length > 0) && this.model.rows.length > 0) {
740
- this.showModal3 = true
741
- this.freshCheckBook()
742
- return
743
- }
744
- this.$showMessage('请选择用户')
745
- },
746
- async delUser () {
747
- if (!this.isChangeBook) {
748
- this.$showMessage('请选择查询已划分安检册的用户')
749
- return
750
- }
751
- if (this.isSearch && (this.bookAll ||this.bookCheckedAll|| this.bookList.length > 0) && this.model.rows.length > 0) {
752
- let userCondition= ''
753
- if (this.bookList.length < 1) {
754
- console.log('bookCondition', this.bookCondition)
755
- userCondition = this.bookCondition
756
- } else {
757
- console.log('this.bookList', JSON.stringify(this.bookList))
758
-
759
- userCondition = JSON.stringify(this.bookList).substring(JSON.stringify(this.bookList).indexOf('[') + 1, JSON.stringify(this.bookList).indexOf(']'))
760
- userCondition = 'tui.f_userinfo_id in (' + userCondition + ')'
761
- console.log('condition', userCondition)
762
- }
763
- let delUser= `update t_user_address set f_check_book_id =null
764
- FROM
765
- t_userinfo tui
766
- LEFT JOIN t_userfiles tuf ON tui.f_userinfo_id= tuf.f_userinfo_id
767
- LEFT JOIN t_user_address tua ON tuf.f_userinfo_id = tua.f_userinfo_id
768
- LEFT JOIN t_check_book tcb ON tua.f_check_book_id= tcb.id
769
- WHERE
770
- tui.f_user_state = '正常'
771
- AND ( tuf.f_table_state= '正常' OR tuf.f_table_state= '停用' )
772
- AND ${userCondition}`
773
- await new HttpResetClass().load('POST', 'rs/logic/runSQL', {data: {sql: delUser}},
774
- {resolveMsg: null, rejectMsg: '删除安检册失败'})
775
- this.$showMessage('从安检册删除所选用户成功')
776
- this.selectBook = ''
777
- this.bookAll = false
778
- this.bookCheckedAll = false
779
- this.clearBook()
780
- this.bookList = []
781
- this.showModal3 = false
782
- this.$refs.paged.$refs.criteria.search()
783
- return
784
- }
785
- this.$showMessage('请选择用户')
786
- },
787
- beforeCreateBook () {
788
- if (!this.isCreateBook) {
789
- this.$showMessage('请选择查询未划分安检册的用户')
790
- return
791
- }
792
- if (this.isSearch && (this.bookAll ||this.bookCheckedAll || this.bookList.length > 0) && this.model.rows.length > 0) {
793
- this.showModal = true
794
- return
795
- }
796
- this.$showMessage('请选择用户')
797
- },
798
- ok () {
799
- console.log('checkbook', JSON.stringify(this.checkBook))
800
- let condition = ''
801
- if (!this.checkBook.f_check_book_name) {
802
- this.$showMessage('请填写册名')
803
- return
804
- }
805
- if (!this.checkBook.f_checker_name && this.permission === 'c2') {
806
- this.$showMessage('请选择安检员')
807
- return
808
- }
809
- if (!this.checkBook.f_around_time || !this.checkBook.f_around_unit) {
810
- this.$showMessage('请选填写周期信息')
811
- return
812
- }
813
- if (!this.checkBook.f_run_date) {
814
- this.$showMessage('执行日期')
815
- return
816
- }
817
- if(this.checkBook.f_run_date < Util.toStandardDateString()){
818
- this.$showMessage('执行日期应大于当前日期')
819
- return
820
- }
821
- if (this.bookList.length < 1) {
822
- console.log('bookCondition', this.bookCondition)
823
- condition = this.bookCondition
824
- } else {
825
- console.log('this.bookList', JSON.stringify(this.bookList))
826
-
827
- condition = JSON.stringify(this.bookList).substring(JSON.stringify(this.bookList).indexOf('[') + 1, JSON.stringify(this.bookList).indexOf(']'))
828
- condition = 'tui.f_userinfo_id in (' + condition + ')'
829
- console.log('condition', condition)
830
- }
831
- let data = {
832
- checkBook: this.checkBook,
833
- sqlStr: condition
834
- }
835
- new HttpResetClass().load('post', 'rs/logic/AddCheckBook', {data}).then(res => {
836
- console.log('res=>', JSON.stringify(res))
837
- if (res.data.id) {
838
- this.$showMessage('创建成功')
839
- this.showModal = false
840
- this.isSearch = false
841
- this.clearBook()
842
- this.bookList = []
843
- this.bookAll = false
844
- this.bookCheckedAll = false
845
- this.freshCheckBook()
846
- this.$refs.paged.$refs.criteria.search()
847
- }
848
- })
849
- },
850
- changeState (val) {
851
- console.log('66666666666', val)
852
- console.log(this.model.rows)
853
- this.bookAll = false
854
- this.bookCheckedAll = false
855
- this.bookList = []
856
- if (this.$refs.paged.$refs.criteria.model.f_orgid){
857
- this.$refs.paged.$refs.criteria.search()
858
- }
859
- },
860
- cancel () {
861
- this.bookAll = false
862
- this.bookCheckedAll = false
863
- this.bookList = []
864
- this.clearBook()
865
- this.showModal = false
866
- this.$refs.paged.$refs.criteria.search()
867
- },
868
- checkModel (row) {
869
- if (this.bookAll) {
870
- //console.log('row', this.bookAll, JSON.stringify(row))
871
- return true
872
- } else {
873
- if (this.bookList.findIndex(res => res === row.f_userinfo_id) !== -1) {
874
- //console.log('row1111', JSON.stringify(row))
875
- return true
876
- } else {
877
- return false
878
- }
879
- }
880
- },
881
- pageCheckModel(row){
882
- if (this.bookCheckedAll){
883
- console.log('benye', this.bookAll, JSON.stringify(row))
884
- //全选被选中,每行row也被选中
885
- return true
886
- }else {
887
- if (this.bookList.findIndex(res => res === row.f_userinfo_id) !== -1) {
888
- //console.log('本页', JSON.stringify(row))
889
- return true
890
- } else {
891
- return false
892
- }
893
- }
894
- },
895
- checkChange (row, e) {
896
- console.log('e', e.target.checked)
897
- if (e.target.checked) {
898
- this.bookList.push(row.f_userinfo_id)
899
- } else {
900
- this.bookList.splice(this.bookList.findIndex(res => res === row.f_userinfo_id), 1)
901
- }
902
- console.log('aaaaa', JSON.stringify(this.bookList))
903
- },
904
- getRes (obj) {
905
- this.checkBook.f_orgid = obj.resids[0]
906
- },
907
- getResm (obj) {
908
- this.$refs.paged.$refs.criteria.model.f_orgid = this.$login.convertToIn(obj.resids)
909
- },
910
- hidden () {
911
- this.criteriaShow = !this.criteriaShow
912
- },
913
- selfSearch (args) {
914
- this.isSearch = true
915
- this.bookAll = false
916
- this.bookCheckedAll = false
917
- this.bookList = []
918
- // if (this.$refs.paged.$refs.criteria.model.f_orgid){
919
- // args.condition += `f_orgid in ${this.$refs.paged.$refs.criteria.model.f_orgid}`
920
- // }
921
- if (this.permission === 'c2'){
922
- args.condition +=` and tcb.f_depid = '${this.$login.f.depids}'`
923
- }
924
- if(args.model.gasbrand){
925
- args.condition +=` and tuf.f_gasbrand_id=${args.model.gasbrand.id}`
926
- }
927
- this.model.search(args.condition, args.model)
928
- },
929
- getChecker(){
930
- let http = new HttpResetClass()
931
- http.load('POST', '/rs/search', {data: {source: 'this.getParentByType($department$).getAllChildrens().where(row.getAttributes().get($rolestr$).indexOf($安检员$) != -1))', userid: this.$login.f.id}}, {resolveMsg: null, rejectMsg: null})
932
- .then(res => {
933
- console.log('res666-->' + JSON.stringify(res))
934
- this.checkers = res.data.map(res=>{
935
- return {label:res.name,value:res.name}
936
- })
937
- })
938
- },
939
- freshCheckBook () {
940
- this.checkBooks = []
941
- new HttpResetClass().load('POST', `/rs/sql/safe_singleTable_OrderBy`, {
942
- data: {
943
- items: 'id,f_check_book_name',
944
- tablename: 't_check_book',
945
- condition: (this.$refs.paged.$refs.criteria.model.f_orgid?`f_orgid in ${this.$refs.paged.$refs.criteria.model.f_orgid}`:'1=1')+(this.permission === 'c2' ? ` and f_depid='${this.$login.f.depids}'`:'') ,
946
- orderitem: 'id desc'
947
- }
948
- }, {resolveMsg: null, rejectMsg: null}).then(res => {
949
- this.checkBooks.push({label: '全部', value: ''})
950
- res.data.forEach(ress => {
951
- this.checkBooks.push({
952
- label: ress.f_check_book_name,
953
- value: ress.id
954
- })
955
- })
956
- })
957
- }
958
- },
959
- ready () {
960
- // 获取片区
961
- this.getSliceArea()
962
- this.getmeterreader()
963
- // 获取营收气表参数
964
- this.setConList()
965
- if (this.permission === 'c1'){
966
- this.$refs.paged.$refs.criteria.model.f_is_checkbook = 'f_check_book_name is null'
967
- }else if(this.permission === 'c2'){
968
- this.$refs.paged.$refs.criteria.model.f_is_checkbook = 'f_check_book_name is not null'
969
- }
970
-
971
- console.log('checkbook', this.$login.f)
972
- this.checkBook.f_orgid = this.$login.f.orgid
973
- console.log('permission2',this.permission)
974
- // this.init=true
975
- this.freshCheckBook()
976
- this.getChecker()
977
- },
978
- watch: {
979
- 'bookCheckedAll' (val) {
980
- if (val){
981
- this.$refs.paged.$refs.grid.model.rows.forEach(row=>{
982
- this.bookList.push(row.f_userinfo_id)
983
- })
984
- console.log('this.bookList', JSON.stringify(this.bookList))
985
- }else {
986
- this.bookList = []
987
- console.log('this.bookList', JSON.stringify(this.bookList))
988
- }
989
- }
990
- },
991
- }
992
- </script>
993
- <style scoped>
994
- /*.btn-group > .btn:first-child {*/
995
- /* margin-left: 0;*/
996
- /* width: 100%;*/
997
- /*}*/
998
- </style>
1
+ <template>
2
+ <div class="flex-row">
3
+ <div class="basic-main">
4
+ <criteria-paged :model="model" v-ref:paged>
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="tui.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="tui.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="tui.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_address"
26
+ style="width: 60%" placeholder="客户地址" condition="tua.f_address like '%{}%'">
27
+ </div>
28
+
29
+ <div class="form-group col-sm-2" style="width: auto;margin-top:8px;float: right">
30
+
31
+ <export-excel-safe :data="$parent.$parent.searchData"
32
+ :field="$parent.$parent.excelHeaders"
33
+ progress="safeGetExportProgress"
34
+ sqlurl="rs/logic/SafeExportExcel" sql-name="getUserByCheckBook"
35
+ template-name='用户安检明细'></export-excel-safe>
36
+
37
+
38
+ <button class="button_spacing button_search" @click="search()">查询</button>
39
+ <!-- <div style="float: right" class="button_spacing"-->
40
+ <!-- :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"-->
41
+ <!-- @click="$parent.$parent.hidden()"></div>-->
42
+ </div>
43
+ <div class="form-group col-sm-2" style="width: auto;margin-top:8px;float: right" v-if="$parent.$parent.permission === 'c1'">
44
+
45
+
46
+ <button class="button_spacing button_search" @click="$parent.$parent.beforeCreateBook">创建安检册</button>
47
+
48
+ </div>
49
+ </div>
50
+ <div class="row">
51
+ <div class="col-sm-2 form-group" style="margin-top: 0px">
52
+ <label class="font_normal_body">公&emsp;&emsp;司</label>
53
+ <right-tree-safe @re-res="$parent.$parent.getResm" v-model="model.f_orgid" condition="tua.f_orgid in {}"></right-tree-safe>
54
+ </div>
55
+ <div class="form-group col-sm-2" style="margin-top: 0px">
56
+ <label class="font_normal_body">小&emsp;&emsp;区</label>
57
+ <input type="text" class="input_search" v-model="model.f_residential_area"
58
+ style="width: 60%" placeholder="小区" condition="tua.f_residential_area like '%{}%'">
59
+ </div>
60
+ <div class="col-sm-2 form-group" style="margin-top: 0px">
61
+
62
+ <label class="font_normal_body" title="用户类型">用户类型</label>
63
+ <v-select :value.sync="model.f_user_type" v-model='model.f_user_type'
64
+ :value-single="true" style="width: 60%"
65
+ class="select_list select"
66
+ :options='$parent.$parent.usertypes' placeholder='用户类型'
67
+ close-on-select
68
+ condition="tuf.f_user_type ='{}'"></v-select>
69
+
70
+ </div>
71
+ <!-- <div class="col-sm-2 form-group" style="margin: 0">
72
+
73
+ <label class="font_normal_body" title="安检用户状态">用户状态</label>
74
+ <v-select :value.sync="model.f_user_state" v-model='model.f_user_state'
75
+ :value-single="true" style="width: 60%"
76
+ class="select_list select"
77
+ :options='$parent.$parent.userstates' placeholder='用户状态'
78
+ close-on-select
79
+ condition="tui.f_user_state ='{}'"></v-select>
80
+
81
+ </div> -->
82
+ <div class="col-sm-2 form-group" style="margin-top: 0px">
83
+
84
+ <label class="font_normal_body" title="用气性质">用气性质</label>
85
+ <v-select :value.sync="model.f_gasproperties" v-model='model.f_gasproperties'
86
+ :value-single="true" style="width: 60%"
87
+ class="select_list select"
88
+ :options='$parent.$parent.gasproperties' placeholder='用气性质'
89
+ close-on-select
90
+ condition="tuf.f_gasproperties ='{}'"></v-select>
91
+
92
+ </div>
93
+ <div class="col-sm-2 form-group" style="margin-top: 0px">
94
+
95
+ <label class="font_normal_body" title="气表类型">气表类型</label>
96
+ <v-select
97
+ class="select select_list"
98
+ :value.sync="model.f_meter_classify"
99
+ v-model="model.f_meter_classify"
100
+ :options='$parent.$parent.meter_classifys'
101
+ placeholder='请选择'
102
+ condition="tuf.f_meter_classify='{}'"
103
+ :search="false"
104
+ style="width: 60%"
105
+ close-on-select
106
+ value-single
107
+ ></v-select>
108
+ </div>
109
+ <div class="col-sm-2 form-group" style="margin-top: 0px">
110
+
111
+ <label class="font_normal_body">气表品牌</label>
112
+ <v-select :value.sync="model.gasbrand" v-model='model.gasbrand'
113
+ :value-single="true" style="width: 60%"
114
+ class="select_list select"
115
+ :options='$parent.$parent.getgasbrand' placeholder='气表品牌'
116
+ close-on-select
117
+ ></v-select>
118
+ </div>
119
+ <div class="col-sm-2 form-group" style="margin-top: 0px">
120
+
121
+ <label class="font_normal_body">气表型号</label>
122
+ <v-select :value.sync="model.gasmodel" v-model='model.gasmodel'
123
+ :value-single="true" style="width: 60%"
124
+ class="select_list select"
125
+ :options='$parent.$parent.getgasmodel' placeholder='气表型号'
126
+ close-on-select
127
+ condition="tuf.f_gasmodel_id = '{}'"></v-select>
128
+
129
+ </div>
130
+ <div class="col-sm-2 form-group" style="margin-top: 0px">
131
+
132
+ <label class="font_normal_body" title="房屋类型">房屋类型</label>
133
+ <v-select :value.sync="model.f_house_type" v-model='model.f_house_type'
134
+ :value-single="true" style="width: 60%"
135
+ class="select_list select"
136
+ :options='$parent.$parent.housetypes' placeholder='房屋类型'
137
+ close-on-select
138
+ condition="tui.f_house_type = '{}'"></v-select>
139
+
140
+ </div>
141
+ <div class="col-sm-2 form-group" style="margin-top: 0px">
142
+
143
+ <label class="font_normal_body" title="安装位置">安装位置</label>
144
+ <v-select :value.sync="model.f_position" v-model='model.f_position'
145
+ :value-single="true" style="width: 60%"
146
+ class="select_list select"
147
+ :options='$parent.$parent.positions' placeholder='安装位置'
148
+ close-on-select
149
+ condition="tuf.f_position = '{}'"></v-select>
150
+
151
+ </div>
152
+ <div class="col-sm-2 form-group" style="margin-top: 0px">
153
+
154
+ <label class="font_normal_body" title="使用类型">使用类型</label>
155
+ <v-select :value.sync="model.f_usetype" v-model='model.f_usetype'
156
+ :value-single="true" style="width: 60%"
157
+ class="select_list select"
158
+ :options='$parent.$parent.usetypes' placeholder='使用类型'
159
+ close-on-select
160
+ condition="tuf.f_usetype = '{}'"></v-select>
161
+
162
+ </div>
163
+ <div class="form-group col-sm-2" style="margin-top: 0px">
164
+ <label class="font_normal_body">开户起始</label>
165
+ <datepicker
166
+ placeholder='开户起始'
167
+ style="width:60%"
168
+ :disabled-days-of-week="[]"
169
+ :format="'yyyy-MM-dd'"
170
+ :show-rest-button="reset"
171
+ :value.sync="model.f_startfile_time"
172
+ v-model="model.f_startfile_time"
173
+ condition="tui.f_createfile_date >= '{} 00:00:00'">
174
+ </datepicker>
175
+ </div>
176
+ <div class="form-group col-sm-2"style="margin-top: 0px" >
177
+ <label class="font_normal_body">开户截止</label>
178
+ <datepicker
179
+ placeholder='开户截止'
180
+ :disabled-days-of-week="[]"
181
+ style="width:60%"
182
+ :format="'yyyy-MM-dd'"
183
+ :show-rest-button="reset"
184
+ :value.sync="model.f_endfile_time"
185
+ v-model="model.f_endfile_time"
186
+ condition="tui.f_createfile_date <= '{} 00:00:00'">
187
+ </datepicker>
188
+ </div>
189
+ <div class="form-group col-sm-2" style="margin-top: 0px">
190
+ <label class="font_normal_body">片&ensp;&ensp;&ensp;&ensp;区</label>
191
+ <v-select
192
+ class="select select_list"
193
+ style="width:60%"
194
+ :value.sync="model.f_book_slice_area"
195
+ v-model="model.f_book_slice_area"
196
+ :options='$parent.$parent.sliceArea'
197
+ placeholder='片区'
198
+ condition="tua.f_slice_area ='{}'"
199
+ close-on-select
200
+ value-single
201
+ >
202
+ </v-select>
203
+ </div>
204
+ <div class="form-group col-sm-2" style="margin-top: 0px">
205
+ <label class="font_normal_body" title="安检状态">安检状态</label>
206
+ <v-select
207
+ class="select select_list"
208
+ style="width:60%"
209
+ :value.sync="model.f_last_check_state"
210
+ v-model="model.f_last_check_state"
211
+ :options='$parent.$parent.check_states'
212
+ placeholder='安检状态'
213
+ condition="tua.f_last_check_state ='{}'"
214
+ close-on-select
215
+ value-single
216
+ >
217
+ </v-select>
218
+ </div>
219
+ <div class="col-sm-2 form-group" style="margin-top: 0px">
220
+
221
+ <label class="font_normal_body">安&ensp;检&ensp;册</label>
222
+ <v-select :value.sync="model.f_check_book_id" v-model='model.f_check_book_id'
223
+ :value-single="true" style="width: 60%"
224
+ class="select_list select"
225
+ :options='$parent.$parent.checkBooks' placeholder='安&ensp;检&ensp;册'
226
+ close-on-select
227
+ condition="f_check_book_id ='{}'"></v-select>
228
+
229
+ </div>
230
+ <div class="col-sm-2 form-group" style="margin-top: 0px">
231
+
232
+ <label class="font_normal_body">是否划分</label>
233
+ <v-select :value.sync="model.f_is_checkbook" v-model='model.f_is_checkbook'
234
+ :value-single="true" style="width: 60%"
235
+ class="select_list select"
236
+ @change="$parent.$parent.changeState"
237
+ :options='$parent.$parent.isCheckBook' placeholder='有无所属安检册'
238
+ close-on-select
239
+ condition="{}"></v-select>
240
+
241
+ </div>
242
+ <div class="col-sm-2 form-group" style="margin-top: 0px">
243
+
244
+ <label class="font_normal_body">抄&ensp;表&ensp;员</label>
245
+ <v-select :value.sync="model.f_inputtor" v-model='model.f_inputtor'
246
+ :value-single="true" style="width: 60%"
247
+ class="select_list select"
248
+ :options='$parent.$parent.meterReader' placeholder='抄&ensp;表&ensp;员'
249
+ close-on-select
250
+ condition="f_inputtor ='{}'"></v-select>
251
+
252
+ </div>
253
+ <div class="form-group col-sm-2" style="width: auto;margin-top:8px;float: right" v-if="$parent.$parent.permission === 'c1'">
254
+
255
+
256
+ <button class="button_spacing button_search" @click="$parent.$parent.addUser">添加用户</button>
257
+
258
+ </div>
259
+ <div class="form-group col-sm-2" style="width: auto;margin-top:8px;float: right">
260
+
261
+
262
+ <button class="button_spacing button_search" @click="$parent.$parent.upUser">调整用户</button>
263
+
264
+ </div>
265
+ <div class="form-group col-sm-2" style="width: auto;margin-top:8px;float: right" v-if="$parent.$parent.permission === 'c1'">
266
+
267
+
268
+ <button class="button_spacing button_search" @click="$parent.$parent.delUser">移除用户</button>
269
+
270
+ </div>
271
+ </div>
272
+ </div>
273
+ </criteria>
274
+ <data-grid class="list_area table_sy" style="overflow: hidden" :model="model" partial='list' v-ref:grid>
275
+ <template partial='head'>
276
+ <tr @dblclick.stop="">
277
+ <th>
278
+ <nobr><input type="checkbox" v-model="$parent.$parent.$parent.bookAll"></input>全选</nobr>
279
+ </th>
280
+ <th>
281
+ <nobr><input type="checkbox" v-model="$parent.$parent.$parent.bookCheckedAll"></input>本页全选</nobr>
282
+ </th>
283
+ <th>
284
+ <nobr>客户姓名</nobr>
285
+ </th>
286
+ <th>
287
+ <nobr>客户编号</nobr>
288
+ </th>
289
+ <th>
290
+ <nobr>客户类型</nobr>
291
+ </th>
292
+ <th>
293
+ <nobr>客户电话</nobr>
294
+ </th>
295
+ <th>
296
+ <nobr>客户地址</nobr>
297
+ </th>
298
+ <th>
299
+ <nobr>所属安检册</nobr>
300
+ </th>
301
+ </tr>
302
+ </template>
303
+ <template partial='body'>
304
+ <td style="text-align: center">
305
+ <nobr><input type="checkbox" :checked="$parent.$parent.$parent.checkModel(row)"
306
+ @change="$parent.$parent.$parent.checkChange(row, $event)"></input>
307
+ </nobr>
308
+ </td>
309
+ <td style="text-align: center">
310
+ <nobr>
311
+ <input type="checkbox" :checked="$parent.$parent.$parent.pageCheckModel(row)"></input>
312
+ </nobr>
313
+ </td>
314
+ <td style="text-align: center">{{ row.f_user_name }}</td>
315
+ <td style="text-align: center">{{ row.f_userinfo_code }}</td>
316
+ <td style="text-align: center">{{ row.f_user_type }}</td>
317
+ <td style="text-align: center">{{ row.f_user_phone }}</td>
318
+ <td style="text-align: center">{{ row.f_address }}</td>
319
+ <td style="text-align: center">{{ row.f_check_book_name }}</td>
320
+ </template>
321
+ </data-grid>
322
+ </criteria-paged>
323
+ </div>
324
+ <modal :show.sync="showModal" :backdrop="false">
325
+ <div slot="modal-header" class="modal-header">
326
+ <h4 class="modal-title">
327
+ 创建安检册
328
+ </h4>
329
+ </div>
330
+ <div slot="modal-body" class="modal-body">
331
+ <div v-if="true">
332
+ <div class="row" style="margin-top: 10px">
333
+ <!-- <label class="control-label font text-left" style="float:left;margin-left:10%;margin-top:5px">安检册名称</label>-->
334
+ <!-- <div class="col-xs-8 col-md-8">-->
335
+ <!-- <input type="text" class="input_search" style="width: 70%;" v-model="checkBook.f_check_book_name"/>-->
336
+ <!-- </div>-->
337
+ <div class="col-sm-6 form-group" style="margin-top: 20px" v-if="permission === 'c1' && showModal ">
338
+ <label class="font_normal_body">安检科室</label>
339
+ <right-tree islist :userid="userid" :source="source" v-on:re-res="reres" :textContent="选择科室" :selectData="''" v-ref:f_reciever>
340
+ </right-tree>
341
+ </div>
342
+ <div class="col-sm-6 form-group" style="margin-top: 20px" v-if="permission === 'c2' ">
343
+ <label class="font_normal_body">安&ensp;检&ensp;员</label>
344
+ <v-select :value.sync="checkBook.f_checker_name" v-model='checkBook.f_checker_name'
345
+ :value-single="true" style="width: 60%"
346
+ class="select_list select"
347
+ :options='checkers' placeholder='安检员'
348
+ close-on-select></v-select>
349
+ </div>
350
+ <div class="form-group col-sm-6" style="margin-top: 20px">
351
+ <label class="font_normal_body">安检册名</label>
352
+ <input type="text" class="input_search" v-model="checkBook.f_check_book_name"
353
+ style="width: 60%" >
354
+ </div>
355
+ <div class="form-group col-sm-6" style="margin-top: 20px">
356
+ <label class="font_normal_body">执行日期</label>
357
+ <datepicker
358
+ :value.sync="checkBook.f_run_date"
359
+ style="width: 60%"
360
+ :format="'yyyy-MM-dd'"
361
+ v-model="checkBook.f_run_date"
362
+ >
363
+ </datepicker>
364
+ </div>
365
+ <div class="form-group col-sm-6" style="margin-top: 20px">
366
+ <label class="font_normal_body">执行周期</label>
367
+ <input type="number" class="input_search" v-model="checkBook.f_around_time"
368
+ style="width: 60%" >
369
+ </div>
370
+ <div class="form-group col-sm-6" style="margin-top: 20px">
371
+ <label class="font_normal_body">周期单位</label>
372
+ <v-select :value.sync="checkBook.f_around_unit" v-model='checkBook.f_around_unit'
373
+ :value-single="true" style="width: 60%"
374
+ class="select_list select"
375
+ :options='aroundUnit' placeholder=''
376
+ close-on-select></v-select>
377
+ </div>
378
+ </div>
379
+ </div>
380
+ </div>
381
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
382
+ <button class="button_search" style="margin-right: 20px" @click="ok">确认</button>
383
+ <button class="button_search" @click="cancel">取消</button>
384
+ </div>
385
+ </modal>
386
+ <modal :show.sync="showModal2" :backdrop="false">
387
+ <div slot="modal-header" class="modal-header">
388
+ <h4 class="modal-title">
389
+ 添加用户
390
+ </h4>
391
+ </div>
392
+ <div slot="modal-body" class="modal-body">
393
+ <div v-if="true">
394
+ <div class="row" style="margin-top: 10px">
395
+ <div class="form-group col-sm-12" style="margin-top: 20px">
396
+ <label class="font_normal_body">安&ensp;检&ensp;册</label>
397
+ <v-select :value.sync="selectBook" v-model='selectBook'
398
+ :value-single="true" style="width: 80%"
399
+ class="select_list select"
400
+ :options='checkBooks' placeholder=''
401
+ close-on-select></v-select>
402
+ </div>
403
+ </div>
404
+ </div>
405
+ </div>
406
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
407
+ <button class="button_search" style="margin-right: 20px" @click="ok2">确认</button>
408
+ <button class="button_search" @click="cancel2">取消</button>
409
+ </div>
410
+ </modal>
411
+ <modal :show.sync="showModal3" :backdrop="false">
412
+ <div slot="modal-header" class="modal-header">
413
+ <h4 class="modal-title">
414
+ 调整用户
415
+ </h4>
416
+ </div>
417
+ <div slot="modal-body" class="modal-body">
418
+ <div v-if="true">
419
+ <div class="row" style="margin-top: 10px;text-align: center">
420
+ <div class="form-group col-sm-12" style="margin-top: 20px">
421
+ <label class="font_normal_body">安&ensp;检&ensp;册</label>
422
+ <v-select :value.sync="selectBook" v-model='selectBook'
423
+ :value-single="true" style="width: 80%"
424
+ class="select_list select"
425
+ :options='checkBooks' placeholder=''
426
+ close-on-select></v-select>
427
+ </div>
428
+ </div>
429
+ </div>
430
+ </div>
431
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
432
+ <button class="button_search" style="margin-right: 20px" @click="ok3">确认</button>
433
+ <button class="button_search" @click="cancel3">取消</button>
434
+ </div>
435
+ </modal>
436
+
437
+ </div>
438
+ </template>
439
+
440
+ <script>
441
+ import {PagedList, HttpResetClass} from 'vue-client'
442
+ import * as Util from '../../components/Util'
443
+
444
+ export default {
445
+ title: '安检册管理',
446
+ data () {
447
+ let model = new PagedList('rs/sql/getUserByCheckBook', 20)
448
+ return {
449
+ model: model,
450
+ criteriaShow: false,
451
+ excelHeaders: {
452
+ "f_user_name":'客户姓名',
453
+ "f_userinfo_code":'客户编号',
454
+ "f_user_type":'客户类型',
455
+ "f_user_phone":'客户电话',
456
+ "f_address":'客户地址',
457
+ "f_check_book_name":'所属安检册'
458
+ },
459
+ checkBooks: [],
460
+ meterReader:[],
461
+ f_orgid: '',
462
+ bookAll: false,
463
+ bookCheckedAll:false,
464
+ bookList: [],
465
+ selectBook:'',
466
+ // init:false,
467
+ aroundUnit: [{label: '年', value: '年'}, {label: '月', value: '月'}, {label: '日', value: '月'}],
468
+ isCheckBook: [{label: '全部', value: ''}, {label: '是', value: 'f_check_book_name is not null'}, {label: '否', value: 'f_check_book_name is null'}],
469
+ isSearch: false,
470
+ checkers:[],
471
+ source:
472
+ 'dep=this.getParentByType($organization$).getSpecialResByType($department$),' +
473
+ 'tool.getFullTree(dep.where(row.hasSpecialRole($安检册二次分配$)))',
474
+ userid: this.$login.f.id,
475
+ checkBook: {
476
+ f_check_book_name: '',
477
+ f_run_date: '',
478
+ f_around_time: '',
479
+ f_around_unit: '',
480
+ f_create_date: Util.toStandardDateString(),
481
+ f_create_person: this.$login.f.name,
482
+ f_orgid: this.$login.f.orgid,
483
+ f_depid:'',
484
+ f_dep:'',
485
+ f_checker_name: '',
486
+ f_checker_id:''
487
+ },
488
+ showModal: false,
489
+ showModal2: false,
490
+ showModal3: false,
491
+ userstates:this.$appdata.getParam('安检用户状态')?[{label: '全部', value: ''}, ...this.$appdata.getParam('安检用户状态')]:[{label: '全部', value: ''}],
492
+ usertypes:this.$appdata.getParam('用户类型')?[{label: '全部', value: ''}, ...this.$appdata.getParam('用户类型')]:[{label: '全部', value: ''}],
493
+ gasproperties:this.$appdata.getParam('用气性质')?[{label: '全部', value: ''}, ...this.$appdata.getParam('用气性质')]:[{label: '全部', value: ''}],
494
+ meter_classifys:this.$appdata.getParam('气表类型')?[{label: '全部', value: ''}, ...this.$appdata.getParam('气表类型')]:[{label: '全部', value: ''}],
495
+ housetypes:this.$appdata.getParam('房屋类型')?[{label: '全部', value: ''}, ...this.$appdata.getParam('房屋类型')]:[{label: '全部', value: ''}],
496
+ positions:this.$appdata.getParam('安装位置')?[{label: '全部', value: ''}, ...this.$appdata.getParam('安装位置')]:[{label: '全部', value: ''}],
497
+ usetypes:this.$appdata.getParam('使用类型')?[{label: '全部', value: ''}, ...this.$appdata.getParam('使用类型')]:[{label: '全部', value: ''}],
498
+ check_states:this.$appdata.getParam('安检状态')?[{label: '全部', value: ''}, ...this.$appdata.getParam('安检状态')]:[{label: '全部', value: ''}],
499
+ meterbrands:[],
500
+ sliceArea:[]
501
+
502
+ }
503
+ },
504
+ props:['f_check_book_name','permission'],
505
+ computed: {
506
+ getgasbrand(){
507
+ let ops=[{label:'全部',value:''}]
508
+ this.meterbrands.forEach(b =>{
509
+ ops.push({label:b.f_meter_brand,value:b})
510
+ })
511
+ return ops
512
+ },
513
+ getgasmodel(){
514
+ let ops=[{label:'全部',value:''}]
515
+ this.$refs.paged.$refs.criteria.model.gasmodel=''
516
+ if(this.$refs.paged.$refs.criteria.model && this.$refs.paged.$refs.criteria.model.gasbrand){
517
+ this.$refs.paged.$refs.criteria.model.gasbrand.gasmodel.forEach(b =>{
518
+ ops.push({label:b.f_meter_style,value:b.id})
519
+ })
520
+ }
521
+ return ops
522
+ },
523
+ searchData () {
524
+ return {condition: this.model.condition}
525
+ },
526
+ bookCondition () {
527
+ return this.model.condition
528
+ },
529
+ isCreateBook () {
530
+ return this.$refs.paged.$refs.criteria.model.f_is_checkbook === 'f_check_book_name is null'
531
+ },
532
+ isChangeBook () {
533
+ return this.$refs.paged.$refs.criteria.model.f_is_checkbook === 'f_check_book_name is not null'
534
+ }
535
+ },
536
+ methods: {
537
+ async getmeterreader(){
538
+ this.meterReader=[]
539
+ let http=new HttpResetClass()
540
+ let getMeterReader = await http.load('pOST',`rs/sql/safe_singleTable_OrderBy`,{
541
+ data:{
542
+ items:'f_inputtor',
543
+ tablename: 't_userfiles',
544
+ condition:`f_orgid = '${this.$login.f.orgid}' and f_inputtor is not null ` + ` group by f_inputtor`,
545
+ orderitem: 'f_inputtor'
546
+ }
547
+ },{resolveMsg:null,rejectMsg:"获取抄表员失败"}).then(res =>{
548
+ this.meterReader = res.data.map(item=>{
549
+ console.log('打印item',item)
550
+ return{
551
+ label : item.f_inputtor,
552
+ value : item.f_inputtor
553
+ }
554
+
555
+ })
556
+ this.meterReader.unshift({label:'全部',value:''})
557
+ }
558
+
559
+ )
560
+ },
561
+ //片区获取
562
+ async getSliceArea() {
563
+ let http = new HttpResetClass()
564
+ let getAllArea = await http.load('POST', '/rs/search', {
565
+ source: 'this.getParentByType($organization$).getAllChildrens().where(row.getType() == $zone$)',
566
+ userid: this.userlogin.id
567
+ }, {resolveMsg: null, rejectMsg: '获取片区出错!!!'})
568
+ this.sliceArea = [{label: '全部', value: ''}]
569
+ getAllArea.data.forEach((res) => {
570
+ if(res.parentid==this.userlogin.orgid){
571
+ this.sliceArea.push({label:res.name,value:res.name})
572
+ }
573
+ })
574
+ console.log('片区' + this.sliceArea)
575
+ },
576
+ //片区改变-对应抄表册下拉重新赋值
577
+ slice_areaChange(value) {
578
+ console.log("下拉改变--"+value)
579
+ if(!value){
580
+ this.cbc=[]
581
+ this.meterbooks.forEach((res) => {
582
+ this.cbc.push({label: res.f_book_name, value: res.id})
583
+ })
584
+ }else{
585
+ this.cbc=[]
586
+ this.meterbooks.forEach((res) => {
587
+ if(res.f_book_slice_area==value){
588
+ this.cbc.push({label: res.f_book_name, value: res.id})
589
+ }
590
+ })
591
+ }
592
+ },
593
+ // 获取气表品牌
594
+ setConList(){
595
+ new HttpResetClass().load("POST", `/rs/logic/getSaleInitData`, {data:{f_orgid:`${this.$login.f.orgid}`}}, {resolveMsg: null, rejectMsg: null}).then((res)=>{
596
+ this.meterbrands=res.data.gasbrands
597
+ })
598
+ },
599
+ reres(val){
600
+ if (!val.resids || val.resids.length === 0 || val.resids[0] ==='undefined' || val.resids.length>1){
601
+ return
602
+ }
603
+ console.log('val2',val)
604
+ const resids = val.orgobj.filter(res=>res.resourcetype==='department')
605
+ console.log('val2',resids)
606
+ if (resids.length>0){
607
+ this.checkBook.f_depid = resids[0].id
608
+ this.checkBook.f_dep = resids[0].name
609
+ }
610
+ },
611
+ clearBook(){
612
+ this.checkBook ={
613
+ f_check_book_name: '',
614
+ f_run_date: '',
615
+ f_around_time: '',
616
+ f_around_unit: '',
617
+ f_create_date: Util.toStandardDateString(),
618
+ f_create_person: this.$login.f.name,
619
+ f_orgid: this.$login.f.orgid,
620
+ f_depid:'',
621
+ f_dep:'',
622
+ f_checker_name: '',
623
+ f_checker_id:''
624
+ }
625
+ },
626
+ async ok2() {
627
+ if (!this.selectBook) {
628
+ this.$showMessage('请选择安检册')
629
+ return
630
+ }
631
+ if (this.isSearch && (this.bookAll || this.bookCheckedAll || this.bookList.length > 0) && this.model.rows.length > 0) {
632
+ let userCondition = ''
633
+ if (this.bookList.length < 1) {
634
+ console.log('bookCondition', this.bookCondition)
635
+ userCondition = this.bookCondition
636
+ } else {
637
+ console.log('this.bookList', JSON.stringify(this.bookList))
638
+
639
+ userCondition = JSON.stringify(this.bookList).substring(JSON.stringify(this.bookList).indexOf('[') + 1, JSON.stringify(this.bookList).indexOf(']'))
640
+ userCondition = 'tui.f_userinfo_id in (' + userCondition + ')'
641
+ console.log('condition', userCondition)
642
+ }
643
+ let addUser = `update t_user_address set f_check_book_id ='${this.selectBook}'
644
+ FROM
645
+ t_userinfo tui
646
+ LEFT JOIN t_userfiles tuf ON tui.f_userinfo_id= tuf.f_userinfo_id
647
+ LEFT JOIN t_user_address tua ON tuf.f_userinfo_id = tua.f_userinfo_id
648
+ LEFT JOIN t_check_book tcb ON tua.f_check_book_id= tcb.id
649
+ WHERE
650
+ tui.f_user_state = '正常'
651
+ AND ( tuf.f_table_state= '正常' OR tuf.f_table_state= '停用' )
652
+ AND ${userCondition}`
653
+ await new HttpResetClass().load('POST', 'rs/logic/runSQL', {data: {sql: addUser}},
654
+ {resolveMsg: null, rejectMsg: '添加用户失败'})
655
+ this.$showMessage('添加用户成功')
656
+ this.selectBook = ''
657
+ this.clearBook()
658
+ this.bookAll = false
659
+ this.bookCheckedAll = false
660
+ this.bookList = []
661
+ this.showModal2 = false
662
+ this.$refs.paged.$refs.criteria.search()
663
+ }
664
+ },
665
+ async ok3() {
666
+ if (!this.selectBook) {
667
+ this.$showMessage('请选择安检册')
668
+ return
669
+ }
670
+ if (this.isSearch && (this.bookAll || this.bookCheckedAll || this.bookList.length > 0) && this.model.rows.length > 0) {
671
+ let userCondition = ''
672
+ if (this.bookList.length < 1) {
673
+ console.log('bookCondition', this.bookCondition)
674
+ userCondition = this.bookCondition
675
+ } else {
676
+ console.log('this.bookList', JSON.stringify(this.bookList))
677
+
678
+ userCondition = JSON.stringify(this.bookList).substring(JSON.stringify(this.bookList).indexOf('[') + 1, JSON.stringify(this.bookList).indexOf(']'))
679
+ userCondition = 'tui.f_userinfo_id in (' + userCondition + ')'
680
+ console.log('condition', userCondition)
681
+ }
682
+ let upUser = `update t_user_address set f_check_book_id ='${this.selectBook}'
683
+ FROM
684
+ t_userinfo tui
685
+ LEFT JOIN t_userfiles tuf ON tui.f_userinfo_id= tuf.f_userinfo_id
686
+ LEFT JOIN t_user_address tua ON tuf.f_userinfo_id = tua.f_userinfo_id
687
+ LEFT JOIN t_check_book tcb ON tua.f_check_book_id= tcb.id
688
+ WHERE
689
+ tui.f_user_state = '正常'
690
+ AND ( tuf.f_table_state= '正常' OR tuf.f_table_state= '停用' )
691
+ AND ${userCondition}`
692
+ await new HttpResetClass().load('POST', 'rs/logic/runSQL', {data: {sql: upUser}},
693
+ {resolveMsg: null, rejectMsg: '调整用户失败'})
694
+ this.$showMessage('调整用户成功')
695
+ this.selectBook = ''
696
+ this.clearBook()
697
+ this.bookAll = false
698
+ this.bookCheckedAll = false
699
+ this.bookList = []
700
+ this.showModal3 = false
701
+ this.$refs.paged.$refs.criteria.search()
702
+ }
703
+ },
704
+ cancel2(){
705
+ this.selectBook = ''
706
+ this.clearBook()
707
+ this.bookAll = false
708
+ this.bookCheckedAll = false
709
+ this.bookList = []
710
+ this.showModal2 = false
711
+ this.$refs.paged.$refs.criteria.search()
712
+ },
713
+ cancel3(){
714
+ this.selectBook = ''
715
+ this.clearBook()
716
+ this.bookAll = false
717
+ this.bookCheckedAll = false
718
+ this.bookList = []
719
+ this.showModal3 = false
720
+ this.$refs.paged.$refs.criteria.search()
721
+ },
722
+ addUser () {
723
+ if (!this.isCreateBook) {
724
+ this.$showMessage('请选择查询未划分安检册的用户')
725
+ return
726
+ }
727
+ if (this.isSearch && (this.bookAll ||this.bookCheckedAll || this.bookList.length > 0) && this.model.rows.length > 0) {
728
+ this.showModal2 = true
729
+ this.freshCheckBook()
730
+ return
731
+ }
732
+ this.$showMessage('请选择用户')
733
+ },
734
+ upUser () {
735
+ if (!this.isChangeBook) {
736
+ this.$showMessage('请选择查询已划分安检册的用户')
737
+ return
738
+ }
739
+ if (this.isSearch && ( this.bookAll ||this.bookCheckedAll|| this.bookList.length > 0) && this.model.rows.length > 0) {
740
+ this.showModal3 = true
741
+ this.freshCheckBook()
742
+ return
743
+ }
744
+ this.$showMessage('请选择用户')
745
+ },
746
+ async delUser () {
747
+ if (!this.isChangeBook) {
748
+ this.$showMessage('请选择查询已划分安检册的用户')
749
+ return
750
+ }
751
+ if (this.isSearch && (this.bookAll ||this.bookCheckedAll|| this.bookList.length > 0) && this.model.rows.length > 0) {
752
+ let userCondition= ''
753
+ if (this.bookList.length < 1) {
754
+ console.log('bookCondition', this.bookCondition)
755
+ userCondition = this.bookCondition
756
+ } else {
757
+ console.log('this.bookList', JSON.stringify(this.bookList))
758
+
759
+ userCondition = JSON.stringify(this.bookList).substring(JSON.stringify(this.bookList).indexOf('[') + 1, JSON.stringify(this.bookList).indexOf(']'))
760
+ userCondition = 'tui.f_userinfo_id in (' + userCondition + ')'
761
+ console.log('condition', userCondition)
762
+ }
763
+ let delUser= `update t_user_address set f_check_book_id =null
764
+ FROM
765
+ t_userinfo tui
766
+ LEFT JOIN t_userfiles tuf ON tui.f_userinfo_id= tuf.f_userinfo_id
767
+ LEFT JOIN t_user_address tua ON tuf.f_userinfo_id = tua.f_userinfo_id
768
+ LEFT JOIN t_check_book tcb ON tua.f_check_book_id= tcb.id
769
+ WHERE
770
+ tui.f_user_state = '正常'
771
+ AND ( tuf.f_table_state= '正常' OR tuf.f_table_state= '停用' )
772
+ AND ${userCondition}`
773
+ await new HttpResetClass().load('POST', 'rs/logic/runSQL', {data: {sql: delUser}},
774
+ {resolveMsg: null, rejectMsg: '删除安检册失败'})
775
+ this.$showMessage('从安检册删除所选用户成功')
776
+ this.selectBook = ''
777
+ this.bookAll = false
778
+ this.bookCheckedAll = false
779
+ this.clearBook()
780
+ this.bookList = []
781
+ this.showModal3 = false
782
+ this.$refs.paged.$refs.criteria.search()
783
+ return
784
+ }
785
+ this.$showMessage('请选择用户')
786
+ },
787
+ beforeCreateBook () {
788
+ if (!this.isCreateBook) {
789
+ this.$showMessage('请选择查询未划分安检册的用户')
790
+ return
791
+ }
792
+ if (this.isSearch && (this.bookAll ||this.bookCheckedAll || this.bookList.length > 0) && this.model.rows.length > 0) {
793
+ this.showModal = true
794
+ return
795
+ }
796
+ this.$showMessage('请选择用户')
797
+ },
798
+ ok () {
799
+ console.log('checkbook', JSON.stringify(this.checkBook))
800
+ let condition = ''
801
+ if (!this.checkBook.f_check_book_name) {
802
+ this.$showMessage('请填写册名')
803
+ return
804
+ }
805
+ if (!this.checkBook.f_checker_name && this.permission === 'c2') {
806
+ this.$showMessage('请选择安检员')
807
+ return
808
+ }
809
+ if (!this.checkBook.f_around_time || !this.checkBook.f_around_unit) {
810
+ this.$showMessage('请选填写周期信息')
811
+ return
812
+ }
813
+ if (!this.checkBook.f_run_date) {
814
+ this.$showMessage('执行日期')
815
+ return
816
+ }
817
+ if(this.checkBook.f_run_date < Util.toStandardDateString()){
818
+ this.$showMessage('执行日期应大于当前日期')
819
+ return
820
+ }
821
+ if (this.bookList.length < 1) {
822
+ console.log('bookCondition', this.bookCondition)
823
+ condition = this.bookCondition
824
+ } else {
825
+ console.log('this.bookList', JSON.stringify(this.bookList))
826
+
827
+ condition = JSON.stringify(this.bookList).substring(JSON.stringify(this.bookList).indexOf('[') + 1, JSON.stringify(this.bookList).indexOf(']'))
828
+ condition = 'tui.f_userinfo_id in (' + condition + ')'
829
+ console.log('condition', condition)
830
+ }
831
+ let data = {
832
+ checkBook: this.checkBook,
833
+ sqlStr: condition
834
+ }
835
+ new HttpResetClass().load('post', 'rs/logic/AddCheckBook', {data}).then(res => {
836
+ console.log('res=>', JSON.stringify(res))
837
+ if (res.data.id) {
838
+ this.$showMessage('创建成功')
839
+ this.showModal = false
840
+ this.isSearch = false
841
+ this.clearBook()
842
+ this.bookList = []
843
+ this.bookAll = false
844
+ this.bookCheckedAll = false
845
+ this.freshCheckBook()
846
+ this.$refs.paged.$refs.criteria.search()
847
+ }
848
+ })
849
+ },
850
+ changeState (val) {
851
+ console.log('66666666666', val)
852
+ console.log(this.model.rows)
853
+ this.bookAll = false
854
+ this.bookCheckedAll = false
855
+ this.bookList = []
856
+ if (this.$refs.paged.$refs.criteria.model.f_orgid){
857
+ this.$refs.paged.$refs.criteria.search()
858
+ }
859
+ },
860
+ cancel () {
861
+ this.bookAll = false
862
+ this.bookCheckedAll = false
863
+ this.bookList = []
864
+ this.clearBook()
865
+ this.showModal = false
866
+ this.$refs.paged.$refs.criteria.search()
867
+ },
868
+ checkModel (row) {
869
+ if (this.bookAll) {
870
+ //console.log('row', this.bookAll, JSON.stringify(row))
871
+ return true
872
+ } else {
873
+ if (this.bookList.findIndex(res => res === row.f_userinfo_id) !== -1) {
874
+ //console.log('row1111', JSON.stringify(row))
875
+ return true
876
+ } else {
877
+ return false
878
+ }
879
+ }
880
+ },
881
+ pageCheckModel(row){
882
+ if (this.bookCheckedAll){
883
+ console.log('benye', this.bookAll, JSON.stringify(row))
884
+ //全选被选中,每行row也被选中
885
+ return true
886
+ }else {
887
+ if (this.bookList.findIndex(res => res === row.f_userinfo_id) !== -1) {
888
+ //console.log('本页', JSON.stringify(row))
889
+ return true
890
+ } else {
891
+ return false
892
+ }
893
+ }
894
+ },
895
+ checkChange (row, e) {
896
+ console.log('e', e.target.checked)
897
+ if (e.target.checked) {
898
+ this.bookList.push(row.f_userinfo_id)
899
+ } else {
900
+ this.bookList.splice(this.bookList.findIndex(res => res === row.f_userinfo_id), 1)
901
+ }
902
+ console.log('aaaaa', JSON.stringify(this.bookList))
903
+ },
904
+ getRes (obj) {
905
+ this.checkBook.f_orgid = obj.resids[0]
906
+ },
907
+ getResm (obj) {
908
+ this.$refs.paged.$refs.criteria.model.f_orgid = this.$login.convertToIn(obj.resids)
909
+ },
910
+ hidden () {
911
+ this.criteriaShow = !this.criteriaShow
912
+ },
913
+ selfSearch (args) {
914
+ this.isSearch = true
915
+ this.bookAll = false
916
+ this.bookCheckedAll = false
917
+ this.bookList = []
918
+ // if (this.$refs.paged.$refs.criteria.model.f_orgid){
919
+ // args.condition += `f_orgid in ${this.$refs.paged.$refs.criteria.model.f_orgid}`
920
+ // }
921
+ if (this.permission === 'c2'){
922
+ args.condition +=` and tcb.f_depid = '${this.$login.f.depids}'`
923
+ }
924
+ if(args.model.gasbrand){
925
+ args.condition +=` and tuf.f_gasbrand_id=${args.model.gasbrand.id}`
926
+ }
927
+ this.model.search(args.condition, args.model)
928
+ },
929
+ getChecker(){
930
+ let http = new HttpResetClass()
931
+ http.load('POST', '/rs/search', {data: {source: 'this.getParentByType($department$).getAllChildrens().where(row.getAttributes().get($rolestr$).indexOf($安检员$) != -1))', userid: this.$login.f.id}}, {resolveMsg: null, rejectMsg: null})
932
+ .then(res => {
933
+ console.log('res666-->' + JSON.stringify(res))
934
+ this.checkers = res.data.map(res=>{
935
+ return {label:res.name,value:res.name}
936
+ })
937
+ })
938
+ },
939
+ freshCheckBook () {
940
+ this.checkBooks = []
941
+ new HttpResetClass().load('POST', `/rs/sql/safe_singleTable_OrderBy`, {
942
+ data: {
943
+ items: 'id,f_check_book_name',
944
+ tablename: 't_check_book',
945
+ condition: (this.$refs.paged.$refs.criteria.model.f_orgid?`f_orgid in ${this.$refs.paged.$refs.criteria.model.f_orgid}`:'1=1')+(this.permission === 'c2' ? ` and f_depid='${this.$login.f.depids}'`:'') ,
946
+ orderitem: 'id desc'
947
+ }
948
+ }, {resolveMsg: null, rejectMsg: null}).then(res => {
949
+ this.checkBooks.push({label: '全部', value: ''})
950
+ res.data.forEach(ress => {
951
+ this.checkBooks.push({
952
+ label: ress.f_check_book_name,
953
+ value: ress.id
954
+ })
955
+ })
956
+ })
957
+ }
958
+ },
959
+ ready () {
960
+ // 获取片区
961
+ this.getSliceArea()
962
+ this.getmeterreader()
963
+ // 获取营收气表参数
964
+ this.setConList()
965
+ if (this.permission === 'c1'){
966
+ this.$refs.paged.$refs.criteria.model.f_is_checkbook = 'f_check_book_name is null'
967
+ }else if(this.permission === 'c2'){
968
+ this.$refs.paged.$refs.criteria.model.f_is_checkbook = 'f_check_book_name is not null'
969
+ }
970
+
971
+ console.log('checkbook', this.$login.f)
972
+ this.checkBook.f_orgid = this.$login.f.orgid
973
+ console.log('permission2',this.permission)
974
+ // this.init=true
975
+ this.freshCheckBook()
976
+ this.getChecker()
977
+ },
978
+ watch: {
979
+ 'bookCheckedAll' (val) {
980
+ if (val){
981
+ this.$refs.paged.$refs.grid.model.rows.forEach(row=>{
982
+ this.bookList.push(row.f_userinfo_id)
983
+ })
984
+ console.log('this.bookList', JSON.stringify(this.bookList))
985
+ }else {
986
+ this.bookList = []
987
+ console.log('this.bookList', JSON.stringify(this.bookList))
988
+ }
989
+ }
990
+ },
991
+ }
992
+ </script>
993
+ <style scoped>
994
+ /*.btn-group > .btn:first-child {*/
995
+ /* margin-left: 0;*/
996
+ /* width: 100%;*/
997
+ /*}*/
998
+ </style>