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.
85 lines
2.1 KiB
85 lines
2.1 KiB
![]()
1 month ago
|
import { defineStore } from 'pinia';
|
||
|
import { login, getInfo } from '@/jtools/api/login';
|
||
|
import storage from '@/jtools/storage';
|
||
|
|
||
|
const useUserStore = defineStore({
|
||
|
id: 'user',
|
||
|
state: () => ({
|
||
|
token: storage.get('token'),
|
||
|
isLogin: storage.get('isLogin'), // 是否登陆
|
||
|
userInfo: {}, // 用户信息
|
||
|
sellManId: '', // 分销人id
|
||
|
tabbarList: []
|
||
|
}),
|
||
|
|
||
|
actions: {
|
||
|
login(params) {
|
||
|
return new Promise(async (resolve, reject) => {
|
||
|
let newParams = { ...params };
|
||
|
if (this.sellManId) {
|
||
|
newParams = { ...params, distributionId: this.sellManId };
|
||
|
}
|
||
|
const resp = await login(newParams);
|
||
|
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.navigateTo({
|
||
|
url: '/pages/me/login'
|
||
|
});
|
||
|
resolve();
|
||
|
});
|
||
|
},
|
||
|
//过期登出
|
||
|
logoutWithoutToken(force = false) {
|
||
|
return new Promise((resolve, reject) => {
|
||
|
this.resetUserData();
|
||
|
resolve();
|
||
|
});
|
||
|
},
|
||
|
setSellManId(id) {
|
||
|
this.sellManId = id;
|
||
|
this.logout();
|
||
|
},
|
||
|
// 获取用户信息
|
||
|
getUserInfo() {
|
||
|
getInfo().then(resp => {
|
||
|
if (resp.code == '0000') {
|
||
|
this.userInfo = resp.data;
|
||
|
storage.set('userInfo', resp.data);
|
||
|
}
|
||
|
});
|
||
|
},
|
||
|
setUserInfo(info) {
|
||
|
this.userInfo = info;
|
||
|
},
|
||
|
resetUserData() {
|
||
|
this.isLogin = false;
|
||
|
this.token = '';
|
||
|
this.userInfo = {};
|
||
|
storage.remove('isLogin');
|
||
|
storage.remove('token');
|
||
|
storage.remove('userInfo');
|
||
|
},
|
||
|
setTabbarList(list) {
|
||
|
this.tabbarList = list;
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
export default useUserStore;
|