index.js 3.6 KB

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