Files
mosr-web/src/stores/userstore.js
2024-03-19 17:13:13 +08:00

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
}
})