统一使用index.ts中的全局axios配置 移除了所有重复的API_BASE_URL定义 简化了所有API调用路径格式 提高了代码一致性和可维护性 确保所有API功能保持正常
78 lines
1.5 KiB
TypeScript
78 lines
1.5 KiB
TypeScript
import axios from 'axios';
|
|
import type {
|
|
KnowInfo
|
|
} from '../../share/types.ts';
|
|
|
|
// 首页数据相关类型定义
|
|
interface HomeBannersResponse {
|
|
message: string;
|
|
data: KnowInfo[];
|
|
}
|
|
|
|
interface HomeNewsResponse {
|
|
message: string;
|
|
data: KnowInfo[];
|
|
pagination: {
|
|
total: number;
|
|
current: number;
|
|
pageSize: number;
|
|
totalPages: number;
|
|
};
|
|
}
|
|
|
|
interface HomeNoticesResponse {
|
|
message: string;
|
|
data: {
|
|
id: number;
|
|
title: string;
|
|
content: string;
|
|
created_at: string;
|
|
}[];
|
|
pagination: {
|
|
total: number;
|
|
current: number;
|
|
pageSize: number;
|
|
totalPages: number;
|
|
};
|
|
}
|
|
|
|
// 首页API
|
|
export const HomeAPI = {
|
|
// 获取轮播图
|
|
getBanners: async (): Promise<HomeBannersResponse> => {
|
|
try {
|
|
const response = await axios.get('/home/banners');
|
|
return response.data;
|
|
} catch (error) {
|
|
throw error;
|
|
}
|
|
},
|
|
|
|
// 获取新闻列表
|
|
getNews: async (params?: {
|
|
page?: number,
|
|
pageSize?: number,
|
|
category?: string
|
|
}): Promise<HomeNewsResponse> => {
|
|
try {
|
|
const response = await axios.get('/home/news', { params });
|
|
return response.data;
|
|
} catch (error) {
|
|
throw error;
|
|
}
|
|
},
|
|
|
|
// 获取通知列表
|
|
getNotices: async (params?: {
|
|
page?: number,
|
|
pageSize?: number
|
|
}): Promise<HomeNoticesResponse> => {
|
|
try {
|
|
const response = await axios.get('/home/notices', { params });
|
|
return response.data;
|
|
} catch (error) {
|
|
throw error;
|
|
}
|
|
}
|
|
};
|