index.js 4.2 KB

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