解决缴费页面账户选择bug

This commit is contained in:
wuxw 2025-11-12 12:32:28 +08:00
parent 7cefa499d4
commit 9651477307

View File

@ -10,10 +10,14 @@
</div>
<el-table :data="accountList" border style="width: 100%">
<el-table-column align="center" :label="$t('payFeeUserAccount.select')" width="80">
<el-table-column align="center" :label="$t('payFeeUserAccount.select')" width="120">
<template slot-scope="scope">
<el-checkbox v-model="selectedAccounts" :value="scope.row.acctId"
@change="(checked) => handleAccountChange(scope.row.acctId, checked)"></el-checkbox>
<el-radio
v-model="selectedAccount"
:label="scope.row.acctId"
@change="() => handleAccountChange(scope.row)"
>
</el-radio>
</template>
</el-table-column>
<el-table-column prop="acctTypeName" align="center" :label="$t('payFeeUserAccount.accountType')" />
@ -48,7 +52,7 @@ export default {
feeId: '',
ownerId: '',
communityId: '',
selectedAccounts: [] //
selectedAccount: '' //
}
},
methods: {
@ -83,53 +87,26 @@ export default {
openAddUserAmountModal(userAccount) {
window.open(`/#/views/owner/ownerDetail?ownerId=${userAccount.objId}&currentTab=ownerDetailAccount`)
},
//
handleAccountChange(acctId, checked) {
console.log('选中的账户ID:', acctId, '是否选中:', checked)
console.log('当前selectedAccounts:', this.selectedAccounts)
// selectedAccounts
if (!Array.isArray(this.selectedAccounts)) {
this.selectedAccounts = []
}
if (checked) {
//
if (!this.selectedAccounts.includes(acctId)) {
this.selectedAccounts.push(acctId)
}
//
handleAccountChange(account) {
if (!account) {
this.selectedAccount = ''
} else {
//
const index = this.selectedAccounts.indexOf(acctId)
if (index > -1) {
this.selectedAccounts.splice(index, 1)
}
this.selectedAccount = account.acctId
}
console.log('更新后的selectedAccounts:', this.selectedAccounts)
this.computeFeeUserAmount()
},
// computeFeeUserAmount
// 使
computeFeeUserAmount() {
console.log('计算费用,选中的账户:', this.selectedAccounts)
let totalUserAmount = 0.0
let selectAccount = []
// selectedAccounts
if (!Array.isArray(this.selectedAccounts)) {
this.selectedAccounts = []
const account = this.accountList.find(item => item.acctId === this.selectedAccount)
if (account && Number(account.amount) !== 0) {
totalUserAmount = parseFloat(account.amount)
selectAccount = [account]
}
this.accountList.forEach(item => {
if (this.selectedAccounts.includes(item.acctId) && item.amount != 0) {
totalUserAmount += parseFloat(item.amount)
selectAccount.push(item)
}
})
console.log('计算的总金额:', totalUserAmount, '选中的账户列表:', selectAccount)
this.$emit('changeUserAmountPrice', {
totalUserAmount,
accountList: this.accountList,
@ -141,7 +118,7 @@ export default {
},
handleClose() {
this.accountList = []
this.selectedAccounts = [] //
this.selectedAccount = '' //
this.feeId = ''
this.ownerId = ''
}