fix(web): 修复路由守卫 next 弃用警告
将全局导航守卫改为返回值式跳转,避免 Vue Router 提示 next 回调已弃用。
This commit is contained in:
parent
22fbcb586c
commit
c44085d718
@ -188,7 +188,7 @@ const router = createRouter({
|
|||||||
})
|
})
|
||||||
|
|
||||||
// 全局前置守卫
|
// 全局前置守卫
|
||||||
router.beforeEach(async (to, from, next) => {
|
router.beforeEach(async (to) => {
|
||||||
// 检查路由是否需要认证
|
// 检查路由是否需要认证
|
||||||
const requiresAuth = to.matched.some((record) => record.meta.requiresAuth === true)
|
const requiresAuth = to.matched.some((record) => record.meta.requiresAuth === true)
|
||||||
const requiresAdmin = to.matched.some((record) => record.meta.requiresAdmin)
|
const requiresAdmin = to.matched.some((record) => record.meta.requiresAdmin)
|
||||||
@ -215,8 +215,7 @@ router.beforeEach(async (to, from, next) => {
|
|||||||
if (requiresAuth && !isLoggedIn) {
|
if (requiresAuth && !isLoggedIn) {
|
||||||
// 保存尝试访问的路径,登录后跳转
|
// 保存尝试访问的路径,登录后跳转
|
||||||
sessionStorage.setItem('redirect', to.fullPath)
|
sessionStorage.setItem('redirect', to.fullPath)
|
||||||
next('/login')
|
return '/login'
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 如果路由需要管理员权限但用户不是管理员
|
// 如果路由需要管理员权限但用户不是管理员
|
||||||
@ -228,12 +227,11 @@ router.beforeEach(async (to, from, next) => {
|
|||||||
if (!agentStore.isInitialized) {
|
if (!agentStore.isInitialized) {
|
||||||
await agentStore.initialize()
|
await agentStore.initialize()
|
||||||
}
|
}
|
||||||
next('/agent')
|
return '/agent'
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('获取智能体信息失败:', error)
|
console.error('获取智能体信息失败:', error)
|
||||||
next('/agent')
|
return '/agent'
|
||||||
}
|
}
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 如果路由需要超级管理员权限但用户不是超级管理员
|
// 如果路由需要超级管理员权限但用户不是超级管理员
|
||||||
@ -243,22 +241,20 @@ router.beforeEach(async (to, from, next) => {
|
|||||||
if (!agentStore.isInitialized) {
|
if (!agentStore.isInitialized) {
|
||||||
await agentStore.initialize()
|
await agentStore.initialize()
|
||||||
}
|
}
|
||||||
next('/agent')
|
return '/agent'
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('获取智能体信息失败:', error)
|
console.error('获取智能体信息失败:', error)
|
||||||
next('/agent')
|
return '/agent'
|
||||||
}
|
}
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 如果用户已登录但访问登录页
|
// 如果用户已登录但访问登录页
|
||||||
if (to.path === '/login' && isLoggedIn) {
|
if (to.path === '/login' && isLoggedIn) {
|
||||||
next('/')
|
return '/'
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 其他情况正常导航
|
// 其他情况正常导航
|
||||||
next()
|
return true
|
||||||
})
|
})
|
||||||
|
|
||||||
export default router
|
export default router
|
||||||
|
|||||||
@ -206,7 +206,8 @@ import {
|
|||||||
SyncOutlined,
|
SyncOutlined,
|
||||||
SearchOutlined,
|
SearchOutlined,
|
||||||
ReloadOutlined,
|
ReloadOutlined,
|
||||||
LoadingOutlined
|
LoadingOutlined,
|
||||||
|
DatabaseOutlined
|
||||||
} from '@ant-design/icons-vue'
|
} from '@ant-design/icons-vue'
|
||||||
import PageHeader from '@/components/shared/PageHeader.vue'
|
import PageHeader from '@/components/shared/PageHeader.vue'
|
||||||
import { neo4jApi, unifiedApi } from '@/apis/graph_api'
|
import { neo4jApi, unifiedApi } from '@/apis/graph_api'
|
||||||
|
|||||||
@ -591,8 +591,8 @@ onMounted(loadProviders)
|
|||||||
<Plus :size="14" />
|
<Plus :size="14" />
|
||||||
新增供应商
|
新增供应商
|
||||||
</a-button>
|
</a-button>
|
||||||
<a-button class="lucide-icon-btn" @click="refreshProviders" :loading="refreshing">
|
<a-button class="lucide-icon-btn" @click="loadProviders" :loading="loading">
|
||||||
<RefreshCw :size="14" :class="{ spinning: refreshing }" />
|
<RefreshCw :size="14" :class="{ spinning: loading }" />
|
||||||
</a-button>
|
</a-button>
|
||||||
</template>
|
</template>
|
||||||
</PageShoulder>
|
</PageShoulder>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user