router.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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. export default 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. });