diff --git a/pages/login/login.vue b/pages/login/login.vue
index ac07c9e..0af0509 100644
--- a/pages/login/login.vue
+++ b/pages/login/login.vue
@@ -492,12 +492,13 @@
.btn-login {
width: 100%;
height: 108rpx;
- background: #FFFFFF;
- border: none;
+ background: rgba(255, 255, 255, 0.25);
+ backdrop-filter: blur(10px);
+ border: 2rpx solid rgba(255, 255, 255, 0.4);
border-radius: 20rpx;
font-size: 36rpx;
font-weight: 600;
- color: $uni-color-primary;
+ color: #FFFFFF;
display: flex;
align-items: center;
justify-content: center;
@@ -506,8 +507,9 @@
}
.btn-login.disabled {
- background: rgba(255, 255, 255, 0.4);
+ background: rgba(255, 255, 255, 0.3);
color: rgba(255, 255, 255, 0.7);
+ border: 2rpx solid rgba(255, 255, 255, 0.2);
box-shadow: none;
}
diff --git a/pages/my-wallet/my-wallet.vue b/pages/my-wallet/my-wallet.vue
index d21db8f..ec32f11 100644
--- a/pages/my-wallet/my-wallet.vue
+++ b/pages/my-wallet/my-wallet.vue
@@ -69,6 +69,9 @@
{{ item.created_at }}
+
+
+
@@ -534,6 +537,119 @@
rechargeLoading.value = false;
};
+ const handleRechargePayment = async (rechargeOrder) => {
+ uni.showLoading({
+ title: '处理中...',
+ mask: true
+ });
+
+ try {
+ // 获取充值订单详情(包含支付配置)
+ const rechargeData = await walletApi.getRechargeOrderDetail(
+ userStore.state.identifier,
+ rechargeOrder.recharge_order_id || rechargeOrder.recharge_id
+ );
+
+ uni.hideLoading();
+
+ // 验证支付配置
+ if (!rechargeData.pay_config || !rechargeData.pay_config.package) {
+ uni.showToast({
+ title: '支付参数获取失败',
+ icon: 'none'
+ });
+ return;
+ }
+
+ // 调起微信支付
+ // #ifdef H5
+ if (typeof WeixinJSBridge === 'undefined') {
+ uni.showToast({
+ title: '请在微信中打开',
+ icon: 'none'
+ });
+ return;
+ }
+
+ WeixinJSBridge.invoke('getBrandWCPayRequest', {
+ appId: rechargeData.pay_config.app_id,
+ timeStamp: rechargeData.pay_config.timestamp,
+ nonceStr: rechargeData.pay_config.nonce_str,
+ package: rechargeData.pay_config.package,
+ signType: rechargeData.pay_config.sign_type,
+ paySign: rechargeData.pay_config.pay_sign
+ }, function(res) {
+ if (res.err_msg === 'get_brand_wcpay_request:ok') {
+ uni.showToast({
+ title: '充值成功',
+ icon: 'success'
+ });
+ setTimeout(() => {
+ loadWalletDetail();
+ rechargePage.value = 1;
+ rechargeNoMore.value = false;
+ loadRechargeList();
+ }, 1500);
+ } else if (res.err_msg === 'get_brand_wcpay_request:cancel') {
+ uni.showToast({
+ title: '已取消支付',
+ icon: 'none'
+ });
+ } else {
+ uni.showToast({
+ title: '支付失败',
+ icon: 'none'
+ });
+ }
+ });
+ // #endif
+
+ // #ifndef H5
+ uni.requestPayment({
+ timeStamp: rechargeData.pay_config.timestamp,
+ nonceStr: rechargeData.pay_config.nonce_str,
+ package: rechargeData.pay_config.package,
+ signType: rechargeData.pay_config.sign_type,
+ paySign: rechargeData.pay_config.pay_sign,
+ success: (res) => {
+ uni.showToast({
+ title: '充值成功',
+ icon: 'success'
+ });
+ setTimeout(() => {
+ loadWalletDetail();
+ rechargePage.value = 1;
+ rechargeNoMore.value = false;
+ loadRechargeList();
+ }, 1500);
+ },
+ fail: (err) => {
+ if (err.errMsg && (err.errMsg.includes('cancel') || err.errMsg.includes('用户取消'))) {
+ uni.showToast({
+ title: '已取消支付',
+ icon: 'none'
+ });
+ } else {
+ uni.showToast({
+ title: '支付失败',
+ icon: 'none'
+ });
+ }
+ }
+ });
+ // #endif
+
+ } catch (e) {
+ uni.hideLoading();
+ console.error('获取支付配置失败', e);
+ const errorMsg = e.msg || e.message || '支付失败,请稍后重试';
+ uni.showToast({
+ title: errorMsg,
+ icon: 'none'
+ });
+ }
+ };
+
const loadTransactionList = async (append = false) => {
if (transactionLoading.value || transactionNoMore.value) return;
transactionLoading.value = true;
@@ -787,6 +903,28 @@
}
}
}
+
+ .record-actions {
+ margin-top: 20rpx;
+ padding-top: 20rpx;
+ border-top: 1rpx solid var(--border-light);
+ display: flex;
+ justify-content: flex-end;
+
+ .btn-pay {
+ background: var(--primary);
+ color: #fff;
+ border: none;
+ border-radius: 8rpx;
+ padding: 12rpx 32rpx;
+ font-size: 26rpx;
+ font-weight: 500;
+
+ &::after {
+ border: none;
+ }
+ }
+ }
}
.empty-state {
diff --git a/pages/package-order/package-order.vue b/pages/package-order/package-order.vue
index cf1072c..30dfddd 100644
--- a/pages/package-order/package-order.vue
+++ b/pages/package-order/package-order.vue
@@ -10,7 +10,7 @@