Skip to content

Commit 6884b03

Browse files
dexcoder6claude
andcommitted
fix: 修复支付成功页充值金额显示 NaN
后端 ent 模型 PaymentOrder.FeeRate 带 omitempty,fee_rate=0 的订单 在 JSON 序列化时该字段会被剔除。前端 baseAmount 计算用 `fee_rate <= 0` 判断走分支,但 `undefined <= 0` 为 false,因此进入除法分支得到 NaN。 将 fee_rate 通过 Number(...) || 0 归一化,使缺失字段等价于 0。 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent dbc8ae6 commit 6884b03

1 file changed

Lines changed: 7 additions & 3 deletions

File tree

frontend/src/views/user/PaymentResultView.vue

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -137,13 +137,17 @@ const refreshAttempts = ref(0)
137137
138138
/** 充值金额 = pay_amount / (1 + fee_rate/100),fee_rate=0 时等于 pay_amount */
139139
const baseAmount = computed(() => {
140-
if (!order.value || order.value.fee_rate <= 0) return order.value?.pay_amount ?? 0
141-
return Math.round((order.value.pay_amount / (1 + order.value.fee_rate / 100)) * 100) / 100
140+
if (!order.value) return 0
141+
const feeRate = Number(order.value.fee_rate) || 0
142+
if (feeRate <= 0) return order.value.pay_amount ?? 0
143+
return Math.round((order.value.pay_amount / (1 + feeRate / 100)) * 100) / 100
142144
})
143145
144146
/** 手续费 = pay_amount - baseAmount */
145147
const feeAmount = computed(() => {
146-
if (!order.value || order.value.fee_rate <= 0) return 0
148+
if (!order.value) return 0
149+
const feeRate = Number(order.value.fee_rate) || 0
150+
if (feeRate <= 0) return 0
147151
return Math.round((order.value.pay_amount - baseAmount.value) * 100) / 100
148152
})
149153

0 commit comments

Comments
 (0)