index.vue 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. <template>
  2. <div class="">
  3. <img class="w-full" src="@/assets/img/login/top_bg.png" />
  4. <div class="pr30 pl30">
  5. <div
  6. class="flex w-full flex-col h137 justify-center content-center relative"
  7. >
  8. <div
  9. @click="
  10. () => {
  11. $router.back();
  12. }
  13. "
  14. class="flex w72 h40 right0 round4 items-center justify-center absolute bottom16 bg-primary-yellow cursor-pointer"
  15. >
  16. <img
  17. class="w15 h15 mr5"
  18. src="@/assets/img/driverExamAnaly/close_icon.png"
  19. />
  20. <span class="font16">关闭</span>
  21. </div>
  22. <div class="font0 overflow-hidden">
  23. <span class="font50 text-red-500">{{ score }}</span>
  24. <span class="font16 text-red-500">分</span>
  25. </div>
  26. <div class="font16 w-full">你的成绩</div>
  27. </div>
  28. <div
  29. class="bg-red-100 h46 lh46 w-full pr20 pl20 text-left"
  30. style="color: #66645c"
  31. >
  32. 提示:打"√"表示是正确答案;打"×"表示你答错的答案;答题是红色表示没有做。
  33. </div>
  34. <div class="pt30 pb30 pt30 pb30">
  35. <div
  36. v-for="(item, index) in list"
  37. :key="index"
  38. class="round10 pt30 pr30 pl30 pb30 text-left round10 gray-border mb20"
  39. >
  40. <div>
  41. {{ index + 1 }}、<span v-html="list[index].question"></span>
  42. </div>
  43. <img
  44. class="w400"
  45. v-if="list[index].mediaUrl"
  46. :src="list[index].mediaUrl"
  47. />
  48. <div
  49. :class="{
  50. yes:
  51. list[index].userAnswer &&
  52. list[index]['an1'] ===
  53. list[index]['an' + list[index].answertrue],
  54. no: list[index].userAnswer && userAnswerList[index] == '1',
  55. 'text-red-500': userAnswerList[index].includes('0'),
  56. }"
  57. key="1"
  58. >
  59. A、{{ list[index]["an1"] }}
  60. </div>
  61. <div
  62. :class="{
  63. yes:
  64. list[index].userAnswer &&
  65. list[index]['an2'] ===
  66. list[index]['an' + list[index].answertrue],
  67. no: list[index].userAnswer && userAnswerList[index] == '2',
  68. 'text-red-500': userAnswerList[index].includes('0'),
  69. }"
  70. key="2"
  71. >
  72. B、{{ list[index]["an2"] }}
  73. </div>
  74. <div
  75. :class="{
  76. yes:
  77. list[index].userAnswer &&
  78. list[index]['an3'] ===
  79. list[index]['an' + list[index].answertrue],
  80. no: list[index].userAnswer && userAnswerList[index] == '3',
  81. 'text-red-500': userAnswerList[index].includes('0'),
  82. }"
  83. key="3"
  84. v-if="list[index]['an3']"
  85. >
  86. C、{{ list[index]["an3"] }}
  87. </div>
  88. <div
  89. :class="{
  90. yes:
  91. list[index].userAnswer &&
  92. list[index]['an4'] ===
  93. list[index]['an' + list[index].answertrue],
  94. no: list[index].userAnswer && userAnswerList[index] == '4',
  95. 'text-red-500': userAnswerList[index].includes('0'),
  96. }"
  97. key="4"
  98. v-if="list[index]['an4']"
  99. >
  100. D、{{ list[index]["an4"] }}
  101. </div>
  102. <div
  103. @click="
  104. () => {
  105. alertVisible = true;
  106. alertContent = list[index].explain;
  107. }
  108. "
  109. class="bg-primary-yellow font16 lh40 w110 text-center round4 mt20 cursor-pointer"
  110. >
  111. 本题解析
  112. </div>
  113. </div>
  114. </div>
  115. </div>
  116. <mProblemAlert
  117. v-model:visible="alertVisible"
  118. :title="alertTitle"
  119. :content="alertContent"
  120. ></mProblemAlert>
  121. </div>
  122. </template>
  123. <script lang="ts">
  124. import { defineComponent, ref } from "vue";
  125. import { threeApi } from "@/api/three/type";
  126. import mProblemAlert from "@/components/mProblemAlert/index.vue";
  127. // import { Button } from "ant-design-vue";
  128. export default defineComponent({
  129. setup() {
  130. return {
  131. score: ref(0),
  132. alertVisible: ref(false),
  133. userAnswerList: ref<string[]>([]),
  134. alertTitle: ref("解析"),
  135. alertContent: ref(""),
  136. list: ref<threeApi.threeForceList[]>([]),
  137. };
  138. },
  139. mounted() {
  140. this.score = Number(this.$route.query.score);
  141. this.userAnswerList = JSON.parse(
  142. (this.$route.query.wrongListRes as string) || "[]"
  143. );
  144. this.list = JSON.parse(
  145. window.sessionStorage.getItem("threeExam_temp_wrong_list") || "[]"
  146. );
  147. },
  148. components: {
  149. mProblemAlert,
  150. // aButton: Button,
  151. },
  152. });
  153. </script>
  154. <style scoped>
  155. .gray-border {
  156. border: 1px solid #d8d8d8;
  157. }
  158. .bg-primary-yellow {
  159. background: #f9de5b;
  160. }
  161. .yes::before {
  162. content: "√";
  163. }
  164. .no::before {
  165. content: "ⅹ";
  166. }
  167. </style>