From 9c680ea2c5938d26065232d3a658a9a615e1f827 Mon Sep 17 00:00:00 2001 From: zhengyiming <540361168@qq.com> Date: 星期四, 13 三月 2025 16:39:14 +0800 Subject: [PATCH] fix: 修改导航 在路由上强制增加channelId --- apps/taro/src/hooks/router.ts | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 51 insertions(+), 3 deletions(-) diff --git a/apps/taro/src/hooks/router.ts b/apps/taro/src/hooks/router.ts index 6d7bf5f..d8f82a8 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,46 @@ 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.useDidShow(() => { + console.log('latestRoute.value: ', latestRoute.value); + 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()) + ); + console.log('currentIsTabbarPage: ', currentIsTabbarPage); + 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