index.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { createRouter, createWebHistory } from 'vue-router'
  2. import { UserStore } from '@/store/user'
  3. import axios from 'axios'
  4. const router = createRouter({
  5. history: createWebHistory(import.meta.env.BASE_URL),
  6. routes: [
  7. {
  8. path: '/',
  9. redirect: '/home'
  10. },
  11. {
  12. path: '/home',
  13. name: 'home',
  14. meta: { title: '产学研用协同创新数字化平台' },
  15. component: () => import('@/views/home/index.vue')
  16. },
  17. {
  18. path: '/loading',
  19. name: 'loading',
  20. meta: { title: '产学研用协同创新数字化平台' },
  21. component: () => import('@/views/loading/index.vue')
  22. }
  23. ]
  24. })
  25. router.beforeEach(async (to, from, next) => {
  26. const userStore = UserStore()
  27. document.title = `${to.meta.title} `
  28. const token = localStorage.getItem('token')
  29. if (token) {
  30. const res = await axios.request({
  31. method: 'get',
  32. url: `${import.meta.env.VITE_APP_BASE_API}/token/tokenView`,
  33. responseType: 'json',
  34. headers: {
  35. token: token
  36. }
  37. })
  38. if (res.data.errcode === 0) userStore.setUser(res.data.data)
  39. next()
  40. } else next()
  41. })
  42. router.afterEach(() => {
  43. window.scrollTo(0, 0)
  44. })
  45. export default router