From ee1338f9c3212cfedd7463402da07c10d13930ca Mon Sep 17 00:00:00 2001 From: Lxy Date: Thu, 2 Jul 2026 00:22:42 +0800 Subject: [PATCH] fix: correct getInfo response parsing for RuoYi backend format - RuoYi /getInfo returns user/roles/permissions at top level, not nested in data - Support both formats: {data:{user,roles,permissions}} and {user,roles,permissions} - This fixes the silent exception in navigation guard that redirected back to login --- ruoyi-ui-next/src/stores/modules/user.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/ruoyi-ui-next/src/stores/modules/user.ts b/ruoyi-ui-next/src/stores/modules/user.ts index 1da5150..5bdfbee 100644 --- a/ruoyi-ui-next/src/stores/modules/user.ts +++ b/ruoyi-ui-next/src/stores/modules/user.ts @@ -111,14 +111,19 @@ export const useUserStore = defineStore('user', () => { async function getInfo() { const res = await apiClient.get('/getInfo') + // 兼容两种返回结构: + // 1. { data: { user, roles, permissions } } + // 2. { user, roles, permissions }(RuoYi 后端 /getInfo 实际格式) const data = res.data || {} - const user = data.user + const user = data.user || res.user + const rolesData = data.roles || res.roles || [] + const permissionsData = data.permissions || res.permissions || [] if (!user) { throw new Error('获取用户信息失败') } userInfo.value = user - roles.value = user.roles || data.roles || [] - permissions.value = user.permissions || data.permissions || [] + roles.value = user.roles || rolesData + permissions.value = user.permissions || permissionsData return res }