manage-client-xy 3.2.29 → 3.2.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. package/build/dev-server.js +2 -2
  2. package/package.json +1 -1
  3. package/src/components/sale/businessquery/AreaGeneralQuery.vue +715 -715
  4. package/src/components/sale/businessquery/CMHGasQuery.vue +441 -441
  5. package/src/components/sale/businessquery/ChangeMeterQuery.vue +659 -659
  6. package/src/components/sale/businessquery/ChangeUserQuery.vue +403 -403
  7. package/src/components/sale/businessquery/ChargeQuery.vue +1027 -1027
  8. package/src/components/sale/businessquery/DisableQuery.vue +433 -433
  9. package/src/components/sale/businessquery/EnableQuery.vue +422 -422
  10. package/src/components/sale/businessquery/FMYGasQuery.vue +440 -440
  11. package/src/components/sale/businessquery/FillCardQuery.vue +522 -522
  12. package/src/components/sale/businessquery/FillGasQuery.vue +506 -506
  13. package/src/components/sale/businessquery/HandplanQuery.vue +728 -728
  14. package/src/components/sale/businessquery/LogQuery.vue +301 -301
  15. package/src/components/sale/businessquery/NewAccountQuery.vue +518 -518
  16. package/src/components/sale/businessquery/OtherChargeQuery.vue +432 -432
  17. package/src/components/sale/businessquery/RecordQuery.vue +399 -399
  18. package/src/components/sale/businessquery/ResidentialQuery.vue +417 -417
  19. package/src/components/sale/businessquery/ReverseQuery.vue +459 -459
  20. package/src/components/sale/businessquery/SellingHand.vue +408 -408
  21. package/src/components/sale/businessquery/TransferQuery.vue +589 -589
  22. package/src/components/sale/businessquery/cancelAccountQuery.vue +518 -518
  23. package/src/components/sale/filesquery/UserQuery.vue +796 -796
