12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- 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
- },
- })
|