import {defineStore} from 'pinia' export const useUserStore = defineStore({ // id: 必须的,在所有 Store 中唯一 id:'userState', // state: 返回对象的函数 state: ()=>({ // 登录token token:null, username:null, // 登录用户信息 userInfo:{}, // 角色 roles:localStorage.roles?JSON.parse(localStorage.roles):[] }), getters: {}, // 可以同步 也可以异步 actions:{ // 登录 login(userInfo){ const { token, username } = userInfo return new Promise(async (resolve, reject) => { this.token = token this.userInfo = userInfo this.username=username console.log(userInfo); // await this.getRoles() resolve(username) }) }, // 获取用户授权角色信息,实际应用中 可以通过token通过请求接口在这里获取用户信息 getRoles(){ return new Promise((resolve, reject) =>{ // 获取权限列表 默认就是超级管理员,因为没有进行接口请求 写死 this.roles = ['admin'] localStorage.roles = JSON.stringify(this.roles) resolve(this.roles) } ) }, // 获取用户信息 ,如实际应用中 可以通过token通过请求接口在这里获取用户信息 getInfo(roles) { return new Promise((resolve, reject) =>{ this.roles = roles resolve(roles) } ) }, // 退出 logout() { return new Promise((resolve, reject) => { this.token = null this.username=null this.userInfo = {} this.roles = [] resolve(null) }) }, }, // 进行持久化存储 persist: { // 本地存储的名称 key: "userState", //保存的位置 storage: window.localStorage,//localstorage }, })