EssayQuestion.vue 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <template>
  2. <QuestionBase>
  3. <template #content>
  4. <div class="stem">
  5. <RichText v-model="data.stem" placeholder="输入题干" />
  6. <RichText
  7. v-if="isEnable(data.property.is_enable_description)"
  8. v-model="data.description"
  9. placeholder="输入提示"
  10. />
  11. <el-input
  12. v-if="isEnable(data.property.is_enable_reference_answer)"
  13. v-model="data.reference_answer"
  14. type="textarea"
  15. rows="3"
  16. placeholder="输入参考答案"
  17. />
  18. </div>
  19. </template>
  20. <template #property>
  21. <el-form :model="data.property" label-width="72px" label-position="left">
  22. <el-form-item label="题号">
  23. <el-input v-model="data.property.question_number" />
  24. </el-form-item>
  25. <el-form-item>
  26. <el-radio
  27. v-for="{ value, label } in questionNumberTypeList"
  28. :key="value"
  29. v-model="data.other.question_number_type"
  30. :label="value"
  31. >
  32. {{ label }}
  33. </el-radio>
  34. </el-form-item>
  35. <el-form-item label="题干题号">
  36. <el-select v-model="data.property.stem_question_number_font_size">
  37. <el-option v-for="item in fontSizeList" :key="item" :label="item" :value="item" />
  38. </el-select>
  39. </el-form-item>
  40. <el-form-item label="提示">
  41. <el-radio
  42. v-for="{ value, label } in switchOption"
  43. :key="value"
  44. v-model="data.property.is_enable_description"
  45. :label="value"
  46. >
  47. {{ label }}
  48. </el-radio>
  49. </el-form-item>
  50. <el-form-item label="参考答案">
  51. <el-radio
  52. v-for="{ value, label } in switchOption"
  53. :key="value"
  54. v-model="data.property.is_enable_reference_answer"
  55. :label="value"
  56. >
  57. {{ label }}
  58. </el-radio>
  59. </el-form-item>
  60. <el-form-item label="分值">
  61. <el-radio
  62. v-for="{ value, label } in scoreTypeList"
  63. :key="value"
  64. v-model="data.property.score_type"
  65. :label="value"
  66. >
  67. {{ label }}
  68. </el-radio>
  69. </el-form-item>
  70. <el-form-item>
  71. <el-input-number
  72. v-model="data.property.score"
  73. :min="0"
  74. :step="data.property.score_type === scoreTypeList[0].value ? 1 : 0.1"
  75. />
  76. </el-form-item>
  77. </el-form>
  78. </template>
  79. </QuestionBase>
  80. </template>
  81. <script>
  82. import QuestionMixin from '../common/QuestionMixin.js';
  83. import { essayQuestionData } from '@/views/exercise_questions/data/essayQuestion';
  84. export default {
  85. name: 'EssayQuestion',
  86. mixins: [QuestionMixin],
  87. data() {
  88. return {
  89. data: JSON.parse(JSON.stringify(essayQuestionData)),
  90. };
  91. },
  92. methods: {
  93. /**
  94. * 智能识别
  95. * @param {String} text 识别数据
  96. */
  97. recognition(text) {
  98. this.recognitionCommon(text, true);
  99. },
  100. },
  101. };
  102. </script>
  103. <style lang="scss" scoped>
  104. .stem {
  105. border-bottom-width: 0 !important;
  106. }
  107. </style>