/** * @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> */ async getBannerList(): Promise> { const response = await api.get('/homepage/banner/list'); return response.data; }, /** * 点击轮播跳转新闻详情 * @param bannerID Banner ID * @returns Promise> */ async getBannerNewsDetail(bannerID: string): Promise> { const response = await api.get(`/homepage/banner/click/${bannerID}`); return response.data; }, /** * 获取活跃轮播列表 * @returns Promise> */ async getActiveBanners(): Promise> { const response = await api.get('/homepage/banner/active'); return response.data; }, /** * 获取TOP资源推荐列表 * @returns Promise> */ async getTopRecommendList(): Promise> { const response = await api.get('/homepage/recommend/top-list'); return response.data; }, /** * 后台调控展示顺序 * @param orderData 排序数据 * @returns Promise> */ async updateRecommendOrder(orderData: any): Promise> { const response = await api.put('/homepage/recommend/order', orderData); return response.data; }, /** * 获取高热度新闻 * @param limit 限制数量 * @returns Promise> */ async getHotNews(limit?: number): Promise> { const response = await api.get('/homepage/recommend/hot-news', { limit }); return response.data; }, /** * 获取思政新闻概览 * @param pageNum 页码 * @param pageSize 每页条数 * @returns Promise> */ async getNewsOverview(pageNum?: number, pageSize?: number): Promise> { const response = await api.get('/homepage/news/overview', { pageNum, pageSize }); return response.data; }, /** * 点击跳转二级详情页 * @param newsID 新闻ID * @returns Promise> */ async getNewsDetail(newsID: string): Promise> { const response = await api.get(`/homepage/news/detail/${newsID}`); return response.data; }, /** * 获取最新思政新闻 * @param limit 限制数量 * @returns Promise> */ async getLatestNews(limit?: number): Promise> { const response = await api.get('/homepage/news/latest', { limit }); return response.data; }, /** * 获取顶部菜单栏配置 * @returns Promise> */ async getTopMenuConfig(): Promise> { const response = await api.get('/homepage/menu/top-menu'); return response.data; }, /** * 后台修改菜单名称 * @param menuData 菜单数据 * @returns Promise> */ async updateMenuName(menuData: any): Promise> { const response = await api.put('/homepage/menu/update-name', menuData); return response.data; }, /** * 获取菜单项列表 * @returns Promise> */ async getMenuList(): Promise> { const response = await api.get('/homepage/menu/list'); return response.data; }, /** * 模糊检索资源 * @param keyword 关键词 * @returns Promise> */ async searchResources(keyword: string): Promise> { const response = await api.get('/homepage/search', { keyword }); return response.data; }, /** * 实时搜索建议 * @param keyword 关键词 * @returns Promise> */ async getSearchSuggestions(keyword: string): Promise> { const response = await api.get('/homepage/search/suggestions', { keyword }); return response.data; }, /** * 获取热门搜索词 * @returns Promise> */ async getHotKeywords(): Promise> { const response = await api.get('/homepage/search/hot-keywords'); return response.data; }, /** * 搜索新闻 * @param keyword 关键词 * @returns Promise> */ async searchNews(keyword: string): Promise> { const response = await api.get('/homepage/search/news', { keyword }); return response.data; }, /** * 搜索课程 * @param keyword 关键词 * @returns Promise> */ async searchCourses(keyword: string): Promise> { const response = await api.get('/homepage/search/courses', { keyword }); return response.data; }, /** * 获取首页统计数据 * @returns Promise> */ async getHomePageStatistics(): Promise> { const response = await api.get('/homepage/statistics'); return response.data; }, /** * 获取今日访问量 * @returns Promise> */ async getTodayVisits(): Promise> { const response = await api.get('/homepage/statistics/today-visits'); return response.data; }, /** * 获取资源总数 * @returns Promise> */ async getTotalResources(): Promise> { const response = await api.get('/homepage/statistics/total-resources'); return response.data; } };