Переглянути джерело

1. 听后填空参考答案 2. 对话题角色个数限制改为1 3.填表题输入换行

dusenyao 1 рік тому
батько
коміт
aaf3c9635c

+ 4 - 0
src/styles/mixin.scss

@@ -77,6 +77,10 @@
       line-height: 32px;
       color: #4e5969;
     }
+
+    .reference-answer {
+      white-space: pre-wrap;
+    }
   }
 }
 

+ 1 - 1
src/views/exercise_questions/create/components/exercises/DialogueQuestion.vue

@@ -196,7 +196,7 @@
         </el-form-item>
         <el-form-item label="角色数">
           <el-select v-model="data.property.role_number" placeholder="请选择">
-            <el-option v-for="item in [2, 3, 4, 5]" :key="item" :label="item" :value="item" />
+            <el-option v-for="item in [1, 2, 3, 4, 5]" :key="item" :label="item" :value="item" />
           </el-select>
         </el-form-item>
         <el-form-item v-for="(item, i) in data.property.role_list" :key="i" :label="`角色 ${i + 1}`" class="role">

+ 5 - 4
src/views/exercise_questions/create/components/exercises/FillQuestion.vue

@@ -48,7 +48,8 @@
           v-model="data.reference_answer"
           type="textarea"
           class="reference-answer"
-          rows="3"
+          resize="none"
+          :autosize="{ minRows: 3 }"
           placeholder="输入参考答案"
         />
       </div>
@@ -241,9 +242,9 @@ export default {
       }
     }
   }
-}
 
-.reference-answer {
-  margin-top: 8px;
+  .reference-answer {
+    margin-top: 8px;
+  }
 }
 </style>

+ 14 - 0
src/views/exercise_questions/create/components/exercises/ListenFillQuestion.vue

@@ -57,6 +57,16 @@
             <span slot="prefix">{{ i + 1 }}.</span>
           </el-input>
         </div>
+
+        <el-input
+          v-if="!isEnable(data.property.is_enable_word_select_fill)"
+          v-model="data.reference_answer"
+          type="textarea"
+          class="reference-answer"
+          resize="none"
+          :autosize="{ minRows: 3 }"
+          placeholder="输入参考答案"
+        />
       </div>
     </template>
 
@@ -318,5 +328,9 @@ export default {
       margin: 0 4px;
     }
   }
+
+  .reference-answer {
+    margin-top: 8px;
+  }
 }
 </style>

+ 15 - 4
src/views/exercise_questions/create/components/exercises/TableFillQuestion.vue

@@ -29,6 +29,8 @@
                 <el-input
                   v-model="data.option_list[j - 1][i - 1].text"
                   placeholder="请输入"
+                  type="textarea"
+                  resize="none"
                   @blur="handleTone(data.option_list[j - 1][i - 1].text, i, j)"
                 />
               </span>
@@ -78,6 +80,8 @@
                       v-model="li.text"
                       class="fill"
                       placeholder="请输入"
+                      type="textarea"
+                      resize="none"
                       @blur="handleTone(li.text, i, j, 'reference')"
                     />
                   </div>
@@ -433,19 +437,22 @@ $table-border: 1px solid #e0e0e0;
           text-align: center;
         }
 
