@focus-teach/ui 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/.browserslistrc +2 -0
  2. package/.history/package_20230625121458.json +45 -0
  3. package/.history/package_20230626100440.json +45 -0
  4. package/.history/package_20230626100445.json +45 -0
  5. package/.history/package_20230626100447.json +45 -0
  6. package/.history/package_20230626100636.json +45 -0
  7. package/.history/package_20230626100801.json +45 -0
  8. package/.history/package_20230626100803.json +45 -0
  9. package/.history/package_20230626100838.json +45 -0
  10. package/.history/package_20230626103314.json +45 -0
  11. package/.history/package_20230626103317.json +45 -0
  12. package/.history/packages/assets/css/reset-element_20230605134721.scss +167 -0
  13. package/.history/packages/assets/css/reset-element_20230614205652.scss +173 -0
  14. package/.history/packages/assets/css/reset-element_20230614205654.scss +173 -0
  15. package/.history/packages/assets/css/reset-element_20230614211242.scss +169 -0
  16. package/.history/packages/assets/css/reset-element_20230614211245.scss +167 -0
  17. package/.history/packages/exam-detail/src/index_20230607220441.vue +548 -0
  18. package/.history/packages/exam-detail/src/index_20230613115618.vue +548 -0
  19. package/.history/packages/exam-detail/src/index_20230613115623.vue +548 -0
  20. package/.history/packages/exam-detail/src/index_20230613115629.vue +548 -0
  21. package/.history/packages/exam-detail/src/index_20230613115631.vue +548 -0
  22. package/.history/packages/exam-detail/src/index_20230613115640.vue +548 -0
  23. package/.history/packages/exam-detail/src/index_20230613115651.vue +548 -0
  24. package/.history/packages/exam-detail/src/index_20230613115659.vue +548 -0
  25. package/.history/packages/exam-detail/src/index_20230613115750.vue +548 -0
  26. package/.history/packages/exam-detail/src/index_20230613115806.vue +548 -0
  27. package/.history/packages/exam-detail/src/index_20230613115811.vue +548 -0
  28. package/.history/packages/exam-detail/src/index_20230613115815.vue +548 -0
  29. package/.history/packages/exam-detail/src/index_20230613120250.vue +548 -0
  30. package/.history/packages/exam-detail/src/index_20230613120252.vue +548 -0
  31. package/.history/packages/exam-detail/src/index_20230613120257.vue +547 -0
  32. package/.history/packages/exam-detail/src/index_20230613120323.vue +547 -0
  33. package/.history/packages/exam-detail/src/index_20230613120327.vue +547 -0
  34. package/.history/packages/exam-detail/src/index_20230613120328.vue +547 -0
  35. package/.history/packages/exam-detail/src/index_20230613120915.vue +548 -0
  36. package/.history/packages/exam-detail/src/index_20230613120917.vue +548 -0
  37. package/.history/packages/exam-detail/src/index_20230613120922.vue +549 -0
  38. package/.history/packages/exam-detail/src/index_20230613120924.vue +549 -0
  39. package/.history/packages/exam-detail/src/index_20230613120928.vue +550 -0
  40. package/.history/packages/exam-detail/src/index_20230613120930.vue +550 -0
  41. package/.history/packages/exam-detail/src/index_20230613120936.vue +549 -0
  42. package/.history/packages/exam-detail/src/index_20230613120938.vue +550 -0
  43. package/.history/packages/exam-detail/src/index_20230613120942.vue +550 -0
  44. package/.history/packages/exam-detail/src/index_20230613120944.vue +550 -0
  45. package/.history/packages/exam-detail/src/index_20230613121331.vue +549 -0
  46. package/.history/packages/exam-detail/src/index_20230613121333.vue +548 -0
  47. package/.history/packages/exam-detail/src/index_20230613121335.vue +547 -0
  48. package/.history/packages/exam-detail/src/index_20230613121341.vue +547 -0
  49. package/.history/packages/exam-detail/src/index_20230613121344.vue +546 -0
  50. package/.history/packages/exam-detail/src/index_20230613153022.vue +546 -0
  51. package/.history/packages/exam-detail/src/index_20230613153027.vue +546 -0
  52. package/.history/packages/exam-detail/src/index_20230613153620.vue +546 -0
  53. package/.history/packages/exam-detail/src/index_20230613164734.vue +546 -0
  54. package/.history/packages/exam-detail/src/index_20230613164746.vue +546 -0
  55. package/.history/packages/exam-detail/src/index_20230613164756.vue +546 -0
  56. package/.history/packages/exam-drawer/src/index_20230607103301.vue +1470 -0
  57. package/.history/packages/exam-drawer/src/index_20230613090746.vue +1469 -0
  58. package/.history/packages/exam-drawer/src/index_20230613090759.vue +1469 -0
  59. package/.history/packages/exam-drawer/src/index_20230613090802.vue +1469 -0
  60. package/.history/packages/exam-drawer/src/index_20230613090809.vue +1469 -0
  61. package/.history/packages/exam-drawer/src/index_20230613090850.vue +1470 -0
  62. package/.history/packages/exam-drawer/src/index_20230613090919.vue +1487 -0
  63. package/.history/packages/exam-drawer/src/index_20230613090930.vue +1486 -0
  64. package/.history/packages/exam-drawer/src/index_20230613090935.vue +1485 -0
  65. package/.history/packages/exam-drawer/src/index_20230613091124.vue +1488 -0
  66. package/.history/packages/exam-drawer/src/index_20230613091140.vue +1488 -0
  67. package/.history/packages/exam-drawer/src/index_20230613091141.vue +1488 -0
  68. package/.history/packages/exam-drawer/src/index_20230613092108.vue +1489 -0
  69. package/.history/packages/exam-drawer/src/index_20230613092111.vue +1489 -0
  70. package/.history/packages/exam-drawer/src/index_20230613093130.vue +1490 -0
  71. package/.history/packages/exam-drawer/src/index_20230613093135.vue +1489 -0
  72. package/.history/packages/exam-drawer/src/index_20230613093149.vue +1488 -0
  73. package/.history/packages/exam-drawer/src/index_20230613093156.vue +1487 -0
  74. package/.history/packages/exam-drawer/src/index_20230613093159.vue +1486 -0
  75. package/.history/packages/exam-drawer/src/index_20230613093202.vue +1485 -0
  76. package/.history/packages/exam-drawer/src/index_20230613093204.vue +1484 -0
  77. package/.history/packages/exam-drawer/src/index_20230613093207.vue +1483 -0
  78. package/.history/packages/exam-drawer/src/index_20230613093209.vue +1482 -0
  79. package/.history/packages/exam-drawer/src/index_20230613093212.vue +1483 -0
  80. package/.history/packages/exam-drawer/src/index_20230613093217.vue +1483 -0
  81. package/.history/packages/exam-drawer/src/index_20230613093228.vue +1483 -0
  82. package/.history/packages/exam-drawer/src/index_20230613093229.vue +1483 -0
  83. package/.history/packages/exam-drawer/src/index_20230613093843.vue +1482 -0
  84. package/.history/packages/exam-drawer/src/index_20230613093847.vue +1481 -0
  85. package/.history/packages/exam-drawer/src/index_20230613093851.vue +1480 -0
  86. package/.history/packages/exam-drawer/src/index_20230613115708.vue +1480 -0
  87. package/.history/packages/exam-drawer/src/index_20230613115823.vue +1480 -0
  88. package/.history/packages/exam-drawer/src/index_20230613115825.vue +1480 -0
  89. package/.history/packages/exam-drawer/src/index_20230613115827.vue +1480 -0
  90. package/.history/packages/exam-drawer/src/index_20230613120908.vue +1481 -0
  91. package/.history/packages/exam-drawer/src/index_20230613120910.vue +1481 -0
  92. package/.history/packages/exam-drawer/src/index_20230613121320.vue +1480 -0
  93. package/.history/packages/exam-drawer/src/index_20230613121326.vue +1480 -0
  94. package/.history/packages/exam-drawer/src/index_20230613144244.vue +1479 -0
  95. package/.history/packages/exam-drawer/src/index_20230613144246.vue +1478 -0
  96. package/.history/packages/exam-drawer/src/index_20230613144248.vue +1477 -0
  97. package/.history/packages/exam-drawer/src/index_20230613144251.vue +1476 -0
  98. package/.history/packages/exam-drawer/src/index_20230613152608.vue +1476 -0
  99. package/.history/packages/header/src/index_20230605134719.vue +59 -0
  100. package/.history/packages/header/src/index_20230613115723.vue +59 -0
  101. package/.history/packages/header/src/index_20230613115727.vue +59 -0
  102. package/.history/packages/header/src/index_20230613115733.vue +59 -0
  103. package/.history/packages/header/src/index_20230613115736.vue +59 -0
  104. package/.history/packages/header/src/index_20230613120901.vue +60 -0
  105. package/.history/packages/header/src/index_20230613120903.vue +60 -0
  106. package/.history/packages/header/src/index_20230613121316.vue +59 -0
  107. package/.history/packages/question-drawer/src/index_20230607160653.vue +1735 -0
  108. package/.history/packages/question-drawer/src/index_20230607160720.scss +265 -0
  109. package/.history/packages/question-drawer/src/index_20230613090910.vue +1735 -0
  110. package/.history/packages/question-drawer/src/index_20230613090928.vue +1734 -0
  111. package/.history/packages/question-drawer/src/index_20230613090937.vue +1733 -0
  112. package/.history/packages/question-drawer/src/index_20230613115842.vue +1733 -0
  113. package/.history/packages/question-drawer/src/index_20230613115844.vue +1733 -0
  114. package/.history/packages/question-drawer/src/index_20230613115848.vue +1733 -0
  115. package/.history/packages/question-drawer/src/index_20230613115902.vue +1733 -0
  116. package/.history/packages/question-drawer/src/index_20230613115911.vue +1733 -0
  117. package/.history/packages/question-drawer/src/index_20230613115914.vue +1733 -0
  118. package/.history/packages/question-drawer/src/index_20230613115922.vue +1733 -0
  119. package/.history/packages/question-drawer/src/index_20230613120356.vue +1733 -0
  120. package/.history/packages/question-drawer/src/index_20230613120359.vue +1732 -0
  121. package/.history/packages/question-drawer/src/index_20230613120710.vue +1731 -0
  122. package/.history/packages/question-drawer/src/index_20230613120839.vue +1732 -0
  123. package/.history/packages/question-drawer/src/index_20230613120841.vue +1732 -0
  124. package/.history/packages/question-drawer/src/index_20230613120844.vue +1733 -0
  125. package/.history/packages/question-drawer/src/index_20230613120846.vue +1733 -0
  126. package/.history/packages/question-drawer/src/index_20230613120850.vue +1734 -0
  127. package/.history/packages/question-drawer/src/index_20230613120852.vue +1734 -0
  128. package/.history/packages/question-drawer/src/index_20230613120856.vue +1735 -0
  129. package/.history/packages/question-drawer/src/index_20230613120858.vue +1735 -0
  130. package/.history/packages/question-drawer/src/index_20230613121150.vue +1735 -0
  131. package/.history/packages/question-drawer/src/index_20230613121238.vue +1734 -0
  132. package/.history/packages/question-drawer/src/index_20230613121252.vue +1734 -0
  133. package/.history/packages/question-drawer/src/index_20230613121256.vue +1734 -0
  134. package/.history/packages/question-drawer/src/index_20230613121258.vue +1733 -0
  135. package/.history/packages/question-drawer/src/index_20230613121303.vue +1733 -0
  136. package/.history/packages/question-drawer/src/index_20230613121307.vue +1733 -0
  137. package/.history/packages/question-drawer/src/index_20230613121310.vue +1732 -0
  138. package/.history/packages/question-drawer/src/index_20230613121313.vue +1731 -0
  139. package/.history/packages/question-drawer/src/index_20230613121549.vue +1731 -0
  140. package/.history/packages/question-drawer/src/index_20230613121623.vue +1731 -0
  141. package/.history/packages/question-drawer/src/index_20230613151515.vue +1730 -0
  142. package/.history/packages/question-drawer/src/index_20230613151517.vue +1729 -0
  143. package/.history/packages/question-drawer/src/index_20230613151612.vue +1729 -0
  144. package/.history/packages/question-drawer/src/index_20230613151618.vue +1729 -0
  145. package/.history/packages/question-drawer/src/index_20230613151928.vue +1729 -0
  146. package/.history/packages/question-drawer/src/index_20230613151929.vue +1729 -0
  147. package/.history/packages/question-drawer/src/index_20230613152233.vue +1728 -0
  148. package/.history/packages/question-drawer/src/index_20230613152235.vue +1727 -0
  149. package/.history/packages/question-drawer/src/index_20230613152237.vue +1726 -0
  150. package/.history/packages/question-drawer/src/index_20230613152239.vue +1726 -0
  151. package/.history/packages/question-drawer/src/index_20230613152243.vue +1725 -0
  152. package/.history/packages/question-drawer/src/index_20230613152245.vue +1724 -0
  153. package/.history/packages/question-drawer/src/index_20230613152247.vue +1723 -0
  154. package/.history/packages/question-drawer/src/index_20230613152248.vue +1723 -0
  155. package/.history/packages/question-drawer/src/index_20230613152543.vue +1723 -0
  156. package/.history/packages/question-drawer/src/index_20230613152613.vue +1723 -0
  157. package/.history/packages/question-drawer/src/index_20230614203619.vue +1725 -0
  158. package/.history/packages/question-drawer/src/index_20230614203633.vue +1729 -0
  159. package/.history/packages/question-drawer/src/index_20230614203637.vue +1729 -0
  160. package/.history/packages/question-drawer/src/index_20230614203912.vue +1729 -0
  161. package/.history/packages/question-drawer/src/index_20230614211516.scss +270 -0
  162. package/.history/packages/question-drawer/src/index_20230614212057.scss +265 -0
  163. package/.history/packages/question-drawer/src/index_20230614212140.scss +270 -0
  164. package/.history/packages/question-drawer/src/index_20230614212146.scss +270 -0
  165. package/.history/packages/question-drawer/src/index_20230614212158.scss +270 -0
  166. package/.history/packages/question-drawer/src/index_20230614212613.scss +270 -0
  167. package/.history/packages/question-drawer/src/index_20230614212615.scss +270 -0
  168. package/.history/packages/question-drawer/src/index_20230614212841.scss +270 -0
  169. package/.history/packages/question-drawer/src/index_20230614212939.scss +270 -0
  170. package/.history/packages/question-drawer/src/index_20230614213141.scss +270 -0
  171. package/.history/packages/question-drawer/src/index_20230614213255.scss +270 -0
  172. package/.history/packages/question-drawer/src/index_20230614213349.scss +265 -0
  173. package/.history/packages/question-drawer/src/index_20230614213350.scss +265 -0
  174. package/.history/packages/question-drawer/src/index_20230614213400.scss +265 -0
  175. package/.history/packages/question-drawer/src/index_20230614213401.scss +270 -0
  176. package/.history/packages/question-drawer/src/index_20230614213431.scss +265 -0
  177. package/.history/packages/question-drawer/src/index_20230615100944.vue +1730 -0
  178. package/.history/packages/question-drawer/src/index_20230615100946.vue +1730 -0
  179. package/.history/packages/question-drawer/src/index_20230615100952.vue +1730 -0
  180. package/.history/packages/question-drawer/src/index_20230615100957.vue +1730 -0
  181. package/.history/packages/question-drawer/src/index_20230615104839.vue +1730 -0
  182. package/.history/packages/tabs/src/index_20230607165331.scss +60 -0
  183. package/.history/packages/tabs/src/index_20230614211226.scss +60 -0
  184. package/.history/packages/tabs/src/index_20230614211227.scss +61 -0
  185. package/.history/packages/tabs/src/index_20230614211253.scss +65 -0
  186. package/.history/packages/tabs/src/index_20230614211332.scss +60 -0
  187. package/.history/packages/wrong-detail/src/index_20230607221202.vue +570 -0
  188. package/.history/packages/wrong-detail/src/index_20230613120416.vue +570 -0
  189. package/.history/packages/wrong-detail/src/index_20230613120418.vue +569 -0
  190. package/.history/packages/wrong-detail/src/index_20230613120738.vue +568 -0
  191. package/.history/packages/wrong-detail/src/index_20230613120800.vue +568 -0
  192. package/.history/packages/wrong-detail/src/index_20230613120803.vue +568 -0
  193. package/.history/packages/wrong-detail/src/index_20230613120825.vue +568 -0
  194. package/.history/packages/wrong-detail/src/index_20230613120834.vue +569 -0
  195. package/.history/packages/wrong-detail/src/index_20230613121246.vue +568 -0
  196. package/.history/packages/wrong-detail/src/index_20230613155421.vue +574 -0
  197. package/.history/packages/wrong-detail/src/index_20230613155423.vue +574 -0
  198. package/.history/packages/wrong-detail/src/index_20230613155426.vue +574 -0
  199. package/.history/packages/wrong-drawer/src/index_20230607213124.vue +450 -0
  200. package/.history/packages/wrong-drawer/src/index_20230613104307.vue +450 -0
  201. package/.history/packages/wrong-drawer/src/index_20230613104315.vue +451 -0
  202. package/.history/packages/wrong-drawer/src/index_20230613104317.vue +451 -0
  203. package/.history/packages/wrong-drawer/src/index_20230613104334.vue +451 -0
  204. package/.history/packages/wrong-drawer/src/index_20230613104403.vue +450 -0
  205. package/.history/packages/wrong-drawer/src/index_20230613104405.vue +449 -0
  206. package/.history/packages/wrong-drawer/src/index_20230613104621.vue +458 -0
  207. package/.history/packages/wrong-drawer/src/index_20230613104626.vue +459 -0
  208. package/.history/packages/wrong-drawer/src/index_20230613104629.vue +457 -0
  209. package/.history/packages/wrong-drawer/src/index_20230613104630.vue +457 -0
  210. package/.history/packages/wrong-drawer/src/index_20230613104747.vue +464 -0
  211. package/.history/packages/wrong-drawer/src/index_20230613104749.vue +464 -0
  212. package/.history/packages/wrong-drawer/src/index_20230613104753.vue +464 -0
  213. package/.history/packages/wrong-drawer/src/index_20230613111237.vue +464 -0
  214. package/.history/packages/wrong-drawer/src/index_20230613111314.vue +464 -0
  215. package/.history/packages/wrong-drawer/src/index_20230613114319.vue +464 -0
  216. package/.history/packages/wrong-drawer/src/index_20230613114322.vue +464 -0
  217. package/.history/packages/wrong-drawer/src/index_20230613114901.vue +463 -0
  218. package/.history/packages/wrong-drawer/src/index_20230613114903.vue +462 -0
  219. package/.history/packages/wrong-drawer/src/index_20230613114904.vue +462 -0
  220. package/.history/packages/wrong-drawer/src/index_20230613114909.vue +462 -0
  221. package/.history/packages/wrong-drawer/src/index_20230613114936.vue +463 -0
  222. package/.history/packages/wrong-drawer/src/index_20230613114940.vue +463 -0
  223. package/.history/packages/wrong-drawer/src/index_20230613114942.vue +463 -0
  224. package/.history/packages/wrong-drawer/src/index_20230613115348.vue +487 -0
  225. package/.history/packages/wrong-drawer/src/index_20230613115352.vue +487 -0
  226. package/.history/packages/wrong-drawer/src/index_20230613115356.vue +487 -0
  227. package/.history/packages/wrong-drawer/src/index_20230613115408.vue +500 -0
  228. package/.history/packages/wrong-drawer/src/index_20230613115411.vue +500 -0
  229. package/.history/packages/wrong-drawer/src/index_20230613115414.vue +500 -0
  230. package/.history/packages/wrong-drawer/src/index_20230613144213.vue +499 -0
  231. package/.history/packages/wrong-drawer/src/index_20230613144215.vue +498 -0
  232. package/.history/packages/wrong-drawer/src/index_20230613144218.vue +497 -0
  233. package/.history/packages/wrong-drawer/src/index_20230613144223.vue +497 -0
  234. package/.history/packages/wrong-drawer/src/index_20230613144225.vue +497 -0
  235. package/.history/packages/wrong-drawer/src/index_20230613144229.vue +498 -0
  236. package/.history/packages/wrong-drawer/src/index_20230613144232.vue +498 -0
  237. package/.history/packages/wrong-drawer/src/index_20230613144316.vue +500 -0
  238. package/.history/packages/wrong-drawer/src/index_20230613144345.vue +500 -0
  239. package/.history/packages/wrong-drawer/src/index_20230613144346.vue +500 -0
  240. package/.history/packages/wrong-drawer/src/index_20230613145546.vue +498 -0
  241. package/.history/packages/wrong-drawer/src/index_20230613145548.vue +501 -0
  242. package/.history/packages/wrong-drawer/src/index_20230613145550.vue +500 -0
  243. package/.history/packages/wrong-drawer/src/index_20230613145602.vue +500 -0
  244. package/.history/packages/wrong-drawer/src/index_20230613145611.vue +500 -0
  245. package/.history/packages/wrong-drawer/src/index_20230613145625.vue +500 -0
  246. package/.history/packages/wrong-drawer/src/index_20230613145634.vue +500 -0
  247. package/.history/packages/wrong-drawer/src/index_20230613150805.vue +500 -0
  248. package/.history/packages/wrong-drawer/src/index_20230613150806.vue +501 -0
  249. package/.history/packages/wrong-drawer/src/index_20230613150809.vue +501 -0
  250. package/.history/packages/wrong-drawer/src/index_20230613150810.vue +501 -0
  251. package/README.md +14 -0
  252. package/api/index.js +388 -0
  253. package/dist/@focus-teach/ui.common.js +93058 -0
  254. package/dist/@focus-teach/ui.css +1 -0
  255. package/dist/@focus-teach/ui.umd.js +93068 -0
  256. package/dist/@focus-teach/ui.umd.min.js +25 -0
  257. package/dist/demo.html +10 -0
  258. package/dist/fonts/icomoon.356dc15f.woff +0 -0
  259. package/dist/fonts/icomoon.71d64f31.woff +0 -0
  260. package/dist/fonts/icomoon.7c9a60d9.eot +0 -0
  261. package/dist/fonts/icomoon.ba18ad87.eot +0 -0
  262. package/dist/fonts/icomoon.de76432e.ttf +0 -0
  263. package/dist/fonts/icomoon.ec37e716.ttf +0 -0
  264. package/dist/img/cloud_txt_24.87b9d2ae.svg +1 -0
  265. package/dist/img/icomoon.428f3063.svg +346 -0
  266. package/dist/img/icomoon.532b3795.svg +345 -0
  267. package/dist/img/icon_question.e931b16c.svg +14 -0
  268. package/mixins/emitter.js +33 -0
  269. package/package.json +45 -0
  270. package/postcss.config.js +19 -0
  271. package/style/icon/Read Me.txt +7 -0
  272. package/style/icon/demo-files/demo.css +152 -0
  273. package/style/icon/demo-files/demo.js +30 -0
  274. package/style/icon/demo.html +4042 -0
  275. package/style/icon/fonts/icomoon.eot +0 -0
  276. package/style/icon/fonts/icomoon.svg +346 -0
  277. package/style/icon/fonts/icomoon.ttf +0 -0
  278. package/style/icon/fonts/icomoon.woff +0 -0
  279. package/style/icon/selection.json +1 -0
  280. package/style/icon/style.css +1191 -0
  281. package/tests/unit/example.spec.js +13 -0
  282. package/utils/Constants.js +59 -0
  283. package/utils/assist.js +100 -0
  284. package/utils/changNumber.js +26 -0
  285. package/utils/common.js +109 -0
  286. package/utils/random_str.js +9 -0
