index.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. import Vue from 'vue'
  2. import Router from 'vue-router'
  3. import Layout from '@/views/layout'
  4. import Home from '@/views/Home.vue'
  5. import baseRouters from './modules/base'
  6. import sysRouters from './modules/sys'
  7. import { Message } from 'element-ui'
  8. import NProgress from 'nprogress' // progress bar
  9. import 'nprogress/nprogress.css' // progress bar style
  10. import { getToken } from '@/utils/auth' // get token from cookie
  11. Vue.use(Router)
  12. NProgress.configure({ showSpinner: true }) // NProgress Configuration
  13. export const constantRoutes = [
  14. {
  15. path: '/layout',
  16. component: Layout,
  17. children: [
  18. {
  19. path: '/home',
  20. name: 'Home',
  21. component: Home,
  22. meta: {
  23. title: '控制台',
  24. affix: true
  25. }
  26. },
  27. ...baseRouters,
  28. ...sysRouters,
  29. ]
  30. },
  31. {
  32. path: '/',
  33. redirect: '/home'
  34. },
  35. {
  36. path: '/login',
  37. component: () => import('@/views/Login')
  38. },
  39. {
  40. path: '/redirect',
  41. component: Layout,
  42. hidden: true,
  43. children: [
  44. {
  45. path: '/redirect/:path(.*)',
  46. component: () => import('@/views/redirect/index')
  47. }
  48. ]
  49. },
  50. ];
  51. // Array.prototype.push.apply(routes, caseRouters);
  52. // Array.prototype.push.apply(routes, sysRouters);
  53. var router = new Router({
  54. routes: constantRoutes
  55. })
  56. router.beforeEach((to, from, next) => {
  57. NProgress.start();
  58. console.log(`${to.path}`);
  59. const hasToken = getToken()
  60. if (hasToken != null) {
  61. if (to.path === '/login') {
  62. // if is logged in, redirect to the home page
  63. next({ path: '/home' })
  64. }
  65. else {
  66. next();
  67. }
  68. NProgress.done();
  69. }
  70. else {
  71. if (to.path === '/login') {
  72. next();
  73. }
  74. else {
  75. next(`/login?redirect=${to.path}`);
  76. }
  77. NProgress.done();
  78. }
  79. });
  80. router.afterEach(() => {
  81. NProgress.done();
  82. });
  83. export default router;