question-content.vue 1006 B

123456789101112131415161718192021222324252627282930313233343536
  1. <template>
  2. <div v-html="question.title"/>
  3. <div v-if="!hiddenOptions" class="flex flex-wrap justify-between mt-2">
  4. <div v-for="op in options" v-html="op"/>
  5. </div>
  6. <div class="px-5">
  7. <el-divider border-style="dashed"/>
  8. </div>
  9. <div class="flex items-center gap-10 px-5">
  10. <div class="text-sm">ID:{{ question.id }}</div>
  11. <div class="text-sm">题型:{{ question.qtpye }}</div>
  12. <el-link type="primary" @click="emits('parse')">查看解析</el-link>
  13. <slot/>
  14. </div>
  15. </template>
  16. <script setup name="QuestionContent">
  17. const emits = defineEmits(['parse'])
  18. const props = defineProps({
  19. question: Object,
  20. hiddenOptions: Boolean
  21. })
  22. const options = computed(() => {
  23. const results = []
  24. const codes = ['A', 'B', 'C', 'D', 'E', 'F', 'G']
  25. codes.forEach(code => {
  26. const op = props.question['option' + code]
  27. if (op) results.push(code + '、' + op)
  28. })
  29. return results
  30. })
  31. </script>
  32. <style scoped>
  33. </style>