page-answer.vue 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. <template>
  2. <div class="page-answer-box">
  3. <!-- 答题练习 -->
  4. <div class="answer-practice">
  5. <div class="answer-practice-title">答题练习</div>
  6. <div class="answer-practice-describe">坚持练习掌握优质内容</div>
  7. <div class="answer-practice-list">
  8. <div
  9. class="answer-practice-item"
  10. v-for="(item, index) in answerPracticeList"
  11. :key="index"
  12. @click="handleClickAnswerPracticeFun(item)"
  13. >
  14. <div class="answer-practice-item-img">
  15. <van-image width="100%" height="100%" :src="item.url" fit="cover" />
  16. </div>
  17. <div class="answer-practice-item-type-name">{{ item.type.name }}</div>
  18. <div class="answer-practice-item-title">
  19. <div>{{ item.title[0] }}</div>
  20. <div>{{ item.title[1] }}</div>
  21. </div>
  22. </div>
  23. </div>
  24. </div>
  25. <!-- 竞赛答题 -->
  26. <div class="answer-race">
  27. <div class="answer-race-title">竞赛答题</div>
  28. <div class="answer-race-list">
  29. <div
  30. class="answer-race-item"
  31. v-for="(item, index) in answerRaceList"
  32. :key="index"
  33. @click="handleClickAnswerRaceFun(item)"
  34. >
  35. <div class="answer-race-item-title">{{ item.title }}</div>
  36. <div class="answer-race-item-describe">{{ item.describe }}</div>
  37. </div>
  38. </div>
  39. </div>
  40. </div>
  41. </template>
  42. <script>
  43. export default {
  44. name: "page-answer",
  45. components: {},
  46. data() {
  47. return {
  48. answerPracticeList: [], // 答题练习的列表数据
  49. answerRaceList: [] // 竞赛答题的列表数据
  50. };
  51. },
  52. computed: {},
  53. created() {
  54. this.initDataFun(); // 初始化数据
  55. },
  56. methods: {
  57. // 初始化数据
  58. initDataFun() {
  59. this.getAnswerPracticeListFun(); // 查询:答题练习的列表数据
  60. this.getAnswerRaceListFun(); // 查询:竞赛答题的列表数据
  61. },
  62. // 查询:答题练习的列表数据
  63. getAnswerPracticeListFun() {
  64. this.answerPracticeList = [
  65. {
  66. id: 1,
  67. url: require("@/assets/image/answer/01.png"),
  68. title: ["不积跬步", "无以至千里"],
  69. type: { name: "今日答题", code: "daily-questions" }
  70. },
  71. {
  72. id: 2,
  73. url: require("@/assets/image/answer/02.png"),
  74. title: ["周而复始", "方得始终"],
  75. // weekly-questions
  76. type: { name: "每周答题", code: "daily-questions" }
  77. },
  78. {
  79. id: 3,
  80. url: require("@/assets/image/answer/03.png"),
  81. title: ["闻道有先后", "术业有专攻"],
  82. type: { name: "专项答题", code: "daily-questions" }
  83. }
  84. ];
  85. },
  86. // 查询:竞赛答题的列表数据
  87. getAnswerRaceListFun() {
  88. this.answerRaceList = [
  89. {
  90. id: 1,
  91. title: "闯关答题",
  92. describe: "10题一关,答对继续,答错出局"
  93. }
  94. // {
  95. // id: 2,
  96. // title: "双人PK",
  97. // describe: "两两PK,舍我其谁"
  98. // }
  99. ];
  100. },
  101. // 操作:点击了答题练习中的某个
  102. handleClickAnswerPracticeFun(item) {
  103. this.$store.commit("updateAnswerItemStore", {
  104. field: "answerRecruitId",
  105. value: item.type.code // item.id
  106. });
  107. this.$router.push({ name: "answerRecruit" });
  108. },
  109. // 操作:点击了竞赛答题中的某个
  110. handleClickAnswerRaceFun(item) {
  111. switch (item.id) {
  112. case this.answerRaceList[0].id:
  113. this.$router.push({ name: "throughQuestionStart" });
  114. break;
  115. case this.answerRaceList[1].id:
  116. break;
  117. default:
  118. break;
  119. }
  120. }
  121. }
  122. };
  123. </script>
  124. <style lang="scss" scoped>
  125. @import "~@/styles/mixin";
  126. .page-answer-box {
  127. width: 100%;
  128. height: 100%;
  129. overflow-y: auto;
  130. overflow-x: hidden;
  131. font-size: 0.6rem;
  132. .answer-practice {
  133. padding: 0.5rem 0.5rem;
  134. border-bottom: 2px solid #e6e6e6;
  135. .answer-practice-title {
  136. padding-bottom: 0.5rem;
  137. font-size: 0.7rem;
  138. color: #000;
  139. font-weight: bold;
  140. }
  141. .answer-practice-describe {
  142. margin-bottom: 0.5rem;
  143. font-size: 0.65rem;
  144. color: #8d8d8d;
  145. }
  146. .answer-practice-list {
  147. display: flex;
  148. justify-content: space-between;
  149. .answer-practice-item {
  150. width: 31%;
  151. padding: 0.75rem 0;
  152. border: 1px solid #e4e8eb;
  153. border-radius: 4px;
  154. background-color: #fff;
  155. display: flex;
  156. flex-direction: column;
  157. align-items: center;
  158. .answer-practice-item-img {
  159. width: 2rem;
  160. height: 2rem;
  161. overflow: hidden;
  162. }
  163. .answer-practice-item-title {
  164. font-size: 0.6rem;
  165. margin-top: 0.25rem;
  166. }
  167. .answer-practice-item-type-name {
  168. font-size: 0.7rem;
  169. font-weight: bold;
  170. margin: 0.3rem;
  171. }
  172. }
  173. }
  174. }
  175. .answer-race {
  176. padding: 0.5rem 0.5rem;
  177. .answer-race-title {
  178. padding-bottom: 0.5rem;
  179. font-size: 0.7rem;
  180. color: #000;
  181. font-weight: bold;
  182. }
  183. .answer-race-item {
  184. padding: 0 0.5rem 0.5rem;
  185. margin-bottom: 0.7rem;
  186. background-color: #fff;
  187. border-radius: 4px;
  188. box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.16);
  189. .answer-race-item-title {
  190. height: 2rem;
  191. border-bottom: 1px solid #e4e8eb;
  192. line-height: 2rem;
  193. text-align: center;
  194. font-size: 0.7rem;
  195. font-weight: bold;
  196. color: #000;
  197. }
  198. .answer-race-item-describe {
  199. margin: 0.5rem 0;
  200. }
  201. }
  202. }
  203. }
  204. </style>