panduan.vue 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <template>
  2. <view class="ezy-panduan-box">
  3. <view>{{question.onlyNum}}、</view>
  4. <!-- 题干区域 -->
  5. <rich-text :nodes="question.name" class="ezy-shiti-question"></rich-text>
  6. <!-- 选项区域 -->
  7. <radio-group @change="radioChange" class="danxuan-option-box">
  8. <label class="option-question" :class="formatClass('1')">
  9. <radio value="1" :disabled="showError" :checked="question.reply == '1'"/>
  10. <view>正确</view>
  11. </label>
  12. <label class="option-question" :class="formatClass('0')">
  13. <radio value="0" :disabled="showError" :checked="question.reply == '0'"/>
  14. <view>错误</view>
  15. </label>
  16. </radio-group>
  17. </view>
  18. </template>
  19. <script setup>
  20. const props = defineProps({
  21. question: {
  22. type: Object,
  23. },
  24. showError: {
  25. type: Boolean,
  26. default: false
  27. }
  28. })
  29. function radioChange(e) {
  30. if (props.showError) {
  31. return;
  32. }
  33. props.question.reply = e.detail.value;
  34. }
  35. function formatClass(index) {
  36. if (props.showError) {
  37. return {
  38. active_right: props.question.result == index,
  39. showError: props.question.reply == index && props.question.result != index
  40. }
  41. } else {
  42. return {
  43. active: props.question.reply == index
  44. }
  45. }
  46. }
  47. </script>