From c02e7a8fe42de2a5796e95e573f9e6b6735e4d0d Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期二, 25 三月 2025 17:06:43 +0800
Subject: [PATCH] fix: 四期需求

---
 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