index.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. /*
  2. * @Description:
  3. * @Version: 1.0
  4. * @Autor: zhuyijun
  5. * @Date: 2021-11-21 23:56:19
  6. * @LastEditTime: 2022-02-20 16:58:20
  7. */
  8. import Vue from 'vue'
  9. import VueRouter from 'vue-router'
  10. import Login from '../components/Login.vue'
  11. import Home from '../components/Home.vue'
  12. import Welcome from '../components/Welcome.vue'
  13. import Users from '../components/user/Users.vue'
  14. import Rights from '../components/power/Rights.vue'
  15. import Roles from '../components/power/Roles.vue'
  16. import Cate from '../components/goods/Cate.vue'
  17. import Params from '../components/goods/Params.vue'
  18. import GoodsList from '../components/goods/GoodsList.vue'
  19. import Add from '../components/goods/Add.vue'
  20. import Edit from '../components/goods/Edit.vue'
  21. import Order from '../components/order/Order.vue'
  22. import Report from '../components/report/Report.vue'
  23. Vue.use(VueRouter)
  24. const routes = [
  25. {
  26. path: '/',
  27. redirect: '/login'
  28. },
  29. {
  30. path: '/login',
  31. name: 'Login',
  32. component: Login
  33. },
  34. {
  35. path: '/home',
  36. name: 'Home',
  37. component: Home,
  38. redirect: '/welcome',
  39. children: [
  40. {
  41. path: '/welcome',
  42. component: Welcome
  43. },
  44. {
  45. path: '/users',
  46. component: Users
  47. },
  48. {
  49. path: '/rights',
  50. component: Rights
  51. },
  52. {
  53. path: '/roles',
  54. component: Roles
  55. },
  56. {
  57. path: '/categories',
  58. component: Cate
  59. },
  60. {
  61. path: '/params',
  62. component: Params
  63. },
  64. {
  65. path: '/goods',
  66. component: GoodsList,
  67. children: [
  68. ]
  69. },
  70. {
  71. path: '/goods/add',
  72. component: Add
  73. },
  74. {
  75. path: '/goods/edit',
  76. component: Edit
  77. },
  78. {
  79. path: '/orders',
  80. component: Order
  81. },
  82. {
  83. path: '/reports',
  84. component: Report
  85. }
  86. ]
  87. }
  88. ]
  89. const router = new VueRouter({
  90. routes
  91. })
  92. // 路由导航守卫
  93. /**
  94. * to 将要访问的路径
  95. * from 代表从哪个路径跳转而来
  96. * next 是一个函数,表示放行
  97. */
  98. router.beforeEach((to, from, next) => {
  99. if (to.path === '/login') return next()
  100. // 获取token
  101. const token = window.localStorage.getItem('token')
  102. if (!token) {
  103. return next('/login')
  104. }
  105. next()
  106. })
  107. export default router