web-学习
This commit is contained in:
@@ -17,7 +17,7 @@ export const learningRecordApi = {
|
||||
* @returns Promise<ResultDomain<LearningRecord>>
|
||||
*/
|
||||
async getRecordList(filter?: Partial<LearningRecord>): Promise<ResultDomain<LearningRecord>> {
|
||||
const response = await api.get<LearningRecord>('/study/learning-record/list', filter);
|
||||
const response = await api.post<LearningRecord>('/study/records/list', filter);
|
||||
return response.data;
|
||||
},
|
||||
|
||||
@@ -27,45 +27,51 @@ export const learningRecordApi = {
|
||||
* @returns Promise<ResultDomain<LearningRecord>>
|
||||
*/
|
||||
async createRecord(record: LearningRecord): Promise<ResultDomain<LearningRecord>> {
|
||||
const response = await api.post<LearningRecord>('/study/learning-record/create', record);
|
||||
const response = await api.post<LearningRecord>('/study/records/record', record);
|
||||
return response.data;
|
||||
},
|
||||
|
||||
/**
|
||||
* 更新学习记录
|
||||
* 更新学习记录(禁用 loading 动画,避免影响视频播放)
|
||||
* @param record 记录数据
|
||||
* @returns Promise<ResultDomain<LearningRecord>>
|
||||
*/
|
||||
async updateRecord(record: LearningRecord): Promise<ResultDomain<LearningRecord>> {
|
||||
const response = await api.put<LearningRecord>('/study/learning-record/update', record);
|
||||
async updateRecord(record: Partial<LearningRecord>): Promise<ResultDomain<LearningRecord>> {
|
||||
const response = await api.put<LearningRecord>('/study/records/record', record, {
|
||||
showLoading: false // 禁用 loading 动画
|
||||
} as any);
|
||||
return response.data;
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取用户学习统计
|
||||
* @param userID 用户ID
|
||||
* @param timeRange 时间范围
|
||||
* @returns Promise<ResultDomain<LearningRecordStatistics>>
|
||||
* 删除学习记录
|
||||
* @param recordId 记录ID
|
||||
* @returns Promise<ResultDomain<boolean>>
|
||||
*/
|
||||
async getUserLearningStatistics(userID: string, timeRange?: string): Promise<ResultDomain<LearningRecordStatistics>> {
|
||||
const response = await api.get<LearningRecordStatistics>('/study/learning-record/statistics', {
|
||||
userID,
|
||||
timeRange
|
||||
});
|
||||
async deleteRecord(recordId: string): Promise<ResultDomain<boolean>> {
|
||||
const response = await api.delete<boolean>('/study/records/record', { ID: recordId });
|
||||
return response.data;
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取学习时长图表数据
|
||||
* @param userID 用户ID
|
||||
* @param timeRange 时间范围
|
||||
* @returns Promise<ResultDomain<LearningRecordStatistics>>
|
||||
* 标记学习完成(禁用 loading 动画,避免影响视频播放)
|
||||
* @param record 记录数据
|
||||
* @returns Promise<ResultDomain<LearningRecord>>
|
||||
*/
|
||||
async getLearningDurationChart(userID: string, timeRange?: string): Promise<ResultDomain<LearningRecordStatistics>> {
|
||||
const response = await api.get<LearningRecordStatistics>('/study/learning-record/duration-chart', {
|
||||
userID,
|
||||
timeRange
|
||||
});
|
||||
async markComplete(record: Partial<LearningRecord>): Promise<ResultDomain<LearningRecord>> {
|
||||
const response = await api.put<LearningRecord>('/study/records/complete', record, {
|
||||
showLoading: false // 禁用 loading 动画
|
||||
} as any);
|
||||
return response.data;
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 查询用户课程的学习记录
|
||||
* @param filter 过滤条件(包含 userID 和 resourceID)
|
||||
* @returns Promise<ResultDomain<LearningRecord>>
|
||||
*/
|
||||
async getCourseLearningRecord(filter: Partial<LearningRecord>): Promise<ResultDomain<LearningRecord>> {
|
||||
const response = await api.post<LearningRecord>('/study/records/course/records', filter);
|
||||
return response.data;
|
||||
},
|
||||
};
|
||||
|
||||
@@ -32,6 +32,16 @@ export const learningTaskApi = {
|
||||
return response.data;
|
||||
},
|
||||
|
||||
/**
|
||||
* 根据ID获取用户任务详情
|
||||
* @param taskID 任务ID
|
||||
* @returns Promise<ResultDomain<TaskVO>>
|
||||
*/
|
||||
async getUserTask(taskID: string): Promise<ResultDomain<TaskVO>> {
|
||||
const response = await api.get<TaskVO>(`${this.learningTaskPrefix}/${taskID}/user`);
|
||||
return response.data;
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取任务分页列表
|
||||
* @param pageParam 分页参数
|
||||
|
||||
@@ -11,6 +11,7 @@ import type { UserCollection, ResultDomain } from '@/types';
|
||||
* 用户收藏API服务
|
||||
*/
|
||||
export const userCollectionApi = {
|
||||
baseUrl: '/usercenter/collections',
|
||||
/**
|
||||
* 获取用户收藏列表
|
||||
* @param userID 用户ID
|
||||
@@ -18,7 +19,7 @@ export const userCollectionApi = {
|
||||
* @returns Promise<ResultDomain<UserCollection>>
|
||||
*/
|
||||
async getUserCollections(userID: string, collectionType?: number): Promise<ResultDomain<UserCollection>> {
|
||||
const response = await api.get<UserCollection>('/usercenter/collection/list', {
|
||||
const response = await api.get<UserCollection>(`${this.baseUrl}/list`, {
|
||||
userID,
|
||||
collectionType
|
||||
});
|
||||
@@ -31,7 +32,7 @@ export const userCollectionApi = {
|
||||
* @returns Promise<ResultDomain<UserCollection>>
|
||||
*/
|
||||
async addCollection(collection: UserCollection): Promise<ResultDomain<UserCollection>> {
|
||||
const response = await api.post<UserCollection>('/usercenter/collection/add', collection);
|
||||
const response = await api.post<UserCollection>(`${this.baseUrl}/collect`, collection);
|
||||
return response.data;
|
||||
},
|
||||
|
||||
@@ -43,7 +44,7 @@ export const userCollectionApi = {
|
||||
* @returns Promise<ResultDomain<boolean>>
|
||||
*/
|
||||
async removeCollection(userID: string, collectionType: number, collectionID: string): Promise<ResultDomain<boolean>> {
|
||||
const response = await api.delete<boolean>('/usercenter/collection/remove', {
|
||||
const response = await api.delete<boolean>(`${this.baseUrl}/collect`, {
|
||||
userID,
|
||||
collectionType,
|
||||
collectionID
|
||||
@@ -58,9 +59,8 @@ export const userCollectionApi = {
|
||||
* @param collectionID 收藏对象ID
|
||||
* @returns Promise<ResultDomain<boolean>>
|
||||
*/
|
||||
async isCollected(userID: string, collectionType: number, collectionID: string): Promise<ResultDomain<boolean>> {
|
||||
const response = await api.get<boolean>('/usercenter/collection/check', {
|
||||
userID,
|
||||
async isCollected(collectionType: number, collectionID: string): Promise<ResultDomain<boolean>> {
|
||||
const response = await api.get<boolean>(`${this.baseUrl}/check`, {
|
||||
collectionType,
|
||||
collectionID
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user