更新:1.课程详情增加骨架屏;2.图书首页和图书详情增加骨架屏;

This commit is contained in:
2025-12-11 16:13:40 +08:00
parent b3d9b0c100
commit b8dd0584aa
27 changed files with 897 additions and 649 deletions

View File

@@ -1,9 +1,8 @@
// api/modules/course.ts
import { createRequestClient } from '../request'
import { SERVICE_MAP } from '../config'
import { skeletonClient, mainClient } from '@/api/clients/index'
import type { IApiResponse } from '../types'
import type {
ICourseMedicalTreeResponse,
ICourseCategoryResponse,
IUserLateCourseListResponse,
IMarketCourseListResponse,
ICourseDetailResponse,
@@ -16,10 +15,6 @@ import type { ISearchRequest, ISearchResponse } from '@/types/search'
import type { ICommentListResponse, IAddCommentResponse, IComment } from '@/types/comment'
import { useUserStore } from '@/stores/user'
const client = createRequestClient({ baseURL: SERVICE_MAP.MAIN })
/**
* 课程相关API
*/
@@ -29,7 +24,7 @@ export const courseApi = {
* @returns 分类数据
*/
getCourseMedicalTree() {
return client.request<ICourseMedicalTreeResponse>({
return mainClient.request<ICourseCategoryResponse>({
url: 'medical/home/getCourseMedicalTree',
method: 'POST',
data: {}
@@ -41,7 +36,7 @@ export const courseApi = {
* @returns 观看记录列表
*/
getUserLateCourseList() {
return client.request<IUserLateCourseListResponse>({
return mainClient.request<IUserLateCourseListResponse>({
url: 'medical/home/getUserLateCourseList',
method: 'POST',
data: {}
@@ -61,7 +56,7 @@ export const courseApi = {
limit: number
}) {
const userStore = useUserStore()
return client.request<IMarketCourseListResponse>({
return mainClient.request<IMarketCourseListResponse>({
url: userStore.token ? 'medical/home/getMarketCourseList' : 'visitor/getMarketCourseList',
method: 'POST',
data
@@ -74,7 +69,7 @@ export const courseApi = {
* @returns 搜索结果
*/
searchData(data: ISearchRequest) {
return client.request<ISearchResponse>({
return mainClient.request<ISearchResponse>({
url: 'bookAbroad/home/searchCourse',
method: 'POST',
data
@@ -86,7 +81,7 @@ export const courseApi = {
* @param id 课程ID
*/
getCourseDetail(id: number) {
return client.request<ICourseDetailResponse>({
return skeletonClient.request<ICourseDetailResponse>({
url: 'sociology/course/getCourseDetail',
method: 'POST',
data: { id }
@@ -98,7 +93,7 @@ export const courseApi = {
* @param id 目录ID
*/
getCatalogueChapterList(id: number) {
return client.request<IChapterListResponse>({
return skeletonClient.request<IChapterListResponse>({
url: 'sociology/course/getCourseCatalogueChapterList',
method: 'POST',
data: { id }
@@ -110,7 +105,7 @@ export const courseApi = {
* @param id 章节ID
*/
getChapterDetail(id: number) {
return client.request<IChapterDetailResponse>({
return skeletonClient.request<IChapterDetailResponse>({
url: 'sociology/course/getCourseCatalogueChapterDetail',
method: 'POST',
data: { id, load: false }
@@ -122,7 +117,7 @@ export const courseApi = {
* @param catalogueId 目录ID
*/
startStudyForMF(catalogueId: number) {
return client.request<IApiResponse>({
return mainClient.request<IApiResponse>({
url: 'sociology/course/startStudyForMF',
method: 'POST',
data: { catalogueId }
@@ -134,7 +129,7 @@ export const courseApi = {
* @param id 目录ID
*/
getProductListForCourse(id: number) {
return client.request<IProductListResponse>({
return mainClient.request<IProductListResponse>({
url: 'sociology/product/getProductListForCourse',
method: 'POST',
data: { id }
@@ -146,7 +141,7 @@ export const courseApi = {
* @param courseCatalogueId 目录ID
*/
checkRenewPayment(courseCatalogueId: number) {
return client.request<IApiResponse<{ canRelearn: boolean }>>({
return skeletonClient.request<IApiResponse<{ canRelearn: boolean }>>({
url: 'common/courseRelearn/courseCatalogueCanRelearn',
method: 'POST',
data: { courseCatalogueId }
@@ -158,7 +153,7 @@ export const courseApi = {
* @param catalogueId 目录ID
*/
getRenewProductList(catalogueId: number) {
return client.request<IProductListResponse>({
return mainClient.request<IProductListResponse>({
url: 'common/courseRelearn/relearnShopProductList',
method: 'POST',
data: { catalogueId }
@@ -173,7 +168,7 @@ export const courseApi = {
* @param userId 用户ID
*/
getCourseComments(courseId: number, page: number, limit: number, userId: number) {
return client.request<ICommentListResponse>({
return mainClient.request<ICommentListResponse>({
url: 'common/courseGuestbook/getCourseGuestbookList',
method: 'POST',
data: { courseId, page, limit, userId, chapterId: '' }
@@ -194,7 +189,7 @@ export const courseApi = {
content: string
images: string
}) {
return client.request<IAddCommentResponse>({
return mainClient.request<IAddCommentResponse>({
url: 'common/courseGuestbook/addCourseGuestbook',
method: 'POST',
data
@@ -207,7 +202,7 @@ export const courseApi = {
* @param guestbookId 留言ID
*/
likeComment(userId: number, guestbookId: number) {
return client.request<IApiResponse>({
return mainClient.request<IApiResponse>({
url: 'common/courseGuestbook/addCourseGuestbookSupport',
method: 'POST',
data: { userId, guestbookId }
@@ -220,7 +215,7 @@ export const courseApi = {
* @param guestbookId 留言ID
*/
unlikeComment(userId: number, guestbookId: number) {
return client.request<IApiResponse>({
return mainClient.request<IApiResponse>({
url: 'common/courseGuestbook/cancelCourseGuestbookSupport',
method: 'POST',
data: { userId, guestbookId }
@@ -232,7 +227,7 @@ export const courseApi = {
* @param courseId 课程ID
*/
checkCourseVip(courseId: number) {
return client.request<IApiResponse<{ userVip: IVipInfo | null }>>({
return skeletonClient.request<IApiResponse<{ userVip: IVipInfo | null }>>({
url: 'common/userVip/ownCourseCatalogueByVip',
method: 'POST',
data: { courseId }
@@ -244,7 +239,7 @@ export const courseApi = {
* @param courseId 课程ID
*/
getCourseVipModule(courseId: number) {
return client.request<IApiResponse<{ list: string[] }>>({
return skeletonClient.request<IApiResponse<{ list: string[] }>>({
url: 'common/userVip/getCourseVipModule',
method: 'POST',
data: { courseId }