import router from './router/index'
import {getUserInfo} from './api/login'
router.beforeEach((to,from,next)=>{
//1.到本地获取token
const token=localStorage.getItem("xdz-manager-token")
if(!token) // 1.1没有获取到token
{
if(to.path!=='/login')// 1.1.1访问非登录页面,则让你回到登录页面
{
next({path:'/login'})
}
else{ // 1.1.2访问登录页面,则进入登录页面
next()
}
}
else// 1.2获取到token
{
// 1.2.1 访问的是登录页面,则进入登录页面
if(to.path==='/login')
{
next()
}
else
{ //1.2.2 访问的是非登录页面,则查看本地是否存储有用户信息
const userinfo=localStorage.getItem("xdz-manager-user")
if(userinfo){ //1.2.2.1 本地有用户信息,则让其进入相应页面
next()
}
else{//1.2.2.1 本地没有用户信息,则通过token去获取用户信息
getUserInfo(token).then(response=>{
const respUser=response.data
if(respUser.flag){// 1.2.2.1.1获取到了用户信息,则把用户信息写入本地存储
localStorage.setItem("xdz-manager-user",JSON.stringify(response.data))
next()
}
else{// 1.2.2.1.2没有获取到用户信息,则转到登录页面
next({path:'/login'})
}
})
}
}
}
})
import { createApp } from 'vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import App from './App.vue'
import './registerServiceWorker'
import router from './router'
import './permission.js'
const app = createApp(App)
app.use(ElementPlus)
app.use(router)
app.mount('#app')