b25b036d
wuxw
v1.9 优化日期
|
1
|
<template>
|
c036402c
wuxw
优化缴费页面
|
2
|
<div>
|
d65dee5e
wuxw
优化支付问题
|
3
4
5
6
7
8
9
10
11
12
13
|
<el-dialog :title="$t('payFeeOrderConfirm.title')" :visible.sync="dialogVisible" width="40%" @close="handleClose"
:close-on-click-modal="false">
<el-form label-width="120px" class="text-left" @submit.prevent>
<el-form-item :label="$t('payFeeOrderConfirm.payerObj')">
<span>{{ formData.payerObjName }}</span>
</el-form-item>
<el-form-item v-if="formData.feeFlag != '2006012' && formData.showEndTime != ''"
:label="$t('payFeeOrderConfirm.timeRange')">
<span>
{{ dateFormat(formData.endTime) }} 至
|
d2655d32
wuxw
v1.9 优化缴费页面,确认页面缴...
|
14
|
{{ dateFormatSubSec(formData.showEndTime) }}
|
d65dee5e
wuxw
优化支付问题
|
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
</span>
</el-form-item>
<el-form-item v-else-if="formData.feeFlag != '2006012' && formData.custEndTime != ''"
:label="$t('payFeeOrderConfirm.timeRange')">
<span>
{{ dateFormat(formData.endTime) }} 至
{{ formData.custEndTime }}
</span>
</el-form-item>
<el-form-item :label="$t('payFeeOrderConfirm.receivable')">
<span>{{ formData.totalFeePrice }}</span>
</el-form-item>
<el-form-item :label="$t('payFeeOrderConfirm.discountAmount')">
<el-tooltip effect="dark" :content="$t('payFeeOrderConfirm.discountTooltip')" placement="top">
<span>
{{ formData.totalDiscountMoney.toFixed(2) }}
</span>
</el-tooltip>
</el-form-item>
<el-form-item :label="$t('payFeeOrderConfirm.actualAmount')">
<span v-if="formData.flag != null && formData.flag != '' && formData.flag == 'true'">
{{ formData.receivedAmountNumber }}
</span>
<span v-else>{{ formData.receivedAmount }}</span>
</el-form-item>
<el-form-item :label="$t('payFeeOrderConfirm.deductionAmount')">
<span>
{{ formData.accountAmount >= formData.receivedAmount ?
formData.receivedAmount : formData.accountAmount.toFixed(2) }}
</span>
</el-form-item>
<el-form-item :label="$t('payFeeOrderConfirm.amountPayable')">
|
1a0bdbe0
wuxw
优化缴费页面
|
53
|
<span>
|
d65dee5e
wuxw
优化支付问题
|
54
55
|
{{ formData.accountAmount >= formData.receivedAmount ?
'0.00' : (formData.receivedAmount - formData.accountAmount).toFixed(2) }}
|
1a0bdbe0
wuxw
优化缴费页面
|
56
|
</span>
|
d65dee5e
wuxw
优化支付问题
|
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
</el-form-item>
<el-form-item v-if="formData.integralAmount != null && formData.integralAmount != ''"
:label="$t('payFeeOrderConfirm.integralDeduction')">
<span>{{ formData.integralAmount }}</span>
</el-form-item>
<el-form-item v-if="formData.cashAmount != null && formData.cashAmount != ''"
:label="$t('payFeeOrderConfirm.cashDeduction')">
<span>{{ formData.cashAmount }}</span>
</el-form-item>
<el-form-item :label="$t('payFeeOrderConfirm.remark')">
<span>{{ formData.remark }}</span>
</el-form-item>
<el-form-item v-if="formData.payType == 'qrCode'" :label="$t('payFeeOrderConfirm.authCode')">
<input
v-model="formData.authCode"
:placeholder="$t('payFeeOrderConfirm.authCodePlaceholder')"
@keydown.enter.prevent="qrCodePayFee"
class="custom-input"
type="text">
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="closeDoPayFeeModal">{{ $t('payFeeOrderConfirm.close') }}</el-button>
<el-button v-if="formData.payType == 'common'" type="primary" @click="payFee">
{{ $t('payFeeOrderConfirm.confirm') }}
</el-button>
</div>
</el-dialog>
<pay-fee-order-result ref="payFeeOrderResult"></pay-fee-order-result>
</div>
|
1a0bdbe0
wuxw
优化缴费页面
|
93
94
95
|
</template>
<script>
|
d65dee5e
wuxw
优化支付问题
|
96
|
import { qrCodePayment, checkPayFinish, payFee } from '@/api/fee/payFeeOrderApi'
|
d2655d32
wuxw
v1.9 优化缴费页面,确认页面缴...
|
97
|
import { dateFormat, dateFormatSubSec } from '@/utils/dateUtil'
|
c036402c
wuxw
优化缴费页面
|
98
|
import PayFeeOrderResult from '@/components/fee/payFeeOrderResult'
|
1a0bdbe0
wuxw
优化缴费页面
|
99
100
101
102
103
104
105
106
107
108
109
110
|
export default {
name: 'PayFeeOrderConfirm',
data() {
return {
dialogVisible: false,
formData: {
totalDiscountMoney: 0.0,
accountAmount: 0.0,
payType: ''
}
}
},
|
c036402c
wuxw
优化缴费页面
|
111
112
113
|
components: {
PayFeeOrderResult
},
|
1a0bdbe0
wuxw
优化缴费页面
|
114
115
|
methods: {
dateFormat,
|
d2655d32
wuxw
v1.9 优化缴费页面,确认页面缴...
|
116
|
dateFormatSubSec,
|
1a0bdbe0
wuxw
优化缴费页面
|
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
open(params) {
this.formData = { ...params }
this.dialogVisible = true
if (this.formData.payType !== 'common') {
setTimeout(() => {
document.getElementById('authCode').focus()
}, 1000)
}
},
close() {
this.dialogVisible = false
},
closeDoPayFeeModal() {
this.close()
},
async qrCodePayFee() {
try {
|
1a0bdbe0
wuxw
优化缴费页面
|
134
135
136
|
this.formData.subServiceCode = 'fee.payFee'
|
c036402c
wuxw
优化缴费页面
|
137
|
const data = await qrCodePayment(this.formData)
|
1a0bdbe0
wuxw
优化缴费页面
|
138
|
|
ff70d5b6
wuxw
v1.9 业主重置密码不显示问题
|
139
|
if (data.code == 404) {
|
1a0bdbe0
wuxw
优化缴费页面
|
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
|
this.$message.error(data.msg)
if (data.data && data.data.orderId) {
this.formData.orderId = data.data.orderId
this.formData.paymentPoolId = data.data.paymentPoolId
setTimeout(() => {
this.qrCodeCheckPayFinish()
}, 5000)
}
return
}
this.close()
this.$emit('success', data)
} catch (error) {
console.error('扫码支付失败:', error)
}
},
async qrCodeCheckPayFinish() {
try {
|
1a0bdbe0
wuxw
优化缴费页面
|
159
160
161
|
this.formData.subServiceCode = 'fee.payFee'
|
c036402c
wuxw
优化缴费页面
|
162
163
|
const data = await checkPayFinish(this.formData)
|
1a0bdbe0
wuxw
优化缴费页面
|
164
|
|
ff70d5b6
wuxw
v1.9 业主重置密码不显示问题
|
165
|
if (data.code == 404) {
|
1a0bdbe0
wuxw
优化缴费页面
|
166
167
|
this.$message.error(data.msg)
return
|
ff70d5b6
wuxw
v1.9 业主重置密码不显示问题
|
168
|
} else if (data.code == 41) {
|
1a0bdbe0
wuxw
优化缴费页面
|
169
170
171
172
173
174
175
|
setTimeout(() => {
this.qrCodeCheckPayFinish()
}, 5000)
return
}
this.close()
|
c036402c
wuxw
优化缴费页面
|
176
|
this.$refs.payFeeOrderResult.open(data.data)
|
1a0bdbe0
wuxw
优化缴费页面
|
177
178
179
180
181
182
183
|
this.$emit('success', data.data)
} catch (error) {
console.error('检查支付状态失败:', error)
}
},
async payFee() {
try {
|
c036402c
wuxw
优化缴费页面
|
184
|
const data = await payFee(this.formData)
|
1a0bdbe0
wuxw
优化缴费页面
|
185
186
187
|
if (data.code === 0) {
this.close()
|
c036402c
wuxw
优化缴费页面
|
188
|
this.$refs.payFeeOrderResult.open(data.data)
|
1a0bdbe0
wuxw
优化缴费页面
|
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
|
this.$emit('success', data.data)
} else {
this.$message.error(data.msg)
}
} catch (error) {
console.error('缴费失败:', error)
}
},
handleClose() {
this.formData = {
totalDiscountMoney: 0.0,
accountAmount: 0.0,
payType: ''
}
}
}
}
</script>
<style scoped>
|
d65dee5e
wuxw
优化支付问题
|
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
|
.custom-input {
width: 100%;
height: 40px;
line-height: 40px;
padding: 0 15px;
border: 1px solid #dcdfe6;
border-radius: 4px;
font-size: 14px;
color: #606266;
background-color: #fff;
transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
box-sizing: border-box;
}
.custom-input:focus {
outline: none;
border-color: #409eff;
box-shadow: 0 0 0 2px rgba(64, 158, 255, 0.2);
}
.custom-input:hover {
border-color: #c0c4cc;
}
.custom-input::placeholder {
color: #c0c4cc;
}
/* 禁用状态 */
.custom-input:disabled {
background-color: #f5f7fa;
border-color: #e4e7ed;
color: #c0c4cc;
cursor: not-allowed;
}
/* 错误状态 */
.custom-input.error {
border-color: #f56c6c;
}
.custom-input.error:focus {
box-shadow: 0 0 0 2px rgba(245, 108, 108, 0.2);
|
1a0bdbe0
wuxw
优化缴费页面
|
252
253
|
}
</style>
|