index.vue 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  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. class="flex w72 h40 right0 round4 items-center justify-center absolute bottom16 bg-primary-yellow cursor-pointer"
  10. >
  11. <img
  12. class="w15 h15 mr5"
  13. src="@/assets/img/driverExamAnaly/close_icon.png"
  14. />
  15. <span class="font16">关闭</span>
  16. </div>
  17. <div class="font0 overflow-hidden">
  18. <span class="font50 text-red-500">{{ score }}</span>
  19. <span class="font16 text-red-500">分</span>
  20. </div>
  21. <div class="font16 w-full">你的成绩</div>
  22. </div>
  23. <div
  24. class="bg-red-100 h46 lh46 w-full pr20 pl20 text-left"
  25. style="color: #66645c"
  26. >
  27. 提示:打"√"表示是正确答案;打"×"表示你答错的答案;答题是红色表示没有做。
  28. </div>
  29. <div class="pt30 pb30 pt30 pb30">
  30. <div
  31. v-for="(item, index) in list"
  32. :key="index"
  33. class="round10 pt30 pr30 pl30 pb30 text-left round10 gray-border mb20"
  34. >
  35. <div>{{ index + 1 }}、{{ list[index].issue }}</div>
  36. <div
  37. :class="{
  38. 'text-red-500': userAnswerList[index] == '0',
  39. }"
  40. v-for="(_item, _index) in list[index].optsArr"
  41. :key="_index"
  42. >
  43. <span v-if="userAnswerList[index] == _index + 1&&userAnswerList[index] != '0'">x</span>
  44. <span v-if="userAnswerList[index] != _index + 1&&userAnswerList[index] != '0'">√</span>
  45. {{ switchIndexBySelect(_index) }} . {{ _item }}
  46. </div>
  47. <div
  48. @click="
  49. () => {
  50. alertVisible = true;
  51. alertContent = list[index].explainJs;
  52. }
  53. "
  54. class="bg-primary-yellow font16 lh40 w110 text-center round4 mt20 cursor-pointer"
  55. >
  56. 本题解析
  57. </div>
  58. </div>
  59. </div>
  60. </div>
  61. <mProblemAlert
  62. v-model:visible="alertVisible"
  63. :title="alertTitle"
  64. :content="alertContent"
  65. ></mProblemAlert>
  66. </div>
  67. </template>
  68. <script lang="ts">
  69. import { openApi } from "@/api/open/type";
  70. import { defineComponent, ref } from "vue";
  71. import mProblemAlert from "@/components/mProblemAlert/index.vue";
  72. // import { Button } from "ant-design-vue";
  73. export default defineComponent({
  74. setup() {
  75. return {
  76. score: ref(0),
  77. list: ref<openApi.selectFreeQuestionInfoRes["rows"]>([]),
  78. userAnswerList: ref<string[]>([]),
  79. alertTitle: "解析",
  80. alertVisible: ref(false),
  81. alertContent: ref(""),
  82. };
  83. },
  84. components: {
  85. mProblemAlert,
  86. // aButton: Button,
  87. },
  88. methods: {
  89. switchIndexBySelect(index: number) {
  90. let name = "";
  91. const i = Number(index);
  92. switch (i) {
  93. case 0:
  94. name = "A";
  95. break;
  96. case 1:
  97. name = "B";
  98. break;
  99. case 2:
  100. name = "C";
  101. break;
  102. case 3:
  103. name = "D";
  104. break;
  105. case 4:
  106. name = "E";
  107. break;
  108. case 5:
  109. name = "F";
  110. break;
  111. }
  112. return name;
  113. },
  114. },
  115. mounted() {
  116. this.score = Number(this.$route.query.score);
  117. this.list = JSON.parse(
  118. window.sessionStorage.getItem("driverExam_temp_wrong_list") || "[]"
  119. );
  120. this.userAnswerList = JSON.parse(
  121. (this.$route.query.wrongListRes as string) || "[]"
  122. );
  123. },
  124. });
  125. </script>
  126. <style scoped>
  127. .gray-border {
  128. border: 1px solid #d8d8d8;
  129. }
  130. .bg-primary-yellow {
  131. background: #f9de5b;
  132. }
  133. </style>