import { defineStore } from 'pinia'; import { login, getInfo } from '@/jtools/api/login'; import storage from '@/jtools/storage'; import { queryUserMember } from '@/jtools/api/user'; 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; this.searchVip() 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; this.searchVip() storage.set('userInfo', resp.data); } }); }, searchVip() { queryUserMember({ userId: this.userInfo.userId }).then(resp => { if (resp.code == '0000') { // this.vipInfo = resp.data; console.log(resp); } }); }, 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;