index.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. import Vue from 'vue'
  2. import store from '@/store'
  3. import VueRouter from 'vue-router'
  4. import { query } from '@/utils/query'
  5. Vue.use(VueRouter)
  6. const routes = [
  7. // {
  8. // path: '/',
  9. // redirect: '/home/overview', // 只有区域,及区域以上用户才能进入总部首页这一套
  10. // },
  11. {
  12. path: '/404',
  13. component: () => import('../components/404'),
  14. },
  15. {
  16. path: '/group',
  17. component: () => import('../views/statistics/index'),
  18. },
  19. // home
  20. {
  21. path: '/home',
  22. name: 'home',
  23. component: () => import('../views/index'),
  24. redirect: '/home/homepage',
  25. children: [
  26. {
  27. path: 'homepage',
  28. component: () => import('../views/homepage'),
  29. redirect: '/home/overview',
  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. const ignore = ['/404']
  75. router.beforeEach(async (to, from, next) => {
  76. if (!ignore.includes(to.path)) {
  77. const token = store.getters['ssoToken'] || query().token
  78. if (token) {
  79. store.commit('SETSSOTOKEN', token)
  80. if (to.path == '/') {
  81. next('/group')
  82. }
  83. if (to.path == '/group' || to.path == '/home/homepage') {
  84. if (store.state.accessLevel == -1) {
  85. await store.dispatch('getUserInfo', router)
  86. await store.dispatch('getBrand')
  87. // await store.dispatch('getFact')
  88. }
  89. }
  90. await store.dispatch('getFloors')
  91. await store.dispatch('getBrand')
  92. // await store.dispatch('getFact')
  93. next()
  94. } else {
  95. let lastRoute = {
  96. path: to.path,
  97. params: to.params,
  98. query: to.query,
  99. }
  100. store.commit('SETLASTROUTER', lastRoute)
  101. let ssoServer = 'http://oauth.wanda-dev.cn'
  102. let systemcode = 'CAD156',
  103. signal = new Date().getTime(),
  104. version = '1.0.0'
  105. window.location.href = `${ssoServer}/login?systemcode=${systemcode}&signal=${signal}&version=${version}`
  106. }
  107. } else {
  108. next()
  109. return
  110. }
  111. })
  112. export default router