safecheck-client 3.0.35-gongyi-6 → 3.0.35-gongyi-8

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,961 +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="form-group col-sm-2" style="width: auto;margin-top:8px;float: right" v-if="$parent.$parent.permission === 'c1'">
243
-
244
-
245
- <button class="button_spacing button_search" @click="$parent.$parent.addUser">添加用户</button>
246
-
247
- </div>
248
- <div class="form-group col-sm-2" style="width: auto;margin-top:8px;float: right">
249
-
250
-
251
- <button class="button_spacing button_search" @click="$parent.$parent.upUser">调整用户</button>
252
-
253
- </div>
254
- <div class="form-group col-sm-2" style="width: auto;margin-top:8px;float: right" v-if="$parent.$parent.permission === 'c1'">
255
-
256
-
257
- <button class="button_spacing button_search" @click="$parent.$parent.delUser">移除用户</button>
258
-
259
- </div>
260
- </div>
261
- </div>
262
- </criteria>
263
- <data-grid class="list_area table_sy" style="overflow: hidden" :model="model" partial='list' v-ref:grid>
264
- <template partial='head'>
265
- <tr @dblclick.stop="">
266
- <th>
267
- <nobr><input type="checkbox" v-model="$parent.$parent.$parent.bookAll"></input>全选</nobr>
268
- </th>
269
- <th>
270
- <nobr><input type="checkbox" v-model="$parent.$parent.$parent.bookCheckedAll"></input>本页全选</nobr>
271
- </th>
272
- <th>
273
- <nobr>客户姓名</nobr>
274
- </th>
275
- <th>
276
- <nobr>客户编号</nobr>
277
- </th>
278
- <th>
279
- <nobr>客户类型</nobr>
280
- </th>
281
- <th>
282
- <nobr>客户电话</nobr>
283
- </th>
284
- <th>
285
- <nobr>客户地址</nobr>
286
- </th>
287
- <th>
288
- <nobr>所属安检册</nobr>
289
- </th>
290
- </tr>
291
- </template>
292
- <template partial='body'>
293
- <td style="text-align: center">
294
- <nobr><input type="checkbox" :checked="$parent.$parent.$parent.checkModel(row)"
295
- @change="$parent.$parent.$parent.checkChange(row, $event)"></input>
296
- </nobr>
297
- </td>
298
- <td style="text-align: center">
299
- <nobr>
300
- <input type="checkbox" :checked="$parent.$parent.$parent.pageCheckModel(row)"></input>
301
- </nobr>
302
- </td>
303
- <td style="text-align: center">{{ row.f_user_name }}</td>
304
- <td style="text-align: center">{{ row.f_userinfo_code }}</td>
305
- <td style="text-align: center">{{ row.f_user_type }}</td>
306
- <td style="text-align: center">{{ row.f_user_phone }}</td>
307
- <td style="text-align: center">{{ row.f_address }}</td>
308
- <td style="text-align: center">{{ row.f_check_book_name }}</td>
309
- </template>
310
- </data-grid>
311
- </criteria-paged>
312
- </div>
313
- <modal :show.sync="showModal" :backdrop="false">
314
- <div slot="modal-header" class="modal-header">
315
- <h4 class="modal-title">
316
- 创建安检册
317
- </h4>
318
- </div>
319
- <div slot="modal-body" class="modal-body">
320
- <div v-if="true">
321
- <div class="row" style="margin-top: 10px">
322
- <!-- <label class="control-label font text-left" style="float:left;margin-left:10%;margin-top:5px">安检册名称</label>-->
323
- <!-- <div class="col-xs-8 col-md-8">-->
324
- <!-- <input type="text" class="input_search" style="width: 70%;" v-model="checkBook.f_check_book_name"/>-->
325
- <!-- </div>-->
326
- <div class="col-sm-6 form-group" style="margin-top: 20px" v-if="permission === 'c1' && showModal ">
327
- <label class="font_normal_body">安检科室</label>
328
- <right-tree islist :userid="userid" :source="source" v-on:re-res="reres" :textContent="选择科室" :selectData="''" v-ref:f_reciever>
329
- </right-tree>
330
- </div>
331
- <div class="col-sm-6 form-group" style="margin-top: 20px" v-if="permission === 'c2' ">
332
- <label class="font_normal_body">安&ensp;检&ensp;员</label>
333
- <v-select :value.sync="checkBook.f_checker_name" v-model='checkBook.f_checker_name'
334
- :value-single="true" style="width: 60%"
335
- class="select_list select"
336
- :options='checkers' placeholder='安检员'
337
- close-on-select></v-select>
338
- </div>
339
- <div class="form-group col-sm-6" style="margin-top: 20px">
340
- <label class="font_normal_body">安检册名</label>
341
- <input type="text" class="input_search" v-model="checkBook.f_check_book_name"
342
- style="width: 60%" >
343
- </div>
344
- <div class="form-group col-sm-6" style="margin-top: 20px">
345
- <label class="font_normal_body">执行日期</label>
346
- <datepicker
347
- :value.sync="checkBook.f_run_date"
348
- style="width: 60%"
349
- :format="'yyyy-MM-dd'"
350
- v-model="checkBook.f_run_date"
351
- >
352
- </datepicker>
353
- </div>
354
- <div class="form-group col-sm-6" style="margin-top: 20px">
355
- <label class="font_normal_body">执行周期</label>
356
- <input type="number" class="input_search" v-model="checkBook.f_around_time"
357
- style="width: 60%" >
358
- </div>
359
- <div class="form-group col-sm-6" style="margin-top: 20px">
360
- <label class="font_normal_body">周期单位</label>
361
- <v-select :value.sync="checkBook.f_around_unit" v-model='checkBook.f_around_unit'
362
- :value-single="true" style="width: 60%"
363
- class="select_list select"
364
- :options='aroundUnit' placeholder=''
365
- close-on-select></v-select>
366
- </div>
367
- </div>
368
- </div>
369
- </div>
370
- <div slot="modal-footer" class="modal-footer" style="text-align: center">
371
- <button class="button_search" style="margin-right: 20px" @click="ok">确认</button>
372
- <button class="button_search" @click="cancel">取消</button>
373
- </div>
374
- </modal>
375
- <modal :show.sync="showModal2" :backdrop="false">
376
- <div slot="modal-header" class="modal-header">
377
- <h4 class="modal-title">
378
- 添加用户
379
- </h4>
380
- </div>
381
- <div slot="modal-body" class="modal-body">
382
- <div v-if="true">
383
- <div class="row" style="margin-top: 10px">
384
- <div class="form-group col-sm-12" style="margin-top: 20px">
385
- <label class="font_normal_body">安&ensp;检&ensp;册</label>
386
- <v-select :value.sync="selectBook" v-model='selectBook'
387
- :value-single="true" style="width: 80%"
388
- class="select_list select"
389
- :options='checkBooks' placeholder=''
390
- close-on-select></v-select>
391
- </div>
392
- </div>
393
- </div>
394
- </div>
395
- <div slot="modal-footer" class="modal-footer" style="text-align: center">
396
- <button class="button_search" style="margin-right: 20px" @click="ok2">确认</button>
397
- <button class="button_search" @click="cancel2">取消</button>
398
- </div>
399
- </modal>
400
- <modal :show.sync="showModal3" :backdrop="false">
401
- <div slot="modal-header" class="modal-header">
402
- <h4 class="modal-title">
403
- 调整用户
404
- </h4>
405
- </div>
406
- <div slot="modal-body" class="modal-body">
407
- <div v-if="true">
408
- <div class="row" style="margin-top: 10px;text-align: center">
409
- <div class="form-group col-sm-12" style="margin-top: 20px">
410
- <label class="font_normal_body">安&ensp;检&ensp;册</label>
411
- <v-select :value.sync="selectBook" v-model='selectBook'
412
- :value-single="true" style="width: 80%"
413
- class="select_list select"
414
- :options='checkBooks' placeholder=''
415
- close-on-select></v-select>
416
- </div>
417
- </div>
418
- </div>
419
- </div>
420
- <div slot="modal-footer" class="modal-footer" style="text-align: center">
421
- <button class="button_search" style="margin-right: 20px" @click="ok3">确认</button>
422
- <button class="button_search" @click="cancel3">取消</button>
423
- </div>
424
- </modal>
425
-
426
- </div>
427
- </template>
428
-
429
- <script>
430
- import {PagedList, HttpResetClass} from 'vue-client'
431
- import * as Util from '../../components/Util'
432
-
433
- export default {
434
- title: '安检册管理',
435
- data () {
436
- let model = new PagedList('rs/sql/getUserByCheckBook', 20)
437
- return {
438
- model: model,
439
- criteriaShow: false,
440
- excelHeaders: {
441
- "f_user_name":'客户姓名',
442
- "f_userinfo_code":'客户编号',
443
- "f_user_type":'客户类型',
444
- "f_user_phone":'客户电话',
445
- "f_address":'客户地址',
446
- "f_check_book_name":'所属安检册'
447
- },
448
- checkBooks: [],
449
- f_orgid: '',
450
- bookAll: false,
451
- bookCheckedAll:false,
452
- bookList: [],
453
- selectBook:'',
454
- // init:false,
455
- aroundUnit: [{label: '', value: '年'}, {label: '月', value: '月'}, {label: '日', value: '月'}],
456
- isCheckBook: [{label: '全部', value: ''}, {label: '是', value: 'f_check_book_name is not null'}, {label: '否', value: 'f_check_book_name is null'}],
457
- isSearch: false,
458
- checkers:[],
459
- source:
460
- 'dep=this.getParentByType($organization$).getSpecialResByType($department$),' +
461
- 'tool.getFullTree(dep.where(row.hasSpecialRole($安检册二次分配$)))',
462
- userid: this.$login.f.id,
463
- checkBook: {
464
- f_check_book_name: '',
465
- f_run_date: '',
466
- f_around_time: '',
467
- f_around_unit: '',
468
- f_create_date: Util.toStandardDateString(),
469
- f_create_person: this.$login.f.name,
470
- f_orgid: this.$login.f.orgid,
471
- f_depid:'',
472
- f_dep:'',
473
- f_checker_name: '',
474
- f_checker_id:''
475
- },
476
- showModal: false,
477
- showModal2: false,
478
- showModal3: false,
479
- userstates:this.$appdata.getParam('安检用户状态')?[{label: '全部', value: ''}, ...this.$appdata.getParam('安检用户状态')]:[{label: '全部', value: ''}],
480
- usertypes:this.$appdata.getParam('用户类型')?[{label: '全部', value: ''}, ...this.$appdata.getParam('用户类型')]:[{label: '全部', value: ''}],
481
- gasproperties:this.$appdata.getParam('用气性质')?[{label: '全部', value: ''}, ...this.$appdata.getParam('用气性质')]:[{label: '全部', value: ''}],
482
- meter_classifys:this.$appdata.getParam('气表类型')?[{label: '全部', value: ''}, ...this.$appdata.getParam('气表类型')]:[{label: '全部', value: ''}],
483
- housetypes:this.$appdata.getParam('房屋类型')?[{label: '全部', value: ''}, ...this.$appdata.getParam('房屋类型')]:[{label: '全部', value: ''}],
484
- positions:this.$appdata.getParam('安装位置')?[{label: '全部', value: ''}, ...this.$appdata.getParam('安装位置')]:[{label: '全部', value: ''}],
485
- usetypes:this.$appdata.getParam('使用类型')?[{label: '全部', value: ''}, ...this.$appdata.getParam('使用类型')]:[{label: '全部', value: ''}],
486
- check_states:this.$appdata.getParam('安检状态')?[{label: '全部', value: ''}, ...this.$appdata.getParam('安检状态')]:[{label: '全部', value: ''}],
487
- meterbrands:[],
488
- sliceArea:[]
489
-
490
- }
491
- },
492
- props:['permission'],
493
- computed: {
494
- getgasbrand(){
495
- let ops=[{label:'全部',value:''}]
496
- this.meterbrands.forEach(b =>{
497
- ops.push({label:b.f_meter_brand,value:b})
498
- })
499
- return ops
500
- },
501
- getgasmodel(){
502
- let ops=[{label:'全部',value:''}]
503
- this.$refs.paged.$refs.criteria.model.gasmodel=''
504
- if(this.$refs.paged.$refs.criteria.model && this.$refs.paged.$refs.criteria.model.gasbrand){
505
- this.$refs.paged.$refs.criteria.model.gasbrand.gasmodel.forEach(b =>{
506
- ops.push({label:b.f_meter_style,value:b.id})
507
- })
508
- }
509
- return ops
510
- },
511
- searchData () {
512
- return {condition: this.model.condition}
513
- },
514
- bookCondition () {
515
- return this.model.condition
516
- },
517
- isCreateBook () {
518
- return this.$refs.paged.$refs.criteria.model.f_is_checkbook === 'f_check_book_name is null'
519
- },
520
- isChangeBook () {
521
- return this.$refs.paged.$refs.criteria.model.f_is_checkbook === 'f_check_book_name is not null'
522
- }
523
- },
524
- methods: {
525
- //片区获取
526
- async getSliceArea() {
527
- let http = new HttpResetClass()
528
- let getAllArea = await http.load('POST', '/rs/search', {
529
- source: 'this.getParentByType($organization$).getAllChildrens().where(row.getType() == $zone$)',
530
- userid: this.userlogin.id
531
- }, {resolveMsg: null, rejectMsg: '获取片区出错!!!'})
532
- this.sliceArea = [{label: '全部', value: ''}]
533
- getAllArea.data.forEach((res) => {
534
- if(res.parentid==this.userlogin.orgid){
535
- this.sliceArea.push({label:res.name,value:res.name})
536
- }
537
- })
538
- console.log('片区' + this.sliceArea)
539
- },
540
- //片区改变-对应抄表册下拉重新赋值
541
- slice_areaChange(value) {
542
- console.log("下拉改变--"+value)
543
- if(!value){
544
- this.cbc=[]
545
- this.meterbooks.forEach((res) => {
546
- this.cbc.push({label: res.f_book_name, value: res.id})
547
- })
548
- }else{
549
- this.cbc=[]
550
- this.meterbooks.forEach((res) => {
551
- if(res.f_book_slice_area==value){
552
- this.cbc.push({label: res.f_book_name, value: res.id})
553
- }
554
- })
555
- }
556
- },
557
- // 获取气表品牌
558
- setConList(){
559
- new HttpResetClass().load("POST", `/rs/logic/getSaleInitData`, {data:{f_orgid:`${this.$login.f.orgid}`}}, {resolveMsg: null, rejectMsg: null}).then((res)=>{
560
- this.meterbrands=res.data.gasbrands
561
- })
562
- },
563
- reres(val){
564
- if (!val.resids || val.resids.length === 0 || val.resids[0] ==='undefined' || val.resids.length>1){
565
- return
566
- }
567
- console.log('val2',val)
568
- const resids = val.orgobj.filter(res=>res.resourcetype==='department')
569
- console.log('val2',resids)
570
- if (resids.length>0){
571
- this.checkBook.f_depid = resids[0].id
572
- this.checkBook.f_dep = resids[0].name
573
- }
574
- },
575
- clearBook(){
576
- this.checkBook ={
577
- f_check_book_name: '',
578
- f_run_date: '',
579
- f_around_time: '',
580
- f_around_unit: '',
581
- f_create_date: Util.toStandardDateString(),
582
- f_create_person: this.$login.f.name,
583
- f_orgid: this.$login.f.orgid,
584
- f_depid:'',
585
- f_dep:'',
586
- f_checker_name: '',
587
- f_checker_id:''
588
- }
589
- },
590
- async ok2() {
591
- if (!this.selectBook) {
592
- this.$showMessage('请选择安检册')
593
- return
594
- }
595
- if (this.isSearch && (this.bookAll || this.bookCheckedAll || this.bookList.length > 0) && this.model.rows.length > 0) {
596
- let userCondition = ''
597
- if (this.bookList.length < 1) {
598
- console.log('bookCondition', this.bookCondition)
599
- userCondition = this.bookCondition
600
- } else {
601
- console.log('this.bookList', JSON.stringify(this.bookList))
602
-
603
- userCondition = JSON.stringify(this.bookList).substring(JSON.stringify(this.bookList).indexOf('[') + 1, JSON.stringify(this.bookList).indexOf(']'))
604
- userCondition = 'tui.f_userinfo_id in (' + userCondition + ')'
605
- console.log('condition', userCondition)
606
- }
607
- let addUser = `update t_user_address set f_check_book_id ='${this.selectBook}'
608
- FROM
609
- t_userinfo tui
610
- LEFT JOIN t_userfiles tuf ON tui.f_userinfo_id= tuf.f_userinfo_id
611
- LEFT JOIN t_user_address tua ON tuf.f_userinfo_id = tua.f_userinfo_id
612
- LEFT JOIN t_check_book tcb ON tua.f_check_book_id= tcb.id
613
- WHERE
614
- tui.f_user_state = '正常'
615
- AND ( tuf.f_table_state= '正常' OR tuf.f_table_state= '停用' )
616
- AND ${userCondition}`
617
- await new HttpResetClass().load('POST', 'rs/logic/runSQL', {data: {sql: addUser}},
618
- {resolveMsg: null, rejectMsg: '添加用户失败'})
619
- this.$showMessage('添加用户成功')
620
- this.selectBook = ''
621
- this.clearBook()
622
- this.bookAll = false
623
- this.bookCheckedAll = false
624
- this.bookList = []
625
- this.showModal2 = false
626
- this.$refs.paged.$refs.criteria.search()
627
- }
628
- },
629
- async ok3() {
630
- if (!this.selectBook) {
631
- this.$showMessage('请选择安检册')
632
- return
633
- }
634
- if (this.isSearch && (this.bookAll || this.bookCheckedAll || this.bookList.length > 0) && this.model.rows.length > 0) {
635
- let userCondition = ''
636
- if (this.bookList.length < 1) {
637
- console.log('bookCondition', this.bookCondition)
638
- userCondition = this.bookCondition
639
- } else {
640
- console.log('this.bookList', JSON.stringify(this.bookList))
641
-
642
- userCondition = JSON.stringify(this.bookList).substring(JSON.stringify(this.bookList).indexOf('[') + 1, JSON.stringify(this.bookList).indexOf(']'))
643
- userCondition = 'tui.f_userinfo_id in (' + userCondition + ')'
644
- console.log('condition', userCondition)
645
- }
646
- let upUser = `update t_user_address set f_check_book_id ='${this.selectBook}'
647
- FROM
648
- t_userinfo tui
649
- LEFT JOIN t_userfiles tuf ON tui.f_userinfo_id= tuf.f_userinfo_id
650
- LEFT JOIN t_user_address tua ON tuf.f_userinfo_id = tua.f_userinfo_id
651
- LEFT JOIN t_check_book tcb ON tua.f_check_book_id= tcb.id
652
- WHERE
653
- tui.f_user_state = '正常'
654
- AND ( tuf.f_table_state= '正常' OR tuf.f_table_state= '停用' )
655
- AND ${userCondition}`
656
- await new HttpResetClass().load('POST', 'rs/logic/runSQL', {data: {sql: upUser}},
657
- {resolveMsg: null, rejectMsg: '调整用户失败'})
658
- this.$showMessage('调整用户成功')
659
- this.selectBook = ''
660
- this.clearBook()
661
- this.bookAll = false
662
- this.bookCheckedAll = false
663
- this.bookList = []
664
- this.showModal3 = false
665
- this.$refs.paged.$refs.criteria.search()
666
- }
667
- },
668
- cancel2(){
669
- this.selectBook = ''
670
- this.clearBook()
671
- this.bookAll = false
672
- this.bookCheckedAll = false
673
- this.bookList = []
674
- this.showModal2 = false
675
- this.$refs.paged.$refs.criteria.search()
676
- },
677
- cancel3(){
678
- this.selectBook = ''
679
- this.clearBook()
680
- this.bookAll = false
681
- this.bookCheckedAll = false
682
- this.bookList = []
683
- this.showModal3 = false
684
- this.$refs.paged.$refs.criteria.search()
685
- },
686
- addUser () {
687
- if (!this.isCreateBook) {
688
- this.$showMessage('请选择查询未划分安检册的用户')
689
- return
690
- }
691
- if (this.isSearch && (this.bookAll ||this.bookCheckedAll || this.bookList.length > 0) && this.model.rows.length > 0) {
692
- this.showModal2 = true
693
- this.freshCheckBook()
694
- return
695
- }
696
- this.$showMessage('请选择用户')
697
- },
698
- upUser () {
699
- if (!this.isChangeBook) {
700
- this.$showMessage('请选择查询已划分安检册的用户')
701
- return
702
- }
703
- if (this.isSearch && ( this.bookAll ||this.bookCheckedAll|| this.bookList.length > 0) && this.model.rows.length > 0) {
704
- this.showModal3 = true
705
- this.freshCheckBook()
706
- return
707
- }
708
- this.$showMessage('请选择用户')
709
- },
710
- async delUser () {
711
- if (!this.isChangeBook) {
712
- this.$showMessage('请选择查询已划分安检册的用户')
713
- return
714
- }
715
- if (this.isSearch && (this.bookAll ||this.bookCheckedAll|| this.bookList.length > 0) && this.model.rows.length > 0) {
716
- let userCondition= ''
717
- if (this.bookList.length < 1) {
718
- console.log('bookCondition', this.bookCondition)
719
- userCondition = this.bookCondition
720
- } else {
721
- console.log('this.bookList', JSON.stringify(this.bookList))
722
-
723
- userCondition = JSON.stringify(this.bookList).substring(JSON.stringify(this.bookList).indexOf('[') + 1, JSON.stringify(this.bookList).indexOf(']'))
724
- userCondition = 'tui.f_userinfo_id in (' + userCondition + ')'
725
- console.log('condition', userCondition)
726
- }
727
- let delUser= `update t_user_address set f_check_book_id =null
728
- FROM
729
- t_userinfo tui
730
- LEFT JOIN t_userfiles tuf ON tui.f_userinfo_id= tuf.f_userinfo_id
731
- LEFT JOIN t_user_address tua ON tuf.f_userinfo_id = tua.f_userinfo_id
732
- LEFT JOIN t_check_book tcb ON tua.f_check_book_id= tcb.id
733
- WHERE
734
- tui.f_user_state = '正常'
735
- AND ( tuf.f_table_state= '正常' OR tuf.f_table_state= '停用' )
736
- AND ${userCondition}`
737
- await new HttpResetClass().load('POST', 'rs/logic/runSQL', {data: {sql: delUser}},
738
- {resolveMsg: null, rejectMsg: '删除安检册失败'})
739
- this.$showMessage('从安检册删除所选用户成功')
740
- this.selectBook = ''
741
- this.bookAll = false
742
- this.bookCheckedAll = false
743
- this.clearBook()
744
- this.bookList = []
745
- this.showModal3 = false
746
- this.$refs.paged.$refs.criteria.search()
747
- return
748
- }
749
- this.$showMessage('请选择用户')
750
- },
751
- beforeCreateBook () {
752
- if (!this.isCreateBook) {
753
- this.$showMessage('请选择查询未划分安检册的用户')
754
- return
755
- }
756
- if (this.isSearch && (this.bookAll ||this.bookCheckedAll || this.bookList.length > 0) && this.model.rows.length > 0) {
757
- this.showModal = true
758
- return
759
- }
760
- this.$showMessage('请选择用户')
761
- },
762
- ok () {
763
- console.log('checkbook', JSON.stringify(this.checkBook))
764
- let condition = ''
765
- if (!this.checkBook.f_check_book_name) {
766
- this.$showMessage('请填写册名')
767
- return
768
- }
769
- if (!this.checkBook.f_checker_name && this.permission === 'c2') {
770
- this.$showMessage('请选择安检员')
771
- return
772
- }
773
- if (!this.checkBook.f_around_time || !this.checkBook.f_around_unit) {
774
- this.$showMessage('请选填写周期信息')
775
- return
776
- }
777
- if (!this.checkBook.f_run_date) {
778
- this.$showMessage('执行日期')
779
- return
780
- }
781
- if(this.checkBook.f_run_date < Util.toStandardDateString()){
782
- this.$showMessage('执行日期应大于当前日期')
783
- return
784
- }
785
- if (this.bookList.length < 1) {
786
- console.log('bookCondition', this.bookCondition)
787
- condition = this.bookCondition
788
- } else {
789
- console.log('this.bookList', JSON.stringify(this.bookList))
790
-
791
- condition = JSON.stringify(this.bookList).substring(JSON.stringify(this.bookList).indexOf('[') + 1, JSON.stringify(this.bookList).indexOf(']'))
792
- condition = 'tui.f_userinfo_id in (' + condition + ')'
793
- console.log('condition', condition)
794
- }
795
- let data = {
796
- checkBook: this.checkBook,
797
- sqlStr: condition
798
- }
799
- new HttpResetClass().load('post', 'rs/logic/AddCheckBook', {data}).then(res => {
800
- console.log('res=>', JSON.stringify(res))
801
- if (res.data.id) {
802
- this.$showMessage('创建成功')
803
- this.showModal = false
804
- this.isSearch = false
805
- this.clearBook()
806
- this.bookList = []
807
- this.bookAll = false
808
- this.bookCheckedAll = false
809
- this.freshCheckBook()
810
- this.$refs.paged.$refs.criteria.search()
811
- }
812
- })
813
- },
814
- changeState (val) {
815
- console.log('66666666666', val)
816
- console.log(this.model.rows)
817
- this.bookAll = false
818
- this.bookCheckedAll = false
819
- this.bookList = []
820
- if (this.$refs.paged.$refs.criteria.model.f_orgid){
821
- this.$refs.paged.$refs.criteria.search()
822
- }
823
- },
824
- cancel () {
825
- this.bookAll = false
826
- this.bookCheckedAll = false
827
- this.bookList = []
828
- this.clearBook()
829
- this.showModal = false
830
- this.$refs.paged.$refs.criteria.search()
831
- },
832
- checkModel (row) {
833
- if (this.bookAll) {
834
- //console.log('row', this.bookAll, JSON.stringify(row))
835
- return true
836
- } else {
837
- if (this.bookList.findIndex(res => res === row.f_userinfo_id) !== -1) {
838
- //console.log('row1111', JSON.stringify(row))
839
- return true
840
- } else {
841
- return false
842
- }
843
- }
844
- },
845
- pageCheckModel(row){
846
- if (this.bookCheckedAll){
847
- console.log('benye', this.bookAll, JSON.stringify(row))
848
- //全选被选中,每行row也被选中
849
- return true
850
- }else {
851
- if (this.bookList.findIndex(res => res === row.f_userinfo_id) !== -1) {
852
- //console.log('本页', JSON.stringify(row))
853
- return true
854
- } else {
855
- return false
856
- }
857
- }
858
- },
859
- checkChange (row, e) {
860
- console.log('e', e.target.checked)
861
- if (e.target.checked) {
862
- this.bookList.push(row.f_userinfo_id)
863
- } else {
864
- this.bookList.splice(this.bookList.findIndex(res => res === row.f_userinfo_id), 1)
865
- }
866
- console.log('aaaaa', JSON.stringify(this.bookList))
867
- },
868
- getRes (obj) {
869
- this.checkBook.f_orgid = obj.resids[0]
870
- },
871
- getResm (obj) {
872
- this.$refs.paged.$refs.criteria.model.f_orgid = this.$login.convertToIn(obj.resids)
873
- },
874
- hidden () {
875
- this.criteriaShow = !this.criteriaShow
876
- },
877
- selfSearch (args) {
878
- this.isSearch = true
879
- this.bookAll = false
880
- this.bookCheckedAll = false
881
- this.bookList = []
882
- // if (this.$refs.paged.$refs.criteria.model.f_orgid){
883
- // args.condition += `f_orgid in ${this.$refs.paged.$refs.criteria.model.f_orgid}`
884
- // }
885
- if (this.permission === 'c2'){
886
- args.condition +=` and tcb.f_depid = '${this.$login.f.depids}'`
887
- }
888
- if(args.model.gasbrand){
889
- args.condition +=` and tuf.f_gasbrand_id=${args.model.gasbrand.id}`
890
- }
891
- this.model.search(args.condition, args.model)
892
- },
893
- getChecker(){
894
- let http = new HttpResetClass()
895
- 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})
896
- .then(res => {
897
- console.log('res666-->' + JSON.stringify(res))
898
- this.checkers = res.data.map(res=>{
899
- return {label:res.name,value:res.name}
900
- })
901
- })
902
- },
903
- freshCheckBook () {
904
- this.checkBooks = []
905
- new HttpResetClass().load('POST', `/rs/sql/safe_singleTable_OrderBy`, {
906
- data: {
907
- items: 'id,f_check_book_name',
908
- tablename: 't_check_book',
909
- 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}'`:'') ,
910
- orderitem: 'id desc'
911
- }
912
- }, {resolveMsg: null, rejectMsg: null}).then(res => {
913
- this.checkBooks.push({label: '全部', value: ''})
914
- res.data.forEach(ress => {
915
- this.checkBooks.push({
916
- label: ress.f_check_book_name,
917
- value: ress.id
918
- })
919
- })
920
- })
921
- }
922
- },
923
- ready () {
924
- // 获取片区
925
- this.getSliceArea()
926
- // 获取营收气表参数
927
- this.setConList()
928
- if (this.permission === 'c1'){
929
- this.$refs.paged.$refs.criteria.model.f_is_checkbook = 'f_check_book_name is null'
930
- }else if(this.permission === 'c2'){
931
- this.$refs.paged.$refs.criteria.model.f_is_checkbook = 'f_check_book_name is not null'
932
- }
933
-
934
- console.log('checkbook', this.$login.f)
935
- this.checkBook.f_orgid = this.$login.f.orgid
936
- console.log('permission2',this.permission)
937
- // this.init=true
938
- this.freshCheckBook()
939
- this.getChecker()
940
- },
941
- watch: {
942
- 'bookCheckedAll' (val) {
943
- if (val){
944
- this.$refs.paged.$refs.grid.model.rows.forEach(row=>{
945
- this.bookList.push(row.f_userinfo_id)
946
- })
947
- console.log('this.bookList', JSON.stringify(this.bookList))
948
- }else {
949
- this.bookList = []
950
- console.log('this.bookList', JSON.stringify(this.bookList))
951
- }
952
- }
953
- },
954
- }
955
- </script>
956
- <style scoped>
957
- /*.btn-group > .btn:first-child {*/
958
- /* margin-left: 0;*/
959
- /* width: 100%;*/
960
- /*}*/
961
- </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>