index.js 3.5 KB

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