36 lines
1.5 KiB
JavaScript
36 lines
1.5 KiB
JavaScript
import { createRouter, createWebHistory } from 'vue-router'
|
|
import Login from '../views/Login.vue'
|
|
import Orders from '../views/Orders.vue'
|
|
import Licenses from '../views/Licenses.vue'
|
|
import AppVersions from '../views/AppVersions.vue'
|
|
import Datasets from '../views/Datasets.vue'
|
|
import DatasetDetail from '../views/DatasetDetail.vue'
|
|
|
|
// 生产部署于 /admin/ 前缀(后端静态托管),history 路由由后端 SPA fallback 兜底
|
|
const router = createRouter({
|
|
history: createWebHistory('/admin/'),
|
|
routes: [
|
|
{ path: '/login', name: 'login', component: Login, meta: { title: '登录' } },
|
|
{ path: '/', redirect: '/datasets' },
|
|
{ path: '/datasets', name: 'datasets', component: Datasets, meta: { title: '数据训练' } },
|
|
{ path: '/datasets/:id', name: 'datasetDetail', component: DatasetDetail, meta: { title: '数据训练详情' } },
|
|
{ path: '/orders', name: 'orders', component: Orders, meta: { title: '订单管理' } },
|
|
{ path: '/licenses', name: 'licenses', component: Licenses, meta: { title: '授权管理' } },
|
|
{ path: '/app-versions', name: 'appVersions', component: AppVersions, meta: { title: '版本管理' } },
|
|
],
|
|
})
|
|
|
|
// 登录守卫:未输入 token 一律回登录页
|
|
router.beforeEach((to) => {
|
|
if (to.path !== '/login' && !localStorage.getItem('adminToken')) {
|
|
return '/login'
|
|
}
|
|
return true
|
|
})
|
|
|
|
router.afterEach((to) => {
|
|
document.title = (to.meta.title ? to.meta.title + ' - ' : '') + '视野管理端'
|
|
})
|
|
|
|
export default router
|