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