diff --git a/reading-platform-frontend/src/api/auth.ts b/reading-platform-frontend/src/api/auth.ts index 9f2c983..9731491 100644 --- a/reading-platform-frontend/src/api/auth.ts +++ b/reading-platform-frontend/src/api/auth.ts @@ -6,17 +6,14 @@ export interface LoginParams { role: string; } +// Java 后端返回的平铺结构 export interface LoginResponse { token: string; - user: { - id: number; - name: string; - role: 'admin' | 'school' | 'teacher'; - tenantId?: number; - tenantName?: string; - email?: string; - phone?: string; - }; + userId: number; + username: string; + name: string; + role: 'admin' | 'school' | 'teacher' | 'parent'; + tenantId?: number; } export interface UserProfile { diff --git a/reading-platform-frontend/src/stores/user.ts b/reading-platform-frontend/src/stores/user.ts index fb0c6d9..59d5f22 100644 --- a/reading-platform-frontend/src/stores/user.ts +++ b/reading-platform-frontend/src/stores/user.ts @@ -30,17 +30,24 @@ export const useUserStore = defineStore('user', () => { async function login(account: string, password: string, role: string) { try { const data = await authApi.login({ account, password, role }); + // Java 后端返回平铺结构,转换为前端 User 对象 + const userObj: User = { + id: data.userId, + name: data.name, + role: data.role, + tenantId: data.tenantId, + }; token.value = data.token; - user.value = data.user; + user.value = userObj; localStorage.setItem('token', data.token); - localStorage.setItem('user', JSON.stringify(data.user)); - localStorage.setItem('role', data.user.role); + localStorage.setItem('user', JSON.stringify(userObj)); + localStorage.setItem('role', data.role); message.success('登录成功'); // 跳转到对应首页 - const defaultRoute = `/${data.user.role}/dashboard`; + const defaultRoute = `/${data.role}/dashboard`; router.push(defaultRoute); return data;