fix(admin-web): 修复用户数据获取时 response.data undefined 问题

apiClient 响应拦截器已经解包了 response.data,service 和 hooks 层
不需要再次访问 .data 属性,否则会得到 undefined。

修复:
- useUsers/useUserDetail/useUserStats hooks 直接返回 service 结果
- userService 返回类型改为直接数据类型而非 ApiResponse 包装

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
hailin 2025-12-20 03:34:43 -08:00
parent d38e627a0a
commit f832a1bc74
2 changed files with 9 additions and 18 deletions

View File

@ -16,14 +16,12 @@ export const userKeys = {
/**
*
* apiClient response.data
*/
export function useUsers(params: UserListParams = {}) {
return useQuery({
queryKey: userKeys.list(params),
queryFn: async () => {
const response = await userService.getUsers(params);
return response.data;
},
queryFn: () => userService.getUsers(params),
staleTime: 30 * 1000, // 30秒后标记为过期
gcTime: 5 * 60 * 1000, // 5分钟后垃圾回收
});
@ -35,10 +33,7 @@ export function useUsers(params: UserListParams = {}) {
export function useUserDetail(id: string) {
return useQuery({
queryKey: userKeys.detail(id),
queryFn: async () => {
const response = await userService.getUserDetail(id);
return response.data;
},
queryFn: () => userService.getUserDetail(id),
enabled: !!id, // 只有在 id 存在时才查询
staleTime: 60 * 1000, // 1分钟后标记为过期
gcTime: 5 * 60 * 1000,
@ -51,10 +46,7 @@ export function useUserDetail(id: string) {
export function useUserStats() {
return useQuery({
queryKey: userKeys.stats(),
queryFn: async () => {
const response = await userService.getUserStats();
return response.data;
},
queryFn: () => userService.getUserStats(),
staleTime: 60 * 1000, // 1分钟后标记为过期
gcTime: 5 * 60 * 1000,
});

View File

@ -5,7 +5,6 @@
import apiClient from '@/infrastructure/api/client';
import { API_ENDPOINTS } from '@/infrastructure/api/endpoints';
import type { ApiResponse } from '@/types';
/** 用户列表项 */
export interface UserListItem {
@ -73,26 +72,27 @@ export interface UserListParams {
/**
*
* apiClient response.data
*/
export const userService = {
/**
*
*/
async getUsers(params: UserListParams = {}): Promise<ApiResponse<UserListResponse>> {
async getUsers(params: UserListParams = {}): Promise<UserListResponse> {
return apiClient.get(API_ENDPOINTS.USERS.LIST, { params });
},
/**
*
*/
async getUserDetail(id: string): Promise<ApiResponse<UserDetail>> {
async getUserDetail(id: string): Promise<UserDetail> {
return apiClient.get(API_ENDPOINTS.USERS.DETAIL(id));
},
/**
*
*/
async getUserStats(): Promise<ApiResponse<UserStats>> {
async getUserStats(): Promise<UserStats> {
return apiClient.get(API_ENDPOINTS.USERS.STATS);
},
@ -100,11 +100,10 @@ export const userService = {
*
*/
async exportUsers(params: UserListParams = {}): Promise<Blob> {
const response = await apiClient.get(API_ENDPOINTS.USERS.EXPORT, {
return apiClient.get(API_ENDPOINTS.USERS.EXPORT, {
params,
responseType: 'blob',
});
return response.data as unknown as Blob;
},
};