Files
tunnel-cloud-web/src/router/index.js

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;