| import { login, logout, getInfo } from '@/api/login' | 
| import { getToken, setToken, removeToken } from '@/utils/auth' | 
| import { isEmpty } from "@/utils/validate" | 
| import defAva from '@/assets/images/profile.jpg' | 
|   | 
| const useUserStore = defineStore( | 
|   'user', | 
|   { | 
|     state: () => ({ | 
|       token: getToken(), | 
|       id: '', | 
|       name: '', | 
|       avatar: '', | 
|       roles: [], | 
|       permissions: [] | 
|     }), | 
|     actions: { | 
|       // 登录 | 
|       login(userInfo) { | 
|         const username = userInfo.username.trim() | 
|         const password = userInfo.password | 
|         const code = userInfo.code | 
|         const uuid = userInfo.uuid | 
|         return new Promise((resolve, reject) => { | 
|           login(username, password, code, uuid).then(res => { | 
|             let data = res.data | 
|             setToken(data.access_token) | 
|             this.token = data.access_token | 
|             resolve() | 
|           }).catch(error => { | 
|             reject(error) | 
|           }) | 
|         }) | 
|       }, | 
|       // 获取用户信息 | 
|       getInfo() { | 
|         return new Promise((resolve, reject) => { | 
|           getInfo().then(res => { | 
|             const user = res.user | 
|             const avatar = (isEmpty(user.avatar)) ? defAva : user.avatar | 
|             if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组 | 
|               this.roles = res.roles | 
|               this.permissions = res.permissions | 
|             } else { | 
|               this.roles = ['ROLE_DEFAULT'] | 
|             } | 
|             this.id = user.userId | 
|             this.name = user.userName | 
|             this.avatar = avatar | 
|             resolve(res) | 
|           }).catch(error => { | 
|             reject(error) | 
|           }) | 
|         }) | 
|       }, | 
|       // 退出系统 | 
|       logOut() { | 
|         return new Promise((resolve, reject) => { | 
|           logout(this.token).then(() => { | 
|             this.token = '' | 
|             this.roles = [] | 
|             this.permissions = [] | 
|             removeToken() | 
|             resolve() | 
|           }).catch(error => { | 
|             reject(error) | 
|           }) | 
|         }) | 
|       } | 
|     } | 
|   }) | 
|   | 
| export default useUserStore |