import { defineStore } from 'pinia'; import Cookies from 'js-cookie'; import { UserInfosStates } from './interface'; import { Session } from '/@/utils/storage'; import { request } from '../utils/service'; /** * 用户信息 * @methods setUserInfos 设置用户信息 */ export const useUserInfo = defineStore('userInfo', { state: (): UserInfosStates => ({ userInfos: { userName: '', photo: '', time: 0, roles: [], authBtnList: [], }, }), actions: { async setUserInfos() { // 存储用户信息到浏览器缓存 if (Session.get('userInfo')) { this.userInfos = Session.get('userInfo'); } else { let userInfos: any = await this.getApiUserInfo(); this.userInfos.userName = userInfos.data.name; this.userInfos.photo = userInfos.data.avatar || 'https://img2.baidu.com/it/u=1978192862,2048448374&fm=253&fmt=auto&app=138&f=JPEG?w=504&h=500' this.userInfos.time = new Date().getTime() this.userInfos.roles = ['admin'] Session.set('userInfo', this.userInfos) } }, async getApiUserInfo() { return request({ url: '/api/system/user/user_info/', method: 'get', }) } }, });