Przeglądaj źródła

Merge branch 'master' into lhd

natasha 1 rok temu
rodzic
commit
05cf83c433
34 zmienionych plików z 82 dodań i 54 usunięć
  1. 2 0
      src/views/exercise_questions/create/components/common/QuestionMixin.js
  2. 1 1
      src/views/exercise_questions/create/components/common/SelectQuestionType.vue
  3. 1 1
      src/views/exercise_questions/create/components/exercises/ChineseQuestion.vue
  4. 1 1
      src/views/exercise_questions/create/components/exercises/ChooseToneQuestion.vue
  5. 9 4
      src/views/exercise_questions/create/components/exercises/DialogueQuestion.vue
  6. 2 2
      src/views/exercise_questions/create/components/exercises/FillQuestion.vue
  7. 1 1
      src/views/exercise_questions/create/components/exercises/JudgeQuestion.vue
  8. 1 1
      src/views/exercise_questions/create/components/exercises/MatchingQuestion.vue
  9. 1 1
      src/views/exercise_questions/create/components/exercises/ReadAloudQuestion.vue
  10. 1 1
      src/views/exercise_questions/create/components/exercises/ReadQuestion.vue
  11. 1 1
      src/views/exercise_questions/create/components/exercises/RepeatQuestion.vue
  12. 2 2
      src/views/exercise_questions/create/components/exercises/SelectQuestion.vue
  13. 1 1
      src/views/exercise_questions/create/components/exercises/TalkPicture.vue
  14. 2 2
      src/views/exercise_questions/create/components/exercises/WriteQuestion.vue
  15. 10 1
      src/views/exercise_questions/data/common.js
  16. 4 4
      src/views/exercise_questions/data/dialogue.js
  17. 4 4
      src/views/exercise_questions/data/fill.js
  18. 2 2
      src/views/exercise_questions/data/judge.js
  19. 2 2
      src/views/exercise_questions/data/matching.js
  20. 2 2
      src/views/exercise_questions/data/readAloud.js
  21. 10 3
      src/views/exercise_questions/data/select.js
  22. 1 1
      src/views/exercise_questions/preview/ChinesePreview.vue
  23. 1 1
      src/views/exercise_questions/preview/ChooseTonePreview.vue
  24. 1 1
      src/views/exercise_questions/preview/DialoguePreview.vue
  25. 2 2
      src/views/exercise_questions/preview/FillPreview.vue
  26. 1 1
      src/views/exercise_questions/preview/JudgePreview.vue
  27. 1 1
      src/views/exercise_questions/preview/MatchingPreview.vue
  28. 3 1
      src/views/exercise_questions/preview/ReadAloudPreview.vue
  29. 1 1
      src/views/exercise_questions/preview/ReadPreview.vue
  30. 1 1
      src/views/exercise_questions/preview/RepeatPreview.vue
  31. 2 2
      src/views/exercise_questions/preview/SelectPreview.vue
  32. 1 1
      src/views/exercise_questions/preview/TalkPictruePreview.vue
  33. 4 4
      src/views/exercise_questions/preview/WritePreview.vue
  34. 3 0
      src/views/exercise_questions/preview/components/PreviewMixin.js

+ 2 - 0
src/views/exercise_questions/create/components/common/QuestionMixin.js

@@ -7,6 +7,7 @@ import {
   stemTypeList,
   scoreTypeList,
   switchOption,
+  isEnable,
   questionNumberTypeList,
   computedQuestionNumber,
 } from '@/views/exercise_questions/data/common';
@@ -17,6 +18,7 @@ const mixin = {
       stemTypeList,
       scoreTypeList,
       switchOption,
+      isEnable,
       questionNumberTypeList,
       computedQuestionNumber,
     };

+ 1 - 1
src/views/exercise_questions/create/components/common/SelectQuestionType.vue

