router.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. import Vue from "vue";
  2. import Router from "vue-router";
  3. import Home from "./views/Home.vue";
  4. import NotFound from "./views/404.vue";
  5. import login from "./modules/login/router";
  6. // module-example
  7. import base from "./modules/base/router";
  8. import exam from "./modules/exam/router";
  9. import print from "./modules/print/router";
  10. import customer from "./modules/customer/router";
  11. // card part
  12. import card from "./modules/card/router";
  13. // admin
  14. import admin from "./modules/admin/router";
  15. // ignore NavigationDuplicated. https://github.com/vuejs/vue-router/issues/2881
  16. const originalPush = Router.prototype.push;
  17. Router.prototype.push = function push(location, onResolve, onReject) {
  18. if (onResolve || onReject)
  19. return originalPush.call(this, location, onResolve, onReject);
  20. try {
  21. return originalPush.call(this, location).catch(err => err);
  22. } catch (error) {
  23. console.log(error);
  24. }
  25. };
  26. // end ignore
  27. Vue.use(Router);
  28. let router = new Router({
  29. routes: [
  30. {
  31. path: "/",
  32. name: "Index",
  33. redirect: { name: "Login" }
  34. },
  35. {
  36. path: "/home",
  37. name: "Home",
  38. component: Home,
  39. children: [...base, ...exam, ...print, ...customer]
  40. },
  41. { ...login },
  42. { ...admin },
  43. ...card,
  44. {
  45. path: "*",
  46. name: "404",
  47. component: NotFound
  48. }
  49. // [lazy-loaded] route level code-splitting
  50. // {
  51. // path: "/about",
  52. // name: "about",
  53. // // this generates a separate chunk (about.[hash].js) for this route
  54. // // which is lazy-loaded when the route is visited.
  55. // component: () =>
  56. // import(/* webpackChunkName: "about" */ "./views/About.vue")
  57. // }
  58. ]
  59. });
  60. // route interceptor
  61. // router.beforeEach((to, from, next) => {
  62. // const token = Vue.ls.get("token");
  63. // if (to.meta.noRequire) {
  64. // next();
  65. // } else {
  66. // // 需要登录的路由
  67. // if (token) {
  68. // next();
  69. // } else {
  70. // // 登录失效的处理
  71. // Vue.ls.clear();
  72. // next({ name: "Login" });
  73. // }
  74. // }
  75. // });
  76. export default router;