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,522 +1,522 @@
1
- <template>
2
- <div id="unit" class="flex-row">
3
- <div class="basic-main" @keyup.enter="search">
4
- <div class="flex" v-if="!show">
5
-
6
- <criteria-paged :model="model" v-ref:paged>
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 class="font_normal_body">客户名称</label>
17
- <input type="text" style="width:60%" class="input_search" v-model="model.f_user_name"
18
- condition="f_user_name like '%{}%'" placeholder="客户名称">
19
- </div>
20
- <div class="col-sm-2 form-group">
21
- <label for="startDate" class="font_normal_body">开始日期</label>
22
- <datepicker id="startDate" placeholder="开始日期" style="width:60%"
23
- v-model="model.startDate"
24
- :value.sync="model.startDate"
25
- :format="'yyyy-MM-dd HH:mm:ss'"
26
- :show-reset-button="true"
27
- condition="f_operate_date >= to_date('{}','yyyy-mm-dd hh24:mi:ss')">
28
- </datepicker>
29
- </div>
30
- <div class="col-sm-2 form-group">
31
- <label for="endDate" class="font_normal_body">结束日期</label>
32
- <datepicker id="endDate" placeholder="结束日期" style="width:60%"
33
- v-model="model.endDate"
34
- :value.sync="model.endDate"
35
- :format="'yyyy-MM-dd HH:mm:ss'"
36
- :show-reset-button="true"
37
- condition="f_operate_date <= to_date('{}','yyyy-mm-dd hh24:mi:ss')">
38
- </datepicker>
39
- </div>
40
- <div class="span" style="float:right;">
41
- <button class="button_search button_spacing" @click="search()">查询</button>
42
- <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
43
- <!--<button class="btn btn-default" @click="$parent.$parent.stamp()">打印</button>-->
44
-
45
- <export-excel :data="$parent.$parent.getCondition"
46
- :field="$parent.$parent.getfield"
47
- sqlurl="rs/logic/exportfile" sql-name="fillCardQuery" template-name='补卡查询导出'
48
- v-if ="$parent.$parent.jurisdiction.includes('excel导出')"
49
- :choose-col="true"></export-excel>
50
-
51
- <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>
52
- </div>
53
- </div>
54
- <div class="row">
55
- <res-select-group style="col-sm-2 form-group" :initres="$parent.$parent.initres" @re-res="$parent.$parent.getRes" v-ref:sel></res-select-group>
56
- <div class="col-sm-2 form-group">
57
- <label for="f_area_id" class="font_normal_body">小区编码</label>
58
- <input id="f_area_id" type="text" style="width:60%" class="input_search" v-model="model.f_area_id"
59
- condition="f_area_id = '{}'" placeholder='小区编码'>
60
- </div>
61
- <div class="col-sm-2 form-group">
62
- <label class="font_normal_body">&nbsp;&nbsp;&nbsp;小区&nbsp;&nbsp;&nbsp;</label>
63
- <v-select :value.sync="model.f_residential_area"
64
- class="select_list select"
65
- enter-push
66
- multiple = "true"
67
- v-model="model.f_residential_area"
68
- style="width: 60%"
69
- :options='$parent.$parent.residentialArea' placeholder='选择小区'
70
- close-on-select>
71
- </v-select>
72
- </div>
73
- </div>
74
- <div class="row" v-show="$parent.$parent.criteriaShow">
75
- <div class="col-sm-2 form-group">
76
- <label class="font_normal_body">客户地址</label>
77
- <input type="text" style="width:60%" class="input_search" v-model="model.f_address"
78
- condition="f_address like '%{}%'" placeholder='客户地址'>
79
- </div>
80
- <div class="col-sm-2 form-group">
81
- <label class="font_normal_body">补卡类型</label>
82
- <v-select :value.sync="model. f_type"
83
- v-model="model. f_type"
84
- :options='$parent.$parent.fillCardTypes' placeholder='请选择'
85
- condition=" f_type = '{}'"
86
- close-on-select></v-select>
87
- </div>
88
-
89
- <div class="col-sm-2 form-group">
90
- <label class="font_normal_body">&nbsp;&nbsp;&nbsp;卡号&nbsp;&nbsp;&nbsp;</label>
91
- <input type="text" style="width:60%" class="input_search" v-model="model.f_card_id"
92
- condition="f_card_id like '%{}%'" placeholder='卡号'>
93
- </div>
94
- <div class="col-sm-2 form-group">
95
- <label class="font_normal_body">气表品牌</label>
96
- <v-select :value.sync="model.f_meter_brand"
97
- v-model="model.f_meter_brand"
98
- :options='$parent.$parent.meterbrands' placeholder='请选择'
99
- condition="f_meter_brand = '{}'"
100
- close-on-select></v-select>
101
- </div>
102
- <div class="col-sm-2 form-group">
103
- <label class="font_normal_body">补卡状态</label>
104
- <v-select :value.sync="model.f_state"
105
- v-model="model.f_state"
106
- :options='$parent.$parent.chargeState' placeholder='请选择'
107
- condition="f_state = '{}'"
108
- close-on-select></v-select>
109
- </div>
110
- <div class="col-sm-2 form-group">
111
- <label class="font_normal_body">是否<br/>手持设备</label>
112
- <v-select :value.sync="$parent.$parent.f_outlets"
113
- :options="$parent.$parent.isPos"
114
- :search="false"
115
- placeholder='请选择'
116
- condition="{}"
117
- close-on-select></v-select>
118
- </div>
119
- <div class="col-sm-2 form-group">
120
- <label class="font_normal_body">房产地址</label>
121
- <input class="input_search" condition="f_house_address = '{}'"
122
- placeholder='房产地址'
123
- style="width:60%" type="text" v-model="model.f_house_address">
124
- </div>
125
- <div class="col-sm-2 form-group">
126
- <label class="font_normal_body">用途</label>
127
- <input class="input_search" condition="f_property_usage = '{}'"
128
- placeholder='用途'
129
- style="width:60%" type="text" v-model="model.f_property_usage">
130
- </div>
131
- <div class="col-sm-2 form-group">
132
- <label class="font_normal_body">房型</label>
133
- <input class="input_search" condition="f_house_type = '{}'"
134
- placeholder='房型'
135
- style="width:60%" type="text" v-model="model.f_house_type">
136
- </div>
137
- <div class="col-sm-2 form-group">
138
- <label class="font_normal_body">是否一户多表</label>
139
- <input class="input_search" condition="f_is_multi_meter = '{}'"
140
- placeholder='是否一户多表'
141
- style="width:60%" type="text" v-model="model.f_is_multi_meter">
142
- </div>
143
- <div class="col-sm-2 form-group">
144
- <label class="font_normal_body">关联ID</label>
145
- <input class="input_search" condition="f_house_id = '{}'"
146
- placeholder='关联ID'
147
- style="width:60%" type="text" v-model="model.f_house_id">
148
- </div>
149
- </div>
150
-
151
- </div>
152
- </criteria>
153
-
154
- <data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid>
155
- <template partial='head'>
156
- <tr>
157
- <th>
158
- <nobr>客户编号</nobr>
159
- </th>
160
- <th>
161
- <nobr>客户名称</nobr>
162
- </th>
163
- <th>
164
- <nobr>客户地址</nobr>
165
- </th>
166
- <th>
167
- <nobr>卡号</nobr>
168
- </th>
169
- <th>
170
- <nobr>补卡后卡上次数</nobr>
171
- </th>
172
- <th>
173
- <nobr>气表品牌</nobr>
174
- </th>
175
- <th>
176
- <nobr>补卡类型</nobr>
177
- </th>
178
- <th>
179
- <nobr>补卡原因</nobr>
180
- </th>
181
- <th>
182
- <nobr>卡费</nobr>
183
- </th>
184
- <th>
185
- <nobr>收款方式</nobr>
186
- </th>
187
- <th>
188
- <nobr>补卡状态</nobr>
189
- </th>
190
- <th>
191
- <nobr>补卡日期</nobr>
192
- </th>
193
- <th>
194
- <nobr>人员</nobr>
195
- </th>
196
- <th>
197
- <nobr>部门</nobr>
198
- </th>
199
- <th>
200
- <nobr>网点</nobr>
201
- </th>
202
- <th>
203
- <nobr>公司</nobr>
204
- </th>
205
- </tr>
206
- </template>
207
- <template partial='body'>
208
- <td style="text-align: center;">
209
- <nobr>
210
- <span @click="$parent.$parent.$parent.dealmsg(row)"><a>{{row.f_userinfo_code}}</a></span></nobr>
211
- </td>
212
- <td style="text-align: center;">
213
- <nobr>{{row.f_user_name}}</nobr>
214
- </td>
215
- <td style="text-align: center;">
216
- <nobr>{{row.f_address}}</nobr>
217
- </td>
218
- <td style="text-align: center;">
219
- <nobr>{{row.f_card_id}}</nobr>
220
- </td>
221
- <td style="text-align: center;">
222
- <nobr>{{row.f_times}}</nobr>
223
- </td>
224
- <td style="text-align: center;">
225
- <nobr>{{row.f_meter_brand}}</nobr>
226
- </td>
227
- <td style="text-align: center;">
228
- <nobr>{{row. f_type}}</nobr>
229
- </td>
230
- <td style="text-align: center;">
231
- <nobr>{{row.f_comments}}</nobr>
232
- </td>
233
- <td style="text-align: center;">
234
- <nobr>{{row.f_cardfees}}</nobr>
235
- </td>
236
- <td style="text-align: center;">
237
- <nobr>{{row.f_payment}}</nobr>
238
- </td>
239
- <td style="text-align: center;">
240
- <nobr>{{row.f_state}}</nobr>
241
- </td>
242
- <td style="text-align: center;">
243
- <nobr>{{row.f_operate_date}}</nobr>
244
- </td>
245
- <td style="text-align: center;">
246
- <nobr>{{row.f_operator}}</nobr>
247
- </td>
248
- <td style="text-align: center;">
249
- <nobr>{{row.f_depname}}</nobr>
250
- </td>
251
- <td style="text-align: center;">
252
- <nobr>{{row.f_outlets}}</nobr>
253
- </td>
254
- <td style="text-align: center;">
255
- <nobr>{{row.f_orgname}}</nobr>
256
- </td>
257
- </template>
258
- <template partial='foot'></template>
259
- </data-grid>
260
-
261
- </criteria-paged>
262
-
263
- <table class="table-hover">
264
- <tr style="position: relative" class="table-bordered">
265
- <td
266
- style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;color: #5CB95C;font-weight: bold">
267
- 汇总信息
268
- </td>
269
- <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px">
270
- 卡费合计:&emsp;{{sumsmodel.f_cardfees}}
271
- </td>
272
- </tr>
273
- </table>
274
- </div>
275
- <div v-if="show">
276
- <user-info-detail-manage :f_userinfo_id="rowdata.f_userinfo_id" @cancel-main="cancel"></user-info-detail-manage>
277
- </div>
278
- <div v-if="showAttachment">
279
- <attachment-viewer :business-id="currentRow && currentRow.id" table-name="t_fillcard" @close="closeAttachment"></attachment-viewer>
280
- </div>
281
- </div>
282
- </div>
283
- </template>
284
-
285
- <script>
286
- import {HttpResetClass, PagedList} from 'vue-client'
287
- import defaultPrint from '../config/DefaultPrint'
288
- import exportConfig from '../config/exportConfig'
289
- import AttachmentViewer from './AttachmentViewer.vue'
290
-
291
- let readySomething = async function (self) {
292
- self.$refs.paged.$refs.cri.model.startDate = self.$login.toStandardDateString() + ' 00:00:00'
293
- self.$refs.paged.$refs.cri.model.endDate = self.$login.toStandardDateString() + ' 23:59:59'
294
- // await self.$refs.paged.$refs.cri.search()
295
- await self.$MagLoadParams.loadParam()
296
- self.initParams()
297
-
298
- self.sumsmodel = self.$refs.paged.$refs.grid.model.sums
299
- }
300
- export default {
301
- components: {
302
- AttachmentViewer
303
- },
304
- data() {
305
- return {
306
- data: {},
307
- model: new PagedList('rs/sql/fillCardQuery', 20, {}, {f_cardfees: 0}),
308
- criteriaShow: false,
309
- headData: ["客户编号", "客户名称", "客户电话", "身份证号", "地址", "补卡类型", "表编号", "卡号", "气表品牌", "气表状态", "卡费","收款方式","补卡状态", "补卡日期", "人员", "部门", "公司"],
310
- bodyData: ["f_userinfo_code", "f_user_name", "f_user_phone", "f_idnumber", "address", " f_type", "f_user_id", "f_card_id", "f_meter_brand", "f_table_state", "f_cardfees","f_payment","f_state", "f_operate_date", "f_operator", "f_depname", "f_orgname"],
311
-
312
- orgCondtionStr: '',
313
- jurisdiction:this.$login.r,
314
- initres: {
315
- org:[this.$login.f.orgid],
316
- dep:[],
317
- user:[],
318
- },
319
- modelval: [],
320
- residentialArea:[],
321
- area:[],
322
- f_outlets: [],
323
- isPos: [{label: '全部', value: ''}, {label: '是', value: '是'}, {label: '否', value: '否'}],
324
- printshow: false,
325
- all: false,
326
- fields: {},
327
- thead: '',
328
- tfoot: '',
329
-
330
- meterbrands: [],
331
- // tablestate: [{label: '全部', value: ''}, {label: '正常', value: '正常'}, {label: '停用', value: '停用'}],
332
-
333
- show:false,
334
- showAttachment: false,
335
- currentRow: null,
336
- rowdata:{},
337
- //合计数据
338
- sumsmodel: {}
339
- }
340
- },
341
- ready() {
342
- this.getaddress()
343
-
344
- readySomething(this).then(() => {
345
- this.$emit('ready')
346
- }).catch((error) => {
347
- this.$emit('error', error)
348
- })
349
- },
350
- methods: {
351
- async getaddress(){
352
- console.log('开始获取小区')
353
- let HttpReset = new HttpResetClass()
354
- var data = await HttpReset.load('POST', 'rs/sql/manage_getarealist', {
355
- data: {
356
- condition: '1=1'
357
- }
358
- }, {resolveMsg: null, rejectMsg: '获取小区失败!'})
359
- console.log('小区',data)
360
- let house = []
361
- for (let row of data.data){
362
- console.log('开始保存小区')
363
- house.push({label: row.f_residential_area, value: row.f_residential_area})
364
- }
365
- this.residentialArea = house
366
- },
367
- search(){
368
- this.$refs.paged.$refs.cri.search()
369
- },
370
- cancel() {
371
- this.show = false
372
- },
373
- selfSearch(args) {
374
- //小区查询条件
375
- this.area = this.$refs.paged.$refs.cri.model.f_residential_area
376
- console.log("=====小区model绑定====",this.area)
377
- if(this.area.length !== 0){
378
- let str = JSON.stringify(this.area)
379
- str = str.replace(/"/g,`'`)
380
- str = str.replace(/\[/g,``)
381
- str = str.replace(/\]/g,``)
382
- console.log("=====小区model22222222222绑定====",str)
383
- //查询多个小区时条件
384
- args.condition += ` and f_residential_area in ( ${str} )`
385
- }
386
-
387
- // 手持设备查询条件
388
- if(this.f_outlets[0] === '是'){
389
- args.condition+= ` and f_outlets = '手持设备'`
390
- } else if (this.f_outlets[0] === '否'){
391
- args.condition+= ` and f_outlets is null`
392
- }
393
-
394
- args.condition = `${args.condition}` + this.orgCondtionStr
395
- this.model.search(args.condition, args.model)
396
- this.sumsmodel = this.$refs.paged.$refs.grid.model.sums
397
- },
398
-
399
- initParams() {
400
- // 初始化气表品牌
401
- let brandArr = []
402
- this.$MagGetSaleParam.getGasbrand().forEach((item) => {
403
- let temp = {}
404
- temp.label = item.label
405
- temp.value = item.value.f_meter_brand
406
- brandArr.push(temp)
407
- })
408
- this.meterbrands = [{label: '全部', value: ''}, ...brandArr]
409
- },
410
-
411
- clear() {
412
- //清空部门和人员
413
- this.$refs.paged.$refs.cri.$refs.sel.$children[1].selectres = []
414
- //部门和人员变为全选
415
- this.$refs.paged.$refs.cri.$refs.sel.$children[1].$children[0].isSelectAll = false
416
- this.$refs.paged.$refs.cri.$refs.sel.$children[2].$children[0].isSelectAll = false
417
- Object.keys(this.$refs.paged.$refs.cri.model).forEach((key) => {
418
- this.$refs.paged.$refs.cri.model[key] = ''
419
- })
420
- },
421
- show() {
422
- this.criteriaShow = true
423
- },
424
- hidden() {
425
- this.criteriaShow = !this.criteriaShow
426
- },
427
- getRes(condition) {
428
- this.orgCondtionStr = condition
429
- },
430
- dealmsg(val) {
431
- console.log('---------------dealmsg')
432
- this.rowdata=val
433
- this.show=true
434
- val.model = this.model.model
435
- this.$dispatch('deal-msg', val)
436
- },
437
- view(row) {
438
- this.currentRow = row;
439
- this.showAttachment = true;
440
- },
441
- closeAttachment() {
442
- this.showAttachment = false;
443
- },
444
- stamp() {
445
- this.all = false
446
- //默认选择要打印的列
447
- this.modelval = defaultPrint.config
448
- this.fields = this.getfield
449
- console.log('所有打印字段', this.fields)
450
- this.printshow = true
451
- this.put()
452
- },
453
- put() {
454
- // 对Modelval进行排序
455
- this.sortModelval()
456
- this.thead = `<tr><th colspan=${this.modelval.length}>补卡查询统计报表</th></tr><tr>`
457
- for (let key of this.modelval) {
458
- this.thead += '<th>' + this.fields[key] + '</th>'
459
- }
460
- this.thead += '</tr>'
461
- },
462
- print() {
463
- this.$refs.print.PrintAsFile()
464
- this.printshow = false
465
- },
466
- close() {
467
- this.printshow = false
468
- this.all = false
469
- },
470
- // 对选择的列进行排序
471
- sortModelval() {
472
- let sortModel = []
473
- Object.keys(this.fields).forEach((key) => {
474
- if (this.modelval.includes(key)) {
475
- sortModel.push(key)
476
- }
477
- })
478
- this.modelval = sortModel
479
- console.log('选择的打印的字段', this.modelval)
480
- },
481
- async updateParams() {
482
- await this.$MagLoadParams.loadParam(this.f_filialeid)
483
- this.initParams()
484
- },
485
- },
486
- watch: {
487
- 'all'(val) {
488
- if (val) {
489
- this.modelval = this.bodyData
490
- } else {
491
- this.modelval = defaultPrint.config
492
- this.put()
493
- }
494
- },
495
- 'modelval.length'() {
496
- this.put()
497
- },
498
- 'orgCondtionStr'(val) {
499
- let res = val.match(/'(.*?)'/)
500
- console.log('正则提取:',res && res[1])
501
- if (res) {
502
- this.f_filialeid = res[1]
503
- this.updateParams()
504
- }
505
- }
506
- },
507
- computed: {
508
- getCondition() {
509
- return {condition: `${this.$refs.paged.$refs.cri.condition}` + this.orgCondtionStr}
510
- },
511
- getfield() {
512
- return exportConfig.fillcardConfig
513
- },
514
- fillCardTypes() {
515
- return [{label: '全部', value: ''}, ...this.$appdata.getParam('补卡类型')]
516
- },
517
- chargeState() {
518
- return [{label: '全部', value: ''}, ...this.$appdata.getParam('补卡状态')]
519
- },
520
- }
521
- }
522
- </script>
1
+ <template>
2
+ <div id="unit" class="flex-row">
3
+ <div class="basic-main" @keyup.enter="search">
4
+ <div class="flex" v-if="!show">
5
+
6
+ <criteria-paged :model="model" v-ref:paged>
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 class="font_normal_body">客户名称</label>
17
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_user_name"
18
+ condition="f_user_name like '%{}%'" placeholder="客户名称">
19
+ </div>
20
+ <div class="col-sm-2 form-group">
21
+ <label for="startDate" class="font_normal_body">开始日期</label>
22
+ <datepicker id="startDate" placeholder="开始日期" style="width:60%"
23
+ v-model="model.startDate"
24
+ :value.sync="model.startDate"
25
+ :format="'yyyy-MM-dd HH:mm:ss'"
26
+ :show-reset-button="true"
27
+ condition="f_operate_date >= to_date('{}','yyyy-mm-dd hh24:mi:ss')">
28
+ </datepicker>
29
+ </div>
30
+ <div class="col-sm-2 form-group">
31
+ <label for="endDate" class="font_normal_body">结束日期</label>
32
+ <datepicker id="endDate" placeholder="结束日期" style="width:60%"
33
+ v-model="model.endDate"
34
+ :value.sync="model.endDate"
35
+ :format="'yyyy-MM-dd HH:mm:ss'"
36
+ :show-reset-button="true"
37
+ condition="f_operate_date <= to_date('{}','yyyy-mm-dd hh24:mi:ss')">
38
+ </datepicker>
39
+ </div>
40
+ <div class="span" style="float:right;">
41
+ <button class="button_search button_spacing" @click="search()">查询</button>
42
+ <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
43
+ <!--<button class="btn btn-default" @click="$parent.$parent.stamp()">打印</button>-->
44
+
45
+ <export-excel :data="$parent.$parent.getCondition"
46
+ :field="$parent.$parent.getfield"
47
+ sqlurl="rs/logic/exportfile" sql-name="fillCardQuery" template-name='补卡查询导出'
48
+ v-if ="$parent.$parent.jurisdiction.includes('excel导出')"
49
+ :choose-col="true"></export-excel>
50
+
51
+ <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>
52
+ </div>
53
+ </div>
54
+ <div class="row">
55
+ <res-select-group style="col-sm-2 form-group" :initres="$parent.$parent.initres" @re-res="$parent.$parent.getRes" v-ref:sel></res-select-group>
56
+ <div class="col-sm-2 form-group">
57
+ <label for="f_area_id" class="font_normal_body">小区编码</label>
58
+ <input id="f_area_id" type="text" style="width:60%" class="input_search" v-model="model.f_area_id"
59
+ condition="f_area_id = '{}'" placeholder='小区编码'>
60
+ </div>
61
+ <div class="col-sm-2 form-group">
62
+ <label class="font_normal_body">&nbsp;&nbsp;&nbsp;小区&nbsp;&nbsp;&nbsp;</label>
63
+ <v-select :value.sync="model.f_residential_area"
64
+ class="select_list select"
65
+ enter-push
66
+ multiple = "true"
67
+ v-model="model.f_residential_area"
68
+ style="width: 60%"
69
+ :options='$parent.$parent.residentialArea' placeholder='选择小区'
70
+ close-on-select>
71
+ </v-select>
72
+ </div>
73
+ </div>
74
+ <div class="row" v-show="$parent.$parent.criteriaShow">
75
+ <div class="col-sm-2 form-group">
76
+ <label class="font_normal_body">客户地址</label>
77
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_address"
78
+ condition="f_address like '%{}%'" placeholder='客户地址'>
79
+ </div>
80
+ <div class="col-sm-2 form-group">
81
+ <label class="font_normal_body">补卡类型</label>
82
+ <v-select :value.sync="model. f_type"
83
+ v-model="model. f_type"
84
+ :options='$parent.$parent.fillCardTypes' placeholder='请选择'
85
+ condition=" f_type = '{}'"
86
+ close-on-select></v-select>
87
+ </div>
88
+
89
+ <div class="col-sm-2 form-group">
90
+ <label class="font_normal_body">&nbsp;&nbsp;&nbsp;卡号&nbsp;&nbsp;&nbsp;</label>
91
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_card_id"
92
+ condition="f_card_id like '%{}%'" placeholder='卡号'>
93
+ </div>
94
+ <div class="col-sm-2 form-group">
95
+ <label class="font_normal_body">气表品牌</label>
96
+ <v-select :value.sync="model.f_meter_brand"
97
+ v-model="model.f_meter_brand"
98
+ :options='$parent.$parent.meterbrands' placeholder='请选择'
99
+ condition="f_meter_brand = '{}'"
100
+ close-on-select></v-select>
101
+ </div>
102
+ <div class="col-sm-2 form-group">
103
+ <label class="font_normal_body">补卡状态</label>
104
+ <v-select :value.sync="model.f_state"
105
+ v-model="model.f_state"
106
+ :options='$parent.$parent.chargeState' placeholder='请选择'
107
+ condition="f_state = '{}'"
108
+ close-on-select></v-select>
109
+ </div>
110
+ <div class="col-sm-2 form-group">
111
+ <label class="font_normal_body">是否<br/>手持设备</label>
112
+ <v-select :value.sync="$parent.$parent.f_outlets"
113
+ :options="$parent.$parent.isPos"
114
+ :search="false"
115
+ placeholder='请选择'
116
+ condition="{}"
117
+ close-on-select></v-select>
118
+ </div>
119
+ <div class="col-sm-2 form-group">
120
+ <label class="font_normal_body">房产地址</label>
121
+ <input class="input_search" condition="f_house_address = '{}'"
122
+ placeholder='房产地址'
123
+ style="width:60%" type="text" v-model="model.f_house_address">
124
+ </div>
125
+ <div class="col-sm-2 form-group">
126
+ <label class="font_normal_body">用途</label>
127
+ <input class="input_search" condition="f_property_usage = '{}'"
128
+ placeholder='用途'
129
+ style="width:60%" type="text" v-model="model.f_property_usage">
130
+ </div>
131
+ <div class="col-sm-2 form-group">
132
+ <label class="font_normal_body">房型</label>
133
+ <input class="input_search" condition="f_house_type = '{}'"
134
+ placeholder='房型'
135
+ style="width:60%" type="text" v-model="model.f_house_type">
136
+ </div>
137
+ <div class="col-sm-2 form-group">
138
+ <label class="font_normal_body">是否一户多表</label>
139
+ <input class="input_search" condition="f_is_multi_meter = '{}'"
140
+ placeholder='是否一户多表'
141
+ style="width:60%" type="text" v-model="model.f_is_multi_meter">
142
+ </div>
143
+ <div class="col-sm-2 form-group">
144
+ <label class="font_normal_body">关联ID</label>
145
+ <input class="input_search" condition="f_house_id = '{}'"
146
+ placeholder='关联ID'
147
+ style="width:60%" type="text" v-model="model.f_house_id">
148
+ </div>
149
+ </div>
150
+
151
+ </div>
152
+ </criteria>
153
+
154
+ <data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid>
155
+ <template partial='head'>
156
+ <tr>
157
+ <th>
158
+ <nobr>客户编号</nobr>
159
+ </th>
160
+ <th>
161
+ <nobr>客户名称</nobr>
162
+ </th>
163
+ <th>
164
+ <nobr>客户地址</nobr>
165
+ </th>
166
+ <th>
167
+ <nobr>卡号</nobr>
168
+ </th>
169
+ <th>
170
+ <nobr>补卡后卡上次数</nobr>
171
+ </th>
172
+ <th>
173
+ <nobr>气表品牌</nobr>
174
+ </th>
175
+ <th>
176
+ <nobr>补卡类型</nobr>
177
+ </th>
178
+ <th>
179
+ <nobr>补卡原因</nobr>
180
+ </th>
181
+ <th>
182
+ <nobr>卡费</nobr>
183
+ </th>
184
+ <th>
185
+ <nobr>收款方式</nobr>
186
+ </th>
187
+ <th>
188
+ <nobr>补卡状态</nobr>
189
+ </th>
190
+ <th>
191
+ <nobr>补卡日期</nobr>
192
+ </th>
193
+ <th>
194
+ <nobr>人员</nobr>
195
+ </th>
196
+ <th>
197
+ <nobr>部门</nobr>
198
+ </th>
199
+ <th>
200
+ <nobr>网点</nobr>
201
+ </th>
202
+ <th>
203
+ <nobr>公司</nobr>
204
+ </th>
205
+ </tr>
206
+ </template>
207
+ <template partial='body'>
208
+ <td style="text-align: center;">
209
+ <nobr>
210
+ <span @click="$parent.$parent.$parent.dealmsg(row)"><a>{{row.f_userinfo_code}}</a></span></nobr>
211
+ </td>
212
+ <td style="text-align: center;">
213
+ <nobr>{{row.f_user_name}}</nobr>
214
+ </td>
215
+ <td style="text-align: center;">
216
+ <nobr>{{row.f_address}}</nobr>
217
+ </td>
218
+ <td style="text-align: center;">
219
+ <nobr>{{row.f_card_id}}</nobr>
220
+ </td>
221
+ <td style="text-align: center;">
222
+ <nobr>{{row.f_times}}</nobr>
223
+ </td>
224
+ <td style="text-align: center;">
225
+ <nobr>{{row.f_meter_brand}}</nobr>
226
+ </td>
227
+ <td style="text-align: center;">
228
+ <nobr>{{row. f_type}}</nobr>
229
+ </td>
230
+ <td style="text-align: center;">
231
+ <nobr>{{row.f_comments}}</nobr>
232
+ </td>
233
+ <td style="text-align: center;">
234
+ <nobr>{{row.f_cardfees}}</nobr>
235
+ </td>
236
+ <td style="text-align: center;">
237
+ <nobr>{{row.f_payment}}</nobr>
238
+ </td>
239
+ <td style="text-align: center;">
240
+ <nobr>{{row.f_state}}</nobr>
241
+ </td>
242
+ <td style="text-align: center;">
243
+ <nobr>{{row.f_operate_date}}</nobr>
244
+ </td>
245
+ <td style="text-align: center;">
246
+ <nobr>{{row.f_operator}}</nobr>
247
+ </td>
248
+ <td style="text-align: center;">
249
+ <nobr>{{row.f_depname}}</nobr>
250
+ </td>
251
+ <td style="text-align: center;">
252
+ <nobr>{{row.f_outlets}}</nobr>
253
+ </td>
254
+ <td style="text-align: center;">
255
+ <nobr>{{row.f_orgname}}</nobr>
256
+ </td>
257
+ </template>
258
+ <template partial='foot'></template>
259
+ </data-grid>
260
+
261
+ </criteria-paged>
262
+
263
+ <table class="table-hover">
264
+ <tr style="position: relative" class="table-bordered">
265
+ <td
266
+ style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;color: #5CB95C;font-weight: bold">
267
+ 汇总信息
268
+ </td>
269
+ <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px">
270
+ 卡费合计:&emsp;{{sumsmodel.f_cardfees}}
271
+ </td>
272
+ </tr>
273
+ </table>
274
+ </div>
275
+ <div v-if="show">
276
+ <user-info-detail-manage :f_userinfo_id="rowdata.f_userinfo_id" @cancel-main="cancel"></user-info-detail-manage>
277
+ </div>
278
+ <div v-if="showAttachment">
279
+ <attachment-viewer :business-id="currentRow && currentRow.id" table-name="t_fillcard" @close="closeAttachment"></attachment-viewer>
280
+ </div>
281
+ </div>
282
+ </div>
283
+ </template>
284
+
285
+ <script>
286
+ import {HttpResetClass, PagedList} from 'vue-client'
287
+ import defaultPrint from '../config/DefaultPrint'
288
+ import exportConfig from '../config/exportConfig'
289
+ import AttachmentViewer from './AttachmentViewer.vue'
290
+
291
+ let readySomething = async function (self) {
292
+ self.$refs.paged.$refs.cri.model.startDate = self.$login.toStandardDateString() + ' 00:00:00'
293
+ self.$refs.paged.$refs.cri.model.endDate = self.$login.toStandardDateString() + ' 23:59:59'
294
+ // await self.$refs.paged.$refs.cri.search()
295
+ await self.$MagLoadParams.loadParam()
296
+ self.initParams()
297
+
298
+ self.sumsmodel = self.$refs.paged.$refs.grid.model.sums
299
+ }
300
+ export default {
301
+ components: {
302
+ AttachmentViewer
303
+ },
304
+ data() {
305
+ return {
306
+ data: {},
307
+ model: new PagedList('rs/sql/fillCardQuery', 20, {}, {f_cardfees: 0}),
308
+ criteriaShow: false,
309
+ headData: ["客户编号", "客户名称", "客户电话", "身份证号", "地址", "补卡类型", "表编号", "卡号", "气表品牌", "气表状态", "卡费","收款方式","补卡状态", "补卡日期", "人员", "部门", "公司"],
310
+ bodyData: ["f_userinfo_code", "f_user_name", "f_user_phone", "f_idnumber", "address", " f_type", "f_user_id", "f_card_id", "f_meter_brand", "f_table_state", "f_cardfees","f_payment","f_state", "f_operate_date", "f_operator", "f_depname", "f_orgname"],
311
+
312
+ orgCondtionStr: '',
313
+ jurisdiction:this.$login.r,
314
+ initres: {
315
+ org:[this.$login.f.orgid],
316
+ dep:[],
317
+ user:[],
318
+ },
319
+ modelval: [],
320
+ residentialArea:[],
321
+ area:[],
322
+ f_outlets: [],
323
+ isPos: [{label: '全部', value: ''}, {label: '是', value: '是'}, {label: '否', value: '否'}],
324
+ printshow: false,
325
+ all: false,
326
+ fields: {},
327
+ thead: '',
328
+ tfoot: '',
329
+
330
+ meterbrands: [],
331
+ // tablestate: [{label: '全部', value: ''}, {label: '正常', value: '正常'}, {label: '停用', value: '停用'}],
332
+
333
+ show:false,
334
+ showAttachment: false,
335
+ currentRow: null,
336
+ rowdata:{},
337
+ //合计数据
338
+ sumsmodel: {}
339
+ }
340
+ },
341
+ ready() {
342
+ this.getaddress()
343
+
344
+ readySomething(this).then(() => {
345
+ this.$emit('ready')
346
+ }).catch((error) => {
347
+ this.$emit('error', error)
348
+ })
349
+ },
350
+ methods: {
351
+ async getaddress(){
352
+ console.log('开始获取小区')
353
+ let HttpReset = new HttpResetClass()
354
+ var data = await HttpReset.load('POST', 'rs/sql/manage_getarealist', {
355
+ data: {
356
+ condition: '1=1'
357
+ }
358
+ }, {resolveMsg: null, rejectMsg: '获取小区失败!'})
359
+ console.log('小区',data)
360
+ let house = []
361
+ for (let row of data.data){
362
+ console.log('开始保存小区')
363
+ house.push({label: row.f_residential_area, value: row.f_residential_area})
364
+ }
365
+ this.residentialArea = house
366
+ },
367
+ search(){
368
+ this.$refs.paged.$refs.cri.search()
369
+ },
370
+ cancel() {
371
+ this.show = false
372
+ },
373
+ selfSearch(args) {
374
+ //小区查询条件
375
+ this.area = this.$refs.paged.$refs.cri.model.f_residential_area
376
+ console.log("=====小区model绑定====",this.area)
377
+ if(this.area.length !== 0){
378
+ let str = JSON.stringify(this.area)
379
+ str = str.replace(/"/g,`'`)
380
+ str = str.replace(/\[/g,``)
381
+ str = str.replace(/\]/g,``)
382
+ console.log("=====小区model22222222222绑定====",str)
383
+ //查询多个小区时条件
384
+ args.condition += ` and f_residential_area in ( ${str} )`
385
+ }
386
+
387
+ // 手持设备查询条件
388
+ if(this.f_outlets[0] === '是'){
389
+ args.condition+= ` and f_outlets = '手持设备'`
390
+ } else if (this.f_outlets[0] === '否'){
391
+ args.condition+= ` and f_outlets is null`
392
+ }
393
+
394
+ args.condition = `${args.condition}` + this.orgCondtionStr
395
+ this.model.search(args.condition, args.model)
396
+ this.sumsmodel = this.$refs.paged.$refs.grid.model.sums
397
+ },
398
+
399
+ initParams() {
400
+ // 初始化气表品牌
401
+ let brandArr = []
402
+ this.$MagGetSaleParam.getGasbrand().forEach((item) => {
403
+ let temp = {}
404
+ temp.label = item.label
405
+ temp.value = item.value.f_meter_brand
406
+ brandArr.push(temp)
407
+ })
408
+ this.meterbrands = [{label: '全部', value: ''}, ...brandArr]
409
+ },
410
+
411
+ clear() {
412
+ //清空部门和人员
413
+ this.$refs.paged.$refs.cri.$refs.sel.$children[1].selectres = []
414
+ //部门和人员变为全选
415
+ this.$refs.paged.$refs.cri.$refs.sel.$children[1].$children[0].isSelectAll = false
416
+ this.$refs.paged.$refs.cri.$refs.sel.$children[2].$children[0].isSelectAll = false
417
+ Object.keys(this.$refs.paged.$refs.cri.model).forEach((key) => {
418
+ this.$refs.paged.$refs.cri.model[key] = ''
419
+ })
420
+ },
421
+ show() {
422
+ this.criteriaShow = true
423
+ },
424
+ hidden() {
425
+ this.criteriaShow = !this.criteriaShow
426
+ },
427
+ getRes(condition) {
428
+ this.orgCondtionStr = condition
429
+ },
430
+ dealmsg(val) {
431
+ console.log('---------------dealmsg')
432
+ this.rowdata=val
433
+ this.show=true
434
+ val.model = this.model.model
435
+ this.$dispatch('deal-msg', val)
436
+ },
437
+ view(row) {
438
+ this.currentRow = row;
439
+ this.showAttachment = true;
440
+ },
441
+ closeAttachment() {
442
+ this.showAttachment = false;
443
+ },
444
+ stamp() {
445
+ this.all = false
446
+ //默认选择要打印的列
447
+ this.modelval = defaultPrint.config
448
+ this.fields = this.getfield
449
+ console.log('所有打印字段', this.fields)
450
+ this.printshow = true
451
+ this.put()
452
+ },
453
+ put() {
454
+ // 对Modelval进行排序
455
+ this.sortModelval()
456
+ this.thead = `<tr><th colspan=${this.modelval.length}>补卡查询统计报表</th></tr><tr>`
457
+ for (let key of this.modelval) {
458
+ this.thead += '<th>' + this.fields[key] + '</th>'
459
+ }
460
+ this.thead += '</tr>'
461
+ },
462
+ print() {
463
+ this.$refs.print.PrintAsFile()
464
+ this.printshow = false
465
+ },
466
+ close() {
467
+ this.printshow = false
468
+ this.all = false
469
+ },
470
+ // 对选择的列进行排序
471
+ sortModelval() {
472
+ let sortModel = []
473
+ Object.keys(this.fields).forEach((key) => {
474
+ if (this.modelval.includes(key)) {
475
+ sortModel.push(key)
476
+ }
477
+ })
478
+ this.modelval = sortModel
479
+ console.log('选择的打印的字段', this.modelval)
480
+ },
481
+ async updateParams() {
482
+ await this.$MagLoadParams.loadParam(this.f_filialeid)
483
+ this.initParams()
484
+ },
485
+ },
486
+ watch: {
487
+ 'all'(val) {
488
+ if (val) {
489
+ this.modelval = this.bodyData
490
+ } else {
491
+ this.modelval = defaultPrint.config
492
+ this.put()
493
+ }
494
+ },
495
+ 'modelval.length'() {
496
+ this.put()
497
+ },
498
+ 'orgCondtionStr'(val) {
499
+ let res = val.match(/'(.*?)'/)
500
+ console.log('正则提取:',res && res[1])
501
+ if (res) {
502
+ this.f_filialeid = res[1]
503
+ this.updateParams()
504
+ }
505
+ }
506
+ },
507
+ computed: {
508
+ getCondition() {
509
+ return {condition: `${this.$refs.paged.$refs.cri.condition}` + this.orgCondtionStr}
510
+ },
511
+ getfield() {
512
+ return exportConfig.fillcardConfig
513
+ },
514
+ fillCardTypes() {
515
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('补卡类型')]
516
+ },
517
+ chargeState() {
518
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('补卡状态')]
519
+ },
520
+ }
521
+ }
522
+ </script>