zhengyiming
2025-03-13 9c680ea2c5938d26065232d3a658a9a615e1f827
apps/taro/src/hooks/router.ts
@@ -1,17 +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;
}
@@ -47,13 +50,31 @@
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(() => {
    const isTabbarPage = Object.values(TabBarPageRouter).some((x) =>
    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,