AnswerQuestionPreview.vue 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <!-- eslint-disable vue/no-v-html -->
  2. <template>
  3. <div class="answerquestion-preview">
  4. <div class="stem">
  5. <span class="question-number">{{ data.property.question_number }}.</span>
  6. <span v-html="sanitizeHTML(data.stem)"></span>
  7. </div>
  8. <SoundRecordPreview :wav-blob.sync="answer.answer_list[0].audio_file_id" :disabled="disabled" position="center" />
  9. <div v-if="isEnable(data.property.is_enable_reference_answer) && isShowRightAnswer" class="reference-box">
  10. <h5 class="reference-title">参考答案</h5>
  11. <span class="reference-answer rich-text" v-html="sanitizeHTML(data.reference_answer)"></span>
  12. </div>
  13. </div>
  14. </template>
  15. <script>
  16. import PreviewMixin from './components/PreviewMixin';
  17. import SoundRecordPreview from './components/common/SoundRecordPreview.vue';
  18. export default {
  19. name: 'AnswerQuestionPreview',
  20. components: {
  21. SoundRecordPreview,
  22. },
  23. mixins: [PreviewMixin],
  24. created() {
  25. this.$set(this.answer.answer_list, 0, { audio_file_id: '' });
  26. },
  27. methods: {},
  28. };
  29. </script>
  30. <style lang="scss" scoped>
  31. @use '@/styles/mixin.scss' as *;
  32. .answerquestion-preview {
  33. @include preview;
  34. :deep .sound-record-wrapper {
  35. justify-content: center;
  36. }
  37. .reference-box {
  38. padding: 12px;
  39. background: #f9f8f9;
  40. .reference-title {
  41. margin: 0 0 10px;
  42. font-size: 14px;
  43. font-weight: 400;
  44. line-height: 32px;
  45. color: #4e5969;
  46. }
  47. }
  48. }
  49. </style>