| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- 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;
- }
- }
- };
|