From 71d88193614be257c59551ae67e315d1f64f40c5 Mon Sep 17 00:00:00 2001 From: tonytech Date: Tue, 3 Mar 2026 14:24:59 +0800 Subject: [PATCH] =?UTF-8?q?fix(frontend):=20=E4=BF=AE=E5=A4=8D=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E5=93=8D=E5=BA=94=E5=AD=97=E6=AE=B5=E6=98=A0=E5=B0=84?= =?UTF-8?q?=EF=BC=8C=E9=80=82=E9=85=8D=20Java=20=E5=90=8E=E7=AB=AF?= =?UTF-8?q?=E5=B9=B3=E9=93=BA=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- reading-platform-frontend/src/api/auth.ts | 15 ++++++--------- reading-platform-frontend/src/stores/user.ts | 15 +++++++++++---- 2 files changed, 17 insertions(+), 13 deletions(-) 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;