diff --git a/src/api/modules/exam.ts b/src/api/modules/exam.ts index fb9d6d5..f1f6311 100644 --- a/src/api/modules/exam.ts +++ b/src/api/modules/exam.ts @@ -1628,6 +1628,16 @@ export class ExamApi { console.log('✅ 发布补考成功:', response) return response } + + /** + * 题目入出库操作 + */ + static async whetherPutStorage(questionIds: string[]): Promise> { + console.log('🚀 题目入出库操作:', questionIds) + const response = await ApiRequest.post('/aiol/aiolQuestion/whetherPutStorage', questionIds) + console.log('✅ 题目入出库操作成功:', response) + return response + } } export default ExamApi \ No newline at end of file diff --git a/src/api/types.ts b/src/api/types.ts index 5ac4b60..1a51617 100644 --- a/src/api/types.ts +++ b/src/api/types.ts @@ -738,6 +738,10 @@ export interface Question { analysis: string difficulty: number score: number + degree: number // 程度:0=了解,1=熟悉,2=掌握 + ability: number // 能力:0=识记,1=理解,2=应用 + status: number | null // 状态:0=正常入库,1=未入库 + knowledge: string | null // 知识点 createBy: string createTime: string updateBy: string diff --git a/src/views/teacher/ExamPages/AddQuestion.vue b/src/views/teacher/ExamPages/AddQuestion.vue index 7d9d0ff..fbe5ee2 100644 --- a/src/views/teacher/ExamPages/AddQuestion.vue +++ b/src/views/teacher/ExamPages/AddQuestion.vue @@ -403,15 +403,57 @@ const handleTypeChange = (type: string) => { const goBack = () => { // 根据当前路由上下文决定跳转路径 const currentRoute = route.path; - const bankId = route.params.bankId; + // 路由配置中参数名是 :id,对应题库ID + const bankId = route.params.id; + + console.log('🔍 返回操作 - 当前路由:', currentRoute); + console.log('🔍 返回操作 - bankId:', bankId); + console.log('🔍 返回操作 - 所有路由参数:', route.params); + + // 如果bankId为undefined,尝试从其他地方获取 + let finalBankId = bankId; + if (!finalBankId) { + // 尝试从URL路径中提取 + const pathMatch = currentRoute.match(/add-question\/([^\/]+)/); + if (pathMatch) { + finalBankId = pathMatch[1]; + console.log('🔍 从路径提取到bankId:', finalBankId); + } + } + + // 尝试从referrer或者sessionStorage获取原始的查询参数 + const originalQuery = sessionStorage.getItem('questionManagementQuery'); + let queryParams = ''; + + if (originalQuery) { + queryParams = originalQuery; + sessionStorage.removeItem('questionManagementQuery'); // 使用后清除 + console.log('🔍 从sessionStorage恢复查询参数:', queryParams); + } else { + // 如果没有保存的查询参数,尝试从当前路由的query中获取 + const title = route.query.title || route.query.bankTitle; + const createBy = route.query.createBy; + + if (title || createBy) { + const params = new URLSearchParams(); + if (title) params.append('title', title as string); + if (createBy) params.append('createBy', createBy as string); + queryParams = params.toString(); + console.log('🔍 从当前路由构建查询参数:', queryParams); + } + } if (currentRoute.includes('/course-editor/')) { // 如果在课程编辑器中,返回课程编辑器的题库管理 const courseId = route.params.id || route.params.courseId; - router.push(`/teacher/course-editor/${courseId}/question-bank/${bankId}/questions`); + const url = `/teacher/course-editor/${courseId}/question-bank/${finalBankId}/questions${queryParams ? '?' + queryParams : ''}`; + console.log('🔍 课程编辑器返回URL:', url); + router.push(url); } else { // 如果在考试管理中,返回考试管理的题库管理 - router.push(`/teacher/exam-management/question-bank/${bankId}/questions`); + const url = `/teacher/exam-management/question-bank/${finalBankId}/questions${queryParams ? '?' + queryParams : ''}`; + console.log('🔍 考试管理返回URL:', url); + router.push(url); } }; @@ -474,9 +516,8 @@ const saveQuestion = async () => { saving.value = true; - // 获取题库ID(可能从路由参数或者查询参数获取) - // 如果从题库管理页面跳转过来,应该有bankId或者通过其他方式传递 - let bankId = route.params.bankId as string || route.params.id as string || route.query.bankId as string; + // 获取题库ID(路由配置中参数名是 :id,对应题库ID) + let bankId = route.params.id as string || route.query.bankId as string; if (!bankId) { // 尝试从浏览器历史记录或者本地存储获取 @@ -1152,23 +1193,10 @@ onMounted(async () => { // 加载分类和难度数据 await loadCategoriesAndDifficulties(); - // 如果是编辑模式,加载题目数据 + // 如果是编辑模式,从API加载题目数据 if (isEditMode.value && questionId) { - // 优先从路由参数中获取数据 - if (route.query.questionData) { - try { - const questionData = JSON.parse(route.query.questionData as string); - console.log('📊 从路由参数获取题目数据:', questionData); - renderQuestionData(questionData); - } catch (error) { - console.error('❌ 解析路由参数中的题目数据失败:', error); - // 如果解析失败,尝试从API加载 - await loadQuestionData(questionId); - } - } else { - // 如果没有路由参数,从API加载 - await loadQuestionData(questionId); - } + console.log('📊 编辑模式,从API加载题目数据'); + await loadQuestionData(questionId); } }); diff --git a/src/views/teacher/ExamPages/QuestionBankManagement.vue b/src/views/teacher/ExamPages/QuestionBankManagement.vue index b8ac7df..14210e8 100644 --- a/src/views/teacher/ExamPages/QuestionBankManagement.vue +++ b/src/views/teacher/ExamPages/QuestionBankManagement.vue @@ -725,15 +725,21 @@ const deleteSelected = () => { // 进入题库(跳转到试题管理页面) const enterQuestionBank = (bankId: string, bankTitle: string) => { + // 查找当前题库的创建者信息 + const currentBank = questionBankList.value.find(bank => bank.id === bankId); + const createBy = (currentBank as any)?.createBy || ''; + + console.log('🔍 进入题库:', { bankId, bankTitle, createBy }); + // 根据当前路由上下文决定跳转路径 const currentRoute = route.path; if (currentRoute.includes('/course-editor/')) { // 如果在课程编辑器中,使用 course-editor 路径 const courseId = route.params.id; - router.push(`/teacher/course-editor/${courseId}/question-bank/${bankId}/questions?title=${bankTitle}`); + router.push(`/teacher/course-editor/${courseId}/question-bank/${bankId}/questions?title=${encodeURIComponent(bankTitle)}&createBy=${createBy}`); } else { // 如果在考试管理中,使用原有路径 - router.push(`/teacher/exam-management/question-bank/${bankId}/questions?title=${bankTitle}`); + router.push(`/teacher/exam-management/question-bank/${bankId}/questions?title=${encodeURIComponent(bankTitle)}&createBy=${createBy}`); } }; diff --git a/src/views/teacher/ExamPages/QuestionManagement.vue b/src/views/teacher/ExamPages/QuestionManagement.vue index 685609e..38bddd3 100644 --- a/src/views/teacher/ExamPages/QuestionManagement.vue +++ b/src/views/teacher/ExamPages/QuestionManagement.vue @@ -13,6 +13,7 @@

{{ currentBankTitle }}

+ 入出库 添加试题 导入 导出 @@ -46,6 +47,8 @@ @update:checked-row-keys="handleCheck" class="question-table" :single-line="false" + :max-height="600" + :scroll-x="1200" /> @@ -174,12 +177,12 @@