194 lines
8.0 KiB
Plaintext
194 lines
8.0 KiB
Plaintext
![]() |
[1mdiff --git a/src/api/examples/usage.ts b/src/api/examples/usage.ts[m
|
|||
|
[1mindex 0363f0d..64dbce6 100644[m
|
|||
|
[1m--- a/src/api/examples/usage.ts[m
|
|||
|
[1m+++ b/src/api/examples/usage.ts[m
|
|||
|
[36m@@ -93,13 +93,8 @@[m [mexport const searchCoursesExample = async () => {[m
|
|||
|
try {[m
|
|||
|
const response = await CourseApi.searchCourses({[m
|
|||
|
keyword: 'Vue.js',[m
|
|||
|
[31m- category: '前端开发',[m
|
|||
|
[31m- level: 'intermediate',[m
|
|||
|
[31m- price: 'paid',[m
|
|||
|
[31m- rating: 4,[m
|
|||
|
[31m- sortBy: 'newest',[m
|
|||
|
[31m- page: 1,[m
|
|||
|
[31m- pageSize: 10[m
|
|||
|
[32m+[m[32m limit: '20',[m
|
|||
|
[32m+[m[32m page: 1[m
|
|||
|
})[m
|
|||
|
[m
|
|||
|
if (response.code === 200) {[m
|
|||
|
[1mdiff --git a/src/api/modules/course.ts b/src/api/modules/course.ts[m
|
|||
|
[1mindex 9d3a3e1..e8cdde2 100644[m
|
|||
|
[1m--- a/src/api/modules/course.ts[m
|
|||
|
[1m+++ b/src/api/modules/course.ts[m
|
|||
|
[36m@@ -23,7 +23,7 @@[m [mimport type {[m
|
|||
|
CourseComment,[m
|
|||
|
Quiz,[m
|
|||
|
LearningProgress,[m
|
|||
|
[31m- SearchRequest,[m
|
|||
|
[32m+[m
|
|||
|
Instructor,[m
|
|||
|
} from '../types'[m
|
|||
|
[m
|
|||
|
[1mdiff --git a/src/api/modules/exam.ts b/src/api/modules/exam.ts[m
|
|||
|
[1mindex 5a1865f..f7be93a 100644[m
|
|||
|
[1m--- a/src/api/modules/exam.ts[m
|
|||
|
[1m+++ b/src/api/modules/exam.ts[m
|
|||
|
[36m@@ -333,6 +333,420 @@[m [mexport class ExamApi {[m
|
|||
|
console.log('✅ 批量添加题目答案成功:', responses)[m
|
|||
|
return responses[m
|
|||
|
}[m
|
|||
|
[32m+[m
|
|||
|
[32m+[m[32m // ========== 试卷管理相关接口 ==========[m
|
|||
|
[32m+[m
|
|||
|
[32m+[m[32m /**[m
|
|||
|
[32m+[m[32m * 获取试卷列表[m
|
|||
|
[32m+[m[32m */[m
|
|||
|
[32m+[m[32m static async getExamPaperList(params: {[m
|
|||
|
[32m+[m[32m page?: number[m
|
|||
|
[32m+[m[32m pageSize?: number[m
|
|||
|
[32m+[m[32m keyword?: string[m
|
|||
|
[32m+[m[32m category?: string[m
|
|||
|
[32m+[m[32m status?: string[m
|
|||
|
[32m+[m[32m difficulty?: string[m
|
|||
|
[32m+[m[32m creator?: string[m
|
|||
|
[32m+[m[32m } = {}): Promise<ApiResponseWithResult<{[m
|
|||
|
[32m+[m[32m list: any[][m
|
|||
|
[32m+[m[32m total: number[m
|
|||
|
[32m+[m[32m page: number[m
|
|||
|
[32m+[m[32m pageSize: number[m
|
|||
|
[32m+[m[32m }>> {[m
|
|||
|
[32m+[m[32m console.log('🚀 获取试卷列表:', params)[m
|
|||
|
[32m+[m[32m const response = await ApiRequest.get<{[m
|
|||
|
[32m+[m[32m result: {[m
|
|||
|
[32m+[m[32m records: any[][m
|
|||
|
[32m+[m[32m total: number[m
|
|||
|
[32m+[m[32m current: number[m
|
|||
|
[32m+[m[32m size: number[m
|
|||
|
[32m+[m[32m }[m
|
|||
|
[32m+[m[32m }>('/aiol/aiolPaper/list', { params })[m
|
|||
|
[32m+[m[32m console.log('✅ 获取试卷列表成功:', response)[m
|
|||
|
[32m+[m[32m return response[m
|
|||
|
[32m+[m[32m }[m
|
|||
|
[32m+[m
|
|||
|
[32m+[m[32m /**[m
|
|||
|
[32m+[m[32m * 获取试卷详情[m
|
|||
|
[32m+[m[32m */[m
|
|||
|
[32m+[m[32m static async getExamPaperDetail(id: string): Promise<ApiResponse<any>> {[m
|
|||
|
[32m+[m[32m console.log('🚀 获取试卷详情:', id)[m
|
|||
|
[32m+[m[32m const response = await ApiRequest.get<any>(`/aiol/aiolExam/paperDetail/${id}`)[m
|
|||
|
[32m+[m[32m console.log('✅ 获取试卷详情成功:', response)[m
|
|||
|
[32m+[m[32m return response[m
|
|||
|
[32m+[m[32m }[m
|
|||
|
[32m+[m
|
|||
|
[32m+[m[32m /**[m
|
|||
|
[32m+[m[32m * 创建试卷[m
|
|||
|
[32m+[m[32m */[m
|
|||
|
[32m+[m[32m static async createExamPaper(data: {[m
|
|||
|
[32m+[m[32m name: string[m
|
|||
|
[32m+[m[32m category: string[m
|
|||
|
[32m+[m[32m description?: string[m
|
|||
|
[32m+[m[32m totalScore: number[m
|
|||
|
[32m+[m[32m difficulty: string[m
|
|||
|
[32m+[m[32m duration: number[m
|
|||
|
[32m+[m[32m questions: any[][m
|
|||
|
[32m+[m[32m }): Promise<ApiResponse<string>> {[m
|
|||
|
[32m+[m[32m console.log('🚀 创建试卷:', data)[m
|
|||
|
[32m+[m[32m const response = await ApiRequest.post<string>('/aiol/aiolPaper/add', data)[m
|
|||
|
[32m+[m[32m console.log('✅ 创建试卷成功:', response)[m
|
|||
|
[32m+[m[32m return response[m
|
|||
|
[32m+[m[32m }[m
|
|||
|
[32m+[m
|
|||
|
[32m+[m[32m /**[m
|
|||
|
[32m+[m[32m * 更新试卷[m
|
|||
|
[32m+[m[32m */[m
|
|||
|
[32m+[m[32m static async updateExamPaper(id: string, data: {[m
|
|||
|
[32m+[m[32m name?: string[m
|
|||
|
[32m+[m[32m category?: string[m
|
|||
|
[32m+[m[32m description?: string[m
|
|||
|
[32m+[m[32m totalScore?: number[m
|
|||
|
[32m+[m[32m difficulty?: string[m
|
|||
|
[32m+[m[32m duration?: number[m
|
|||
|
[32m+[m[32m questions?: any[][m
|
|||
|
[32m+[m[32m }): Promise<ApiResponse<string>> {[m
|
|||
|
[32m+[m[32m console.log('🚀 更新试卷:', { id, data })[m
|
|||
|
[32m+[m[32m const response = await ApiRequest.put<string>(`/aiol/aiolExam/paperUpdate/${id}`, data)[m
|
|||
|
[32m+[m[32m console.log('✅ 更新试卷成功:', response)[m
|
|||
|
[32m+[m[32m return response[m
|
|||
|
[32m+[m[32m }[m
|
|||
|
[32m+[m
|
|||
|
[32m+[m[32m /**[m
|
|||
|
[32m+[m[32m * 删除试卷[m
|
|||
|
[32m+[m[32m */[m
|
|||
|
[32m+[m[32m static async deleteExamPaper(id: string): Promise<ApiResponse<string>> {[m
|
|||
|
[32m+[m[32m console.log('🚀 删除试卷:', id)[m
|
|||
|
[32m+[m[32m const response = await ApiRequest.delete<string>(`/aiol/aiolExam/paperDelete/${id}`)[m
|
|||
|
[32m+[m[32m console.log('✅ 删除试卷成功:', response)[m
|
|||
|
[32m+[m[32m return response[m
|
|||
|
[32m+[m[32m }[m
|
|||
|
[32m+[m
|
|||
|
[32m+[m[32m /**[m
|
|||
|
[32m+[m[32m * 批量删除试卷[m
|
|||
|
[32m+[m[32m */[m
|
|||
|
[32m+[m[32m static async batchDeleteExamPapers(ids: string[]): Promise<ApiResponse<string>> {[m
|
|||
|
[32m+[m[32m console.log('🚀 批量删除试卷:', ids)[m
|
|||
|
[32m+[m[32m const response = await ApiRequest.post<string>('/aiol/aiolExam/paperBatchDelete', { ids })[m
|
|||
|
[32m+[m[32m console.log('✅ 批量删除试卷成功:', response)[m
|
|||
|
[32m+[m[32m return response[m
|
|||
|
[32m+[m[32m }[m
|
|||
|
[32m+[m
|
|||
|
[32m+[m[32m /**[m
|
|||
|
[32m+[m[32m * 发布试卷[m
|
|||
|
[32m+[m[32m */[m
|
|||
|
[32m+[m[32m static async publishExamPaper(id: string, data: {[m
|
|||
|
[32m+[m[32m startTime: string[m
|
|||
|
[32m+[m[32m endTime: string[m
|
|||
|
[32m+[m[32m classIds?: string[][m
|
|||
|
[32m+[m[32m }): Promise<ApiResponse<string>> {[m
|
|||
|
[32m+[m[32m console.log('🚀 发布试卷:', { id, data })[m
|
|||
|
[32m+[m[32m const response = await ApiRequest.post<string>(`/aiol/aiolExam/paperPublish/${id}`, data)[m
|
|||
|
[32m+[m[32m console.log('✅ 发布试卷成功:', response)[m
|
|||
|
[32m+[m[32m return response[m
|
|||
|
[32m+[m[32m }[m
|
|||
|
[32m+[m
|
|||
|
[32m+[m[32m /**[m
|
|||
|
[32m+[m[32m * 取消发布试卷[m
|
|||
|
[32m+[m[32m */[m
|
|||
|
[32m+[m[32m static async unpublishExamPaper(id: string): Promise<ApiResponse<string>> {[m
|
|||
|
[32m+[m[32m console.log('🚀 取消发布试卷:', id)[m
|
|||
|
[32m+[m[32m const response = await ApiRequest.post<string>(`/aiol/aiolExam/paperUnpublish/${id}`)[m
|
|||
|
[32m+[m[32m console.log('✅ 取消发布试卷成功:', response)[m
|
|||
|
[32m+[m[32m return response[m
|
|||
|
[32m+[m[32m }[m
|
|||
|
[32m+[m
|
|||
|
[32m+[m[32m /**[m
|
|||
|
[32m+[m[32m * 结束试卷[m
|
|||
|
[32m+[m[32m */[m
|
|||
|
[32m+[m[32m static async endExamPaper(id: string): Promise<ApiResponse<string>> {[m
|
|||
|
[32m+[m[32m console.log('🚀 结束试卷:', id)[m
|
|||
|
[32m+[m[32m const response = await ApiRequest.post<string>(`/aiol/aiolExam/paperEnd/${id}`)[m
|
|||
|
[32m+[m[32m console.log('✅ 结束试卷成功:', response)[m
|
|||
|
[32m+[m[32m return response[m
|
|||
|
[32m+[m[32m }[m
|
|||
|
[32m+[m
|
|||
|
[32m+[m[32m /**[m
|
|||
|
[32m+[m[32m * 导入试卷[m
|
|||
|
[32m+[m[32m */[m
|
|||
|
[32m+[m[32m static async importExamPaper(file: File): Promise<ApiResponse<string>> {[m
|
|||
|
[32m+[m[32m console.log('🚀 导入试卷:', file.name)[m
|
|||
|
[32m+[m[32m const formData = new FormData()[m
|
|||
|
[32m+[m[32m formData.append('file', file)[m
|
|||
|
[32m+[m[32m const response = await ApiRequest.post<string>('/aiol/aiolExam/paperImport', formData, {[m
|
|||
|
[32m+[m[32m headers: {[m
|
|||
|
[32m+[m[32m 'Content-Type': 'multipart/form-data'[m
|
|||
|
[32m+[m[32m }[m
|
|||
|
[32m+[m[32m })[m
|
|||
|
[32m+[m[32m console.log('✅ 导入试卷成功:', response)[m
|
|||
|
[32m+[m[32m return response[m
|
|||
|
[32m+[m[32m }[m
|
|||
|
[32m+[m
|
|||
|
[32m+[m[32m /**[m
|
|||
|
[32m+[m[32m * 导出试卷[m
|
|||
|
[32m+[m[32m */[m
|
|||
|
[32m+[m[32m static async exportE
|