From 7b92a7308d9d702a67130602f1252f9689cd4519 Mon Sep 17 00:00:00 2001 From: txai-dev Date: Mon, 14 Sep 2026 12:59:42 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=80=80=E6=AC=BE=E5=AE=8C=E5=96=84?= =?UTF-8?q?=E2=80=94=E2=80=94=E4=BD=99=E9=A2=9D=E9=A2=84=E6=A3=80+?= =?UTF-8?q?=E4=BA=8C=E6=AC=A1=E7=A1=AE=E8=AE=A4=E5=BC=BA=E5=88=B6=E9=80=80?= =?UTF-8?q?=E6=AC=BE+=E9=A1=BA=E5=BA=8F=E6=B3=A8=E9=87=8A=EF=BC=88?= =?UTF-8?q?=E5=85=88=E5=BE=AE=E4=BF=A1=E9=80=80=E9=92=B1=E5=86=8D=E6=89=A3?= =?UTF-8?q?=E6=98=9F=E5=B0=98=EF=BC=89+=E5=8D=A1=E4=BD=8F=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E9=87=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/src/views/VpayOrders.vue | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/admin/src/views/VpayOrders.vue b/admin/src/views/VpayOrders.vue index 14a0a37..188767b 100644 --- a/admin/src/views/VpayOrders.vue +++ b/admin/src/views/VpayOrders.vue @@ -153,8 +153,16 @@ function refund(row) { refundTarget.value = row; refundDlg.value = true } async function doRefund() { try { await ElMessageBox.confirm('退款后无法撤销,确认执行?', '最终确认', { type: 'warning' }) - await apiPost(`/api/admin/vpay/orders/${refundTarget.value._id}/refund`) - ElMessage.success('退款成功') + let r + try { + r = await apiPost(`/api/admin/vpay/orders/${refundTarget.value._id}/refund`) + } catch (e1) { + if (e1.message && e1.message.includes('余额不足')) { + await ElMessageBox.confirm(e1.message + '\n强制退款后余额将变为负数,用户下次充值时自动抵扣。', '余额不足', { type: 'warning', confirmText: '强制退款' }) + r = await apiPost(`/api/admin/vpay/orders/${refundTarget.value._id}/refund`, { force: true }) + } else { throw e1 } + } + ElMessage.success('退款成功(微信侧已退钱)') refundDlg.value = false load(); loadStats() } catch (e) { if (e !== 'cancel') ElMessage.error(e.message || '退款失败') }