@@ -73,7 +73,7 @@ export default {
   border-radius: 8px 8px 0 0;
 
   .el-cascader {
-    width: 100px;
+    width: 110px;
 
     :deep .el-input__inner {
       background-color: #fff;

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

@@ -14,7 +14,7 @@
         <RichText v-if="data.property.stem_type === stemTypeList[1].value" v-model="data.stem" placeholder="输入题干" />
 
         <el-input
-          v-show="data.property.is_enable_description"
+          v-show="isEnable(data.property.is_enable_description)"
           v-model="data.description"
           rows="3"
           resize="none"

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

@@ -14,7 +14,7 @@
         <RichText v-if="data.property.stem_type === stemTypeList[1].value" v-model="data.stem" placeholder="输入题干" />
 
         <el-input
-          v-show="data.property.is_enable_description === 'true'"
+          v-show="isEnable(data.property.is_enable_description)"
           v-model="data.description"
           rows="3"
           resize="none"

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

@@ -14,7 +14,7 @@
         <RichText v-if="data.property.stem_type === stemTypeList[1].value" v-model="data.stem" placeholder="输入题干" />
 
         <el-input
-          v-show="data.property.is_enable_description"
+          v-show="isEnable(data.property.is_enable_description)"
           v-model="data.description"
           rows="3"
           resize="none"
@@ -25,12 +25,17 @@
 
       <div class="content">
         <span class="subtitle">输入对话:</span>
-        <el-input v-model="data.dialogue" type="textarea" rows="6" placeholder="输入对话" />
+        <el-input v-model="data.dialogue" :autosize="{ minRows: 3 }" type="textarea" placeholder="输入对话" />
       </div>
 
-      <div v-if="data.property.is_enable_reference_answer" class="content">
+      <div v-if="isEnable(data.property.is_enable_reference_answer)" class="content">
         <span class="subtitle">参考答案:</span>
-        <el-input v-model="data.reference_answer" type="textarea" rows="3" placeholder="输入参考答案" />
+        <el-input
+          v-model="data.reference_answer"
+          :autosize="{ minRows: 3 }"
+          type="textarea"
+          placeholder="输入参考答案"
+        />
       </div>
     </template>
 

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

@@ -14,14 +14,14 @@
         <RichText v-if="data.property.stem_type === stemTypeList[1].value" v-model="data.stem" placeholder="输入题干" />
 
         <UploadAudio
-          v-show="data.property.is_enable_listening"
+          v-show="isEnable(data.property.is_enable_listening)"
           :file-id="data.file_id_list?.[0]"
           @upload="upload"
           @deleteFile="deleteFile"
         />
 
         <el-input
-          v-show="data.property.is_enable_description"
+          v-show="isEnable(data.property.is_enable_description)"
           v-model="data.description"
           rows="3"
           resize="none"

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

@@ -14,7 +14,7 @@
         <RichText v-if="data.property.stem_type === stemTypeList[1].value" v-model="data.stem" placeholder="输入题干" />
 
         <UploadAudio
-          v-show="data.property.is_enable_listening"
+          v-show="isEnable(data.property.is_enable_listening)"
           :file-id="data.file_id_list?.[0]"
           @upload="upload"
           @deleteFile="deleteFile"

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

@@ -14,7 +14,7 @@
         <RichText v-if="data.property.stem_type === stemTypeList[1].value" v-model="data.stem" placeholder="输入题干" />
 
         <el-input
-          v-show="data.property.is_enable_description"
+          v-show="isEnable(data.property.is_enable_description)"
           v-model="data.description"
           rows="3"
           resize="none"

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

@@ -14,7 +14,7 @@
 
       <div class="content">
         <el-input
-          v-if="data.property.is_enable_reference_answer"
+          v-if="isEnable(data.property.is_enable_reference_answer)"
           v-model="data.reference_answer"
           type="textarea"
           rows="3"

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

@@ -14,7 +14,7 @@
         <RichText v-if="data.property.stem_type === stemTypeList[1].value" v-model="data.stem" placeholder="输入题干" />
 
         <el-input
-          v-show="data.property.is_enable_description"
+          v-show="isEnable(data.property.is_enable_description)"
           v-model="data.description"
           rows="3"
           resize="none"

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

@@ -15,7 +15,7 @@
         <RichText v-if="data.property.stem_type === stemTypeList[1].value" v-model="data.stem" placeholder="输入题干" />
 
         <el-input
-          v-show="data.property.is_enable_description"
+          v-show="isEnable(data.property.is_enable_description)"
           v-model="data.description"
           rows="3"
           resize="none"

+ 2 - 2
src/views/exercise_questions/create/components/exercises/SelectQuestion.vue

@@ -15,7 +15,7 @@
         <RichText v-if="data.property.stem_type === stemTypeList[1].value" v-model="data.stem" placeholder="输入题干" />
 
         <el-input
-          v-show="data.property.is_enable_description"
+          v-show="isEnable(data.property.is_enable_description)"
           v-model="data.description"
           rows="3"
           resize="none"
@@ -24,7 +24,7 @@
         />
 
         <UploadAudio
-          v-show="data.property.is_enable_listening"
+          v-show="isEnable(data.property.is_enable_listening)"
           :file-id="data.file_id_list?.[0]"
           @upload="upload"
           @deleteFile="deleteFile"

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

@@ -14,7 +14,7 @@
         <RichText v-if="data.property.stem_type === stemTypeList[1].value" v-model="data.stem" placeholder="输入题干" />
 
         <el-input
-          v-show="data.property.is_enable_description"
+          v-show="isEnable(data.property.is_enable_description)"
           v-model="data.description"
           rows="3"
           resize="none"

+ 2 - 2
src/views/exercise_questions/create/components/exercises/WriteQuestion.vue

@@ -14,7 +14,7 @@
         <RichText v-if="data.property.stem_type === stemTypeList[1].value" v-model="data.stem" placeholder="输入题干" />
 
         <el-input
-          v-show="data.property.is_enable_description === 'true'"
+          v-show="isEnable(data.property.is_enable_description)"
           v-model="data.description"
           rows="3"
           resize="none"
@@ -26,7 +26,7 @@
       <div class="content">
         <label class="title-little">文章:</label>
         <RichText v-model="data.article" placeholder="输入文章" />
-        <template v-if="data.property.is_enable_sample_text === 'true'">
+        <template v-if="isEnable(data.property.is_enable_sample_text)">
           <el-divider class="write-divider" />
           <label class="title-little">范文:</label>
           <RichText v-model="data.sample_text" placeholder="输入范文" :wordlimit-num="5000" />

+ 10 - 1
src/views/exercise_questions/data/common.js

@@ -21,7 +21,7 @@ export const questionTypeOption = [
       { label: '朗读题', value: 'read_aloud' },
       { label: '听说训练', value: 'repeat' },
       { label: '看图说话', value: 'talk_picture' },
-      { label: '对话练习', value: 'dialogue' },
+      { label: '对话', value: 'dialogue' },
     ],
   },
   {
@@ -126,6 +126,15 @@ export const switchOption = [
   { value: 'false', label: '关闭' },
 ];
 
+/**
+ * 是否开启
+ * @param {String} value 值
+ * @returns Boolean
+ */
+export function isEnable(value) {
+  return value === switchOption[0].value;
+}
+
 // 题号类型
 export const questionNumberTypeList = [
   { value: 'recalculate', label: '重新计算' },

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

@@ -1,4 +1,4 @@
-import { stemTypeList, questionNumberTypeList, scoreTypeList } from './common';
+import { stemTypeList, questionNumberTypeList, scoreTypeList, switchOption } from './common';
 
 // 对话题数据模板
 export const dialogueData = {
@@ -13,9 +13,9 @@ export const dialogueData = {
     stem_type: stemTypeList[0].value, // 题干类型
     question_number: 1, // 题号
     score: 1, // 分值
-    is_enable_description: false, // 描述
-    is_enable_voice_answer: true, // 语音作答
-    is_enable_reference_answer: true, // 参考答案
+    is_enable_description: switchOption[0].value, // 描述
+    is_enable_voice_answer: switchOption[0].value, // 语音作答
+    is_enable_reference_answer: switchOption[0].value, // 参考答案
     score_type: scoreTypeList[0].value, // 分值类型
   },
   // 其他属性

+ 4 - 4
src/views/exercise_questions/data/fill.js

@@ -1,4 +1,4 @@
-import { stemTypeList, questionNumberTypeList, scoreTypeList } from './common';
+import { stemTypeList, questionNumberTypeList, scoreTypeList, switchOption } from './common';
 
 // 填空题数据模板
 export const fillData = {
@@ -13,9 +13,9 @@ export const fillData = {
   property: {
     stem_type: stemTypeList[0].value, // 题干类型
     question_number: 1, // 题号
-    is_enable_listening: true, // 是否听力
-    is_enable_description: false, // 描述
-    is_enable_voice_answer: false, // 语音作答
+    is_enable_listening: switchOption[0].value, // 是否听力
+    is_enable_description: switchOption[1].value, // 描述
+    is_enable_voice_answer: switchOption[1].value, // 语音作答
     score: 1, // 分值
     score_type: scoreTypeList[0].value, // 分值类型
   },

+ 2 - 2
src/views/exercise_questions/data/judge.js

@@ -1,4 +1,4 @@
-import { optionTypeList, stemTypeList, questionNumberTypeList, scoreTypeList } from './common';
+import { optionTypeList, stemTypeList, questionNumberTypeList, scoreTypeList, switchOption } from './common';
 import { getRandomNumber } from '@/utils/index';
 
 // 选项类型列表
@@ -27,7 +27,7 @@ export const judgeData = {
     stem_type: stemTypeList[0].value, // 题干类型
     question_number: 1, // 题号
     option_type_list: [option_type_list[0].value, option_type_list[1].value], // 选项类型列表
-    is_enable_listening: true, // 是否听力
+    is_enable_listening: switchOption[0].value, // 是否听力
     score: 1, // 分值
     score_type: scoreTypeList[0].value, // 分值类型
   },

+ 2 - 2
src/views/exercise_questions/data/matching.js

@@ -1,4 +1,4 @@
-import { optionTypeList, stemTypeList, scoreTypeList, questionNumberTypeList } from './common';
+import { optionTypeList, stemTypeList, scoreTypeList, questionNumberTypeList, switchOption } from './common';
 import { getRandomNumber } from '@/utils/index';
 
 // 连线类型列表
@@ -33,7 +33,7 @@ export function getMatchingDataTemplate() {
       stem_type: stemTypeList[0].value, // 题干类型
       question_number: 1, // 题号
       column_number: columnNumberList[0].value, // 列数
-      is_enable_description: false, // 描述
+      is_enable_description: switchOption[1].value, // 描述
       score: 1, // 分值
       score_type: scoreTypeList[0].value, // 分值类型
     },

+ 2 - 2
src/views/exercise_questions/data/readAloud.js

@@ -1,4 +1,4 @@
-import { stemTypeList, questionNumberTypeList, scoreTypeList } from './common';
+import { stemTypeList, questionNumberTypeList, scoreTypeList, switchOption } from './common';
 
 // 朗读题数据模板
 export const readAloudData = {
@@ -13,7 +13,7 @@ export const readAloudData = {
   property: {
     stem_type: stemTypeList[0].value, // 题干类型
     question_number: 1, // 题号
-    is_enable_reference_answer: true, // 是否开启参考答案
+    is_enable_reference_answer: switchOption[0].value, // 是否开启参考答案
     score: 1, // 分值
     score_type: scoreTypeList[0].value, // 分值类型
   },

+ 10 - 3
src/views/exercise_questions/data/select.js

@@ -1,4 +1,11 @@
-import { optionTypeList, stemTypeList, selectTypeList, scoreTypeList, questionNumberTypeList } from './common';
+import {
+  optionTypeList,
+  stemTypeList,
+  selectTypeList,
+  scoreTypeList,
+  questionNumberTypeList,
+  switchOption,
+} from './common';
 import { getRandomNumber } from '@/utils/index';
 
 export function getOption(content = '') {
@@ -22,9 +29,9 @@ export const selectData = {
   property: {
     stem_type: stemTypeList[0].value, // 题干类型
     question_number: 1, // 题号
-    is_enable_description: false, // 描述
+    is_enable_description: switchOption[1].value, // 描述
     select_type: selectTypeList[0].value, // 选择类型
-    is_enable_listening: true, // 是否听力
+    is_enable_listening: switchOption[0].value, // 是否听力
     score: 1, // 分值
     score_type: scoreTypeList[0].value, // 分值类型
   },

+ 1 - 1
src/views/exercise_questions/preview/ChinesePreview.vue

@@ -5,7 +5,7 @@
       <span class="question-number">{{ data.property.question_number }}.</span>
       <span v-html="sanitizeHTML(data.stem)"></span>
     </div>
-    <div v-if="data.property.is_enable_description" class="description">{{ data.description }}</div>
+    <div v-if="isEnable(data.property.is_enable_description)" class="description">{{ data.description }}</div>
   </div>
 </template>
 

+ 1 - 1
src/views/exercise_questions/preview/ChooseTonePreview.vue

@@ -5,7 +5,7 @@
       <span class="question-number">{{ data.property.question_number }}.</span>
       <span v-html="sanitizeHTML(data.stem)"></span>
     </div>
-    <div v-if="data.property.is_enable_description === 'true'" class="description">{{ data.description }}</div>
+    <div v-if="isEnable(data.property.is_enable_description)" class="description">{{ data.description }}</div>
 
     <div class="option-list">
       <li v-for="(item, i) in data.option_list" :key="i" :class="['option-item']">

+ 1 - 1
src/views/exercise_questions/preview/DialoguePreview.vue

@@ -5,7 +5,7 @@
       <span class="question-number">{{ data.property.question_number }}.</span>
       <span v-html="sanitizeHTML(data.stem)"></span>
     </div>
-    <div v-if="data.property.is_enable_description" class="description">{{ data.description }}</div>
+    <div v-if="isEnable(data.property.is_enable_description)" class="description">{{ data.description }}</div>
     <div class="dialogue">{{ data.dialogue }}</div>
   </div>
 </template>

+ 2 - 2
src/views/exercise_questions/preview/FillPreview.vue

@@ -5,10 +5,10 @@
       <span class="question-number">{{ data.property.question_number }}.</span>
       <span v-html="sanitizeHTML(data.stem)"></span>
     </div>
-    <div v-if="data.property.is_enable_description" class="description">{{ data.description }}</div>
+    <div v-if="isEnable(data.property.is_enable_description)" class="description">{{ data.description }}</div>
 
     <AudioPlay
-      v-if="data.property.is_enable_listening && data.file_id_list.length > 0"
+      v-if="isEnable(data.property.is_enable_listening) && data.file_id_list.length > 0"
       :file-id="data.file_id_list[0]"
     />
 

+ 1 - 1
src/views/exercise_questions/preview/JudgePreview.vue

@@ -6,7 +6,7 @@
       <span v-html="sanitizeHTML(data.stem)"></span>
     </div>
     <AudioPlay
-      v-if="data.property.is_enable_listening && data.file_id_list.length > 0"
+      v-if="isEnable(data.property.is_enable_listening) && data.file_id_list.length > 0"
       :file-id="data.file_id_list[0]"
     />
 

+ 1 - 1
src/views/exercise_questions/preview/MatchingPreview.vue

@@ -5,7 +5,7 @@
       <span class="question-number">{{ data.property.question_number }}.</span>
       <span v-html="sanitizeHTML(data.stem)"></span>
     </div>
-    <div v-if="data.property.is_enable_description" class="description">{{ data.description }}</div>
+    <div v-if="isEnable(data.property.is_enable_description)" class="description">{{ data.description }}</div>
 
     <ul ref="list" class="option-list">
       <li v-for="(item, i) in optionList" :key="i" class="list-item">

+ 3 - 1
src/views/exercise_questions/preview/ReadAloudPreview.vue

@@ -5,7 +5,9 @@
       <span class="question-number">{{ data.property.question_number }}.</span>
       <span v-html="sanitizeHTML(data.stem)"></span>
     </div>
-    <div v-if="data.property.is_enable_reference_answer" class="reference-answer">{{ data.reference_answer }}</div>
+    <div v-if="isEnable(data.property.is_enable_reference_answer)" class="reference-answer">
+      {{ data.reference_answer }}
+    </div>
   </div>
 </template>
 

+ 1 - 1
src/views/exercise_questions/preview/ReadPreview.vue

@@ -5,7 +5,7 @@
       <span class="question-number">{{ data.property.question_number }}.</span>
       <span v-html="sanitizeHTML(data.stem)"></span>
     </div>
-    <div v-if="data.property.is_enable_description" class="description">{{ data.description }}</div>
+    <div v-if="isEnable(data.property.is_enable_description)" class="description">{{ data.description }}</div>
   </div>
 </template>
 

+ 1 - 1
src/views/exercise_questions/preview/RepeatPreview.vue

@@ -5,7 +5,7 @@
       <span class="question-number">{{ data.property.question_number }}.</span>
       <span v-html="sanitizeHTML(data.stem)"></span>
     </div>
-    <div v-if="data.property.is_enable_description" class="description">{{ data.description }}</div>
+    <div v-if="isEnable(data.property.is_enable_description)" class="description">{{ data.description }}</div>
   </div>
 </template>
 

+ 2 - 2
src/views/exercise_questions/preview/SelectPreview.vue

@@ -5,9 +5,9 @@
       <span class="question-number">{{ data.property.question_number }}.</span>
       <span v-html="sanitizeHTML(data.stem)"></span>
     </div>
-    <div v-if="data.property.is_enable_description" class="description">{{ data.description }}</div>
+    <div v-if="isEnable(data.property.is_enable_description)" class="description">{{ data.description }}</div>
     <AudioPlay
-      v-if="data.property.is_enable_listening && data.file_id_list.length > 0"
+      v-if="isEnable(data.property.is_enable_listening) && data.file_id_list.length > 0"
       :file-id="data.file_id_list[0]"
     />
     <ul class="option-list">

+ 1 - 1
src/views/exercise_questions/preview/TalkPictruePreview.vue

@@ -5,7 +5,7 @@
       <span class="question-number">{{ data.property.question_number }}.</span>
       <span v-html="sanitizeHTML(data.stem)"></span>
     </div>
-    <div v-if="data.property.is_enable_description" class="description">{{ data.description }}</div>
+    <div v-if="isEnable(data.property.is_enable_description)" class="description">{{ data.description }}</div>
   </div>
 </template>
 

+ 4 - 4
src/views/exercise_questions/preview/WritePreview.vue

@@ -6,7 +6,7 @@
       <span v-html="sanitizeHTML(data.stem)"></span>
     </div>
     <div class="article-content" v-html="sanitizeHTML(data.article)"></div>
-    <div v-if="data.property.is_enable_description === 'true'" class="description">{{ data.description }}</div>
+    <div v-if="isEnable(data.property.is_enable_description)" class="description">{{ data.description }}</div>
     <el-input
       v-model="user_answer.text"
       rows="3"
@@ -15,7 +15,7 @@
       :maxlength="data.property.word_num"
       show-word-limit
     />
-    <template v-if="data.property.is_enable_voice_answer === 'true'">
+    <template v-if="isEnable(data.property.is_enable_voice_answer)">
       <!-- 语音作答 -->
       <SoundRecordPreview
         :wav-blob="user_answer.voice_file_id"
@@ -24,7 +24,7 @@
         @updataWav="updataWav"
       />
     </template>
-    <template v-if="data.property.is_enable_upload_accessory === 'true'">
+    <template v-if="isEnable(data.property.is_enable_upload_accessory)">
       <!-- 上传附件 -->
       <UploadFiles
         :fille-number="999"
@@ -36,7 +36,7 @@
         @deleteFile="handleDelete"
       />
     </template>
-    <template v-if="data.property.is_enable_sample_text === 'true'">
+    <template v-if="isEnable(data.property.is_enable_sample_text)">
       <el-divider content-position="center"
         ><span
           :class="['sample-text', show_sample_text ? 'sample-show' : 'sample-hide']"

+ 3 - 0
src/views/exercise_questions/preview/components/PreviewMixin.js

@@ -2,6 +2,8 @@
 import AudioPlay from '@/views/exercise_questions/create/components/common/AudioPlay.vue';
 import DOMPurify from 'dompurify';
 
+import { isEnable } from '@/views/exercise_questions/data/common';
+
 const PreviewMixin = {
   props: {
     data: {
@@ -14,6 +16,7 @@ const PreviewMixin = {
   },
   data() {
     return {
+      isEnable,
       answer: { answer_list: [] }, // 答案
     };
   },