natasha 1 year ago
parent
commit
2469d701b7

+ 8 - 0
src/views/exercise_questions/create/components/common/QuestionBase.vue

@@ -106,6 +106,14 @@ export default {
             }
           }
         }
+
+        .title-little {
+          margin: 8px 0;
+          font-size: 14px;
+          font-weight: 400;
+          line-height: 22px;
+          color: #4e5969;
+        }
       }
 
       .footer {

+ 16 - 60
src/views/exercise_questions/create/components/exercises/ChineseQuestion.vue

@@ -22,16 +22,12 @@
           type="textarea"
           placeholder="输入描述"
         />
-
-        <UploadAudio
-          v-show="data.property.is_enable_listening"
-          :file-id="data.file_id_list?.[0]"
-          @upload="upload"
-          @deleteFile="deleteFile"
-        />
       </div>
 
-      <div class="content"></div>
+      <div class="content">
+        <p class="title-little">题目:</p>
+        <el-input v-model="data.content" rows="3" resize="none" type="textarea" placeholder="输入汉字,用空格分开" />
+      </div>
     </template>
 
     <template #property>
@@ -69,41 +65,29 @@
             {{ label }}
           </el-radio>
         </el-form-item>
-        <el-form-item label="选项">
+        <el-form-item label="分值">
           <el-radio
-            v-for="{ value, label } in selectTypeList"
+            v-for="{ value, label } in scoreTypeList"
             :key="value"
-            v-model="data.property.select_type"
+            v-model="data.property.score_type"
             :label="value"
-            @input="changeSelectType"
           >
             {{ label }}
           </el-radio>
         </el-form-item>
-        <el-form-item label="听力">
-          <el-radio
-            v-for="{ value, label } in switchOption"
-            :key="value"
-            v-model="data.property.is_enable_listening"
-            :label="value"
-          >
-            {{ label }}
-          </el-radio>
+        <el-form-item label-width="45px">
+          <el-input v-model="data.property.score" type="number" />
         </el-form-item>
-        <el-form-item label="分值">
+        <el-form-item label="类型">
           <el-radio
-            v-for="{ value, label } in scoreTypeList"
+            v-for="{ value, label } in learnTypeList"
             :key="value"
-            v-model="data.property.score_type"
+            v-model="data.property.learn_type"
             :label="value"
-            :disabled="scoreTypeList[1].value === value && data.property.select_type === selectTypeList[0].value"
           >
             {{ label }}
           </el-radio>
         </el-form-item>
-        <el-form-item label-width="45px">
-          <el-input v-model="data.property.score" type="number" />
-        </el-form-item>
       </el-form>
     </template>
   </QuestionBase>
@@ -113,8 +97,8 @@
 import UploadAudio from '../common/UploadAudio.vue';
 import QuestionMixin from '../common/QuestionMixin.js';
 
-import { selectTypeList, scoreTypeList, changeOptionType } from '@/views/exercise_questions/data/common';
-import { selectData, getOption } from '@/views/exercise_questions/data/select';
+import { scoreTypeList, changeOptionType } from '@/views/exercise_questions/data/common';
+import { chineseData, getOption, learnTypeList } from '@/views/exercise_questions/data/chinese';
 
 export default {
   name: 'ChineseQuestion',
@@ -124,9 +108,9 @@ export default {
   mixins: [QuestionMixin],
   data() {
     return {
-      selectTypeList,
+      learnTypeList,
       changeOptionType,
-      data: JSON.parse(JSON.stringify(selectData)),
+      data: JSON.parse(JSON.stringify(chineseData)),
     };
   },
   methods: {
@@ -145,34 +129,6 @@ export default {
         this.data.option_list = arr.slice(1).map((content) => getOption(content));
       }
     },
-    changeSelectType(val) {
-      if (val === selectTypeList[0].value && this.data.answer.select_list.length > 1) {
-        this.data.answer.select_list = [this.data.answer.select_list[0]];
-      }
-      // 当多选题切换到单选题时,分值类型切换为总分
-      if (val === selectTypeList[0].value && this.data.property.score_type === scoreTypeList[1].value) {
-        this.data.property.score_type = scoreTypeList[0].value;
-      }
-    },
-    isAnswer(mark) {
-      return this.data.answer.select_list.indexOf(mark) !== -1;
-    },
-    selectAnswer(mark) {
-      let index = this.data.answer.select_list.indexOf(mark);
-      if (this.data.property.select_type === selectTypeList[0].value) {
-        this.data.answer.select_list = [mark];
-      }
-      if (this.data.property.select_type === selectTypeList[1].value) {
-        if (index === -1) {
-          this.data.answer.select_list.push(mark);
-        } else {
-          this.data.answer.select_list.splice(index, 1);
-        }
-      }
-    },
-    addOption() {
-      this.data.option_list.push(getOption());
-    },
   },
 };
 </script>

+ 10 - 10
src/views/exercise_questions/data/chinese.js

@@ -1,32 +1,32 @@
-import { optionTypeList, stemTypeList, selectTypeList, scoreTypeList, questionNumberTypeList } from './common';
+import { optionTypeList, stemTypeList, scoreTypeList, questionNumberTypeList } from './common';
 import { getRandomNumber } from '@/utils/index';
 
+// 汉字类型列表
+export const learnTypeList = [
+    { value: 'miao', label: '描红' },
+    { value: 'write', label: '书写' },
+    { value: 'learn', label: '笔画学习' },
+];
 export function getOption(content = '') {
     return { content, mark: getRandomNumber() };
 }
 
 // 选择题数据模板
-export const selectData = {
+export const chineseData = {
     type: 'chinese', // 题型
     stem: '', // 题干
     option_number_show_mode: optionTypeList[0].value, // 选项类型
     description: '', // 描述
-    option_list: [
-        { content: '', mark: getRandomNumber() },
-        { content: '', mark: getRandomNumber() },
-        { content: '', mark: getRandomNumber() },
-    ], // 选项
-    file_id_list: [], // 文件 id 列表
+    content: '', // 题目
     answer: { select_list: [], score: 0, score_type: scoreTypeList[0].value }, // 答案
     // 题型属性
     property: {
         stem_type: stemTypeList[0].value, // 题干类型
         question_number: 1, // 题号
         is_enable_description: false, // 描述
-        select_type: selectTypeList[0].value, // 选择类型
-        is_enable_listening: true, // 是否听力
         score: 1, // 分值
         score_type: scoreTypeList[0].value, // 分值类型
+        learn_type: learnTypeList[0].value,
     },
     // 其他属性
     other: {