index.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. import Vue from "vue"
  2. import store from "@/store"
  3. import VueRouter from "vue-router"
  4. import {
  5. query
  6. } from "@/utils/query"
  7. Vue.use(VueRouter)
  8. const routes = [
  9. // 登陆页面
  10. {
  11. path: "/",
  12. redirect: "/home/overview",
  13. },
  14. {
  15. path: "/404",
  16. component: () => import("../components/404"),
  17. },
  18. // home
  19. {
  20. path: "/home",
  21. name: "home",
  22. component: () => import("../views/index"),
  23. redirect: "/home/first",
  24. children: [{
  25. path: "first",
  26. component: () => import("../views/first"),
  27. },
  28. //概览
  29. {
  30. path: "overview",
  31. component: () => import("../views/overview"),
  32. },
  33. // 楼层功能
  34. {
  35. path: "floorFunc",
  36. component: () => import("../views/floorFunc"),
  37. },
  38. // 设备设施
  39. {
  40. path: "equipment",
  41. component: () => import("../views/equipment"),
  42. },
  43. // 其他功能
  44. {
  45. path: "other",
  46. component: () => import("../views/other"),
  47. },
  48. // 分析
  49. {
  50. path: "analysis",
  51. component: () => import("../views/analysis"),
  52. },
  53. //图例库管理
  54. {
  55. path: "legendLibrary",
  56. component: () => import("../views/legendLibrary"),
  57. },
  58. //图例绘制规则
  59. {
  60. path: "legendRules",
  61. component: () => import("../views/legendRules"),
  62. },
  63. ],
  64. },
  65. ]
  66. const router = new VueRouter({
  67. mode: "history",
  68. base: process.env.BASE_URL,
  69. routes,
  70. })
  71. //不需要token的路由
  72. const ignore = ["/404"]
  73. router.beforeEach(async (to, from, next) => {
  74. if (!ignore.includes(to.path)) {
  75. const token = query().token
  76. const ssoToken = store.getters["ssoToken"]
  77. if (ssoToken) {
  78. store.commit("SETSSOTOKEN", ssoToken)
  79. await store.dispatch("getUserInfo", router)
  80. await store.dispatch("getFloors")
  81. await store.dispatch("getBrand")
  82. next()
  83. } else if (token) {
  84. store.commit("SETSSOTOKEN", token)
  85. await store.dispatch("getUserInfo", router)
  86. next()
  87. } else {
  88. let lastRoute = {
  89. path: to.path,
  90. params: to.params,
  91. query: to.query,
  92. }
  93. store.commit("SETLASTROUTER", lastRoute)
  94. let ssoServer = "http://oauth.wanda-dev.cn"
  95. let systemcode = "CAD156",
  96. signal = new Date().getTime(),
  97. version = "1.0.0",
  98. returnUrl = window.location.protocol + '//' + window.location.host
  99. window.location.href = `${ssoServer}/login?systemcode=${systemcode}&signal=${signal}&version=${version}`
  100. }
  101. } else {
  102. next()
  103. return
  104. }
  105. })
  106. export default router