Files
d8d-admin-mobile-starter-pu…/client/mobile/api/home.ts
yourname 1df9f7fea2 创建了api目录并拆分为10个功能模块文件
建立了index.ts统一导出
精简了原api.ts文件
2025-05-13 09:00:58 +00:00

80 lines
1.6 KiB
TypeScript

import axios from 'axios';
import type {
KnowInfo
} from '../../share/types.ts';
const API_BASE_URL = '/api';
// 首页数据相关类型定义
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(`${API_BASE_URL}/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(`${API_BASE_URL}/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(`${API_BASE_URL}/home/notices`, { params });
return response.data;
} catch (error) {
throw error;
}
}
};