index.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import * as vueRouter from 'vue-router'
  2. import baseData from './modules/base'
  3. import { getToken } from '~src/api/util/auth'
  4. import { getRouterData } from './routers'
  5. import NProgress from 'nprogress'
  6. import '~src/styles/app/nprogress.scss'
  7. //设置路由数据
  8. const router = vueRouter.createRouter({
  9. history: vueRouter.createWebHashHistory(),
  10. routes: baseData,
  11. })
  12. //路由拦截
  13. router.beforeResolve(async (to) => {
  14. NProgress.start()
  15. const token = getToken(), auth = ['/login-main', '/new-login', '/login', '/auth', '/auth-token', '/app/table-form']
  16. if (auth.indexOf(to.path) !== -1) {
  17. return true
  18. } else if (!token) {
  19. return '/login-main'
  20. } else {
  21. const res = await getRouterData(to.name)
  22. if (res) {
  23. return true
  24. } else {
  25. return '/login-main'
  26. }
  27. }
  28. })
  29. router.afterEach((to) => {
  30. if (to.path !== '/') {
  31. window.document.title = to.meta['title']
  32. } else {
  33. window.document.title = ''
  34. }
  35. window.scrollTo(0, 0)
  36. NProgress.done()
  37. })
  38. export function setupRouter(app) {
  39. app.use(router)
  40. return router
  41. }
  42. export default router