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

登录页面新样式
This commit is contained in:
笔记本里的永平
2025-07-18 15:56:12 +08:00
parent c611cb9e0c
commit a336d1173b
9 changed files with 1018 additions and 103 deletions

View File

@@ -1,23 +1,54 @@
import { createPersistStore } from '@/store/createPersistStore';
export interface User {
id?: string;
name: string;
phone: string;
role: string;
token: string;
token_expired?: string;
s2_accountId?: string;
avatar?: string;
email?: string;
}
interface UserState {
user: User | null;
isLoggedIn: boolean;
setUser: (user: User) => void;
clearUser: () => void;
login: (token: string, userInfo: any) => void;
logout: () => void;
}
export const useUserStore = createPersistStore<UserState>(
(set) => ({
user: null,
setUser: (user) => set({ user }),
clearUser: () => set({ user: null }),
isLoggedIn: false,
setUser: (user) => set({ user, isLoggedIn: true }),
clearUser: () => set({ user: null, isLoggedIn: false }),
login: (token, userInfo) => {
const user: User = {
id: userInfo.id,
name: userInfo.name || userInfo.nickname || 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,
};
set({ user, isLoggedIn: true });
},
logout: () => {
localStorage.removeItem('token');
localStorage.removeItem('token_expired');
localStorage.removeItem('s2_accountId');
localStorage.removeItem('userInfo');
set({ user: null, isLoggedIn: false });
},
}),
'user-store',
(state) => ({ user: state.user })
(state) => ({ user: state.user, isLoggedIn: state.isLoggedIn })
);