index.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import type { App } from 'vue'
  2. import type { RouteRecordRaw } from 'vue-router'
  3. import { createRouter, createWebHistory } from 'vue-router'
  4. import { showDialog, closeDialog } from 'vant'
  5. import routes from './routes'
  6. import { getUserInfoPromise } from './getUserInfo'
  7. const router = createRouter({
  8. history: createWebHistory('/html_h5'),
  9. strict: true,
  10. routes: routes as RouteRecordRaw[],
  11. scrollBehavior: () => ({ left: 0, top: 0 }),
  12. })
  13. // 路由加载前
  14. router.beforeEach((to, from, next) => {
  15. // next()
  16. // return
  17. getUserInfoPromise(true).then((isLogin) => {
  18. next()
  19. if (!isLogin) {
  20. showDialog({
  21. message: '很抱歉,用户未登录,请先重新加载!',
  22. confirmButtonText: '重新加载',
  23. beforeClose: function (action) {
  24. if (action === 'confirm') {
  25. closeDialog()
  26. localStorage.clear()
  27. getUserInfoPromise(false).then((isLoginHttp) => {
  28. if (isLoginHttp) {
  29. window.location.reload()
  30. }
  31. })
  32. }
  33. },
  34. })
  35. }
  36. })
  37. })
  38. const setupRouter = (app: App<Element>): void => {
  39. app.use(router)
  40. }
  41. export default setupRouter