sale-client 3.5.203 → 3.5.205
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/package.json +1 -1
- package/src/components/FilesManage/FileUserFiles.vue +1 -1
- package/src/components/FilesManage/MeterinfoTest.vue +2 -2
- package/src/components/FilesManage/UserFireInfo.vue +1 -1
- package/src/components/FilesManageNew/MeterinfoTest.vue +1 -1
- package/src/components/UserFiles/Meterinfo.vue +1 -1
- package/src/components/UserFiles/UserGeneralInfo.vue +3 -2
- package/src/components/UserFiles/UserPriceChangeManage.vue +1 -1
- package/src/components/charge/ChargeList.vue +1 -1
- package/src/components/charge/business/refund_copy/IOTRefund.vue +237 -0
- package/src/components/charge/business/refund_copy/RefundManage.vue +28 -0
- package/src/components/charge/business/refund_copy/machineRefund.vue +193 -0
- package/src/components/chargeBatch/ChargeBatchList.vue +1 -1
- package/src/components/priceadjustment/adjustUser.vue +1 -1
- package/src/components/revenue/HandManager/HandManager.vue +1 -1
- package/src/components/revenue/comprehen/gasbrand/AddGasBrand.vue +1 -2
- package/src/components/revenue/machineHandManage/machineHand.vue +1 -1
- package/src/filiale/fugu/MeterinfoTest.vue +2 -2
- package/src/filiale/fugu/components/BlackListList.vue +1 -1
- package/src/filiale/fugu/components/revenue/machineHandManage/machineHand.vue +1 -1
- package/src/filiale/qianneng/FilesManage/FileUserFiles.vue +1 -1
- package/src/filiale/qianneng/FilesManage/MeterinfoTest.vue +2 -2
- package/src/filiale/wuan/FileUserFiles.vue +1 -1
- package/src/filiale/wuan/TransferManage.vue +401 -0
- package/src/filiale/wuan/charge/MeterinfoTest.vue +2 -2
- package/src/filiale/wuan/sale.js +3 -1
- package/src/filiale/xiangyun/cardChargeQuery.vue +46 -2
- package/src/filiale/xiangyun/cardChargeQuery1.vue +28 -2
- package/src/filiale/xiangyun/machineChargeQuery.vue +48 -4
- package/src/filiale/xiangyun/machineChargeQuery1.vue +30 -4
- package/src/sale.js +2 -0
package/package.json
CHANGED
|
@@ -281,7 +281,7 @@
|
|
|
281
281
|
class="form-group">
|
|
282
282
|
<label class="font_normal_body">表 号</label>
|
|
283
283
|
<input class="input_search" condition="f_meternumber ='{}'" placeholder='表号' style="width:60%"
|
|
284
|
-
type="text" v-model="model.f_meternumber">
|
|
284
|
+
type="text" v-model.trim="model.f_meternumber">
|
|
285
285
|
</div>
|
|
286
286
|
</div>
|
|
287
287
|
</div>
|
|
@@ -24,13 +24,13 @@
|
|
|
24
24
|
|
|
25
25
|
<div class="col-sm-4 form-group" v-if="isiot" :class="[$m.f_meternumber.required ? 'has-error' : '']">
|
|
26
26
|
<label for="f_meternumber" class="font_normal_body"> 表  号</label>
|
|
27
|
-
<input type="text" class="input_search" style="width:60%" v-model="row.f_meternumber"
|
|
27
|
+
<input type="text" class="input_search" style="width:60%" v-model.trim="row.f_meternumber"
|
|
28
28
|
@blur="meternumberValidate()" placeholder='表号' v-validate:f_meternumber='{required: true }'
|
|
29
29
|
v-next-el="{id: 'metertitles'}">
|
|
30
30
|
</div>
|
|
31
31
|
<div class="col-sm-4 form-group" v-else>
|
|
32
32
|
<label for="f_meternumber" class="font_normal_body"> 表  号</label>
|
|
33
|
-
<input type="text" class="input_search" style="width:60%" v-model="row.f_meternumber"
|
|
33
|
+
<input type="text" class="input_search" style="width:60%" v-model.trim="row.f_meternumber"
|
|
34
34
|
@blur="meternumberValidate()" placeholder='表号'
|
|
35
35
|
v-next-el="{id: 'metertitles'}">
|
|
36
36
|
</div>
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
</div>
|
|
27
27
|
<div class="col-sm-3 form-group" >
|
|
28
28
|
<label class="font_normal_body">   表  号</label>
|
|
29
|
-
<input type="text" class="input-underline" style="width:60%" v-model="meter.f_meternumber" readonly
|
|
29
|
+
<input type="text" class="input-underline" style="width:60%" v-model.trim="meter.f_meternumber" readonly
|
|
30
30
|
placeholder='表号' >
|
|
31
31
|
</div>
|
|
32
32
|
<div class="col-sm-3 form-group" >
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<div class="row">
|
|
6
6
|
<div class="col-sm-4 form-group" :class="[$m.meternumber.required ? 'has-error' : '']">
|
|
7
7
|
<label for="f_meternumber" class="font_normal_body"> 表  号</label>
|
|
8
|
-
<input type="text" class="input_search" style="width:60%" v-model="row.f_meternumber"
|
|
8
|
+
<input type="text" class="input_search" style="width:60%" v-model.trim="row.f_meternumber"
|
|
9
9
|
@blur="meternumberValidate()" placeholder='表号'
|
|
10
10
|
v-next-el="{id: 'metertitles'}">
|
|
11
11
|
</div>
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<div class="row auto">
|
|
9
9
|
<div class="col-sm-3" :class="[$m.meternumber.required ? 'has-error' : '']">
|
|
10
10
|
<label for="f_meternumber" class="font_normal_body"> 表号 </label>
|
|
11
|
-
<input type="text" class="input_search" style="width:60%" v-model="row.f_meternumber"
|
|
11
|
+
<input type="text" class="input_search" style="width:60%" v-model.trim="row.f_meternumber"
|
|
12
12
|
v-validate:meternumber='{required: true }' @blur="meternumberValidate()" placeholder='表号'
|
|
13
13
|
v-next-el="{id: 'metertitles'}">
|
|
14
14
|
</div>
|
|
@@ -68,7 +68,8 @@
|
|
|
68
68
|
f_user_state: '',
|
|
69
69
|
f_credentials: '',
|
|
70
70
|
f_cost_type: '',
|
|
71
|
-
f_paper_type: ''
|
|
71
|
+
f_paper_type: '',
|
|
72
|
+
f_contract_id: ''
|
|
72
73
|
},
|
|
73
74
|
bank: {
|
|
74
75
|
f_bank_name: ''
|
|
@@ -249,7 +250,7 @@
|
|
|
249
250
|
row.f_devices_type = row.f_devices_type ? [row.f_devices_type] : ''
|
|
250
251
|
})
|
|
251
252
|
},
|
|
252
|
-
getPricenames
|
|
253
|
+
getPricenames(f_user_type, f_gasproperties, f_price_type){
|
|
253
254
|
let rs = []
|
|
254
255
|
if (f_user_type.length === 1 && f_gasproperties.length === 1 && f_price_type.length === 1) {
|
|
255
256
|
rs = this.$GetSaleParam.getPrice({
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
</div>
|
|
43
43
|
<div class="form-group col-sm-2">
|
|
44
44
|
<label class="font_normal_body">表  号</label>
|
|
45
|
-
<input type="text" class="input_search" style="width:60%" v-model="model.f_meternumber" placeholder='表号'
|
|
45
|
+
<input type="text" class="input_search" style="width:60%" v-model.trim="model.f_meternumber" placeholder='表号'
|
|
46
46
|
condition="f_meternumber = '{}'">
|
|
47
47
|
</div>
|
|
48
48
|
<div class="form-group col-sm-2">
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
</div>
|
|
45
45
|
<div class="form-group col-sm-3">
|
|
46
46
|
<label class="font_normal_body">表  号</label>
|
|
47
|
-
<input type="text" class="input_search" style="width:60%" style="width:60%" v-model="model.f_meternumber" placeholder='表号'
|
|
47
|
+
<input type="text" class="input_search" style="width:60%" style="width:60%" v-model.trim="model.f_meternumber" placeholder='表号'
|
|
48
48
|
condition="u.f_meternumber like '%{}%'">
|
|
49
49
|
</div>
|
|
50
50
|
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="auto">
|
|
3
|
+
<validator name='v'>
|
|
4
|
+
<form novalidate class="form-horizontal">
|
|
5
|
+
<div class="row">
|
|
6
|
+
<div class="col-sm-4 form-group" :class="[$v.payment.required ? 'select-error' : '']">
|
|
7
|
+
<label class="font_normal_body" title="参数名称:付款方式">收款方式</label>
|
|
8
|
+
<input type="text" v-show="false" v-model="$refs.payment.selectedItems" v-validate:payment='{required: true }'>
|
|
9
|
+
<v-select v-model="f_payment"
|
|
10
|
+
placeholder='请选择'
|
|
11
|
+
style="width:60%"
|
|
12
|
+
:value.sync="model.f_payment"
|
|
13
|
+
:options='paytype'
|
|
14
|
+
v-ref:payment
|
|
15
|
+
close-on-select clear-button></v-select>
|
|
16
|
+
|
|
17
|
+
</div>
|
|
18
|
+
<div class="col-sm-4 form-group">
|
|
19
|
+
<label for="f_print" class="font_normal_body">打印格式</label>
|
|
20
|
+
|
|
21
|
+
<v-select id="print"
|
|
22
|
+
v-model="f_print"
|
|
23
|
+
style="width:60%"
|
|
24
|
+
placeholder='请选择'
|
|
25
|
+
:value.sync="model.f_print"
|
|
26
|
+
:options='printstyle'
|
|
27
|
+
close-on-select clear-button>
|
|
28
|
+
</v-select>
|
|
29
|
+
</div>
|
|
30
|
+
<div class="col-sm-4 form-group" v-if="data.f_collection_type === '按气量'">
|
|
31
|
+
<label class="font_normal_body">剩余气量</label>
|
|
32
|
+
<input class="input_search" style="width:60%" type="number" v-model="data.f_balance_gas" readonly>
|
|
33
|
+
</div>
|
|
34
|
+
<div class="col-sm-4 form-group" v-if="data.f_collection_type === '按气量'">
|
|
35
|
+
<label class="font_normal_body">核算单价</label>
|
|
36
|
+
<input class="input_search" style="width:60%" type="number" v-model="model.f_price" >
|
|
37
|
+
</div>
|
|
38
|
+
<div class="col-sm-4 form-group" v-if="data.f_collection_type === '按金额'">
|
|
39
|
+
<label class="font_normal_body">剩余金额</label>
|
|
40
|
+
<input class="input_search" style="width:60%" type="number" v-model="data.f_balance_amount" readonly>
|
|
41
|
+
</div>
|
|
42
|
+
<div class="col-sm-4 form-group" v-if="config.overBalance && data.f_collection_type === '按气量'"
|
|
43
|
+
:class="[$v.f_refund_gas.required || $v.f_refund_gas.dctest ? 'has-error' : 'has-success']">
|
|
44
|
+
<label class="font_normal_body">冲减气量</label>
|
|
45
|
+
<input class="input_search" style="width:60%" type="number" v-model="model.f_refund_gas"
|
|
46
|
+
v-validate:f_refund_gas='{required: true, dctest: [0, ">=" ]}' placeholder="冲减气量" >
|
|
47
|
+
</div>
|
|
48
|
+
<div class="col-sm-4 form-group" v-if="!config.overBalance && data.f_collection_type === '按气量'"
|
|
49
|
+
:class="[$v.f_refund_gas.required || $v.f_refund_gas.dctest ? 'has-error' : 'has-success']">
|
|
50
|
+
<label class="font_normal_body">冲减气量</label>
|
|
51
|
+
<input class="input_search" style="width:60%" type="number" v-model="model.f_refund_gas"
|
|
52
|
+
v-validate:f_refund_gas='{required: true, dctest: [data.f_balance_gas, "<=" ]}' placeholder="冲减气量" >
|
|
53
|
+
</div>
|
|
54
|
+
</div>
|
|
55
|
+
|
|
56
|
+
<div class="row">
|
|
57
|
+
|
|
58
|
+
<div class="col-sm-8">
|
|
59
|
+
<label for="f_paper_account" class="font_normal_body "> 备注 </label>
|
|
60
|
+
<input class="input_search" style="width:80%" v-model="model.f_comments">
|
|
61
|
+
</div>
|
|
62
|
+
<div class="col-sm-4 form-group" v-if="data.f_collection_type === '按气量'">
|
|
63
|
+
<label class="font_normal_body">退费金额</label>
|
|
64
|
+
<input class="input_search" style="width:60%"
|
|
65
|
+
type="number" v-model="model.f_refund_fee"
|
|
66
|
+
placeholder="退费金额">
|
|
67
|
+
</div>
|
|
68
|
+
<div class="col-sm-4 form-group" v-if="!config.overBalance && data.f_collection_type === '按金额'"
|
|
69
|
+
:class="[$v.f_refund_fee.required || $v.f_refund_fee.dctest ? 'has-error' : 'has-success']">
|
|
70
|
+
<label class="font_normal_body">退费金额</label>
|
|
71
|
+
<input class="input_search" style="width:60%" type="number" v-model="model.f_refund_fee"
|
|
72
|
+
v-validate:f_refund_fee='{required: true, dctest: [data.f_balance_amount, "<=" ]}' placeholder="退费金额">
|
|
73
|
+
</div>
|
|
74
|
+
<div class="col-sm-4 form-group" v-if="config.overBalance && data.f_collection_type === '按金额'"
|
|
75
|
+
:class="[$v.f_refund_fee.required || $v.f_refund_fee.dctest ? 'has-error' : 'has-success']">
|
|
76
|
+
<label class="font_normal_body">退费金额</label>
|
|
77
|
+
<input class="input_search" style="width:60%" type="number" v-model="model.f_refund_fee"
|
|
78
|
+
v-validate:f_refund_fee='{required: true, dctest: [0, ">=" ]}' placeholder="退费金额">
|
|
79
|
+
</div>
|
|
80
|
+
</div>
|
|
81
|
+
</form>
|
|
82
|
+
<div style="text-align:right;">
|
|
83
|
+
<button class="button_search btn-gn" @click="confirm()" :disabled='!$v.valid'>确认</button>
|
|
84
|
+
<button class="button_clear btn-gn" @click="clean()">取消</button>
|
|
85
|
+
</div>
|
|
86
|
+
</validator>
|
|
87
|
+
<validate-bill v-if="hasValidateBill" :data="model" @validate-bill="validateBill"></validate-bill>
|
|
88
|
+
<!--<print-bill :show="print" :bill-manager='config.hasBillManage' v-ref:printbill :bill-url='billUrl' v-on:toggle="clean" @printok="printok" :data='printModel'></print-bill>-->
|
|
89
|
+
<print-bill :show="print" :bill-config='config' :bill-data='billData' v-on:toggle="clean" @printok="printok" :data='printModel' v-ref:printbill></print-bill>
|
|
90
|
+
</div>
|
|
91
|
+
|
|
92
|
+
<upload :blodid="data.f_userinfo_id" isremark="true" fusetype="退费管理"></upload>
|
|
93
|
+
</template>
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
<script>
|
|
97
|
+
let readyGen = async function (self) {
|
|
98
|
+
await self.$getConfig(self, 'IOTRefund')
|
|
99
|
+
// 默认打印格式
|
|
100
|
+
self.model.f_print = self.config.printType instanceof Array ? self.config.printType : [self.config.printType]
|
|
101
|
+
self.model.f_payment = [self.config.payment]
|
|
102
|
+
|
|
103
|
+
self.model.f_use_type = self.config.billType
|
|
104
|
+
self.model.f_bill_type = self.model.f_print
|
|
105
|
+
self.hasValidateBill = self.config.hasBillManage
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export default {
|
|
109
|
+
title: '物联网表退费',
|
|
110
|
+
data () {
|
|
111
|
+
return {
|
|
112
|
+
config: {
|
|
113
|
+
showupload: false, // 默认不上传附件
|
|
114
|
+
hasPrint: false, // 默认打票
|
|
115
|
+
hasBillManage: false, // 默认不启用发票管理
|
|
116
|
+
overBalance: false, //为true时退费金额可以大于余额
|
|
117
|
+
printType: '普通收据', // 收据/电子票/专用发票/国税发票
|
|
118
|
+
payment: '现金缴费',
|
|
119
|
+
billType: '燃气费'
|
|
120
|
+
},
|
|
121
|
+
model: {
|
|
122
|
+
f_refund_fee: '',
|
|
123
|
+
f_refund_gas: '',
|
|
124
|
+
f_comments: '',
|
|
125
|
+
f_payment: '',
|
|
126
|
+
f_print: '',
|
|
127
|
+
f_price: 0
|
|
128
|
+
},
|
|
129
|
+
|
|
130
|
+
blodid: '',
|
|
131
|
+
hasValidateBill: false,
|
|
132
|
+
validateOk: false,
|
|
133
|
+
|
|
134
|
+
printModel: {},
|
|
135
|
+
print: false,
|
|
136
|
+
billUrl: '',
|
|
137
|
+
billData: {
|
|
138
|
+
url: 'rs/report/refund_sell',
|
|
139
|
+
bill: ''
|
|
140
|
+
},
|
|
141
|
+
|
|
142
|
+
// 下拉框值
|
|
143
|
+
paytype: this.$appdata.getParam('付款方式'),
|
|
144
|
+
printstyle: this.$appdata.getParam('打印格式')
|
|
145
|
+
}
|
|
146
|
+
},
|
|
147
|
+
props: ['data'],
|
|
148
|
+
ready () {
|
|
149
|
+
readyGen(this)
|
|
150
|
+
if (this.data.f_collection_type === '按气量') {
|
|
151
|
+
// this.$showAlert('按气量缴费的物联网表退费功能尚未开放!!', 'warning', 3000)
|
|
152
|
+
this.model.f_price = this.data.f_price
|
|
153
|
+
|
|
154
|
+
// this.$dispatch('refresh')
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
methods: {
|
|
158
|
+
async confirm () {
|
|
159
|
+
let param = {
|
|
160
|
+
f_user_id: this.data.f_user_id,
|
|
161
|
+
f_userfiles_id: this.data.f_userfiles_id,
|
|
162
|
+
version: this.data.version,
|
|
163
|
+
f_price: this.model.f_price,
|
|
164
|
+
f_refund_gas: this.model.f_refund_gas,
|
|
165
|
+
f_refund_fee: this.model.f_refund_fee,
|
|
166
|
+
f_comments: this.model.f_comments,
|
|
167
|
+
f_collection_type: this.data.f_collection_type,
|
|
168
|
+
f_payment: this.model.f_payment[0],
|
|
169
|
+
f_print: this.model.f_print[0],
|
|
170
|
+
f_price_id: this.data.f_price_id,
|
|
171
|
+
f_total_gas: parseFloat(this.data.f_total_gas) - parseFloat(this.model.f_refund_gas),
|
|
172
|
+
f_total_fee: parseFloat(this.data.f_total_fee) - parseFloat(this.model.f_refund_fee),
|
|
173
|
+
f_stairprice_id: this.data.f_stairprice_id,
|
|
174
|
+
operInfo: {
|
|
175
|
+
f_operator: this.$login.f.name,
|
|
176
|
+
f_operatorid: this.$login.f.id,
|
|
177
|
+
f_orgid: this.$login.f.orgid,
|
|
178
|
+
f_orgname: this.$login.f.orgs,
|
|
179
|
+
f_depid: this.$login.f.depids,
|
|
180
|
+
f_depname: this.$login.f.deps
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
console.log('退费传参', param)
|
|
184
|
+
let res = await this.$resetpost('rs/logic/iotRefund_Copy', {data: param}, {warnMsg: `确定要对用户${this.data.f_user_name}进行退费吗?`, resolveMsg: '退费成功!!', rejectMsg: '退费失败!!请重试!!'})
|
|
185
|
+
console.log('退费', res)
|
|
186
|
+
console.log('退费this.config', this.config)
|
|
187
|
+
console.log('退费this.model', this.model)
|
|
188
|
+
if (this.config.hasPrint) {
|
|
189
|
+
if (this.model.f_print.indexOf('电子发票') == -1) {
|
|
190
|
+
console.log('this.config.hasBillManage', this.config.hasBillManage)
|
|
191
|
+
if (this.config.hasBillManage) {
|
|
192
|
+
// 启用发票管理,获取票据管理中的票号并存储记录
|
|
193
|
+
this.printModel.id = res.data.id
|
|
194
|
+
this.printModel.f_bill_type = '退费'
|
|
195
|
+
this.printModel.f_bill_style = this.model.f_print[0]
|
|
196
|
+
// this.billUrl = 'rs/report/refund_sell'
|
|
197
|
+
this.print = true
|
|
198
|
+
} else {
|
|
199
|
+
this.printModel.id = res.data.id
|
|
200
|
+
// this.billUrl = 'rs/report/refund_sell'
|
|
201
|
+
this.print = true
|
|
202
|
+
}
|
|
203
|
+
} else if (this.config.printType === '国税发票') {
|
|
204
|
+
// TODO
|
|
205
|
+
this.$dispatch('success')
|
|
206
|
+
} else if (this.config.printType === '电子发票') {
|
|
207
|
+
// TODO
|
|
208
|
+
this.$dispatch('success')
|
|
209
|
+
}
|
|
210
|
+
}else{
|
|
211
|
+
this.$dispatch('success')
|
|
212
|
+
}
|
|
213
|
+
},
|
|
214
|
+
refundChange () {
|
|
215
|
+
this.model.f_refund_fee = (this.model.f_refund_gas - 0) * (this.model.f_price - 0)
|
|
216
|
+
},
|
|
217
|
+
clean () {
|
|
218
|
+
this.$dispatch('refresh')
|
|
219
|
+
},
|
|
220
|
+
printok () {
|
|
221
|
+
this.$dispatch('success')
|
|
222
|
+
},
|
|
223
|
+
validateBill (val) {
|
|
224
|
+
this.validateOk = !val.isOk
|
|
225
|
+
this.billData.bill = val.bill
|
|
226
|
+
}
|
|
227
|
+
},
|
|
228
|
+
watch:{
|
|
229
|
+
'model.f_price'(){
|
|
230
|
+
this.model.f_refund_fee = (this.model.f_refund_gas - 0) * (this.model.f_price - 0)
|
|
231
|
+
},
|
|
232
|
+
'model.f_refund_gas'(){
|
|
233
|
+
this.model.f_refund_fee = (this.model.f_refund_gas - 0) * (this.model.f_price - 0)
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
</script>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="auto">
|
|
3
|
+
<iot-refund v-if="row.f_meter_type === '物联网表'" :data="row"></iot-refund>
|
|
4
|
+
<machine-Refund v-if="row.f_meter_type !== '物联网表'" :data="row"></machine-Refund>
|
|
5
|
+
</div>
|
|
6
|
+
|
|
7
|
+
</template>
|
|
8
|
+
<script>
|
|
9
|
+
import IotRefund from './IOTRefund'
|
|
10
|
+
import machineRefund from './machineRefund'
|
|
11
|
+
|
|
12
|
+
export default {
|
|
13
|
+
title: '退费管理',
|
|
14
|
+
components: {
|
|
15
|
+
IotRefund,
|
|
16
|
+
machineRefund
|
|
17
|
+
},
|
|
18
|
+
data () {
|
|
19
|
+
return {
|
|
20
|
+
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
ready () {
|
|
24
|
+
|
|
25
|
+
},
|
|
26
|
+
props: ['row']
|
|
27
|
+
}
|
|
28
|
+
</script>
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="auto">
|
|
3
|
+
<validator name='v'>
|
|
4
|
+
<form novalidate class="form-horizontal">
|
|
5
|
+
<div class="row">
|
|
6
|
+
<div class="col-sm-4 form-group">
|
|
7
|
+
<label class="font_normal_body" title="参数名称:付款方式">收款方式</label>
|
|
8
|
+
|
|
9
|
+
<v-select v-model="f_payment"
|
|
10
|
+
placeholder='请选择'
|
|
11
|
+
style="width:60%"
|
|
12
|
+
:value.sync="model.f_payment"
|
|
13
|
+
:options='paytype'
|
|
14
|
+
close-on-select clear-button></v-select>
|
|
15
|
+
|
|
16
|
+
</div>
|
|
17
|
+
<div class="col-sm-4 form-group">
|
|
18
|
+
<label for="f_print" class="font_normal_body">打印格式</label>
|
|
19
|
+
|
|
20
|
+
<v-select id="print"
|
|
21
|
+
v-model="f_print"
|
|
22
|
+
style="width:60%"
|
|
23
|
+
placeholder='请选择'
|
|
24
|
+
:value.sync="model.f_print"
|
|
25
|
+
:options='printstyle'
|
|
26
|
+
close-on-select clear-button>
|
|
27
|
+
</v-select>
|
|
28
|
+
</div>
|
|
29
|
+
|
|
30
|
+
<div class="col-sm-4 form-group">
|
|
31
|
+
<label class="font_normal_body">剩余金额</label>
|
|
32
|
+
<input class="input_search" style="width:60%" type="number" v-model="data.f_balance" readonly>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
|
|
36
|
+
<div class="row">
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class="col-sm-8">
|
|
40
|
+
<label for="f_paper_account" class="font_normal_body "> 备注 </label>
|
|
41
|
+
<input class="input_search" style="width:80%" v-model="model.f_comments">
|
|
42
|
+
</div>
|
|
43
|
+
<div class="col-sm-4 form-group" v-if="!config.overBalance"
|
|
44
|
+
:class="[$v.f_refund_fee.required || $v.f_refund_fee.dctest ? 'has-error' : 'has-success']">
|
|
45
|
+
<label class="font_normal_body">退费金额</label>
|
|
46
|
+
<input class="input_search" style="width:60%" type="number" v-model="model.f_refund_fee"
|
|
47
|
+
v-validate:f_refund_fee='{required: true, dctest: [data.f_balance, "<=" ]}' placeholder="退费金额">
|
|
48
|
+
</div>
|
|
49
|
+
<div class="col-sm-4 form-group" v-if="config.overBalance"
|
|
50
|
+
:class="[$v.f_refund_fee.required || $v.f_refund_fee.dctest ? 'has-error' : 'has-success']">
|
|
51
|
+
<label class="font_normal_body">退费金额</label>
|
|
52
|
+
<input class="input_search" style="width:60%" type="number" v-model="model.f_refund_fee"
|
|
53
|
+
v-validate:f_refund_fee='{required: true, dctest: [0, ">=" ]}' placeholder="退费金额">
|
|
54
|
+
</div>
|
|
55
|
+
</div>
|
|
56
|
+
</form>
|
|
57
|
+
<div style="text-align:right;">
|
|
58
|
+
<button class="button_search btn-gn" @click="confirm()" :disabled='!$v.valid'>确认</button>
|
|
59
|
+
<button class="button_clear btn-gn" @click="clean()">取消</button>
|
|
60
|
+
</div>
|
|
61
|
+
</validator>
|
|
62
|
+
<validate-bill v-if="hasValidateBill" :data="model" @validate-bill="validateBill"></validate-bill>
|
|
63
|
+
<!--<print-bill :show="print" :bill-manager='config.hasBillManage' v-ref:printbill :bill-url='billUrl' v-on:toggle="clean" @printok="printok" :data='printModel'></print-bill>-->
|
|
64
|
+
<print-bill :show="print" :bill-config='config' :bill-data='billData' v-on:toggle="clean" @printok="printok" :data='printModel' v-ref:printbill></print-bill>
|
|
65
|
+
</div>
|
|
66
|
+
|
|
67
|
+
<upload :blodid="data.f_userinfo_id" isremark="true" fusetype="退费管理"></upload>
|
|
68
|
+
</template>
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
<script>
|
|
72
|
+
let readyGen = async function (self) {
|
|
73
|
+
await self.$getConfig(self, 'MachineTRefund')
|
|
74
|
+
console.log('机表退费config', self.config)
|
|
75
|
+
// 默认打印格式
|
|
76
|
+
self.blodid = self.data.f_userinfo_id
|
|
77
|
+
self.model.f_print = self.config.printType instanceof Array ? self.config.printType : [self.config.printType]
|
|
78
|
+
self.model.f_payment = [self.config.payment]
|
|
79
|
+
|
|
80
|
+
self.model.f_use_type = self.config.billType
|
|
81
|
+
self.model.f_bill_type = self.model.f_print
|
|
82
|
+
self.hasValidateBill = self.config.hasBillManage
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export default {
|
|
86
|
+
title: '机表退费',
|
|
87
|
+
data () {
|
|
88
|
+
return {
|
|
89
|
+
config: {
|
|
90
|
+
showupload: false, // 默认不上传附件
|
|
91
|
+
hasPrint: false, // 默认打票
|
|
92
|
+
hasBillManage: false, // 默认不启用发票管理
|
|
93
|
+
overBalance: false, //为true时退费金额可以大于余额
|
|
94
|
+
printType: '普通收据', // 收据/电子票/专用发票/国税发票
|
|
95
|
+
payment: '现金缴费',
|
|
96
|
+
billType: '燃气费'
|
|
97
|
+
},
|
|
98
|
+
model: {
|
|
99
|
+
f_refund_fee: '',
|
|
100
|
+
f_comments: '',
|
|
101
|
+
f_payment: '',
|
|
102
|
+
f_print: ''
|
|
103
|
+
},
|
|
104
|
+
|
|
105
|
+
blodid: '',
|
|
106
|
+
hasValidateBill: false,
|
|
107
|
+
validateOk: false,
|
|
108
|
+
|
|
109
|
+
printModel: {},
|
|
110
|
+
print: false,
|
|
111
|
+
billUrl: '',
|
|
112
|
+
billData: {
|
|
113
|
+
url: 'rs/report/refund_sell',
|
|
114
|
+
bill: ''
|
|
115
|
+
},
|
|
116
|
+
|
|
117
|
+
// 下拉框值
|
|
118
|
+
paytype: this.$appdata.getParam('付款方式'),
|
|
119
|
+
printstyle: this.$appdata.getParam('打印格式')
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
props: ['data'],
|
|
123
|
+
ready () {
|
|
124
|
+
/* if (this.data.f_billing === '按气量') {
|
|
125
|
+
this.$showAlert('按气量缴费的机表退费功能尚未开放!!', 'warning', 3000)
|
|
126
|
+
this.$dispatch('refresh')
|
|
127
|
+
} else { */
|
|
128
|
+
readyGen(this)
|
|
129
|
+
/* } */
|
|
130
|
+
},
|
|
131
|
+
methods: {
|
|
132
|
+
async confirm () {
|
|
133
|
+
let param = {
|
|
134
|
+
f_user_id: this.data.f_user_id,
|
|
135
|
+
f_userfiles_id: this.data.f_userfiles_id,
|
|
136
|
+
version: this.data.version,
|
|
137
|
+
f_refund_fee: this.model.f_refund_fee,
|
|
138
|
+
f_comments: this.model.f_comments,
|
|
139
|
+
f_payment: this.model.f_payment[0],
|
|
140
|
+
f_print: this.model.f_print[0],
|
|
141
|
+
f_price_id: this.data.f_price_id,
|
|
142
|
+
|
|
143
|
+
f_total_fee: parseFloat(this.data.f_total_fee) - parseFloat(this.model.f_refund_fee),
|
|
144
|
+
f_stairprice_id: this.data.f_stairprice_id,
|
|
145
|
+
operInfo: {
|
|
146
|
+
f_operator: this.$login.f.name,
|
|
147
|
+
f_operatorid: this.$login.f.id,
|
|
148
|
+
f_orgid: this.$login.f.orgid,
|
|
149
|
+
f_orgname: this.$login.f.orgs,
|
|
150
|
+
f_depid: this.$login.f.depids,
|
|
151
|
+
f_depname: this.$login.f.deps
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
let res = await this.$resetpost('rs/logic/machineRefund_Copy', {data: param}, {warnMsg: `确定要对用户${this.data.f_user_name}进行退费吗?`, resolveMsg: '退费成功!!', rejectMsg: '退费失败!!请重试!!'})
|
|
156
|
+
|
|
157
|
+
if (this.model.f_print.indexOf('电子发票') == -1 && this.config.hasPrint && !this.$login.r.includes('不打印发票')) {
|
|
158
|
+
console.log('this.config.hasBillManage', this.config.hasBillManage)
|
|
159
|
+
if (this.config.hasBillManage) {
|
|
160
|
+
// 启用发票管理,获取票据管理中的票号并存储记录
|
|
161
|
+
this.printModel.id = res.data.id
|
|
162
|
+
this.printModel.f_bill_type = '退费'
|
|
163
|
+
this.printModel.f_bill_style = this.model.f_print[0]
|
|
164
|
+
// this.billUrl = 'rs/report/refund_sell'
|
|
165
|
+
this.print = true
|
|
166
|
+
} else {
|
|
167
|
+
this.printModel.id = res.data.id
|
|
168
|
+
// this.billUrl = 'rs/report/refund_sell'
|
|
169
|
+
this.print = true
|
|
170
|
+
}
|
|
171
|
+
} else if (this.config.printType === '国税发票') {
|
|
172
|
+
// TODO
|
|
173
|
+
this.$dispatch('success')
|
|
174
|
+
} else if (this.config.printType === '电子发票') {
|
|
175
|
+
// TODO
|
|
176
|
+
this.$dispatch('success')
|
|
177
|
+
} else {
|
|
178
|
+
this.$dispatch('success')
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
clean () {
|
|
182
|
+
this.$dispatch('refresh')
|
|
183
|
+
},
|
|
184
|
+
printok () {
|
|
185
|
+
this.$dispatch('success')
|
|
186
|
+
},
|
|
187
|
+
validateBill (val) {
|
|
188
|
+
this.validateOk = !val.isOk
|
|
189
|
+
this.billData.bill = val.bill
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
</script>
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
<div class="form-group col-sm-4">
|
|
44
44
|
<label class="font_normal_body">表  号</label>
|
|
45
45
|
<input type="text" class="input_search" style="width:60%" style="width:60%"
|
|
46
|
-
v-model="model.f_meternumber" placeholder='表号'
|
|
46
|
+
v-model.trim="model.f_meternumber" placeholder='表号'
|
|
47
47
|
condition="f_meternumber like '%{}%'">
|
|
48
48
|
</div>
|
|
49
49
|
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
</div>
|
|
37
37
|
<div class="form-group col-sm-3">
|
|
38
38
|
<label class="font_normal_body">表  号</label>
|
|
39
|
-
<input type="text" class="input_search" style="width:60%" style="width:60%" v-model="model.f_meternumber" placeholder='表号'
|
|
39
|
+
<input type="text" class="input_search" style="width:60%" style="width:60%" v-model.trim="model.f_meternumber" placeholder='表号'
|
|
40
40
|
condition="f_meternumber like '%{}%'">
|
|
41
41
|
</div>
|
|
42
42
|
<div class="form-group col-sm-3">
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
</div>
|
|
80
80
|
<div class="col-sm-2 form-group">
|
|
81
81
|
<label class="font_normal_body">表  号</label>
|
|
82
|
-
<input type="text" style="width:60%" class="input_search" v-model="model.f_meternumber"
|
|
82
|
+
<input type="text" style="width:60%" class="input_search" v-model.trim="model.f_meternumber"
|
|
83
83
|
condition="f_meternumber like '%{}%'" placeholder='表号'>
|
|
84
84
|
</div>
|
|
85
85
|
<div class="col-sm-2 form-group">
|
|
@@ -85,14 +85,13 @@
|
|
|
85
85
|
close-on-select style="width: 60%"></v-select>
|
|
86
86
|
|
|
87
87
|
</div>
|
|
88
|
-
<div class="col-sm-4 form-group" v-if="gasmessage.f_meter_type[0].includes('卡表')">
|
|
88
|
+
<div class="col-sm-4 form-group" v-if="gasmessage.f_meter_type[0].includes('卡表')||gasmessage.f_meter_type[0].includes('物联网表')">
|
|
89
89
|
<label for="hasCard" class="font_normal_body">支持累购</label>
|
|
90
90
|
<v-select :value.sync="gasmessage.f_support_purchase"
|
|
91
91
|
:value-single="true"
|
|
92
92
|
v-model="gasmessage.f_support_purchase"
|
|
93
93
|
:options='isdecimal' placeholder='是否支持累购'
|
|
94
94
|
close-on-select style="width: 60%"></v-select>
|
|
95
|
-
|
|
96
95
|
</div>
|
|
97
96
|
<div v-if="gasmessage.f_meter_type[0].includes('卡表') || gasmessage.f_hascard[0]==='是'" class="row">
|
|
98
97
|
<div class="col-sm-4 form-group" :class="[$v.f_cardnumber.required ? 'has-error' : 'has-success']">
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
</div>
|
|
90
90
|
<div class="col-sm-2 form-group">
|
|
91
91
|
<label class="font_normal_body">表  号</label>
|
|
92
|
-
<input type="text" style="width:60%" class="input_search" v-model="model.f_meternumber"
|
|
92
|
+
<input type="text" style="width:60%" class="input_search" v-model.trim="model.f_meternumber"
|
|
93
93
|
condition="f_meternumber like '%{}%'" placeholder='表号'>
|
|
94
94
|
</div>
|
|
95
95
|
<div class="col-sm-2 form-group">
|
|
@@ -8,13 +8,13 @@
|
|
|
8
8
|
<div class="row">
|
|
9
9
|
<div class="col-sm-4 form-group" v-if="isiot" :class="[$m.f_meternumber.required ? 'has-error' : '']">
|
|
10
10
|
<label for="f_meternumber" class="font_normal_body"> 表  号</label>
|
|
11
|
-
<input type="text" class="input_search" style="width:60%" v-model="row.f_meternumber"
|
|
11
|
+
<input type="text" class="input_search" style="width:60%" v-model.trim="row.f_meternumber"
|
|
12
12
|
@blur="meternumberValidate()" placeholder='表号' v-validate:f_meternumber='{required: true }'
|
|
13
13
|
v-next-el="{id: 'metertitles'}">
|
|
14
14
|
</div>
|
|
15
15
|
<div class="col-sm-4 form-group" v-else>
|
|
16
16
|
<label for="f_meternumber" class="font_normal_body"> 表  号</label>
|
|
17
|
-
<input type="text" class="input_search" style="width:60%" v-model="row.f_meternumber"
|
|
17
|
+
<input type="text" class="input_search" style="width:60%" v-model.trim="row.f_meternumber"
|
|
18
18
|
@blur="meternumberValidate()" placeholder='表号'
|
|
19
19
|
v-next-el="{id: 'metertitles'}">
|
|
20
20
|
</div>
|