@@ -1,518 +1,518 @@
1
- <template>
2
- <div id="unit" class="flex-row">
3
- <div class="basic-main">
4
- <div class="flex" v-if="!showinfo">
5
-
6
- <criteria-paged :model="model" v-ref:paged @sort="sort">
7
- <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
8
- <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
9
- <div class="row">
10
- <div class="col-sm-2 form-group">
11
- <label class="font_normal_body">客户编号</label>
12
- <input type="text" style="width:60%" class="input_search" v-model="model.f_userinfo_code"
13
- condition="f_userinfo_code = '{}' " placeholder="客户编号">
14
- </div>
15
- <div class="col-sm-2 form-group">
16
- <label for="startDate" class="font_normal_body">开始日期</label>
17
- <datepicker id="startDate" placeholder="开始日期" style="width:60%"
18
- v-model="model.startDate"
19
- :value.sync="model.startDate"
20
- :format="'yyyy-MM-dd'"
21
- :show-reset-button="true"
22
- condition="f_operate_date >= to_date('{} 00:00:00','yyyy-mm-dd hh24:mi:ss')">
23
- </datepicker>
24
- </div>
25
- <div class="col-sm-2 form-group">
26
- <label for="endDate" class="font_normal_body">结束日期</label>
27
- <datepicker id="endDate" placeholder="结束日期" style="width:60%"
28
- v-model="model.endDate"
29
- :value.sync="model.endDate"
30
- :format="'yyyy-MM-dd'"
31
- :show-reset-button="true"
32
- condition="f_operate_date <= to_date('{} 23:59:59','yyyy-mm-dd hh24:mi:ss')">
33
- </datepicker>
34
- </div>
35
- <div class="col-sm-2 form-group">
36
- <label class="font_normal_body">气表品牌</label>
37
- <v-select :value.sync="model.f_meter_brand"
38
- v-model="model.f_meter_brand"
39
- :options='$parent.$parent.meterbrands' placeholder='请选择'
40
- condition="f_meter_brand = '{}'"
41
- close-on-select></v-select>
42
- </div>
43
- <div class="span" style="float:right;">
44
- <button class="button_search button_spacing" @click="search()">查询</button>
45
- <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
46
- <!--<button class="btn btn-default" @click="$parent.$parent.stamp()">打印</button>-->
47
-
48
- <export-excel :data="$parent.$parent.getCondition"
49
- :field="$parent.$parent.getfield"
50
- sqlurl="rs/logic/exportfile" sql-name="newAccountQuery" template-name='开户查询导出'
51
- :choose-col="true"></export-excel>
52
-
53
- <div style="float: right" class="button_spacing" :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}" @click="$parent.$parent.hidden()"></div>
54
- </div>
55
- </div>
56
- <div class="row" v-show="$parent.$parent.criteriaShow">
57
- <div class="col-sm-2 form-group">
58
- <label class="font_normal_body">用户分类</label>
59
- <v-select :value.sync="model.f_user_type"
60
- @change="$parent.$parent.userTypeChange"
61
- :options='$parent.$parent.usertypes' placeholder='请选择' v-model="model.f_user_type"
62
- condition="f_user_type = '{}'"
63
- close-on-select></v-select>
64
- </div>
65
- <div class="col-sm-2 form-group">
66
- <label class="font_normal_body">用户类型</label>
67
- <v-select :value.sync="model.f_user_mold"
68
- @change="$parent.$parent.userMoldChange"
69
- :options='$parent.$parent.usermold' placeholder='请选择' v-model="model.f_user_mold"
70
- close-on-select></v-select>
71
- </div>
72
- <div class="col-sm-2 form-group">
73
- <label class="font_normal_body">用气性质</label>
74
- <v-select :value.sync="model.f_gasproperties" v-model="model.f_gasproperties"
75
- :options='$parent.$parent.gasproperties' placeholder='请选择'
76
- condition="f_gasproperties = '{}'"
77
- close-on-select></v-select>
78
- </div>
79
- <res-select-group style="col-sm-2 form-group" :initres="$parent.$parent.initres" @re-res="$parent.$parent.getRes" v-ref:sel></res-select-group>
80
- <div class="col-sm-2 form-group">
81
- <label class="font_normal_body">客户地址</label>
82
- <input type="text" style="width:60%" class="input_search" v-model="model.f_address"
83
- condition="f_address like '%{}%'" placeholder='客户地址'>
84
- </div>
85
- <div class="col-sm-2 form-group">
86
- <label class="font_normal_body">客户名称</label>
87
- <input type="text" style="width:60%" class="input_search" v-model="model.f_user_name"
88
- condition="f_user_name like '%{}%'" placeholder="客户名称">
89
- </div>
90
- <div class="col-sm-2 form-group">
91
- <label for="f_area_id" class="font_normal_body">小区编码</label>
92
- <input id="f_area_id" type="text" style="width:60%" class="input_search" v-model="model.f_area_id"
93
- condition="f_area_id = '{}'" placeholder='小区编码'>
94
- </div>
95
- <div class="col-sm-2 form-group">
96
- <label class="font_normal_body">&nbsp;&nbsp;&nbsp;小区&nbsp;&nbsp;&nbsp;</label>
97
- <v-select :value.sync="model.f_residential_area"
98
- class="select_list select"
99
- enter-push
100
- multiple = "true"
101
- v-model="model.f_residential_area"
102
- style="width: 60%"
103
- :options='$parent.$parent.residentialArea' placeholder='选择小区'
104
- close-on-select>
105
- </v-select>
106
- </div>
107
- <div class="col-sm-2 form-group">
108
- <label class="font_normal_body">销户人</label>
109
- <input type="text" style="width:60%" class="input_search" v-model="model.f_operator"
110
- condition="f_operator like '%{}%'" placeholder="销户人">
111
- </div>
112
- <div class="col-sm-2 form-group">
113
- <label class="font_normal_body">房产地址</label>
114
- <input class="input_search" condition="f_house_address = '{}'"
115
- placeholder='房产地址'
116
- style="width:60%" type="text" v-model="model.f_house_address">
117
- </div>
118
- <div class="col-sm-2 form-group">
119
- <label class="font_normal_body">用途</label>
120
- <input class="input_search" condition="f_property_usage = '{}'"
121
- placeholder='用途'
122
- style="width:60%" type="text" v-model="model.f_property_usage">
123
- </div>
124
- <div class="col-sm-2 form-group">
125
- <label class="font_normal_body">房型</label>
126
- <input class="input_search" condition="f_house_type = '{}'"
127
- placeholder='房型'
128
- style="width:60%" type="text" v-model="model.f_house_type">
129
- </div>
130
- <div class="col-sm-2 form-group">
131
- <label class="font_normal_body">是否一户多表</label>
132
- <input class="input_search" condition="f_is_multi_meter = '{}'"
133
- placeholder='是否一户多表'
134
- style="width:60%" type="text" v-model="model.f_is_multi_meter">
135
- </div>
136
- <div class="col-sm-2 form-group">
137
- <label class="font_normal_body">关联ID</label>
138
- <input class="input_search" condition="f_house_id = '{}'"
139
- placeholder='关联ID'
140
- style="width:60%" type="text" v-model="model.f_house_id">
141
- </div>
142
- </div>
143
- </div>
144
- </criteria>
145
-
146
- <data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid>
147
- <template partial='head'>
148
- <tr>
149
- <th>
150
- <nobr>客户编号</nobr>
151
- </th>
152
- <th>
153
- <nobr>客户名称</nobr>
154
- </th>
155
- <th>
156
- <data-order field="f_address" name="客户地址"></data-order>
157
- </th>
158
- <th>
159
- <nobr>客户电话</nobr>
160
- </th>
161
- <th>
162
- <nobr>身份证号</nobr>
163
- </th>
164
- <th>
165
- <nobr>气价名称</nobr>
166
- </th>
167
- <th>
168
- <nobr>销户时间</nobr>
169
- </th>
170
- <th>
171
- <nobr>表号</nobr>
172
- </th>
173
- <th>
174
- <nobr>置换员</nobr>
175
- </th>
176
- <th>
177
- <nobr>通气时间</nobr>
178
- </th>
179
- <th>
180
- <nobr>用气性质</nobr>
181
- </th>
182
- <th>
183
- <nobr>累购气量</nobr>
184
- </th>
185
- <th>
186
- <nobr>气表品牌</nobr>
187
- </th>
188
- <th>
189
- <nobr>销户原因</nobr>
190
- </th>
191
- <th>
192
- <nobr>销户人</nobr>
193
- </th>
194
- </tr>
195
- </template>
196
- <template partial='body'>
197
- <td style="text-align: center;">
198
- <span @click="$parent.$parent.$parent.showmsg(row)"><a>{{row.f_userinfo_code}}</a></span>
199
- </td>
200
- <td style="text-align: center;">
201
- <nobr>{{row.f_user_name}}</nobr>
202
- </td>
203
- <td style="text-align: center;">
204
- <nobr>{{row.f_address}}</nobr>
205
- </td>
206
- <td style="text-align: center;">
207
- <nobr>{{row.f_user_phone}}</nobr>
208
- </td>
209
- <td style="text-align: center;">
210
- <nobr>{{row.f_idnumber}}</nobr>
211
- </td>
212
- <td style="text-align: center;">
213
- <nobr>{{row.f_price_name}}</nobr>
214
- </td>
215
- <td style="text-align: center;">
216
- <nobr>{{row.f_operate_date}}</nobr>
217
- </td>
218
- <td style="text-align: center;">
219
- <nobr>{{row.f_meternumber}}</nobr>
220
- </td>
221
- <td style="text-align: center;">
222
- <nobr>{{row.f_gas_person}}</nobr>
223
- </td>
224
- <td style="text-align: center;">
225
- <nobr>{{row.f_gas_date}}</nobr>
226
- </td>
227
- <td style="text-align: center;">
228
- <nobr>{{row.f_gasproperties}}</nobr>
229
- </td>
230
- <td style="text-align: center;">
231
- <nobr>{{row.f_total_gas}}</nobr>
232
- </td>
233
- <td style="text-align: center;">
234
- <nobr>{{row.f_meter_brand}}</nobr>
235
- </td>
236
- <td style="text-align: center;">
237
- <nobr>{{row.f_comments}}</nobr>
238
- </td>
239
- <td style="text-align: center;">
240
- <nobr>{{row.f_operator}}</nobr>
241
- </td>
242
- </template>
243
- <template partial='foot'></template>
244
- </data-grid>
245
- </criteria-paged>
246
- </div>
247
- <div v-if="showinfo">
248
- <user-info-detail-manage :f_userinfo_id="rowdata.f_userinfo_id" @cancel-main="cancel"></user-info-detail-manage>
249
- </div>
250
- </div>
251
- </div>
252
- </template>
253
-
254
- <script>
255
- import {HttpResetClass, PagedList} from 'vue-client'
256
- import defaultPrint from '../config/DefaultPrint'
257
- import exportConfig from '../config/exportConfig'
258
- import plugins from '../../../plugins/GetLoginInfoService'
259
-
260
- let readySomething = async function (self) {
261
- self.$refs.paged.$refs.cri.model.startDate = self.$login.toStandardDateString()
262
- self.$refs.paged.$refs.cri.model.endDate = self.$login.toStandardDateString()
263
- // await self.$refs.paged.$refs.cri.search()
264
- await self.$MagLoadParams.loadParam()
265
- self.initParams()
266
-
267
- self.sumsmodel = self.$refs.paged.$refs.grid.model.sums
268
- }
269
- export default {
270
- title: '销户统计',
271
- data() {
272
- return {
273
- data: {},
274
- initres: {
275
- org:[this.$login.f.orgid],
276
- dep:[],
277
- user:[],
278
- },
279
- gasproperties:[],
280
- usermold:[],
281
- orderFields: {
282
- f_address: 'no'
283
- },
284
- orderDefault: "'f_operate_date desc'",
285
- model: new PagedList('rs/sql/cancelAccountQuery', 20,{orderitem: "'f_operate_date desc'"}),
286
- f_orgid: this.$login.f.orgid,
287
- criteriaShow: false,
288
- modelval: [],
289
- printshow: false,
290
- all: false,
291
- fields: {},
292
- thead: '',
293
- tfoot: '',
294
- orgCondtionStr: '(' + this.$login.f.orgid + ')',
295
- // orgCondtionStr: ` and f_orgid = '${this.$login.f.orgid}'`,
296
- meterbrands: [],
297
- showinfo:false,
298
- jurisdiction:this.$login.r,
299
- rowdata:{},
300
- //合计数据
301
- sumsmodel: {},
302
- residentialArea:[],
303
- area:[]
304
- }
305
- },
306
- ready() {
307
- this.getaddress()
308
-
309
- readySomething(this).then(() => {
310
- this.$emit('ready')
311
- }).catch((error) => {
312
- this.$emit('error', error)
313
- })
314
- },
315
- methods: {
316
- userTypeChange () {
317
- this.usermold=[]
318
- this.f_gasproperties=[]
319
- if(this.$refs.paged.$refs.cri.model !== null) {
320
- this.$refs.paged.$refs.cri.model.f_gasproperties=''
321
- this.$refs.paged.$refs.cri.model.f_user_mold=''
322
- this.usermold = this.$appdata.getParam(this.$refs.paged.$refs.cri.model.f_user_type[0])
323
- }
324
- else{
325
- this.usermold =[{label: '全部', value: ''}]
326
- }
327
- },
328
- userMoldChange () {
329
- this.gasproperties=[]
330
- if(this.$refs.paged.$refs.cri.model !==null) {
331
- this.$refs.paged.$refs.cri.model.f_gasproperties=''
332
- if (this.$refs.paged.$refs.cri.model.f_user_mold[0] ==='居民'){
333
- this.gasproperties = this.$appdata.getParam(this.$refs.paged.$refs.cri.model.f_user_type[0] + this.$refs.paged.$refs.cri.model.f_user_mold[0])
334
- return
335
- }
336
- this.gasproperties = this.$appdata.getParam(this.$refs.paged.$refs.cri.model.f_user_mold[0])
337
- }
338
- else{
339
- this.gasproperties =[{label: '全部', value: ''}]
340
- }
341
- },
342
- async getaddress(){
343
- console.log('开始获取小区')
344
- let HttpReset = new HttpResetClass()
345
- var data = await HttpReset.load('POST', 'rs/sql/manage_getarealist', {
346
- data: {
347
- condition: '1=1'
348
- }
349
- }, {resolveMsg: null, rejectMsg: '获取小区失败!'})
350
- console.log('小区',data)
351
- let house = []
352
- for (let row of data.data){
353
- console.log('开始保存小区')
354
- house.push({label: row.f_residential_area, value: row.f_residential_area})
355
- }
356
- this.residentialArea = house
357
- },
358
- cancel() {
359
- this.showinfo = false
360
- },
361
- search() {
362
- this.$refs.paged.$refs.cri.search()
363
- },
364
- getRes(obj,val) {
365
- console.log(obj,"=====111===",val)
366
- this.orgCondtionStr = obj
367
- },
368
-
369
- selfSearch(args) {
370
- //小区查询条件
371
- this.area = this.$refs.paged.$refs.cri.model.f_residential_area
372
- console.log("=====小区model绑定====",this.area)
373
- if(this.area.length !== 0){
374
- let str = JSON.stringify(this.area)
375
- str = str.replace(/"/g,`'`)
376
- str = str.replace(/\[/g,``)
377
- str = str.replace(/\]/g,``)
378
- console.log("=====小区model22222222222绑定====",str)
379
- //查询多个小区时条件
380
- args.condition += ` and f_residential_area in ( ${str} )`
381
- }
382
-
383
- args.condition = `${args.condition}` + this.orgCondtionStr
384
- this.model.search(args.condition, args.model)
385
- },
386
- showmsg(obj){
387
- this.rowdata=obj
388
- this.showinfo=true
389
- },
390
- initParams() {
391
- // 初始化气表品牌
392
- let brandArr = []
393
- this.$MagGetSaleParam.getGasbrand().forEach((item) => {
394
- let temp = {}
395
- temp.label = item.label
396
- temp.value = item.value.f_meter_brand
397
- brandArr.push(temp)
398
- })
399
- this.meterbrands = [{label: '全部', value: ''}, ...brandArr]
400
- },
401
-
402
- clear() {
403
- Object.keys(this.$refs.paged.$refs.cri.model).forEach((key) => {
404
- this.$refs.paged.$refs.cri.model[key] = ''
405
- })
406
- },
407
- show() {
408
- this.criteriaShow = true
409
- },
410
- hidden() {
411
- this.criteriaShow = !this.criteriaShow
412
- },
413
- dealmsg(val) {
414
- console.log('---------------dealmsg')
415
- this.rowdata=val
416
- this.show=true
417
- val.model = this.model.model
418
- this.$dispatch('deal-msg', val)
419
- },
420
- stamp() {
421
- this.all = false
422
- //默认选择要打印的列
423
- this.modelval = defaultPrint.config
424
- this.fields = this.getfield
425
- console.log('所有打印字段', this.fields)
426
- this.printshow = true
427
- this.put()
428
- },
429
- put() {
430
- // 对Modelval进行排序
431
- this.sortModelval()
432
- this.thead = `<tr><th colspan=${this.modelval.length}>补卡查询统计报表</th></tr><tr>`
433
- for (let key of this.modelval) {
434
- this.thead += '<th>' + this.fields[key] + '</th>'
435
- }
436
- this.thead += '</tr>'
437
- },
438
- print() {
439
- this.$refs.print.PrintAsFile()
440
- this.printshow = false
441
- },
442
- close() {
443
- this.printshow = false
444
- this.all = false
445
- },
446
- // 对选择的列进行排序
447
- sortModelval() {
448
- let sortModel = []
449
- Object.keys(this.fields).forEach((key) => {
450
- if (this.modelval.includes(key)) {
451
- sortModel.push(key)
452
- }
453
- })
454
- this.modelval = sortModel
455
- console.log('选择的打印的字段', this.modelval)
456
- },
457
- async updateParams() {
458
- await this.$MagLoadParams.loadParam(this.f_filialeid)
459
- this.initParams()
460
- },
461
- sort (field, rule) {
462
- // 将所有排序方式设为不排序,实现相互排斥
463
- debugger
464
- for (let key in this.orderFields) {
465
- if (key === field) {
466
- this.orderFields[key] = rule
467
- } else {
468
- this.orderFields[key] = 'no'
469
- }
470
- }
471
- // 如果新规则不排序,还原为默认排序
472
- if (rule === 'no') {
473
- this.model.paramSource.orderitem = `'${this.orderDefault}'`
474
- } else {
475
- this.model.paramSource.orderitem = `'${field} ${rule}'`
476
- }
477
-
478
- this.search()
479
- }
480
- },
481
- watch: {
482
- 'all'(val) {
483
- if (val) {
484
- this.modelval = this.bodyData
485
- } else {
486
- this.modelval = defaultPrint.config
487
- this.put()
488
- }
489
- },
490
- 'modelval.length'() {
491
- this.put()
492
- }
493
- },
494
- computed: {
495
- usertypes() {
496
- return [{label: ' 全部 ', value: ''}, ...this.$appdata.getParam('用户类型')]
497
- },
498
- authArr () {
499
- return this.$login.r ? this.$login.r : []
500
- },
501
- getCondition () {
502
- var con = ""
503
- if (this.orgCondtionStr) {
504
- con = `${this.$refs.paged.$refs.cri.condition}` + this.orgCondtionStr
505
- }
506
- else {
507
- con = `${this.$refs.paged.$refs.cri.condition}and f_orgid in ('${this.$login.f.orgid}' )`
508
- }
509
- return {
510
- condition: con
511
- }
512
- },
513
- getfield() {
514
- return exportConfig.NewAccountConfig
515
- }
516
- }
517
- }
518
- </script>
1
+ <template>
2
+ <div id="unit" class="flex-row">
3
+ <div class="basic-main">
4
+ <div class="flex" v-if="!showinfo">
5
+
6
+ <criteria-paged :model="model" v-ref:paged @sort="sort">
7
+ <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
8
+ <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
9
+ <div class="row">
10
+ <div class="col-sm-2 form-group">
11
+ <label class="font_normal_body">客户编号</label>
12
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_userinfo_code"
13
+ condition="f_userinfo_code = '{}' " placeholder="客户编号">
14
+ </div>
15
+ <div class="col-sm-2 form-group">
16
+ <label for="startDate" class="font_normal_body">开始日期</label>
17
+ <datepicker id="startDate" placeholder="开始日期" style="width:60%"
18
+ v-model="model.startDate"
19
+ :value.sync="model.startDate"
20
+ :format="'yyyy-MM-dd'"
21
+ :show-reset-button="true"
22
+ condition="f_operate_date >= to_date('{} 00:00:00','yyyy-mm-dd hh24:mi:ss')">
23
+ </datepicker>
24
+ </div>
25
+ <div class="col-sm-2 form-group">
26
+ <label for="endDate" class="font_normal_body">结束日期</label>
27
+ <datepicker id="endDate" placeholder="结束日期" style="width:60%"
28
+ v-model="model.endDate"
29
+ :value.sync="model.endDate"
30
+ :format="'yyyy-MM-dd'"
31
+ :show-reset-button="true"
32
+ condition="f_operate_date <= to_date('{} 23:59:59','yyyy-mm-dd hh24:mi:ss')">
33
+ </datepicker>
34
+ </div>
35
+ <div class="col-sm-2 form-group">
36
+ <label class="font_normal_body">气表品牌</label>
37
+ <v-select :value.sync="model.f_meter_brand"
38
+ v-model="model.f_meter_brand"
39
+ :options='$parent.$parent.meterbrands' placeholder='请选择'
40
+ condition="f_meter_brand = '{}'"
41
+ close-on-select></v-select>
42
+ </div>
43
+ <div class="span" style="float:right;">
44
+ <button class="button_search button_spacing" @click="search()">查询</button>
45
+ <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
46
+ <!--<button class="btn btn-default" @click="$parent.$parent.stamp()">打印</button>-->
47
+
48
+ <export-excel :data="$parent.$parent.getCondition"
49
+ :field="$parent.$parent.getfield"
50
+ sqlurl="rs/logic/exportfile" sql-name="newAccountQuery" template-name='开户查询导出'
51
+ :choose-col="true"></export-excel>
52
+
53
+ <div style="float: right" class="button_spacing" :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}" @click="$parent.$parent.hidden()"></div>
54
+ </div>
55
+ </div>
56
+ <div class="row" v-show="$parent.$parent.criteriaShow">
57
+ <div class="col-sm-2 form-group">
58
+ <label class="font_normal_body">用户分类</label>
59
+ <v-select :value.sync="model.f_user_type"
60
+ @change="$parent.$parent.userTypeChange"
61
+ :options='$parent.$parent.usertypes' placeholder='请选择' v-model="model.f_user_type"
62
+ condition="f_user_type = '{}'"
63
+ close-on-select></v-select>
64
+ </div>
65
+ <div class="col-sm-2 form-group">
66
+ <label class="font_normal_body">用户类型</label>
67
+ <v-select :value.sync="model.f_user_mold"
68
+ @change="$parent.$parent.userMoldChange"
69
+ :options='$parent.$parent.usermold' placeholder='请选择' v-model="model.f_user_mold"
70
+ close-on-select></v-select>
71
+ </div>
72
+ <div class="col-sm-2 form-group">
73
+ <label class="font_normal_body">用气性质</label>
74
+ <v-select :value.sync="model.f_gasproperties" v-model="model.f_gasproperties"
75
+ :options='$parent.$parent.gasproperties' placeholder='请选择'
76
+ condition="f_gasproperties = '{}'"
77
+ close-on-select></v-select>
78
+ </div>
79
+ <res-select-group style="col-sm-2 form-group" :initres="$parent.$parent.initres" @re-res="$parent.$parent.getRes" v-ref:sel></res-select-group>
80
+ <div class="col-sm-2 form-group">
81
+ <label class="font_normal_body">客户地址</label>
82
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_address"
83
+ condition="f_address like '%{}%'" placeholder='客户地址'>
84
+ </div>
85
+ <div class="col-sm-2 form-group">
86
+ <label class="font_normal_body">客户名称</label>
87
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_user_name"
88
+ condition="f_user_name like '%{}%'" placeholder="客户名称">
89
+ </div>
90
+ <div class="col-sm-2 form-group">
91
+ <label for="f_area_id" class="font_normal_body">小区编码</label>
92
+ <input id="f_area_id" type="text" style="width:60%" class="input_search" v-model="model.f_area_id"
93
+ condition="f_area_id = '{}'" placeholder='小区编码'>
94
+ </div>
95
+ <div class="col-sm-2 form-group">
96
+ <label class="font_normal_body">&nbsp;&nbsp;&nbsp;小区&nbsp;&nbsp;&nbsp;</label>
97
+ <v-select :value.sync="model.f_residential_area"
98
+ class="select_list select"
99
+ enter-push
100
+ multiple = "true"
101
+ v-model="model.f_residential_area"
102
+ style="width: 60%"
103
+ :options='$parent.$parent.residentialArea' placeholder='选择小区'
104
+ close-on-select>
105
+ </v-select>
106
+ </div>
107
+ <div class="col-sm-2 form-group">
108
+ <label class="font_normal_body">销户人</label>
109
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_operator"
110
+ condition="f_operator like '%{}%'" placeholder="销户人">
111
+ </div>
112
+ <div class="col-sm-2 form-group">
113
+ <label class="font_normal_body">房产地址</label>
114
+ <input class="input_search" condition="f_house_address = '{}'"
115
+ placeholder='房产地址'
116
+ style="width:60%" type="text" v-model="model.f_house_address">
117
+ </div>
118
+ <div class="col-sm-2 form-group">
119
+ <label class="font_normal_body">用途</label>
120
+ <input class="input_search" condition="f_property_usage = '{}'"
121
+ placeholder='用途'
122
+ style="width:60%" type="text" v-model="model.f_property_usage">
123
+ </div>
124
+ <div class="col-sm-2 form-group">
125
+ <label class="font_normal_body">房型</label>
126
+ <input class="input_search" condition="f_house_type = '{}'"
127
+ placeholder='房型'
128
+ style="width:60%" type="text" v-model="model.f_house_type">
129
+ </div>
130
+ <div class="col-sm-2 form-group">
131
+ <label class="font_normal_body">是否一户多表</label>
132
+ <input class="input_search" condition="f_is_multi_meter = '{}'"
133
+ placeholder='是否一户多表'
134
+ style="width:60%" type="text" v-model="model.f_is_multi_meter">
135
+ </div>
136
+ <div class="col-sm-2 form-group">
137
+ <label class="font_normal_body">关联ID</label>
138
+ <input class="input_search" condition="f_house_id = '{}'"
139
+ placeholder='关联ID'
140
+ style="width:60%" type="text" v-model="model.f_house_id">
141
+ </div>
142
+ </div>
143
+ </div>
144
+ </criteria>
145
+
146
+ <data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid>
147
+ <template partial='head'>
148
+ <tr>
149
+ <th>
150
+ <nobr>客户编号</nobr>
151
+ </th>
152
+ <th>
153
+ <nobr>客户名称</nobr>
154
+ </th>
155
+ <th>
156
+ <data-order field="f_address" name="客户地址"></data-order>
157
+ </th>
158
+ <th>
159
+ <nobr>客户电话</nobr>
160
+ </th>
161
+ <th>
162
+ <nobr>身份证号</nobr>
163
+ </th>
164
+ <th>
165
+ <nobr>气价名称</nobr>
166
+ </th>
167
+ <th>
168
+ <nobr>销户时间</nobr>
169
+ </th>
170
+ <th>
171
+ <nobr>表号</nobr>
172
+ </th>
173
+ <th>
174
+ <nobr>置换员</nobr>
175
+ </th>
176
+ <th>
177
+ <nobr>通气时间</nobr>
178
+ </th>
179
+ <th>
180
+ <nobr>用气性质</nobr>
181
+ </th>
182
+ <th>
183
+ <nobr>累购气量</nobr>
184
+ </th>
185
+ <th>
186
+ <nobr>气表品牌</nobr>
187
+ </th>
188
+ <th>
189
+ <nobr>销户原因</nobr>
190
+ </th>
191
+ <th>
192
+ <nobr>销户人</nobr>
193
+ </th>
194
+ </tr>
195
+ </template>
196
+ <template partial='body'>
197
+ <td style="text-align: center;">
198
+ <span @click="$parent.$parent.$parent.showmsg(row)"><a>{{row.f_userinfo_code}}</a></span>
199
+ </td>
200
+ <td style="text-align: center;">
201
+ <nobr>{{row.f_user_name}}</nobr>
202
+ </td>
203
+ <td style="text-align: center;">
204
+ <nobr>{{row.f_address}}</nobr>
205
+ </td>
206
+ <td style="text-align: center;">
207
+ <nobr>{{row.f_user_phone}}</nobr>
208
+ </td>
209
+ <td style="text-align: center;">
210
+ <nobr>{{row.f_idnumber}}</nobr>
211
+ </td>
212
+ <td style="text-align: center;">
213
+ <nobr>{{row.f_price_name}}</nobr>
214
+ </td>
215
+ <td style="text-align: center;">
216
+ <nobr>{{row.f_operate_date}}</nobr>
217
+ </td>
218
+ <td style="text-align: center;">
219
+ <nobr>{{row.f_meternumber}}</nobr>
220
+ </td>
221
+ <td style="text-align: center;">
222
+ <nobr>{{row.f_gas_person}}</nobr>
223
+ </td>
224
+ <td style="text-align: center;">
225
+ <nobr>{{row.f_gas_date}}</nobr>
226
+ </td>
227
+ <td style="text-align: center;">
228
+ <nobr>{{row.f_gasproperties}}</nobr>
229
+ </td>
230
+ <td style="text-align: center;">
231
+ <nobr>{{row.f_total_gas}}</nobr>
232
+ </td>
233
+ <td style="text-align: center;">
234
+ <nobr>{{row.f_meter_brand}}</nobr>
235
+ </td>
236
+ <td style="text-align: center;">
237
+ <nobr>{{row.f_comments}}</nobr>
238
+ </td>
239
+ <td style="text-align: center;">
240
+ <nobr>{{row.f_operator}}</nobr>
241
+ </td>
242
+ </template>
243
+ <template partial='foot'></template>
244
+ </data-grid>
245
+ </criteria-paged>
246
+ </div>
247
+ <div v-if="showinfo">
248
+ <user-info-detail-manage :f_userinfo_id="rowdata.f_userinfo_id" @cancel-main="cancel"></user-info-detail-manage>
249
+ </div>
250
+ </div>
251
+ </div>
252
+ </template>
253
+
254
+ <script>
255
+ import {HttpResetClass, PagedList} from 'vue-client'
256
+ import defaultPrint from '../config/DefaultPrint'
257
+ import exportConfig from '../config/exportConfig'
258
+ import plugins from '../../../plugins/GetLoginInfoService'
259
+
260
+ let readySomething = async function (self) {
261
+ self.$refs.paged.$refs.cri.model.startDate = self.$login.toStandardDateString()
262
+ self.$refs.paged.$refs.cri.model.endDate = self.$login.toStandardDateString()
263
+ // await self.$refs.paged.$refs.cri.search()
264
+ await self.$MagLoadParams.loadParam()
265
+ self.initParams()
266
+
267
+ self.sumsmodel = self.$refs.paged.$refs.grid.model.sums
268
+ }
269
+ export default {
270
+ title: '销户统计',
271
+ data() {
272
+ return {
273
+ data: {},
274
+ initres: {
275
+ org:[this.$login.f.orgid],
276
+ dep:[],
277
+ user:[],
278
+ },
279
+ gasproperties:[],
280
+ usermold:[],
281
+ orderFields: {
282
+ f_address: 'no'
283
+ },
284
+ orderDefault: "'f_operate_date desc'",
285
+ model: new PagedList('rs/sql/cancelAccountQuery', 20,{orderitem: "'f_operate_date desc'"}),
286
+ f_orgid: this.$login.f.orgid,
287
+ criteriaShow: false,
288
+ modelval: [],
289
+ printshow: false,
290
+ all: false,
291
+ fields: {},
292
+ thead: '',
293
+ tfoot: '',
294
+ orgCondtionStr: '(' + this.$login.f.orgid + ')',
295
+ // orgCondtionStr: ` and f_orgid = '${this.$login.f.orgid}'`,
296
+ meterbrands: [],
297
+ showinfo:false,
298
+ jurisdiction:this.$login.r,
299
+ rowdata:{},
300
+ //合计数据
301
+ sumsmodel: {},
302
+ residentialArea:[],
303
+ area:[]
304
+ }
305
+ },
306
+ ready() {
307
+ this.getaddress()
308
+
309
+ readySomething(this).then(() => {
310
+ this.$emit('ready')
311
+ }).catch((error) => {
312
+ this.$emit('error', error)
313
+ })
314
+ },
315
+ methods: {
316
+ userTypeChange () {
317
+ this.usermold=[]
318
+ this.f_gasproperties=[]
319
+ if(this.$refs.paged.$refs.cri.model !== null) {
320
+ this.$refs.paged.$refs.cri.model.f_gasproperties=''
321
+ this.$refs.paged.$refs.cri.model.f_user_mold=''
322
+ this.usermold = this.$appdata.getParam(this.$refs.paged.$refs.cri.model.f_user_type[0])
323
+ }
324
+ else{
325
+ this.usermold =[{label: '全部', value: ''}]
326
+ }
327
+ },
328
+ userMoldChange () {
329
+ this.gasproperties=[]
330
+ if(this.$refs.paged.$refs.cri.model !==null) {
331
+ this.$refs.paged.$refs.cri.model.f_gasproperties=''
332
+ if (this.$refs.paged.$refs.cri.model.f_user_mold[0] ==='居民'){
333
+ this.gasproperties = this.$appdata.getParam(this.$refs.paged.$refs.cri.model.f_user_type[0] + this.$refs.paged.$refs.cri.model.f_user_mold[0])
334
+ return
335
+ }
336
+ this.gasproperties = this.$appdata.getParam(this.$refs.paged.$refs.cri.model.f_user_mold[0])
337
+ }
338
+ else{
339
+ this.gasproperties =[{label: '全部', value: ''}]
340
+ }
341
+ },
342
+ async getaddress(){
343
+ console.log('开始获取小区')
344
+ let HttpReset = new HttpResetClass()
345
+ var data = await HttpReset.load('POST', 'rs/sql/manage_getarealist', {
346
+ data: {
347
+ condition: '1=1'
348
+ }
349
+ }, {resolveMsg: null, rejectMsg: '获取小区失败!'})
350
+ console.log('小区',data)
351
+ let house = []
352
+ for (let row of data.data){
353
+ console.log('开始保存小区')
354
+ house.push({label: row.f_residential_area, value: row.f_residential_area})
355
+ }
356
+ this.residentialArea = house
357
+ },
358
+ cancel() {
359
+ this.showinfo = false
360
+ },
361
+ search() {
362
+ this.$refs.paged.$refs.cri.search()
363
+ },
364
+ getRes(obj,val) {
365
+ console.log(obj,"=====111===",val)
366
+ this.orgCondtionStr = obj
367
+ },
368
+
369
+ selfSearch(args) {
370
+ //小区查询条件
371
+ this.area = this.$refs.paged.$refs.cri.model.f_residential_area
372
+ console.log("=====小区model绑定====",this.area)
373
+ if(this.area.length !== 0){
374
+ let str = JSON.stringify(this.area)
375
+ str = str.replace(/"/g,`'`)
376
+ str = str.replace(/\[/g,``)
377
+ str = str.replace(/\]/g,``)
378
+ console.log("=====小区model22222222222绑定====",str)
379
+ //查询多个小区时条件
380
+ args.condition += ` and f_residential_area in ( ${str} )`
381
+ }
382
+
383
+ args.condition = `${args.condition}` + this.orgCondtionStr
384
+ this.model.search(args.condition, args.model)
385
+ },
386
+ showmsg(obj){
387
+ this.rowdata=obj
388
+ this.showinfo=true
389
+ },
390
+ initParams() {
391
+ // 初始化气表品牌
392
+ let brandArr = []
393
+ this.$MagGetSaleParam.getGasbrand().forEach((item) => {
394
+ let temp = {}
395
+ temp.label = item.label
396
+ temp.value = item.value.f_meter_brand
397
+ brandArr.push(temp)
398
+ })
399
+ this.meterbrands = [{label: '全部', value: ''}, ...brandArr]
400
+ },
401
+
402
+ clear() {
403
+ Object.keys(this.$refs.paged.$refs.cri.model).forEach((key) => {
404
+ this.$refs.paged.$refs.cri.model[key] = ''
405
+ })
406
+ },
407
+ show() {
408
+ this.criteriaShow = true
409
+ },
410
+ hidden() {
411
+ this.criteriaShow = !this.criteriaShow
412
+ },
413
+ dealmsg(val) {
414
+ console.log('---------------dealmsg')
415
+ this.rowdata=val
416
+ this.show=true
417
+ val.model = this.model.model
418
+ this.$dispatch('deal-msg', val)
419
+ },
420
+ stamp() {
421
+ this.all = false
422
+ //默认选择要打印的列
423
+ this.modelval = defaultPrint.config
424
+ this.fields = this.getfield
425
+ console.log('所有打印字段', this.fields)
426
+ this.printshow = true
427
+ this.put()
428
+ },
429
+ put() {
430
+ // 对Modelval进行排序
431
+ this.sortModelval()
432
+ this.thead = `<tr><th colspan=${this.modelval.length}>补卡查询统计报表</th></tr><tr>`
433
+ for (let key of this.modelval) {
434
+ this.thead += '<th>' + this.fields[key] + '</th>'
435
+ }
436
+ this.thead += '</tr>'
437
+ },
438
+ print() {
439
+ this.$refs.print.PrintAsFile()
440
+ this.printshow = false
441
+ },
442
+ close() {
443
+ this.printshow = false
444
+ this.all = false
445
+ },
446
+ // 对选择的列进行排序
447
+ sortModelval() {
448
+ let sortModel = []
449
+ Object.keys(this.fields).forEach((key) => {
450
+ if (this.modelval.includes(key)) {
451
+ sortModel.push(key)
452
+ }
453
+ })
454
+ this.modelval = sortModel
455
+ console.log('选择的打印的字段', this.modelval)
456
+ },
457
+ async updateParams() {
458
+ await this.$MagLoadParams.loadParam(this.f_filialeid)
459
+ this.initParams()
460
+ },
461
+ sort (field, rule) {
462
+ // 将所有排序方式设为不排序,实现相互排斥
463
+ debugger
464
+ for (let key in this.orderFields) {
465
+ if (key === field) {
466
+ this.orderFields[key] = rule
467
+ } else {
468
+ this.orderFields[key] = 'no'
469
+ }
470
+ }
471
+ // 如果新规则不排序,还原为默认排序
472
+ if (rule === 'no') {
473
+ this.model.paramSource.orderitem = `'${this.orderDefault}'`
474
+ } else {
475
+ this.model.paramSource.orderitem = `'${field} ${rule}'`
476
+ }
477
+
478
+ this.search()
479
+ }
480
+ },
481
+ watch: {
482
+ 'all'(val) {
483
+ if (val) {
484
+ this.modelval = this.bodyData
485
+ } else {
486
+ this.modelval = defaultPrint.config
487
+ this.put()
488
+ }
489
+ },
490
+ 'modelval.length'() {
491
+ this.put()
492
+ }
493
+ },
494
+ computed: {
495
+ usertypes() {
496
+ return [{label: ' 全部 ', value: ''}, ...this.$appdata.getParam('用户类型')]
497
+ },
498
+ authArr () {
499
+ return this.$login.r ? this.$login.r : []
500
+ },
501
+ getCondition () {
502
+ var con = ""
503
+ if (this.orgCondtionStr) {
504
+ con = `${this.$refs.paged.$refs.cri.condition}` + this.orgCondtionStr
505
+ }
506
+ else {
507
+ con = `${this.$refs.paged.$refs.cri.condition}and f_orgid in ('${this.$login.f.orgid}' )`
508
+ }
509
+ return {
510
+ condition: con
511
+ }
512
+ },
513
+ getfield() {
514
+ return exportConfig.NewAccountConfig
515
+ }
516
+ }
517
+ }
518
+ </script>