From 6ef1b14f735acdc3ff77a50da1bb09a5bb983dcc Mon Sep 17 00:00:00 2001 From: tj <1378534974@qq.com> Date: 星期三, 28 五月 2025 17:37:06 +0800 Subject: [PATCH] location,userinfo --- composables/useNavigator.ts | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 52 insertions(+), 0 deletions(-) diff --git a/composables/useNavigator.ts b/composables/useNavigator.ts new file mode 100644 index 0000000..d2e5ad8 --- /dev/null +++ b/composables/useNavigator.ts @@ -0,0 +1,52 @@ +import { useUserStore } from '@/store/user' + +export const useNavigator = () => { + const userStore = useUserStore() + // 黑名单列表:未登录时禁止访问这些路径 + const loginRequiredRoutes = [ + '/sub-pages/mine/settings', + '/pages/settings/index', + '/sub-pages/mine/index', + ] + + const navigateTo = (url: string) => { + const isLogin = userStore.hasLogin + const noQueryUrl = url.split('?')[0] + + if (!isLogin && loginRequiredRoutes.includes(noQueryUrl)) { + uni.navigateTo({ + url: '/pages/login/login' + }) + return + } + + uni.navigateTo({ url }) + } + + const reLaunchTo = (url: string) => { + + const isLogin = userStore.hasLogin + const noQueryUrl = url.split('?')[0] + + if (!isLogin && loginRequiredRoutes.includes(noQueryUrl)) { + uni.navigateTo({ + url: '/pages/login/login' + }) + return + } + + uni.reLaunch({ url }) + } + + const toProtocol = (title: string) => { + uni.navigateTo({ + url: `/sub-pages/protocol/protocol?title=${encodeURIComponent(title)}` + }) + } + + return { + navigateTo, + reLaunchTo, + toProtocol + } +} -- Gitblit v1.9.3