xiatian 4 jaren geleden
bovenliggende
commit
7833daa4ba
2 gewijzigde bestanden met toevoegingen van 52 en 20 verwijderingen
  1. 2 0
      src/modules/questions/constants/constants.js
  2. 50 20
      src/modules/questions/views/EditPaper.vue

+ 2 - 0
src/modules/questions/constants/constants.js

@@ -15,6 +15,8 @@ export const QUESTION_TYPES = [
   { value: "FILL_BLANK_QUESTION", label: "填空" },
   { value: "TEXT_ANSWER_QUESTION", label: "问答" },
   { value: "NESTED_ANSWER_QUESTION", label: "套题" },
+  { value: "LISTENING_QUESTION", label: "听力" },
+  { value: "MATCHING_QUESTION", label: "配对题" },
 ];
 export const PUBLICITY_LIST = [
   { label: "公开", value: true },

+ 50 - 20
src/modules/questions/views/EditPaper.vue

@@ -328,7 +328,7 @@
 
                 <div class="quesBody">
                   <span class="ques-title"
-                    >{{ subQuestion.quesParams.number }}.
+                    >{{ subQuestion.quesParam.number }}.
                   </span>
 
                   <span v-html="subQuestion.quesBody"></span>
@@ -337,17 +337,19 @@
                   >
                 </div>
 
-                <div
-                  v-for="(
-                    subQuesOption, subOptIndex
-                  ) in subQuestion.quesOptions"
-                  :key="subOptIndex"
-                  class="quesOption"
-                >
-                  <span class="ques-title"
-                    >{{ subOptIndex | optionOrderWordFilter }}.
-                  </span>
-                  <span v-html="subQuesOption.optionBody"></span>
+                <div v-if="paperDetailUnit.questionType != 'MATCHING_QUESTION'">
+                  <div
+                    v-for="(
+                      subQuesOption, subOptIndex
+                    ) in subQuestion.quesOptions"
+                    :key="subOptIndex"
+                    class="quesOption"
+                  >
+                    <span class="ques-title"
+                      >{{ subOptIndex | optionOrderWordFilter }}.
+                    </span>
+                    <span v-html="subQuesOption.optionBody"></span>
+                  </div>
                 </div>
                 <br />
               </div>
@@ -630,7 +632,12 @@
             <!-- 单选或多选 -->
           </div>
           <div v-if="paper.paperType == 'IMPORT'">
-            <el-row>
+            <el-row
+              v-if="
+                !quesModel.parentType ||
+                quesModel.parentType != 'MATCHING_QUESTION'
+              "
+            >
               <el-col>
                 <el-form-item label="题目">
                   <ckeditor v-model="quesModel.quesBody"></ckeditor>
@@ -653,11 +660,20 @@
                   v-model="multipleRightAnswer"
                   :label="optIndex | optionOrderWordFilter"
                 ></el-checkbox>
+                <span v-if="quesModel.questionType === 'MATCHING_QUESTION'">{{
+                  optIndex | optionOrderWordFilter
+                }}</span>
               </el-col>
               <el-col :span="20">
                 <ckeditor v-model="quesOption.optionBody"></ckeditor>
               </el-col>
-              <el-col :span="2">
+              <el-col
+                v-if="
+                  !quesModel.parentType ||
+                  quesModel.parentType != 'MATCHING_QUESTION'
+                "
+                :span="2"
+              >
                 <i
                   class="el-icon-delete"
                   title="删除"
@@ -671,7 +687,9 @@
                 quesModel.questionType != 'NESTED_ANSWER_QUESTION' &&
                 quesModel.questionType != 'SINGLE_ANSWER_QUESTION' &&
                 quesModel.questionType != 'MULTIPLE_ANSWER_QUESTION' &&
-                quesModel.questionType != 'BOOL_ANSWER_QUESTION'
+                quesModel.questionType != 'BOOL_ANSWER_QUESTION' &&
+                quesModel.questionType != 'MATCHING_QUESTION' &&
+                quesModel.questionType != 'LISTENING_QUESTION'
               "
             >
               <el-form-item label="答案">
@@ -727,7 +745,9 @@
               v-if="
                 paper.paperType == 'IMPORT' &&
                 (quesModel.questionType == 'SINGLE_ANSWER_QUESTION' ||
-                  quesModel.questionType == 'MULTIPLE_ANSWER_QUESTION')
+                  quesModel.questionType == 'MULTIPLE_ANSWER_QUESTION' ||
+                  quesModel.questionType == 'MATCHING_QUESTION') &&
+                quesModel.parentType != 'MATCHING_QUESTION'
               "
               type="primary"
               @click="addQuesOption"
@@ -1370,14 +1390,19 @@ export default {
       this.quesModel.score = paperDetailUnit.score;
       //如果是套题下面的小题编辑 ( paperDetailUnit的类型是套题,question的类型不是套题)
       if (
-        paperDetailUnit.questionType == "NESTED_ANSWER_QUESTION" &&
-        question.questionType != "NESTED_ANSWER_QUESTION"
+        (paperDetailUnit.questionType == "NESTED_ANSWER_QUESTION" &&
+          question.questionType != "NESTED_ANSWER_QUESTION") ||
+        (paperDetailUnit.questionType == "LISTENING_QUESTION" &&
+          question.questionType != "LISTENING_QUESTION") ||
+        (paperDetailUnit.questionType == "MATCHING_QUESTION" &&
+          question.questionType != "MATCHING_QUESTION")
       ) {
         for (var i = 0; i < paperDetailUnit.question.subQuestions.length; i++) {
           if (
             paperDetailUnit.question.subQuestions[i].id == this.quesModel.id
           ) {
             this.quesModel.score = paperDetailUnit.subScoreList[i];
+            this.quesModel.parentType = paperDetailUnit.questionType;
             break;
           }
         }
@@ -1393,7 +1418,12 @@ export default {
           "###"
         );
       }
-
+      if (this.quesModel.questionType == "MATCHING_QUESTION") {
+        this.quesModel.quesBody = this.quesModel.quesBody.replace(
+          /___([1-9][0-9]*)___/g,
+          "##$1##"
+        );
+      }
       this.assignAnswers(); //给singleRightAnswer或multipleRightAnswer赋值
       this.openQuesDialog();
     },
@@ -1861,7 +1891,7 @@ export default {
       }
     },
     getSubQuesEditId(paperDetailUnit, subQuestion) {
-      return paperDetailUnit.question.id + "_" + subQuestion.quesParams.number;
+      return paperDetailUnit.question.id + "_" + subQuestion.quesParam.number;
     },
     //打开考试说明编辑框
     openEditExamPaperRemark() {