From 8434c4b22d915ed796f7662cb10817b8e33c47c6 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期一, 17 三月 2025 16:26:37 +0800
Subject: [PATCH] fix: 修改支付方式选择
---
apps/taro/src/subpackages/recharge/phoneBillRecharge/InnerPage.vue | 2 +
packages/components/src/views/PhoneBillRecharge/types.ts | 2 +
packages/components/src/views/PhoneBillRecharge/PhoneBillRechargeStep2.vue | 6 ++
apps/taro/src/subpackages/recharge/gasBillRecharge/InnerPage.vue | 2 +
packages/components/src/views/GasBillRecharge/GasBillRechargeStep3.vue | 6 ++
packages/components/src/views/SelectPayTypeView/SelectPayTypeView.vue | 12 ++++--
apps/taro/src/constants/tabBar.ts | 1
packages/components/src/components/SelectPayTypeFormItem/SelectPayTypeFormItem.vue | 39 ++++++++++++++-----
packages/components/src/hooks/selectPayType.ts | 20 +++++++--
packages/components/src/views/electricBillRecharge/ElectricBillRechargeStep2.vue | 14 +++++++
apps/taro/src/subpackages/recharge/electricBillRecharge/InnerPage.vue | 2 +
11 files changed, 84 insertions(+), 22 deletions(-)
diff --git a/apps/taro/src/constants/tabBar.ts b/apps/taro/src/constants/tabBar.ts
index aea4e60..1f16347 100644
--- a/apps/taro/src/constants/tabBar.ts
+++ b/apps/taro/src/constants/tabBar.ts
@@ -1,6 +1,5 @@
import Taro from '@tarojs/taro';
let res = Taro.getLaunchOptionsSync();
-console.log('getLaunchOptionsSync: ', res);
export const TabBarPageRouterForCheck = {
Home: `/pages/home/index`,
diff --git a/apps/taro/src/subpackages/recharge/electricBillRecharge/InnerPage.vue b/apps/taro/src/subpackages/recharge/electricBillRecharge/InnerPage.vue
index a2968dc..558b627 100644
--- a/apps/taro/src/subpackages/recharge/electricBillRecharge/InnerPage.vue
+++ b/apps/taro/src/subpackages/recharge/electricBillRecharge/InnerPage.vue
@@ -10,6 +10,8 @@
:isH5="isWeb"
:appId="WXPayAppId"
:isFocus="isFocus"
+ :showAliPay="!isInWeChat"
+ :showWeixinPay="isInWeChat"
/>
</ContentScrollView>
</template>
diff --git a/apps/taro/src/subpackages/recharge/gasBillRecharge/InnerPage.vue b/apps/taro/src/subpackages/recharge/gasBillRecharge/InnerPage.vue
index f1561ed..cd0963e 100644
--- a/apps/taro/src/subpackages/recharge/gasBillRecharge/InnerPage.vue
+++ b/apps/taro/src/subpackages/recharge/gasBillRecharge/InnerPage.vue
@@ -10,6 +10,8 @@
:isH5="isWeb"
:appId="WXPayAppId"
:isFocus="isFocus"
+ :showAliPay="!isInWeChat"
+ :showWeixinPay="isInWeChat"
/>
</ContentScrollView>
</template>
diff --git a/apps/taro/src/subpackages/recharge/phoneBillRecharge/InnerPage.vue b/apps/taro/src/subpackages/recharge/phoneBillRecharge/InnerPage.vue
index a1b936b..2cb195c 100644
--- a/apps/taro/src/subpackages/recharge/phoneBillRecharge/InnerPage.vue
+++ b/apps/taro/src/subpackages/recharge/phoneBillRecharge/InnerPage.vue
@@ -10,6 +10,8 @@
:isH5="isWeb"
:appId="WXPayAppId"
:isFocus="isFocus"
+ :showAliPay="!isInWeChat"
+ :showWeixinPay="isInWeChat"
/>
</ContentScrollView>
</template>
diff --git a/packages/components/src/components/SelectPayTypeFormItem/SelectPayTypeFormItem.vue b/packages/components/src/components/SelectPayTypeFormItem/SelectPayTypeFormItem.vue
index 7a01ca9..855f7e5 100644
--- a/packages/components/src/components/SelectPayTypeFormItem/SelectPayTypeFormItem.vue
+++ b/packages/components/src/components/SelectPayTypeFormItem/SelectPayTypeFormItem.vue
@@ -2,15 +2,29 @@
<NutFormItem label="閫夋嫨鏀粯鏂瑰紡" class="bole-form-item" prop="lifePayType" required>
<NutRadioGroup v-model="lifePayType" direction="horizontal">
<BlRadio
- :label="Number(lifePayTypeEnum)"
- v-for="(lifePayTypeEnumText, lifePayTypeEnum) in LifeRechargeConstants.LifePayTypeEnumText"
- :key="lifePayTypeEnum"
+ :label="LifeRechargeConstants.LifePayTypeEnum.AliPay"
shape="button"
class="select-pay-type-view-form-item-radio"
+ v-if="showAliPay"
>
<div class="select-pay-type-view-form-item">
- <img class="select-pay-type-view-form-item-icon" :src="IconMap[lifePayTypeEnum]" />
- {{ lifePayTypeEnumText }}
+ <img class="select-pay-type-view-form-item-icon" :src="IconAliPay" />
+ {{
+ LifeRechargeConstants.LifePayTypeEnumText[LifeRechargeConstants.LifePayTypeEnum.AliPay]
+ }}
+ </div>
+ </BlRadio>
+ <BlRadio
+ :label="LifeRechargeConstants.LifePayTypeEnum.WxPay"
+ shape="button"
+ class="select-pay-type-view-form-item-radio"
+ v-if="showWeixinPay"
+ >
+ <div class="select-pay-type-view-form-item">
+ <img class="select-pay-type-view-form-item-icon" :src="IconWeixin" />
+ {{
+ LifeRechargeConstants.LifePayTypeEnumText[LifeRechargeConstants.LifePayTypeEnum.WxPay]
+ }}
</div>
</BlRadio>
</NutRadioGroup>
@@ -28,10 +42,15 @@
name: 'SelectPayTypeFormItem',
});
-const lifePayType = defineModel<LifeRechargeConstants.LifePayTypeEnum>();
-
-const IconMap = {
- [LifeRechargeConstants.LifePayTypeEnum.WxPay]: IconWeixin,
- [LifeRechargeConstants.LifePayTypeEnum.AliPay]: IconAliPay,
+type Props = {
+ showAliPay?: boolean;
+ showWeixinPay?: boolean;
};
+
+const props = withDefaults(defineProps<Props>(), {
+ showAliPay: true,
+ showWeixinPay: true,
+});
+
+const lifePayType = defineModel<LifeRechargeConstants.LifePayTypeEnum>();
</script>
diff --git a/packages/components/src/hooks/selectPayType.ts b/packages/components/src/hooks/selectPayType.ts
index c2a4931..f7b7c04 100644
--- a/packages/components/src/hooks/selectPayType.ts
+++ b/packages/components/src/hooks/selectPayType.ts
@@ -34,7 +34,9 @@
if (res) {
location.href = res;
}
- } catch (error) {}
+ } catch (error) {
+ throw error;
+ }
}
async function setLifePayOrderPayType(
@@ -47,7 +49,9 @@
lifePayType: lifePayType,
};
return await blLifeRecharge.services.setLifePayOrderPayType(params);
- } catch (error) {}
+ } catch (error) {
+ throw error;
+ }
}
async function invokeWeixinPay(orderNo: string) {
@@ -87,7 +91,9 @@
fail: function (res) {},
});
}
- } catch (error) {}
+ } catch (error) {
+ throw error;
+ }
}
async function getPayOrderForJsAPI(orderNo: string) {
@@ -101,7 +107,9 @@
};
let res = await blLifeRecharge.services.getPayOrderForJsAPI(params);
return res;
- } catch (error) {}
+ } catch (error) {
+ throw error;
+ }
}
async function handleWeixinPayByJsApi(orderNo: string) {
@@ -137,7 +145,9 @@
);
}
}
- } catch (error) {}
+ } catch (error) {
+ throw error;
+ }
}
return {
diff --git a/packages/components/src/views/GasBillRecharge/GasBillRechargeStep3.vue b/packages/components/src/views/GasBillRecharge/GasBillRechargeStep3.vue
index 3d364d9..8fc4f5d 100644
--- a/packages/components/src/views/GasBillRecharge/GasBillRechargeStep3.vue
+++ b/packages/components/src/views/GasBillRecharge/GasBillRechargeStep3.vue
@@ -56,7 +56,11 @@
</NutRadio>
</NutRadioGroup>
</NutFormItem>
- <SelectPayTypeFormItem v-model="form.lifePayType"></SelectPayTypeFormItem>
+ <SelectPayTypeFormItem
+ v-model="form.lifePayType"
+ :showWeixinPay="showWeixinPay"
+ :showAliPay="showAliPay"
+ ></SelectPayTypeFormItem>
<div class="common-content">
<nut-button class="recharge-button" type="primary" @click="handleSubmit">
<div class="recharge-button-inner">
diff --git a/packages/components/src/views/PhoneBillRecharge/PhoneBillRechargeStep2.vue b/packages/components/src/views/PhoneBillRecharge/PhoneBillRechargeStep2.vue
index ac4db7a..c9b26ed 100644
--- a/packages/components/src/views/PhoneBillRecharge/PhoneBillRechargeStep2.vue
+++ b/packages/components/src/views/PhoneBillRecharge/PhoneBillRechargeStep2.vue
@@ -60,7 +60,11 @@
</NutRadio>
</NutRadioGroup>
</NutFormItem>
- <SelectPayTypeFormItem v-model="form.lifePayType"></SelectPayTypeFormItem>
+ <SelectPayTypeFormItem
+ v-model="form.lifePayType"
+ :showWeixinPay="showWeixinPay"
+ :showAliPay="showAliPay"
+ ></SelectPayTypeFormItem>
<div class="common-content">
<nut-button class="recharge-button" type="primary" @click="handleSubmit">
<div class="recharge-button-inner">
diff --git a/packages/components/src/views/PhoneBillRecharge/types.ts b/packages/components/src/views/PhoneBillRecharge/types.ts
index 47c37fc..365e57f 100644
--- a/packages/components/src/views/PhoneBillRecharge/types.ts
+++ b/packages/components/src/views/PhoneBillRecharge/types.ts
@@ -6,4 +6,6 @@
appId?: string;
isFocus?: boolean;
isInAlipay?: boolean;
+ showAliPay?: boolean;
+ showWeixinPay?: boolean;
};
diff --git a/packages/components/src/views/SelectPayTypeView/SelectPayTypeView.vue b/packages/components/src/views/SelectPayTypeView/SelectPayTypeView.vue
index 4e927c5..68e0711 100644
--- a/packages/components/src/views/SelectPayTypeView/SelectPayTypeView.vue
+++ b/packages/components/src/views/SelectPayTypeView/SelectPayTypeView.vue
@@ -57,12 +57,16 @@
appId: toRef(props, 'appId'),
});
-function handleAliPay() {
- invokeAliPay(props.orderNo);
+async function handleAliPay() {
+ try {
+ await invokeAliPay(props.orderNo);
+ } catch (error) {}
}
-function handleWeixinPay() {
- invokeWeixinPay(props.orderNo);
+async function handleWeixinPay() {
+ try {
+ await invokeWeixinPay(props.orderNo);
+ } catch (error) {}
}
useGetPayStatusByOrderNo({
diff --git a/packages/components/src/views/electricBillRecharge/ElectricBillRechargeStep2.vue b/packages/components/src/views/electricBillRecharge/ElectricBillRechargeStep2.vue
index e53f3fd..5984a9f 100644
--- a/packages/components/src/views/electricBillRecharge/ElectricBillRechargeStep2.vue
+++ b/packages/components/src/views/electricBillRecharge/ElectricBillRechargeStep2.vue
@@ -62,6 +62,11 @@
</NutRadio>
</NutRadioGroup>
</NutFormItem>
+ <SelectPayTypeFormItem
+ v-model="form.lifePayType"
+ :showWeixinPay="showWeixinPay"
+ :showAliPay="showAliPay"
+ ></SelectPayTypeFormItem>
<div class="common-content">
<nut-button class="recharge-button" type="primary" @click="handleSubmit">
<div class="recharge-button-inner">
@@ -266,4 +271,13 @@
currentOrderNo.value = res.orderNo;
} catch (error) {}
}
+
+useGetPayStatusByOrderNo({
+ orderNo: currentOrderNo,
+ enabled: computed(() => props.isFocus && !!currentOrderNo.value),
+ onPaySuccess: (orderNo) => {
+ emit('paySuccess', orderNo);
+ currentOrderNo.value = '';
+ },
+});
</script>
--
Gitblit v1.9.1