index.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. import Vue from 'vue';
  2. import VueRouter from 'vue-router';
  3. import store from '@/store/index';
  4. const jwt = require('jsonwebtoken');
  5. const originalPush = VueRouter.prototype.push;
  6. VueRouter.prototype.push = function push(location) {
  7. return originalPush.call(this, location).catch((err) => err);
  8. };
  9. Vue.use(VueRouter);
  10. const web = [
  11. {
  12. path: '/',
  13. redirect: '/adminCenter/homeIndex',
  14. },
  15. // 管理登录
  16. {
  17. path: '/login',
  18. name: 'login',
  19. meta: { title: '管理登录' },
  20. component: () => import('../views/login.vue'),
  21. },
  22. // 管理中心
  23. {
  24. path: '/',
  25. name: 'adminCenter',
  26. component: () => import('@frame/src/components/admin-frame/Home.vue'),
  27. children: [
  28. {
  29. path: '/adminCenter/homeIndex',
  30. name: 'admin_homeIndex',
  31. meta: { title: '首页' },
  32. component: () => import('../views/adminCenter/homeIndex/index.vue'),
  33. },
  34. {
  35. path: '/adminCenter/mechanism/index',
  36. meta: { title: '机构用户管理' },
  37. component: () => import('../views/adminCenter/mechanism/index.vue'),
  38. },
  39. {
  40. path: '/adminCenter/mechanism/detail',
  41. meta: { title: '机构用户详情' },
  42. component: () => import('../views/adminCenter/mechanism/detail.vue'),
  43. },
  44. {
  45. path: '/adminCenter/users/index',
  46. meta: { title: '平台用户管理' },
  47. component: () => import('../views/adminCenter/user/index.vue'),
  48. },
  49. {
  50. path: '/adminCenter/users/detail',
  51. meta: { title: '平台用户详情' },
  52. component: () => import('../views/adminCenter/user/detail.vue'),
  53. },
  54. ],
  55. },
  56. {
  57. path: '/jg/homeIndex',
  58. name: 'jgCenter',
  59. component: () => import('@frame/src/components/admin-frame/Home.vue'),
  60. children: [
  61. {
  62. path: '/jg/homeIndex',
  63. name: 'jgIndex',
  64. meta: { title: '首页' },
  65. component: () => import('../views/jg/homeIndex/index.vue'),
  66. },
  67. {
  68. path: '/jg/users/index',
  69. meta: { title: '平台用户管理' },
  70. component: () => import('../views/jg/user/index.vue'),
  71. },
  72. {
  73. path: '/jg/users/detail',
  74. meta: { title: '平台用户详情' },
  75. component: () => import('../views/jg/user/detail.vue'),
  76. },
  77. ],
  78. },
  79. ];
  80. const routes = [...web];
  81. const router = new VueRouter({
  82. mode: 'history',
  83. base: process.env.VUE_APP_ROUTER,
  84. routes,
  85. });
  86. router.beforeEach((to, from, next) => {
  87. document.title = `${to.meta.title} `;
  88. const token = localStorage.getItem('token');
  89. if (to.path == '/adminCenter/homeIndex') {
  90. if (!token) {
  91. next('/login');
  92. // next();
  93. } else {
  94. let user = jwt.decode(token);
  95. store.commit('setUser', user, { root: true });
  96. next();
  97. }
  98. } else {
  99. let user = jwt.decode(token);
  100. store.commit('setUser', user, { root: true });
  101. next();
  102. }
  103. });
  104. export default router;