feat: 本次提交更新内容如下

登录页面算是完成了
This commit is contained in:
笔记本里的永平
2025-07-18 17:23:25 +08:00
parent 20a254f957
commit 4ce3036c42
4 changed files with 90 additions and 98 deletions

View File

@@ -1,54 +1,74 @@
import { createPersistStore } from '@/store/createPersistStore';
export interface User {
id?: string;
name: string;
id: number;
account: string;
username: string;
phone: string;
role: string;
token: string;
token_expired?: string;
s2_accountId?: string;
avatar?: string;
email?: string;
avatar: string;
isAdmin: number;
companyId: number;
typeId: number;
status: number;
s2_accountId: string;
createTime: string;
updateTime: string | null;
lastLoginIp: string;
lastLoginTime: number;
}
interface UserState {
user: User | null;
token: string | null;
isLoggedIn: boolean;
setUser: (user: User) => void;
setToken: (token: string) => void;
clearUser: () => void;
login: (token: string, userInfo: any) => void;
login: (token: string, userInfo: User) => void;
logout: () => void;
}
export const useUserStore = createPersistStore<UserState>(
(set) => ({
user: null,
token: null,
isLoggedIn: false,
setUser: (user) => set({ user, isLoggedIn: true }),
clearUser: () => set({ user: null, isLoggedIn: false }),
setToken: (token) => set({ token }),
clearUser: () => set({ user: null, token: null, isLoggedIn: false }),
login: (token, userInfo) => {
// 只将token存储到localStorage
localStorage.setItem('token', token);
// 用户信息存储在状态管理中
const user: User = {
id: userInfo.id,
name: userInfo.name || userInfo.nickname || userInfo.username,
account: userInfo.account,
username: userInfo.username,
phone: userInfo.phone,
role: userInfo.role || 'user',
token,
token_expired: userInfo.token_expired,
s2_accountId: userInfo.s2_accountId,
avatar: userInfo.avatar,
email: userInfo.email,
isAdmin: userInfo.isAdmin,
companyId: userInfo.companyId,
typeId: userInfo.typeId,
status: userInfo.status,
s2_accountId: userInfo.s2_accountId,
createTime: userInfo.createTime,
updateTime: userInfo.updateTime,
lastLoginIp: userInfo.lastLoginIp,
lastLoginTime: userInfo.lastLoginTime,
};
set({ user, isLoggedIn: true });
set({ user, token, isLoggedIn: true });
},
logout: () => {
// 清除localStorage中的token
localStorage.removeItem('token');
localStorage.removeItem('token_expired');
localStorage.removeItem('s2_accountId');
localStorage.removeItem('userInfo');
set({ user: null, isLoggedIn: false });
set({ user: null, token: null, isLoggedIn: false });
},
}),
'user-store',
(state) => ({ user: state.user, isLoggedIn: state.isLoggedIn })
(state) => ({
user: state.user,
token: state.token,
isLoggedIn: state.isLoggedIn
})
);