From 638e939fe5ec4ec6fd66a8c110c7026e502927fe Mon Sep 17 00:00:00 2001 From: yuk255 Date: Mon, 25 Aug 2025 20:23:48 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E6=B7=BB=E5=8A=A0=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E8=AF=95=E9=A2=98=E5=8A=9F=E8=83=BD=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=EF=BC=9B=E6=B7=BB=E5=8A=A0=E8=AF=95=E9=A2=98=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=9A=84=E5=88=86=E7=B1=BB=E5=AF=B9=E5=BA=94=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=EF=BC=9B=E5=88=A0=E9=99=A4=E4=B8=80=E4=BA=9B=E4=B8=8D=E5=86=8D?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E7=9A=84=E7=BB=84=E4=BB=B6=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=EF=BC=9B=E5=85=B6=E4=BB=96=E6=A0=B7=E5=BC=8F=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/teacher/CompositeQuestion.vue | 394 +++++ src/components/teacher/FillBlankQuestion.vue | 280 +++ .../teacher/MultipleChoiceQuestion.vue | 260 +++ .../teacher/QuestionTypeContainer.vue | 170 ++ .../teacher/ShortAnswerQuestion.vue | 132 ++ .../teacher/SingleChoiceQuestion.vue | 239 +++ src/components/teacher/TrueFalseQuestion.vue | 194 +++ src/router/index.ts | 7 + src/views/teacher/AdminDashboard.vue | 8 + src/views/teacher/ExamPages/AddQuestion.vue | 1382 +++++++++++++++ .../teacher/ExamPages/QuestionManagement.vue | 352 +++- .../teacher/course/ExamPages/AddExam.vue | 1544 ----------------- .../teacher/course/ExamPages/ExamLibrary.vue | 210 --- .../course/ExamPages/MarkingCenter.vue | 11 - 14 files changed, 3409 insertions(+), 1774 deletions(-) create mode 100644 src/components/teacher/CompositeQuestion.vue create mode 100644 src/components/teacher/FillBlankQuestion.vue create mode 100644 src/components/teacher/MultipleChoiceQuestion.vue create mode 100644 src/components/teacher/QuestionTypeContainer.vue create mode 100644 src/components/teacher/ShortAnswerQuestion.vue create mode 100644 src/components/teacher/SingleChoiceQuestion.vue create mode 100644 src/components/teacher/TrueFalseQuestion.vue create mode 100644 src/views/teacher/ExamPages/AddQuestion.vue delete mode 100644 src/views/teacher/course/ExamPages/AddExam.vue delete mode 100644 src/views/teacher/course/ExamPages/ExamLibrary.vue delete mode 100644 src/views/teacher/course/ExamPages/MarkingCenter.vue diff --git a/src/components/teacher/CompositeQuestion.vue b/src/components/teacher/CompositeQuestion.vue new file mode 100644 index 0000000..67462d3 --- /dev/null +++ b/src/components/teacher/CompositeQuestion.vue @@ -0,0 +1,394 @@ + + + + + diff --git a/src/components/teacher/FillBlankQuestion.vue b/src/components/teacher/FillBlankQuestion.vue new file mode 100644 index 0000000..251e3d0 --- /dev/null +++ b/src/components/teacher/FillBlankQuestion.vue @@ -0,0 +1,280 @@ + + + + + diff --git a/src/components/teacher/MultipleChoiceQuestion.vue b/src/components/teacher/MultipleChoiceQuestion.vue new file mode 100644 index 0000000..e6d4bec --- /dev/null +++ b/src/components/teacher/MultipleChoiceQuestion.vue @@ -0,0 +1,260 @@ + + + + + diff --git a/src/components/teacher/QuestionTypeContainer.vue b/src/components/teacher/QuestionTypeContainer.vue new file mode 100644 index 0000000..06c1417 --- /dev/null +++ b/src/components/teacher/QuestionTypeContainer.vue @@ -0,0 +1,170 @@ + + + + + diff --git a/src/components/teacher/ShortAnswerQuestion.vue b/src/components/teacher/ShortAnswerQuestion.vue new file mode 100644 index 0000000..c454be7 --- /dev/null +++ b/src/components/teacher/ShortAnswerQuestion.vue @@ -0,0 +1,132 @@ + + + + + diff --git a/src/components/teacher/SingleChoiceQuestion.vue b/src/components/teacher/SingleChoiceQuestion.vue new file mode 100644 index 0000000..4ceb0c3 --- /dev/null +++ b/src/components/teacher/SingleChoiceQuestion.vue @@ -0,0 +1,239 @@ + + + + + diff --git a/src/components/teacher/TrueFalseQuestion.vue b/src/components/teacher/TrueFalseQuestion.vue new file mode 100644 index 0000000..6254d52 --- /dev/null +++ b/src/components/teacher/TrueFalseQuestion.vue @@ -0,0 +1,194 @@ + + + + + diff --git a/src/router/index.ts b/src/router/index.ts index e51629a..4b9ebe5 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -61,6 +61,7 @@ import QuestionManagement from '@/views/teacher/ExamPages/QuestionManagement.vue import ExamLibrary from '@/views/teacher/ExamPages/ExamLibrary.vue' import MarkingCenter from '@/views/teacher/ExamPages/MarkingCenter.vue' import AddExam from '@/views/teacher/ExamPages/AddExam.vue' +import AddQuestion from '@/views/teacher/ExamPages/AddQuestion.vue' import ChapterEditor from '@/views/teacher/course/ChapterEditor.vue' @@ -267,6 +268,12 @@ const routes: RouteRecordRaw[] = [ name: 'AddExam', component: AddExam, meta: { title: '添加试卷' } + }, + { + path: 'add-question/:id?', + name: 'AddQuestionPage', + component: AddQuestion, + meta: { title: '添加试题' } } ] }, diff --git a/src/views/teacher/AdminDashboard.vue b/src/views/teacher/AdminDashboard.vue index 5727b13..af0eba3 100644 --- a/src/views/teacher/AdminDashboard.vue +++ b/src/views/teacher/AdminDashboard.vue @@ -498,6 +498,14 @@ const updateActiveNavItem = () => { activeNavItem.value = 2; // 我的资源 } else if (path.includes('personal-center')) { activeNavItem.value = 3; // 个人中心 + } else if (path.includes('exam-management')) { + activeNavItem.value = 4; // 考试管理 + examMenuExpanded.value = true; + + // 获取路由的最后一层路径(不包含/) + const pathSegments = path.split('/'); + const lastSegment = pathSegments[pathSegments.length - 1]; + activeSubNavItem.value = lastSegment || ''; } } diff --git a/src/views/teacher/ExamPages/AddQuestion.vue b/src/views/teacher/ExamPages/AddQuestion.vue new file mode 100644 index 0000000..824eb0d --- /dev/null +++ b/src/views/teacher/ExamPages/AddQuestion.vue @@ -0,0 +1,1382 @@ + + + + + \ No newline at end of file diff --git a/src/views/teacher/ExamPages/QuestionManagement.vue b/src/views/teacher/ExamPages/QuestionManagement.vue index 579dfe1..db7de6e 100644 --- a/src/views/teacher/ExamPages/QuestionManagement.vue +++ b/src/views/teacher/ExamPages/QuestionManagement.vue @@ -7,10 +7,11 @@ 导入 导出 删除 + 分类设置 @@ -45,14 +46,135 @@ @success="handleImportSuccess" @template-download="handleTemplateDownload" /> + + + +
+
+ + 已选择 {{ selectedRowKeys.length }} 个试题 + +
+ +
+
+ + +
+ +
+ + + + + 添加 + + +
+
+
+ + +
+ + + +
+
+ + + 新增分类 + + +
+ +
+ + + + 添加 + + + 取消 + + +
+ +
+ + +
+ {{ category.label }} + + + 编辑 + + + 删除 + + +
+
+
+
+
+ + +
diff --git a/src/views/teacher/course/ExamPages/ExamLibrary.vue b/src/views/teacher/course/ExamPages/ExamLibrary.vue deleted file mode 100644 index 87a6f2f..0000000 --- a/src/views/teacher/course/ExamPages/ExamLibrary.vue +++ /dev/null @@ -1,210 +0,0 @@ - - - - - diff --git a/src/views/teacher/course/ExamPages/MarkingCenter.vue b/src/views/teacher/course/ExamPages/MarkingCenter.vue deleted file mode 100644 index eb2fad6..0000000 --- a/src/views/teacher/course/ExamPages/MarkingCenter.vue +++ /dev/null @@ -1,11 +0,0 @@ - - - - -