移除系统配置获取金额

This commit is contained in:
2026-05-12 15:35:50 +08:00
parent 2f0479ea05
commit ec05584bb7
7 changed files with 99 additions and 234 deletions
+69 -47
View File
@@ -45,16 +45,13 @@
import {
getOrderList,
queryById,
getOrderByOrderNo,
getOrderByOrderNoScorePayStatus,
cancelOrder,
createWxPayment
cancelOrder
} from '../../config/api/order.js';
import {
updateUserBalance
} from '../../config/api/user.js';
import {
URL
} from '../../config/url.js';
getDeviceInfo
} from '../../config/api/device.js';
import { useI18n } from '@/utils/i18n.js'
const { t } = useI18n()
@@ -283,54 +280,79 @@
navigateToOrderDetail(order);
};
// 立即支付
/**
* 待支付订单:与设备租借押金流程一致,进入支付详情页(微信/支付宝/H5-Antom/DANA 等在支付页内选择并完成)
*/
const handlePayment = async (order) => {
const orderNo = order.orderNo
const orderId = order.orderId || order.orderNo
if (!orderId && !orderNo) {
uni.showToast({
title: t('order.orderInfoMissing'),
icon: 'none'
})
return
}
try {
uni.showLoading({
title: t('common.processing')
});
// 调用后端创建微信支付订单接口
const res = await createWxPayment(order.orderNo);
title: t('common.loading')
})
if (res && res.code === 200) {
const payParams = res.data;
// 调用微信支付
await uni.requestPayment({
...payParams,
success: async () => {
uni.showToast({
title: t('payment.paymentSuccess'),
icon: 'success'
});
// 更新用户余额
try {
await updateUserBalance(order.orderId || order.orderNo);
} catch (error) {
console.warn('更新用户余额失败:', error);
}
// 刷新订单列表
await loadOrderList(orderStatusTabs[currentTab.value].status);
},
fail: (err) => {
console.error('支付失败:', err);
throw new Error(t('payment.paymentFailedRetry'));
}
});
} else {
throw new Error(res?.msg || '创建支付订单失败');
let od = null
if (orderNo) {
const res = await getOrderByOrderNo(orderNo)
if (res && res.code === 200 && res.data) {
od = res.data
}
}
uni.hideLoading();
if (!od && orderId) {
const res = await queryById(orderId)
if (res && res.code === 200 && res.data) {
od = res.data
}
}
const idForPay = String(od?.orderId ?? orderId ?? orderNo ?? '')
const qsParts = [`orderId=${encodeURIComponent(idForPay)}`]
if (od) {
const deposit = parseFloat(od.depositAmount)
const packagePrice = parseFloat(od.unitPrice)
if (Number.isFinite(packagePrice)) {
qsParts.push(`packagePrice=${packagePrice}`)
}
if (Number.isFinite(deposit)) {
const totalAmount = deposit.toFixed(2)
qsParts.push(`totalAmount=${encodeURIComponent(totalAmount)}`)
qsParts.push(`depositAmount=${encodeURIComponent(String(deposit))}`)
}
const deviceNo = od.deviceNo || order.deviceId
if (deviceNo) {
try {
const devRes = await getDeviceInfo(deviceNo)
const feeCfg = devRes?.data?.device?.feeConfig
if (feeCfg) {
qsParts.push(`feeConfig=${encodeURIComponent(feeCfg)}`)
}
} catch (e) {
console.warn('获取设备 feeConfig 失败,支付页将仅依赖订单信息:', e)
}
}
}
uni.hideLoading()
uni.navigateTo({
url: `/subPackages/order/payment?${qsParts.join('&')}`
})
} catch (error) {
uni.hideLoading();
uni.hideLoading()
console.error('跳转支付页失败:', error)
uni.showToast({
title: error.message || t('payment.paymentFailed'),
title: error?.message || t('payment.paymentFailed'),
icon: 'none'
});
})
}
};
+15 -40
View File
@@ -117,12 +117,6 @@
import {
useI18n
} from '@/utils/i18n.js'
import {
fetchAndCacheDanaPaymentConfig,
DANA_TOTAL_STORAGE_KEY,
DANA_SINGLE_STORAGE_KEY,
parseDanaStorageNumber
} from '@/utils/danaPaymentConfig.js'
const {
t
@@ -135,23 +129,6 @@
const passedTotalAmount = ref(null)
const passedDepositAmount = ref(null)
const currencyCode = ref('USD')
const IDR_DEPOSIT_DISPLAY = ref(99000)
const IDR_SINGLE_DISPLAY = ref(6000)
const loadDanaTotalCache = () => {
try {
const cachedTotal = parseDanaStorageNumber(uni.getStorageSync(DANA_TOTAL_STORAGE_KEY))
const cachedSingle = parseDanaStorageNumber(uni.getStorageSync(DANA_SINGLE_STORAGE_KEY))
if (cachedTotal !== null && cachedTotal > 0) {
IDR_DEPOSIT_DISPLAY.value = cachedTotal
}
if (cachedSingle !== null && cachedSingle > 0) {
IDR_SINGLE_DISPLAY.value = cachedSingle
}
} catch (e) {
console.warn('读取 DANA 预支付缓存失败,使用默认值:', e)
}
}
// 支付方式相关(微信/支付宝/H5-Antom 多平台)
const paymentMethods = ref([])
@@ -178,7 +155,12 @@
const totalAmount = computed(() => {
if (currencyCode.value === 'IDR') {
return `${IDR_DEPOSIT_DISPLAY.value}`
const raw =
passedTotalAmount.value != null && passedTotalAmount.value !== ''
? passedTotalAmount.value
: orderInfo.value.deposit
const num = Number(String(raw ?? '').replace(/[^\d.-]/g, ''))
return Number.isFinite(num) ? String(Math.trunc(num)) : String(raw || '0')
}
if (passedTotalAmount.value !== null) {
return parseFloat(passedTotalAmount.value).toFixed(2);
@@ -281,10 +263,7 @@
currencyCode.value = (res.data?.position?.currency || currencyCode.value || 'USD').toUpperCase()
if (deviceInfo.value && deviceInfo.value.depositAmount) {
orderInfo.value.deposit = deviceInfo.value.depositAmount;
}
if (currencyCode.value === 'IDR') {
orderInfo.value.deposit = `${IDR_DEPOSIT_DISPLAY.value}`
orderInfo.value.deposit = deviceInfo.value.depositAmount
}
}
} catch (error) {
@@ -350,14 +329,14 @@
paymentMethodType: 'ALIPAY_DANA',
paymentMethodName: t('payment.ALIPAYDANA')
})
methods.push({
paymentMethodType: 'ALIPAY_HK',
paymentMethodName: t('payment.alipayHk')
})
methods.push({
paymentMethodType: 'ALIPAY_ID',
paymentMethodName: t('payment.alipayId')
})
// methods.push({
// paymentMethodType: 'ALIPAY_HK',
// paymentMethodName: t('payment.alipayHk')
// })
// methods.push({
// paymentMethodType: 'ALIPAY_ID',
// paymentMethodName: t('payment.alipayId')
// })
} catch (error) {
console.error('获取 Antom 支付方式失败:', error);
@@ -713,10 +692,6 @@
}
onLoad((options) => {
loadDanaTotalCache()
void fetchAndCacheDanaPaymentConfig()
.then(() => loadDanaTotalCache())
.catch((e) => console.warn('DANA 配置刷新失败:', e))
// 设置导航栏标题为待支付
uni.setNavigationBarTitle({
title: t('payment.waitingForPayment')