import { defineStore } from "pinia"; import config from '@/config' import storage from '@/utils/storage' import constant from '@/utils/constant' import { login, logout, getInfo } from '@/api/login' import { getToken, setToken, removeToken } from '@/utils/auth' const baseUrl = config.baseUrl const useUserStore = defineStore('user', { state: () => ({ token: getToken(), name: storage.get(constant.name), avatar: storage.get(constant.avatar), roles: storage.get(constant.roles), permissions: storage.get(constant.permissions) }), actions: { // 登录 Login(userInfo) { const clientType = "wx_app" const code = "" const loginName = userInfo.username.trim() const password = userInfo.password const pointJson = userInfo.pointJson return new Promise((resolve, reject) => { login(loginName, password, code, clientType, pointJson).then(res => { console.log(res) setToken(res.satoken) this.token = res.satoken this.name = res.mercName storage.set(constant.name, res.mercName) resolve(res) }).catch(error => { reject(error) }) }) }, // 获取用户信息 GetInfo() { return new Promise((resolve, reject) => { getInfo().then(res => { const user = res.user const avatar = (user == null || user.avatar == "" || user.avatar == null) ? '' : baseUrl + user.avatar const username = (user == null || user.userName == "" || user.userName == null) ? "" : user.userName if (res.roles && res.roles.length > 0) { this.roles = res.roles storage.set(constant.roles, res.roles) this.permissions = res.permissions storage.set(constant.permissions, res.permissions) } else { this.roles = ['ROLE_DEFAULT'] storage.set(constant.roles, ['ROLE_DEFAULT']) } resolve(res) }).catch(error => { reject(error) }) }) }, // 退出系统 LogOut() { return new Promise((resolve, reject) => { this.roles = '' storage.set(constant.roles, '') this.permissions = '' storage.set(constant.permissions, '') this.permissions = res.permissions storage.set(constant.permissions, res.permissions) removeToken() storage.clean() resolve('退出登录成功~') }) } } }) export default useUserStore