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