AnswerReport.vue 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. <template>
  2. <div class="answer-report">
  3. <div class="title">测试报告</div>
  4. <div class="answer-info">
  5. <div v-if="recordReport.answer_record.is_remarked === 'true'">
  6. <span>总得分</span>
  7. <span>{{ recordReport.answer_record.total_score }} 分</span>
  8. </div>
  9. <div>
  10. <span>耗时</span>
  11. <span>{{ secondFormatConversion(recordReport.answer_record.answer_duration, 'chinese') }}</span>
  12. </div>
  13. <div>
  14. <span>正确</span>
  15. <span>{{ recordReport.answer_record.right_count }}</span>
  16. </div>
  17. <div>
  18. <span>错误</span>
  19. <span>{{ recordReport.answer_record.error_count }}</span>
  20. </div>
  21. </div>
  22. <div
  23. v-if="
  24. recordReport.answer_record.answer_mode === 1 ||
  25. (recordReport.answer_record.answer_mode === 2 && recordReport.answer_record.is_remarked === 'true')
  26. "
  27. class="answer-list"
  28. >
  29. <span
  30. v-for="({ question_id, color_mark }, i) in recordReport.question_list"
  31. :key="question_id"
  32. :class="['answer-list-item']"
  33. :style="{ backgroundColor: color_mark }"
  34. @click="selectQuestion(i)"
  35. >
  36. {{ i + 1 }}
  37. </span>
  38. </div>
  39. </div>
  40. </template>
  41. <script>
  42. import { secondFormatConversion } from '@/utils/transform';
  43. export default {
  44. name: 'AnswerReport',
  45. props: {
  46. recordReport: {
  47. type: Object,
  48. required: true,
  49. },
  50. },
  51. data() {
  52. return {
  53. secondFormatConversion,
  54. };
  55. },
  56. methods: {
  57. selectQuestion(i) {
  58. this.$emit('selectQuestion', i);
  59. },
  60. },
  61. };
  62. </script>
  63. <style lang="scss" scoped>
  64. .answer-report {
  65. display: flex;
  66. flex-direction: column;
  67. row-gap: 24px;
  68. align-items: center;
  69. padding: 24px 40px;
  70. .title {
  71. font-size: 32px;
  72. font-weight: bold;
  73. color: $light-main-color;
  74. }
  75. .answer-info {
  76. display: flex;
  77. column-gap: 120px;
  78. justify-content: center;
  79. width: 770px;
  80. padding: 24px 40px;
  81. background-color: #f7f7f7;
  82. border-radius: 8px;
  83. > div {
  84. display: flex;
  85. flex-direction: column;
  86. row-gap: 8px;
  87. :first-child {
  88. color: #949494;
  89. }
  90. :last-child {
  91. font-size: 24px;
  92. font-weight: bold;
  93. color: #000;
  94. }
  95. }
  96. }
  97. .answer-list {
  98. display: flex;
  99. flex-wrap: wrap;
  100. gap: 24px;
  101. width: 770px;
  102. &-item {
  103. position: relative;
  104. width: 56px;
  105. height: 40px;
  106. padding: 8px;
  107. line-height: 24px;
  108. text-align: center;
  109. cursor: pointer;
  110. background-color: #f0f0f0;
  111. border-radius: 20px;
  112. }
  113. }
  114. }
  115. </style>