index.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. // 导入 Vue 和 VueRouter
  2. import { createRouter, createWebHashHistory } from 'vue-router';
  3. // 导入组件
  4. import Home from '../views/Home.vue';
  5. import Login from '../views/Login.vue';
  6. import Chat from '../views/Chat.vue'
  7. import Wxlogin from '../views/Wxlogin.vue'
  8. import Config from '../views/Config.vue'
  9. import History from '../views/History.vue'
  10. // 创建路由实例
  11. const router = createRouter({
  12. history: createWebHashHistory(),
  13. routes: [
  14. {
  15. path: '/',
  16. component: Home,
  17. name: 'Home',
  18. },
  19. {
  20. path: '/login',
  21. component: Login,
  22. name: 'Login',
  23. },
  24. {
  25. path: '/aichat',
  26. component: Chat,
  27. name: 'Chat',
  28. },
  29. {
  30. path: '/wxlogin',
  31. component: Wxlogin,
  32. name: 'Wxlogin',
  33. },
  34. {
  35. path: '/config',
  36. component: Config,
  37. name: 'Config',
  38. },
  39. {
  40. path: '/history',
  41. component: History,
  42. name: 'History',
  43. },
  44. ],
  45. });
  46. //为路由对象,添加beforeEach导航守卫
  47. router.beforeEach((to, from, next) => {
  48. //如果用户访问的登录页,直接放行
  49. if (to.path === '/login') return next()
  50. //从localStorage中获取到保存的token值
  51. const tokenStr = window.localStorage.getItem('token')
  52. //如果没有token,强制跳转到登录页
  53. if (!tokenStr) return next('/login')
  54. next()
  55. })
  56. // 导出路由实例,以便在主应用中使用
  57. export default router;