Bladeren bron

exam-task md

zhangjie 3 jaren geleden
bovenliggende
commit
0009c27878

+ 9 - 0
src/assets/styles/base.scss

@@ -438,12 +438,21 @@ body {
 .mb-0 {
   margin-bottom: 0;
 }
+.mb-1 {
+  margin-bottom: 5px;
+}
 .mb-2 {
   margin-bottom: 10px;
 }
 .mb-4 {
   margin-bottom: 20px;
 }
+.width-full {
+  width: 100%;
+}
+.width-400 {
+  width: 400px;
+}
 
 // other
 .tips-info {

+ 75 - 0
src/components/base/ExamSelect.vue

@@ -0,0 +1,75 @@
+<template>
+  <el-select
+    v-model="selected"
+    class="exam-select"
+    :placeholder="placeholder"
+    filterable
+    :clearable="clearable"
+    :disabled="disabled"
+    @change="select"
+  >
+    <el-option
+      v-for="item in optionList"
+      :key="item.id"
+      :value="item.id"
+      :label="item.name"
+    >
+    </el-option>
+  </el-select>
+</template>
+
+<script>
+import { examQuery } from "../../modules/base/api";
+
+export default {
+  name: "exam-select",
+  props: {
+    disabled: { type: Boolean, default: false },
+    placeholder: { type: String, default: "请选择考试" },
+    value: { type: [Number, String], default: "" },
+    clearable: { type: Boolean, default: true },
+    semesterId: { type: String, default: "" }
+  },
+  data() {
+    return {
+      optionList: [],
+      selected: ""
+    };
+  },
+  watch: {
+    value: {
+      immediate: true,
+      handler(val) {
+        this.selected = val;
+      }
+    },
+    semesterId(val, oldval) {
+      if (val !== oldval) {
+        this.search();
+        this.$emit("input", "");
+        this.$emit("change", {});
+      }
+    }
+  },
+  created() {
+    this.search();
+  },
+  methods: {
+    async search() {
+      this.optionList = [];
+
+      const res = await examQuery({
+        semesterId: this.semesterId
+      });
+      this.optionList = res;
+    },
+    select() {
+      this.$emit("input", this.selected);
+      this.$emit(
+        "change",
+        this.optionList.find(item => item.id === this.selected)
+      );
+    }
+  }
+};
+</script>

+ 1 - 1
src/components/base/SemesterSelect.vue

@@ -25,7 +25,7 @@ export default {
   name: "semester-select",
   props: {
     disabled: { type: Boolean, default: false },
-    placeholder: { type: String, default: "请选择" },
+    placeholder: { type: String, default: "请选择学期" },
     value: { type: [Number, String], default: "" },
     clearable: { type: Boolean, default: true }
   },

+ 3 - 0
src/modules/base/api.js

@@ -375,6 +375,9 @@ export const resendSms = id => {
 };
 
 // exam-manage
+export const examQuery = datas => {
+  return $postParam("/api/admin/basic/exam/list", datas);
+};
 export const examListQuery = datas => {
   return $postParam("/api/admin/basic/exam/list", datas);
 };

+ 29 - 18
src/modules/exam/components/BatchAddExamTask.vue

@@ -4,7 +4,7 @@
     :visible.sync="modalIsShow"
     title="批量新建命题任务"
     top="10vh"
-    width="800px"
+    width="700px"
     :close-on-click-modal="false"
     :close-on-press-escape="false"
     append-to-body
@@ -16,6 +16,19 @@
       :rules="rules"
       label-position="top"
     >
+      <el-form-item prop="semesterId" label="学期:">
+        <semester-select
+          v-model="modalForm.semesterId"
+          class="width-400"
+        ></semester-select>
+      </el-form-item>
+      <el-form-item prop="examId" label="考试:">
+        <exam-select
+          v-model="modalForm.examId"
+          class="width-400"
+          :semester-id="modalForm.semesterId"
+        ></exam-select>
+      </el-form-item>
       <el-form-item prop="batchNo" label="命题任务表:">
         <upload-file-view
           :upload-url="uploadExamTaskUrl"
@@ -45,17 +58,6 @@
         >
         </el-date-picker>
       </el-form-item>
-      <el-form-item prop="cardRuleId" label="题卡规则:">
-        <card-rule-select
-          ref="CardRuleSelect"
-          v-model.trim="modalForm.cardRuleId"
-          placeholder="请选择"
-          clearable
-        ></card-rule-select>
-        <p class="tips-info">
-          说明:若选择全部通卡,则命题老师只能选择通卡,若选择题卡规则,则专卡和通卡均可选择
-        </p>
-      </el-form-item>
       <el-form-item label="指派命题老师:">
         <el-table class="el-table--noback" :data="tasks" border>
           <el-table-column prop="courseName" label="课程(代码)">
@@ -104,6 +106,8 @@ import { batchAddExamTask } from "../api";
 import UploadFileView from "@/components/UploadFileView";
 
 const initModalForm = {
+  semesterId: "",
+  examId: "",
   cardRuleId: "",
   startTime: "",
   endTime: "",
@@ -123,24 +127,31 @@ export default {
       tasks: [],
       batchConfirmMessage: "",
       rules: {
-        batchNo: [
+        semesterId: [
           {
             required: true,
-            message: "请上传命题任务表",
+            message: "请选择学期",
             trigger: "change"
           }
         ],
-        startTime: [
+        examId: [
           {
             required: true,
-            message: "请设置命题时间",
+            message: "请选择考试",
+            trigger: "change"
+          }
+        ],
+        batchNo: [
+          {
+            required: true,
+            message: "请上传命题任务表",
             trigger: "change"
           }
         ],
-        cardRuleId: [
+        startTime: [
           {
             required: true,
-            message: "请选择题卡规则",
+            message: "请设置命题时间",
             trigger: "change"
           }
         ]

+ 36 - 17
src/modules/exam/components/CreateTaskApply.vue

@@ -19,10 +19,28 @@
         label-width="120px"
       >
         <el-row>
+          <el-col :span="12">
+            <el-form-item prop="semesterId" label="学期:">
+              <semester-select
+                v-model="examTask.semesterId"
+                class="width-full"
+              ></semester-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item prop="examId" label="考试:">
+              <exam-select
+                v-model="examTask.examId"
+                :semester-id="examTask.semesterId"
+                class="width-full"
+              ></exam-select>
+            </el-form-item>
+          </el-col>
           <el-col :span="12">
             <el-form-item prop="teachingRoomId" label="教研室:">
               <teaching-room-select
                 v-model="examTask.teachingRoomId"
+                class="width-full"
                 @change="teachingRoomChange"
               ></teaching-room-select>
             </el-form-item>
@@ -31,6 +49,7 @@
             <el-form-item prop="courseCode" label="课程(代码):">
               <course-select
                 v-model="examTask.courseCode"
+                class="width-full"
                 :teaching-room-id="examTask.teachingRoomId"
                 @change="courseChange"
               ></course-select>
@@ -38,20 +57,6 @@
           </el-col>
         </el-row>
         <el-row>
-          <el-col :span="12">
-            <el-form-item prop="cardRuleId" label="题卡规则:">
-              <card-rule-select
-                ref="CardRuleSelect"
-                v-model.trim="examTask.cardRuleId"
-                placeholder="请选择"
-                clearable
-                @change="clearCard"
-              ></card-rule-select>
-              <p class="tips-info">
-                说明:若选择全部通卡,则命题老师只能选择通卡,若选择题卡规则,则专卡和通卡均可选择
-              </p>
-            </el-form-item>
-          </el-col>
           <el-col :span="12">
             <el-form-item label="试卷编号:">
               <el-input
@@ -62,8 +67,6 @@
               ></el-input>
             </el-form-item>
           </el-col>
-        </el-row>
-        <el-row>
           <el-col :span="12">
             <el-form-item label="拟卷教师:">
               <el-input
@@ -324,10 +327,12 @@ import { CARD_SOURCE_TYPE } from "@/constants/enumerate";
 
 const initExamTask = {
   id: null,
+  semesterId: "",
+  examId: "",
   courseCode: "",
   courseName: "",
   paperNumber: "",
-  cardRuleId: "",
+  cardRuleId: "", // TODO:
   teachingRoomId: "",
   teacherName: "",
   lecturerName: ""
@@ -388,6 +393,20 @@ export default {
         }
       ],
       rules: {
+        semesterId: [
+          {
+            required: true,
+            message: "请选择学期",
+            trigger: "change"
+          }
+        ],
+        examId: [
+          {
+            required: true,
+            message: "请选择考试",
+            trigger: "change"
+          }
+        ],
         teachingRoomId: [
           {
             required: true,

+ 38 - 21
src/modules/exam/components/ModifyExamTask.vue

@@ -4,7 +4,7 @@
     :visible.sync="modalIsShow"
     :title="title"
     top="10vh"
-    width="700px"
+    width="600px"
     :close-on-click-modal="false"
     :close-on-press-escape="false"
     append-to-body
@@ -18,6 +18,23 @@
       :rules="rules"
       :model="modalForm"
     >
+      <el-form-item prop="semesterId" label="学期:">
+        <semester-select
+          v-if="editable"
+          v-model="modalForm.semesterId"
+          class="width-full"
+        ></semester-select>
+        <span v-else>{{ modalForm.semesterName }}</span>
+      </el-form-item>
+      <el-form-item prop="examId" label="考试:">
+        <exam-select
+          v-if="editable"
+          v-model="modalForm.examId"
+          :semester-id="modalForm.semesterId"
+          class="width-full"
+        ></exam-select>
+        <span v-else>{{ modalForm.examName }}</span>
+      </el-form-item>
       <el-form-item prop="courseCode" label="课程(代码):">
         <course-select
           v-if="editable"
@@ -25,6 +42,7 @@
           v-model.trim="modalForm.courseCode"
           placeholder="请选择"
           clearable
+          class="width-full"
           @change="courseChange"
         ></course-select>
         <span v-else
@@ -61,24 +79,12 @@
           <span v-else>--</span>
         </span>
       </el-form-item>
-      <el-form-item prop="cardRuleId" label="题卡规则:">
-        <card-rule-select
-          v-if="editable"
-          ref="CardRuleSelect"
-          v-model.trim="modalForm.cardRuleId"
-          placeholder="请选择"
-          clearable
-        ></card-rule-select>
-        <span v-else>{{ modalForm.cardRuleName }}</span>
-        <p class="tips-info">
-          说明:若选择全部通卡,则命题老师只能选择通卡,若选择题卡规则,则专卡和通卡均可选择
-        </p>
-      </el-form-item>
       <el-form-item label="命题老师:">
         <question-teacher-user-select
           v-if="editType !== 'PREVIEW' && modalIsShow"
           ref="QuestionTeacherSelect"
           v-model="modalForm.userId"
+          class="width-full"
           :course-code="modalForm.courseCode"
           placeholder="请选择"
         ></question-teacher-user-select>
@@ -104,6 +110,10 @@ import { updateExamTask, updatExamTaskTeacher } from "../api";
 
 const initModalForm = {
   id: null,
+  semesterId: "",
+  semesterName: "",
+  examId: "",
+  examName: "",
   courseCode: "",
   courseName: "",
   specialty: "",
@@ -151,6 +161,20 @@ export default {
       modalForm: {},
       createTime: [],
       rules: {
+        semesterId: [
+          {
+            required: true,
+            message: "请选择学期",
+            trigger: "change"
+          }
+        ],
+        examId: [
+          {
+            required: true,
+            message: "请选择考试",
+            trigger: "change"
+          }
+        ],
         courseCode: [
           {
             required: true,
@@ -186,13 +210,6 @@ export default {
             message: "请设置命题时间",
             trigger: "change"
           }
-        ],
-        cardRuleId: [
-          {
-            required: true,
-            message: "请选择题卡规则",
-            trigger: "change"
-          }
         ]
       }
     };

+ 3 - 67
src/modules/exam/components/createExamAndPrintTask/CreateExamAndPrintTask.vue

@@ -62,21 +62,15 @@
 import { examRuleDetail } from "../../../base/api";
 import { teacherSubmitTaskApply } from "../../api";
 import { printPlanTemplateList } from "../../../print/api";
-import InfoPrintPlan from "./InfoPrintPlan";
 import InfoExamTask from "./InfoExamTask";
 import InfoPrintTask from "./InfoPrintTask";
-import { COMMON_CARD_RULE_ID } from "@/constants/enumerate";
-import { deepCopy } from "@/plugins/utils";
+// import { deepCopy } from "@/plugins/utils";
 
 const STEPS_LIST = [
   {
     name: "exam-task",
     title: "命题信息"
   },
-  {
-    name: "print-plan",
-    title: "备卷印品信息"
-  },
   {
     name: "print-task",
     title: "考务信息"
@@ -85,10 +79,10 @@ const STEPS_LIST = [
 
 const initExamTask = {
   semesterId: "",
+  examId: "",
   courseCode: "",
   courseName: "",
   paperNumber: "",
-  cardRuleId: COMMON_CARD_RULE_ID,
   teachingRoomId: "",
   teacherName: "",
   paperName: ""
@@ -111,43 +105,6 @@ const initExamTaskDetail = {
   customCard: false
 };
 
-const initPrintPlan = {
-  name: "",
-  examStartTime: "",
-  examEndTime: "",
-  semesterId: "",
-  printContent: [],
-  backupMethod: "ROOM",
-  backupCount: 1,
-  drawRule: "ONE",
-  templateSources: {},
-  variableContent: [
-    {
-      type: "SIGN",
-      templateId: "",
-      oldTemplateId: "",
-      backupMethod: "ROOM",
-      backupCount: 1
-    },
-    {
-      type: "PACKAGE",
-      templateId: "",
-      oldTemplateId: "",
-      backupMethod: "ROOM",
-      backupCount: 1
-    }
-  ],
-  ordinaryContent: [
-    {
-      type: "CHECK_IN",
-      templateId: "",
-      oldTemplateId: "",
-      backupMethod: "ROOM",
-      backupCount: 1
-    }
-  ]
-};
-
 const initPrintTask = {
   examStartTime: "",
   examEndTime: "",
@@ -159,7 +116,7 @@ const initPrintTask = {
 
 export default {
   name: "create-exam-and-print-task",
-  components: { InfoPrintPlan, InfoExamTask, InfoPrintTask },
+  components: { InfoExamTask, InfoPrintTask },
   data() {
     return {
       modalIsShow: false,
@@ -213,20 +170,9 @@ export default {
         customCard: this.examRule.customCard
       });
 
-      // printPlan
-      let printPlan = deepCopy(initPrintPlan);
-      printPlan.variableContent = printPlan.variableContent.filter(
-        item => this.templateSources[item.type]
-      );
-      printPlan.ordinaryContent = printPlan.ordinaryContent.filter(
-        item => this.templateSources[item.type]
-      );
-      printPlan.templateSources = this.templateSources;
-
       this.infos = {
         examTask: { ...initExamTask },
         examTaskDetail,
-        printPlan,
         printTask: { ...initPrintTask },
         approveUserIds: []
       };
@@ -297,19 +243,9 @@ export default {
         return;
       }
 
-      let examPrintPlan = deepCopy(this.infos.printPlan);
-      delete examPrintPlan.templateSources;
-      examPrintPlan.variableContent = JSON.stringify(
-        examPrintPlan.variableContent
-      );
-      examPrintPlan.ordinaryContent = JSON.stringify(
-        examPrintPlan.ordinaryContent
-      );
-
       const examTaskContent = {
         examTask: this.infos.examTask,
         examTaskDetail: this.infos.examTaskDetail,
-        examPrintPlan,
         examDetail: this.infos.printTask
       };
       let datas = {

+ 36 - 33
src/modules/exam/components/createExamAndPrintTask/InfoExamTask.vue

@@ -8,10 +8,37 @@
         label-width="120px"
       >
         <el-row>
+          <el-col :span="12">
+            <el-form-item prop="semesterId" label="使用学期:">
+              <el-select
+                v-model.trim="examTask.semesterId"
+                placeholder="请选择使用学期"
+                class="width-full"
+                @change="semesterChange"
+              >
+                <el-option
+                  v-for="item in semesters"
+                  :key="item.id"
+                  :value="item.id"
+                  :label="item.name"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item prop="examId" label="考试:">
+              <exam-select
+                v-model="examTask.examId"
+                :semester-id="examTask.semesterId"
+                class="width-full"
+              ></exam-select>
+            </el-form-item>
+          </el-col>
           <el-col :span="12">
             <el-form-item prop="teachingRoomId" label="教研室:">
               <teaching-room-select
                 v-model="examTask.teachingRoomId"
+                class="width-full"
                 @change="teachingRoomChange"
               ></teaching-room-select>
             </el-form-item>
@@ -22,6 +49,7 @@
                 v-model="examTask.courseCode"
                 placeholder="请选择"
                 filterable
+                class="width-full"
                 @change="courseChange"
               >
                 <el-option
@@ -34,13 +62,6 @@
               </el-select>
             </el-form-item>
           </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item prop="cardRuleId" label="题卡规则:">
-              <el-input v-model.trim="cardRuleName" readonly></el-input>
-            </el-form-item>
-          </el-col>
           <el-col :span="12">
             <el-form-item label="试卷编号:">
               <el-input
@@ -51,8 +72,6 @@
               ></el-input>
             </el-form-item>
           </el-col>
-        </el-row>
-        <el-row>
           <el-col :span="12">
             <el-form-item label="拟卷教师:">
               <el-input
@@ -63,22 +82,6 @@
               ></el-input>
             </el-form-item>
           </el-col>
-          <el-col :span="12">
-            <el-form-item prop="semesterId" label="使用学期:">
-              <el-select
-                v-model.trim="examTask.semesterId"
-                placeholder="请选择使用学期"
-                @change="semesterChange"
-              >
-                <el-option
-                  v-for="item in semesters"
-                  :key="item.id"
-                  :value="item.id"
-                  :label="item.name"
-                ></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
         </el-row>
       </el-form>
     </div>
@@ -282,31 +285,31 @@ export default {
     return {
       task: {},
       rules: {
-        teachingRoomId: [
+        semesterId: [
           {
             required: true,
-            message: "请选择教研室",
+            message: "请选择使用学期",
             trigger: "change"
           }
         ],
-        courseCode: [
+        examId: [
           {
             required: true,
-            message: "请选择课程",
+            message: "请选择考试",
             trigger: "change"
           }
         ],
-        cardRuleId: [
+        teachingRoomId: [
           {
             required: true,
-            message: "请选择题卡规则",
+            message: "请选择教研室",
             trigger: "change"
           }
         ],
-        semesterId: [
+        courseCode: [
           {
             required: true,
-            message: "请选择使用学期",
+            message: "请选择课程",
             trigger: "change"
           }
         ]

+ 5 - 0
src/modules/exam/components/createExamAndPrintTask/InfoPrintTask.vue

@@ -1,5 +1,8 @@
 <template>
   <div class="info-print-task">
+    <p class="tips-info mb-2">
+      考试需要命题老师提交完整的考务数据,每个卷袋表示一个考场,人数字段为应考人数,备份数量为该考场试卷题卡备用数量
+    </p>
     <el-form ref="modalFormComp" label-position="top">
       <el-form-item label="考试时间:" required>
         <el-date-picker
@@ -87,6 +90,8 @@
       </el-table>
     </div>
 
+    <!-- TODO:审核流程 -->
+
     <!-- ModifyPrintTask -->
     <modify-print-task
       ref="ModifyPrintTask"

+ 13 - 0
src/modules/exam/views/ExamTaskManage.vue

@@ -3,6 +3,15 @@
     <div class="part-box part-box-filter part-box-flex">
       <el-form ref="FilterForm" label-position="left" label-width="85px" inline>
         <template v-if="checkPrivilege('condition', 'condition')">
+          <el-form-item label="学期:">
+            <semester-select v-model="filter.semesterId"></semester-select>
+          </el-form-item>
+          <el-form-item label="考试:">
+            <exam-select
+              v-model="filter.examId"
+              :semester-id="filter.semesterId"
+            ></exam-select>
+          </el-form-item>
           <el-form-item label="命题状态:">
             <el-select
               v-model="filter.status"
@@ -124,6 +133,8 @@
           width="70"
           :index="indexMethod"
         ></el-table-column>
+        <el-table-column prop="semesterName" label="学期"></el-table-column>
+        <el-table-column prop="examName" label="考试"></el-table-column>
         <el-table-column prop="paperNumber" label="试卷编号"></el-table-column>
         <el-table-column prop="courseName" label="课程(代码)">
           <template slot-scope="scope">
@@ -252,6 +263,8 @@ export default {
   data() {
     return {
       filter: {
+        semesterId: "",
+        examId: "",
         status: "",
         cardRuleId: "",
         courseCode: "",

+ 13 - 0
src/modules/exam/views/TaskApplyManage.vue

@@ -3,6 +3,15 @@
     <div class="part-box part-box-filter part-box-flex">
       <el-form ref="FilterForm" label-position="left" label-width="85px" inline>
         <template v-if="checkPrivilege('condition', 'condition')">
+          <el-form-item label="学期:">
+            <semester-select v-model="filter.semesterId"></semester-select>
+          </el-form-item>
+          <el-form-item label="考试:">
+            <exam-select
+              v-model="filter.examId"
+              :semester-id="filter.semesterId"
+            ></exam-select>
+          </el-form-item>
           <el-form-item label="审核状态:">
             <el-select
               v-model="filter.auditStatus"
@@ -101,6 +110,8 @@
           width="70"
           :index="indexMethod"
         ></el-table-column>
+        <el-table-column prop="semesterName" label="学期"></el-table-column>
+        <el-table-column prop="examName" label="考试"></el-table-column>
         <el-table-column prop="paperNumber" label="试卷编号"></el-table-column>
         <el-table-column prop="courseName" label="课程(代码)">
           <template slot-scope="scope">
@@ -227,6 +238,8 @@ export default {
   data() {
     return {
       filter: {
+        semesterId: "",
+        examId: "",
         auditStatus: "",
         reviewStatus: "",
         cardRuleId: "",

+ 13 - 0
src/modules/exam/views/TaskPaperManage.vue

@@ -3,6 +3,15 @@
     <div class="part-box part-box-filter part-box-flex">
       <el-form ref="FilterForm" label-position="left" label-width="85px" inline>
         <template v-if="checkPrivilege('condition', 'condition')">
+          <el-form-item label="学期:">
+            <semester-select v-model="filter.semesterId"></semester-select>
+          </el-form-item>
+          <el-form-item label="考试:">
+            <exam-select
+              v-model="filter.examId"
+              :semester-id="filter.semesterId"
+            ></exam-select>
+          </el-form-item>
           <el-form-item label="课程(代码):" label-width="110px">
             <course-select
               ref="CourseSelect"
@@ -86,6 +95,8 @@
           width="70"
           :index="indexMethod"
         ></el-table-column>
+        <el-table-column prop="semesterName" label="学期"></el-table-column>
+        <el-table-column prop="examName" label="考试"></el-table-column>
         <el-table-column prop="paperNumber" label="试卷编号"></el-table-column>
         <el-table-column prop="courseName" label="课程(代码)">
           <template slot-scope="scope">
@@ -217,6 +228,8 @@ export default {
   data() {
     return {
       filter: {
+        semesterId: "",
+        examId: "",
         courseCode: "",
         paperNumber: "",
         cardRuleId: "",

+ 13 - 0
src/modules/exam/views/TaskReviewManage.vue

@@ -18,6 +18,15 @@
               (!AUDITED && checkPrivilege('condition', 'notReviewCondition'))
           "
         >
+          <el-form-item label="学期:">
+            <semester-select v-model="filter.semesterId"></semester-select>
+          </el-form-item>
+          <el-form-item label="考试:">
+            <exam-select
+              v-model="filter.examId"
+              :semester-id="filter.semesterId"
+            ></exam-select>
+          </el-form-item>
           <el-form-item label="题卡规则:">
             <card-rule-select
               ref="CardRuleSelect"
@@ -147,6 +156,8 @@
           width="70"
           :index="indexMethod"
         ></el-table-column>
+        <el-table-column prop="semesterName" label="学期"></el-table-column>
+        <el-table-column prop="examName" label="考试"></el-table-column>
         <el-table-column prop="paperNumber" label="试卷编号"></el-table-column>
         <el-table-column prop="courseName" label="课程(代码)">
           <template slot-scope="scope">
@@ -276,6 +287,8 @@ export default {
     return {
       auditStatus: "NOT_AUDITED",
       filter: {
+        semesterId: "",
+        examId: "",
         userId: "",
         cardRuleId: "",
         courseCode: "",

+ 3 - 1
src/plugins/globalVuePlugins.js

@@ -23,6 +23,7 @@ import CollegeSelect from "../components/base/CollegeSelect.vue";
 import ClazzSelect from "../components/base/ClazzSelect.vue";
 import MajorSelect from "../components/base/MajorSelect.vue";
 import ClassSelect from "../components/base/ClassSelect.vue";
+import ExamSelect from "../components/base/ExamSelect.vue";
 
 const components = {
   ViewFooter,
@@ -44,7 +45,8 @@ const components = {
   CollegeSelect,
   ClazzSelect,
   MajorSelect,
-  ClassSelect
+  ClassSelect,
+  ExamSelect
 };
 
 export default {