diff --git a/api/modules/course.ts b/api/modules/course.ts index 8b50f79..b947717 100644 --- a/api/modules/course.ts +++ b/api/modules/course.ts @@ -1,12 +1,19 @@ // api/modules/course.ts import { createRequestClient } from '../request' import { SERVICE_MAP } from '../config' +import type { IApiResponse } from '../types' import type { ICourseMedicalTreeResponse, IUserLateCourseListResponse, - IMarketCourseListResponse + IMarketCourseListResponse, + ICourseDetailResponse, + IChapterListResponse, + IChapterDetailResponse, + IProductListResponse, + IVipInfo } from '@/types/course' import type { ISearchRequest, ISearchResponse } from '@/types/search' +import type { ICommentListResponse, IAddCommentResponse, IComment } from '@/types/comment' const client = createRequestClient({ baseURL: SERVICE_MAP.MAIN }) @@ -64,5 +71,175 @@ export const courseApi = { method: 'POST', data }) + }, + + /** + * 获取课程详情 + * @param id 课程ID + */ + getCourseDetail(id: number) { + return client.request({ + url: 'sociology/course/getCourseDetail', + method: 'POST', + data: { id } + }) + }, + + /** + * 获取目录章节列表 + * @param id 目录ID + */ + getCatalogueChapterList(id: number) { + return client.request({ + url: 'sociology/course/getCourseCatalogueChapterList', + method: 'POST', + data: { id } + }) + }, + + /** + * 获取章节详情 + * @param id 章节ID + */ + getChapterDetail(id: number) { + return client.request({ + url: 'sociology/course/getCourseCatalogueChapterDetail', + method: 'POST', + data: { id, load: false } + }) + }, + + /** + * 开始学习免费课程 + * @param catalogueId 目录ID + */ + startStudyForMF(catalogueId: number) { + return client.request({ + url: 'sociology/course/startStudyForMF', + method: 'POST', + data: { catalogueId } + }) + }, + + /** + * 获取课程商品列表 + * @param id 目录ID + */ + getProductListForCourse(id: number) { + return client.request({ + url: 'sociology/product/getProductListForCourse', + method: 'POST', + data: { id } + }) + }, + + /** + * 检查目录是否支持复读 + * @param courseCatalogueId 目录ID + */ + checkRenewPayment(courseCatalogueId: number) { + return client.request>({ + url: 'common/courseRelearn/courseCatalogueCanRelearn', + method: 'POST', + data: { courseCatalogueId } + }) + }, + + /** + * 获取复读商品列表 + * @param catalogueId 目录ID + */ + getRenewProductList(catalogueId: number) { + return client.request({ + url: 'common/courseRelearn/relearnShopProductList', + method: 'POST', + data: { catalogueId } + }) + }, + + /** + * 获取课程留言列表 + * @param courseId 课程ID + * @param page 页码 + * @param limit 每页数量 + * @param userId 用户ID + */ + getCourseComments(courseId: number, page: number, limit: number, userId: number) { + return client.request({ + url: 'common/courseGuestbook/getCourseGuestbookList', + method: 'POST', + data: { courseId, page, limit, userId, chapterId: '' } + }) + }, + + /** + * 添加课程留言 + * @param data 留言数据 + */ + addCourseComment(data: { + type: number + courseId: number + chapterId: string + pid: number + userId: number + forUserId: number + content: string + images: string + }) { + return client.request({ + url: 'common/courseGuestbook/addCourseGuestbook', + method: 'POST', + data + }) + }, + + /** + * 点赞留言 + * @param userId 用户ID + * @param guestbookId 留言ID + */ + likeComment(userId: number, guestbookId: number) { + return client.request({ + url: 'common/courseGuestbook/addCourseGuestbookSupport', + method: 'POST', + data: { userId, guestbookId } + }) + }, + + /** + * 取消点赞 + * @param userId 用户ID + * @param guestbookId 留言ID + */ + unlikeComment(userId: number, guestbookId: number) { + return client.request({ + url: 'common/courseGuestbook/cancelCourseGuestbookSupport', + method: 'POST', + data: { userId, guestbookId } + }) + }, + + /** + * 检查用户VIP权益 + * @param courseId 课程ID + */ + checkCourseVip(courseId: number) { + return client.request>({ + url: 'common/userVip/ownCourseCatalogueByVip', + method: 'POST', + data: { courseId } + }) + }, + + /** + * 获取课程需要的VIP类型 + * @param courseId 课程ID + */ + getCourseVipModule(courseId: number) { + return client.request>({ + url: 'common/userVip/getCourseVipModule', + method: 'POST', + data: { courseId } + }) } } diff --git a/components/bkhumor-emojiplus/index.vue b/components/bkhumor-emojiplus/index.vue index 1d260a3..8292b97 100644 --- a/components/bkhumor-emojiplus/index.vue +++ b/components/bkhumor-emojiplus/index.vue @@ -1,7 +1,13 @@