| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- import Vue from 'vue'
- import Router from 'vue-router'
- import Layout from '@/views/layout'
- import Home from '@/views/Home.vue'
- import baseRouters from './modules/base'
- import businessRouters from './modules/business'
- import sysRouters from './modules/sys'
- import { Message } from 'element-ui'
- import NProgress from 'nprogress' // progress bar
- import 'nprogress/nprogress.css' // progress bar style
- import { getToken } from '@/utils/auth' // get token from cookie
- Vue.use(Router)
- NProgress.configure({ showSpinner: true }) // NProgress Configuration
- export const constantRoutes = [
- {
- path: '/layout',
- component: Layout,
- children: [
- {
- path: '/home',
- name: 'Home',
- component: Home,
- meta: {
- title: '控制台',
- affix: true
- }
- },
- ...sysRouters,
- ...baseRouters,
- ...businessRouters,
- ]
- },
- {
- path: '/',
- redirect: '/home'
- },
- {
- path: '/login',
- component: () => import('@/views/Login')
- },
- {
- path: '/redirect',
- component: Layout,
- hidden: true,
- children: [
- {
- path: '/redirect/:path(.*)',
- component: () => import('@/views/redirect/index')
- }
- ]
- },
- ];
- // Array.prototype.push.apply(routes, caseRouters);
- // Array.prototype.push.apply(routes, sysRouters);
- var router = new Router({
- routes: constantRoutes
- })
- router.beforeEach((to, from, next) => {
- NProgress.start();
- console.log(`${to.path}`);
- const hasToken = getToken()
- if (hasToken != null) {
- if (to.path === '/login') {
- // if is logged in, redirect to the home page
- next({ path: '/home' })
- }
- else {
- next();
- }
- NProgress.done();
- }
- else {
- if (to.path === '/login') {
- next();
- }
- else {
- next(`/login?redirect=${to.path}`);
- }
- NProgress.done();
- }
- });
- router.afterEach(() => {
- NProgress.done();
- });
- export default router;
|