examTest.ts 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739
  1. import { ref, watch } from "vue";
  2. import dayjs from "dayjs";
  3. import Api from '@/api/api';
  4. import router from "@/router/"
  5. import store from "@/store/"
  6. export function useExamTest() {
  7. let letter = ["A", "B", "C", "D", "E", "F"]
  8. let interfaceErrVisible = ref(false)
  9. let correctAnswerVisible = ref(false)
  10. let list = ref<selectTestQuestionInfo.row[]>([
  11. {
  12. createTime: '2021-11-05 10:25:51',
  13. id: 20,
  14. answerArr: [""],
  15. image: null,
  16. imageYdt: null,
  17. answer: '√',
  18. answerkeyword: null,
  19. explainGif: 'https://t1-1305573081.file.myqcloud.com/qb/gif/20.gif',
  20. explainJq: '题目中看到“追究”.答对;“不追究”.答错。',
  21. explainJs:
  22. '《道路交通安全法》第九十九条:未取得机动车驾驶证、机动车驾驶证被吊销或者机动车驾驶证被暂扣期间驾驶机动车的,由公安机关交通管理部门处二百元以上二千元以下罚款,可以并处十五日以下拘留。',
  23. explainMp3: 'https://t1-1305573081.file.myqcloud.com/qb/mp3/explain20.mp3',
  24. issue: '对未取得驾驶证驾驶机动车的,追究其法律责任。',
  25. opts: '√-×',
  26. optsArr: ['√', '×'],
  27. skillkeyword: '追究-答对',
  28. titlekeyword: '追究',
  29. issuemp3: 'https://t1-1305573081.file.myqcloud.com/qb/issue/issue20.mp3',
  30. answermp3: 'https://t1-1305573081.file.myqcloud.com/qb/answer/answer20.mp3',
  31. explainjsmp3: 'https://t1-1305573081.file.myqcloud.com/qb/explainjs/explainJS20.mp3',
  32. liceCar: '1',
  33. liceBus: '1',
  34. liceTruck: '1',
  35. liceMoto: '0',
  36. sequeIssue: '2',
  37. classIssue: '32',
  38. placeIssue: '0',
  39. excellIssue: '1',
  40. copyIssue: '0',
  41. mockIssue: '0',
  42. sequeIssueName: '练习二',
  43. placeIssueName: null,
  44. excellIssueName: '必学题一',
  45. classIssueName: '刑法题',
  46. questionType: 1,
  47. subject: 1,
  48. classSort: 16,
  49. excellSort: 39,
  50. sequeSort: 118,
  51. placeSort: null,
  52. userAnswer: '',
  53. },
  54. {
  55. createTime: '2021-11-05 10:25:51',
  56. id: 20,
  57. image: null,
  58. imageYdt: null,
  59. answer: '√',
  60. answerkeyword: null,
  61. explainGif: 'https://t1-1305573081.file.myqcloud.com/qb/gif/20.gif',
  62. explainJq: '题目中看到“追究”.答对;“不追究”.答错。',
  63. explainJs:
  64. '《道路交通安全法》第九十九条:未取得机动车驾驶证、机动车驾驶证被吊销或者机动车驾驶证被暂扣期间驾驶机动车的,由公安机关交通管理部门处二百元以上二千元以下罚款,可以并处十五日以下拘留。',
  65. explainMp3: 'https://t1-1305573081.file.myqcloud.com/qb/mp3/explain20.mp3',
  66. issue: '对未取得驾驶证驾驶机动车的,追究其法律责任。',
  67. opts: '√-×',
  68. optsArr: ['√', '×'],
  69. skillkeyword: '追究-答对',
  70. titlekeyword: '追究',
  71. issuemp3: 'https://t1-1305573081.file.myqcloud.com/qb/issue/issue20.mp3',
  72. answermp3: 'https://t1-1305573081.file.myqcloud.com/qb/answer/answer20.mp3',
  73. explainjsmp3: 'https://t1-1305573081.file.myqcloud.com/qb/explainjs/explainJS20.mp3',
  74. liceCar: '1',
  75. liceBus: '1',
  76. liceTruck: '1',
  77. liceMoto: '0',
  78. sequeIssue: '2',
  79. classIssue: '32',
  80. placeIssue: '0',
  81. excellIssue: '1',
  82. copyIssue: '0',
  83. mockIssue: '0',
  84. sequeIssueName: '练习二',
  85. placeIssueName: null,
  86. excellIssueName: '必学题一',
  87. classIssueName: '刑法题',
  88. questionType: 1,
  89. subject: 1,
  90. classSort: 16,
  91. excellSort: 39,
  92. sequeSort: 118,
  93. placeSort: null,
  94. userAnswer: '',
  95. },
  96. {
  97. createTime: '2021-11-05 10:25:51',
  98. id: 20,
  99. image: null,
  100. imageYdt: null,
  101. answer: '√',
  102. answerkeyword: null,
  103. explainGif: 'https://t1-1305573081.file.myqcloud.com/qb/gif/20.gif',
  104. explainJq: '题目中看到“追究”.答对;“不追究”.答错。',
  105. explainJs:
  106. '《道路交通安全法》第九十九条:未取得机动车驾驶证、机动车驾驶证被吊销或者机动车驾驶证被暂扣期间驾驶机动车的,由公安机关交通管理部门处二百元以上二千元以下罚款,可以并处十五日以下拘留。',
  107. explainMp3: 'https://t1-1305573081.file.myqcloud.com/qb/mp3/explain20.mp3',
  108. issue: '对未取得驾驶证驾驶机动车的,追究其法律责任。',
  109. opts: '√-×',
  110. optsArr: ['√', '×'],
  111. skillkeyword: '追究-答对',
  112. titlekeyword: '追究',
  113. issuemp3: 'https://t1-1305573081.file.myqcloud.com/qb/issue/issue20.mp3',
  114. answermp3: 'https://t1-1305573081.file.myqcloud.com/qb/answer/answer20.mp3',
  115. explainjsmp3: 'https://t1-1305573081.file.myqcloud.com/qb/explainjs/explainJS20.mp3',
  116. liceCar: '1',
  117. liceBus: '1',
  118. liceTruck: '1',
  119. liceMoto: '0',
  120. sequeIssue: '2',
  121. classIssue: '32',
  122. placeIssue: '0',
  123. excellIssue: '1',
  124. copyIssue: '0',
  125. mockIssue: '0',
  126. sequeIssueName: '练习二',
  127. placeIssueName: null,
  128. excellIssueName: '必学题一',
  129. classIssueName: '刑法题',
  130. questionType: 1,
  131. subject: 1,
  132. classSort: 16,
  133. excellSort: 39,
  134. sequeSort: 118,
  135. placeSort: null,
  136. userAnswer: '',
  137. },
  138. {
  139. createTime: '2021-11-05 10:25:51',
  140. id: 20,
  141. image: null,
  142. imageYdt: null,
  143. answer: '√',
  144. answerkeyword: null,
  145. explainGif: 'https://t1-1305573081.file.myqcloud.com/qb/gif/20.gif',
  146. explainJq: '题目中看到“追究”.答对;“不追究”.答错。',
  147. explainJs:
  148. '《道路交通安全法》第九十九条:未取得机动车驾驶证、机动车驾驶证被吊销或者机动车驾驶证被暂扣期间驾驶机动车的,由公安机关交通管理部门处二百元以上二千元以下罚款,可以并处十五日以下拘留。',
  149. explainMp3: 'https://t1-1305573081.file.myqcloud.com/qb/mp3/explain20.mp3',
  150. issue: '对未取得驾驶证驾驶机动车的,追究其法律责任。',
  151. opts: '√-×',
  152. optsArr: ['√', '×'],
  153. skillkeyword: '追究-答对',
  154. titlekeyword: '追究',
  155. issuemp3: 'https://t1-1305573081.file.myqcloud.com/qb/issue/issue20.mp3',
  156. answermp3: 'https://t1-1305573081.file.myqcloud.com/qb/answer/answer20.mp3',
  157. explainjsmp3: 'https://t1-1305573081.file.myqcloud.com/qb/explainjs/explainJS20.mp3',
  158. liceCar: '1',
  159. liceBus: '1',
  160. liceTruck: '1',
  161. liceMoto: '0',
  162. sequeIssue: '2',
  163. classIssue: '32',
  164. placeIssue: '0',
  165. excellIssue: '1',
  166. copyIssue: '0',
  167. mockIssue: '0',
  168. sequeIssueName: '练习二',
  169. placeIssueName: null,
  170. excellIssueName: '必学题一',
  171. classIssueName: '刑法题',
  172. questionType: 1,
  173. subject: 1,
  174. classSort: 16,
  175. excellSort: 39,
  176. sequeSort: 118,
  177. placeSort: null,
  178. userAnswer: '',
  179. },
  180. {
  181. createTime: '2021-11-05 10:25:51',
  182. id: 20,
  183. image: null,
  184. imageYdt: null,
  185. answer: '√',
  186. answerkeyword: null,
  187. explainGif: 'https://t1-1305573081.file.myqcloud.com/qb/gif/20.gif',
  188. explainJq: '题目中看到“追究”.答对;“不追究”.答错。',
  189. explainJs:
  190. '《道路交通安全法》第九十九条:未取得机动车驾驶证、机动车驾驶证被吊销或者机动车驾驶证被暂扣期间驾驶机动车的,由公安机关交通管理部门处二百元以上二千元以下罚款,可以并处十五日以下拘留。',
  191. explainMp3: 'https://t1-1305573081.file.myqcloud.com/qb/mp3/explain20.mp3',
  192. issue: '对未取得驾驶证驾驶机动车的,追究其法律责任。',
  193. opts: '√-×',
  194. optsArr: ['√', '×'],
  195. skillkeyword: '追究-答对',
  196. titlekeyword: '追究',
  197. issuemp3: 'https://t1-1305573081.file.myqcloud.com/qb/issue/issue20.mp3',
  198. answermp3: 'https://t1-1305573081.file.myqcloud.com/qb/answer/answer20.mp3',
  199. explainjsmp3: 'https://t1-1305573081.file.myqcloud.com/qb/explainjs/explainJS20.mp3',
  200. liceCar: '1',
  201. liceBus: '1',
  202. liceTruck: '1',
  203. liceMoto: '0',
  204. sequeIssue: '2',
  205. classIssue: '32',
  206. placeIssue: '0',
  207. excellIssue: '1',
  208. copyIssue: '0',
  209. mockIssue: '0',
  210. sequeIssueName: '练习二',
  211. placeIssueName: null,
  212. excellIssueName: '必学题一',
  213. classIssueName: '刑法题',
  214. questionType: 1,
  215. subject: 1,
  216. classSort: 16,
  217. excellSort: 39,
  218. sequeSort: 118,
  219. placeSort: null,
  220. userAnswer: '',
  221. },
  222. {
  223. createTime: '2021-11-05 10:25:51',
  224. id: 20,
  225. image: null,
  226. imageYdt: null,
  227. answer: '√',
  228. answerkeyword: null,
  229. explainGif: 'https://t1-1305573081.file.myqcloud.com/qb/gif/20.gif',
  230. explainJq: '题目中看到“追究”.答对;“不追究”.答错。',
  231. explainJs:
  232. '《道路交通安全法》第九十九条:未取得机动车驾驶证、机动车驾驶证被吊销或者机动车驾驶证被暂扣期间驾驶机动车的,由公安机关交通管理部门处二百元以上二千元以下罚款,可以并处十五日以下拘留。',
  233. explainMp3: 'https://t1-1305573081.file.myqcloud.com/qb/mp3/explain20.mp3',
  234. issue: '对未取得驾驶证驾驶机动车的,追究其法律责任。',
  235. opts: '√-×',
  236. optsArr: ['√', '×'],
  237. skillkeyword: '追究-答对',
  238. titlekeyword: '追究',
  239. issuemp3: 'https://t1-1305573081.file.myqcloud.com/qb/issue/issue20.mp3',
  240. answermp3: 'https://t1-1305573081.file.myqcloud.com/qb/answer/answer20.mp3',
  241. explainjsmp3: 'https://t1-1305573081.file.myqcloud.com/qb/explainjs/explainJS20.mp3',
  242. liceCar: '1',
  243. liceBus: '1',
  244. liceTruck: '1',
  245. liceMoto: '0',
  246. sequeIssue: '2',
  247. classIssue: '32',
  248. placeIssue: '0',
  249. excellIssue: '1',
  250. copyIssue: '0',
  251. mockIssue: '0',
  252. sequeIssueName: '练习二',
  253. placeIssueName: null,
  254. excellIssueName: '必学题一',
  255. classIssueName: '刑法题',
  256. questionType: 1,
  257. subject: 1,
  258. classSort: 16,
  259. excellSort: 39,
  260. sequeSort: 118,
  261. placeSort: null,
  262. userAnswer: '',
  263. },
  264. {
  265. createTime: '2021-11-05 10:25:51',
  266. id: 20,
  267. image: null,
  268. imageYdt: null,
  269. answer: '√',
  270. answerkeyword: null,
  271. explainGif: 'https://t1-1305573081.file.myqcloud.com/qb/gif/20.gif',
  272. explainJq: '题目中看到“追究”.答对;“不追究”.答错。',
  273. explainJs:
  274. '《道路交通安全法》第九十九条:未取得机动车驾驶证、机动车驾驶证被吊销或者机动车驾驶证被暂扣期间驾驶机动车的,由公安机关交通管理部门处二百元以上二千元以下罚款,可以并处十五日以下拘留。',
  275. explainMp3: 'https://t1-1305573081.file.myqcloud.com/qb/mp3/explain20.mp3',
  276. issue: '对未取得驾驶证驾驶机动车的,追究其法律责任。',
  277. opts: '√-×',
  278. optsArr: ['√', '×'],
  279. skillkeyword: '追究-答对',
  280. titlekeyword: '追究',
  281. issuemp3: 'https://t1-1305573081.file.myqcloud.com/qb/issue/issue20.mp3',
  282. answermp3: 'https://t1-1305573081.file.myqcloud.com/qb/answer/answer20.mp3',
  283. explainjsmp3: 'https://t1-1305573081.file.myqcloud.com/qb/explainjs/explainJS20.mp3',
  284. liceCar: '1',
  285. liceBus: '1',
  286. liceTruck: '1',
  287. liceMoto: '0',
  288. sequeIssue: '2',
  289. classIssue: '32',
  290. placeIssue: '0',
  291. excellIssue: '1',
  292. copyIssue: '0',
  293. mockIssue: '0',
  294. sequeIssueName: '练习二',
  295. placeIssueName: null,
  296. excellIssueName: '必学题一',
  297. classIssueName: '刑法题',
  298. questionType: 1,
  299. subject: 1,
  300. classSort: 16,
  301. excellSort: 39,
  302. sequeSort: 118,
  303. placeSort: null,
  304. userAnswer: '',
  305. },
  306. {
  307. createTime: '2021-11-05 10:25:51',
  308. id: 20,
  309. image: null,
  310. imageYdt: null,
  311. answer: '√',
  312. answerkeyword: null,
  313. explainGif: 'https://t1-1305573081.file.myqcloud.com/qb/gif/20.gif',
  314. explainJq: '题目中看到“追究”.答对;“不追究”.答错。',
  315. explainJs:
  316. '《道路交通安全法》第九十九条:未取得机动车驾驶证、机动车驾驶证被吊销或者机动车驾驶证被暂扣期间驾驶机动车的,由公安机关交通管理部门处二百元以上二千元以下罚款,可以并处十五日以下拘留。',
  317. explainMp3: 'https://t1-1305573081.file.myqcloud.com/qb/mp3/explain20.mp3',
  318. issue: '对未取得驾驶证驾驶机动车的,追究其法律责任。',
  319. opts: '√-×',
  320. optsArr: ['√', '×'],
  321. skillkeyword: '追究-答对',
  322. titlekeyword: '追究',
  323. issuemp3: 'https://t1-1305573081.file.myqcloud.com/qb/issue/issue20.mp3',
  324. answermp3: 'https://t1-1305573081.file.myqcloud.com/qb/answer/answer20.mp3',
  325. explainjsmp3: 'https://t1-1305573081.file.myqcloud.com/qb/explainjs/explainJS20.mp3',
  326. liceCar: '1',
  327. liceBus: '1',
  328. liceTruck: '1',
  329. liceMoto: '0',
  330. sequeIssue: '2',
  331. classIssue: '32',
  332. placeIssue: '0',
  333. excellIssue: '1',
  334. copyIssue: '0',
  335. mockIssue: '0',
  336. sequeIssueName: '练习二',
  337. placeIssueName: null,
  338. excellIssueName: '必学题一',
  339. classIssueName: '刑法题',
  340. questionType: 1,
  341. subject: 1,
  342. classSort: 16,
  343. excellSort: 39,
  344. sequeSort: 118,
  345. placeSort: null,
  346. userAnswer: '',
  347. },
  348. {
  349. createTime: '2021-11-05 10:25:51',
  350. id: 20,
  351. image: null,
  352. imageYdt: null,
  353. answer: '√',
  354. answerkeyword: null,
  355. explainGif: 'https://t1-1305573081.file.myqcloud.com/qb/gif/20.gif',
  356. explainJq: '题目中看到“追究”.答对;“不追究”.答错。',
  357. explainJs:
  358. '《道路交通安全法》第九十九条:未取得机动车驾驶证、机动车驾驶证被吊销或者机动车驾驶证被暂扣期间驾驶机动车的,由公安机关交通管理部门处二百元以上二千元以下罚款,可以并处十五日以下拘留。',
  359. explainMp3: 'https://t1-1305573081.file.myqcloud.com/qb/mp3/explain20.mp3',
  360. issue: '对未取得驾驶证驾驶机动车的,追究其法律责任。',
  361. opts: '√-×',
  362. optsArr: ['√', '×'],
  363. skillkeyword: '追究-答对',
  364. titlekeyword: '追究',
  365. issuemp3: 'https://t1-1305573081.file.myqcloud.com/qb/issue/issue20.mp3',
  366. answermp3: 'https://t1-1305573081.file.myqcloud.com/qb/answer/answer20.mp3',
  367. explainjsmp3: 'https://t1-1305573081.file.myqcloud.com/qb/explainjs/explainJS20.mp3',
  368. liceCar: '1',
  369. liceBus: '1',
  370. liceTruck: '1',
  371. liceMoto: '0',
  372. sequeIssue: '2',
  373. classIssue: '32',
  374. placeIssue: '0',
  375. excellIssue: '1',
  376. copyIssue: '0',
  377. mockIssue: '0',
  378. sequeIssueName: '练习二',
  379. placeIssueName: null,
  380. excellIssueName: '必学题一',
  381. classIssueName: '刑法题',
  382. questionType: 1,
  383. subject: 1,
  384. classSort: 16,
  385. excellSort: 39,
  386. sequeSort: 118,
  387. placeSort: null,
  388. userAnswer: '',
  389. },
  390. {
  391. createTime: '2021-11-05 10:25:51',
  392. id: 20,
  393. image: null,
  394. imageYdt: null,
  395. answer: '√',
  396. answerkeyword: null,
  397. explainGif: 'https://t1-1305573081.file.myqcloud.com/qb/gif/20.gif',
  398. explainJq: '题目中看到“追究”.答对;“不追究”.答错。',
  399. explainJs:
  400. '《道路交通安全法》第九十九条:未取得机动车驾驶证、机动车驾驶证被吊销或者机动车驾驶证被暂扣期间驾驶机动车的,由公安机关交通管理部门处二百元以上二千元以下罚款,可以并处十五日以下拘留。',
  401. explainMp3: 'https://t1-1305573081.file.myqcloud.com/qb/mp3/explain20.mp3',
  402. issue: '对未取得驾驶证驾驶机动车的,追究其法律责任。',
  403. opts: '√-×',
  404. optsArr: ['√', '×'],
  405. skillkeyword: '追究-答对',
  406. titlekeyword: '追究',
  407. issuemp3: 'https://t1-1305573081.file.myqcloud.com/qb/issue/issue20.mp3',
  408. answermp3: 'https://t1-1305573081.file.myqcloud.com/qb/answer/answer20.mp3',
  409. explainjsmp3: 'https://t1-1305573081.file.myqcloud.com/qb/explainjs/explainJS20.mp3',
  410. liceCar: '1',
  411. liceBus: '1',
  412. liceTruck: '1',
  413. liceMoto: '0',
  414. sequeIssue: '2',
  415. classIssue: '32',
  416. placeIssue: '0',
  417. excellIssue: '1',
  418. copyIssue: '0',
  419. mockIssue: '0',
  420. sequeIssueName: '练习二',
  421. placeIssueName: null,
  422. excellIssueName: '必学题一',
  423. classIssueName: '刑法题',
  424. questionType: 1,
  425. subject: 1,
  426. classSort: 16,
  427. excellSort: 39,
  428. sequeSort: 118,
  429. placeSort: null,
  430. userAnswer: '',
  431. },
  432. ]);
  433. let correctScore = ref(0)
  434. let errorScore = ref(0)
  435. let beforeSubmitVisible = ref(false)
  436. let submitVisible = ref(false)
  437. let wrongQuestion = ref<selectTestQuestionInfo.row>({
  438. createTime: "2021-11-05 10:25:51",
  439. id: 20,
  440. image: null,
  441. imageYdt: null,
  442. answer: "√",
  443. answerkeyword: null,
  444. explainGif: "https://t1-1305573081.file.myqcloud.com/qb/gif/20.gif",
  445. explainJq: "题目中看到“追究”.答对;“不追究”.答错。",
  446. explainJs:
  447. "《道路交通安全法》第九十九条:未取得机动车驾驶证、机动车驾驶证被吊销或者机动车驾驶证被暂扣期间驾驶机动车的,由公安机关交通管理部门处二百元以上二千元以下罚款,可以并处十五日以下拘留。",
  448. explainMp3:
  449. "https://t1-1305573081.file.myqcloud.com/qb/mp3/explain20.mp3",
  450. issue: "对未取得驾驶证驾驶机动车的,追究其法律责任。",
  451. opts: "√-×",
  452. optsArr: ["√", "×"],
  453. skillkeyword: "追究-答对",
  454. titlekeyword: "追究",
  455. issuemp3:
  456. "https://t1-1305573081.file.myqcloud.com/qb/issue/issue20.mp3",
  457. answermp3:
  458. "https://t1-1305573081.file.myqcloud.com/qb/answer/answer20.mp3",
  459. explainjsmp3:
  460. "https://t1-1305573081.file.myqcloud.com/qb/explainjs/explainJS20.mp3",
  461. liceCar: "1",
  462. liceBus: "1",
  463. liceTruck: "1",
  464. liceMoto: "0",
  465. sequeIssue: "2",
  466. classIssue: "32",
  467. placeIssue: "0",
  468. excellIssue: "1",
  469. copyIssue: "0",
  470. mockIssue: "0",
  471. sequeIssueName: "练习二",
  472. placeIssueName: null,
  473. excellIssueName: "必学题一",
  474. classIssueName: "刑法题",
  475. questionType: 1,
  476. subject: 1,
  477. classSort: 16,
  478. excellSort: 39,
  479. sequeSort: 118,
  480. placeSort: null,
  481. userAnswer: "",
  482. })
  483. let submitScore = () => {
  484. //重置为0,不然会有数据不准确的bug
  485. correctScore.value = 0
  486. errorScore.value = 0
  487. list.value.forEach(item => {
  488. //如果item为假就不统计
  489. if (item.userAnswer.length == 0) {
  490. return
  491. }
  492. if (item.questionType < 3) {
  493. correctScore.value += item.answer == item.userAnswer ? 1 : 0
  494. errorScore.value += item.answer == item.userAnswer ? 0 : 1
  495. }
  496. else if (item.questionType == 3) {
  497. item.answer.split("-").sort().toString() === item.userAnswer.sort().toString() ? ++correctScore.value : ++errorScore.value
  498. }
  499. // correctScore.value += item.answer == item.userAnswer ? 1 : 0
  500. // if (item.userAnswer) {
  501. // errorScore.value += item.answer == item.userAnswer ? 0 : 1
  502. // }
  503. })
  504. beforeSubmitVisible.value = true
  505. store.commit('SET_ENDTIME', {
  506. endTime: `${dayjs().format('MM-DD HH:mm:ss')}`,
  507. });
  508. }
  509. let listIndex = ref(0);
  510. let wrongQuestionIndex = ref(0)
  511. watch(listIndex, (newVal:number, oldVal:number) => {
  512. if (newVal !== oldVal) {
  513. if (list.value[oldVal].questionType == 3) {
  514. let userAnswerLetter: any[] = [];
  515. list.value[oldVal].userAnswer.forEach((element: string) => {
  516. userAnswerLetter.push(
  517. letter[list.value[oldVal].optsArr.indexOf(element)]
  518. );
  519. });
  520. if (
  521. list.value[oldVal].userAnswer.length > 0 &&
  522. list.value[oldVal].userAnswer.sort().toString() !==
  523. list.value[oldVal].answer.split("-").sort().toString()
  524. ) {
  525. // this.$set(this.list[oldVal], "isError", true);
  526. list.value[oldVal].isError = true
  527. list.value[oldVal].isComplete = (list.value[oldVal].userAnswer.length!==0)
  528. list.value[oldVal].userAnswerLetter = userAnswerLetter.sort().join("")
  529. // this.$set(
  530. // this.list[oldVal],
  531. // "userAnswerLetter",
  532. // userAnswerLetter.sort().join("")
  533. // );
  534. correctAnswerVisible.value = true;
  535. wrongQuestion.value = list.value[oldVal];
  536. wrongQuestionIndex.value = oldVal;
  537. } else {
  538. list.value[oldVal].userAnswerLetter = userAnswerLetter.sort().join("")
  539. list.value[oldVal].isError = false
  540. list.value[oldVal].isComplete = (list.value[oldVal].userAnswer.length!==0)
  541. correctAnswerVisible.value = false;
  542. }
  543. } else if (list.value[oldVal].questionType < 3) {
  544. let userAnswerLetter = [];
  545. if (
  546. list.value[oldVal].userAnswer &&
  547. list.value[oldVal].userAnswer !== list.value[oldVal].answer
  548. ) {
  549. list.value[oldVal].userAnswerLetter = letter[
  550. list.value[oldVal].optsArr.indexOf(list.value[oldVal].userAnswer)
  551. ]
  552. list.value[oldVal].isError = true
  553. //判断是否完成
  554. list.value[oldVal].isComplete = (list.value[oldVal].userAnswer.length!==0)
  555. correctAnswerVisible.value = true;
  556. list.value[oldVal].userAnswerLetter = letter[
  557. list.value[oldVal].optsArr.indexOf(list.value[oldVal].userAnswer)
  558. ]
  559. wrongQuestion.value = list.value[oldVal];
  560. wrongQuestionIndex.value = oldVal;
  561. } else {
  562. correctAnswerVisible.value = false
  563. list.value[oldVal].isError = false
  564. //判断是否完成
  565. list.value[oldVal].isComplete = (list.value[oldVal].userAnswer.length!==0)
  566. list.value[oldVal].userAnswerLetter = letter[
  567. list.value[oldVal].optsArr.indexOf(list.value[oldVal].userAnswer)
  568. ]
  569. // this.$set(
  570. // this.list[oldVal],
  571. // "userAnswerLetter",
  572. // this.letter[
  573. // this.list[oldVal].optsArr.indexOf(this.list[oldVal].userAnswer)
  574. // ]
  575. // );
  576. // this.correctAnswer = false;
  577. }
  578. }
  579. }
  580. })
  581. let changeListIndex = (e: PointerEvent) => {
  582. if (e.target?.dataset?.key) {
  583. listIndex.value = Number(e.target?.dataset?.key) - 1;
  584. }
  585. };
  586. let selectExamAnswers = (item: string) => {
  587. if( list.value[listIndex.value].isComplete){
  588. return
  589. }
  590. if (list.value[listIndex.value].userAnswer.includes(item)) {
  591. list.value[listIndex.value].userAnswer = list.value[listIndex.value].userAnswer.filter((_item, _index) => {
  592. return _item !== item
  593. })
  594. }
  595. else {
  596. list.value[listIndex.value].userAnswer.push(item)
  597. }
  598. }
  599. let selectExamAnswer = (item: string) => {
  600. if( list.value[listIndex.value].isComplete){
  601. return
  602. }
  603. list.value[listIndex.value] = { ...list.value[listIndex.value], userAnswer: item };
  604. console.log(list.value[listIndex.value], item);
  605. };
  606. let beforeTopic = () => {
  607. if (listIndex.value == 0) {
  608. return;
  609. }
  610. listIndex.value = listIndex.value - 1;
  611. };
  612. let nextTopic = () => {
  613. if (listIndex.value == list.value.length - 1) {
  614. return;
  615. }
  616. listIndex.value = listIndex.value + 1;
  617. };
  618. let getPgae = () => {
  619. console.log(router)
  620. if(router.currentRoute.value.query.gs){
  621. let params = {
  622. gs:router.currentRoute.value.query.gs as string,
  623. // model: router.currentRoute.value.query.model as string,
  624. subject: Number(router.currentRoute.value.query.subject)
  625. }
  626. Api.openApiquestionInfoSelectTestQuestionInfo(params).then((res) => {
  627. res.data.rows.forEach((item) => {
  628. item.optsArr = item.opts.split('-');
  629. item.answerArr = item.answer.split('-');
  630. item.questionType < 3 ? item.userAnswer = '' : item.userAnswer = [];
  631. });
  632. if (!res.data.rows || res.data.rows.length === 0) {
  633. interfaceErrVisible.value = true
  634. return
  635. }
  636. //科目一多余100道题目的切割
  637. if (Number(router.currentRoute.value.query.subject) == 1 && res.data.rows.length > 100) {
  638. res.data.rows.splice(100)
  639. }
  640. //科目四多余50题切割
  641. if (Number(router.currentRoute.value.query.subject) == 4 && res.data.rows.length > 50) {
  642. res.data.rows.splice(50)
  643. }
  644. list.value = res.data.rows;
  645. }).catch(err => {
  646. interfaceErrVisible.value = true
  647. });
  648. }
  649. else{
  650. let params = {
  651. // gs:router.currentRoute.value.query.gs as string,
  652. model: router.currentRoute.value.query.model as string,
  653. subject: Number(router.currentRoute.value.query.subject)
  654. }
  655. Api.openApiquestion2InfoSelectTestQuestionInfo(params).then((res) => {
  656. res.data.rows.forEach((item) => {
  657. item.optsArr = item.opts.split('-');
  658. item.answerArr = item.answer.split('-');
  659. item.questionType < 3 ? item.userAnswer = '' : item.userAnswer = [];
  660. });
  661. if (!res.data.rows || res.data.rows.length === 0) {
  662. interfaceErrVisible.value = true
  663. return
  664. }
  665. //科目一多余100道题目的切割
  666. if (Number(router.currentRoute.value.query.subject) == 1 && res.data.rows.length > 100) {
  667. res.data.rows.splice(100)
  668. }
  669. //科目四多余50题切割
  670. if (Number(router.currentRoute.value.query.subject) == 4 && res.data.rows.length > 50) {
  671. res.data.rows.splice(50)
  672. }
  673. list.value = res.data.rows;
  674. }).catch(err => {
  675. interfaceErrVisible.value = true
  676. });
  677. }
  678. }
  679. return {
  680. interfaceErrVisible,
  681. submitScore,
  682. changeListIndex,
  683. selectExamAnswer,
  684. beforeTopic,
  685. nextTopic,
  686. getPgae,
  687. selectExamAnswers,
  688. listIndex,
  689. list,
  690. correctScore,
  691. errorScore,
  692. beforeSubmitVisible,
  693. submitVisible,
  694. wrongQuestion,
  695. wrongQuestionIndex,
  696. correctAnswerVisible,
  697. }
  698. }