| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- import { acceptHMRUpdate, defineStore } from 'pinia';
- interface BasicUserInfo {
- /**
- * 头像
- */
- avatar: string;
- /**
- * 用户昵称
- */
- realName: string;
- /**
- * 用户角色
- */
- roles?: string[];
- /**
- * 用户id
- */
- userId: string;
- /**
- * 用户名
- */
- username: string;
- }
- interface AccessState {
- /**
- * 用户信息
- */
- userInfo: BasicUserInfo | null;
- /**
- * 用户角色
- */
- userRoles: string[];
- }
- /**
- * @zh_CN 用户信息相关
- */
- export const useUserStore = defineStore('core-user', {
- actions: {
- setUserInfo(userInfo: BasicUserInfo | null) {
- // 设置用户信息
- this.userInfo = userInfo;
- // 设置角色信息
- const roles = userInfo?.roles ?? [];
- this.setUserRoles(roles);
- },
- setUserRoles(roles: string[]) {
- this.userRoles = roles;
- },
- },
- state: (): AccessState => ({
- userInfo: null,
- userRoles: [],
- }),
- });
- // 解决热更新问题
- const hot = import.meta.hot;
- if (hot) {
- hot.accept(acceptHMRUpdate(useUserStore, hot));
- }
|