fix(frontend): 修复登录响应字段映射,适配 Java 后端平铺结构

This commit is contained in:
tonytech 2026-03-03 14:24:59 +08:00
parent 30677a7c02
commit 71d8819361
2 changed files with 17 additions and 13 deletions

View File

@ -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 {

View File

@ -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;