manage-client 3.3.91 → 3.3.93

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,470 +1,463 @@
1
- <template>
2
- <div v-if="!listpage" @keyup.enter="search">
3
- <criteria-paged :model="model" v-ref:paged @sort="sort">
4
- <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
5
- <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
6
- <div class="row">
7
- <res-select-group :style="$parent.$parent.style" :initres="$parent.$parent.initres" @re-res="$parent.$parent.getRes" :mul="false" :style="$parent.$parent.style" v-ref:sel></res-select-group>
8
- <div :class="$parent.$parent.style" >
9
- <label for="startDate" class="font_normal_body">开始日期</label>
10
- <datepicker placeholder="开始日期" style="width:60%"
11
- v-model="model.f_startDate"
12
- :value.sync="model.f_startDate"
13
- :format="'yyyy-MM-dd'"
14
- class="datepicker"
15
- :show-reset-button="true"
16
- class="select"
17
- >
18
- </datepicker>
19
- </div>
20
- <div :class="$parent.$parent.style" >
21
- <label for="endDate" class="font_normal_body">结束日期</label>
22
- <datepicker placeholder="结束日期" style="width:60%"
23
- v-model="model.f_endDate"
24
- :value.sync="model.f_endDate"
25
- :format="'yyyy-MM-dd'"
26
- class="datepicker"
27
- :show-reset-button="true"
28
- class="select"
29
- >
30
- </datepicker>
31
- </div>
32
- <div :class="$parent.$parent.style">
33
- <label class="font_normal_body">用气性质</label>
34
- <v-select :value.sync="model.f_gasproperties" v-model="model.f_gasproperties" multiple
35
- :options='$parent.$parent.gasproperties' placeholder='请选择'
36
- condition="f_gasproperties in {}"
37
- close-on-select></v-select>
38
- </div>
39
- <div :class="$parent.$parent.style" title="参数名称:【缴费操作类型】">
40
- <label class="font_normal_body">操作类型</label>
41
- <v-select :value.sync="model.f_type" v-model="model.f_type"
42
- :options='$parent.$parent.operates' placeholder='请选择'
43
- condition="f_type in {}" multiple
44
- close-on-select></v-select>
45
- </div>
46
- <div :class="$parent.$parent.style">
47
- <label class="font_normal_body">收费状态</label>
48
- <v-select :value.sync="model.f_state" v-model="model.f_state" multiple
49
- :options='$parent.$parent.sellstate' placeholder='请选择'
50
- condition="f_state in {}"
51
- close-on-select></v-select>
52
- </div>
53
- <div :class="$parent.$parent.style">
54
- <label class="font_normal_body">缴费渠道</label>
55
- <v-select :value.sync="model.f_payment" v-model="model.f_payment"
56
- :options='$parent.$parent.paymentchannels' placeholder='请选择'
57
- condition="f_payment {} "
58
- close-on-select></v-select>
59
- </div>
60
- <div :class="$parent.$parent.style">
61
- <label class="font_normal_body">气表品牌</label>
62
- <v-select :value.sync="model.f_meter_brand" multiple
63
- v-model="model.f_meter_brand"
64
- :options='$parent.$parent.meterbrands' placeholder='请选择'
65
- condition="f_meter_brand in {}"
66
- close-on-select></v-select>
67
- </div>
68
- <div :class="$parent.$parent.style">
69
- <label class="font_normal_body">&nbsp;小&nbsp;&nbsp;&nbsp;&nbsp;区&nbsp;</label>
70
- <input @keyup.enter="search" style="width:60%" type="text" class="input_search" v-model="model.f_residential_area"
71
- placeholder='请输入小区'
72
- >
73
- <!-- condition="f_residential_area like '%{}%'"-->
74
- </div>
75
- <div class="button-range" style="float:right;margin-top:10px">
76
- <button class="button_search button_spacing" @click="search()">查询</button>
77
- <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
78
- <export-excel :data="$parent.$parent.getCondition"
79
- :field="$parent.$parent.getfield"
80
- sqlurl="rs/logic/exportfile" sql-name="aode_dayReport" template-name='日清单' :choose-col="true"
81
- class="button_export button_spacing"></export-excel>
82
- <day-report-list-print :countmodel="{sumsmodel:$parent.$parent.sumsmodel,model:$parent.$parent.model,orgname:$parent.$parent.orgname,depname:$parent.$parent.depname}"></day-report-list-print>
83
- <div style="float: right" class="button_spacing" :class="{'button_shrink_left':$parent.$parent.criteriaShow,'button_shrink_right':!$parent.$parent.criteriaShow}" @click="$parent.$parent.show()"></div>
84
- </div>
85
- <div :class="$parent.$parent.style">
86
- <label class="font_normal_body">&nbsp;表&nbsp;&nbsp;&nbsp;&nbsp;号&nbsp;</label>
87
- <input type="text" style="width:60%" class="input_search" v-model="model.f_meternumber"
88
- placeholder="表号">
89
- <!-- condition="f_meternumber = '{}' " -->
90
- </div>
91
- <div :class="$parent.$parent.style">
92
- <label class="font_normal_body">&nbsp;地&nbsp;&nbsp;&nbsp;&nbsp;址&nbsp;</label>
93
- <input type="text" style="width:60%" class="input_search" v-model="model.f_address"
94
- condition="f_address like '%{}%'" placeholder='客户地址'>
95
- </div>
96
- <div :class="$parent.$parent.style">
97
- <label class="font_normal_body">付款方式</label>
98
- <v-select id="f_payment"
99
- v-model="model.f_payment"
100
- placeholder='请选择'
101
- condition="f_payment ='{}'"
102
- :value.sync="model.f_payment"
103
- :options='$parent.$parent.payments'
104
- close-on-select clear-button>
105
- </v-select>
106
- </div>
107
- </div>
108
- </div>
109
- </criteria>
110
- <data-grid :model="model" :sumsmodel="sumsmodel" partial='list' class="list_area table_sy" v-ref:grid >
111
- <template partial='head'>
112
- <tr>
113
- <th>
114
- <data-order field="f_userinfo_code" name="客户编号"></data-order>
115
- <!--<nobr>客户编号</nobr>-->
116
- </th>
117
- <th><data-order field="f_user_name" name="客户姓名"></data-order>
118
- <!--<nobr>客户姓名</nobr>-->
119
- </th>
120
- <th><nobr>地址</nobr></th>
121
- <th>
122
- <data-order field="f_meter_brand" name="气表厂家"></data-order>
123
- </th>
124
- <th><nobr>表号</nobr></th>
125
- <th><data-order field="f_operate_date" name="操作时间"></data-order>
126
- <!--<nobr>操作时间</nobr>-->
127
- </th>
128
- <!-- <th>-->
129
- <!-- <data-order field="f_stair1price" name="1单价"></data-order>-->
130
- <!-- </th>-->
131
- <!-- <th>-->
132
- <!-- <data-order field="f_stair1amount" name="1气量"></data-order>-->
133
- <!-- </th>-->
134
- <!-- <th>-->
135
- <!-- <data-order field="f_stair2price" name="2单价"></data-order>-->
136
- <!-- </th>-->
137
- <!-- <th>-->
138
- <!-- <data-order field="f_stair2amount" name="2气量"></data-order>-->
139
- <!-- </th>-->
140
- <!-- <th>-->
141
- <!-- <data-order field="f_stair3price" name="3单价"></data-order>-->
142
- <!-- </th>-->
143
- <!-- <th>-->
144
- <!-- <data-order field="f_stair3amount" name="3气量"></data-order>-->
145
- <!-- </th>-->
146
- <th>
147
- <data-order field="f_pregas" name="气量"></data-order>
148
- </th>
149
- <th>
150
- <data-order field="f_preamount" name="应收金额"></data-order>
151
- </th>
152
- <th>
153
- <data-order field="f_collection" name="实收金额"></data-order>
154
-
155
- </th>
156
- <th><nobr>上期余额</nobr></th>
157
- <th><nobr>本期余额</nobr></th>
158
- <th>
159
- <data-order field="f_payment" name="付款方式"></data-order>
160
- <!--<nobr>付款方式</nobr>-->
161
- </th>
162
- <th>
163
- <data-order field="f_type" name="收费类型"></data-order>
164
- <!--<nobr>收费类型</nobr>-->
165
- </th>
166
- <th><nobr>收费状态</nobr></th>
167
- <th><nobr>气表品牌</nobr></th>
168
- <th><nobr>小区</nobr></th>
169
- <th><nobr>表号</nobr></th>
170
- <th><nobr>地址</nobr></th>
171
- <th>
172
- <data-order field="f_operator" name="操作员"></data-order>
173
- </th>
174
- <th>
175
- <data-order field="f_user_type" name="客户类型"></data-order>
176
- <!--<nobr>客户类型</nobr>-->
177
- </th>
178
- <th><nobr>备注</nobr></th>
179
-
180
- </tr>
181
- </template>
182
- <template partial='body'>
183
- <td style="text-align: center;"><nobr>
184
- <span @click="$parent.$parent.$parent.showmsg(row)"><a>{{row.f_userinfo_code}}</a></span>
185
- </nobr> </td>
186
- <td style="text-align: left;"><nobr>{{row.f_user_name}}</nobr></td>
187
- <td style="text-align: center;"><nobr>{{row.f_address}}</nobr></td>
188
- <td style="text-align: center;"><nobr>{{row.f_meter_brand}}</nobr></td>
189
- <td style="text-align: center;"><nobr>{{row.f_meternumber}}</nobr></td>
190
- <td style="text-align: center;"><nobr>{{row.f_operate_date}}</nobr></td>
191
- <!-- <td style="text-align: center;"><nobr>{{row.f_stair1price}}</nobr></td>-->
192
- <!-- <td style="text-align: center;"><nobr>{{row.f_stair1amount}}</nobr></td>-->
193
- <!-- <td style="text-align: center;"><nobr>{{row.f_stair2price}}</nobr></td>-->
194
- <!-- <td style="text-align: center;"><nobr>{{row.f_stair2amount}}</nobr></td>-->
195
- <!-- <td style="text-align: center;"><nobr>{{row.f_stair3price}}</nobr></td>-->
196
- <!-- <td style="text-align: center;"><nobr>{{row.f_stair3amount}}</nobr></td>-->
197
- <td style="text-align: center;"><nobr>{{row.f_pregas}}</nobr></td>
198
- <td style="text-align: center;"><nobr>{{row.f_preamount}}</nobr></td>
199
- <td style="text-align: center;"><nobr>{{row.f_collection}}</nobr></td>
200
- <td style="text-align: center;"><nobr>{{row.f_balance}}</nobr></td>
201
- <td style="text-align: center;"><nobr>{{row.f_curbalance}}</nobr></td>
202
- <td style="text-align: center;"><nobr>{{row.f_payment}}</nobr></td>
203
- <td style="text-align: center;"><nobr>{{row.f_type}}</nobr></td>
204
- <td style="text-align: center;"><nobr>{{row.f_state}}</nobr></td>
205
- <td style="text-align: center;"><nobr>{{row.f_meter_brand}}</nobr></td>
206
- <td style="text-align: center;"><nobr>{{row.f_residential_area}}</nobr></td>
207
- <td style="text-align: center;"><nobr>{{row.f_meternumber}}</nobr></td>
208
- <td style="text-align: center;"><nobr>{{row.f_address}}</nobr></td>
209
- <td style="text-align: center;"><nobr>{{row.f_operator}}</nobr></td>
210
- <td style="text-align: center;"><nobr>{{row.f_user_type}}</nobr></td>
211
- <td style="text-align: left;"><nobr>{{row.f_comments}}</nobr></td>
212
- </template>
213
- </data-grid>
214
- </criteria-paged>
215
- <table class="table-hover">
216
- <tr style="position: relative" class="table-bordered">
217
- <td
218
- style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;color: #5CB95C;font-weight: bold">
219
- 汇总信息
220
- </td>
221
- <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
222
- 气量合计:&emsp;{{sumsmodel.f_pregas}}
223
- </td>
224
- <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
225
- 实收金额合计:&emsp;{{sumsmodel.f_collection}}
226
- </td>
227
- <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
228
- 交易次数合计:&emsp;{{totalCount}}
229
- </td>
230
- </tr>
231
- </table>
232
- </div>
233
- <div v-if="listpage">
234
- <user-info-detail-manage-new :f_userinfo_id="rowdata.f_userinfo_id" @cancel-main="cancel"></user-info-detail-manage-new>
235
- </div>
236
- </template>
237
-
238
- <script>
239
-
240
- import { PagedList } from 'vue-client'
241
- import exportConfig from '../../components/sale/config/exportConfig'
242
- import DayReportSummary from "../../components/sale/report/aode/DayReportSummary";
243
- let readyGen = async function (self) {
244
- await self.$MagLoadParams.loadParam()
245
- self.initParams()
246
- }
247
- export default {
248
- components: {DayReportSummary},
249
- title: '缴费明细报表',
250
- props: {
251
- style: {
252
- type: String,
253
- default: 'col-sm-2 form-group'
254
- },
255
- },
256
- data() {
257
- return {
258
- orderDefault: "'f_operate_date'",
259
- orderFields: {
260
- f_userinfo_code: 'no'
261
- },
262
- initres: {
263
- org:[this.$login.f.orgid],
264
- dep:[this.$login.f.depids],
265
- user:[this.$login.f.id]
266
- },
267
- model: new PagedList('rs/sql/aode_dayReport', 20, {orderitem: "'f_operate_date'"},{
268
- f_pregas: 0,
269
- f_collection: 0,
270
- // f_count_open: 0,
271
- // f_pregas_open: 0,
272
- // f_collection_open: 0,
273
- // f_count_zg: 0,
274
- // f_pregas_zg: 0,
275
- // f_collection_zg: 0,
276
- // f_count_bk: 0,
277
- // f_pregas_bk: 0,
278
- // f_collection_bk: 0,
279
- // f_count_bq: 0,
280
- // f_pregas_bq: 0,
281
- // f_collection_bq: 0,
282
- // f_count_hb: 0,
283
- // f_pregas_hb: 0,
284
- // f_collection_hb: 0,
285
- // f_count_cz: 0,
286
- // f_pregas_cz: 0,
287
- // f_collection_cz: 0,
288
- // f_sum_count:0,
289
- // f_shouru_gas:0,
290
- // f_shouru_fee:0,
291
- // f_meter_brand:0
292
- }),
293
- listpage:false,
294
- rowdata: {},
295
- orgCondtionStr: '',
296
- userTypes: [{label: '全部', value: ''}, ...this.$appdata.getParam('用户类型')],
297
- count: 0,
298
- sumsmodel: {},
299
- printshow: false,
300
- all: false,
301
- // 下拉框
302
- meterbrands: [],
303
- orgname: '',
304
- depname: '',
305
- criteriaShow: false,
306
- // operates: [{label: '全部', value: ''}, {label: '发卡售气', value: "发卡售气"},{label: '卡表收费', value: "卡表收费"},{label: '补气', value: "补气"},{label: '补卡', value: "补卡"},{label: '换表', value: "换表"},{label: '冲正', value: "冲正"},{label: '物联网收费', value: "物联网收费"},{label: '赠气', value: "赠气"},{label: '政府补贴', value: "政府补贴"}],
307
- paymentchannels: [{label: '全部', value: ''},{label: '营业厅', value: "not in ('支付宝','微信支付')"},{label: '支付宝收款', value: " = '支付宝收款'"},{label: '微信支付', value: "= '微信支付'"}],
308
- // hasapps: [{label: '包含APP', value: ''}, {label: '不包含APP', value: "!= '悦生活'"}],
309
- totalCount: 0
310
- }
311
- },
312
- ready() {
313
- readyGen(this)
314
- this.$refs.paged.$refs.cri.condition += this.orgCondtionStr
315
- this.$refs.paged.$refs.cri.model.f_hasapp = [`!= '悦生活'`]
316
- this.$refs.paged.$refs.cri.model.f_type = ['卡表收费','物联网收费','发卡售气']
317
- this.$refs.paged.$refs.cri.model.f_state = ['有效']
318
- this.$refs.paged.$refs.cri.model.f_startDate = this.$login.toStandardDateString()
319
- this.$refs.paged.$refs.cri.model.f_endDate = this.$login.toStandardDateString()
320
- // this.search()
321
- },
322
- methods: {
323
- showmsg(obj){
324
- this.criteriaShow = false
325
- this.$emit('close')
326
- this.rowdata=obj
327
- this.listpage=true
328
- },
329
- cancel() {
330
- this.listpage = false
331
- },
332
- async search() {
333
- await this.$refs.paged.$refs.cri.search()
334
- this.totalCount = this.$refs.paged.$refs.grid.model.count
335
- },
336
- async selfSearch(args) {
337
- let f_orgstr = this.orgCondtionStr
338
- if (!this.orgCondtionStr) {
339
- f_orgstr = 'and f_orgid = ' + this.$login.f.orgid
340
- }
341
- args.condition = `${args.condition} ` + f_orgstr
342
- // 补充条件
343
- this.model.params.meterNumber = this.$refs.paged.$refs.cri.model.f_meternumber
344
- this.model.params.residentialArea = this.$refs.paged.$refs.cri.model.f_residential_area
345
-
346
- this.model.params.startDate = this.$refs.paged.$refs.cri.model.f_startDate + ' 00:00:00'
347
- this.model.params.endDate = this.$refs.paged.$refs.cri.model.f_endDate + ' 23:59:59'
348
-
349
- this.model.params.operatorState = this.$refs.paged.$refs.cri.model.f_type + ''
350
-
351
- await this.model.search(args.condition, args.model)
352
- console.log('。。。。。。' + JSON.stringify(this.$refs.paged.$refs.grid.model))
353
- this.totalCount = this.$refs.paged.$refs.grid.model.count
354
- this.sumsmodel = this.$refs.paged.$refs.grid.model.sums
355
- console.log('计算合计。', this.sumsmodel)
356
- if (this.$refs.paged.$refs.grid.model.rows.length === 0) {
357
- for (let key in this.sumsmodel) {
358
- this.sumsmodel[key] = 0
359
- }
360
- }
361
- this.$dispatch('getdata', this.sumsmodel)
362
- },
363
- getRes(condition, obj) {
364
- this.orgCondtionStr = condition
365
- this.orgname = obj.orgnames[0]
366
- this.depname = obj.depnames[0]
367
- },
368
- initParams() {
369
- // 初始化气表品牌
370
- let brandArr = []
371
- this.$MagGetSaleParam.getGasbrand().forEach((item) => {
372
- let temp = {}
373
- temp.label = item.label
374
- temp.value = item.value.f_meter_brand
375
- brandArr.push(temp)
376
- })
377
- this.meterbrands = [{label: '全部', value: ''}, ...brandArr]
378
-
379
- },
380
- clear() {
381
- //清空部门和人员
382
- this.$refs.paged.$refs.cri.$refs.sel.$children[1].selectres = []
383
- //部门和人员变为全选
384
- this.$refs.paged.$refs.cri.$refs.sel.$children[1].$children[0].isSelectAll = false
385
- this.$refs.paged.$refs.cri.$refs.sel.$children[2].$children[0].isSelectAll = false
386
- Object.keys(this.$refs.paged.$refs.cri.model).forEach((key) => {
387
- this.$refs.paged.$refs.cri.model[key] = []
388
- })
389
- this.$refs.paged.$refs.cri.model.f_startDate = this.$login.toStandardDateString()
390
- this.$refs.paged.$refs.cri.model.f_endDate = this.$login.toStandardDateString()
391
- },
392
- close() {
393
- this.printshow = false
394
- },
395
- getfield() {
396
- return exportConfig.dataReportConfig
397
- },
398
- show() {
399
- this.criteriaShow = !this.criteriaShow
400
- if (this.criteriaShow) {
401
- this.$emit('show')
402
- } else {
403
- this.$emit('close')
404
- }
405
- },
406
- /*sort(field, rule) {
407
- console.log('sort...')
408
-
409
- },*/
410
- sort (field, rule) {
411
- // 将所有排序方式设为不排序,实现相互排斥
412
- for (let key in this.orderFields) {
413
- if (key === field) {
414
- this.orderFields[key] = rule
415
- } else {
416
- this.orderFields[key] = 'no'
417
- }
418
- }
419
- // 如果新规则不排序,还原为默认排序
420
- if (rule === 'no') {
421
- this.model.paramSource.orderitem = `'${this.orderDefault}'`
422
- } else {
423
- this.model.paramSource.orderitem = `'${field} ${rule}'`
424
- }
425
-
426
- this.search()
427
- },
428
- },
429
- computed: {
430
- getCondition() {
431
- return {
432
- meterNumber : this.$refs.paged.$refs.cri.model.f_meternumber,
433
- operatorState : this.$refs.paged.$refs.cri.model.f_type+ '',
434
- residentialArea : this.$refs.paged.$refs.cri.model.f_residential_area,
435
- condition: `${this.$refs.paged.$refs.cri.condition}` + this.orgCondtionStr,
436
- startDate: this.$refs.paged.$refs.cri.model.f_startDate+' 00:00:00',
437
- endDate: this.$refs.paged.$refs.cri.model.f_endDate+' 23:59:59',
438
- orderitem: this.model.paramSource.orderitem.split("'")[1].split("'")[0]
439
- }
440
- },
441
- getfield() {
442
- return exportConfig.dataReportConfig
443
- },
444
- gasproperties() {
445
- return [{label: ' 全部 ', value: ''}, ...this.$appdata.getParam('用气性质')]
446
- },
447
- payments() {
448
- return [{label: '全部', value: ''}, ...this.$appdata.getParam('付款方式')]
449
- },
450
- sellstate() {
451
- return [{label: ' 全部 ', value: ''}, ...this.$appdata.getParam('收费状态')]
452
- },
453
- operates() {
454
- return [{label: ' 全部 ', value: ''}, ...this.$appdata.getParam('缴费操作类型')]
455
- }
456
- }
457
- }
458
-
459
- </script>
460
-
461
- <style scoped>
462
-
463
- .col {
464
- width: 300px;
465
- overflow: hidden;
466
- text-overflow: ellipsis;
467
- white-space: nowrap;
468
- }
469
-
470
- </style>
1
+ <template>
2
+ <div v-if="!listpage" @keyup.enter="search">
3
+ <criteria-paged :model="model" v-ref:paged @sort="sort">
4
+ <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
5
+ <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
6
+ <div class="row">
7
+ <res-select-group :style="$parent.$parent.style" :initres="$parent.$parent.initres" @re-res="$parent.$parent.getRes" :mul="false" :style="$parent.$parent.style" v-ref:sel></res-select-group>
8
+ <div :class="$parent.$parent.style" >
9
+ <label for="startDate" class="font_normal_body">开始日期</label>
10
+ <datepicker placeholder="开始日期" style="width:60%"
11
+ v-model="model.f_startDate"
12
+ :value.sync="model.f_startDate"
13
+ :format="'yyyy-MM-dd'"
14
+ class="datepicker"
15
+ :show-reset-button="true"
16
+ class="select"
17
+ >
18
+ </datepicker>
19
+ </div>
20
+ <div :class="$parent.$parent.style" >
21
+ <label for="endDate" class="font_normal_body">结束日期</label>
22
+ <datepicker placeholder="结束日期" style="width:60%"
23
+ v-model="model.f_endDate"
24
+ :value.sync="model.f_endDate"
25
+ :format="'yyyy-MM-dd'"
26
+ class="datepicker"
27
+ :show-reset-button="true"
28
+ class="select"
29
+ >
30
+ </datepicker>
31
+ </div>
32
+ <div :class="$parent.$parent.style">
33
+ <label class="font_normal_body">用气性质</label>
34
+ <v-select :value.sync="model.f_gasproperties" v-model="model.f_gasproperties" multiple
35
+ :options='$parent.$parent.gasproperties' placeholder='请选择'
36
+ condition="f_gasproperties in {}"
37
+ close-on-select></v-select>
38
+ </div>
39
+ <div :class="$parent.$parent.style" title="参数名称:【缴费操作类型】">
40
+ <label class="font_normal_body">操作类型</label>
41
+ <v-select :value.sync="model.f_type" v-model="model.f_type"
42
+ :options='$parent.$parent.operates' placeholder='请选择'
43
+ condition="f_type in {}" multiple
44
+ close-on-select></v-select>
45
+ </div>
46
+ <div :class="$parent.$parent.style">
47
+ <label class="font_normal_body">收费状态</label>
48
+ <v-select :value.sync="model.f_state" v-model="model.f_state" multiple
49
+ :options='$parent.$parent.sellstate' placeholder='请选择'
50
+ condition="f_state in {}"
51
+ close-on-select></v-select>
52
+ </div>
53
+ <div :class="$parent.$parent.style">
54
+ <label class="font_normal_body">气表品牌</label>
55
+ <v-select :value.sync="model.f_meter_brand" multiple
56
+ v-model="model.f_meter_brand"
57
+ :options='$parent.$parent.meterbrands' placeholder='请选择'
58
+ condition="f_meter_brand in {}"
59
+ close-on-select></v-select>
60
+ </div>
61
+ <div :class="$parent.$parent.style">
62
+ <label class="font_normal_body">&nbsp;小&nbsp;&nbsp;&nbsp;&nbsp;区&nbsp;</label>
63
+ <input @keyup.enter="search" style="width:60%" type="text" class="input_search" v-model="model.f_residential_area"
64
+ placeholder='请输入小区'
65
+ >
66
+ <!-- condition="f_residential_area like '%{}%'"-->
67
+ </div>
68
+ <div class="button-range" style="float:right;margin-top:10px">
69
+ <button class="button_search button_spacing" @click="search()">查询</button>
70
+ <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
71
+ <export-excel :data="$parent.$parent.getCondition"
72
+ :field="$parent.$parent.getfield"
73
+ sqlurl="rs/logic/exportfile" sql-name="aode_dayReport" template-name='日清单' :choose-col="true"
74
+ class="button_export button_spacing"></export-excel>
75
+ <day-report-list-print :countmodel="{sumsmodel:$parent.$parent.sumsmodel,model:$parent.$parent.model,orgname:$parent.$parent.orgname,depname:$parent.$parent.depname}"></day-report-list-print>
76
+ <div style="float: right" class="button_spacing" :class="{'button_shrink_left':$parent.$parent.criteriaShow,'button_shrink_right':!$parent.$parent.criteriaShow}" @click="$parent.$parent.show()"></div>
77
+ </div>
78
+ <div :class="$parent.$parent.style">
79
+ <label class="font_normal_body">&nbsp;表&nbsp;&nbsp;&nbsp;&nbsp;号&nbsp;</label>
80
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_meternumber"
81
+ placeholder="表号">
82
+ <!-- condition="f_meternumber = '{}' " -->
83
+ </div>
84
+ <div :class="$parent.$parent.style">
85
+ <label class="font_normal_body">&nbsp;地&nbsp;&nbsp;&nbsp;&nbsp;址&nbsp;</label>
86
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_address"
87
+ condition="f_address like '%{}%'" placeholder='客户地址'>
88
+ </div>
89
+ <div :class="$parent.$parent.style" title="参数名称:【付款方式查询】">
90
+ <label class="font_normal_body">付款方式</label>
91
+ <v-select id="f_payment"
92
+ v-model="model.f_payment"
93
+ placeholder='请选择'
94
+ condition="f_payment ='{}'"
95
+ :value.sync="model.f_payment"
96
+ :options='$parent.$parent.payments'
97
+ close-on-select clear-button>
98
+ </v-select>
99
+ </div>
100
+ </div>
101
+ </div>
102
+ </criteria>
103
+ <data-grid :model="model" :sumsmodel="sumsmodel" partial='list' class="list_area table_sy" v-ref:grid >
104
+ <template partial='head'>
105
+ <tr>
106
+ <th>
107
+ <data-order field="f_userinfo_code" name="客户编号"></data-order>
108
+ <!--<nobr>客户编号</nobr>-->
109
+ </th>
110
+ <th><data-order field="f_user_name" name="客户姓名"></data-order>
111
+ <!--<nobr>客户姓名</nobr>-->
112
+ </th>
113
+ <th><nobr>地址</nobr></th>
114
+ <th>
115
+ <data-order field="f_meter_brand" name="气表厂家"></data-order>
116
+ </th>
117
+ <th><nobr>表号</nobr></th>
118
+ <th><data-order field="f_operate_date" name="操作时间"></data-order>
119
+ <!--<nobr>操作时间</nobr>-->
120
+ </th>
121
+ <!-- <th>-->
122
+ <!-- <data-order field="f_stair1price" name="1单价"></data-order>-->
123
+ <!-- </th>-->
124
+ <!-- <th>-->
125
+ <!-- <data-order field="f_stair1amount" name="1气量"></data-order>-->
126
+ <!-- </th>-->
127
+ <!-- <th>-->
128
+ <!-- <data-order field="f_stair2price" name="2单价"></data-order>-->
129
+ <!-- </th>-->
130
+ <!-- <th>-->
131
+ <!-- <data-order field="f_stair2amount" name="2气量"></data-order>-->
132
+ <!-- </th>-->
133
+ <!-- <th>-->
134
+ <!-- <data-order field="f_stair3price" name="3单价"></data-order>-->
135
+ <!-- </th>-->
136
+ <!-- <th>-->
137
+ <!-- <data-order field="f_stair3amount" name="3气量"></data-order>-->
138
+ <!-- </th>-->
139
+ <th>
140
+ <data-order field="f_pregas" name="气量"></data-order>
141
+ </th>
142
+ <th>
143
+ <data-order field="f_preamount" name="应收金额"></data-order>
144
+ </th>
145
+ <th>
146
+ <data-order field="f_collection" name="实收金额"></data-order>
147
+
148
+ </th>
149
+ <th><nobr>上期余额</nobr></th>
150
+ <th><nobr>本期余额</nobr></th>
151
+ <th>
152
+ <data-order field="f_payment" name="付款方式"></data-order>
153
+ <!--<nobr>付款方式</nobr>-->
154
+ </th>
155
+ <th>
156
+ <data-order field="f_type" name="收费类型"></data-order>
157
+ <!--<nobr>收费类型</nobr>-->
158
+ </th>
159
+ <th><nobr>收费状态</nobr></th>
160
+ <th><nobr>气表品牌</nobr></th>
161
+ <th><nobr>小区</nobr></th>
162
+ <th><nobr>表号</nobr></th>
163
+ <th><nobr>地址</nobr></th>
164
+ <th>
165
+ <data-order field="f_operator" name="操作员"></data-order>
166
+ </th>
167
+ <th>
168
+ <data-order field="f_user_type" name="客户类型"></data-order>
169
+ <!--<nobr>客户类型</nobr>-->
170
+ </th>
171
+ <th><nobr>备注</nobr></th>
172
+
173
+ </tr>
174
+ </template>
175
+ <template partial='body'>
176
+ <td style="text-align: center;"><nobr>
177
+ <span @click="$parent.$parent.$parent.showmsg(row)"><a>{{row.f_userinfo_code}}</a></span>
178
+ </nobr> </td>
179
+ <td style="text-align: left;"><nobr>{{row.f_user_name}}</nobr></td>
180
+ <td style="text-align: center;"><nobr>{{row.f_address}}</nobr></td>
181
+ <td style="text-align: center;"><nobr>{{row.f_meter_brand}}</nobr></td>
182
+ <td style="text-align: center;"><nobr>{{row.f_meternumber}}</nobr></td>
183
+ <td style="text-align: center;"><nobr>{{row.f_operate_date}}</nobr></td>
184
+ <!-- <td style="text-align: center;"><nobr>{{row.f_stair1price}}</nobr></td>-->
185
+ <!-- <td style="text-align: center;"><nobr>{{row.f_stair1amount}}</nobr></td>-->
186
+ <!-- <td style="text-align: center;"><nobr>{{row.f_stair2price}}</nobr></td>-->
187
+ <!-- <td style="text-align: center;"><nobr>{{row.f_stair2amount}}</nobr></td>-->
188
+ <!-- <td style="text-align: center;"><nobr>{{row.f_stair3price}}</nobr></td>-->
189
+ <!-- <td style="text-align: center;"><nobr>{{row.f_stair3amount}}</nobr></td>-->
190
+ <td style="text-align: center;"><nobr>{{row.f_pregas}}</nobr></td>
191
+ <td style="text-align: center;"><nobr>{{row.f_preamount}}</nobr></td>
192
+ <td style="text-align: center;"><nobr>{{row.f_collection}}</nobr></td>
193
+ <td style="text-align: center;"><nobr>{{row.f_balance}}</nobr></td>
194
+ <td style="text-align: center;"><nobr>{{row.f_curbalance}}</nobr></td>
195
+ <td style="text-align: center;"><nobr>{{row.f_payment}}</nobr></td>
196
+ <td style="text-align: center;"><nobr>{{row.f_type}}</nobr></td>
197
+ <td style="text-align: center;"><nobr>{{row.f_state}}</nobr></td>
198
+ <td style="text-align: center;"><nobr>{{row.f_meter_brand}}</nobr></td>
199
+ <td style="text-align: center;"><nobr>{{row.f_residential_area}}</nobr></td>
200
+ <td style="text-align: center;"><nobr>{{row.f_meternumber}}</nobr></td>
201
+ <td style="text-align: center;"><nobr>{{row.f_address}}</nobr></td>
202
+ <td style="text-align: center;"><nobr>{{row.f_operator}}</nobr></td>
203
+ <td style="text-align: center;"><nobr>{{row.f_user_type}}</nobr></td>
204
+ <td style="text-align: left;"><nobr>{{row.f_comments}}</nobr></td>
205
+ </template>
206
+ </data-grid>
207
+ </criteria-paged>
208
+ <table class="table-hover">
209
+ <tr style="position: relative" class="table-bordered">
210
+ <td
211
+ style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;color: #5CB95C;font-weight: bold">
212
+ 汇总信息
213
+ </td>
214
+ <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
215
+ 气量合计:&emsp;{{sumsmodel.f_pregas}}
216
+ </td>
217
+ <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
218
+ 实收金额合计:&emsp;{{sumsmodel.f_collection}}
219
+ </td>
220
+ <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
221
+ 交易次数合计:&emsp;{{totalCount}}
222
+ </td>
223
+ </tr>
224
+ </table>
225
+ </div>
226
+ <div v-if="listpage">
227
+ <user-info-detail-manage-new :f_userinfo_id="rowdata.f_userinfo_id" @cancel-main="cancel"></user-info-detail-manage-new>
228
+ </div>
229
+ </template>
230
+
231
+ <script>
232
+
233
+ import { PagedList } from 'vue-client'
234
+ import exportConfig from '../../components/sale/config/exportConfig'
235
+ import DayReportSummary from "../../components/sale/report/aode/DayReportSummary";
236
+ let readyGen = async function (self) {
237
+ await self.$MagLoadParams.loadParam()
238
+ self.initParams()
239
+ }
240
+ export default {
241
+ components: {DayReportSummary},
242
+ title: '缴费明细报表',
243
+ props: {
244
+ style: {
245
+ type: String,
246
+ default: 'col-sm-2 form-group'
247
+ },
248
+ },
249
+ data() {
250
+ return {
251
+ orderDefault: "'f_operate_date'",
252
+ orderFields: {
253
+ f_userinfo_code: 'no'
254
+ },
255
+ initres: {
256
+ org:[this.$login.f.orgid],
257
+ dep:[this.$login.f.depids],
258
+ user:[this.$login.f.id]
259
+ },
260
+ model: new PagedList('rs/sql/aode_dayReport', 20, {orderitem: "'f_operate_date'"},{
261
+ f_pregas: 0,
262
+ f_collection: 0,
263
+ // f_count_open: 0,
264
+ // f_pregas_open: 0,
265
+ // f_collection_open: 0,
266
+ // f_count_zg: 0,
267
+ // f_pregas_zg: 0,
268
+ // f_collection_zg: 0,
269
+ // f_count_bk: 0,
270
+ // f_pregas_bk: 0,
271
+ // f_collection_bk: 0,
272
+ // f_count_bq: 0,
273
+ // f_pregas_bq: 0,
274
+ // f_collection_bq: 0,
275
+ // f_count_hb: 0,
276
+ // f_pregas_hb: 0,
277
+ // f_collection_hb: 0,
278
+ // f_count_cz: 0,
279
+ // f_pregas_cz: 0,
280
+ // f_collection_cz: 0,
281
+ // f_sum_count:0,
282
+ // f_shouru_gas:0,
283
+ // f_shouru_fee:0,
284
+ // f_meter_brand:0
285
+ }),
286
+ listpage:false,
287
+ rowdata: {},
288
+ orgCondtionStr: '',
289
+ userTypes: [{label: '全部', value: ''}, ...this.$appdata.getParam('用户类型')],
290
+ count: 0,
291
+ sumsmodel: {},
292
+ printshow: false,
293
+ all: false,
294
+ // 下拉框
295
+ meterbrands: [],
296
+ orgname: '',
297
+ depname: '',
298
+ criteriaShow: false,
299
+ // operates: [{label: '全部', value: ''}, {label: '发卡售气', value: "发卡售气"},{label: '卡表收费', value: "卡表收费"},{label: '补气', value: "补气"},{label: '补卡', value: "补卡"},{label: '换表', value: "换表"},{label: '冲正', value: "冲正"},{label: '物联网收费', value: "物联网收费"},{label: '赠气', value: "赠气"},{label: '政府补贴', value: "政府补贴"}],
300
+ paymentchannels: [{label: '全部', value: ''},{label: '营业厅', value: "not in ('支付宝','微信支付')"},{label: '支付宝收款', value: " = '支付宝收款'"},{label: '微信支付', value: "= '微信支付'"}],
301
+ // hasapps: [{label: '包含APP', value: ''}, {label: '不包含APP', value: "!= '悦生活'"}],
302
+ totalCount: 0
303
+ }
304
+ },
305
+ ready() {
306
+ readyGen(this)
307
+ this.$refs.paged.$refs.cri.condition += this.orgCondtionStr
308
+ this.$refs.paged.$refs.cri.model.f_hasapp = [`!= '悦生活'`]
309
+ this.$refs.paged.$refs.cri.model.f_type = ['卡表收费','物联网收费','发卡售气']
310
+ this.$refs.paged.$refs.cri.model.f_state = ['有效']
311
+ this.$refs.paged.$refs.cri.model.f_startDate = this.$login.toStandardDateString()
312
+ this.$refs.paged.$refs.cri.model.f_endDate = this.$login.toStandardDateString()
313
+ // this.search()
314
+ },
315
+ methods: {
316
+ showmsg(obj){
317
+ this.criteriaShow = false
318
+ this.$emit('close')
319
+ this.rowdata=obj
320
+ this.listpage=true
321
+ },
322
+ cancel() {
323
+ this.listpage = false
324
+ },
325
+ async search() {
326
+ await this.$refs.paged.$refs.cri.search()
327
+ this.totalCount = this.$refs.paged.$refs.grid.model.count
328
+ },
329
+ async selfSearch(args) {
330
+ let f_orgstr = this.orgCondtionStr
331
+ if (!this.orgCondtionStr) {
332
+ f_orgstr = 'and f_orgid = ' + this.$login.f.orgid
333
+ }
334
+ args.condition = `${args.condition} ` + f_orgstr
335
+ // 补充条件
336
+ this.model.params.meterNumber = this.$refs.paged.$refs.cri.model.f_meternumber
337
+ this.model.params.residentialArea = this.$refs.paged.$refs.cri.model.f_residential_area
338
+
339
+ this.model.params.startDate = this.$refs.paged.$refs.cri.model.f_startDate + ' 00:00:00'
340
+ this.model.params.endDate = this.$refs.paged.$refs.cri.model.f_endDate + ' 23:59:59'
341
+
342
+ this.model.params.operatorState = this.$refs.paged.$refs.cri.model.f_type + ''
343
+
344
+ await this.model.search(args.condition, args.model)
345
+ console.log('。。。。。。' + JSON.stringify(this.$refs.paged.$refs.grid.model))
346
+ this.totalCount = this.$refs.paged.$refs.grid.model.count
347
+ this.sumsmodel = this.$refs.paged.$refs.grid.model.sums
348
+ console.log('计算合计。', this.sumsmodel)
349
+ if (this.$refs.paged.$refs.grid.model.rows.length === 0) {
350
+ for (let key in this.sumsmodel) {
351
+ this.sumsmodel[key] = 0
352
+ }
353
+ }
354
+ this.$dispatch('getdata', this.sumsmodel)
355
+ },
356
+ getRes(condition, obj) {
357
+ this.orgCondtionStr = condition
358
+ this.orgname = obj.orgnames[0]
359
+ this.depname = obj.depnames[0]
360
+ },
361
+ initParams() {
362
+ // 初始化气表品牌
363
+ let brandArr = []
364
+ this.$MagGetSaleParam.getGasbrand().forEach((item) => {
365
+ let temp = {}
366
+ temp.label = item.label
367
+ temp.value = item.value.f_meter_brand
368
+ brandArr.push(temp)
369
+ })
370
+ this.meterbrands = [{label: '全部', value: ''}, ...brandArr]
371
+
372
+ },
373
+ clear() {
374
+ //清空部门和人员
375
+ this.$refs.paged.$refs.cri.$refs.sel.$children[1].selectres = []
376
+ //部门和人员变为全选
377
+ this.$refs.paged.$refs.cri.$refs.sel.$children[1].$children[0].isSelectAll = false
378
+ this.$refs.paged.$refs.cri.$refs.sel.$children[2].$children[0].isSelectAll = false
379
+ Object.keys(this.$refs.paged.$refs.cri.model).forEach((key) => {
380
+ this.$refs.paged.$refs.cri.model[key] = []
381
+ })
382
+ this.$refs.paged.$refs.cri.model.f_startDate = this.$login.toStandardDateString()
383
+ this.$refs.paged.$refs.cri.model.f_endDate = this.$login.toStandardDateString()
384
+ },
385
+ close() {
386
+ this.printshow = false
387
+ },
388
+ getfield() {
389
+ return exportConfig.dataReportConfig
390
+ },
391
+ show() {
392
+ this.criteriaShow = !this.criteriaShow
393
+ if (this.criteriaShow) {
394
+ this.$emit('show')
395
+ } else {
396
+ this.$emit('close')
397
+ }
398
+ },
399
+ /*sort(field, rule) {
400
+ console.log('sort...')
401
+
402
+ },*/
403
+ sort (field, rule) {
404
+ // 将所有排序方式设为不排序,实现相互排斥
405
+ for (let key in this.orderFields) {
406
+ if (key === field) {
407
+ this.orderFields[key] = rule
408
+ } else {
409
+ this.orderFields[key] = 'no'
410
+ }
411
+ }
412
+ // 如果新规则不排序,还原为默认排序
413
+ if (rule === 'no') {
414
+ this.model.paramSource.orderitem = `'${this.orderDefault}'`
415
+ } else {
416
+ this.model.paramSource.orderitem = `'${field} ${rule}'`
417
+ }
418
+
419
+ this.search()
420
+ },
421
+ },
422
+ computed: {
423
+ getCondition() {
424
+ return {
425
+ meterNumber : this.$refs.paged.$refs.cri.model.f_meternumber,
426
+ operatorState : this.$refs.paged.$refs.cri.model.f_type+ '',
427
+ residentialArea : this.$refs.paged.$refs.cri.model.f_residential_area,
428
+ condition: `${this.$refs.paged.$refs.cri.condition}` + this.orgCondtionStr,
429
+ startDate: this.$refs.paged.$refs.cri.model.f_startDate+' 00:00:00',
430
+ endDate: this.$refs.paged.$refs.cri.model.f_endDate+' 23:59:59',
431
+ orderitem: this.model.paramSource.orderitem.split("'")[1].split("'")[0]
432
+ }
433
+ },
434
+ getfield() {
435
+ return exportConfig.dataReportConfig
436
+ },
437
+ gasproperties() {
438
+ return [{label: ' 全部 ', value: ''}, ...this.$appdata.getParam('用气性质')]
439
+ },
440
+ payments() {
441
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('付款方式查询')]
442
+ },
443
+ sellstate() {
444
+ return [{label: ' 全部 ', value: ''}, ...this.$appdata.getParam('收费状态')]
445
+ },
446
+ operates() {
447
+ return [{label: ' 全部 ', value: ''}, ...this.$appdata.getParam('缴费操作类型')]
448
+ }
449
+ }
450
+ }
451
+
452
+ </script>
453
+
454
+ <style scoped>
455
+
456
+ .col {
457
+ width: 300px;
458
+ overflow: hidden;
459
+ text-overflow: ellipsis;
460
+ white-space: nowrap;
461
+ }
462
+
463
+ </style>