diff --git a/api/modules/user.ts b/api/modules/user.ts index 31174d3..0b1fbd8 100644 --- a/api/modules/user.ts +++ b/api/modules/user.ts @@ -11,9 +11,6 @@ import type { IPageData } from '@/types/user' import { SERVICE_MAP } from '@/api/config' -import { useUserStore } from '@/stores/user' - -const userStore = useUserStore() /** * 获取用户信息 @@ -46,7 +43,7 @@ export async function getOrderList(current: number, limit: number, orderStatus: const res = await mainClient.request }>>({ url: 'common/buyOrder/commonBuyOrderList', method: 'POST', - data: { current, limit, orderStatus, come: '10', userId: userStore.id } + data: { current, limit, orderStatus, come: '10', userId: uni.getStorageSync('userInfo').id } }) return res } diff --git a/api/modules/video.ts b/api/modules/video.ts new file mode 100644 index 0000000..a6a284e --- /dev/null +++ b/api/modules/video.ts @@ -0,0 +1,68 @@ +// api/modules/video.ts +/** + * 视频相关 API + * 完全保持原项目接口路径和调用方式 + */ + +import { createRequestClient } from '../request' +import { SERVICE_MAP } from '../config' +import type { + ICheckVideoRequest, + ICheckVideoResponse, + ISaveCoursePositionRequest, + ISaveCoursePositionResponse, + IAddErrorCourseRequest, + IAddErrorCourseResponse +} from '@/types/video' + +const client = createRequestClient({ baseURL: SERVICE_MAP.MAIN }) + +/** + * 视频相关 API + */ +export const videoApi = { + /** + * 检查视频并获取播放凭证 + * 原接口: sociology/course/checkVideo + * + * @param data 视频信息(id, video, courseId, catalogueId, chapterId 等) + * @returns 视频详细信息,包含 playAuth, videoId, m3u8Url, videoUrl 等 + */ + checkVideo(data: ICheckVideoRequest) { + return client.request({ + url: 'sociology/course/checkVideo', + method: 'POST', + data + }) + }, + + /** + * 保存课程播放位置 + * 原接口: sociology/course/saveCoursePosition + * + * @param data 包含 videoId 和 position(秒数) + * @returns 保存结果 + */ + saveCoursePosition(data: ISaveCoursePositionRequest) { + return client.request({ + url: 'sociology/course/saveCoursePosition', + method: 'POST', + data + }) + }, + + /** + * 记录 iOS 不支持的视频 + * 原接口: medical/course/addErrorCourse + * + * @param data 包含 chapterId, videoId, sort + * @returns 记录结果 + */ + addErrorCourse(data: IAddErrorCourseRequest) { + return client.request({ + url: 'medical/course/addErrorCourse', + method: 'POST', + data + }) + } +} diff --git a/components/ali-video/PopupPlayer.vue b/components/ali-video/PopupPlayer.vue new file mode 100644 index 0000000..c67f708 --- /dev/null +++ b/components/ali-video/PopupPlayer.vue @@ -0,0 +1,295 @@ + + + + + + + diff --git a/components/ali-video/VideoList.vue b/components/ali-video/VideoList.vue new file mode 100644 index 0000000..6666325 --- /dev/null +++ b/components/ali-video/VideoList.vue @@ -0,0 +1,123 @@ + + + + + diff --git a/components/ali-video/index.vue b/components/ali-video/index.vue new file mode 100644 index 0000000..a89c7d3 --- /dev/null +++ b/components/ali-video/index.vue @@ -0,0 +1,1015 @@ + + + + + + + + diff --git a/components/course/VideoPlayer.vue b/components/course/VideoPlayer.vue index fc17685..d14fb91 100644 --- a/components/course/VideoPlayer.vue +++ b/components/course/VideoPlayer.vue @@ -1,242 +1,394 @@ - - - diff --git a/pages/course/details/chapter.vue b/pages/course/details/chapter.vue index d529689..41d8299 100644 --- a/pages/course/details/chapter.vue +++ b/pages/course/details/chapter.vue @@ -7,7 +7,7 @@ - --> + @@ -107,10 +113,11 @@