manage-client 3.3.208 → 3.3.209

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.
@@ -1,516 +1,516 @@
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 for="startDate" class="font_normal_body">开始日期</label>
12
- <datepicker id="startDate" placeholder="开始日期" style="width:60%"
13
- v-model="model.startDate"
14
- :value.sync="model.startDate"
15
- :format="'yyyy-MM-dd HH:mm:ss'"
16
- :show-reset-button="true"
17
- >
18
- </datepicker>
19
- </div>
20
- <div class="col-sm-2 form-group">
21
- <label for="endDate" class="font_normal_body">结束日期</label>
22
- <datepicker id="endDate" placeholder="结束日期" style="width:60%"
23
- v-model="model.endDate"
24
- :value.sync="model.endDate"
25
- :format="'yyyy-MM-dd HH:mm:ss'"
26
- :show-reset-button="true"
27
- >
28
- </datepicker>
29
- </div>
30
- <div class="col-sm-2 form-group">
31
- <label class="font_normal_body">用户编号</label>
32
- <input type="text" style="width:60%" class="input_search" v-model="model.f_userinfo_code"
33
- condition="f_userinfo_code = '{}' " placeholder="客户编号">
34
- </div>
35
- <div class="span" style="float:right;">
36
- <button class="button_search button_spacing" @click="search()">查询</button>
37
- <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
38
-
39
- <export-excel :data="$parent.$parent.getCondition"
40
- :field="$parent.$parent.getfield"
41
- :footer="$parent.$parent.footer"
42
- :header="$parent.$parent.other"
43
- sqlurl="api/af-revenue/logic/openapi/exportfile"
44
- sql-name="userSellHandDetaill"
45
- template-name='用户余额分析导出'
46
- :choose-col="true"></export-excel>
47
- <print-data :model="$parent.model" :field="$parent.$parent.getfield"
48
- :defaultfield="$parent.$parent.defaultfield" print-name="用户余额分析打印"
49
- :sumsmodel="$parent.$parent.sumsmodel">
50
-
51
- </print-data>
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
- <res-select-group :initres="$parent.$parent.initres" @re-res="$parent.$parent.getRes" :show-component="['company']" v-ref:sel></res-select-group>
58
- <div class="col-sm-2 form-group">
59
- <label class="font_normal_body">客户名称</label>
60
- <input type="text" style="width:60%" class="input_search" v-model="model.f_user_name"
61
- condition="f_user_name like '%{}%'" placeholder="客户名称">
62
- </div>
63
- <div class="col-sm-2 form-group">
64
- <label class="font_normal_body">用户类型</label>
65
- <v-select :value.sync="model.f_user_type"
66
- :options='$parent.$parent.usertypes' placeholder='请选择' v-model="model.f_user_type"
67
- condition="f_user_type = '{}'"
68
- close-on-select></v-select>
69
- </div>
70
- <div class="col-sm-2 form-group">
71
- <label class="font_normal_body" title="参数名称:气表类型">气表类型</label>
72
- <v-select :value.sync="model.f_meter_type"
73
- :options='$parent.$parent.metertypes' placeholder='请选择' v-model="model.f_meter_type"
74
- condition="f_meter_type = '{}'"
75
- close-on-select></v-select>
76
- </div>
77
- <div class="form-group col-sm-2">
78
- <label class="font_normal_body">地址</label>
79
- <input type="text" style="width:60%" class="input_search" v-model="model.f_address"
80
- condition="f_address like '%{}%'" placeholder='客户地址'>
81
- </div>
82
- <div class="col-sm-2 form-group">
83
- <label class="font_normal_body">用户状态</label>
84
- <v-select
85
- placeholder='用户状态'
86
- value-single
87
- style="width:60%"
88
- :value.sync="model.f_user_state"
89
- v-model="model.f_user_state"
90
- :options='$parent.$parent.userstate'
91
- close-on-select condition="f_user_state ='{}'">
92
- </v-select>
93
- </div>
94
- </div>
95
- </div>
96
- </criteria>
97
-
98
- <data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid :classname="$parent.classname">
99
- <template partial='head'>
100
- <tr>
101
- <th>
102
- <nobr>用户编号</nobr>
103
- </th>
104
- <th>
105
- <nobr>用户姓名</nobr>
106
- </th>
107
- <th>
108
- <nobr>表号</nobr>
109
- </th>
110
- <th>
111
- <nobr>用户类型</nobr>
112
- </th>
113
- <th>
114
- <nobr>气表类型</nobr>
115
- </th>
116
- <!-- <th>-->
117
- <!-- <nobr>用气量</nobr>-->
118
- <!-- </th>-->
119
- <!-- <th>-->
120
- <!-- <nobr>单价</nobr>-->
121
- <!-- </th>-->
122
- <!-- <th>-->
123
- <!-- <nobr>用气金额</nobr>-->
124
- <!-- </th>-->
125
- <th>
126
- <nobr>应收</nobr>
127
- </th>
128
- <th>
129
- <nobr>实收</nobr>
130
- </th>
131
- <th>
132
- <nobr>收费时间</nobr>
133
- </th>
134
- <th>
135
- <nobr>抄表员</nobr>
136
- </th>
137
- <th>
138
- <nobr>上次抄表时间</nobr>
139
- </th>
140
- <th>
141
- <nobr>表底数</nobr>
142
- </th>
143
- <th>
144
- <nobr>上期结余</nobr>
145
- </th>
146
- <th>
147
- <nobr>本期结余</nobr>
148
- </th>
149
- <th>
150
- <nobr>电话</nobr>
151
- </th>
152
- <th>
153
- <nobr>地址</nobr>
154
- </th>
155
- <th>
156
- <nobr>用户状态</nobr>
157
- </th>
158
- </tr>
159
- </template>
160
- <template partial='body'>
161
- <td style="text-align: center;">
162
- <nobr>{{row.f_userinfo_code}}</nobr>
163
- </td>
164
- <td style="text-align: center;">
165
- <nobr>{{row.f_user_name}}</nobr>
166
- </td>
167
- <td style="text-align: center;">
168
- <nobr>{{row.f_meternumber}}</nobr>
169
- </td>
170
- <td style="text-align: center;">
171
- <nobr>{{row.f_user_type}}</nobr>
172
- </td>
173
- <td style="text-align: center;">
174
- <nobr>{{row.f_meter_classify}}</nobr>
175
- </td>
176
- <!-- <td style="text-align: center;">-->
177
- <!-- <nobr>{{row.f_gas}}</nobr>-->
178
- <!-- </td>-->
179
- <!-- <td style="text-align: center;">-->
180
- <!-- <nobr>{{row.f_price}}</nobr>-->
181
- <!-- </td>-->
182
- <!-- <td style="text-align: center;">-->
183
- <!-- <nobr>{{row.f_money}}</nobr>-->
184
- <!-- </td>-->
185
- <td style="text-align: center;">
186
- <nobr>{{row.f_preamount}}</nobr>
187
- </td>
188
- <td style="text-align: center;">
189
- <nobr>{{row.f_collection}}</nobr>
190
- </td>
191
- <td style="text-align: center;">
192
- <nobr>{{row.f_operate_date}}</nobr>
193
- </td>
194
- <td style="text-align: center;">
195
- <nobr>{{row.f_inputtor}}</nobr>
196
- </td>
197
- <td style="text-align: center;">
198
- <nobr>{{row.f_hand_date}}</nobr>
199
- </td>
200
- <td style="text-align: center;">
201
- <nobr>{{row.f_meter_base}}</nobr>
202
- </td>
203
- <td style="text-align: center;">
204
- <nobr>{{row.f_balance}}</nobr>
205
- </td>
206
- <td style="text-align: center;">
207
- <nobr>{{row.f_curbalance}}</nobr>
208
- </td>
209
- <td style="text-align: center;">
210
- <nobr>{{row.f_user_phone}}</nobr>
211
- </td>
212
- <td style="text-align: center;">
213
- <nobr>{{row.f_address}}</nobr>
214
- </td>
215
- <td style="text-align: center;">
216
- <nobr>{{row.f_user_state}}</nobr>
217
- </td>
218
- </template>
219
- <template partial='foot'></template>
220
- </data-grid>
221
- </criteria-paged>
222
-
223
- <table class="table-hover">
224
- <tr style="position: relative" class="table-bordered">
225
- <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
226
- 结余合计:&emsp;{{sumsmodel.f_curbalance}}
227
- </td>
228
- </tr>
229
- </table>
230
- </div>
231
- </div>
232
- </div>
233
- </template>
234
-
235
- <script>
236
- import {PagedList, HttpResetClass} from 'vue-client'
237
- import defaultPrint from './config/DefaultPrint'
238
- import exportConfig from './config/exportConfig'
239
-
240
- let readySomething = async function (self) {
241
- //加载抄表册
242
- self.$MagGetSaleParam.initinputtor();
243
- self.getinputtores();
244
- self.initmeterbook();
245
- self.$refs.paged.$refs.cri.model.startDate = self.$login.toStandardDateString()+' 00:00:00'
246
- self.$refs.paged.$refs.cri.model.endDate = self.$login.toStandardDateString()+' 23:59:59'
247
- // await self.$refs.paged.$refs.cri.search()
248
- await self.$getConfig(self, 'HandplanQuery')
249
- console.log('抄表查询获取默认配置', self.config)
250
- self.defaultfield = [...self.defaultfield, ...self.config.defaultPrint]
251
- console.log('开始初始化参数', self.defaultfield)
252
- await self.$MagLoadParams.loadParam()
253
- // await self.$MagLoadParams.loadParam()
254
- // self.initParams()
255
- console.log('开始查询')
256
- self.sumsmodel = self.$refs.paged.$refs.grid.model.sums
257
- }
258
- export default {
259
- data() {
260
- return {
261
- data: {},
262
- other: [],
263
- footer: [],
264
- model: new PagedList('rs/sql/userSellHandDetaill', 20, {startDate: 'this.model.startDate', endDate: 'this.model.endDate'},{
265
- f_curbalance:0
266
-
267
- }),
268
- gasproperties:[],
269
- initres: {
270
- org:[this.$login.f.orgid],
271
- dep:[],
272
- user:[],
273
- },
274
- show:false,
275
- rowdata:{},
276
- criteriaShow: false,
277
- residentialArea: [],
278
- orgCondtionStr: '',
279
- modelval: [],
280
- inputtouPerson: [],
281
- printshow: false,
282
- all: false,
283
- fields: {},
284
- thead: '',
285
- tfoot: '',
286
-
287
- // 下拉框
288
-
289
- //合计数据
290
- sumsmodel: {},
291
- defaultfield: [],
292
- config: {
293
- defaultPrint: ['f_userinfo_code', 'f_user_name']
294
- },
295
- batchmoneyShow:false,
296
- meterbooks:[{label: '全部',value: ''}], //抄表册
297
- tempfalg :false,
298
- lastorgstr:'',
299
- allorgid:[],
300
- inputtores:[{label: '全部',value: ''}], //抄表员
301
- }
302
- },
303
- ready() {
304
- readySomething(this).then(() => {
305
- this.$emit('ready')
306
- }).catch((error) => {
307
- this.$emit('error', error)
308
- })
309
- },
310
- methods: {
311
- async initmeterbook(orgstr){
312
- if(orgstr == null ){
313
- orgstr = this.f_filialeid;
314
- }
315
- //获取新的抄表册,先去清理所有的抄表册
316
- this.$GetSaleParam.meterbooks = [];
317
- //开始加载新的抄表册
318
- await this.$LoadParams.loadMeterBook(orgstr)
319
- this.meterbooks = [{label: '全部', value: ''}, ...this.$GetSaleParam.getMeterBooks()]
320
- },
321
- async getinputtores () {
322
- // 获取抄表员
323
- let rs = []
324
- if (this.$login.f.f_gasman.length > 0) {
325
- for (let i = 0; i < this.$login.f.f_gasman.length; i++) {
326
- let temp = {
327
- label: this.$login.f.f_gasman[i].name,
328
- value: this.$login.f.f_gasman[i].name
329
- }
330
- rs.push(temp)
331
- }
332
- }
333
- this.inputtores = [{label: '全部', value: ''}, ...rs]
334
- },
335
- async updateParams() {
336
- await this.$MagLoadParams.loadParam(this.f_filialeid)
337
- this.inputtores = [];
338
- this.inputtores.push({label: "全部", value: ""})
339
- if(this.allorgid!=null){
340
- this.allorgid.forEach((res)=>{
341
- this.inputtores = this.inputtores.concat(this.$MagGetSaleParam.getresinputtor(res));
342
- })
343
- }
344
- },
345
- getotherfooter() {
346
- // this.$refs.paged.$refs.cri.$refs.exports.otherData=[];
347
- // this.$refs.paged.$refs.cri.$refs.exports.footerData=[];
348
- this.other = [];
349
- this.footer = [];
350
- // let exportdata = this.getCondition;
351
- let otherInData = [];
352
- otherInData.push(`导出时间: ${this.$login.toStandardTimeString()}`);
353
- let footerData = [], exportfield = this.getfield;
354
- footerData.push("合计");
355
- let self = this;
356
- for (var field in self.sumsmodel) {
357
- footerData.push(`${exportfield[field]}合计:${self.sumsmodel[field]}`);
358
- }
359
- this.footer.push(footerData);
360
- this.other.push(otherInData);
361
- },
362
- search(){
363
- this.$refs.paged.$refs.cri.search()
364
- },
365
- selfSearch(args) {
366
- args.condition = `${args.condition} ` + this.orgCondtionStr
367
- this.model.search(args.condition, args.model)
368
- this.sumsmodel = this.$refs.paged.$refs.grid.model.sums
369
- },
370
- clear() {
371
- //清空部门和人员
372
- this.$refs.paged.$refs.cri.$refs.sel.$children[1].selectres = []
373
- //部门和人员变为全选
374
- this.$refs.paged.$refs.cri.$refs.sel.$children[1].$children[0].isSelectAll = false
375
- this.$refs.paged.$refs.cri.$refs.sel.$children[2].$children[0].isSelectAll = false
376
- Object.keys(this.$refs.paged.$refs.cri.model).forEach((key) => {
377
- this.$refs.paged.$refs.cri.model[key] = []
378
- })
379
- },
380
- show() {
381
- this.criteriaShow = true
382
- },
383
- hidden() {
384
- this.criteriaShow = !this.criteriaShow
385
- },
386
- async getRes(condition,obj) {
387
- this.orgCondtionStr = condition
388
-
389
- },
390
- stamp() {
391
- this.all = false
392
- //默认选择要打印的列
393
- this.modelval = defaultPrint.config
394
- this.fields = this.getfield
395
- console.log('所有打印字段', this.fields)
396
- this.printshow = true
397
- this.put()
398
- },
399
- put() {
400
- // 对Modelval进行排序
401
- this.sortModelval()
402
- this.thead = `<tr><th colspan=${this.modelval.length}>收费查询统计报表</th></tr><tr>`
403
- for (let key of this.modelval) {
404
- this.thead += '<th>' + this.fields[key] + '</th>'
405
- }
406
- this.thead += '</tr>'
407
- },
408
- print() {
409
- this.$refs.print.PrintAsFile()
410
- this.printshow = false
411
- },
412
- dealmsg(val) {
413
- console.log('---------------dealmsg')
414
- this.rowdata=val
415
- this.show=true
416
- val.model = this.model.model
417
- this.$dispatch('deal-msg', val)
418
- },
419
- close() {
420
- this.printshow = false
421
- this.all = false
422
- },
423
- // 对选择的列进行排序
424
- sortModelval() {
425
- let sortModel = []
426
- Object.keys(this.fields).forEach((key) => {
427
- if (this.modelval.includes(key)) {
428
- sortModel.push(key)
429
- }
430
- })
431
- this.modelval = sortModel
432
- console.log('选择的打印的字段', this.modelval)
433
- },
434
- userTypeChange () {
435
- this.gasproperties=[]
436
- if(this.$refs.paged.$refs.cri.model !==null) {
437
- this.$refs.paged.$refs.cri.model.f_gasproperties=''
438
- this.gasproperties = this.$appdata.getParam(this.$refs.paged.$refs.cri.model.f_user_type[0])
439
- }
440
- else{
441
- this.gasproperties =[{label: '全部', value: ''}]
442
- }
443
- },
444
- },
445
- watch: {
446
- 'all'(val) {
447
- if (val) {
448
- this.modelval = this.bodyData
449
- } else {
450
- this.modelval = defaultPrint.config
451
- this.put()
452
- }
453
- },
454
- 'modelval.length'() {
455
- this.put()
456
- },
457
- sumsmodel: {
458
- handler: function (val) {
459
- this.getotherfooter();
460
- },
461
- deep: true
462
- },
463
- async 'orgCondtionStr'(val) {
464
- this.$refs.paged.$refs.cri.model.f_inputtor = []
465
- this.$refs.paged.$refs.cri.model.f_meter_book = []
466
- this.meterbooks = [{label: '全部',value: ''}];
467
- if(this.lastorgstr != val){
468
- this.tempfalg = true;
469
- this.lastorgstr = val;
470
- }
471
- if(this.tempfalg && val != null && val!='' && val.indexOf("(")>-1){
472
- this.tempfalg = false;
473
- let a = val.substring(val.indexOf("(")+2)
474
- await this.initmeterbook(a.substring(0,a.indexOf(")")-1));
475
- }
476
- let res = val.match(/'(.*?)'/)
477
- console.log('正则提取:',res && res[1])
478
- if (res) {
479
- this.f_filialeid = res[1]
480
- if(res.input !=null){
481
- let resorgid = res.input.substring(res.input.indexOf("'"));
482
- if(resorgid!= null && resorgid!=''){
483
- resorgid = resorgid.substring(0,resorgid.lastIndexOf("'")+1);
484
- // resorgid = resorgid.replaceAll("'","");
485
- resorgid = resorgid.replace(/'/g,"");
486
- this.allorgid = resorgid.split(",")
487
- }
488
- }
489
- this.updateParams()
490
- }
491
- },
492
- },
493
- computed: {
494
- getCondition() {
495
- return {
496
- condition : `${this.$refs.paged.$refs.cri.condition}` + this.orgCondtionStr,
497
- startDate : this.$refs.paged.$refs.cri.model.startDate,
498
- endDate : this.$refs.paged.$refs.cri.model.endDate
499
- }
500
- },
501
- getfield() {
502
- return exportConfig.UserSellHeadDetailConfig
503
- },
504
- metertypes () {
505
- return [{label: ' 全部 ', value: ''}, ...this.$appdata.getParam('气表类型')]
506
- },
507
- userstate() {
508
- return [{label: '全部', value: ''}, ...this.$appdata.getParam('用户状态')]
509
- },
510
- usertypes() {
511
- return [{label: ' 全部 ', value: ''}, ...this.$appdata.getParam('用户类型')]
512
- }
513
-
514
- }
515
- }
516
- </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 for="startDate" class="font_normal_body">开始日期</label>
12
+ <datepicker id="startDate" placeholder="开始日期" style="width:60%"
13
+ v-model="model.startDate"
14
+ :value.sync="model.startDate"
15
+ :format="'yyyy-MM-dd HH:mm:ss'"
16
+ :show-reset-button="true"
17
+ >
18
+ </datepicker>
19
+ </div>
20
+ <div class="col-sm-2 form-group">
21
+ <label for="endDate" class="font_normal_body">结束日期</label>
22
+ <datepicker id="endDate" placeholder="结束日期" style="width:60%"
23
+ v-model="model.endDate"
24
+ :value.sync="model.endDate"
25
+ :format="'yyyy-MM-dd HH:mm:ss'"
26
+ :show-reset-button="true"
27
+ >
28
+ </datepicker>
29
+ </div>
30
+ <div class="col-sm-2 form-group">
31
+ <label class="font_normal_body">用户编号</label>
32
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_userinfo_code"
33
+ condition="f_userinfo_code = '{}' " placeholder="客户编号">
34
+ </div>
35
+ <div class="span" style="float:right;">
36
+ <button class="button_search button_spacing" @click="search()">查询</button>
37
+ <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
38
+
39
+ <export-excel :data="$parent.$parent.getCondition"
40
+ :field="$parent.$parent.getfield"
41
+ :footer="$parent.$parent.footer"
42
+ :header="$parent.$parent.other"
43
+ sqlurl="api/af-revenue/logic/openapi/exportfile"
44
+ sql-name="userSellHandDetaill"
45
+ template-name='用户余额分析导出'
46
+ :choose-col="true"></export-excel>
47
+ <print-data :model="$parent.model" :field="$parent.$parent.getfield"
48
+ :defaultfield="$parent.$parent.defaultfield" print-name="用户余额分析打印"
49
+ :sumsmodel="$parent.$parent.sumsmodel">
50
+
51
+ </print-data>
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
+ <res-select-group :initres="$parent.$parent.initres" @re-res="$parent.$parent.getRes" :show-component="['company']" v-ref:sel></res-select-group>
58
+ <div class="col-sm-2 form-group">
59
+ <label class="font_normal_body">客户名称</label>
60
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_user_name"
61
+ condition="f_user_name like '%{}%'" placeholder="客户名称">
62
+ </div>
63
+ <div class="col-sm-2 form-group">
64
+ <label class="font_normal_body">用户类型</label>
65
+ <v-select :value.sync="model.f_user_type"
66
+ :options='$parent.$parent.usertypes' placeholder='请选择' v-model="model.f_user_type"
67
+ condition="f_user_type = '{}'"
68
+ close-on-select></v-select>
69
+ </div>
70
+ <div class="col-sm-2 form-group">
71
+ <label class="font_normal_body" title="参数名称:气表类型">气表类型</label>
72
+ <v-select :value.sync="model.f_meter_type"
73
+ :options='$parent.$parent.metertypes' placeholder='请选择' v-model="model.f_meter_type"
74
+ condition="f_meter_type = '{}'"
75
+ close-on-select></v-select>
76
+ </div>
77
+ <div class="form-group col-sm-2">
78
+ <label class="font_normal_body">地址</label>
79
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_address"
80
+ condition="f_address like '%{}%'" placeholder='客户地址'>
81
+ </div>
82
+ <div class="col-sm-2 form-group">
83
+ <label class="font_normal_body">用户状态</label>
84
+ <v-select
85
+ placeholder='用户状态'
86
+ value-single
87
+ style="width:60%"
88
+ :value.sync="model.f_user_state"
89
+ v-model="model.f_user_state"
90
+ :options='$parent.$parent.userstate'
91
+ close-on-select condition="f_user_state ='{}'">
92
+ </v-select>
93
+ </div>
94
+ </div>
95
+ </div>
96
+ </criteria>
97
+
98
+ <data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid :classname="$parent.classname">
99
+ <template partial='head'>
100
+ <tr>
101
+ <th>
102
+ <nobr>用户编号</nobr>
103
+ </th>
104
+ <th>
105
+ <nobr>用户姓名</nobr>
106
+ </th>
107
+ <th>
108
+ <nobr>表号</nobr>
109
+ </th>
110
+ <th>
111
+ <nobr>用户类型</nobr>
112
+ </th>
113
+ <th>
114
+ <nobr>气表类型</nobr>
115
+ </th>
116
+ <!-- <th>-->
117
+ <!-- <nobr>用气量</nobr>-->
118
+ <!-- </th>-->
119
+ <!-- <th>-->
120
+ <!-- <nobr>单价</nobr>-->
121
+ <!-- </th>-->
122
+ <!-- <th>-->
123
+ <!-- <nobr>用气金额</nobr>-->
124
+ <!-- </th>-->
125
+ <th>
126
+ <nobr>应收</nobr>
127
+ </th>
128
+ <th>
129
+ <nobr>实收</nobr>
130
+ </th>
131
+ <th>
132
+ <nobr>收费时间</nobr>
133
+ </th>
134
+ <th>
135
+ <nobr>抄表员</nobr>
136
+ </th>
137
+ <th>
138
+ <nobr>上次抄表时间</nobr>
139
+ </th>
140
+ <th>
141
+ <nobr>表底数</nobr>
142
+ </th>
143
+ <th>
144
+ <nobr>上期结余</nobr>
145
+ </th>
146
+ <th>
147
+ <nobr>本期结余</nobr>
148
+ </th>
149
+ <th>
150
+ <nobr>电话</nobr>
151
+ </th>
152
+ <th>
153
+ <nobr>地址</nobr>
154
+ </th>
155
+ <th>
156
+ <nobr>用户状态</nobr>
157
+ </th>
158
+ </tr>
159
+ </template>
160
+ <template partial='body'>
161
+ <td style="text-align: center;">
162
+ <nobr>{{row.f_userinfo_code}}</nobr>
163
+ </td>
164
+ <td style="text-align: center;">
165
+ <nobr>{{row.f_user_name}}</nobr>
166
+ </td>
167
+ <td style="text-align: center;">
168
+ <nobr>{{row.f_meternumber}}</nobr>
169
+ </td>
170
+ <td style="text-align: center;">
171
+ <nobr>{{row.f_user_type}}</nobr>
172
+ </td>
173
+ <td style="text-align: center;">
174
+ <nobr>{{row.f_meter_classify}}</nobr>
175
+ </td>
176
+ <!-- <td style="text-align: center;">-->
177
+ <!-- <nobr>{{row.f_gas}}</nobr>-->
178
+ <!-- </td>-->
179
+ <!-- <td style="text-align: center;">-->
180
+ <!-- <nobr>{{row.f_price}}</nobr>-->
181
+ <!-- </td>-->
182
+ <!-- <td style="text-align: center;">-->
183
+ <!-- <nobr>{{row.f_money}}</nobr>-->
184
+ <!-- </td>-->
185
+ <td style="text-align: center;">
186
+ <nobr>{{row.f_preamount}}</nobr>
187
+ </td>
188
+ <td style="text-align: center;">
189
+ <nobr>{{row.f_collection}}</nobr>
190
+ </td>
191
+ <td style="text-align: center;">
192
+ <nobr>{{row.f_operate_date}}</nobr>
193
+ </td>
194
+ <td style="text-align: center;">
195
+ <nobr>{{row.f_inputtor}}</nobr>
196
+ </td>
197
+ <td style="text-align: center;">
198
+ <nobr>{{row.f_hand_date}}</nobr>
199
+ </td>
200
+ <td style="text-align: center;">
201
+ <nobr>{{row.f_meter_base}}</nobr>
202
+ </td>
203
+ <td style="text-align: center;">
204
+ <nobr>{{row.f_balance}}</nobr>
205
+ </td>
206
+ <td style="text-align: center;">
207
+ <nobr>{{row.f_curbalance}}</nobr>
208
+ </td>
209
+ <td style="text-align: center;">
210
+ <nobr>{{row.f_user_phone}}</nobr>
211
+ </td>
212
+ <td style="text-align: center;">
213
+ <nobr>{{row.f_address}}</nobr>
214
+ </td>
215
+ <td style="text-align: center;">
216
+ <nobr>{{row.f_user_state}}</nobr>
217
+ </td>
218
+ </template>
219
+ <template partial='foot'></template>
220
+ </data-grid>
221
+ </criteria-paged>
222
+
223
+ <table class="table-hover">
224
+ <tr style="position: relative" class="table-bordered">
225
+ <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
226
+ 结余合计:&emsp;{{sumsmodel.f_curbalance}}
227
+ </td>
228
+ </tr>
229
+ </table>
230
+ </div>
231
+ </div>
232
+ </div>
233
+ </template>
234
+
235
+ <script>
236
+ import {PagedList, HttpResetClass} from 'vue-client'
237
+ import defaultPrint from './config/DefaultPrint'
238
+ import exportConfig from './config/exportConfig'
239
+
240
+ let readySomething = async function (self) {
241
+ //加载抄表册
242
+ self.$MagGetSaleParam.initinputtor();
243
+ self.getinputtores();
244
+ self.initmeterbook();
245
+ self.$refs.paged.$refs.cri.model.startDate = self.$login.toStandardDateString()+' 00:00:00'
246
+ self.$refs.paged.$refs.cri.model.endDate = self.$login.toStandardDateString()+' 23:59:59'
247
+ // await self.$refs.paged.$refs.cri.search()
248
+ await self.$getConfig(self, 'HandplanQuery')
249
+ console.log('抄表查询获取默认配置', self.config)
250
+ self.defaultfield = [...self.defaultfield, ...self.config.defaultPrint]
251
+ console.log('开始初始化参数', self.defaultfield)
252
+ await self.$MagLoadParams.loadParam()
253
+ // await self.$MagLoadParams.loadParam()
254
+ // self.initParams()
255
+ console.log('开始查询')
256
+ self.sumsmodel = self.$refs.paged.$refs.grid.model.sums
257
+ }
258
+ export default {
259
+ data() {
260
+ return {
261
+ data: {},
262
+ other: [],
263
+ footer: [],
264
+ model: new PagedList('rs/sql/userSellHandDetaill', 20, {startDate: 'this.model.startDate', endDate: 'this.model.endDate'},{
265
+ f_curbalance:0
266
+
267
+ }),
268
+ gasproperties:[],
269
+ initres: {
270
+ org:[this.$login.f.orgid],
271
+ dep:[],
272
+ user:[],
273
+ },
274
+ show:false,
275
+ rowdata:{},
276
+ criteriaShow: false,
277
+ residentialArea: [],
278
+ orgCondtionStr: '',
279
+ modelval: [],
280
+ inputtouPerson: [],
281
+ printshow: false,
282
+ all: false,
283
+ fields: {},
284
+ thead: '',
285
+ tfoot: '',
286
+
287
+ // 下拉框
288
+
289
+ //合计数据
290
+ sumsmodel: {},
291
+ defaultfield: [],
292
+ config: {
293
+ defaultPrint: ['f_userinfo_code', 'f_user_name']
294
+ },
295
+ batchmoneyShow:false,
296
+ meterbooks:[{label: '全部',value: ''}], //抄表册
297
+ tempfalg :false,
298
+ lastorgstr:'',
299
+ allorgid:[],
300
+ inputtores:[{label: '全部',value: ''}], //抄表员
301
+ }
302
+ },
303
+ ready() {
304
+ readySomething(this).then(() => {
305
+ this.$emit('ready')
306
+ }).catch((error) => {
307
+ this.$emit('error', error)
308
+ })
309
+ },
310
+ methods: {
311
+ async initmeterbook(orgstr){
312
+ if(orgstr == null ){
313
+ orgstr = this.f_filialeid;
314
+ }
315
+ //获取新的抄表册,先去清理所有的抄表册
316
+ this.$GetSaleParam.meterbooks = [];
317
+ //开始加载新的抄表册
318
+ await this.$LoadParams.loadMeterBook(orgstr)
319
+ this.meterbooks = [{label: '全部', value: ''}, ...this.$GetSaleParam.getMeterBooks()]
320
+ },
321
+ async getinputtores () {
322
+ // 获取抄表员
323
+ let rs = []
324
+ if (this.$login.f.f_gasman.length > 0) {
325
+ for (let i = 0; i < this.$login.f.f_gasman.length; i++) {
326
+ let temp = {
327
+ label: this.$login.f.f_gasman[i].name,
328
+ value: this.$login.f.f_gasman[i].name
329
+ }
330
+ rs.push(temp)
331
+ }
332
+ }
333
+ this.inputtores = [{label: '全部', value: ''}, ...rs]
334
+ },
335
+ async updateParams() {
336
+ await this.$MagLoadParams.loadParam(this.f_filialeid)
337
+ this.inputtores = [];
338
+ this.inputtores.push({label: "全部", value: ""})
339
+ if(this.allorgid!=null){
340
+ this.allorgid.forEach((res)=>{
341
+ this.inputtores = this.inputtores.concat(this.$MagGetSaleParam.getresinputtor(res));
342
+ })
343
+ }
344
+ },
345
+ getotherfooter() {
346
+ // this.$refs.paged.$refs.cri.$refs.exports.otherData=[];
347
+ // this.$refs.paged.$refs.cri.$refs.exports.footerData=[];
348
+ this.other = [];
349
+ this.footer = [];
350
+ // let exportdata = this.getCondition;
351
+ let otherInData = [];
352
+ otherInData.push(`导出时间: ${this.$login.toStandardTimeString()}`);
353
+ let footerData = [], exportfield = this.getfield;
354
+ footerData.push("合计");
355
+ let self = this;
356
+ for (var field in self.sumsmodel) {
357
+ footerData.push(`${exportfield[field]}合计:${self.sumsmodel[field]}`);
358
+ }
359
+ this.footer.push(footerData);
360
+ this.other.push(otherInData);
361
+ },
362
+ search(){
363
+ this.$refs.paged.$refs.cri.search()
364
+ },
365
+ selfSearch(args) {
366
+ args.condition = `${args.condition} ` + this.orgCondtionStr
367
+ this.model.search(args.condition, args.model)
368
+ this.sumsmodel = this.$refs.paged.$refs.grid.model.sums
369
+ },
370
+ clear() {
371
+ //清空部门和人员
372
+ this.$refs.paged.$refs.cri.$refs.sel.$children[1].selectres = []
373
+ //部门和人员变为全选
374
+ this.$refs.paged.$refs.cri.$refs.sel.$children[1].$children[0].isSelectAll = false
375
+ this.$refs.paged.$refs.cri.$refs.sel.$children[2].$children[0].isSelectAll = false
376
+ Object.keys(this.$refs.paged.$refs.cri.model).forEach((key) => {
377
+ this.$refs.paged.$refs.cri.model[key] = []
378
+ })
379
+ },
380
+ show() {
381
+ this.criteriaShow = true
382
+ },
383
+ hidden() {
384
+ this.criteriaShow = !this.criteriaShow
385
+ },
386
+ async getRes(condition,obj) {
387
+ this.orgCondtionStr = condition
388
+
389
+ },
390
+ stamp() {
391
+ this.all = false
392
+ //默认选择要打印的列
393
+ this.modelval = defaultPrint.config
394
+ this.fields = this.getfield
395
+ console.log('所有打印字段', this.fields)
396
+ this.printshow = true
397
+ this.put()
398
+ },
399
+ put() {
400
+ // 对Modelval进行排序
401
+ this.sortModelval()
402
+ this.thead = `<tr><th colspan=${this.modelval.length}>收费查询统计报表</th></tr><tr>`
403
+ for (let key of this.modelval) {
404
+ this.thead += '<th>' + this.fields[key] + '</th>'
405
+ }
406
+ this.thead += '</tr>'
407
+ },
408
+ print() {
409
+ this.$refs.print.PrintAsFile()
410
+ this.printshow = false
411
+ },
412
+ dealmsg(val) {
413
+ console.log('---------------dealmsg')
414
+ this.rowdata=val
415
+ this.show=true
416
+ val.model = this.model.model
417
+ this.$dispatch('deal-msg', val)
418
+ },
419
+ close() {
420
+ this.printshow = false
421
+ this.all = false
422
+ },
423
+ // 对选择的列进行排序
424
+ sortModelval() {
425
+ let sortModel = []
426
+ Object.keys(this.fields).forEach((key) => {
427
+ if (this.modelval.includes(key)) {
428
+ sortModel.push(key)
429
+ }
430
+ })
431
+ this.modelval = sortModel
432
+ console.log('选择的打印的字段', this.modelval)
433
+ },
434
+ userTypeChange () {
435
+ this.gasproperties=[]
436
+ if(this.$refs.paged.$refs.cri.model !==null) {
437
+ this.$refs.paged.$refs.cri.model.f_gasproperties=''
438
+ this.gasproperties = this.$appdata.getParam(this.$refs.paged.$refs.cri.model.f_user_type[0])
439
+ }
440
+ else{
441
+ this.gasproperties =[{label: '全部', value: ''}]
442
+ }
443
+ },
444
+ },
445
+ watch: {
446
+ 'all'(val) {
447
+ if (val) {
448
+ this.modelval = this.bodyData
449
+ } else {
450
+ this.modelval = defaultPrint.config
451
+ this.put()
452
+ }
453
+ },
454
+ 'modelval.length'() {
455
+ this.put()
456
+ },
457
+ sumsmodel: {
458
+ handler: function (val) {
459
+ this.getotherfooter();
460
+ },
461
+ deep: true
462
+ },
463
+ async 'orgCondtionStr'(val) {
464
+ this.$refs.paged.$refs.cri.model.f_inputtor = []
465
+ this.$refs.paged.$refs.cri.model.f_meter_book = []
466
+ this.meterbooks = [{label: '全部',value: ''}];
467
+ if(this.lastorgstr != val){
468
+ this.tempfalg = true;
469
+ this.lastorgstr = val;
470
+ }
471
+ if(this.tempfalg && val != null && val!='' && val.indexOf("(")>-1){
472
+ this.tempfalg = false;
473
+ let a = val.substring(val.indexOf("(")+2)
474
+ await this.initmeterbook(a.substring(0,a.indexOf(")")-1));
475
+ }
476
+ let res = val.match(/'(.*?)'/)
477
+ console.log('正则提取:',res && res[1])
478
+ if (res) {
479
+ this.f_filialeid = res[1]
480
+ if(res.input !=null){
481
+ let resorgid = res.input.substring(res.input.indexOf("'"));
482
+ if(resorgid!= null && resorgid!=''){
483
+ resorgid = resorgid.substring(0,resorgid.lastIndexOf("'")+1);
484
+ // resorgid = resorgid.replaceAll("'","");
485
+ resorgid = resorgid.replace(/'/g,"");
486
+ this.allorgid = resorgid.split(",")
487
+ }
488
+ }
489
+ this.updateParams()
490
+ }
491
+ },
492
+ },
493
+ computed: {
494
+ getCondition() {
495
+ return {
496
+ condition : `${this.$refs.paged.$refs.cri.condition}` + this.orgCondtionStr,
497
+ startDate : this.$refs.paged.$refs.cri.model.startDate,
498
+ endDate : this.$refs.paged.$refs.cri.model.endDate
499
+ }
500
+ },
501
+ getfield() {
502
+ return exportConfig.UserSellHeadDetailConfig
503
+ },
504
+ metertypes () {
505
+ return [{label: ' 全部 ', value: ''}, ...this.$appdata.getParam('气表类型')]
506
+ },
507
+ userstate() {
508
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('用户状态')]
509
+ },
510
+ usertypes() {
511
+ return [{label: ' 全部 ', value: ''}, ...this.$appdata.getParam('用户类型')]
512
+ }
513
+
514
+ }
515
+ }
516
+ </script>