You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
jwl-applet/src/jtools/store/user.js

55 lines
1.4 KiB

2 years ago
import { defineStore } from 'pinia';
2 years ago
import { login,logout } from '@/jtools/api/login';
2 years ago
import constants from '@/jtools/constants';
import storage from '@/jtools/storage';
2 years ago
const useUserStore = defineStore({
2 years ago
id: 'user',
state: () => ({
token: storage.get('token'),
isLogin: storage.get('isLogin'), // 是否登陆
userInfo: storage.get('userInfo'), // 用户信息
}),
actions: {
2 years ago
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();
}
});
2 years ago
},
// 登出
2 years ago
logout(force = false) {
return new Promise((resolve, reject) => {
2 years ago
this.resetUserData();
2 years ago
uni.redirectTo({
url: '/pages/login/login'
})
resolve();
})
2 years ago
},
2 years ago
resetUserData() {
this.isLogin = false;
this.token = '';
this.userInfo = {}
storage.remove('isLogin')
storage.remove('token')
storage.remove('userInfo')
}
2 years ago
},
});
2 years ago
export default useUserStore;