-        .el-input {
+        .el-textarea {
           border-bottom-width: 0;
 
           :deep &__inner {
             height: 54px;
             font-size: 16px;
-            line-height: 54px;
             color: $font-color;
             text-align: left;
             background-color: #fff;
             border-bottom-width: 0;
             border-radius: 0;
 
+            &::placeholder {
+              line-height: 42px;
+            }
+
             &:focus {
               border-color: #c0c4cc;
             }
@@ -524,12 +531,12 @@ $table-border: 1px solid #e0e0e0;
             padding: 8px 12px;
           }
 
-          .el-input.fill {
+          .el-textarea.fill {
             display: inline-flex;
             align-items: center;
             margin: 0 2px;
 
-            :deep input.el-input__inner {
+            :deep .el-textarea__inner {
               padding: 0;
               font-size: 16px;
               color: $font-color;
@@ -537,6 +544,10 @@ $table-border: 1px solid #e0e0e0;
               background-color: #fff;
               border-width: 0;
               border-radius: 0;
+
+              &::placeholder {
+                line-height: 42px;
+              }
             }
           }
         }

+ 3 - 3
src/views/exercise_questions/data/dialogue.js

@@ -66,8 +66,8 @@ export function analysisRecognitionDialogueData(arr) {
       roleList.push(role);
     }
   });
-  if (roleList.length < 2 || roleList.length > 5) {
-    Message.warning('角色数不符合要求,最小为 2,最大为 5');
+  if (roleList.length < 1 || roleList.length > 5) {
+    Message.warning('角色数不符合要求,最小为 1,最大为 5');
     return {};
   }
   let role_number = roleList.length;
@@ -122,7 +122,7 @@ export function getDialogueData() {
       is_enable_voice_answer: switchOption[0].value, // 语音作答
       is_enable_reference_answer: switchOption[0].value, // 是否开启参考答案
       score_type: scoreTypeList[0].value, // 分值类型
-      role_number: 2, // 角色数 2 - 5
+      role_number: 2, // 角色数 1 - 5
       role_list: [getRole(0), getRole(1)], // 角色列表
     },
     // 其他属性

+ 1 - 0
src/views/exercise_questions/data/listenFill.js

@@ -19,6 +19,7 @@ export const listenFillData = {
   description: '', // 描述
   article: '', // 文章
   model_essay: [], // 文章解析后的数据
+  reference_answer: '', // 参考答案
   answer: { score: 1, score_type: scoreTypeList[0].value, answer_list: [] }, // 答案
   // 题型属性
   property: {

+ 7 - 0
src/views/exercise_questions/preview/ListenFillPreview.vue

@@ -49,6 +49,11 @@
         </template>
       </p>
     </div>
+
+    <div v-if="!isEnable(data.property.is_enable_word_select_fill) && isShowRightAnswer" class="reference-box">
+      <h5 class="reference-title">参考答案</h5>
+      <div class="reference-answer rich-text" v-html="sanitizeHTML(data.reference_answer)"></div>
+    </div>
   </div>
 </template>
 
@@ -182,6 +187,7 @@ export default {
       if (!this.isJudgingRightWrong && !this.isShowRightAnswer) {
         return '';
       }
+      if (!this.isEnable(this.data.property.is_enable_word_select_fill)) return '';
       let selectOption = this.answer.answer_list.find((item) => item.mark === mark); // 是否已选中的选项
       let answerOption = this.data.answer.answer_list.find((item) => item.mark === mark); // 是否正确的选项
       if (!selectOption) return '';
@@ -204,6 +210,7 @@ export default {
     },
     computedAnswerText(mark) {
       if (!this.isShowRightAnswer) return '';
+      if (!this.isEnable(this.data.property.is_enable_word_select_fill)) return '';
       let selectOption = this.answer.answer_list.find((item) => item.mark === mark); // 是否已选中的选项
       let answerOption = this.data.answer.answer_list.find((item) => item.mark === mark); // 是否正确的选项
       if (!selectOption) return '';

+ 0 - 17
src/views/exercise_questions/preview/TableFillPreview.vue

@@ -274,22 +274,5 @@ $table-border: 1px solid #e0e0e0;
       }
     }
   }
-
-  .reference-box {
-    padding: 12px;
-    background: #f9f8f9;
-
-    .reference-title {
-      margin: 0 0 10px;
-      font-size: 14px;
-      font-weight: 400;
-      line-height: 32px;
-      color: #4e5969;
-    }
-
-    .reference-answer {
-      white-space: pre-wrap;
-    }
-  }
 }
 </style>