index.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import Vue from 'vue'
  2. import VueRouter from 'vue-router'
  3. import index from '../views/index.vue'
  4. Vue.use(VueRouter)
  5. const originalPush = VueRouter.prototype.push;
  6. VueRouter.prototype.push = function push (location) {
  7. return originalPush.call(this, location).catch(err => err)
  8. }
  9. const routes = [
  10. {
  11. path: '/',
  12. name: 'index',
  13. component: index,
  14. children: [
  15. {
  16. path: '/group',
  17. name: 'group',
  18. component: () => import('../views/group.vue')
  19. },
  20. {
  21. path: '/list',
  22. name: 'list',
  23. component: () => import('../views/list.vue')
  24. },
  25. {
  26. path: '/user',
  27. name: 'user',
  28. component: () => import('../views/user.vue')
  29. },
  30. {
  31. path: '/team',
  32. name: 'team',
  33. component: () => import('../views/team.vue')
  34. },
  35. {
  36. path: '/404',
  37. name: '404',
  38. component: () => import('../views/404.vue')
  39. }
  40. ]
  41. },
  42. {
  43. path: '/project',
  44. name: 'project',
  45. component: () => import('../views/project.vue')
  46. },
  47. {
  48. path: '/login',
  49. name: 'login',
  50. component: () => import('../views/login.vue')
  51. }
  52. ]
  53. const router = new VueRouter({
  54. mode: 'hash',
  55. base: process.env.BASE_URL,
  56. routes
  57. })
  58. // 路由拦截,自定义404
  59. let routesNameArray = [];
  60. routes.map(item => {
  61. routesNameArray.push(item.name);
  62. item.children && item.children.map(i => {
  63. routesNameArray.push(i.name);
  64. })
  65. })
  66. router.beforeEach((to, from, next) => {
  67. // 判断是否在登陆状态
  68. if(to.path != '/login' && !localStorage.getItem('designer_user')){
  69. next({
  70. path: '/login'
  71. })
  72. }
  73. // 自定义404
  74. if(routesNameArray.indexOf(to.name) == -1){
  75. next({
  76. path: '/404'
  77. })
  78. }
  79. next();
  80. })
  81. export default router