diff --git a/src/layouts/fg-tabbar/tabbar.ts b/src/layouts/fg-tabbar/tabbar.ts index 03be03f..61c39d5 100644 --- a/src/layouts/fg-tabbar/tabbar.ts +++ b/src/layouts/fg-tabbar/tabbar.ts @@ -4,8 +4,16 @@ */ export 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) }, + + restorePrevIdx() { + if (this.prevIdx === this.curIdx) + return + this.setCurIdx(this.prevIdx) + this.prevIdx = uni.getStorageSync('app-tabbar-index') || 0 + }, }) diff --git a/src/router/interceptor.ts b/src/router/interceptor.ts index 70eff89..532b8a2 100644 --- a/src/router/interceptor.ts +++ b/src/router/interceptor.ts @@ -1,3 +1,4 @@ +import { tabbarStore } from '@/layouts/fg-tabbar/tabbar' /** * by 菲鸽 on 2024-03-06 * 路由拦截,通常也是登录拦截 @@ -49,6 +50,7 @@ const navigateToInterceptor = { if (hasLogin) { return true } + tabbarStore.restorePrevIdx() const redirectRoute = `${loginRoute}?redirect=${encodeURIComponent(url)}` uni.navigateTo({ url: redirectRoute }) return false