feat(store): 新增用户和企业信息管理功能

- 在 user store 中添加 userInfo 相关状态和操作
- 创建 enterprise store管理企业信息
- 更新相关组件以使用新的 store 方法
This commit is contained in:
2025-06-20 16:16:17 +08:00
parent c26ac51c21
commit 84f86f77ee
5 changed files with 90 additions and 22 deletions

View File

@ -0,0 +1,39 @@
interface EnterpriseInfo {
id: number;
name: string;
update_name_quota: number;
used_update_name_count: number;
sub_account_quota: number;
used_sub_account_count: number;
}
export const useEnterpriseStore = defineStore('enterprise', {
state: () => ({
// todo 暂时写死登录功能完成后记得重置为null哦
enterpriseInfo: {
id: 1,
name: '企业1',
update_name_quota: 2,
used_update_name_count: 1,
sub_account_quota: 2,
used_sub_account_count: 2,
},
}),
actions: {
setEnterpriseInfo(enterpriseInfo: EnterpriseInfo) {
this.enterpriseInfo = enterpriseInfo;
},
setEnterpriseName(name: string) {
this.enterpriseInfo.name = name;
},
incUsedUpdateNameCount() {
this.enterpriseInfo.used_update_name_count++;
},
incUsedSubAccountCount() {
this.enterpriseInfo.used_sub_account_count++;
},
getEnterpriseInfo(): EnterpriseInfo {
return this.enterpriseInfo;
},
},
});

View File

@ -11,12 +11,27 @@ type Role = 'ENTERPRISE' | 'PERSON';
interface UserState {
role: Role;
isLogin: boolean;
userInfo: UserInfo | null;
}
interface UserInfo {
id: number;
mobile: string;
name: string;
head_image: string;
}
export const useUserStore = defineStore('user', {
state: (): UserState => ({
role: 'PERSON',
isLogin: false,
// todo 暂时写死登录功能完成后记得重置为null哦
userInfo: {
id: 1,
mobile: '13600000000',
name: '灵机用户0001',
head_image: '',
},
}),
getters: {
@ -37,10 +52,27 @@ export const useUserStore = defineStore('user', {
this.isLogin = isLogin;
},
async getUserInfo() {
// todo 调用获取用户信息接口当前用mock数据表示
AMessage.success(`当前用户角色为ENTERPRISE`)
this.setUserRole('ENTERPRISE');
setUserInfo(userInfo: UserInfo | null) {
this.userInfo = userInfo;
},
setUserMobile(mobile: string) {
if (this.userInfo) {
this.userInfo.mobile = mobile;
}
},
setUserName(name: string) {
if (this.userInfo) {
this.userInfo.name = name;
}
},
setUserHeadImage(image: string) {
if (this.userInfo) {
this.userInfo.head_image = image;
}
},
getUserInfo() {
return this.userInfo;
},
},
});