index.js 1.9 KB

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