128 lines
2.6 KiB
JavaScript
128 lines
2.6 KiB
JavaScript
import { createRouter, createWebHistory } from 'vue-router';
|
|
import NProgress from 'nprogress'//进度条
|
|
import 'nprogress/nprogress.css'
|
|
import { getToken } from '../utils/auth'
|
|
NProgress.configure({ showSpinner: false })
|
|
|
|
const routes = [
|
|
{
|
|
path: '/login',
|
|
name: 'login',
|
|
component: () => import('@/views/login/index.vue'),
|
|
meta: {
|
|
hidden: true,
|
|
title: '登录'
|
|
}
|
|
},
|
|
{
|
|
path: '/',
|
|
name: 'home',
|
|
component: () => import('@/views/tunnel/index.vue'),
|
|
meta: {
|
|
title: '首页',
|
|
breadcrumb: true
|
|
},
|
|
},
|
|
{
|
|
path: '/:tunnelId/:siteId',
|
|
name: 'changeSitePreview',
|
|
component: () => import('@/views/tunnel/index.vue'),
|
|
meta: {
|
|
title: '站点预览',
|
|
breadcrumb: true
|
|
},
|
|
},
|
|
{
|
|
path: '/:tunnelId',
|
|
name: 'previewTunnel',
|
|
component: () => import('@/views/tunnel/index.vue'),
|
|
meta: {
|
|
title: '隧道预览',
|
|
breadcrumb: true
|
|
},
|
|
},
|
|
{
|
|
path: '/edit/:tunnelId(\\d+)/:type/:userId(\\d+)',
|
|
name: 'tunneledit',
|
|
component: () => import('@/views/edit/edit.vue'),
|
|
meta: {
|
|
title: '编辑首页',
|
|
breadcrumb: true
|
|
},
|
|
},
|
|
{
|
|
path: '/debug',
|
|
name: 'debug',
|
|
component: () => import('@/views/debug/index.vue'),
|
|
meta: {
|
|
title: 'debug',
|
|
breadcrumb: true
|
|
}
|
|
},
|
|
{
|
|
path: '/site/:userId(\\d+)/:siteId(\\d+)',
|
|
name: 'site',
|
|
component: () => import('@/views/site/index.vue'),
|
|
meta: {
|
|
title: 'site',
|
|
breadcrumb: true
|
|
}
|
|
},
|
|
{
|
|
path: '/user/:siteId(\\d+)',
|
|
name: 'user',
|
|
component: () => import('@/views/user/index.vue'),
|
|
meta: {
|
|
title: 'user',
|
|
breadcrumb: true
|
|
}
|
|
},
|
|
{
|
|
path: '/tunnel/:siteId(\\d+)/:type/:userId(\\d+)',
|
|
name: 'tunnel',
|
|
component: () => import('@/views/tunnel-manage/index.vue'),
|
|
meta: {
|
|
title: 'tunnel',
|
|
breadcrumb: true
|
|
}
|
|
},
|
|
{
|
|
path: '/device/:tunnelId(\\d+)/:type/:userId(\\d+)',
|
|
name: 'device',
|
|
component: () => import('@/views/device-manage/index.vue'),
|
|
meta: {
|
|
title: 'device',
|
|
breadcrumb: true
|
|
}
|
|
}
|
|
];
|
|
|
|
const router = createRouter({
|
|
history: createWebHistory(),
|
|
routes,
|
|
});
|
|
router.beforeEach((to, form, next) => {
|
|
NProgress.start()
|
|
if (!getToken()) {
|
|
if (to.path === '/login') {
|
|
next()
|
|
NProgress.done()
|
|
} else {
|
|
next({ path: '/login' })
|
|
}
|
|
} else {
|
|
// if (to.path === '/login') {
|
|
// next('/')
|
|
// NProgress.done()
|
|
// } else {
|
|
next()
|
|
// }
|
|
}
|
|
})
|
|
router.afterEach(() => {
|
|
NProgress.done()
|
|
})
|
|
|
|
export default router;
|
|
|