sale-client 3.6.279 → 3.6.281
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.
- package/.npmignore +12 -0
- package/package.json +1 -1
- package/src/.npmignore +1 -0
- package/src/components/FilesManage/FileUserFiles.vue +27 -1
- package/src/components/charge/business/CardMeterCenter.vue +34 -8
- package/src/components/revenue/base/leftview/Userinfo.vue +4 -0
- package/src/components/revenue/base/rightview/RecordCancel.vue +4 -0
- package/src/components/revenue/machineHandManage/machineHand.vue +1 -1
- package/src/filiale/qianneng/ArrearsList.vue +417 -0
- package/src/filiale/qianneng/sale.js +2 -0
- package/src/filiale/tongchuan/bill/CustQueryEticketQueryV4.vue +3 -3
- package/src/filiale/tongchuan/bill/EticketOpenCard.vue +3 -3
- package/src/filiale/tongchuan/bill/EticketOpenIotSalePage.vue +3 -3
- package/src/filiale/tongchuan/bill/EticketOpenJBPage.vue +3 -3
- package/src/filiale/tongchuan/bill/EticketOpenPage.vue +3 -3
- package/src/filiale/yangchun/OtherChargeNew.vue +11 -3
- package/src/filiale/yangchun/sale.js +1 -1
- package/src/plugins/CardService.js +2 -1
- package/src/plugins/CommonService.js +12 -0
- package/yarn.lock +12035 -0
package/.npmignore
ADDED
package/package.json
CHANGED
package/src/.npmignore
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -299,6 +299,29 @@
|
|
|
299
299
|
<input class="input_search" condition="f_comments like '%{}%'" placeholder='备注' style="width:60%"
|
|
300
300
|
type="text" v-model="model.f_comments">
|
|
301
301
|
</div>
|
|
302
|
+
|
|
303
|
+
<div
|
|
304
|
+
:class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
|
|
305
|
+
class="form-group" >
|
|
306
|
+
<label class="font_normal_body" title="参数名称:阀控状态">阀控状态</label>
|
|
307
|
+
<v-select :options='$parent.$parent.f_network_valve' :search='true'
|
|
308
|
+
:value.sync="model.f_network_valve"
|
|
309
|
+
close-on-select
|
|
310
|
+
condition="f_network_valve = '{}'" placeholder='阀控状态'
|
|
311
|
+
v-model='model.f_network_valve'>
|
|
312
|
+
</v-select>
|
|
313
|
+
</div>
|
|
314
|
+
<div
|
|
315
|
+
:class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
|
|
316
|
+
class="form-group" >
|
|
317
|
+
<label class="font_normal_body" title="参数名称:阀门状态">阀门状态</label>
|
|
318
|
+
<v-select :options='$parent.$parent.f_valvestate' :search='true'
|
|
319
|
+
:value.sync="model.f_valvestate"
|
|
320
|
+
close-on-select
|
|
321
|
+
condition="f_valvestate = '{}'" placeholder='阀门状态'
|
|
322
|
+
v-model='model.f_valvestate'>
|
|
323
|
+
</v-select>
|
|
324
|
+
</div>
|
|
302
325
|
</div>
|
|
303
326
|
</div>
|
|
304
327
|
</criteria>
|
|
@@ -624,7 +647,10 @@ let loadParamGem = async function (self) {
|
|
|
624
647
|
titleShow: true, //是否显示部分档案信息类的筛选框
|
|
625
648
|
useoptions: this.$appdata.getParam('使用类型'),
|
|
626
649
|
|
|
627
|
-
userlevel: this.$appdata.getParam('用户等级') ? [{label: '全部', value: ''}, ...this.$appdata.getParam('用户等级')] : []
|
|
650
|
+
userlevel: this.$appdata.getParam('用户等级') ? [{label: '全部', value: ''}, ...this.$appdata.getParam('用户等级')] : [],
|
|
651
|
+
f_network_valve: this.$appdata.getParam('阀控状态') ? [{label: '全部', value: ''}, ...this.$appdata.getParam('阀控状态')] : [],
|
|
652
|
+
f_valvestate: this.$appdata.getParam('阀门状态') ? [{label: '全部', value: ''}, ...this.$appdata.getParam('阀门状态')] : []
|
|
653
|
+
|
|
628
654
|
}
|
|
629
655
|
},
|
|
630
656
|
ready () {
|
|
@@ -219,6 +219,7 @@
|
|
|
219
219
|
<div style="text-align:right; height: 25%">
|
|
220
220
|
<strong style="color:red;margin-right: 5px">{{ $refs.givechange.promptText }}</strong>
|
|
221
221
|
<strong style="font-size: large" v-if="!config.notShowFormula">计算公式:{{calculatedetail ? calculatedetail : ' 暂无'}}</strong><br/>
|
|
222
|
+
<strong style="font-size: large" v-if="deductdetail">{{deductdetail ? deductdetail : ' 暂无'}}</strong><br/>
|
|
222
223
|
<payment-code-button :clickable="!$v.valid || validateOk || !islegal || clickConfirm|| model.f_preamount === 0"
|
|
223
224
|
:payment.sync="model.f_payment" :payment-data="paytype"
|
|
224
225
|
@confirm-payment="confirm()">
|
|
@@ -238,7 +239,6 @@
|
|
|
238
239
|
</template>
|
|
239
240
|
<script>
|
|
240
241
|
import {HttpResetClass} from 'vue-client'
|
|
241
|
-
import XML from '../../../plugins/ObjTree'
|
|
242
242
|
|
|
243
243
|
/**
|
|
244
244
|
*综合业务
|
|
@@ -274,7 +274,13 @@
|
|
|
274
274
|
self.model.f_pregas = Math.floor(getGas.data.gas - 0)
|
|
275
275
|
}
|
|
276
276
|
}
|
|
277
|
-
self.model.
|
|
277
|
+
self.model.getDeduct = 0
|
|
278
|
+
// 计算抵扣包间费用抵扣金额
|
|
279
|
+
if (self.row.f_project_money && self.row.f_project_money > 0) {
|
|
280
|
+
self.model.getDeduct = (self.$CommonService.getDeduct(self.row, self.model.f_pregas) - 0)
|
|
281
|
+
}
|
|
282
|
+
// end
|
|
283
|
+
self.model.f_totalcost = ((self.row.f_balance - 0) >= ((self.model.f_preamount - 0) + self.model.getDeduct) ? 0 : ((self.model.f_preamount - 0) + self.model.getDeduct) - self.row.f_balance)
|
|
278
284
|
|
|
279
285
|
self.model.chargeprice = getGas.data.chargeprice
|
|
280
286
|
Object.assign(self.model, self.model, getGas.data)
|
|
@@ -286,7 +292,7 @@
|
|
|
286
292
|
self.model.f_totalcost = ((self.model.f_totalcost - 0) - (self.dymoney - 0)).toFixed(self.row.f_fee_decimal || 4)
|
|
287
293
|
}
|
|
288
294
|
self.model.f_preamount = (calFee - (self.dymoney - 0)).toFixed(self.row.f_fee_decimal || 4)
|
|
289
|
-
self.calText(getGas.data.chargeprice)
|
|
295
|
+
self.calText(getGas.data.chargeprice, self.model.getDeduct)
|
|
290
296
|
}
|
|
291
297
|
|
|
292
298
|
// 输入气量,换算金额
|
|
@@ -299,8 +305,13 @@
|
|
|
299
305
|
if ((self.model.f_pregas - 0) - (self.maxgas - 0) <= 0) {
|
|
300
306
|
self.model.f_meter_type = self.row.f_meter_type
|
|
301
307
|
let getAmount = await self.$CommonService.gasCalculate(self.model, self.model.f_pregas)
|
|
308
|
+
self.model.getDeduct = 0
|
|
309
|
+
// 计算抵扣包间费用抵扣金额
|
|
310
|
+
if (self.row.f_project_money && self.row.f_project_money > 0) {
|
|
311
|
+
self.model.getDeduct = (self.$CommonService.getDeduct(self.row, self.model.f_pregas) - 0)
|
|
312
|
+
}
|
|
302
313
|
self.model.f_preamount = getAmount.data.chargenum.toFixed(self.row.f_fee_decimal || 4)
|
|
303
|
-
self.model.f_totalcost = ((self.row.f_balance - 0) > (getAmount.data.chargenum - 0) ? 0 : ((getAmount.data.chargenum - 0) - (self.row.f_balance - 0)).toFixed(self.row.f_fee_decimal || 4))
|
|
314
|
+
self.model.f_totalcost = ((self.row.f_balance - 0) > ((getAmount.data.chargenum - 0) + self.model.getDeduct - 0) ? 0 : (((getAmount.data.chargenum - 0) + self.model.getDeduct - 0) - (self.row.f_balance - 0)).toFixed(self.row.f_fee_decimal || 4))
|
|
304
315
|
Object.assign(self.model, self.model, getAmount.data)
|
|
305
316
|
self.model.chargeprice = getAmount.data.chargeprice
|
|
306
317
|
if (self.model.f_payment == '赠气') {
|
|
@@ -312,7 +323,7 @@
|
|
|
312
323
|
self.model.f_collection = Math.ceil(self.model.f_collection)
|
|
313
324
|
}
|
|
314
325
|
}
|
|
315
|
-
self.calText(getAmount.data.chargeprice)
|
|
326
|
+
self.calText(getAmount.data.chargeprice, self.model.getDeduct)
|
|
316
327
|
}
|
|
317
328
|
}
|
|
318
329
|
// 执行保存逻辑
|
|
@@ -542,9 +553,11 @@
|
|
|
542
553
|
f_banktransfer_date: '',
|
|
543
554
|
f_privilege_id: 0,
|
|
544
555
|
f_privilege_money: 0,
|
|
545
|
-
f_after_discount: 0
|
|
556
|
+
f_after_discount: 0,
|
|
557
|
+
getDeduct: 0
|
|
546
558
|
},
|
|
547
559
|
calculatedetail: '',
|
|
560
|
+
deductdetail: '',
|
|
548
561
|
|
|
549
562
|
// 启用发票管理需要对票号进行验证
|
|
550
563
|
hasValidateBill: false,
|
|
@@ -680,7 +693,13 @@
|
|
|
680
693
|
Object.assign(this.model, this.model, dymoney2.data)
|
|
681
694
|
this.model.f_totalcost = dymoney2.data.chargenum
|
|
682
695
|
this.model.f_preamount = dymoney2.data.chargenum
|
|
683
|
-
this.
|
|
696
|
+
this.model.getDeduct = 0
|
|
697
|
+
if (this.row.f_project_money && this.row.f_project_money > 0) {
|
|
698
|
+
this.model.getDeduct = (this.$CommonService.getDeduct(this.row, this.model.f_pregas) - 0)
|
|
699
|
+
this.model.f_totalcost = this.model.f_totalcost + this.model.getDeduct
|
|
700
|
+
this.model.f_collection = this.model.f_collection + this.model.getDeduct
|
|
701
|
+
}
|
|
702
|
+
this.calText(dymoney2.data.chargeprice, this.model.getDeduct)
|
|
684
703
|
} catch (error) {
|
|
685
704
|
this.$showAlert(`发卡售气划价错误,错误类型:${error}`, 'danger', 0)
|
|
686
705
|
this.$dispatch('error', '发卡售气', this.model, error)
|
|
@@ -798,7 +817,7 @@
|
|
|
798
817
|
this.$dispatch('error', '发卡售气', this.model, error)
|
|
799
818
|
}
|
|
800
819
|
},
|
|
801
|
-
calText (val) {
|
|
820
|
+
calText (val, getDeduct = 0) {
|
|
802
821
|
let str = ''
|
|
803
822
|
let num = 0
|
|
804
823
|
val.forEach((item) => {
|
|
@@ -811,6 +830,13 @@
|
|
|
811
830
|
str = str + item.f_price + ' x ' + Math.floor(item.f_gas) + '+'
|
|
812
831
|
}
|
|
813
832
|
})
|
|
833
|
+
if (getDeduct > 0) {
|
|
834
|
+
if ((this.model.f_pregas * this.row.f_gas_type) > this.row.f_project_money) {
|
|
835
|
+
this.deductdetail = '当前未结金额' + this.row.f_project_money + '元,不足抵扣,以未结金额为准'
|
|
836
|
+
} else {
|
|
837
|
+
this.deductdetail = '未结金额计算公式:' + this.row.f_gas_type + ' x ' + this.model.f_pregas + '=' + getDeduct
|
|
838
|
+
}
|
|
839
|
+
}
|
|
814
840
|
str = str.slice(0, str.length - 1)
|
|
815
841
|
this.calculatedetail = str
|
|
816
842
|
if (num > 1) {
|
|
@@ -30,6 +30,10 @@
|
|
|
30
30
|
<label class="col-sm-5">账户余额</label>
|
|
31
31
|
<span class="col-sm-7">{{ data ? data.f_balance : dafault.f_user_type }}</span>
|
|
32
32
|
</div>
|
|
33
|
+
<div class="row" v-show="data.f_project_money && data.f_project_money > 0">
|
|
34
|
+
<label class="col-sm-5">未结金额</label>
|
|
35
|
+
<span class="col-sm-7">{{ data ?data.f_project_money: '' }} | {{ data ?data.f_gas_type: '' }}</span>
|
|
36
|
+
</div>
|
|
33
37
|
<div class="row" v-show="data && data.f_sys_balance !== 0">
|
|
34
38
|
<label class="col-sm-5">系统余额</label>
|
|
35
39
|
<span class="col-sm-7">{{ data.f_sys_balance ? data.f_sys_balance : dafault.f_user_type }}</span>
|
|
@@ -93,6 +93,10 @@
|
|
|
93
93
|
}
|
|
94
94
|
await self.$resetpost('invoice/rs/logic/getInvoice', {data: params}, {resolveMsg: null, rejectMsg: '发票冲红失败!!!'})
|
|
95
95
|
}
|
|
96
|
+
if (name === 'otherFeeRollback') {
|
|
97
|
+
console.log('准备刷新了!。。', res, self.model)
|
|
98
|
+
self.$dispatch('cancel-success')
|
|
99
|
+
}
|
|
96
100
|
|
|
97
101
|
// 判断需不需要冲正电子票
|
|
98
102
|
// if (self.isNeedEticket(getRecord.data, self.data.type)) {
|
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<criteria-paged :model="model" v-ref:paged>
|
|
3
|
+
<criteria partial='criteria' @condition-changed='$parent.search' v-ref:cri>
|
|
4
|
+
<div class="form-horizontal select-overspread container-fluid auto" novalidate partial>
|
|
5
|
+
<p class="bg-info text-center" style="padding: 8px;font-size: 20px">欠费信息</p>
|
|
6
|
+
<div class="row">
|
|
7
|
+
<div class="form-group col-sm-3">
|
|
8
|
+
<label class="font_normal_body">用户状态</label>
|
|
9
|
+
<v-select id=""
|
|
10
|
+
v-model="$parent.$parent.f_whether"
|
|
11
|
+
placeholder='用户状态'
|
|
12
|
+
:value.sync="$parent.$parent.f_whether"
|
|
13
|
+
:options='$parent.$parent.whether'
|
|
14
|
+
style="width: 60%"
|
|
15
|
+
close-on-select >
|
|
16
|
+
</v-select>
|
|
17
|
+
</div>
|
|
18
|
+
<div class="form-group col-sm-3">
|
|
19
|
+
<label class="font_normal_body">银行代扣</label>
|
|
20
|
+
<v-select :value.sync="model.f_isbank" v-model="model.f_isbank"
|
|
21
|
+
:options='$parent.$parent.isbankwhether' placeholder='银行代扣'
|
|
22
|
+
close-on-select
|
|
23
|
+
condition="f_isbank = '{}'"
|
|
24
|
+
style="width: 60%">
|
|
25
|
+
</v-select>
|
|
26
|
+
</div>
|
|
27
|
+
<div class="form-group col-sm-3">
|
|
28
|
+
<label class="font_normal_body">气表类型</label>
|
|
29
|
+
<v-select :value.sync="model.f_meter_classify" v-model="model.f_meter_classify"
|
|
30
|
+
:options='$parent.$parent.meters' placeholder='气表类型'
|
|
31
|
+
close-on-select
|
|
32
|
+
condition="f_meter_classify = '{}'"
|
|
33
|
+
style="width: 60%"
|
|
34
|
+
default-value="'机表'">
|
|
35
|
+
|
|
36
|
+
</v-select>
|
|
37
|
+
</div>
|
|
38
|
+
<div class="form-group col-sm-3">
|
|
39
|
+
<label class="font_normal_body">用户类型</label>
|
|
40
|
+
<v-select :value.sync="model.f_user_type" v-model="model.f_user_type"
|
|
41
|
+
:options='$parent.$parent.getusertype' placeholder='用户类型'
|
|
42
|
+
close-on-select
|
|
43
|
+
condition="f_user_type = '{}'"
|
|
44
|
+
style="width: 60%">
|
|
45
|
+
|
|
46
|
+
</v-select>
|
|
47
|
+
</div>
|
|
48
|
+
<div class="span" style="float:right;">
|
|
49
|
+
<button class="button_search button_spacing width-60" @click="search()" v-el:cx>查询</button>
|
|
50
|
+
<button class="button_clear button_spacing width-60" @click="$parent.$parent.arrcreate()">生成短信</button>
|
|
51
|
+
<button v-show="$parent.$parent.rollback" class="button_clear button_spacing width-60" @click="$parent.$parent.retrun()" v-el:cba>返回</button>
|
|
52
|
+
|
|
53
|
+
<div
|
|
54
|
+
:class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
|
|
55
|
+
@click="$parent.$parent.hidden()" class="button_spacing" style="float: right">
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
<div class="row" v-show="$parent.$parent.criteriaShow">
|
|
60
|
+
<div class="col-sm-3 form-group">
|
|
61
|
+
<label class="font_normal_body">开始日期</label>
|
|
62
|
+
<datepicker placeholder="开始日期"
|
|
63
|
+
style="width:60%"
|
|
64
|
+
class="datepicker"
|
|
65
|
+
v-model="model.startDate"
|
|
66
|
+
:value.sync="model.startDate"
|
|
67
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
68
|
+
></datepicker>
|
|
69
|
+
</div>
|
|
70
|
+
<div class="col-sm-3 form-group">
|
|
71
|
+
<label class="font_normal_body">结束日期</label>
|
|
72
|
+
<datepicker placeholder="结束日期"
|
|
73
|
+
style="width:60%"
|
|
74
|
+
v-model="model.endDate"
|
|
75
|
+
:value.sync="model.endDate"
|
|
76
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
77
|
+
></datepicker>
|
|
78
|
+
</div>
|
|
79
|
+
<div class="form-group col-sm-3">
|
|
80
|
+
<label class="font_normal_body">用户编号</label>
|
|
81
|
+
<input type="text" class="form-control" v-model="model.f_userinfo_code" placeholder='用户编号' v-filter v-figure_filter
|
|
82
|
+
condition="f_userinfo_code = '{}'" v-next-el='username' style="width: 60%"
|
|
83
|
+
:size="model.f_userinfo_code ? model.f_userinfo_id.length : 4">
|
|
84
|
+
</div>
|
|
85
|
+
<div class="form-group col-sm-3">
|
|
86
|
+
<label class="font_normal_body">用户姓名</label>
|
|
87
|
+
<input type="text" class="form-control" v-model="model.f_user_name" placeholder='用户姓名'
|
|
88
|
+
condition="f_user_name = '{}'" v-next-el='area' style="width: 60%"
|
|
89
|
+
:size="model.f_user_name ? model.f_user_name.length * 2 : 4">
|
|
90
|
+
</div>
|
|
91
|
+
<div class="form-group col-sm-3">
|
|
92
|
+
<label class="font_normal_body" style="color: orange" title="可多选">小区名称</label>
|
|
93
|
+
<v-select :value.sync="model.f_residential_area" :value-single="true"
|
|
94
|
+
class="select_list select"
|
|
95
|
+
style="width: 60%"
|
|
96
|
+
condition="f_residential_area like '%{}%'"
|
|
97
|
+
:options='$parent.$parent.residentialArea' placeholder='选择小区'
|
|
98
|
+
close-on-select search="true">
|
|
99
|
+
</v-select>
|
|
100
|
+
</div>
|
|
101
|
+
<div class="form-group col-sm-3">
|
|
102
|
+
<label class="font_normal_body" style="color: orange" title="可多选">付款类型</label>
|
|
103
|
+
<v-select :value.sync="model.f_payment" :value-single="true"
|
|
104
|
+
class="select_list select"
|
|
105
|
+
v-model="model.f_payment"
|
|
106
|
+
style="width: 60%"
|
|
107
|
+
:options='$parent.$parent.chonetype' placeholder='付款类型'
|
|
108
|
+
condition="f_cost_type like '%{}%'"
|
|
109
|
+
close-on-select search="true">
|
|
110
|
+
</v-select>
|
|
111
|
+
</div>
|
|
112
|
+
<div class="form-group col-sm-3">
|
|
113
|
+
<label class="font_normal_body">应交金额</label>
|
|
114
|
+
<v-input :value.sync="$parent.f_oughtfee" :expression.sync = 'model.f_oughtfee'
|
|
115
|
+
condition="f_oughtfee {}" v-model="model.f_oughtfee" style="width: 60%"
|
|
116
|
+
placeholder="应交金额" v-next-el="cx" ></v-input>
|
|
117
|
+
</div>
|
|
118
|
+
<div class="form-group col-sm-3">
|
|
119
|
+
<label class="font_normal_body">违约金</label>
|
|
120
|
+
<v-input :value.sync="$parent.overdue" :expression.sync = 'model.overdue'
|
|
121
|
+
condition="overdue {}" v-model="model.overdue" style="width: 60%"
|
|
122
|
+
placeholder="违约金" v-next-el="cx" ></v-input>
|
|
123
|
+
</div>
|
|
124
|
+
<div class="col-sm-3 form-group">
|
|
125
|
+
<label class="font_normal_body">短信区间</label>
|
|
126
|
+
<datepicker placeholder="开始日期"
|
|
127
|
+
style="width:60%"
|
|
128
|
+
class="datepicker"
|
|
129
|
+
v-model="model.startDate1"
|
|
130
|
+
:value.sync="model.startDate1"
|
|
131
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
132
|
+
></datepicker>
|
|
133
|
+
</div>
|
|
134
|
+
<div class="col-sm-3 form-group">
|
|
135
|
+
<label class="font_normal_body">  至  </label>
|
|
136
|
+
<datepicker placeholder="结束日期"
|
|
137
|
+
style="width:60%"
|
|
138
|
+
v-model="model.endDate1"
|
|
139
|
+
:value.sync="model.endDate1"
|
|
140
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
141
|
+
></datepicker>
|
|
142
|
+
</div>
|
|
143
|
+
<div class="form-group col-sm-3">
|
|
144
|
+
<label class="font_normal_body">短信条数</label>
|
|
145
|
+
<v-input :value.sync="$parent.f_sendsums" :expression.sync = 'model.f_sendsums'
|
|
146
|
+
condition="f_sendsums {}" v-model="model.f_sendsums" style="width: 60%"
|
|
147
|
+
placeholder="短信条数" ></v-input>
|
|
148
|
+
</div>
|
|
149
|
+
</div>
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
</div>
|
|
154
|
+
</criteria>
|
|
155
|
+
<data-grid :model="model" partial='list' class="table_sy" v-ref:grid>
|
|
156
|
+
<template partial='head'>
|
|
157
|
+
<tr>
|
|
158
|
+
<th>
|
|
159
|
+
<input type="checkbox" @click="$parent.$parent.$parent.isAll(model.pageIndex)">
|
|
160
|
+
</th>
|
|
161
|
+
<th>序号</th>
|
|
162
|
+
<th>用户信息</th>
|
|
163
|
+
<th>用户编号</th>
|
|
164
|
+
<th>用户类型</th>
|
|
165
|
+
<th>小区</th>
|
|
166
|
+
<th>抄表时间</th>
|
|
167
|
+
<th>上次抄表底数</th>
|
|
168
|
+
<th>本次抄表底数</th>
|
|
169
|
+
<th>应交气量</th>
|
|
170
|
+
<th>应交金额</th>
|
|
171
|
+
<th>账户结余</th>
|
|
172
|
+
<th>欠费金额</th>
|
|
173
|
+
<th>违约金</th>
|
|
174
|
+
<th>短信条数</th>
|
|
175
|
+
<th>银行代扣</th>
|
|
176
|
+
</tr>
|
|
177
|
+
</template>
|
|
178
|
+
<template partial='body'>
|
|
179
|
+
<td style="text-align:center">
|
|
180
|
+
<input type="checkbox" v-model="$parent.$parent.$parent.ids"
|
|
181
|
+
:value="row.f_userinfo_id">
|
|
182
|
+
</td>
|
|
183
|
+
<td>{{$index+1}}</td>
|
|
184
|
+
<td style="text-align:center">{{row.f_userinfo_code}} {{row.f_user_name}} {{row.f_user_phone}}</td>
|
|
185
|
+
<td style="text-align:center">{{row.f_userinfo_code}}</td>
|
|
186
|
+
<td style="text-align:center">{{row.f_user_type}}</td>
|
|
187
|
+
<td style="text-align:center">{{row.f_residential_area}}</td>
|
|
188
|
+
<td style="text-align:center">{{row.f_input_date}}</td>
|
|
189
|
+
<td style="text-align:center">{{row.f_last_tablebase.toFixed(2)}}</td>
|
|
190
|
+
<td style="text-align:center">{{row.f_tablebase.toFixed(2)}}</td>
|
|
191
|
+
<td style="text-align:center">{{row.f_oughtamount.toFixed(2)}}</td>
|
|
192
|
+
<td style="text-align:center">{{row.f_oughtfee.toFixed(2)}}</td>
|
|
193
|
+
<td style="text-align:center">{{row.f_balance.toFixed(2)}}</td>
|
|
194
|
+
<td style="text-align:center">{{row.f_oughtfee_all.toFixed(2)}}</td>
|
|
195
|
+
<td style="text-align:center">{{row.overdue.toFixed(2)}}</td>
|
|
196
|
+
<td style="text-align:center">{{row.f_sendsums}}</td>
|
|
197
|
+
<td style="text-align:center">{{row.f_isbank}}</td>
|
|
198
|
+
</template>
|
|
199
|
+
</data-grid>
|
|
200
|
+
</criteria-paged>
|
|
201
|
+
<modal :show.sync="arrshow" v-ref:modal backdrop="false">
|
|
202
|
+
<header slot="modal-header" class="modal-header">
|
|
203
|
+
<h4 class="modal-title">短信发送</h4>
|
|
204
|
+
</header>
|
|
205
|
+
<article slot="modal-body" class="modal-body">
|
|
206
|
+
<div class="form-group">
|
|
207
|
+
{{this.isbank === '是' ? config.qianmsg : config.msg }}
|
|
208
|
+
</div>
|
|
209
|
+
<div class="form-group" style="margin-top: 80px">
|
|
210
|
+
<label class="label-control">发送截至日期</label>
|
|
211
|
+
<!-- <input type="text" class="form-control" v-model="downDate" placeholder='下发日期'> -->
|
|
212
|
+
<datepicker placeholder="发送截至日期" :value.sync="arrdownDate" :disabled-days-of-Week="[]" :format="'yyyy-MM-dd HH:mm:ss'" :show-reset-button="reset"></datepicker>
|
|
213
|
+
</div>
|
|
214
|
+
<!-- <div class="form-group" style="color: red;" v-if="dateError">
|
|
215
|
+
日期格式错误
|
|
216
|
+
</div> -->
|
|
217
|
+
<!-- <div class="form-group">
|
|
218
|
+
为保证数据统一,下发日期格式统一为yyyyMM,例如:"201709"
|
|
219
|
+
</div> -->
|
|
220
|
+
</article>
|
|
221
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
222
|
+
<button v-show="arrshow" type="button" class="btn btn-default" @click='close'>取消</button>
|
|
223
|
+
<button v-show="arrshow" type="button" class="btn btn-success" @click='create()'>确认</button>
|
|
224
|
+
</footer>
|
|
225
|
+
</modal>
|
|
226
|
+
</template>
|
|
227
|
+
|
|
228
|
+
<script>
|
|
229
|
+
/**
|
|
230
|
+
*阶梯水价查询列表
|
|
231
|
+
*/
|
|
232
|
+
import { PagedList, HttpResetClass } from 'vue-client'
|
|
233
|
+
import Vue from 'vue'
|
|
234
|
+
|
|
235
|
+
let asyncArrearsList = async function (self) {
|
|
236
|
+
await self.$getConfig(self, 'arrearslist')
|
|
237
|
+
console.log('欠费短信发送config', self.config)
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
export default {
|
|
241
|
+
data () {
|
|
242
|
+
return {
|
|
243
|
+
model: new PagedList('rs/sql/arrearsQuery', 50, {startDate: 'this.model.startDate', endDate: 'this.model.endDate', startDate1: 'this.model.startDate1', endDate1: 'this.model.endDate1', condValue:'` 1=1 `',orderitem: '"' + this.orderitem + '"'}),
|
|
244
|
+
definedShow: false,
|
|
245
|
+
userdefinedMessage: '',
|
|
246
|
+
arrdownDate: '',
|
|
247
|
+
arrshow: false,
|
|
248
|
+
isbank: '否',
|
|
249
|
+
// 小区
|
|
250
|
+
residentialArea: [],
|
|
251
|
+
chonetype: this.$appdata.getParam('付款类型'),
|
|
252
|
+
criteriaShow: false,
|
|
253
|
+
ids: [],
|
|
254
|
+
pages: [],
|
|
255
|
+
whether: [{ label: '全部', value: '全部' },
|
|
256
|
+
{ label: '欠费', value: '欠费' }],
|
|
257
|
+
isbankwhether: [{ label: '是', value: '是' },
|
|
258
|
+
{ label: '否', value: '否' }],
|
|
259
|
+
f_whether: '欠费',
|
|
260
|
+
meters: [
|
|
261
|
+
{label: '全部', value: ''},
|
|
262
|
+
{label: '机表', value: '机表'},
|
|
263
|
+
{label: '远传表', value: '远传表'}
|
|
264
|
+
],
|
|
265
|
+
getusertype: [{ label: '全部', value: '' },
|
|
266
|
+
{ label: '民用', value: '民用' },
|
|
267
|
+
{ label: '非民用', value: '非民用' }],
|
|
268
|
+
filialeName: [],
|
|
269
|
+
outletsname: [],
|
|
270
|
+
filiale: '',
|
|
271
|
+
filialetype: '',
|
|
272
|
+
isFirst: true,
|
|
273
|
+
config: {
|
|
274
|
+
msg: `'尊敬的['+f_userinfo_code+']-['+f_user_name+']客户,您位于['+f_address+']的燃气已欠费:起数['+f_last_tablebase+'],止数['+f_tablebase+'],气量['+f_oughtamount+'],金额['+f_oughtfee+']元;你的预存余额为['+f_oughtfee_col+']元,已不足抵扣。为避免产生违约金,请到营业厅或通过微信公众号(cqqnrq)或支付宝进行缴费!'`,
|
|
275
|
+
qianmsg: `'尊敬的['+f_userinfo_code+']-['+f_user_name+']客户,您位于['+f_address+']的燃气已欠费:起数['+f_last_tablebase+'],止数['+f_tablebase+'],气量['+f_oughtamount+'],金额['+f_oughtfee+']元。您已办理银行代扣业务,如扣款失败,为避免产生违约金,请到营业厅或通过微信公众号(cqqnrq)或支付宝进行缴费!'`
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
},
|
|
279
|
+
props: {
|
|
280
|
+
orderitem: {
|
|
281
|
+
type: String,
|
|
282
|
+
default: 'p.f_userinfo_id'
|
|
283
|
+
},
|
|
284
|
+
rollback: false
|
|
285
|
+
},
|
|
286
|
+
ready () {
|
|
287
|
+
this.getaddress()
|
|
288
|
+
asyncArrearsList(this)
|
|
289
|
+
this.$refs.paged.$refs.cri.model.f_isbank = '否'
|
|
290
|
+
this.$refs.paged.$refs.cri.model.startDate = this.$login.toStandardDateString() + ' 00:00:00'
|
|
291
|
+
this.$refs.paged.$refs.cri.model.endDate = this.$login.toStandardDateString() + ' 23:59:59'
|
|
292
|
+
this.$refs.paged.$refs.cri.model.startDate1 = this.$login.toStandardDateString() + ' 00:00:00'
|
|
293
|
+
this.$refs.paged.$refs.cri.model.endDate1 = this.$login.toStandardDateString() + ' 23:59:59'
|
|
294
|
+
this.search({condition: `1=1 `, model: this.$refs.paged.$refs.cri.model})
|
|
295
|
+
},
|
|
296
|
+
watch: {
|
|
297
|
+
'f_whether' (val) {
|
|
298
|
+
if (val[0] === '全部') {
|
|
299
|
+
this.f_whether = '欠费'
|
|
300
|
+
this.$dispatch('all', '全部')
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
},
|
|
304
|
+
methods: {
|
|
305
|
+
hidden () {
|
|
306
|
+
this.criteriaShow = !this.criteriaShow
|
|
307
|
+
},
|
|
308
|
+
async getaddress () {
|
|
309
|
+
console.log('开始获取小区')
|
|
310
|
+
let HttpReset = new HttpResetClass()
|
|
311
|
+
var data = await HttpReset.load('POST', 'rs/sql/address_getarealist', {
|
|
312
|
+
data: {
|
|
313
|
+
condition: '1=1'
|
|
314
|
+
}
|
|
315
|
+
}, {resolveMsg: null, rejectMsg: '获取小区失败!'})
|
|
316
|
+
console.log('小区', data)
|
|
317
|
+
let house = []
|
|
318
|
+
for (let row of data.data) {
|
|
319
|
+
console.log('开始保存小区')
|
|
320
|
+
house.push({label: row.f_residential_area, value: row.f_residential_area})
|
|
321
|
+
}
|
|
322
|
+
this.residentialArea = house
|
|
323
|
+
},
|
|
324
|
+
|
|
325
|
+
retrun () {
|
|
326
|
+
this.alllist = false
|
|
327
|
+
this.$dispatch('allchange6')
|
|
328
|
+
},
|
|
329
|
+
cleanOutlet () {
|
|
330
|
+
this.outletsname = []
|
|
331
|
+
},
|
|
332
|
+
create () {
|
|
333
|
+
this.arrshow = false
|
|
334
|
+
let tmp = this.model.condition + " and f_orgid = \'" + Vue.$login.f.orgid + "\'"
|
|
335
|
+
if (this.ids.length !== 0) {
|
|
336
|
+
this.model.condition = tmp + ' and f_userinfo_id in (' + this.ids + ')'
|
|
337
|
+
}
|
|
338
|
+
if (this.arrdownDate === '' || this.arrdownDate === null) {
|
|
339
|
+
this.$showAlert('发送截至时间不能为空!', 'danger', 3000)
|
|
340
|
+
} else {
|
|
341
|
+
var magdata = this.config.msg
|
|
342
|
+
if (this.$refs.paged.$refs.cri.model.f_isbank[0] === '是') {
|
|
343
|
+
console.log(this.config)
|
|
344
|
+
magdata = this.config.qianmsg
|
|
345
|
+
console.log(magdata)
|
|
346
|
+
}
|
|
347
|
+
this.$dispatch('create', this.model.condition, this.userdefinedMessage, this.arrdownDate,
|
|
348
|
+
null,this.$refs.paged.$refs.cri.model.startDate,this.$refs.paged.$refs.cri.model.endDate, magdata)
|
|
349
|
+
}
|
|
350
|
+
},
|
|
351
|
+
search (args) {
|
|
352
|
+
args.condition = `${args.condition} and f_orgid = ` + `'${Vue.$login.f.orgid}'`
|
|
353
|
+
if (args.model.f_meter_brand && args.model.f_meter_brand.length > 0) {
|
|
354
|
+
if (args.model.f_meter_brand[0].f_meter_brand) {
|
|
355
|
+
args.condition = `${args.condition} and f_meter_brand = '${args.model.f_meter_brand[0].f_meter_brand}'`
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
console.log('查看条件', args.condition)
|
|
359
|
+
this.model.search(args.condition, args.model)
|
|
360
|
+
if (this.isFirst) {
|
|
361
|
+
this.isFirst = false
|
|
362
|
+
} else {
|
|
363
|
+
this.$dispatch('allchange5')
|
|
364
|
+
this.alllist = true
|
|
365
|
+
}
|
|
366
|
+
},
|
|
367
|
+
|
|
368
|
+
arrcreate () {
|
|
369
|
+
this.isbank = this.$refs.paged.$refs.cri.model.f_isbank[0]
|
|
370
|
+
this.arrshow = true
|
|
371
|
+
},
|
|
372
|
+
defined () {
|
|
373
|
+
this.definedShow = true
|
|
374
|
+
},
|
|
375
|
+
close () {
|
|
376
|
+
this.arrshow = false
|
|
377
|
+
this.definedShow = false
|
|
378
|
+
},
|
|
379
|
+
isAll (page) {
|
|
380
|
+
if (this.pages.includes(page)) { // 已添加,取消动作
|
|
381
|
+
// 从ids中删除本页所有数据的ids
|
|
382
|
+
this.addOrRemove(false)
|
|
383
|
+
this.pages = this.pages.filter((item) => {
|
|
384
|
+
return item !== page
|
|
385
|
+
})
|
|
386
|
+
} else { // 未添加
|
|
387
|
+
this.pages.push(page) // 添加id,添加动作
|
|
388
|
+
this.addOrRemove(true)
|
|
389
|
+
}
|
|
390
|
+
},
|
|
391
|
+
addOrRemove (is) {
|
|
392
|
+
let that = this
|
|
393
|
+
if (is) { // 添加本页所有数据到ids中
|
|
394
|
+
this.model.rows.forEach((row) => {
|
|
395
|
+
if (!that.ids.includes(row.f_userinfo_id)) {
|
|
396
|
+
that.ids.push(row.f_userinfo_id)
|
|
397
|
+
}
|
|
398
|
+
})
|
|
399
|
+
} else { // 从ids中取消所有的数据
|
|
400
|
+
this.model.rows.forEach((row) => {
|
|
401
|
+
that.ids = that.ids.filter((item) => {
|
|
402
|
+
return item !== row.f_userinfo_id
|
|
403
|
+
})
|
|
404
|
+
})
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
},
|
|
408
|
+
computed: {
|
|
409
|
+
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
</script>
|
|
413
|
+
<style>
|
|
414
|
+
.form-group{
|
|
415
|
+
height: 30px;
|
|
416
|
+
}
|
|
417
|
+
</style>
|
|
@@ -95,4 +95,6 @@ export default function () {
|
|
|
95
95
|
Vue.component('file-user-meter-info', (resolve) => { require(['./FilesManage/UserMeterInfoTest'], resolve) })
|
|
96
96
|
// 当前选择用户的表具基本信息
|
|
97
97
|
Vue.component('sale-userinfo', (resolve) => { require(['./revenue/Userinfo'], resolve) })
|
|
98
|
+
// 用户欠费记录查询
|
|
99
|
+
Vue.component('arrears-list', (resolve) => { require(['./ArrearsList'], resolve) })
|
|
98
100
|
}
|