fix: guard avatar entry and hide chat navigation

This commit is contained in:
stefanfeng
2026-07-24 17:50:19 +08:00
parent e3bda469bb
commit cc939b6298
2 changed files with 14 additions and 5 deletions

View File

@@ -39,13 +39,19 @@ const router = useRouter()
const route = useRoute()
const currentRoute = ref<string>(route.path)
const showNav = ref<boolean>(true)
const showNav = ref<boolean>(shouldShowNav(route.path))
function shouldShowNav(path: string) {
return path !== '/'
&& path !== '/login/sms'
&& !path.startsWith('/avatar/edit')
&& !path.startsWith('/avatar/chat')
}
// 监听路由变化
watch(() => route.path, (newPath) => {
currentRoute.value = newPath
// 首页(创建引导)与编辑页隐藏底部导航
showNav.value = newPath !== '/' && !newPath.startsWith('/avatar/edit')
showNav.value = shouldShowNav(newPath)
})
// 导航
@@ -55,7 +61,7 @@ const navigateTo = (path: string) => {
onMounted(() => {
currentRoute.value = route.path
showNav.value = route.path !== '/' && !route.path.startsWith('/avatar/edit')
showNav.value = shouldShowNav(route.path)
})
</script>

View File

@@ -1,5 +1,6 @@
import { createRouter, createWebHashHistory } from 'vue-router'
import type { RouteRecordRaw } from 'vue-router'
import { getAuthToken } from '@/api'
const routes: RouteRecordRaw[] = [
{
@@ -96,7 +97,9 @@ const router = createRouter({
router.beforeEach((to, from, next) => {
document.title = to.meta.title as string || '会会数字分身'
if (to.meta.requiresAuth && !localStorage.getItem('hh_app_token')) {
const hasLocalSession = Boolean(localStorage.getItem('hh_app_token'))
const hasInjectedSession = Boolean(getAuthToken())
if (to.meta.requiresAuth && !hasLocalSession && !hasInjectedSession) {
next({ path: '/login/sms', query: { redirect: to.fullPath } })
return
}