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