index.js 3.5 KB

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