Files
schoolNews/schoolNewsWeb/src/apis/homepage/index.ts

209 lines
5.7 KiB
TypeScript
Raw Normal View History

2025-10-16 10:31:32 +08:00
/**
* @description API
* @author system
* @since 2025-10-15
*/
import { api } from '@/apis/index';
import type { Resource, Banner, ResultDomain } from '@/types';
/**
* API服务
*/
export const homepageApi = {
/**
*
* @returns Promise<ResultDomain<Banner>>
*/
async getBannerList(): Promise<ResultDomain<Banner>> {
const response = await api.get<Banner>('/homepage/banner/list');
return response.data;
},
/**
*
* @param bannerID Banner ID
* @returns Promise<ResultDomain<Resource>>
*/
async getBannerNewsDetail(bannerID: string): Promise<ResultDomain<Resource>> {
const response = await api.get<Resource>(`/homepage/banner/click/${bannerID}`);
return response.data;
},
/**
*
* @returns Promise<ResultDomain<Banner>>
*/
async getActiveBanners(): Promise<ResultDomain<Banner>> {
const response = await api.get<Banner>('/homepage/banner/active');
return response.data;
},
/**
* TOP资源推荐列表
* @returns Promise<ResultDomain<Resource>>
*/
async getTopRecommendList(): Promise<ResultDomain<Resource>> {
const response = await api.get<Resource>('/homepage/recommend/top-list');
return response.data;
},
/**
*
* @param orderData
* @returns Promise<ResultDomain<boolean>>
*/
async updateRecommendOrder(orderData: any): Promise<ResultDomain<boolean>> {
const response = await api.put<boolean>('/homepage/recommend/order', orderData);
return response.data;
},
/**
*
* @param limit
* @returns Promise<ResultDomain<Resource>>
*/
async getHotNews(limit?: number): Promise<ResultDomain<Resource>> {
const response = await api.get<Resource>('/homepage/recommend/hot-news', { limit });
return response.data;
},
/**
*
* @param pageNum
* @param pageSize
* @returns Promise<ResultDomain<Resource>>
*/
async getNewsOverview(pageNum?: number, pageSize?: number): Promise<ResultDomain<Resource>> {
const response = await api.get<Resource>('/homepage/news/overview', {
pageNum,
pageSize
});
return response.data;
},
/**
*
* @param newsID ID
* @returns Promise<ResultDomain<Resource>>
*/
async getNewsDetail(newsID: string): Promise<ResultDomain<Resource>> {
const response = await api.get<Resource>(`/homepage/news/detail/${newsID}`);
return response.data;
},
/**
*
* @param limit
* @returns Promise<ResultDomain<Resource>>
*/
async getLatestNews(limit?: number): Promise<ResultDomain<Resource>> {
const response = await api.get<Resource>('/homepage/news/latest', { limit });
return response.data;
},
/**
*
* @returns Promise<ResultDomain<any>>
*/
async getTopMenuConfig(): Promise<ResultDomain<any>> {
const response = await api.get<any>('/homepage/menu/top-menu');
return response.data;
},
/**
*
* @param menuData
* @returns Promise<ResultDomain<boolean>>
*/
async updateMenuName(menuData: any): Promise<ResultDomain<boolean>> {
const response = await api.put<boolean>('/homepage/menu/update-name', menuData);
return response.data;
},
/**
*
* @returns Promise<ResultDomain<any>>
*/
async getMenuList(): Promise<ResultDomain<any>> {
const response = await api.get<any>('/homepage/menu/list');
return response.data;
},
/**
*
* @param keyword
* @returns Promise<ResultDomain<Resource>>
*/
async searchResources(keyword: string): Promise<ResultDomain<Resource>> {
const response = await api.get<Resource>('/homepage/search', { keyword });
return response.data;
},
/**
*
* @param keyword
* @returns Promise<ResultDomain<any>>
*/
async getSearchSuggestions(keyword: string): Promise<ResultDomain<any>> {
const response = await api.get<any>('/homepage/search/suggestions', { keyword });
return response.data;
},
/**
*
* @returns Promise<ResultDomain<any>>
*/
async getHotKeywords(): Promise<ResultDomain<any>> {
const response = await api.get<any>('/homepage/search/hot-keywords');
return response.data;
},
/**
*
* @param keyword
* @returns Promise<ResultDomain<Resource>>
*/
async searchNews(keyword: string): Promise<ResultDomain<Resource>> {
const response = await api.get<Resource>('/homepage/search/news', { keyword });
return response.data;
},
/**
*
* @param keyword
* @returns Promise<ResultDomain<any>>
*/
async searchCourses(keyword: string): Promise<ResultDomain<any>> {
const response = await api.get<any>('/homepage/search/courses', { keyword });
return response.data;
},
/**
*
* @returns Promise<ResultDomain<any>>
*/
async getHomePageStatistics(): Promise<ResultDomain<any>> {
const response = await api.get<any>('/homepage/statistics');
return response.data;
},
/**
* 访
* @returns Promise<ResultDomain<any>>
*/
async getTodayVisits(): Promise<ResultDomain<any>> {
const response = await api.get<any>('/homepage/statistics/today-visits');
return response.data;
},
/**
*
* @returns Promise<ResultDomain<any>>
*/
async getTotalResources(): Promise<ResultDomain<any>> {
const response = await api.get<any>('/homepage/statistics/total-resources');
return response.data;
}
};