Files
jwl-applet/src/jtools/store/user.js

93 lines
2.6 KiB
JavaScript
Raw Normal View History

2023-08-12 22:15:27 +08:00
import { defineStore } from 'pinia';
2023-10-25 20:30:58 +08:00
import { login, logout, getInfo } from '@/jtools/api/login';
import { queryVip, getVipList } from '@/jtools/api/vip';
2023-08-12 22:15:27 +08:00
import constants from '@/jtools/constants';
import storage from '@/jtools/storage';
2023-08-19 00:52:53 +08:00
const useUserStore = defineStore({
2023-08-12 22:15:27 +08:00
id: 'user',
state: () => ({
token: storage.get('token'),
isLogin: storage.get('isLogin'), // 是否登陆
userInfo: storage.get('userInfo'), // 用户信息
2023-08-19 16:22:34 +08:00
currentCartype: storage.get('carType') || '1001',
vipOnList: [],
vipAllList: []
2023-08-12 22:15:27 +08:00
}),
actions: {
2023-10-25 20:30:58 +08:00
login(params) {
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);
storage.remove('companyId');
resolve(resp.data);
} else {
reject();
}
});
},
2023-08-12 22:15:27 +08:00
// 登出
2023-08-19 00:52:53 +08:00
logout(force = false) {
return new Promise((resolve, reject) => {
2023-08-12 22:15:27 +08:00
this.resetUserData();
2023-08-19 00:52:53 +08:00
uni.redirectTo({
url: '/pages/login/login'
2023-10-25 20:30:58 +08:00
});
2023-08-19 00:52:53 +08:00
resolve();
2023-10-25 20:30:58 +08:00
});
},
//过期登出
logoutWithoutToken(force = false) {
return new Promise((resolve, reject) => {
this.resetUserData();
resolve();
});
2023-08-12 22:15:27 +08:00
},
2023-08-19 16:22:34 +08:00
// 获取用户信息
getUserInfo() {
getInfo().then(resp => {
2023-10-25 20:30:58 +08:00
if (resp.code == '0000') {
this.userInfo = resp.data;
storage.set('userInfo', resp.data);
2023-08-19 16:22:34 +08:00
}
2023-10-25 20:30:58 +08:00
});
2023-08-19 16:22:34 +08:00
},
2023-08-19 00:52:53 +08:00
resetUserData() {
this.isLogin = false;
this.token = '';
2023-10-25 20:30:58 +08:00
this.userInfo = {};
this.vipOnList = [];
storage.remove('isLogin');
storage.remove('token');
storage.remove('userInfo');
2023-08-19 16:22:34 +08:00
},
// 查询当前用户的vip开通情况
2023-08-22 17:27:54 +08:00
async searchUserVip() {
2023-10-25 20:30:58 +08:00
this.currentCartype = storage.get('carType') || '1001';
const resp = await queryVip({ carTypeId: this.currentCartype, memberId: null, subject: '' });
if (resp.code == '0000') {
this.vipOnList = resp.data;
}
2023-08-19 16:22:34 +08:00
},
// 查询所有的vip
queryVipList() {
2023-10-25 20:30:58 +08:00
this.currentCartype = storage.get('carType') || '1001';
getVipList({ carTypeId: this.currentCartype, memberId: null, subject: '' }).then(resp => {
if (resp.code == '0000') {
this.vipAllList = resp.data;
2023-08-19 16:22:34 +08:00
}
2023-10-25 20:30:58 +08:00
});
2023-08-19 00:52:53 +08:00
}
2023-10-25 20:30:58 +08:00
}
2023-08-12 22:15:27 +08:00
});
2023-08-19 00:52:53 +08:00
export default useUserStore;