AnswerQuestionPreview.vue 1.4 KB

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