/* * @Author: qinzhenpen qzp1807@126.com * @Date: 2024-08-16 17:56:32 * @LastEditors: qinzhenpen qzp1807@126.com * @LastEditTime: 2024-08-21 13:48:30 * @FilePath: \vue3\src\permission.js * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ import router from './router' import { ElMessage } from 'element-plus' import NProgress from 'nprogress' import 'nprogress/nprogress.css' import { getToken,getUserInfo } from '@/utils/auth' import { isHttp } from '@/utils/validate' import { isRelogin } from '@/utils/request' import useUserStore from '@/store/modules/user' import useSettingsStore from '@/store/modules/settings' import usePermissionStore from '@/store/modules/permission' NProgress.configure({ showSpinner: false }); const whiteList = ['/login', '/register']; router.beforeEach((to, from, next) => { NProgress.start() if (getToken()) { if (to.path === '/login') { // console.log(JSON.parse(getUserInfo()).roleId); if(JSON.parse(getUserInfo()).roleId===3){ next({ path: '/index' }) NProgress.done() }else if(JSON.parse(getUserInfo()).roleId===4){ next({ path: '/teacher/index' }) NProgress.done() } } else { usePermissionStore().getRoutersPermission().then(accessRoutes => { next() // hack方法 确保addRoutes已完成 }) } } else { // 没有token if (whiteList.indexOf(to.path) !== -1) { // 在免登录白名单,直接进入 next() } else { next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页 NProgress.done() } } }) router.afterEach(() => { NProgress.done() })