登录
This commit is contained in:
@ -1,29 +1,92 @@
|
||||
import { defineStore } from 'pinia';
|
||||
|
||||
interface UserInfo {
|
||||
id: number;
|
||||
name: string;
|
||||
head_image: String;
|
||||
current_enterprise_id: number;
|
||||
mobile: string;
|
||||
// 添加其他用户属性...
|
||||
}
|
||||
|
||||
interface CompanyInfo {
|
||||
id: number;
|
||||
name: string;
|
||||
// 添加其他公司属性...
|
||||
}
|
||||
|
||||
interface UserState {
|
||||
token: String;
|
||||
token: string;
|
||||
userInfo: UserInfo | null;
|
||||
companyInfo: CompanyInfo | null;
|
||||
}
|
||||
|
||||
export const useUserStore = defineStore('user', {
|
||||
state: (): UserState => ({
|
||||
token: localStorage.getItem('accessToken') || '',
|
||||
userInfo: null,
|
||||
companyInfo: null,
|
||||
}),
|
||||
|
||||
getters: {},
|
||||
|
||||
actions: {
|
||||
setToken(token: String) {
|
||||
const _token = `Bearer ${token}`;
|
||||
this.token = _token;
|
||||
localStorage.setItem('accessToken', _token);
|
||||
},
|
||||
|
||||
// 存储用户信息
|
||||
setUserInfo(userInfo: UserInfo | null) {
|
||||
this.userInfo = userInfo;
|
||||
if (userInfo) {
|
||||
localStorage.setItem('userInfo', JSON.stringify(userInfo));
|
||||
} else {
|
||||
localStorage.removeItem('userInfo');
|
||||
}
|
||||
},
|
||||
|
||||
// 获取用户信息
|
||||
getUserInfo(): UserInfo | null {
|
||||
const userInfoStr = localStorage.getItem('userInfo');
|
||||
if (userInfoStr) {
|
||||
try {
|
||||
return JSON.parse(userInfoStr);
|
||||
} catch (error) {
|
||||
console.error('解析用户信息失败:', error);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
},
|
||||
|
||||
// 存储公司信息
|
||||
setCompanyInfo(companyInfo: CompanyInfo | null) {
|
||||
this.companyInfo = companyInfo;
|
||||
if (companyInfo) {
|
||||
localStorage.setItem('companyInfo', JSON.stringify(companyInfo));
|
||||
} else {
|
||||
localStorage.removeItem('companyInfo');
|
||||
}
|
||||
},
|
||||
|
||||
// 获取公司信息
|
||||
getCompanyInfo(): CompanyInfo | null {
|
||||
const companyInfoStr = localStorage.getItem('companyInfo');
|
||||
if (companyInfoStr) {
|
||||
try {
|
||||
return JSON.parse(companyInfoStr);
|
||||
} catch (error) {
|
||||
console.error('解析公司信息失败:', error);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
},
|
||||
|
||||
// 删除 token
|
||||
deleteToken() {
|
||||
this.token = '';
|
||||
localStorage.removeItem('accessToken');
|
||||
},
|
||||
async getUserInfo() {
|
||||
// todo 调用获取用户信息接口,当前用mock数据表示
|
||||
// AMessage.success(`当前用户角色为:ENTERPRISE`);
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user