import { defineStore } from 'pinia'; import { login,logout } from '@/jtools/api/login'; import constants from '@/jtools/constants'; import storage from '@/jtools/storage'; const useUserStore = defineStore({ id: 'user', state: () => ({ token: storage.get('token'), isLogin: storage.get('isLogin'), // 是否登陆 userInfo: storage.get('userInfo'), // 用户信息 }), actions: { login(params) { // commit('isLogin', true); return new Promise(async (resolve, reject) => { const resp = await login(params); if (resp.code === '0000') { // 保存登录信息,用于重新登录 this.isLogin = true; this.token = resp.data.token; this.userInfo = resp.data storage.set('isLogin', true) storage.set('token', resp.data.token) storage.set('userInfo', resp.data) resolve(resp.data); } else { reject(); } }); }, // 登出 logout(force = false) { return new Promise((resolve, reject) => { this.resetUserData(); uni.redirectTo({ url: '/pages/login/login' }) resolve(); }) }, resetUserData() { this.isLogin = false; this.token = ''; this.userInfo = {} storage.remove('isLogin') storage.remove('token') storage.remove('userInfo') } }, }); export default useUserStore;