56 lines
1.2 KiB
JavaScript
56 lines
1.2 KiB
JavaScript
import {defineStore} from "pinia";
|
|
import {ref} from "vue";
|
|
import {getUserInfo, login} from "../api/login";
|
|
import {ElMessage} from "element-plus";
|
|
import {getToken, removeToken, setToken} from "../utils/auth";
|
|
|
|
export const useAuthStore = defineStore('auth', () => {
|
|
const userinfo = ref({})
|
|
const permisstions = ref([])
|
|
const roles = ref([])
|
|
const casToken = (token) => {
|
|
console.log('getToken()!==token',getToken()!==token)
|
|
let flag=''
|
|
if(getToken()!==token){//切换token
|
|
setToken(token)
|
|
flag=true
|
|
}else {
|
|
flag=false
|
|
}
|
|
return flag;
|
|
}
|
|
const userLogin = async (data) => {
|
|
let flag
|
|
await login(data).then(res => {
|
|
if (res?.code === 1000) {
|
|
setToken(res.data)
|
|
flag = true
|
|
} else {
|
|
ElMessage.error(res.msg)
|
|
flag = false
|
|
}
|
|
})
|
|
return flag
|
|
}
|
|
const userLogout = () => {
|
|
removeToken()
|
|
}
|
|
const setUserInfo = async () => {
|
|
await getUserInfo().then(res => {
|
|
userinfo.value = res.data.user
|
|
permisstions.value = res.data.permissions
|
|
roles.value = res.data.roles
|
|
})
|
|
}
|
|
|
|
return {
|
|
userinfo,
|
|
permisstions,
|
|
roles,
|
|
casToken,
|
|
userLogin,
|
|
userLogout,
|
|
setUserInfo
|
|
}
|
|
})
|