import Vue from 'vue' import VueRouter from 'vue-router' import NProgress from 'muse-ui-progress'; Vue.use(VueRouter); let NPconfig = { zIndex: 2000, // progress z-index top: 0, // position fixed top speed: 300, // progress speed color: '#E75296', // color size: 2, // progress size className: '' // progress custom class }; Vue.use(NProgress, NPconfig); const routes = [ { path: '/', name: '', component: () => import('../page/index.vue'), meta: { index: 0 },//meta对象的index用来定义当前路由的层级,由小到大,由低到高 children: [ { path: '/', name: 'main', meta: { title: '预约课程', index: 1 }, component: () => import('../page/mainpage.vue') }, { path: '/appoint', name: 'appoint', meta: { title: '预约课程', index: 2 }, component: () => import('../page/appoint.vue') }, { path: '/record', name: 'record', meta: { title: '预约记录', index: 1 }, component: () => import('../page/record.vue') }, { path: '/mine', name: 'mine', meta: { title: '我的', index: 1 }, component: () => import('../page/mine.vue') }, { path: '/lesson', name: 'lesson', meta: { title: '课程表', index: 1 }, component: () => import('../page/lesson.vue') }, ] }, { path: '/login', name: 'login', meta: { title: '登陆', index: 1 }, component: () => import('../page/login.vue') // component: () => import( '../page/404.vue') }, { path: '/test', name: 'test', meta: { title: 'test', index: 1 }, component: () => import('../page/test.vue') }, { path: '/private', name: 'private', meta: { title: 'private', index: 1 }, component: () => import('../page/private.vue') }, { path: '/404', name: '404', meta: { title: '404', index: 1 }, component: () => import('../page/404.vue') }, { path: '*', name: 'notFound', meta: { title: '404', index: 3 }, component: () => import('../page/notFound.vue') }, ]; const router = new VueRouter({ // mode: 'history', mode: 'hash', base: process.env.BASE_URL, routes }); // 路由守卫 router.beforeEach((to, from, next) => { NProgress.start(); const isLogin = localStorage.token ? true : false; if (to.path == '/login' || to.path == '/private') {//'login'和'register'相当于是路由白名单 next(); } else { //如果token存在,就正常跳转,如果不存在,则说明未登陆,则跳转到'login' isLogin ? next() : next("/login"); // next(); } }); router.afterEach(() => { NProgress.done() }) export default router