feat: add local history and error pages

This commit is contained in:
2026-10-17 10:35:18 +08:00
parent 644dcd20d9
commit af52ee5f58
6 changed files with 24 additions and 2 deletions
+4 -1
View File
@@ -8,6 +8,8 @@ const router=createRouter({history:createWebHistory(),routes:[
{path:'/',component:App},
{path:'/login',component:()=>import('./views/LoginView.vue'),meta:{public:true}},
{path:'/register',component:()=>import('./views/RegisterView.vue'),meta:{public:true}},
{path:'/403',component:()=>import('./views/ForbiddenView.vue'),meta:{public:true}},
{path:'/history',component:()=>import('./views/HistoryView.vue')},
{path:'/profile',component:()=>import('./views/ProfileView.vue')},
{path:'/settings',component:()=>import('./views/AccountSettingsView.vue')},
{path:'/indexes',component:()=>import('./views/IndexManagementView.vue'),meta:{role:'admin'}},
@@ -17,6 +19,7 @@ const router=createRouter({history:createWebHistory(),routes:[
{path:'/sources',component:()=>import('./views/SourceManagementView.vue'),meta:{role:'admin'}},
{path:'/retrieval-exports',component:()=>import('./views/RetrievalExportView.vue'),meta:{role:'admin'}},
{path:'/admin',component:()=>import('./views/AdminView.vue'),meta:{role:'admin'}},
{path:'/:pathMatch(.*)*',component:()=>import('./views/NotFoundView.vue'),meta:{public:true}},
]})
router.beforeEach(async to=>{if(to.meta.public)return true;try{role=(await getCurrentUser()).role}catch{return {path:'/login',query:{redirect:to.fullPath}}}if(to.meta.role&&role!==to.meta.role)return {path:'/profile',query:{forbidden:'1'}};return true})
router.beforeEach(async to=>{if(to.meta.public)return true;try{role=(await getCurrentUser()).role}catch{return {path:'/login',query:{redirect:to.fullPath}}}if(to.meta.role&&role!==to.meta.role)return {path:'/403'};return true})
export default router