Selaa lähdekoodia

fix(tabbar): 优化`tabbar`索引设置

ljt990218 7 kuukautta sitten
vanhempi
commit
a08557d07b
1 muutettua tiedostoa jossa 8 lisäystä ja 3 poistoa
  1. 8 3
      src/tabbar/store.ts

+ 8 - 3
src/tabbar/store.ts

@@ -1,7 +1,9 @@
 import type { CustomTabBarItem, CustomTabBarItemBadge } from './config'
 import { reactive } from 'vue'
 
-import { FG_LOG_ENABLE } from '@/router/interceptor'
+import { isNeedLoginMode } from '@/router/config'
+import { FG_LOG_ENABLE, judgeIsExcludePath } from '@/router/interceptor'
+
 import { tabbarList as _tabbarList, customTabbarEnable } from './config'
 
 // TODO 1/2: 中间的鼓包tabbarItem的开关
@@ -36,8 +38,11 @@ const tabbarStore = reactive({
   curIdx: uni.getStorageSync('app-tabbar-index') || 0,
   prevIdx: uni.getStorageSync('app-tabbar-index') || 0,
   setCurIdx(idx: number) {
-    this.curIdx = idx
-    uni.setStorageSync('app-tabbar-index', idx)
+    // url 需要登录 && 不在白名单 || 不需要登录 && 不在黑名单 (关于 白名单|黑名单 逻辑: src/router/interceptor.ts)
+    if ((isNeedLoginMode && judgeIsExcludePath(tabbarList[idx].pagePath)) || (!isNeedLoginMode && !judgeIsExcludePath(tabbarList[idx].pagePath))) {
+      this.curIdx = idx
+      uni.setStorageSync('app-tabbar-index', idx)
+    }
   },
   setTabbarItemBadge(idx: number, badge: CustomTabBarItemBadge) {
     if (tabbarList[idx]) {