From 0886e91fdfe3b5528f80d2b6742083aa11d16ebb Mon Sep 17 00:00:00 2001 From: zhengyiming <540361168@qq.com> Date: 星期三, 02 四月 2025 15:54:15 +0800 Subject: [PATCH] fix: 四期bug --- apps/taro/src/hooks/router.ts | 61 +++++++++++++++++++++++++++++- 1 files changed, 58 insertions(+), 3 deletions(-) diff --git a/apps/taro/src/hooks/router.ts b/apps/taro/src/hooks/router.ts index 6d7bf5f..e53ba52 100644 --- a/apps/taro/src/hooks/router.ts +++ b/apps/taro/src/hooks/router.ts @@ -1,15 +1,20 @@ import Taro from '@tarojs/taro'; -import { TabBarPageRouter } from '@/constants'; +import { TabBarPageRouterForCheck } from '@/constants'; import { useSystemStore } from '@/stores/modules/system'; +import { useAppStore } from '@/stores/modules/app'; +import { isInAlipay } from '@/utils/env'; +import { useLifeRechargeContext } from '@life-payment/core-vue'; +import { getRouterPath } from '@life-payment/utils'; +import { pathAddExtraParam } from '@/utils'; export function useSwitchTab() { const systemStore = useSystemStore(); const switchTab = (option: Taro.switchTab.Option) => { - const index = Object.values(TabBarPageRouter).findIndex((x) => option.url.includes(x)); + const index = Object.values(TabBarPageRouterForCheck).findIndex((x) => option.url.includes(x)); console.log('index: ', index); systemStore.setTabIndex(index); - Taro.switchTab(option); + RouteHelper.switchTab(option); }; return switchTab; } @@ -41,3 +46,53 @@ isFocus, }; } + +export function useTabRouteEnhance() { + const appStore = useAppStore(); + const { latestRoute } = storeToRefs(appStore); + const { blLifeRecharge } = useLifeRechargeContext(); + + const router = Taro.useRouter(); + + const channelId = router.params?.channelId ?? ''; + console.log('router: params', router, blLifeRecharge.accountModel.channlesNum); + + Taro.useTabItemTap((item) => { + Taro.reLaunch({ + url: pathAddExtraParam(item.pagePath, { channelId: blLifeRecharge.accountModel.channlesNum }), + success() { + appStore.setLatestRoute(''); + }, + }); + }); + + Taro.useDidShow(() => { + const isTabbarPage = Object.values(TabBarPageRouterForCheck).some((x) => + latestRoute.value.toLowerCase().includes(x.toLowerCase()) + ); + // const currentIsTabbarPage = Object.values(TabBarPageRouterForCheck).some((x) => + // getRouterPath(router.path).toLowerCase().includes(x.toLowerCase()) + // ); + // if (currentIsTabbarPage && blLifeRecharge.accountModel.channlesNum && !channelId) { + // Taro.reLaunch({ + // url: pathAddExtraParam(router.path, { channelId: blLifeRecharge.accountModel.channlesNum }), + // success() { + // appStore.setLatestRoute(''); + // }, + // }); + // return; + // } + if (isTabbarPage && isInAlipay) { + Taro.reLaunch({ + url: router.path, + success() { + appStore.setLatestRoute(''); + }, + }); + } + }); + + Taro.useDidHide(() => { + appStore.setLatestRoute(router.path); + }); +} -- Gitblit v1.9.1