problem_index.html 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. <!-- +---------------------------------------------------------------------- -->
  2. <!-- | CRMEB [ CRMEB赋能开发者,助力企业发展 ] -->
  3. <!-- +---------------------------------------------------------------------- -->
  4. <!-- | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved. -->
  5. <!-- +---------------------------------------------------------------------- -->
  6. <!-- | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权 -->
  7. <!-- +---------------------------------------------------------------------- -->
  8. <!-- | Author: CRMEB Team <admin@crmeb.com> -->
  9. <!-- +---------------------------------------------------------------------- -->
  10. {extend name="public/container"}
  11. {block name="title"}练习详情{/block}
  12. {block name="head_top"}
  13. <style>
  14. body {
  15. background-color: #f5f5f5;
  16. }
  17. </style>
  18. {/block}
  19. {block name="content"}
  20. <div v-cloak id="app">
  21. <div class="problem-index-page">
  22. <div class="wrapper">
  23. <div class="title">{{ problem.title }}</div>
  24. <div class="group">{{ problem.answer + problem.fake_sales}}人已答题<div>试题数量:<span>{{ problem.item_number }}题</span></div>
  25. </div>
  26. <ul>
  27. <li>
  28. <div><span>{{ problem.single_number }}</span>题</div>
  29. 单选题
  30. </li>
  31. <li>
  32. <div><span>{{ problem.many_number }}</span>题</div>
  33. 多选题
  34. </li>
  35. <li>
  36. <div><span>{{ problem.judge_number }}</span>题</div>
  37. 判断题
  38. </li>
  39. </ul>
  40. <div>
  41. <a v-if="!status" href="javascript:" @click="handleAnswer">开始练习</a>
  42. <a v-if="status === 1" href="javascript:" @click="handleAnswer">再次练习</a>
  43. <a v-if="status === 2" href="javascript:" @click="handleAnswer">继续练习</a>
  44. </div>
  45. </div>
  46. <div class="content">
  47. <div>题型介绍:</div>
  48. <ol>
  49. <li>单选题(选项中只有1个正确答案);</li>
  50. <li>多选题(选项中至少有2个正确答案);</li>
  51. <li>判断题(选项中只有1个正确答案)。</li>
  52. </ol>
  53. </div>
  54. </div>
  55. <quick-menu></quick-menu>
  56. <base-login :login-show="loginShow" :site-name="site_name" @login-close="logComplete"></base-login>
  57. </div>
  58. {/block}
  59. {block name='foot'}
  60. <script>
  61. var uid = '{$uid}', id = "{$id}";
  62. var titles = '{$titles}';
  63. var wechat_share =<?php echo isset($overallShareWechat) ? $overallShareWechat : '{}'; ?>;
  64. window.overallShare = false;
  65. require(['vue', 'helper', 'store', 'components/base-login/index', '{__WAP_PATH}zsff/js/quick.js'], function (Vue, $h, $http, BaseLogin) {
  66. var site_name = '{$Auth_site_name}';
  67. var vm = new Vue({
  68. el: '#app',
  69. filters: {
  70. m: function (n, d) {
  71. x = ('' + n).length, p = Math.pow, d = p(10, d);
  72. x -= x % 3;
  73. return Math.round(n * d / p(10, x)) / d + " kMGTPE"[x / 3]
  74. }
  75. },
  76. components: {
  77. 'base-login': BaseLogin
  78. },
  79. data: {
  80. id: id,
  81. problem: {},
  82. status: -1,
  83. e_id: 0,
  84. loginShow: false,
  85. site_name: site_name
  86. },
  87. created: function () {
  88. this.getDetail();
  89. this.getStatus();
  90. },
  91. mounted: function () {
  92. var that = this;
  93. this.$nextTick(function () {
  94. mapleWx($jssdk(), function () {
  95. this.onMenuShareAll({
  96. title: titles,
  97. desc: titles,
  98. imgUrl: wechat_share.wechat_share_img,
  99. link: location.origin + "{:url('topic/problem_index')}?spread_uid=" + uid + "&id=" + $h.getParmas('id')
  100. });
  101. });
  102. });
  103. },
  104. methods: {
  105. getDetail: function () {
  106. $h.loadFFF();
  107. $http.baseGet($h.U({
  108. c: 'topic',
  109. a: 'testPaperDetails',
  110. q: {
  111. id: id
  112. }
  113. }), function (res) {
  114. $h.loadClear();
  115. vm.problem = res.data.data;
  116. });
  117. },
  118. getStatus: function () {
  119. var vm = this;
  120. $http.baseGet($h.U({
  121. c: 'topic',
  122. a: 'situationRecord',
  123. q: {id: this.id}
  124. }), function (res) {
  125. vm.status = res.data.data;
  126. });
  127. },
  128. getAnswer: function () {
  129. var vm = this;
  130. $http.baseGet($h.U({
  131. c: 'topic',
  132. a: 'userAnswer',
  133. q: {
  134. test_id: this.id,
  135. type: 1
  136. }
  137. }), function (res) {
  138. $h.setCookie('e_id', res.data.data);
  139. vm.e_id = res.data.data;
  140. window.location.assign($h.U({
  141. c: 'topic',
  142. a: 'problem_detail',
  143. q: {
  144. test_id: vm.id,
  145. e_id: vm.e_id,
  146. type: 1
  147. }
  148. }));
  149. });
  150. },
  151. getAnswerAgain: function () {
  152. var vm = this;
  153. $http.baseGet($h.U({
  154. c: 'topic',
  155. a: 'takeTheTestAgain',
  156. q: {
  157. test_id: this.id,
  158. type: 1
  159. }
  160. }), function (res) {
  161. $h.setCookie('e_id', res.data.data);
  162. vm.e_id = res.data.data;
  163. window.location.assign($h.U({
  164. c: 'topic',
  165. a: 'problem_detail',
  166. q: {
  167. test_id: vm.id,
  168. e_id: vm.e_id,
  169. type: 1
  170. }
  171. }));
  172. });
  173. },
  174. getAnswerContinue: function () {
  175. var vm = this;
  176. $http.baseGet($h.U({
  177. c: 'topic',
  178. a: 'continueAnswer',
  179. q: {
  180. test_id: this.id,
  181. type: 1
  182. }
  183. }), function (res) {
  184. $h.setCookie('e_id', res.data.data);
  185. vm.e_id = res.data.data;
  186. window.location.assign($h.U({
  187. c: 'topic',
  188. a: 'problem_detail',
  189. q: {
  190. test_id: vm.id,
  191. e_id: vm.e_id,
  192. type: 1
  193. }
  194. }));
  195. });
  196. },
  197. handleAnswer: function () {
  198. var vm = this;
  199. $h.loadFFF();
  200. $http.baseGet($h.U({
  201. c: 'index',
  202. a: 'login_user'
  203. }), function () {
  204. $h.loadClear();
  205. switch (vm.status) {
  206. case 0:
  207. vm.getAnswer();
  208. break;
  209. case 1:
  210. vm.getAnswerAgain();
  211. break;
  212. case 2:
  213. vm.getAnswerContinue();
  214. break;
  215. }
  216. }, function () {
  217. vm.loginShow = true;
  218. }, true);
  219. },
  220. logComplete: function () {
  221. this.loginShow = false;
  222. this.getDetail();
  223. this.getStatus();
  224. }
  225. }
  226. });
  227. });
  228. </script>
  229. {/block}