Files
Yi.Framework/Yi.RuoYi.Vue3/src/store/modules/user.js
2024-02-09 16:52:17 +08:00

89 lines
2.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { login, logout, getInfo } from '@/api/login'
import { getToken, setToken, removeToken,getTenantId,setTenantId,removeTenantId } from '@/utils/auth'
import defAva from '@/assets/images/profile.jpg'
const useUserStore = defineStore(
'user',
{
state: () => ({
token: getToken(),
name: '',
avatar: '',
roles: [],
permissions: [],
tenantId:getTenantId()
}),
actions: {
// 登录
login(userInfo,tenantId) {
const username = userInfo.username.trim()
const password = userInfo.password
const code = userInfo.code
const uuid = userInfo.uuid
//登录之前先设置租户id用户登录接口的请求设置
setTenantId(tenantId);
this.tenantId=tenantId;
return new Promise((resolve, reject) => {
login(username, password, code, uuid).then(res => {
setToken(res.data.token);
this.token = res.data.token;
resolve();
}).catch(error => {
removeTenantId();
this.tenantId=null;
reject(error)
})
})
},
// 获取用户信息
getInfo() {
return new Promise((resolve, reject) => {
getInfo().then(response => {
const res=response.data;
const user = res.user
const avatar = (user.icon == "" || user.icon == null) ? defAva : import.meta.env.VITE_APP_BASE_API + "/file/"+user.icon;
if (res.roleCodes && res.roleCodes.length > 0) { // 验证返回的roles是否是一个非空数组
this.roles = res.roleCodes
this.permissions = res.permissionCodes
// this.roles = ["admin"];
// this.permissions=["*:*:*"]
} else {
this.roles = ['ROLE_DEFAULT']
}
// this.roles = ["admin"];
// this.permissions=["*:*:*"]
this.name = user.userName
this.avatar = avatar;
resolve(res)
}).catch(error => {
reject(error)
})
})
},
// 退出系统
logOut() {
return new Promise((resolve, reject) => {
logout(this.token).then(() => {
this.token = ''
this.roles = []
this.permissions = []
removeToken()
removeTenantId()
resolve()
}).catch(error => {
reject(error)
})
})
}
}
})
export default useUserStore