@@ -0,0 +1,1730 @@
1
+ <!--右侧题目题库抽屉-->
2
+ <template>
3
+ <div class="question-drawer">
4
+ <ft-drawer>
5
+ <ft-tabs
6
+ :options="
7
+ examPointEnableFlag == 1 && examPointList && examPointList.length > 0
8
+ ? tabListWithPoint
9
+ : tabList
10
+ "
11
+ :activeName="activeTab"
12
+ @click="tabClick"
13
+ ></ft-tabs>
14
+ <div class="cascader course" v-show="activeTab == 'course'">
15
+ <ft-cascader
16
+ :options="materialsGradesList"
17
+ :value.sync="currentMaterials"
18
+ @change="changeMaterials"
19
+ ></ft-cascader>
20
+ <ft-cascader
21
+ :options="courseCascaderList"
22
+ :value.sync="currentCourse"
23
+ :props="{
24
+ value: 'courseId',
25
+ label: 'courseName',
26
+ children: 'courses',
27
+ checkStrictly: true,
28
+ }"
29
+ placeholder="请选择章节"
30
+ ref="course"
31
+ selfRef="courseCascader"
32
+ @change="changeCourse"
33
+ ></ft-cascader>
34
+ </div>
35
+ <div class="cascader knowledge" v-show="activeTab == 'knowledge'">
36
+ <el-popover
37
+ ref="knowledgePopover"
38
+ style="padding: 0; margin-top: 40px"
39
+ placement="bottom-start"
40
+ width="492"
41
+ trigger="click"
42
+ v-model="knowledgeVisible"
43
+ popper-class="knowledge-popover"
44
+ >
45
+ <div class="knowledge-popover">
46
+ <el-input
47
+ v-model="filterText"
48
+ placeholder="搜索知识点"
49
+ clearable
50
+ size="small"
51
+ style="width: calc(100% - 20px); margin: 5px 10px"
52
+ ></el-input>
53
+ <div class="catalog-tool">
54
+ <el-switch
55
+ class="self-switch"
56
+ v-model="switchValue"
57
+ active-color="#E2E2E2"
58
+ inactive-color="#E2E2E2"
59
+ :active-text="i18n.duoXuan"
60
+ :inactive-text="i18n.danXuan"
61
+ >
62
+ </el-switch>
63
+ <div class="tool-btn-tab" v-show="switchValue">
64
+ <div
65
+ :class="[
66
+ 'knowledge-btn',
67
+ knowledgeType == 0
68
+ ? 'knowledge-btn-select'
69
+ : 'knowledge-btn-normal',
70
+ ]"
71
+ @click="choiseKnowledgeType(0)"
72
+ >
73
+ {{ i18n.zhiShiDianJiaoJi }}
74
+ </div>
75
+ <div
76
+ :class="[
77
+ 'knowledge-btn',
78
+ knowledgeType == 1
79
+ ? 'knowledge-btn-select'
80
+ : 'knowledge-btn-normal',
81
+ ]"
82
+ @click="choiseKnowledgeType(1)"
83
+ >
84
+ {{ i18n.zhiShiDianBingJi }}
85
+ </div>
86
+ </div>
87
+ </div>
88
+ <el-tree
89
+ class="self-tree"
90
+ :data="klList"
91
+ :show-checkbox="switchValue"
92
+ :props="{
93
+ label: 'klname',
94
+ children: 'knowledgeDtoList',
95
+ }"
96
+ :empty-text="i18n.zanWuShuJu"
97
+ node-key="klId"
98
+ ref="secondTree"
99
+ highlight-current
100
+ :filter-node-method="knowledgeFilterNode"
101
+ @node-click="clickKnowledgeNode"
102
+ @check="checkKnowledgeNode"
103
+ >
104
+ <span class="span-ellipsis" slot-scope="{ node }">
105
+ <span :title="node.label">{{ decode(node.label) }}</span>
106
+ </span>
107
+ </el-tree>
108
+ <div class="tool-btn" v-show="switchValue">
109
+ <div class="btn-title">
110
+ {{ i18n.yiXuanZeZhiShiDian
111
+ }}<span class="btn-count">{{ klArr.length }}</span>
112
+ </div>
113
+ <div
114
+ :class="[
115
+ 'btn',
116
+ klArr.length > 0 && klArr.length <= 100
117
+ ? 'btn-sure'
118
+ : 'btn-disable',
119
+ ]"
120
+ @click="toQueryWithKnowledges"
121
+ >
122
+ {{ i18n.queDing }}
123
+ </div>
124
+ <div
125
+ :class="['btn', klArr.length > 0 ? 'btn-clear' : 'btn-disable']"
126
+ @click="clearKnowledges"
127
+ >
128
+ {{ i18n.qingKong }}
129
+ </div>
130
+ </div>
131
+ <toast
132
+ style="
133
+ position: fixed;
134
+ top: 300px;
135
+ right: 120px;
136
+ width: 278px;
137
+ z-index: 10000;
138
+ "
139
+ :toastOptions="toastOptions"
140
+ ></toast>
141
+ </div>
142
+ </el-popover>
143
+ <div class="knowledge-back">
144
+ <div v-popover:knowledgePopover class="knowledge-back-pop">
145
+ <el-tooltip
146
+ :class="
147
+ knowledgeName.length > 0 ? 'item' : 'knowledge-title-item'
148
+ "
149
+ style="margin-top: 0"
150
+ effect="dark"
151
+ :disabled="isShowTooltip"
152
+ :content="allKnowledgeName"
153
+ placement="bottom"
154
+ >
155
+ <input
156
+ :class="[
157
+ 'knowledge-input',
158
+ knowledgeVisible
159
+ ? 'knowledge-input-show'
160
+ : 'knowledge-input-normal',
161
+ knowledgeName.length > 0 ? 'knowledge-input-value' : '',
162
+ ]"
163
+ type="button"
164
+ :value="
165
+ knowledgeName.length > 0
166
+ ? knowledgeName
167
+ : knowledgePlaceholder
168
+ "
169
+ />
170
+ </el-tooltip>
171
+ <i
172
+ :class="
173
+ knowledgeVisible ? 'icon-drop-up-btn' : 'icon-drop-down-btn'
174
+ "
175
+ ></i>
176
+ </div>
177
+ </div>
178
+ </div>
179
+ <div class="cascader point" v-show="activeTab == 'point'">
180
+ <ft-cascader
181
+ :options="pointData"
182
+ :value.sync="currentPointId"
183
+ @change="handlePointChange"
184
+ :props="{
185
+ value: 'pointId',
186
+ label: 'pointName',
187
+ children: 'subExamPointDto',
188
+ checkStrictly: true,
189
+ }"
190
+ >
191
+ </ft-cascader>
192
+ </div>
193
+ <div class="screen">
194
+ <ft-radio
195
+ v-show="itemBankTypeList.length"
196
+ :label="i18n.laiYuan"
197
+ :options="itemBankTypeList"
198
+ :defaultValue="indexParam.itemBankType"
199
+ :props="{
200
+ label: 'itemBankTypeName',
201
+ id: 'itemBankType',
202
+ }"
203
+ @radio-click="sourceClick"
204
+ ></ft-radio>
205
+ <ft-radio
206
+ v-show="topicList.length && defaultCategoryType != 4"
207
+ :label="i18n.zhuanTi"
208
+ :options="topicList"
209
+ :defaultValue="indexParam.topicId ? indexParam.topicId : 'all'"
210
+ :props="{
211
+ label: 'topicName',
212
+ id: 'topicId',
213
+ }"
214
+ @radio-click="topicClick"
215
+ ></ft-radio>
216
+ <ft-radio
217
+ v-show="itemCategoryList.length"
218
+ :label="i18n.tiXing"
219
+ :options="itemCategoryList"
220
+ :defaultValue="
221
+ indexParam.itemCategoryId ? indexParam.itemCategoryId : 'all'
222
+ "
223
+ :props="{
224
+ label: 'itemCategoryName',
225
+ id: 'itemCategoryId',
226
+ }"
227
+ @radio-click="categoryClick"
228
+ ></ft-radio>
229
+ <ft-radio
230
+ v-show="difficultyList.length"
231
+ :label="i18n.nanDu"
232
+ :options="difficultyList"
233
+ :defaultValue="
234
+ indexParam.difficultyId ? indexParam.difficultyId : 'all'
235
+ "
236
+ :props="{
237
+ label: 'difficultyName',
238
+ id: 'difficultyId',
239
+ }"
240
+ @radio-click="difficultyClick"
241
+ ></ft-radio>
242
+ <ft-radio
243
+ v-show="basicSkillsList.length"
244
+ :label="i18n.jiNeng"
245
+ :options="basicSkillsList"
246
+ :defaultValue="
247
+ indexParam.basicSkillsId ? indexParam.basicSkillsId : 'all'
248
+ "
249
+ :props="{
250
+ label: 'basicName',
251
+ id: 'basicSkillsId',
252
+ }"
253
+ @radio-click="basicSkillClick"
254
+ ></ft-radio>
255
+ <ft-radio
256
+ v-if="coreLiteracyFlag && coreLiteracyList.length"
257
+ label="素养"
258
+ :options="coreLiteracyList"
259
+ :defaultValue="indexParam.literacyId ? indexParam.literacyId : 'all'"
260
+ :props="{
261
+ label: 'literacyName',
262
+ id: 'literacyId',
263
+ }"
264
+ @radio-click="coreLiteracyClick"
265
+ :isHtml="true"
266
+ :collapse="true"
267
+ ></ft-radio>
268
+ <ft-radio
269
+ v-show="yearList.length && defaultCategoryType != 4"
270
+ :label="i18n.nianFen"
271
+ :options="yearList"
272
+ :defaultValue="indexParam.year ? indexParam.year : 'all'"
273
+ @radio-click="yearClick"
274
+ ></ft-radio>
275
+ <!-- <ft-radio
276
+ v-show="coreLiteracyList.length"
277
+ label="核心素养"
278
+ :options="coreLiteracyList"
279
+ :defaultValue="indexParam.year ? indexParam.year : 'all'"
280
+ @radio-click="yearClick"
281
+ ></ft-radio> -->
282
+ </div>
283
+ <div
284
+ class="question"
285
+ id="tk-detail-drawer-slot-id"
286
+ v-infinite-scroll="changeCurrentPage"
287
+ :infinite-scroll-disabled="!hasMore"
288
+ infinite-scroll-distance="40"
289
+ >
290
+ <ft-header
291
+ :options="sortList"
292
+ @sort="headerSort"
293
+ default-sort="updateTime"
294
+ v-show="itemInfoList.length"
295
+ >
296
+ {{ i18n.gong }}{{ itemInfoList.length }}{{ i18n.daoTiMu }}
297
+ </ft-header>
298
+ <div id="bankData-drawer-slot-id">
299
+ <ft-question
300
+ v-show=" !loadingBankData && !loadingError && itemInfoList.length > 0 "
301
+ v-for="(item, index) in itemInfoList"
302
+ :key="item.itemInfoId"
303
+ :itemInfo="item"
304
+ :itemIndex="index + 1"
305
+ :examItemList="itemList"
306
+ :variantList="itemList"
307
+ :pointNames="item.pointNames || '--'"
308
+ :klNames="item.klNames || '--'"
309
+ :skill="item.basicSkillNames || '--'"
310
+ :answer="item.answer || '--'"
311
+ :analysis="item.analysis || '--'"
312
+ :itemCategoryName="item.itemCategoryName"
313
+ :topicName="item.topicName"
314
+ :difficultyId="item.difficultyId"
315
+ :difficultyName="item.difficultyName"
316
+ :audioFileId="item.audioFileId"
317
+ :itemFromType="item.itemFromType"
318
+ :content="item.content"
319
+ :updateTime="item.updateTime"
320
+ :referenceCount="item.referenceCount"
321
+ :itemInfoId="item.itemInfoId"
322
+ :provinceId="item.provinceId"
323
+ :provinceName="item.provinceName"
324
+ :areaId="item.areaId"
325
+ :districtId="item.districtId"
326
+ :areaName="item.areaName"
327
+ :districtName="item.districtName"
328
+ :year="item.year"
329
+ :rootItemInfoId="item.rootItemInfoId"
330
+ :itemSourceType="item.itemSourceType"
331
+ @showAnswer="getAnswer"
332
+ @getContent="getContent"
333
+ @choiceOrRemoveQuestion="choiceOrRemoveQuestion"
334
+ @toShowAudio="toShowAudio"
335
+ :fromType="fromType"
336
+ ></ft-question>
337
+ </div>
338
+ <ft-empty v-show="!loadingBankData && !loadingError && itemInfoList.length == 0" :message="i18n.zanWuTiMu">
339
+ <img
340
+ class="empty-img"
341
+ :src="host + '/assets/prepare-course/list/img/empty.fcdd9ba5.png'"
342
+ alt=""
343
+ />
344
+ </ft-empty>
345
+ <ft-error v-show="!loadingBankData && loadingError" @retry="clickRetryBtn">
346
+ <img
347
+ class="error-img"
348
+ :src="host + '/assets/prepare-course/list/img/error.7e494464.png'"
349
+ alt=""
350
+ />
351
+ </ft-error>
352
+ <div v-show="loadingBankData" class="loading"></div>
353
+ </div>
354
+ <div class="page-contro" v-show="itemInfoList.length > 0">
355
+ {{
356
+ drawerPageError
357
+ ? this.i18n.jiaZaiShiBai
358
+ : loading
359
+ ? this.i18n.jiaZaiZhong
360
+ : hasMore
361
+ ? ""
362
+ : this.i18n.jiaZaiWanBi
363
+ }}
364
+ </div>
365
+ </ft-drawer>
366
+ </div>
367
+ </template>
368
+
369
+ <script>
370
+ import {
371
+ Tabs,
372
+ TabPane,
373
+ Cascader,
374
+ Popover,
375
+ Tooltip,
376
+ Loading,
377
+ Tree,
378
+ Input,
379
+ } from "element-ui";
380
+ import FtTabs from "../../tabs/index";
381
+ import FtCascader from "../../cascader/index";
382
+ import FtQuestion from "../../question/index";
383
+ import FtHeader from "../../header/index";
384
+ import FtRadio from "../../radio/index";
385
+ import FtDrawer from "../../drawer/index";
386
+ import FtEmpty from "../../empty/index";
387
+ import FtError from "../../error/index";
388
+ import {
389
+ getBankIndex,
390
+ getBankData,
391
+ getMaterialsGrades,
392
+ getKnowledge,
393
+ getEditorCourse,
394
+ getTopic,
395
+ getKldftNecessary,
396
+ getQuestion,
397
+ getAnswer,
398
+ } from "../../../api/index";
399
+ import { decodeEntities } from "../../../utils/common";
400
+ import Toast from "./Toast";
401
+ import infiniteScroll from "vue-infinite-scroll";
402
+ export default {
403
+ name: "FtQuestionDrawer",
404
+ // import引入的组件需要注入到对象中才能使用
405
+ components: {
406
+ Toast,
407
+ [Tabs.name]: Tabs,
408
+ [TabPane.name]: TabPane,
409
+ [Cascader.name]: Cascader,
410
+ [Popover.name]: Popover,
411
+ [Tooltip.name]: Tooltip,
412
+ [Tree.name]: Tree,
413
+ [Input.name]: Input,
414
+ FtTabs,
415
+ FtCascader,
416
+ FtQuestion,
417
+ FtHeader,
418
+ FtRadio,
419
+ FtDrawer,
420
+ FtError,
421
+ FtEmpty,
422
+ },
423
+ directives: { infiniteScroll },
424
+ props: {
425
+ itemList: {
426
+ type: Array,
427
+ default: () => [],
428
+ },
429
+ leftInfo: {
430
+ type: Object,
431
+ default: () => {
432
+ return {
433
+ eduLevelId: "",
434
+ subjectId: "",
435
+ courseSrc: "",
436
+ courseId: "",
437
+ };
438
+ },
439
+ },
440
+ fromType: {
441
+ type: String,
442
+ default: "",
443
+ },
444
+ klidsList: {
445
+ type: String,
446
+ default: "",
447
+ },
448
+ i18n: {
449
+ type: Object,
450
+ },
451
+ },
452
+ data() {
453
+ return {
454
+ host: window.location.origin,
455
+ currentPointId: [],
456
+ pointData: [],
457
+ filterText: "",
458
+ activeTab: "course",
459
+ tabList: [
460
+ {
461
+ id: "course",
462
+ label: this.i18n.anTongBuKeCheng,
463
+ },
464
+ {
465
+ id: "knowledge",
466
+ label: this.i18n.anZhiShiDian,
467
+ },
468
+ ],
469
+ tabListWithPoint: [
470
+ {
471
+ id: "course",
472
+ label: this.i18n.anTongBuKeCheng,
473
+ },
474
+ {
475
+ id: "knowledge",
476
+ label: this.i18n.anZhiShiDian,
477
+ },
478
+ {
479
+ id: "point",
480
+ label: this.i18n.anKaoDian,
481
+ },
482
+ ],
483
+ examPointEnableFlag: 0,
484
+ examPointList: [],
485
+ materialsGradesList: [],
486
+ currentMaterials: [],
487
+ courseCascaderList: [],
488
+ currentCourse: [],
489
+ loadingError: false,
490
+ indexParam: {
491
+ itemBackQueryType: 2, //1 按课程 2 按知识点 3 按考点
492
+ page: 1, //页码
493
+ studySectionId: "", //学段id
494
+ subjectId: "", //科目id
495
+ klIds: "", //知识点id集合,多个id以逗号分隔
496
+ klUnionFlag: 1, //知识点交并集标识,0交集,1并集,默认1
497
+ courseId: "", //课程id
498
+ examPointId: "", //考点id
499
+ year: "", //年份
500
+ topicId: "", //专题id
501
+ itemBasicSkillId: "", //基础技能id
502
+ itemCategoryId: "", //题目类型idrtList
503
+ itemDifficultyId: "", //难度id
504
+ order: 0, //排序,0:更新时间倒序,1:更新时间正序
505
+ },
506
+ //首次请求
507
+ isLoading: true,
508
+ defaultCategoryType: 0,
509
+ //题目总数
510
+ totalRecord: 0,
511
+ isFirstIndex: true, //首次加载该题库
512
+ firstRequestCourse: true, //是否首次加载课程
513
+ itemBankTypeList: [],
514
+ topicList: [],
515
+ itemCategoryList: [],
516
+ difficultyList: [],
517
+ basicSkillsList: [],
518
+ coreLiteracyFlag: false,//是否展示核心素养
519
+ coreLiteracyList: [],//核心素养
520
+ years: [],
521
+ itemInfoList: [],
522
+ sortList: [
523
+ {
524
+ label: "使用次数",
525
+ key: "count",
526
+ },
527
+ {
528
+ label: "更新时间",
529
+ key: "updateTime",
530
+ },
531
+ ],
532
+ currentCourseId: "",
533
+ allDifficultyList: [],
534
+ undefinedDifficultyInfo: {
535
+ difficultyCoefficient: "0.0",
536
+ difficultyId: "JPO-tJbAJqc",
537
+ difficultyName: "未定义",
538
+ },
539
+ drawerPageError: false,
540
+ loading: false,
541
+ hasMore: true,
542
+ //是否正在加载题目数据
543
+ loadingBankData: true,
544
+ //加载题目数据是否失败
545
+ loadingError: false,
546
+ currentKlIds: "",
547
+ knowledgeType: 1, //知识点交集:0 || 知识点并集:1
548
+ knowledgeVisible: false,
549
+ currentPointId: [], //考点-当前选择的考点id
550
+ knowledgeName: "", //知识点内容
551
+ isShowTooltip: true,
552
+ allKnowledgeName: "", //没被截取的知识点内容
553
+ switchValue: true, //单选:false || 多选:true
554
+ klList: [],
555
+ klArr: [], //知识点多选时,选择的知识点集合
556
+ knowledgePlaceholder: "",
557
+ inputTempStr: "", //临时存取输入框内容
558
+ toastOptions: { show: false, value: "最多支持100个知识点的查询~" }, //toast的参数
559
+ localKlIds: "",
560
+ firstEnter: true,
561
+ yearList: [],
562
+ };
563
+ },
564
+ //监控data中的数据变化
565
+ watch: {
566
+ "$store.state.resourceInfo": function (n, o) {
567
+ if (this.isFirstIndex) {
568
+ console.log("组件库监听到$store变化", n);
569
+ this.isFirstIndex = false;
570
+ this.requestIndexData();
571
+ if (!n.action) this.currentCourse = n.courseId || (n.list && n.list.courseId);
572
+ }
573
+ },
574
+ materialsGradesList(newValue, oldValue) {
575
+ let firstV = "";
576
+ let secondV = "";
577
+ let thirdV = "";
578
+ newValue.forEach((element) => {
579
+ if (element.value == this.currentCourseValue[0]) {
580
+ firstV = element.value;
581
+ element.children.forEach((item) => {
582
+ if (item.value == this.currentCourseValue[1]) {
583
+ secondV = item.value;
584
+ item.children.forEach((option) => {
585
+ if (option.value == this.currentCourseValue[2]) {
586
+ thirdV = option.value;
587
+ }
588
+ });
589
+ }
590
+ });
591
+ }
592
+ });
593
+ this.currentMaterials = [firstV, secondV, thirdV];
594
+ },
595
+ courseCascaderList(newValue, oldValue) {
596
+ this.courseCascaderList = newValue;
597
+ if (
598
+ this.firstRequestCourse &&
599
+ this.courseCascaderList &&
600
+ this.courseCascaderList.length > 0
601
+ ) {
602
+ this.firstRequestCourse = false;
603
+ setTimeout(() => {
604
+ let checkedCourseArr = [];
605
+ let checkedNodes =
606
+ this.$refs.course.$refs.courseCascader.getCheckedNodes(false);
607
+ if (checkedNodes && checkedNodes.length > 0) {
608
+ let currentNode = checkedNodes[0];
609
+ this.getCurrentCheckedCourse(checkedCourseArr, currentNode);
610
+ this.currentCourse = checkedCourseArr;
611
+ }
612
+ }, 200);
613
+ }
614
+ },
615
+ localKlIds: {
616
+ handler() {
617
+ this.currentKlIds = this.localKlIds;
618
+ this.initTreeValue();
619
+ console.log("watch", this.currentKlIds);
620
+ },
621
+ immediate: true,
622
+ },
623
+ filterText(val) {
624
+ if (this.knowledgeVisible) {
625
+ this.$refs.secondTree.filter(val);
626
+ }
627
+ },
628
+ knowledgeVisible(newVal) {
629
+ if (!newVal) {
630
+ this.filterText = "";
631
+ let length = this.$refs.secondTree.$children.length;
632
+ for (let i = 0; i < length; i++) {
633
+ this.$refs.secondTree.$children[i].node.parent.childNodes[
634
+ i
635
+ ].expanded = false;
636
+ }
637
+ }
638
+ },
639
+ examPointList(newValue, oldValue) {
640
+ this.pointData = newValue;
641
+ if (
642
+ this.pointData &&
643
+ this.pointData.length > 0 &&
644
+ (!this.currentPointId || this.currentPointId.length == 0)
645
+ ) {
646
+ this.currentPointId = [this.pointData[0].pointId];
647
+ }
648
+ },
649
+ klidsList(newValue, oldValue) {
650
+ if (!this.firstEnter) {
651
+ this.localKlIds = newValue;
652
+ }
653
+ this.firstEnter = false;
654
+ this.requestBankData();
655
+ },
656
+ years(newValue, oldValue) {
657
+ if (newValue && newValue.length) {
658
+ this.yearList = []
659
+ if(newValue.length > 6){
660
+ let temp = newValue.slice(0,6)
661
+ this.yearList = [...this.yearList, ...temp,{id: 'earlier', label: '更早'}]
662
+ }else {
663
+ newValue.forEach((element) => {
664
+ this.yearList.push(element);
665
+ });
666
+ }
667
+ } else {
668
+ this.yearList = [];
669
+ }
670
+ },
671
+ },
672
+ methods: {
673
+ changeCurrentPage() {
674
+ console.log(this.indexParam);
675
+ if (this.itemInfoList.length >= this.totalRecord) {
676
+ this.hasMore = false;
677
+ return;
678
+ }
679
+ this.indexParam.page = this.currPage + 1;
680
+ this.requestPageBank(this.indexParam);
681
+ },
682
+ handlePointChange(value) {
683
+ var pointId = value[value.length - 1];
684
+ let dic = { examPointId: pointId };
685
+ this.$emit("changeIndexParam", "changePointId", JSON.stringify(dic));
686
+ },
687
+ setListener() {
688
+ let _this = this;
689
+ //改变indexParam参数,重新请求index接口
690
+ this.$off("changeIndexParam"); //避免重复响应同一事件
691
+ this.$on("changeIndexParam", function (action, msg) {
692
+ if (action == "retryRequest") {
693
+ //加载失败后的重新请求 || 删除题目后刷新题目数据
694
+ _this.requestBankData();
695
+ return;
696
+ }
697
+ let dic = JSON.parse(msg);
698
+ for (let key in dic) {
699
+ let value = dic[key];
700
+ _this.indexParam[key] = value;
701
+ }
702
+ if (action == "changeSource") {
703
+ _this.defaultCategoryType = dic["itemBankType"];
704
+ if (_this.defaultCategoryType == 4) {
705
+ _this.indexParam.topicId = "";
706
+ _this.indexParam.year = "";
707
+ let dic = { selectedTopicId: "", currentYear: "" };
708
+
709
+ this.$emit(
710
+ "toChangeSelectedTopicId",
711
+ "toChangeSelectedTopicId",
712
+ JSON.stringify(dic)
713
+ );
714
+ this.$emit(
715
+ "toChangeCurrentYear",
716
+ "toChangeCurrentYear",
717
+ JSON.stringify(dic)
718
+ );
719
+
720
+ this.$emit(
721
+ "eventbus-emit",
722
+ "toChangeSelectedTopicId",
723
+ "toChangeSelectedTopicId",
724
+ JSON.stringify(dic)
725
+ );
726
+ this.$emit(
727
+ "eventbus-emit",
728
+ "toChangeCurrentYear",
729
+ "toChangeCurrentYear",
730
+ JSON.stringify(dic)
731
+ );
732
+ _this.allDifficultyList = JSON.parse(
733
+ JSON.stringify(_this.difficultyList)
734
+ );
735
+ _this.allDifficultyList.push(_this.undefinedDifficultyInfo);
736
+ } else {
737
+ _this.allDifficultyList = JSON.parse(
738
+ JSON.stringify(_this.difficultyList)
739
+ );
740
+ if (_this.indexParam.itemDifficultyId == "JPO-tJbAJqc") {
741
+ _this.indexParam.itemDifficultyId = "";
742
+ let diffDic = { itemDifficultyId: "" };
743
+ this.$emit(
744
+ "toChangeSelectedDifficultyId",
745
+ "toChangeSelectedDifficultyId",
746
+ JSON.stringify(diffDic)
747
+ );
748
+ this.$emit(
749
+ "eventbus-emit",
750
+ "toChangeSelectedDifficultyId",
751
+ "toChangeSelectedDifficultyId",
752
+ JSON.stringify(diffDic)
753
+ );
754
+ }
755
+ //请求专题
756
+ _this.requestTopicData();
757
+ }
758
+ }
759
+ //
760
+ if (action == "changeOrder") {
761
+ delete _this.indexParam.orderQuote;
762
+ }
763
+ if (action == "changeOrderQuote") {
764
+ delete _this.indexParam.order;
765
+ }
766
+ //请求题目数据
767
+ _this.requestBankData();
768
+ });
769
+ //编辑单题成功,若当前来源是我的题库,则刷新题目列表数据
770
+ this.$on("editItemSuccess", async (newItemObj) => {
771
+ if (_this.indexParam.itemBankType == 4) {
772
+ _this.requestBankData();
773
+ }
774
+ });
775
+ },
776
+ tabClick(value) {
777
+ console.log(value);
778
+ this.activeTab = value;
779
+ let _this = this;
780
+ let dic = {};
781
+ switch (this.activeTab) {
782
+ case "course":
783
+ _this.knowledgeVisible = false;
784
+ dic = {
785
+ itemBackQueryType: 1,
786
+ courseId: _this.currentCourseId,
787
+ klIds: "",
788
+ klUnionFlag: 1,
789
+ examPointId: "",
790
+ };
791
+ break;
792
+ case "knowledge":
793
+ dic = {
794
+ itemBackQueryType: 2,
795
+ courseId: _this.currentCourseId,
796
+ klIds: _this.currentKlIds,
797
+ klUnionFlag: _this.knowledgeType,
798
+ examPointId: "",
799
+ };
800
+ break;
801
+ case "point":
802
+ _this.knowledgeVisible = false;
803
+ dic = {
804
+ itemBackQueryType: 3,
805
+ courseId: "",
806
+ klIds: "",
807
+ klUnionFlag: 1,
808
+ examPointId:
809
+ _this.currentPointId.length > 0
810
+ ? _this.currentPointId[_this.currentPointId.length - 1]
811
+ : "",
812
+ };
813
+ break;
814
+ }
815
+ this.$emit("changeIndexParam", "changeTab", JSON.stringify(dic));
816
+ },
817
+ //初始化tree默认值
818
+ initTreeValue() {
819
+ console.log("initTree");
820
+ // debugger
821
+ if (this.switchValue) {
822
+ //多选
823
+ if (this.currentKlIds.length == 0) {
824
+ return;
825
+ }
826
+ this.klArr = this.currentKlIds.split(",");
827
+ this.$nextTick(() => {
828
+ this.$refs.secondTree.setCheckedKeys(this.klArr);
829
+ this.klArr = this.$refs.secondTree.getCheckedKeys(true);
830
+ var nodesArr = this.$refs.secondTree.getCheckedNodes();
831
+ let tempStr = "";
832
+ if (nodesArr.length == 0) {
833
+ tempStr = "";
834
+ } else if (nodesArr.length > 1) {
835
+ nodesArr.forEach((element) => {
836
+ if (!element.hasChild) {
837
+ tempStr += element.klname + ",";
838
+ }
839
+ });
840
+ } else {
841
+ tempStr = nodesArr[0].klname;
842
+ }
843
+ this.inputTempStr = tempStr;
844
+ this.clickKnowledgeItem(true, tempStr);
845
+ });
846
+ } else {
847
+ this.$nextTick(() => {
848
+ this.$refs.secondTree.setCurrentKey(this.currentKlIds);
849
+ var nodeData = this.$refs.secondTree.getCurrentNode();
850
+ if (nodeData) {
851
+ this.clickKnowledgeItem(true, nodeData.klname);
852
+ }
853
+ });
854
+ }
855
+ },
856
+ //树状结构过滤器
857
+ knowledgeFilterNode(value, data, node) {
858
+ // 如果什么都没填就直接返回
859
+ console.log("进行了过滤");
860
+ if (!value) return true;
861
+ // 如果传入的value和data中的label相同说明是匹配到了
862
+ if (data.klname.indexOf(value) !== -1) {
863
+ return true;
864
+ }
865
+ // 否则要去判断它是不是选中节点的子节点
866
+ return this.checkBelongToChooseNode(value, data, node);
867
+ },
868
+ // 判断传入的节点是不是选中节点的子节点
869
+ checkBelongToChooseNode(value, data, node) {
870
+ const level = node.level;
871
+ // 如果传入的节点本身就是一级节点就不用校验了
872
+ if (level === 1) {
873
+ return false;
874
+ }
875
+ // 先取当前节点的父节点
876
+ var parentData = node.parent;
877
+ // 遍历当前节点的父节点
878
+ var index = 0;
879
+ while (index < level - 1) {
880
+ // 如果匹配到直接返回
881
+ if (parentData.data.klname.indexOf(value) !== -1) {
882
+ return true;
883
+ }
884
+ // 否则的话再往上一层做匹配
885
+ parentData = parentData.parent;
886
+ index++;
887
+ }
888
+ // 没匹配到返回false
889
+ return false;
890
+ },
891
+ choiseKnowledgeType(value) {
892
+ this.knowledgeType = value;
893
+ },
894
+ clickKnowledgeNode(object) {
895
+ if (!this.switchValue) {
896
+ this.currentKlIds = object.klId;
897
+ let dic = { klIds: object.klId, klUnionFlag: 1 };
898
+ this.clickKnowledgeItem(true, object.klname);
899
+ this.$emit("changeIndexParam", "changeKnowledge", JSON.stringify(dic));
900
+ let tempDic = {
901
+ klIds: object.klId,
902
+ switch: this.switchValue,
903
+ knowledgeType: 1,
904
+ };
905
+ this.$emit("changeKLIds", "changeKLIds", JSON.stringify(tempDic));
906
+ }
907
+ },
908
+ checkKnowledgeNode(object, compo) {
909
+ this.klArr = this.$refs.secondTree.getCheckedKeys(true);
910
+ let tempStr = "";
911
+ if (compo.checkedNodes.length == 0) {
912
+ tempStr = "";
913
+ } else if (compo.checkedNodes.length > 1) {
914
+ compo.checkedNodes.forEach((element) => {
915
+ if (!element.hasChild) {
916
+ tempStr += element.klname + ",";
917
+ }
918
+ });
919
+ } else {
920
+ tempStr = compo.checkedNodes[0].klname;
921
+ }
922
+ this.inputTempStr = tempStr;
923
+ this.clickKnowledgeItem(false, tempStr);
924
+ if (this.klArr.length > 100) {
925
+ this.toastOptions.show = true;
926
+ setTimeout(() => {
927
+ this.toastOptions.show = false;
928
+ }, 2000);
929
+ }
930
+ },
931
+ clearKnowledges() {
932
+ let _this = this;
933
+ _this.currentKlIds = "";
934
+ if (_this.klArr.length == 0) {
935
+ return;
936
+ }
937
+ _this.klArr = [];
938
+ _this.inputTempStr = "";
939
+ _this.clickKnowledgeItem(false, _this.inputTempStr);
940
+ this.$nextTick(() => {
941
+ _this.$refs.secondTree.setCheckedKeys([]);
942
+ _this.klArr = [];
943
+ let dic = {
944
+ klIds: "",
945
+ klUnionFlag: _this.knowledgeType,
946
+ };
947
+ this.$emit("changeIndexParam", "changeKnowledge", JSON.stringify(dic));
948
+ let tempDic = {
949
+ klIds: "",
950
+ switch: _this.switchValue,
951
+ knowledgeType: _this.knowledgeType,
952
+ };
953
+ this.$emit("changeKLIds", "changeKLIds", JSON.stringify(tempDic));
954
+ });
955
+ },
956
+ toQueryWithKnowledges() {
957
+ let _this = this;
958
+ if (_this.klArr.length == 0 || _this.klArr.length > 100) {
959
+ return;
960
+ }
961
+ _this.clickKnowledgeItem(true, _this.inputTempStr);
962
+ _this.currentKlIds = _this.klArr.join();
963
+ let dic = { klIds: _this.currentKlIds, klUnionFlag: _this.knowledgeType };
964
+ this.$emit("changeIndexParam", "changeKnowledge", JSON.stringify(dic));
965
+ let tempDic = {
966
+ klIds: _this.currentKlIds,
967
+ switch: _this.switchValue,
968
+ knowledgeType: _this.knowledgeType,
969
+ };
970
+ this.$emit("changeKLIds", "changeKLIds", JSON.stringify(tempDic));
971
+ },
972
+ clickKnowledgeItem(isDisplay, name) {
973
+ console.log("clickKnowledgeItem", name);
974
+ name = this.decode(name);
975
+ this.knowledgeVisible = !isDisplay;
976
+ this.allKnowledgeName = name;
977
+ this.isShowTooltip = true;
978
+ if (name.length > 30) {
979
+ this.isShowTooltip = false;
980
+ name = name.slice(0, 30) + "...";
981
+ }
982
+ this.knowledgeName = name;
983
+ },
984
+ decode(str) {
985
+ return decodeEntities(str);
986
+ },
987
+ getAnswer(itemInfo) {
988
+ let currentItem = this.itemInfoList.find(
989
+ (item) => item.itemInfoId == itemInfo.itemInfoId
990
+ );
991
+ getAnswer(
992
+ {
993
+ itemId: itemInfo.itemInfoId,
994
+ itemBankType: this.indexParam.itemBankType,
995
+ itemSourceType: itemInfo.itemSourceType,
996
+ rootSourceId: itemInfo.rootItemInfoId,
997
+ },
998
+ (res) => {
999
+ // this.$set(currentItem, "answerDic", res.value);
1000
+ // getQuestion({ itemId: res.value.itemAnalysis }, (result) => {
1001
+ // if (!result) {
1002
+ // return;
1003
+ // }
1004
+ // currentItem.answerDic = {
1005
+ // ...currentItem.answerDic,
1006
+ // analysis: result.data,
1007
+ // };
1008
+ // this.$set(currentItem, "answerDic", currentItem.answerDic);
1009
+ // });
1010
+ if (!res) {
1011
+ return;
1012
+ }
1013
+ if (typeof res === "string") res = JSON.parse(res);
1014
+ if (res.code == 0) {
1015
+ //取出答案与解析
1016
+ // _this.answerDic = res.value;
1017
+ this.$set(currentItem, "pointNames", res.value.pointNames);
1018
+ this.$set(currentItem, "klNames", res.value.klNames);
1019
+ this.$set(currentItem, "answer", res.value.correctAnswer);
1020
+ this.$set(
1021
+ currentItem,
1022
+ "basicSkillNames",
1023
+ res.value.basicSkillNames
1024
+ );
1025
+ if (
1026
+ (res.value.itemType == 3 || res.value.itemType == 6) &&
1027
+ res.value.correctAnswer &&
1028
+ res.value.correctAnswer.length > 0
1029
+ ) {
1030
+ getQuestion({ itemId: res.value.correctAnswer }, (res) => {
1031
+ if (!res) {
1032
+ return;
1033
+ }
1034
+ if (typeof res === "string") res = JSON.parse(res);
1035
+ //取出题目数据
1036
+ this.$set(currentItem, "answer", res.data);
1037
+ });
1038
+ } else if (res.value.itemType == 7) {
1039
+ //组合单选题
1040
+ var answerArr = res.value.correctAnswer.split(",");
1041
+ var fiveArr = [],tempStr = ""; //将组合单选题答案五五放到一个数组展示
1042
+ answerArr && answerArr.length && answerArr.map(function (item, idx) {
1043
+ if (idx % 5 !== 0 || idx == 0) {
1044
+ tempStr += item;
1045
+ } else {
1046
+ fiveArr.push(tempStr);
1047
+ tempStr = item;
1048
+ }
1049
+ if (idx == answerArr.length - 1) {
1050
+ fiveArr.push(tempStr);
1051
+ }
1052
+ });
1053
+ this.$set(currentItem, "answer", fiveArr.join(";"));
1054
+ } else {
1055
+ this.$set(currentItem, "answer", res.value.correctAnswer);
1056
+ }
1057
+ if (res.value.itemAnalysis && res.value.itemAnalysis.length > 0) {
1058
+ getQuestion({ itemId: res.value.itemAnalysis }, (res) => {
1059
+ if (!res) {
1060
+ return;
1061
+ }
1062
+ //取出题目数据
1063
+ this.$set(currentItem, "analysis", res.data);
1064
+ });
1065
+ }
1066
+ }
1067
+ }
1068
+ );
1069
+ },
1070
+ getContent(itemInfo) {
1071
+ let currentItem = this.itemInfoList.find(
1072
+ (item) => item.itemInfoId == itemInfo.itemInfoId
1073
+ );
1074
+ getQuestion({ itemId: itemInfo.itemFileId }, (res) => {
1075
+ this.$set(currentItem, "content", res.data);
1076
+ });
1077
+ },
1078
+ choiceOrRemoveQuestion(itemInfo, isAdd) {
1079
+ this.$emit(
1080
+ "choiceOrRemoveQuestion",
1081
+ itemInfo,
1082
+ isAdd,
1083
+ this.defaultCategoryType
1084
+ );
1085
+ },
1086
+ headerSort(item) {
1087
+ console.log(item);
1088
+ if (item.key == "updateTime") {
1089
+ let dic = { order: item.sortOrder ? 1 : 0 };
1090
+ this.$emit("changeIndexParam", "changeOrder", JSON.stringify(dic));
1091
+ } else {
1092
+ let dic = { orderQuote: item.sortOrder ? 1 : 0 };
1093
+ this.$emit("changeIndexParam", "changeOrderQuote", JSON.stringify(dic));
1094
+ }
1095
+ },
1096
+ toShowAudio(itemInfo, itemIndex) {
1097
+ let dic = {
1098
+ questionIndex: itemIndex,
1099
+ fileId: itemInfo.audioFileId,
1100
+ };
1101
+ this.$emit("toShowAudio", "toShowAudio", JSON.stringify(dic));
1102
+ },
1103
+ // 来源点击
1104
+ sourceClick(itemBankType) {
1105
+ if (itemBankType == 5) {
1106
+ this.$emit("goQptk");
1107
+ return;
1108
+ }
1109
+ // this.currentSourceType = itemBankType;
1110
+ let dic = { itemBankType: itemBankType };
1111
+ // this.$emit('eventbus-emit', "changeIndexParam", "changeSource", JSON.stringify(dic))
1112
+ this.$emit(
1113
+ "eventbus-emit",
1114
+ "changeSource",
1115
+ "changeSource",
1116
+ JSON.stringify(dic)
1117
+ );
1118
+ this.$emit("changeIndexParam", "changeSource", JSON.stringify(dic));
1119
+ // this.$emit("changeSource", "changeSource", JSON.stringify(dic));
1120
+ },
1121
+ // 专题点击
1122
+ topicClick(topicId) {
1123
+ if (topicId == "all") {
1124
+ topicId = "";
1125
+ }
1126
+ this.selectedTopicId = topicId;
1127
+ let dic = { topicId: topicId };
1128
+ this.$emit("changeIndexParam", "changeTopic", JSON.stringify(dic));
1129
+ },
1130
+ // 题型点击
1131
+ categoryClick(itemCategoryId) {
1132
+ if (itemCategoryId == "all") {
1133
+ itemCategoryId = "";
1134
+ }
1135
+ this.selectedCategoryId = itemCategoryId;
1136
+ let dic = { itemCategoryId: itemCategoryId };
1137
+ this.$emit("changeIndexParam", "changeCategory", JSON.stringify(dic));
1138
+ },
1139
+ // 难度点击
1140
+ difficultyClick(difficultyId) {
1141
+ if (difficultyId == "all") {
1142
+ difficultyId = "";
1143
+ }
1144
+ this.selectedDifficultId = difficultyId;
1145
+ let dic = { itemDifficultyId: difficultyId };
1146
+ this.$emit("changeIndexParam", "changeDifficulty", JSON.stringify(dic));
1147
+ },
1148
+ // 年份
1149
+ yearClick(year) {
1150
+ if (year == "all") {
1151
+ year = "";
1152
+ }
1153
+ this.currentYear = year;
1154
+ let isEarly = year == "earlier" ? true : false;
1155
+ let _lastYear = this.yearList.slice(-2,-1)[0].id
1156
+ let lastYear = typeof _lastYear == 'number' ? _lastYear : 0;
1157
+ let dic = { year: isEarly ? lastYear - 1 : year, isEarlier:isEarly ? -1 : 1 };
1158
+ this.$emit("changeIndexParam", "selectYear", JSON.stringify(dic));
1159
+ },
1160
+ // 技能
1161
+ basicSkillClick(basicSkillsId) {
1162
+ if (basicSkillsId == "all") {
1163
+ basicSkillsId = "";
1164
+ }
1165
+ this.selectedSkillId = basicSkillsId;
1166
+ let dic = { itemBasicSkillId: basicSkillsId };
1167
+ this.$emit("changeIndexParam", "changeSkill", JSON.stringify(dic));
1168
+ },
1169
+ // 核心素养
1170
+ coreLiteracyClick(literacyId) {
1171
+ if (literacyId == "all") {
1172
+ literacyId = "";
1173
+ }
1174
+ let dic = { literacyId: literacyId };
1175
+ this.$emit("changeIndexParam", "changeLiteracy", JSON.stringify(dic));
1176
+ },
1177
+ changeMaterials(value) {
1178
+ console.log(value);
1179
+ this.currentCourse = []; //重置
1180
+ this.requestCourseListData(
1181
+ this.indexParam.subjectId,
1182
+ value[0],
1183
+ value[1],
1184
+ value[2]
1185
+ );
1186
+ },
1187
+ //递归获取当前选择的课程
1188
+ getCurrentCheckedCourse(arr, node) {
1189
+ if (node && node.value) {
1190
+ arr.unshift(node.value);
1191
+ if (node.parent) {
1192
+ this.getCurrentCheckedCourse(arr, node.parent);
1193
+ }
1194
+ }
1195
+ },
1196
+ changeCourse(value) {
1197
+ this.currentCourseId = value[value.length - 1];
1198
+ let dic = { courseId: this.currentCourseId };
1199
+ this.$emit("changeIndexParam", "changeCourseId", JSON.stringify(dic));
1200
+ },
1201
+ /*
1202
+ **请求题库首页数据
1203
+ * 只在首次进入该页面时请求
1204
+ */
1205
+ requestIndexData() {
1206
+ this.loadingError = false;
1207
+ this.goRequestIndexData();
1208
+ },
1209
+ // 首次进入该页面时请求获取用户信息
1210
+ goRequestIndexData() {
1211
+ let _this = this;
1212
+ console.log("getBank", this);
1213
+ var prepareInfo = this.leftInfo;
1214
+ console.log(prepareInfo, "prepareInfo1");
1215
+ if (prepareInfo && prepareInfo.eduLevelId) {
1216
+ var eduLevelId = prepareInfo.eduLevelId;
1217
+ var subjectId = prepareInfo.subjectId;
1218
+ var courseSrc = prepareInfo.courseSrc;
1219
+ var courseId = prepareInfo.courseId;
1220
+ _this.indexParam["courseSrc"] = courseSrc;
1221
+ _this.indexParam["studySectionId"] = eduLevelId;
1222
+ _this.indexParam["subjectId"] = subjectId;
1223
+ _this.indexParam["courseId"] = courseId;
1224
+ _this.currentCourseId = courseId;
1225
+ var teachMaterialId = prepareInfo.teachMaterialId;
1226
+ var gradeId = prepareInfo.gradeId;
1227
+
1228
+ let dom = document.getElementById("tk-detail-drawer-slot-id");
1229
+ let loadingInstance = Loading.service({
1230
+ target: dom,
1231
+ text: this.i18n.jiaZaiZhong,
1232
+ });
1233
+ console.log(prepareInfo, "prepareInfo");
1234
+ getBankIndex(
1235
+ {
1236
+ eduLevelId: eduLevelId,
1237
+ subjectId: subjectId,
1238
+ gradeId: gradeId,
1239
+ teachMaterialId: teachMaterialId,
1240
+ courseId: courseId,
1241
+ courseSrc: courseSrc,
1242
+ },
1243
+ (res) => {
1244
+ this.$nextTick(() => {
1245
+ // 以服务的方式调用的 Loading 需要异步关闭
1246
+ loadingInstance.close();
1247
+ });
1248
+ _this.isLoading = false;
1249
+ if (typeof res === "string") res = JSON.parse(res);
1250
+ if (res && res.code == 0) {
1251
+ console.log("getBank", res);
1252
+ //处理indexParam
1253
+ _this.indexParam.studySectionId = eduLevelId;
1254
+ _this.indexParam.subjectId = subjectId;
1255
+ _this.indexParam.itemBankType =
1256
+ res.value.itemBankQueryDto.itemBankType;
1257
+ _this.requestBankData();
1258
+ _this.totalRecord = res.value.totalRecord;
1259
+ // _this.pageInfo = {
1260
+ // currPage: res.value.currPage,
1261
+ // totalPage: res.value.totalPage,
1262
+ // perPage: res.value.perPage,
1263
+ // };
1264
+ //取出默认的题库类型
1265
+ _this.defaultCategoryType = res.value.itemBankQueryDto.itemBankType;
1266
+
1267
+ // _this.defaultSubjectList = res.value.defaultSubjectList;
1268
+ //请求教材版本
1269
+ _this.requestMaterialsGradesData(
1270
+ eduLevelId,
1271
+ subjectId,
1272
+ teachMaterialId,
1273
+ gradeId
1274
+ );
1275
+ //难度知识点是否必填
1276
+ _this.requestDifficultyAndKnowledgeSettingInfo(
1277
+ eduLevelId,
1278
+ subjectId
1279
+ );
1280
+ //请求专题数据
1281
+ _this.requestTopicData();
1282
+
1283
+ //判断是否展示“考点”tab
1284
+ _this.examPointEnableFlag = res.value.examPointEnableFlag;
1285
+ //取学年数组
1286
+ _this.years = res.value && res.value.yearList && res.value.yearList.length && res.value.yearList.map((item) => {
1287
+ return {
1288
+ id: item,
1289
+ label: item,
1290
+ };
1291
+ }) || [];
1292
+ if (_this.years.length) {
1293
+ _this.years.unshift({
1294
+ id: "all",
1295
+ label: _this.i18n.quanBu,
1296
+ });
1297
+ }
1298
+ //取来源数据
1299
+ _this.itemBankTypeList = res.value.itemBankTypeList;
1300
+ _this.itemBankTypeList.unshift({
1301
+ itemBankType: 5,
1302
+ itemBankTypeName: "精品题库",
1303
+ });
1304
+ //取技能数据
1305
+ _this.basicSkillsList = res.value.basicSkillsList;
1306
+ if (_this.basicSkillsList.length) {
1307
+ _this.basicSkillsList.unshift({
1308
+ basicSkillsId: "all",
1309
+ basicName: this.i18n.quanBu,
1310
+ });
1311
+ }
1312
+ //取核心素养数据
1313
+ _this.coreLiteracyFlag = res.value.coreLiteracyFlag;
1314
+ //核心素养
1315
+ _this.$store.commit("setCoreLiteracyFlag",res.value.coreLiteracyFlag)//是否显示核心素养
1316
+ _this.coreLiteracyList = res.value && res.value.coreLiteracyList && res.value.coreLiteracyList.length && res.value.coreLiteracyList.map(item=>{
1317
+ return {
1318
+ literacyId: item.literacyId,
1319
+ literacyName: item.literacyName
1320
+ }
1321
+ }) || [];
1322
+ if (_this.coreLiteracyList && _this.coreLiteracyList.length) {
1323
+ _this.coreLiteracyList.unshift({
1324
+ literacyId: "all",
1325
+ literacyName: this.i18n.quanBu,
1326
+ });
1327
+ }
1328
+ console.log('_this.coreLiteracyList',_this.coreLiteracyList)
1329
+ //取题型数据
1330
+ _this.itemCategoryList = res.value.itemCategoryList;
1331
+ if (_this.itemCategoryList.length) {
1332
+ _this.itemCategoryList.unshift({
1333
+ itemCategoryId: "all",
1334
+ itemCategoryName: this.i18n.quanBu,
1335
+ itemType: -1,
1336
+ });
1337
+ }
1338
+
1339
+ //取难度数据
1340
+ _this.difficultyList = JSON.parse(
1341
+ JSON.stringify(res.value.cfgDifficultyList)
1342
+ );
1343
+ if (_this.difficultyList.length) {
1344
+ _this.difficultyList.unshift({
1345
+ difficultyId: "all",
1346
+ difficultyName: this.i18n.quanBu,
1347
+ });
1348
+ }
1349
+
1350
+ if (_this.indexParam.itemBankType == 4) {
1351
+ _this.allDifficultyList = JSON.parse(
1352
+ JSON.stringify(res.value.cfgDifficultyList)
1353
+ );
1354
+ _this.allDifficultyList.push(_this.undefinedDifficultyInfo);
1355
+ } else {
1356
+ _this.allDifficultyList = JSON.parse(
1357
+ JSON.stringify(res.value.cfgDifficultyList)
1358
+ );
1359
+ }
1360
+ //知识点
1361
+ _this.klList = res.value.knowledgeList;
1362
+ //考点
1363
+ _this.examPointList = res.value.examPointList;
1364
+ //获取该课程下关联的知识点
1365
+ //变式题默认当前原题的知识点
1366
+ if (_this.fromType == "variant") {
1367
+ if (_this.klidsList == "") {
1368
+ if (
1369
+ res.value &&
1370
+ res.value.klIds &&
1371
+ res.value.klIds.length > 0
1372
+ ) {
1373
+ _this.localKlIds = res.value.klIds;
1374
+ _this.$store.commit(
1375
+ "saveCurrentKnowledgeIds",
1376
+ res.value.klIds
1377
+ );
1378
+ } else if (_this.klList.length > 0) {
1379
+ _this.localKlIds = _this.getFirstKnowledgeId(_this.klList);
1380
+ }
1381
+ } else {
1382
+ _this.localKlIds = _this.klidsList;
1383
+ }
1384
+ } else {
1385
+ if (
1386
+ res.value &&
1387
+ res.value.klIds &&
1388
+ res.value.klIds.length > 0
1389
+ ) {
1390
+ _this.localKlIds = res.value.klIds;
1391
+ _this.$store.commit(
1392
+ "saveCurrentKnowledgeIds",
1393
+ res.value.klIds
1394
+ );
1395
+ } else if (_this.klList.length > 0) {
1396
+ _this.localKlIds = _this.getFirstKnowledgeId(_this.klList);
1397
+ }
1398
+ }
1399
+ //提供数据给Vuex
1400
+ _this.$store.commit("changeValue", {
1401
+ type: "itemCategory",
1402
+ val: _this.itemCategoryList || [],
1403
+ });
1404
+ _this.$store.commit("changeValue", {
1405
+ type: "difficults",
1406
+ val: _this.difficultyList || [],
1407
+ });
1408
+ _this.$store.commit("changeValue", {
1409
+ type: "basicSkillIdList",
1410
+ val: _this.basicSkillsList || [],
1411
+ });
1412
+ _this.$store.commit("changeValue", {
1413
+ type: "klIdList",
1414
+ val: _this.klList || [],
1415
+ });
1416
+ _this.$store.commit("changeValue", {
1417
+ type: "pointIdList",
1418
+ val: _this.examPointList || [],
1419
+ });
1420
+ _this.$store.commit("changeValue", {
1421
+ type: "enableShowPoint",
1422
+ val: _this.examPointEnableFlag || false,
1423
+ });
1424
+ _this.$store.commit("changeValue", {
1425
+ type: "coreLiteracyIdList",
1426
+ val: _this.coreLiteracyList || [],
1427
+ });
1428
+ } else {
1429
+ _this.loadingError = true;
1430
+ }
1431
+ }
1432
+ );
1433
+ }
1434
+ },
1435
+ /*
1436
+ **请求题库数据
1437
+ * 筛选条件时请求
1438
+ */
1439
+ requestBankData() {
1440
+ let _this = this;
1441
+ _this.loadingError = false;
1442
+ _this.loadingBankData = true;
1443
+ _this.goRequestBankData();
1444
+ },
1445
+ //筛选条件时请求获取用户信息
1446
+ goRequestBankData() {
1447
+ let dom = document.getElementById("bankData-drawer-slot-id");
1448
+ let loadingInstance = Loading.service({
1449
+ target: dom,
1450
+ text: this.i18n.jiaZaiZhong,
1451
+ });
1452
+ let _this = this;
1453
+ var prepareInfo = this.leftInfo;
1454
+ if (prepareInfo && prepareInfo.eduLevelId) {
1455
+ var eduLevelId = prepareInfo.eduLevelId;
1456
+ var subjectId = prepareInfo.subjectId;
1457
+ var courseSrc = prepareInfo.courseSrc;
1458
+ _this.indexParam["courseSrc"] = courseSrc;
1459
+ _this.indexParam["studySectionId"] = eduLevelId;
1460
+ _this.indexParam["subjectId"] = subjectId;
1461
+ _this.indexParam["klIds"] = this.localKlIds;
1462
+ getBankData(_this.indexParam, (res) => {
1463
+ _this.loadingBankData = false;
1464
+ if (typeof res === "string") res = JSON.parse(res);
1465
+ if (res && res.code == 0) {
1466
+ //判断是否展示“考点”tab
1467
+ // _this.examPointEnableFlag = res.value.examPointEnableFlag;
1468
+ //取出题目数据
1469
+ _this.loadingError = false;
1470
+ _this.itemInfoList = res.value && res.value.itemInfoList && res.value.itemInfoList.length && res.value.itemInfoList.map((item) => {
1471
+ return { ...item, answerDic: {} };
1472
+ }) || [];
1473
+
1474
+ _this.totalRecord = res.value.totalRecord;
1475
+ _this.currPage = res.value.currPage;
1476
+ if (_this.itemInfoList.length >= _this.totalRecord) {
1477
+ _this.hasMore = false;
1478
+ } else {
1479
+ _this.hasMore = true;
1480
+ }
1481
+ _this.pageInfo = {
1482
+ currPage: res.value.currPage,
1483
+ totalPage: res.value.totalPage,
1484
+ perPage: res.value.perPage,
1485
+ };
1486
+ loadingInstance.close();
1487
+ } else {
1488
+ //请求题目数据报错
1489
+ _this.loadingError = true;
1490
+ _this.itemInfoList = [];
1491
+ _this.pageInfo = {};
1492
+ }
1493
+ });
1494
+ }
1495
+ },
1496
+ /*
1497
+ **获取教材版本数据
1498
+ */
1499
+ requestMaterialsGradesData(
1500
+ eduLevelId,
1501
+ subjectId,
1502
+ teachMaterialId,
1503
+ gradeId
1504
+ ) {
1505
+ console.log("请求教材");
1506
+ let _this = this;
1507
+ _this.courseCascaderList = [];
1508
+ getMaterialsGrades(
1509
+ {
1510
+ eduLevelId: eduLevelId,
1511
+ subjectId: subjectId,
1512
+ teachMaterialId: teachMaterialId,
1513
+ gradeId: gradeId,
1514
+ },
1515
+ (res) => {
1516
+ if (!res) {
1517
+ return;
1518
+ }
1519
+ if (typeof res === "string") res = JSON.parse(res);
1520
+ if (res.code == 0) {
1521
+ _this.currentCourseValue = [
1522
+ res.value.checkTeachMaterialId,
1523
+ res.value.checkClassificationId,
1524
+ res.value.checkTermIndex,
1525
+ ];
1526
+ _this.currentMaterials = [];
1527
+ _this.materialsGradesList = res.value.list;
1528
+
1529
+ _this.requestCourseListData(
1530
+ subjectId,
1531
+ res.value.checkTeachMaterialId,
1532
+ res.value.checkClassificationId,
1533
+ res.value.checkTermIndex
1534
+ );
1535
+ }
1536
+ }
1537
+ );
1538
+ },
1539
+ /*
1540
+ **获取知识点、难度配置,是否必填
1541
+ */
1542
+ requestDifficultyAndKnowledgeSettingInfo(eduLevelId, subjectId) {
1543
+ let _this = this;
1544
+ getKldftNecessary(
1545
+ {
1546
+ eduLevelId: eduLevelId,
1547
+ subjectId: subjectId,
1548
+ },
1549
+ (res) => {
1550
+ if (!res) {
1551
+ return;
1552
+ }
1553
+ if (typeof res === "string") res = JSON.parse(res);
1554
+ if (res.code == 0) {
1555
+ if (res.value && res.value == 2) {
1556
+ _this.$store.commit("changeValue", {
1557
+ type: "knowledgeIsRequired",
1558
+ val: false,
1559
+ });
1560
+ }
1561
+ }
1562
+ }
1563
+ );
1564
+ },
1565
+ /*
1566
+ ** 获取知识点数据
1567
+ */
1568
+ requestKnowledgeData() {
1569
+ let _this = this;
1570
+ getKnowledge(
1571
+ {
1572
+ eduLevelId: _this.indexParam.studySectionId,
1573
+ subjectId: _this.indexParam.subjectId,
1574
+ },
1575
+ (res) => {
1576
+ if (!res) {
1577
+ return;
1578
+ }
1579
+ if (typeof res === "string") res = JSON.parse(res);
1580
+ if (res.code == 0) {
1581
+ _this.klList = res.value;
1582
+ }
1583
+ }
1584
+ );
1585
+ },
1586
+ /*
1587
+ ** 获取专题数据
1588
+ */
1589
+ requestTopicData() {
1590
+ let _this = this;
1591
+ getTopic(
1592
+ {
1593
+ eduLevelId: _this.indexParam.studySectionId,
1594
+ topicSource: _this.indexParam.itemBankType == 2 ? 1 : "",
1595
+ },
1596
+ (res) => {
1597
+ if (!res) {
1598
+ return;
1599
+ }
1600
+ if (typeof res === "string") res = JSON.parse(res);
1601
+ if (res.code == 0) {
1602
+ _this.topicList = res.value;
1603
+ if (_this.topicList.length) {
1604
+ _this.topicList.unshift({
1605
+ topicId: "all",
1606
+ topicName: this.i18n.quanBu,
1607
+ });
1608
+ }
1609
+
1610
+ var hasTopic = false;
1611
+ for (var i = 0; i < _this.topicList.length; i++) {
1612
+ var topicItem = _this.topicList[i];
1613
+ if (topicItem.topicId == _this.indexParam.topicId) {
1614
+ hasTopic = true;
1615
+ break;
1616
+ }
1617
+ }
1618
+ if (!hasTopic) {
1619
+ _this.indexParam.topicId = "";
1620
+ let dic = { selectedTopicId: "" };
1621
+ this.$emit(
1622
+ "toChangeSelectedTopicId",
1623
+ "toChangeSelectedTopicId",
1624
+ JSON.stringify(dic)
1625
+ );
1626
+ }
1627
+ }
1628
+ }
1629
+ );
1630
+ },
1631
+ /*
1632
+ **获取默认的第一个子知识点
1633
+ */
1634
+ getFirstKnowledgeId(knowledgeList) {
1635
+ var tempKL = knowledgeList[0];
1636
+ if (
1637
+ tempKL.hasChild &&
1638
+ tempKL.knowledgeDtoList &&
1639
+ tempKL.knowledgeDtoList.length > 0
1640
+ ) {
1641
+ return this.getFirstKnowledgeId(tempKL.knowledgeDtoList);
1642
+ } else {
1643
+ return tempKL.klId;
1644
+ }
1645
+ },
1646
+ /*
1647
+ ** 获取课程数据
1648
+ * teachMaterialId:教材版本id
1649
+ * classificationId:册别id
1650
+ * termIndex:学期号
1651
+ */
1652
+ requestCourseListData(
1653
+ subjectId,
1654
+ teachMaterialId,
1655
+ classificationId,
1656
+ termIndex
1657
+ ) {
1658
+ let _this = this;
1659
+ getEditorCourse(
1660
+ {
1661
+ subjectId: subjectId,
1662
+ teachMaterialId: teachMaterialId,
1663
+ termIndex: termIndex,
1664
+ classificationId: classificationId,
1665
+ },
1666
+ (res) => {
1667
+ if (!res) {
1668
+ return;
1669
+ }
1670
+ if (typeof res === "string") res = JSON.parse(res);
1671
+ if (res.code == 0) {
1672
+ _this.courseCascaderList = res.value.list;
1673
+ }
1674
+ }
1675
+ );
1676
+ },
1677
+ /*
1678
+ **请求题库数据
1679
+ * 筛选条件时请求
1680
+ */
1681
+ requestPageBank(param) {
1682
+ let _this = this;
1683
+ if (!param["itemBankType"]) {
1684
+ return;
1685
+ }
1686
+ _this.pageError = false;
1687
+ _this.drawerPageError = false;
1688
+ _this.loading = true;
1689
+ getBankData(param, (res) => {
1690
+ _this.loading = false;
1691
+ if (typeof res === "string") res = JSON.parse(res);
1692
+ if (res && res.code == 0) {
1693
+ //取出题目数据
1694
+ _this.drawerPageError = false;
1695
+ _this.currPage = res.value.currPage;
1696
+ _this.itemInfoList = _this.itemInfoList.concat(
1697
+ res.value.itemInfoList
1698
+ );
1699
+ if (_this.itemInfoList.length >= res.value.totalRecord) {
1700
+ _this.hasMore = false;
1701
+ } else {
1702
+ _this.hasMore = true;
1703
+ }
1704
+ } else {
1705
+ //请求题目数据报错
1706
+ _this.drawerPageError = true;
1707
+ }
1708
+ });
1709
+ },
1710
+ clickRetryBtn() {
1711
+ this.$emit("changeIndexParam", "retryRequest", "retryRequest");
1712
+ },
1713
+ },
1714
+ computed: {},
1715
+ created() {},
1716
+ mounted() {
1717
+ this.setListener();
1718
+ this.requestIndexData();
1719
+ if (!this.host.includes("teach.focusteach.com")) {
1720
+ this.host = "http://teach.focusteach.com:8085";
1721
+ }
1722
+ },
1723
+ };
1724
+ </script>
1725
+
1726
+ <style lang="scss" scoped>
1727
+ @import "../../../style/icon/style.css";
1728
+ @import "./index.scss";
1729
+ </style>
1730
+