登录页面调整

This commit is contained in:
2024-03-15 14:02:39 +08:00
parent 43b5ea640e
commit 3ce85e2396
8 changed files with 103 additions and 150 deletions

View File

@@ -1,8 +1,8 @@
import { defineStore } from 'pinia';
import type { providerType, UserState } from './types';
import { getUserProfile, login as userLogin, login, logout as userLogout } from '@/api/user/index';
import { getUserProfile, login, logout as userLogout, register } from '@/api/user/index';
import { clearToken, setCompanyId, setToken } from '@/utils/auth';
import type { LoginParams } from '@/api/user/types';
import type { RegisterParams } from '@/api/user/types';
const useUserStore = defineStore('user', {
state: (): UserState => <UserState>({
@@ -37,6 +37,7 @@ const useUserStore = defineStore('user', {
return { ...state };
}
},
actions: {
// 设置用户的信息
setUserInfo(partial: Partial<UserState>) {
@@ -51,27 +52,25 @@ const useUserStore = defineStore('user', {
const result = await getUserProfile();
this.setUserInfo(result);
},
// 异步登录并存储token
login(loginForm: LoginParams) {
userRegister(registerForm: RegisterParams) {
return new Promise(async (resolve, reject) => {
try {
const result = await userLogin(loginForm);
const token = result?.token;
if(token) {
setToken(token);
}
const result = await register(registerForm);
resolve(result);
} catch (error) {
reject(error);
}
});
},
// Logout
async logout() {
await userLogout();
this.resetInfo();
clearToken();
},
// 小程序授权登录
authLogin(provider: providerType = 'weixin') {
return new Promise((resolve, reject) => {
@@ -91,9 +90,25 @@ const useUserStore = defineStore('user', {
const res = await login({
code: result.code,
userInfo: userInfo,
referrerUserId: '1727303781559697409'
referrerUserId: '1731886841265598466'
});
if(res.user == undefined || res.user.id === null) {
const registerForm = {
unionId: res.user.unionId,
openId: res.user.openId,
maOpenId: res.user.maOpenId,
image: res.user.image,
nickName: res.user.nickName,
telephone: res.user.telephone,
birthday: res.user.birthday,
companyId: res.user.companyId,
creatorId: res.user.creatorId,
gender: res.user.gender
};
await this.userRegister(registerForm);
}
this.setUserInfo(res.user);
setToken(res.token);
setCompanyId(res.user.companyId);