index.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. getUserInfoPromise(true).then((isLogin) => {
  16. next();
  17. if (!isLogin) {
  18. showDialog({
  19. message: '很抱歉,用户未登录,请先重新加载!',
  20. confirmButtonText: '重新加载',
  21. beforeClose: function(action) {
  22. if (action === 'confirm') {
  23. closeDialog()
  24. localStorage.clear();
  25. getUserInfoPromise(false).then((isLoginHttp) => {
  26. if (isLoginHttp) {
  27. window.location.reload()
  28. }
  29. })
  30. }
  31. },
  32. })
  33. }
  34. })
  35. })
  36. const setupRouter = (app: App<Element>): void => {
  37. app.use(router)
  38. }
  39. export default setupRouter;