@x-edu/live-player 0.0.1

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 (645) hide show
  1. package/.browserslistrc +10 -0
  2. package/.eslintignore +8 -0
  3. package/.eslintrc.js +26 -0
  4. package/.gem-mine +11 -0
  5. package/.postcssrc.js +6 -0
  6. package/babel.config.js +33 -0
  7. package/dist/XEduLivePlayer.umd.min.js +29419 -0
  8. package/dist/img/icon_coffee.afc4fe2f.png +0 -0
  9. package/dist/img/icon_completed.19a464a3.png +0 -0
  10. package/dist/img/play-button-hover.fdb338b1.png +0 -0
  11. package/dist/img/play-button.f4b271fb.png +0 -0
  12. package/dist/img/reload.3cf8ef22.png +0 -0
  13. package/gem-mine.config.js +86 -0
  14. package/jest.config.js +9 -0
  15. package/jsconfig.json +15 -0
  16. package/mock/helper.js +8 -0
  17. package/mock/index.js +34 -0
  18. package/package.json +96 -0
  19. package/public/.well-known/apple-app-site-association +1 -0
  20. package/public/3rd/ali-player/alipayercomponents-1.0.8.min.js +26 -0
  21. package/public/3rd/ali-player/aliplayer-hls-min.js +28 -0
  22. package/public/3rd/ali-player/aliplayer-min.css +1 -0
  23. package/public/3rd/ali-player/aliplayer-min.js +2 -0
  24. package/public/3rd/ali-player/img/fullscreen.png +0 -0
  25. package/public/3rd/ali-player/img/playanimation.png +0 -0
  26. package/public/3rd/ali-player/img/smallscreen.png +0 -0
  27. package/public/3rd/ali-player/img/volume.png +0 -0
  28. package/public/3rd/im-web-push/index.umd.js +14 -0
  29. package/public/JsBridge.js +1602 -0
  30. package/public/fish/editor/lang/zh-cn/zh-cn.min.js +1 -0
  31. package/public/fish/editor/loading.gif +0 -0
  32. package/public/fish/editor/themes/default/css/ueditor.css +1906 -0
  33. package/public/fish/editor/themes/default/images/icons.png +0 -0
  34. package/public/fish/editor/themes/default/images/scale.png +0 -0
  35. package/public/fish/editor/themes/default/images/spacer.gif +0 -0
  36. package/public/fish/editor/themes/default/images/videologo.gif +0 -0
  37. package/public/fish/editor/themes/iframe.css +0 -0
  38. package/public/fish/editor/third-party/codemirror/codemirror.css +104 -0
  39. package/public/fish/editor/third-party/codemirror/codemirror.js +3581 -0
  40. package/public/fish/editor/third-party/zeroclipboard/ZeroClipboard.js +1256 -0
  41. package/public/fish/editor/ueditor.all.min.js +17 -0
  42. package/public/fish/editor/ueditor.config.js +467 -0
  43. package/public/fish/icon/umd-4.1.2.js +2 -0
  44. package/public/fish/video/icon_active.gif +0 -0
  45. package/public/fish/video/videoplayer.min.css +7 -0
  46. package/public/fish/video/videoplayer.min.js +32 -0
  47. package/public/fish/video/zh-CN.js +83 -0
  48. package/public/icon/demo.css +539 -0
  49. package/public/icon/demo_index.html +2189 -0
  50. package/public/icon/iconfont.css +363 -0
  51. package/public/icon/iconfont.js +1 -0
  52. package/public/icon/iconfont.json +618 -0
  53. package/public/icon/iconfont.ttf +0 -0
  54. package/public/icon/iconfont.woff +0 -0
  55. package/public/icon/iconfont.woff2 +0 -0
  56. package/public/index.html +50 -0
  57. package/script/image/readme.md +77 -0
  58. package/script/postcss.js +48 -0
  59. package/src/App.jsx +18 -0
  60. package/src/asset/img/activeBanner//342/200/234/345/217/214/345/207/217/342/200/235/345/267/245/344/275/234.png +0 -0
  61. package/src/asset/img/activeBanner//344/271/211/345/212/241/346/225/231/350/202/262.png +0 -0
  62. package/src/asset/img/activeBanner//344/274/230/347/247/200/344/274/240/347/273/237/346/226/207/345/214/226.png +0 -0
  63. package/src/asset/img/activeBanner//344/275/223/350/202/262/351/224/273/347/202/274.png +0 -0
  64. package/src/asset/img/activeBanner//345/205/232/345/217/262/345/255/246/344/271/240.png +0 -0
  65. package/src/asset/img/activeBanner//345/205/232/345/273/272/345/276/267/350/202/262.png +0 -0
  66. package/src/asset/img/activeBanner//345/212/263/345/212/250/345/205/211/350/215/243.png +0 -0
  67. package/src/asset/img/activeBanner//345/212/263/345/212/250/345/257/274/350/210/252.png +0 -0
  68. package/src/asset/img/activeBanner//345/212/263/345/212/250/346/225/231/350/202/262.png +0 -0
  69. package/src/asset/img/activeBanner//345/212/263/345/212/250/346/231/272/346/205/247.png +0 -0
  70. package/src/asset/img/activeBanner//345/223/201/345/276/267/346/225/231/350/202/262.png +0 -0
  71. package/src/asset/img/activeBanner//345/255/246/345/211/215/346/225/231/350/202/262.png +0 -0
  72. package/src/asset/img/activeBanner//345/256/252/346/263/225/346/263/225/346/262/273.png +0 -0
  73. package/src/asset/img/activeBanner//345/256/266/345/272/255/346/225/231/350/202/262/346/214/207/345/257/274.png +0 -0
  74. package/src/asset/img/activeBanner//345/256/266/345/272/255/346/225/231/350/202/262/346/226/271/346/263/225.png +0 -0
  75. package/src/asset/img/activeBanner//345/256/266/345/272/255/346/225/231/350/202/262/350/247/202/345/277/265.png +0 -0
  76. package/src/asset/img/activeBanner//345/275/261/350/247/206/346/225/231/350/202/262.png +0 -0
  77. package/src/asset/img/activeBanner//345/277/203/347/220/206/345/201/245/345/272/267.png +0 -0
  78. package/src/asset/img/activeBanner//346/200/235/346/224/277/350/257/276/347/250/213.png +0 -0
  79. package/src/asset/img/activeBanner//346/225/231/345/255/246/346/210/220/346/236/234.png +0 -0
  80. package/src/asset/img/activeBanner//346/225/231/346/235/220/344/270/223/345/214/272.png +0 -0
  81. package/src/asset/img/activeBanner//346/225/231/350/202/262/344/277/241/346/201/257/345/214/226.png +0 -0
  82. package/src/asset/img/activeBanner//346/226/207/345/214/226/350/211/272/346/234/257.png +0 -0
  83. package/src/asset/img/activeBanner//346/231/256/351/200/232/351/253/230/344/270/255.png +0 -0
  84. package/src/asset/img/activeBanner//347/210/261/345/233/275/344/270/273/344/271/211.png +0 -0
  85. package/src/asset/img/activeBanner//347/211/271/346/256/212/346/225/231/350/202/262.png +0 -0
  86. package/src/asset/img/activeBanner//347/224/237/345/221/275/344/270/216/345/256/211/345/205/250.png +0 -0
  87. package/src/asset/img/activeBanner//347/224/237/346/200/201/346/226/207/346/230/216.png +0 -0
  88. package/src/asset/img/activeBanner//347/240/224/345/255/246/345/256/236/350/267/265.png +0 -0
  89. package/src/asset/img/activeBanner//347/247/221/346/231/256/346/225/231/350/202/262.png +0 -0
  90. package/src/asset/img/activeBanner//347/273/217/345/205/270/351/230/205/350/257/273.png +0 -0
  91. package/src/asset/img/activeBanner//347/273/274/345/220/210/346/224/271/351/235/251.png +0 -0
  92. package/src/asset/img/advertisement.png +0 -0
  93. package/src/asset/img/bg-block.png +0 -0
  94. package/src/asset/img/bookhover.png +0 -0
  95. package/src/asset/img/card.png +0 -0
  96. package/src/asset/img/catalog/article.png +0 -0
  97. package/src/asset/img/catalog/audio.png +0 -0
  98. package/src/asset/img/catalog/course.png +0 -0
  99. package/src/asset/img/catalog/document.png +0 -0
  100. package/src/asset/img/catalog/image.png +0 -0
  101. package/src/asset/img/catalog/link.png +0 -0
  102. package/src/asset/img/catalog/openClassLive.png +0 -0
  103. package/src/asset/img/catalog/other.png +0 -0
  104. package/src/asset/img/catalog/video.png +0 -0
  105. package/src/asset/img/class-live-header-icon.png +0 -0
  106. package/src/asset/img/content/article.png +0 -0
  107. package/src/asset/img/content/document.png +0 -0
  108. package/src/asset/img/content/image.png +0 -0
  109. package/src/asset/img/content/url.png +0 -0
  110. package/src/asset/img/content/video.png +0 -0
  111. package/src/asset/img/contentType/default.png +0 -0
  112. package/src/asset/img/contentType/x_article.png +0 -0
  113. package/src/asset/img/contentType/x_audio_video.png +0 -0
  114. package/src/asset/img/contentType/x_course.png +0 -0
  115. package/src/asset/img/contentType/x_document.png +0 -0
  116. package/src/asset/img/contentType/x_image_list.png +0 -0
  117. package/src/asset/img/course/book.svg +1 -0
  118. package/src/asset/img/course/courseBg.png +0 -0
  119. package/src/asset/img/course/default.png +0 -0
  120. package/src/asset/img/course/document.png +0 -0
  121. package/src/asset/img/course/done.png +0 -0
  122. package/src/asset/img/course/file_doc.svg +1 -0
  123. package/src/asset/img/course/file_doc_active.svg +1 -0
  124. package/src/asset/img/course/file_video.svg +1 -0
  125. package/src/asset/img/course/file_video_active.svg +1 -0
  126. package/src/asset/img/course/icon_checkbox_linear.svg +1 -0
  127. package/src/asset/img/course/icondown.png +0 -0
  128. package/src/asset/img/course/learning.png +0 -0
  129. package/src/asset/img/course/lecturerDefault.png +0 -0
  130. package/src/asset/img/course/nolearn.png +0 -0
  131. package/src/asset/img/course/noplay.png +0 -0
  132. package/src/asset/img/course/pause.png +0 -0
  133. package/src/asset/img/course/people.png +0 -0
  134. package/src/asset/img/course/play.png +0 -0
  135. package/src/asset/img/course/playing.svg +22 -0
  136. package/src/asset/img/course/reload.png +0 -0
  137. package/src/asset/img/course/shouqi_icon.png +0 -0
  138. package/src/asset/img/course/test.png +0 -0
  139. package/src/asset/img/course/video.png +0 -0
  140. package/src/asset/img/def/resource_def.png +0 -0
  141. package/src/asset/img/def/studio_def.png +0 -0
  142. package/src/asset/img/def-avatar.jpg +0 -0
  143. package/src/asset/img/download-active.png +0 -0
  144. package/src/asset/img/download.png +0 -0
  145. package/src/asset/img/eduReform/djdy-cover.png +0 -0
  146. package/src/asset/img/eduReform/djdy.png +0 -0
  147. package/src/asset/img/eduReform/jxcg-1.png +0 -0
  148. package/src/asset/img/eduReform/jxcg-2.png +0 -0
  149. package/src/asset/img/eduReform/jxcg-3.png +0 -0
  150. package/src/asset/img/eduReform/jxcg-4.png +0 -0
  151. package/src/asset/img/eduReform/jxcg-cover.png +0 -0
  152. package/src/asset/img/eduReform/jxgg.png +0 -0
  153. package/src/asset/img/eduReform/jyxxh-cover.png +0 -0
  154. package/src/asset/img/eduReform/jyxxh.png +0 -0
  155. package/src/asset/img/eduReform/ptgz-cover.png +0 -0
  156. package/src/asset/img/eduReform/ptgz.png +0 -0
  157. package/src/asset/img/eduReform/sjgz-cover.png +0 -0
  158. package/src/asset/img/eduReform/sjgz.png +0 -0
  159. package/src/asset/img/eduReform/tsjy-cover.png +0 -0
  160. package/src/asset/img/eduReform/tsjy.png +0 -0
  161. package/src/asset/img/eduReform/xqjy-1.png +0 -0
  162. package/src/asset/img/eduReform/xqjy-2.png +0 -0
  163. package/src/asset/img/eduReform/xqjy-3.png +0 -0
  164. package/src/asset/img/eduReform/xqjy-4.png +0 -0
  165. package/src/asset/img/eduReform/xqjy-cover.png +0 -0
  166. package/src/asset/img/eduReform/xqjy.png +0 -0
  167. package/src/asset/img/eduReform/ywjy-1.png +0 -0
  168. package/src/asset/img/eduReform/ywjy-2.png +0 -0
  169. package/src/asset/img/eduReform/ywjy-cover.png +0 -0
  170. package/src/asset/img/eduReform/ywjy.png +0 -0
  171. package/src/asset/img/eduReform/zhgg-1.png +0 -0
  172. package/src/asset/img/eduReform/zhgg-2.png +0 -0
  173. package/src/asset/img/eduReform/zhgg-cover.png +0 -0
  174. package/src/asset/img/eduReform/zhgg.png +0 -0
  175. package/src/asset/img/family/1.jpg +0 -0
  176. package/src/asset/img/family/ff-1.png +0 -0
  177. package/src/asset/img/family/ff-2.png +0 -0
  178. package/src/asset/img/family/ff-3.png +0 -0
  179. package/src/asset/img/family/ff-cover.png +0 -0
  180. package/src/asset/img/family/gn-1.png +0 -0
  181. package/src/asset/img/family/gn-2.png +0 -0
  182. package/src/asset/img/family/gn-3.png +0 -0
  183. package/src/asset/img/family/gn-cover.png +0 -0
  184. package/src/asset/img/family/icon/jyff.png +0 -0
  185. package/src/asset/img/family/icon/jygn.png +0 -0
  186. package/src/asset/img/family/icon/jyzd.png +0 -0
  187. package/src/asset/img/family/zd-1.png +0 -0
  188. package/src/asset/img/family/zd-2.png +0 -0
  189. package/src/asset/img/family/zd-3.png +0 -0
  190. package/src/asset/img/family/zd-cover.png +0 -0
  191. package/src/asset/img/favicon-m.png +0 -0
  192. package/src/asset/img/favicon.png +0 -0
  193. package/src/asset/img/icon-course-white.svg +3 -0
  194. package/src/asset/img/icon-course.svg +3 -0
  195. package/src/asset/img/icon-eye-white.svg +4 -0
  196. package/src/asset/img/icon-eye.svg +4 -0
  197. package/src/asset/img/icon-school-white.svg +3 -0
  198. package/src/asset/img/icon-school.svg +3 -0
  199. package/src/asset/img/img-jgsj/10.png +0 -0
  200. package/src/asset/img/img-jgsj/3.png +0 -0
  201. package/src/asset/img/img-jgsj/4.png +0 -0
  202. package/src/asset/img/img-jgsj/5.png +0 -0
  203. package/src/asset/img/img-jgsj/6.png +0 -0
  204. package/src/asset/img/img-jgsj/7-1.png +0 -0
  205. package/src/asset/img/img-jgsj/7-2.png +0 -0
  206. package/src/asset/img/img-jgsj/8.png +0 -0
  207. package/src/asset/img/img-jgsj/8s.png +0 -0
  208. package/src/asset/img/img-jgsj/9.png +0 -0
  209. package/src/asset/img/img-search-tag-bottom.png +0 -0
  210. package/src/asset/img/img-ztjy/1.png +0 -0
  211. package/src/asset/img/img-ztjy/2.png +0 -0
  212. package/src/asset/img/img-ztjy/3.png +0 -0
  213. package/src/asset/img/img-ztjy/4.png +0 -0
  214. package/src/asset/img/img-ztjy/5.png +0 -0
  215. package/src/asset/img/img-ztjy/6.png +0 -0
  216. package/src/asset/img/img-ztjy/icon/agzy.png +0 -0
  217. package/src/asset/img/img-ztjy/icon/dsxx.png +0 -0
  218. package/src/asset/img/img-ztjy/icon/kcjx.png +0 -0
  219. package/src/asset/img/img-ztjy/icon/pdjy.png +0 -0
  220. package/src/asset/img/img-ztjy/icon/smyaq.png +0 -0
  221. package/src/asset/img/img-ztjy/icon/stwm.png +0 -0
  222. package/src/asset/img/img-ztjy/icon/xffz.png +0 -0
  223. package/src/asset/img/img-ztjy/icon/xljk.png +0 -0
  224. package/src/asset/img/img-ztjy/icon/yxctwh.png +0 -0
  225. package/src/asset/img/incentives/star.png +0 -0
  226. package/src/asset/img/juhe-bg.png +0 -0
  227. package/src/asset/img/left-hover.png +0 -0
  228. package/src/asset/img/left-nor.png +0 -0
  229. package/src/asset/img/living-gif-web.gif +0 -0
  230. package/src/asset/img/loading.svg +52 -0
  231. package/src/asset/img/person.png +0 -0
  232. package/src/asset/img/personalCenter/calendar_icon.png +0 -0
  233. package/src/asset/img/personalCenter/clock.png +0 -0
  234. package/src/asset/img/personalCenter/cover.jpg +0 -0
  235. package/src/asset/img/personalCenter/default_cover.png +0 -0
  236. package/src/asset/img/personalCenter/header_bg.png +0 -0
  237. package/src/asset/img/personalCenter/video_icon.png +0 -0
  238. package/src/asset/img/resource/cover.png +0 -0
  239. package/src/asset/img/resource/more_close.png +0 -0
  240. package/src/asset/img/resource/more_open.png +0 -0
  241. package/src/asset/img/resource/remove.png +0 -0
  242. package/src/asset/img/resource/tags.png +0 -0
  243. package/src/asset/img/resource/upload.png +0 -0
  244. package/src/asset/img/resource//346/211/271/351/207/217/347/274/226/350/276/221@2x.png +0 -0
  245. package/src/asset/img/right-hover.png +0 -0
  246. package/src/asset/img/right-icon.png +0 -0
  247. package/src/asset/img/right-nor.png +0 -0
  248. package/src/asset/img/schoolService/jdyd-1.png +0 -0
  249. package/src/asset/img/schoolService/jdyd-2.png +0 -0
  250. package/src/asset/img/schoolService/jdyd-3.png +0 -0
  251. package/src/asset/img/schoolService/jdyd-cover.png +0 -0
  252. package/src/asset/img/schoolService/jdyd.png +0 -0
  253. package/src/asset/img/schoolService/kpjy-1.png +0 -0
  254. package/src/asset/img/schoolService/kpjy-2.png +0 -0
  255. package/src/asset/img/schoolService/kpjy-3.png +0 -0
  256. package/src/asset/img/schoolService/kpjy-cover.png +0 -0
  257. package/src/asset/img/schoolService/kpjy.png +0 -0
  258. package/src/asset/img/schoolService/tydl-1.png +0 -0
  259. package/src/asset/img/schoolService/tydl-2.png +0 -0
  260. package/src/asset/img/schoolService/tydl-3.png +0 -0
  261. package/src/asset/img/schoolService/tydl-cover.png +0 -0
  262. package/src/asset/img/schoolService/tydl.png +0 -0
  263. package/src/asset/img/schoolService/whys-1.png +0 -0
  264. package/src/asset/img/schoolService/whys-2.png +0 -0
  265. package/src/asset/img/schoolService/whys-3.png +0 -0
  266. package/src/asset/img/schoolService/whys-4.png +0 -0
  267. package/src/asset/img/schoolService/whys-cover.png +0 -0
  268. package/src/asset/img/schoolService/whys.png +0 -0
  269. package/src/asset/img/schoolService/ysjy-1.png +0 -0
  270. package/src/asset/img/schoolService/ysjy-2.png +0 -0
  271. package/src/asset/img/schoolService/ysjy-3.png +0 -0
  272. package/src/asset/img/schoolService/ysjy-4.png +0 -0
  273. package/src/asset/img/schoolService/ysjy-cover.png +0 -0
  274. package/src/asset/img/schoolService/ysjy.png +0 -0
  275. package/src/asset/img/schoolService/yxjy-cover.png +0 -0
  276. package/src/asset/img/schoolService/yxsj-1.png +0 -0
  277. package/src/asset/img/schoolService/yxsj-2.png +0 -0
  278. package/src/asset/img/schoolService/yxsj-3.png +0 -0
  279. package/src/asset/img/schoolService/yxsj.png +0 -0
  280. package/src/asset/img/sedu/catalog/list.png +0 -0
  281. package/src/asset/img/sedu/icon/agzy-prefix.png +0 -0
  282. package/src/asset/img/sedu/icon/agzy.png +0 -0
  283. package/src/asset/img/sedu/icon/arrow-hover.png +0 -0
  284. package/src/asset/img/sedu/icon/arrow.png +0 -0
  285. package/src/asset/img/sedu/icon/dsxx-prefix.png +0 -0
  286. package/src/asset/img/sedu/icon/dsxx.png +0 -0
  287. package/src/asset/img/sedu/icon/epidemic-prevention-bg.png +0 -0
  288. package/src/asset/img/sedu/icon/epidemic-prevention.png +0 -0
  289. package/src/asset/img/sedu/icon/family-bg.png +0 -0
  290. package/src/asset/img/sedu/icon/family.png +0 -0
  291. package/src/asset/img/sedu/icon/film-bg.png +0 -0
  292. package/src/asset/img/sedu/icon/film.png +0 -0
  293. package/src/asset/img/sedu/icon/go-more-hover.png +0 -0
  294. package/src/asset/img/sedu/icon/go-more.png +0 -0
  295. package/src/asset/img/sedu/icon/kcjx.png +0 -0
  296. package/src/asset/img/sedu/icon/ldjy-prefix.png +0 -0
  297. package/src/asset/img/sedu/icon/life-safe-bg.png +0 -0
  298. package/src/asset/img/sedu/icon/life-safe.png +0 -0
  299. package/src/asset/img/sedu/icon/morality-bg.png +0 -0
  300. package/src/asset/img/sedu/icon/morality.png +0 -0
  301. package/src/asset/img/sedu/icon/more-bg.png +0 -0
  302. package/src/asset/img/sedu/icon/more.png +0 -0
  303. package/src/asset/img/sedu/icon/party-history-bg.png +0 -0
  304. package/src/asset/img/sedu/icon/party-history.png +0 -0
  305. package/src/asset/img/sedu/icon/pdjy-prefix.png +0 -0
  306. package/src/asset/img/sedu/icon/pdjy.png +0 -0
  307. package/src/asset/img/sedu/icon/psychological-bg.png +0 -0
  308. package/src/asset/img/sedu/icon/psychological.png +0 -0
  309. package/src/asset/img/sedu/icon/read-bg.png +0 -0
  310. package/src/asset/img/sedu/icon/read.png +0 -0
  311. package/src/asset/img/sedu/icon/smaq-prefix.png +0 -0
  312. package/src/asset/img/sedu/icon/smyaq.png +0 -0
  313. package/src/asset/img/sedu/icon/study-bg.png +0 -0
  314. package/src/asset/img/sedu/icon/study.png +0 -0
  315. package/src/asset/img/sedu/icon/stwm-prefix.png +0 -0
  316. package/src/asset/img/sedu/icon/stwm.png +0 -0
  317. package/src/asset/img/sedu/icon/xffz-prefix.png +0 -0
  318. package/src/asset/img/sedu/icon/xffz.png +0 -0
  319. package/src/asset/img/sedu/icon/xljk-prefix.png +0 -0
  320. package/src/asset/img/sedu/icon/xljk.png +0 -0
  321. package/src/asset/img/sedu/icon/yxctwh-prefix.png +0 -0
  322. package/src/asset/img/sedu/icon/yxctwh.png +0 -0
  323. package/src/asset/img/sedu/nav_new/agzy-1.png +0 -0
  324. package/src/asset/img/sedu/nav_new/agzy-2.png +0 -0
  325. package/src/asset/img/sedu/nav_new/agzy-3.png +0 -0
  326. package/src/asset/img/sedu/nav_new/agzy-cover.png +0 -0
  327. package/src/asset/img/sedu/nav_new/agzy.png +0 -0
  328. package/src/asset/img/sedu/nav_new/dsxx-1.png +0 -0
  329. package/src/asset/img/sedu/nav_new/dsxx-2.png +0 -0
  330. package/src/asset/img/sedu/nav_new/dsxx-3.png +0 -0
  331. package/src/asset/img/sedu/nav_new/dsxx-cover.png +0 -0
  332. package/src/asset/img/sedu/nav_new/dsxx.png +0 -0
  333. package/src/asset/img/sedu/nav_new/jdwy-1.png +0 -0
  334. package/src/asset/img/sedu/nav_new/jdwy-2.png +0 -0
  335. package/src/asset/img/sedu/nav_new/jdwy-3.png +0 -0
  336. package/src/asset/img/sedu/nav_new/ldjy-1.png +0 -0
  337. package/src/asset/img/sedu/nav_new/ldjy-2.png +0 -0
  338. package/src/asset/img/sedu/nav_new/ldjy-3.png +0 -0
  339. package/src/asset/img/sedu/nav_new/ldjy-cover.png +0 -0
  340. package/src/asset/img/sedu/nav_new/ldjy.png +0 -0
  341. package/src/asset/img/sedu/nav_new/pdjy-1.png +0 -0
  342. package/src/asset/img/sedu/nav_new/pdjy-2.png +0 -0
  343. package/src/asset/img/sedu/nav_new/pdjy-3.png +0 -0
  344. package/src/asset/img/sedu/nav_new/pdjy-cover.png +0 -0
  345. package/src/asset/img/sedu/nav_new/pdjy.png +0 -0
  346. package/src/asset/img/sedu/nav_new/smyaq-1.png +0 -0
  347. package/src/asset/img/sedu/nav_new/smyaq-2.png +0 -0
  348. package/src/asset/img/sedu/nav_new/smyaq-3.png +0 -0
  349. package/src/asset/img/sedu/nav_new/smyaq-4.png +0 -0
  350. package/src/asset/img/sedu/nav_new/smyaq-cover.png +0 -0
  351. package/src/asset/img/sedu/nav_new/smyaq.png +0 -0
  352. package/src/asset/img/sedu/nav_new/stwm-1.png +0 -0
  353. package/src/asset/img/sedu/nav_new/stwm-2.png +0 -0
  354. package/src/asset/img/sedu/nav_new/stwm-3.png +0 -0
  355. package/src/asset/img/sedu/nav_new/stwm-cover.png +0 -0
  356. package/src/asset/img/sedu/nav_new/stwm.png +0 -0
  357. package/src/asset/img/sedu/nav_new/xffz-1.png +0 -0
  358. package/src/asset/img/sedu/nav_new/xffz-2.png +0 -0
  359. package/src/asset/img/sedu/nav_new/xffz-3.png +0 -0
  360. package/src/asset/img/sedu/nav_new/xffz-4.png +0 -0
  361. package/src/asset/img/sedu/nav_new/xffz-cover.png +0 -0
  362. package/src/asset/img/sedu/nav_new/xffz.png +0 -0
  363. package/src/asset/img/sedu/nav_new/xljk-1.png +0 -0
  364. package/src/asset/img/sedu/nav_new/xljk-2.png +0 -0
  365. package/src/asset/img/sedu/nav_new/xljk-3.png +0 -0
  366. package/src/asset/img/sedu/nav_new/xljk-cover.png +0 -0
  367. package/src/asset/img/sedu/nav_new/xljk.png +0 -0
  368. package/src/asset/img/sedu/nav_new/yxctwh-1.png +0 -0
  369. package/src/asset/img/sedu/nav_new/yxctwh-2.png +0 -0
  370. package/src/asset/img/sedu/nav_new/yxctwh-3.png +0 -0
  371. package/src/asset/img/sedu/nav_new/zgwhct-cover.png +0 -0
  372. package/src/asset/img/sedu/nav_new/zgwhct.png +0 -0
  373. package/src/asset/img/star.png +0 -0
  374. package/src/asset/img/star_filled.png +0 -0
  375. package/src/asset/img/star_hover.png +0 -0
  376. package/src/asset/img/up-hover.png +0 -0
  377. package/src/asset/img/up-nor.png +0 -0
  378. package/src/asset/img/video-play.svg +6 -0
  379. package/src/asset/style/background.less +20 -0
  380. package/src/asset/style/banner.less +36 -0
  381. package/src/asset/style/base.less +74 -0
  382. package/src/asset/style/index.less +114 -0
  383. package/src/asset/style/reset-theme.less +142 -0
  384. package/src/asset/style/theme/index.less +55 -0
  385. package/src/asset/style/theme/party/global.less +20 -0
  386. package/src/asset/style/theme/party/img/footer-bg.png +0 -0
  387. package/src/asset/style/theme/party/img/header-bg-1.png +0 -0
  388. package/src/asset/style/theme/party/img/header-bg-2.png +0 -0
  389. package/src/asset/style/theme/party/img/header-bg.png +0 -0
  390. package/src/asset/style/theme/party/img/logo.png +0 -0
  391. package/src/asset/style/theme/party/override.less +57 -0
  392. package/src/asset/style/theme/test/global.less +18 -0
  393. package/src/asset/style/theme/test/img/footer-bg.png +0 -0
  394. package/src/asset/style/theme/test/img/header-bg-1.png +0 -0
  395. package/src/asset/style/theme/test/img/header-bg-2.png +0 -0
  396. package/src/asset/style/theme/test/img/header-bg.png +0 -0
  397. package/src/asset/style/theme/test/img/logo.png +0 -0
  398. package/src/asset/style/theme/test/override.less +45 -0
  399. package/src/asset/style/variable.less +12 -0
  400. package/src/component/AliPlayer/index.jsx +46 -0
  401. package/src/component/Avatar/index.jsx +52 -0
  402. package/src/component/Empty/img/empty.png +0 -0
  403. package/src/component/Empty/index.jsx +36 -0
  404. package/src/component/Empty/index.module.less +37 -0
  405. package/src/component/IMChatroom/asset/style/images/welcome-m.png +0 -0
  406. package/src/component/IMChatroom/asset/style/images/welcome.png +0 -0
  407. package/src/component/IMChatroom/asset/style/index.module.less +0 -0
  408. package/src/component/IMChatroom/component/status/403.jsx +13 -0
  409. package/src/component/IMChatroom/component/status/404.jsx +13 -0
  410. package/src/component/IMChatroom/component/status/Error.jsx +23 -0
  411. package/src/component/IMChatroom/component/status/Loading.jsx +5 -0
  412. package/src/component/IMChatroom/config/app/config.js +118 -0
  413. package/src/component/IMChatroom/config/app/index.js +60 -0
  414. package/src/component/IMChatroom/config/env.js +5 -0
  415. package/src/component/IMChatroom/config/index.js +3 -0
  416. package/src/component/IMChatroom/config/request/config/base.js +124 -0
  417. package/src/component/IMChatroom/config/request/config/chatroom.js +26 -0
  418. package/src/component/IMChatroom/config/request/config/imCoreApi.js +21 -0
  419. package/src/component/IMChatroom/config/request/index.js +21 -0
  420. package/src/component/IMChatroom/config/request/proxy.js +39 -0
  421. package/src/component/IMChatroom/config/url.js +7 -0
  422. package/src/component/IMChatroom/constants/errorCode.js +9 -0
  423. package/src/component/IMChatroom/constants/index.js +84 -0
  424. package/src/component/IMChatroom/constants/origin.js +27 -0
  425. package/src/component/IMChatroom/context/chatroom.js +154 -0
  426. package/src/component/IMChatroom/context/connect.js +28 -0
  427. package/src/component/IMChatroom/i18n/en/index.json +73 -0
  428. package/src/component/IMChatroom/i18n/index.jsx +14 -0
  429. package/src/component/IMChatroom/i18n/language.js +9 -0
  430. package/src/component/IMChatroom/i18n/zh-CN/index.json +73 -0
  431. package/src/component/IMChatroom/index.jsx +49 -0
  432. package/src/component/IMChatroom/page/chat/index.jsx +27 -0
  433. package/src/component/IMChatroom/page/chat/messageEditor/index.jsx +375 -0
  434. package/src/component/IMChatroom/page/chat/messageList/index.jsx +354 -0
  435. package/src/component/IMChatroom/page/chat/stickedMessage/index.jsx +59 -0
  436. package/src/component/IMChatroom/page/chat/stickedMessage/style/index.module.less +8 -0
  437. package/src/component/IMChatroom/page/chat/style/index.module.less +52 -0
  438. package/src/component/IMChatroom/page/home/connect/index.jsx +188 -0
  439. package/src/component/IMChatroom/page/home/connect/status.jsx +124 -0
  440. package/src/component/IMChatroom/page/home/context/cmd.jsx +37 -0
  441. package/src/component/IMChatroom/page/home/context/index.jsx +67 -0
  442. package/src/component/IMChatroom/page/home/index.jsx +164 -0
  443. package/src/component/IMChatroom/page/home/notice/index.jsx +123 -0
  444. package/src/component/IMChatroom/page/home/notice/style/index.module.less +50 -0
  445. package/src/component/IMChatroom/page/home/style/images/font-size-active-m.png +0 -0
  446. package/src/component/IMChatroom/page/home/style/images/font-size-active.png +0 -0
  447. package/src/component/IMChatroom/page/home/style/images/font-size-m.png +0 -0
  448. package/src/component/IMChatroom/page/home/style/images/font-size.png +0 -0
  449. package/src/component/IMChatroom/page/home/style/images/notice-active-m.png +0 -0
  450. package/src/component/IMChatroom/page/home/style/images/notice-active.png +0 -0
  451. package/src/component/IMChatroom/page/home/style/images/notice-m.png +0 -0
  452. package/src/component/IMChatroom/page/home/style/images/notice.png +0 -0
  453. package/src/component/IMChatroom/page/home/style/index.module.less +111 -0
  454. package/src/component/IMChatroom/page/member/index.jsx +15 -0
  455. package/src/component/IMChatroom/page/member/memberCount/index.jsx +44 -0
  456. package/src/component/IMChatroom/page/member/memberList/index.jsx +121 -0
  457. package/src/component/IMChatroom/page/member/style/index.module.less +3 -0
  458. package/src/component/IMChatroom/sdk/bridge.js +39 -0
  459. package/src/component/IMChatroom/sdk/cs/constants.js +20 -0
  460. package/src/component/IMChatroom/sdk/cs/index.js +101 -0
  461. package/src/component/IMChatroom/sdk/imChatroom.js +15 -0
  462. package/src/component/IMChatroom/sdk/imcore/constants.js +128 -0
  463. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomDestroyed.js +5 -0
  464. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomInfoGetFail.js +5 -0
  465. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomKickedByAdmin.js +5 -0
  466. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomKickedBySelf.js +5 -0
  467. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomLoginFail.js +5 -0
  468. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomLoginSuccess.js +5 -0
  469. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomMemberLogin.js +5 -0
  470. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomMemberLogout.js +5 -0
  471. package/src/component/IMChatroom/sdk/imcore/emitters/connectionConnected.js +5 -0
  472. package/src/component/IMChatroom/sdk/imcore/emitters/connectionConnecting.js +5 -0
  473. package/src/component/IMChatroom/sdk/imcore/emitters/connectionDisconnect.js +5 -0
  474. package/src/component/IMChatroom/sdk/imcore/emitters/index.js +57 -0
  475. package/src/component/IMChatroom/sdk/imcore/emitters/messageReceive.js +36 -0
  476. package/src/component/IMChatroom/sdk/imcore/index.js +178 -0
  477. package/src/component/IMChatroom/sdk/imcore/interceptors/request.js +7 -0
  478. package/src/component/IMChatroom/sdk/imcore/interceptors/response.js +5 -0
  479. package/src/component/IMChatroom/sdk/imcore/plugins/getAuth.js +64 -0
  480. package/src/component/IMChatroom/sdk/imcore/plugins/getConversationId.js +20 -0
  481. package/src/component/IMChatroom/sdk/imcore/plugins/getExtInfo.js +10 -0
  482. package/src/component/IMChatroom/sdk/imcore/plugins/getLoginInfo.js +48 -0
  483. package/src/component/IMChatroom/sdk/imcore/plugins/getPlatformType.js +12 -0
  484. package/src/component/IMChatroom/sdk/imcore/plugins/index.js +22 -0
  485. package/src/component/IMChatroom/sdk/imcore/util/format.js +177 -0
  486. package/src/component/IMChatroom/sdk/imcore/util/parser.js +35 -0
  487. package/src/component/IMChatroom/sdk/oms.js +18 -0
  488. package/src/component/IMChatroom/sdk/uc.js +3 -0
  489. package/src/component/IMChatroom/subscription/channel/app.js +5 -0
  490. package/src/component/IMChatroom/subscription/channel/ctl.js +22 -0
  491. package/src/component/IMChatroom/subscription/channel/member.js +40 -0
  492. package/src/component/IMChatroom/subscription/channel/message.js +13 -0
  493. package/src/component/IMChatroom/subscription/channel/ntf.js +86 -0
  494. package/src/component/IMChatroom/subscription/channel/tel.js +5 -0
  495. package/src/component/IMChatroom/subscription/channel/websocket.js +5 -0
  496. package/src/component/IMChatroom/subscription/event.js +37 -0
  497. package/src/component/IMChatroom/subscription/index.js +19 -0
  498. package/src/component/IMChatroom/util/account.js +8 -0
  499. package/src/component/IMChatroom/util/chatroom.js +255 -0
  500. package/src/component/IMChatroom/util/jsonBigInt.js +5 -0
  501. package/src/component/IMChatroom/util/location.js +12 -0
  502. package/src/component/PlayerTip/index.jsx +34 -0
  503. package/src/component/VideoBase/index.jsx +242 -0
  504. package/src/component/VideoBase/style.less +66 -0
  505. package/src/component/VideoBase/utils.js +81 -0
  506. package/src/component/mixin.less +10 -0
  507. package/src/component/status/403.jsx +15 -0
  508. package/src/component/status/404/img/404.png +0 -0
  509. package/src/component/status/404/index.jsx +73 -0
  510. package/src/component/status/404/index.module.less +36 -0
  511. package/src/component/status/Error/error.module.less +14 -0
  512. package/src/component/status/Error/img/error.png +0 -0
  513. package/src/component/status/Error/index.jsx +47 -0
  514. package/src/component/status/Loading/img/loading.svg +52 -0
  515. package/src/component/status/Loading/index.jsx +31 -0
  516. package/src/component/status/Loading/index.less +57 -0
  517. package/src/component/status/None/img/404.png +0 -0
  518. package/src/component/status/None/index.jsx +20 -0
  519. package/src/component/status/None/index.module.less +35 -0
  520. package/src/component/status/Status/index.jsx +26 -0
  521. package/src/component/status/Status/index.module.less +9 -0
  522. package/src/config/constant/commonUrl.js +2 -0
  523. package/src/config/constant/user.js +6 -0
  524. package/src/config/context/site-config.js +48 -0
  525. package/src/config/env/index.js +5 -0
  526. package/src/config/env/local/index.js +13 -0
  527. package/src/config/env/ncet-xedu/api.js +175 -0
  528. package/src/config/env/ncet-xedu/app.js +12 -0
  529. package/src/config/env/ncet-xedu/cs.js +8 -0
  530. package/src/config/env/ncet-xedu/index.js +14 -0
  531. package/src/config/env/ncet-xedu/push.js +5 -0
  532. package/src/config/env/preproduction/api.js +144 -0
  533. package/src/config/env/preproduction/app.js +12 -0
  534. package/src/config/env/preproduction/cs.js +8 -0
  535. package/src/config/env/preproduction/index.js +14 -0
  536. package/src/config/env/preproduction/push.js +5 -0
  537. package/src/config/env/product/api.js +113 -0
  538. package/src/config/env/product/app.js +12 -0
  539. package/src/config/env/product/cs.js +5 -0
  540. package/src/config/env/product/index.js +14 -0
  541. package/src/config/env/product/push.js +5 -0
  542. package/src/config/live.js +80 -0
  543. package/src/config/publicLive.js +53 -0
  544. package/src/config/request/assessments.js +24 -0
  545. package/src/config/request/config-center.js +8 -0
  546. package/src/config/request/helper.js +166 -0
  547. package/src/config/request/im-broadcasts.js +12 -0
  548. package/src/config/request/live-activity-gateway.js +8 -0
  549. package/src/config/request/live-activity.js +13 -0
  550. package/src/config/request/raw.js +6 -0
  551. package/src/config/request/x-cloud-web.js +13 -0
  552. package/src/config/request/x-proxy.js +34 -0
  553. package/src/detail/LineSwitch/index.jsx +71 -0
  554. package/src/detail/LineSwitch/index.module.less +0 -0
  555. package/src/detail/LiveCountDown/index.jsx +44 -0
  556. package/src/detail/LiveCountDown/index.module.less +32 -0
  557. package/src/detail/LiveOnlineCount/img/icon.svg +16 -0
  558. package/src/detail/LiveOnlineCount/index.jsx +68 -0
  559. package/src/detail/LiveOnlineCount/index.module.less +33 -0
  560. package/src/detail/LiveOnlineCount/util.js +74 -0
  561. package/src/detail/LiveStatus/AnchorOnTheWay.jsx +78 -0
  562. package/src/detail/LiveStatus/index.jsx +186 -0
  563. package/src/detail/LiveStatus/index.module.less +193 -0
  564. package/src/detail/LiveVideo/asset/play-button-hover-m.png +0 -0
  565. package/src/detail/LiveVideo/asset/play-button-hover.png +0 -0
  566. package/src/detail/LiveVideo/asset/play-button-m.png +0 -0
  567. package/src/detail/LiveVideo/asset/play-button.png +0 -0
  568. package/src/detail/LiveVideo/config.js +37 -0
  569. package/src/detail/LiveVideo/index.jsx +186 -0
  570. package/src/detail/LiveVideo/index.module.less +41 -0
  571. package/src/detail/NotLoginChatroom/asset/empty-m.png +0 -0
  572. package/src/detail/NotLoginChatroom/asset/empty.png +0 -0
  573. package/src/detail/NotLoginChatroom/index.jsx +37 -0
  574. package/src/detail/NotLoginChatroom/index.module.less +46 -0
  575. package/src/detail/RecordVideo/index.jsx +148 -0
  576. package/src/detail/RecordVideo/index.module.less +32 -0
  577. package/src/detail/ReplayVideo/index.jsx +93 -0
  578. package/src/detail/ReplayVideo/index.module.less +65 -0
  579. package/src/detail/const.js +20 -0
  580. package/src/detail/hook/usePullSource.js +50 -0
  581. package/src/detail/hook/usePullState.js +51 -0
  582. package/src/detail/img/icon_coffee.png +0 -0
  583. package/src/detail/img/icon_completed.png +0 -0
  584. package/src/detail/index.jsx +479 -0
  585. package/src/detail/index.module.less +164 -0
  586. package/src/hook/useAsync.js +84 -0
  587. package/src/hook/useGoToPage.js +83 -0
  588. package/src/hook/useInterval.js +28 -0
  589. package/src/hook/useIsMounted.js +17 -0
  590. package/src/hook/useModuleByRole.js +53 -0
  591. package/src/hook/usePageScrollable.js +52 -0
  592. package/src/hook/usePortal.js +83 -0
  593. package/src/hook/useScrollRestore/index.js +32 -0
  594. package/src/hook/useScrollRestore/scrollContext.js +20 -0
  595. package/src/hook/useTrackRef.js +11 -0
  596. package/src/hook/useWindowSize.js +28 -0
  597. package/src/hook/useZoom.js +47 -0
  598. package/src/index.js +15 -0
  599. package/src/lib/getServiceConfig.js +102 -0
  600. package/src/service/common.js +73 -0
  601. package/src/service/content-mgr.js +73 -0
  602. package/src/service/im-group.js +12 -0
  603. package/src/service/im.js +7 -0
  604. package/src/service/imBroadcasts.js +33 -0
  605. package/src/service/like.js +134 -0
  606. package/src/service/live.js +236 -0
  607. package/src/service/manageApi.js +7 -0
  608. package/src/service/managePortal.js +6 -0
  609. package/src/service/myStudyRecord.js +93 -0
  610. package/src/service/navigation.js +47 -0
  611. package/src/service/ndMeeting.js +10 -0
  612. package/src/service/ndr.js +122 -0
  613. package/src/service/news.js +93 -0
  614. package/src/service/personalCenter.js +270 -0
  615. package/src/service/qualityCourse.js +31 -0
  616. package/src/service/recommend.js +81 -0
  617. package/src/service/school.js +323 -0
  618. package/src/service/search.js +170 -0
  619. package/src/service/site-config.js +7 -0
  620. package/src/service/socialCensor.js +45 -0
  621. package/src/service/specialEdu.js +31 -0
  622. package/src/service/suggestion.js +85 -0
  623. package/src/service/syncClassroom.js +321 -0
  624. package/src/service/tCourse.js +204 -0
  625. package/src/service/tchTraining.js +37 -0
  626. package/src/service/uc.js +45 -0
  627. package/src/util/app.js +1 -0
  628. package/src/util/array.js +3 -0
  629. package/src/util/auth/func.js +57 -0
  630. package/src/util/date.js +53 -0
  631. package/src/util/env.js +9 -0
  632. package/src/util/getTimestamp.js +10 -0
  633. package/src/util/hof.js +105 -0
  634. package/src/util/live/index.js +42 -0
  635. package/src/util/netUrl.js +35 -0
  636. package/src/util/object.js +13 -0
  637. package/src/util/push/index.js +58 -0
  638. package/src/util/request.js +227 -0
  639. package/src/util/type.js +17 -0
  640. package/src/util/url.js +203 -0
  641. package/src/util/video.js +26 -0
  642. package/test/setup.js +21 -0
  643. package/test/unit/component/header/logo.spec.jsx +8 -0
  644. package/test/unit/helper.jsx +25 -0
  645. package/test/unit/util/date.spec.js +40 -0
@@ -0,0 +1,47 @@
1
+ import cdnAPI from '@/config/request/cdn'
2
+ import config from '@/config/env'
3
+
4
+ const xCloudServiceName = config.api.serviceName.eLabour
5
+
6
+ // https://pretest-s-file-1.ykt.cbern.com.cn/ldjy/api_static/providers/95594b88-6a65-42c4-bd83-a81a49b71bc2.json
7
+ /**
8
+ * 获取机构的文件信息
9
+ * @param {*} contentId 机构id
10
+ */
11
+ export async function getOrganizationDetail(contentId) {
12
+ const requestURL = `/${xCloudServiceName}/api_static/providers/${contentId}.json`
13
+ const { data } = await cdnAPI.get(requestURL)
14
+ return data
15
+ }
16
+
17
+ // https://pretest-s-file-1.ykt.cbern.com.cn/ldjy/s_course/v2/business_courses/52a86556-32da-43ab-85a6-9c805b83e886/course_relative_infos/zh-CN.json
18
+ /**
19
+ * 获取课程详情
20
+ * @param {*} contentId 课程id
21
+ */
22
+ export async function getCourseDetail(contentId) {
23
+ const requestURL = `/${xCloudServiceName}/s_course/v2/business_courses/${contentId}/course_relative_infos/zh-CN.json`
24
+ const { data } = await cdnAPI.get(requestURL)
25
+ return data
26
+ }
27
+
28
+ // https://pretest-s-file-1.ykt.cbern.com.cn/ldjy/s_course/v2/business_courses/52a86556-32da-43ab-85a6-9c805b83e886/course_lecturers.json
29
+ /**
30
+ * 获取课程详情里授课教师信息
31
+ * @param {*} contentId 课程id
32
+ */
33
+ export async function getCourseLectures(contentId) {
34
+ const requestURL = `/${xCloudServiceName}/s_course/v2/business_courses/${contentId}/course_lecturers.json`
35
+ const { data } = await cdnAPI.get(requestURL)
36
+ return data
37
+ }
38
+
39
+ /**
40
+ * 获取课程详情里关联的机构清单
41
+ * @param {*} courseId 课程id
42
+ */
43
+ export async function getCourseProvides(courseId) {
44
+ const requestURL = `/${xCloudServiceName}/s_course/v2/business_courses/${courseId}/course_providers.json`
45
+ const { data } = await cdnAPI.get(requestURL)
46
+ return data
47
+ }
@@ -0,0 +1,10 @@
1
+ import ndMeetingExtendAPI from '@/config/request/nd-meeting-extend'
2
+
3
+ // 下载网络会议上报
4
+ export async function reportPcDownload(params) {
5
+ const url = '/guest/down/pc'
6
+ const { data } = await ndMeetingExtendAPI.get(url, {
7
+ params
8
+ })
9
+ return data
10
+ }
@@ -0,0 +1,122 @@
1
+ import config from '@/config/env'
2
+ import { getCdnAPI } from '@/config/request/cdn'
3
+ import { getNDRTestQuery } from '@/util/url'
4
+
5
+ /**
6
+ * 课程页面的业务流程如下
7
+ *
8
+ * 通过标签筛选教材
9
+ *
10
+ * 教材 -> 教材章节树
11
+ *
12
+ * 教材章节叶子节点 -> 国家课
13
+ *
14
+ * 国家课 -> 精品课
15
+ */
16
+ /**
17
+ * NDR 版数据源,先从NDR开始
18
+ */
19
+ const cdnApi = getCdnAPI()
20
+ const { serviceName } = config.api
21
+
22
+ const isTest = getNDRTestQuery()
23
+ const libraryName = isTest
24
+ ? 'https://bdcs-file-2.ykt.cbern.com.cn/zxx_secondary'
25
+ : `/${serviceName.library}`
26
+ const getLibraryName = (_isTest) => (_isTest
27
+ ? 'https://bdcs-file-2.ykt.cbern.com.cn/zxx_secondary'
28
+ : `/${serviceName.library}`)
29
+
30
+ /**
31
+ * 获取教材详情
32
+ */
33
+ export async function fetchNationalLessonDetail(id) {
34
+ const { data } = await cdnApi.get(`${libraryName}/ndrs/national_lesson/teachingmaterials/details/${id}.json`)
35
+ return data
36
+ }
37
+
38
+ /**
39
+ * 获取教材目录树
40
+ * @param {} id
41
+ * @returns
42
+ */
43
+ export async function fetchNationalLessonChapter(id) {
44
+ const { data } = await cdnApi.get(`${libraryName}/ndrs/national_lesson/trees/${id}.json`)
45
+ return data
46
+ }
47
+
48
+ export async function fetchNationalLessonCourseList(id) {
49
+ const { data } = await cdnApi.get(`${libraryName}/ndrs/national_lesson/teachingmaterials/${id}/lessons/parts.json`)
50
+ const result = []
51
+ await Promise.all(
52
+ data.map(async (t, index) => {
53
+ const { data: partData } = await cdnApi.get(t)
54
+ result[index] = partData
55
+ })
56
+ )
57
+ return [].concat(...result)
58
+ }
59
+
60
+ export async function fetchNationalLessonTreeCourseList(id) {
61
+ const { data } = await cdnApi.get(`${libraryName}/ndrs/national_lesson/teachingmaterials/${id}/resources/parts.json`)
62
+ const result = []
63
+ await Promise.all(
64
+ data.map(async (t, index) => {
65
+ const { data: partData } = await cdnApi.get(t)
66
+ result[index] = partData
67
+ })
68
+ )
69
+ return [].concat(...result)
70
+ }
71
+
72
+ export async function fetchNationalLessonCourseDetail(id) {
73
+ const { data } = await cdnApi.get(`${libraryName}/ndrv2/national_lesson/resources/details/${id}.json`)
74
+ return data
75
+ }
76
+
77
+ export async function fetchNationalLessonRelateElite(id) {
78
+ const { data } = await cdnApi.get(`${libraryName}/ndrs/national_lesson/resources/${id}/relation/elite_lesson.json`)
79
+ return data
80
+ }
81
+
82
+ export async function fetchLectureLesson(id) {
83
+ const { data } = await cdnApi.get(`${libraryName}/api_static/lecturers/${id}/relation/national_lesson.json`)
84
+ return data
85
+ }
86
+
87
+ /**
88
+ * 获取教材目录树
89
+ * @param {} id
90
+ * @returns
91
+ */
92
+ export async function fetchExperimentLessonChapter(id) {
93
+ const { data } = await cdnApi.get(`${getLibraryName(false)}/ndrs/experiment/trees/${id}.json`)
94
+ return data
95
+ }
96
+
97
+ export async function fetchExperimentLessonDetail(id) {
98
+ const { data } = await cdnApi.get(`${getLibraryName(false)}/ndrs/experiment/resources/details/${id}.json`)
99
+ return data
100
+ }
101
+
102
+ export async function fetchExperimentLessonCourseList(id) {
103
+ const { data } = await cdnApi.get(`${getLibraryName(false)}/ndrs/experiment/teachingmaterials/${id}/resources/parts.json`)
104
+ const result = []
105
+ await Promise.all(
106
+ data.map(async (t, index) => {
107
+ const { data: partData } = await cdnApi.get(t)
108
+ result[index] = partData
109
+ })
110
+ )
111
+ return [].concat(...result)
112
+ }
113
+
114
+ export async function fetchExperimentCategory() {
115
+ const { data } = await cdnApi.get(`${getLibraryName(false)}/ndrs/tags/experiment_category_tag.json`)
116
+ return data
117
+ }
118
+
119
+ export async function fetchPrepareLesson(id) {
120
+ const { data } = await cdnApi.get(`${libraryName}/ndrv2/prepare_lesson/resources/details/${id}.json`)
121
+ return data
122
+ }
@@ -0,0 +1,93 @@
1
+ import { newsAPI } from '@/config/request/news'
2
+
3
+ const tanstormRequestResponse = (response) => {
4
+ if (response.data !== undefined) {
5
+ return response.data
6
+ } else {
7
+ return Promise.reject(response.response.data)
8
+ }
9
+ }
10
+
11
+ export const getNews = async (options) => {
12
+ const url = '/news/actions/query_by_scope_id'
13
+ try {
14
+ const response = await newsAPI.get(url, options)
15
+ return tanstormRequestResponse(response)
16
+ } catch (e) {
17
+ return tanstormRequestResponse(e)
18
+ }
19
+ }
20
+
21
+ export const searchNews = async (data) => {
22
+ const url = '/news/actions/search'
23
+ try {
24
+ const response = await newsAPI.post(url, data)
25
+ return tanstormRequestResponse(response)
26
+ } catch (e) {
27
+ return tanstormRequestResponse(e)
28
+ }
29
+ }
30
+
31
+ export const getNewsById = async (id) => {
32
+ const url = `/news/${id}`
33
+ try {
34
+ const response = await newsAPI.get(url)
35
+ return tanstormRequestResponse(response)
36
+ } catch (e) {
37
+ return tanstormRequestResponse(e)
38
+ }
39
+ }
40
+
41
+ export const addNews = async (data) => {
42
+ const url = '/news'
43
+ try {
44
+ const response = await newsAPI.post(url, data)
45
+ return tanstormRequestResponse(response)
46
+ } catch (e) {
47
+ return tanstormRequestResponse(e)
48
+ }
49
+ }
50
+
51
+ export const updateNews = async (id, data) => {
52
+ const url = `/news/${id}`
53
+ try {
54
+ const response = await newsAPI.put(url, data)
55
+ return tanstormRequestResponse(response)
56
+ } catch (e) {
57
+ return tanstormRequestResponse(e)
58
+ }
59
+ }
60
+
61
+ export const deleteNews = async (id) => {
62
+ const url = `/news/${id}`
63
+ try {
64
+ const response = await newsAPI.delete(url)
65
+ return tanstormRequestResponse(response)
66
+ } catch (e) {
67
+ return tanstormRequestResponse(e)
68
+ }
69
+ }
70
+
71
+ export const batchDeleteNews = async (ids) => {
72
+ const url = '/news/actions/batch_delete'
73
+ try {
74
+ const response = await newsAPI.post(url, ids)
75
+ return tanstormRequestResponse(response)
76
+ } catch (e) {
77
+ return tanstormRequestResponse(e)
78
+ }
79
+ }
80
+
81
+ let index = 1 // 批量上传时,存在token请求被缓存后不返回response,故需要设置key
82
+ export const getToken = async (data) => {
83
+ index += 1
84
+ const url = '/v1/cs_common/tokens'
85
+ try {
86
+ const response = await newsAPI.post(url, data, {
87
+ key: `news_attachment_cs_token_${index}`
88
+ })
89
+ return tanstormRequestResponse(response)
90
+ } catch (e) {
91
+ return tanstormRequestResponse(e)
92
+ }
93
+ }
@@ -0,0 +1,270 @@
1
+ import dayjs from 'dayjs'
2
+ // import SHA256 from 'crypto-js/sha256'
3
+ import { communityWithUC } from '@/config/request/community'
4
+ import { assessmentApi, assessmentApiCdn } from '@/config/request/assessments'
5
+ import { getLoginUrl, getUserInfo, goToLoginPage } from '@/util/auth/func'
6
+ import { assessmentRateCacheKey } from '@/config/constant/cacheKey'
7
+ import { tchStudioGatewayWithUC } from '@/config/request/teacher-studio-gateway'
8
+
9
+ import config from '@/config/env'
10
+ import { ApiTimestampKey } from '@/config/constant/common'
11
+ import { withOnce } from '@/util/hof'
12
+
13
+ const { appid } = config.app
14
+
15
+ function updateTimestamp(key = ApiTimestampKey.LAST_FAVOR_ACTION_TIMESTAMP) {
16
+ window.localStorage.setItem(key, new Date().getTime())
17
+ }
18
+ function getTimestamp(key = ApiTimestampKey.LAST_FAVOR_ACTION_TIMESTAMP) {
19
+ let time = window.localStorage.getItem(key)
20
+ if (!time) {
21
+ time = new Date().getTime()
22
+ window.localStorage.setItem(key, new Date().getTime())
23
+ }
24
+ return time
25
+ }
26
+
27
+ export async function getTeacherStudios(params) {
28
+ const url = '/v1/users/teacher_studios'
29
+ try {
30
+ const result = await tchStudioGatewayWithUC.get(url, {
31
+ params: {
32
+ $offset: params.page_no * params.page_size,
33
+ $limit: params.page_size,
34
+ $count: true,
35
+ _userId: params.userId,
36
+ _t: getTimestamp(ApiTimestampKey.LAST_TEACHERSTUDIO_ACTION_TIMESTAMP)
37
+ }
38
+ })
39
+ return result
40
+ } catch (e) {
41
+ updateTimestamp(ApiTimestampKey.LAST_TEACHERSTUDIO_ACTION_TIMESTAMP)
42
+ throw e
43
+ }
44
+ }
45
+
46
+ export async function getMyCourses(params) {
47
+ const url = '/user_study'
48
+ try {
49
+ const result = await communityWithUC.get(url, {
50
+ params: {
51
+ offset: params.page_no * params.page_size,
52
+ limit: params.page_size,
53
+ _userId: params.userId,
54
+ _t: getTimestamp(ApiTimestampKey.LAST_STUDY_ACTION_TIMESTAMP)
55
+ },
56
+ headers: {
57
+ 'sdp-app-id': appid
58
+ }
59
+ })
60
+ return result
61
+ } catch (e) {
62
+ updateTimestamp(ApiTimestampKey.LAST_STUDY_ACTION_TIMESTAMP)
63
+ throw e
64
+ }
65
+ }
66
+
67
+ /** 获取用户课程评价信息
68
+ * @param assessmentId: 评价对象(课程id)
69
+ * @param assessmentType: 评价对象资源类型(默认course,前后端暂时都没有用这个字段,建议传递资源类型字段x_course(课本),x_class_hour_activity(课程也就是课时),t_course(教师研修),t_course_pdf(教师研修下的Pdf资源),x_audio_video,x_url,x_image_list,x_document,x_article
70
+ * @return userAssessmentVo: {
71
+ "assessment_id": "string",
72
+ "assessment_type": "string",
73
+ "user_id": 0,
74
+ "score": 0
75
+ }
76
+ */
77
+ export async function getUserAssessmentRate(assessmentId, assessmentType = 'course') {
78
+ const userInfo = await getUserInfo()
79
+ const cacheKey = assessmentRateCacheKey(assessmentId, userInfo.user_id)
80
+ let userAssessmentVo = localStorage.getItem(cacheKey)
81
+ if (userAssessmentVo) {
82
+ try {
83
+ userAssessmentVo = JSON.parse(userAssessmentVo)
84
+ } catch (e) {
85
+ // parse error
86
+ }
87
+ }
88
+ if (!userAssessmentVo || !userAssessmentVo.assessment_id) {
89
+ const url = `/assessments/${assessmentId}/user_assessment?assessment_type=${assessmentType}`
90
+ const { data } = await assessmentApi.get(url, {
91
+ headers: {
92
+ 'sdp-app-id': appid
93
+ }
94
+ })
95
+ if (data?.score ?? '') {
96
+ userAssessmentVo = data
97
+ }
98
+ if (userAssessmentVo) {
99
+ localStorage.setItem(cacheKey, JSON.stringify(userAssessmentVo))
100
+ }
101
+ }
102
+ return userAssessmentVo
103
+ }
104
+
105
+ /** 获取课程评价
106
+ * @param assessmentId: 评价对象(课程id)
107
+ * @param assessment_type: 评价对象资源类型(默认course,前后端暂时都没有用这个字段,建议传递资源类型字段x_course(课本),x_class_hour_activity(课程也就是课时),t_course(教师研修),t_course_pdf(教师研修下的Pdf资源),x_audio_video,x_url,x_image_list,x_document,x_article
108
+ * @return assessmentVo: {
109
+ "assessment_id": "string",
110
+ "assessment_type": "string",
111
+ "total_user_count": "number",
112
+ "score": 0,
113
+ "star_1_rate": 0,
114
+ "star_2_rate": 0,
115
+ "star_3_rate": 0,
116
+ "star_4_rate": 0,
117
+ "star_5_rate": 0,
118
+ "details": [
119
+ {
120
+ "user_count": 0,
121
+ "score": 0
122
+ }
123
+ ]
124
+ }
125
+ */
126
+ const getUserInfoOnce = withOnce(getUserInfo)
127
+
128
+ export async function getAssessmentRate(
129
+ assessmentId,
130
+ assessmentType = 'course'
131
+ ) {
132
+ const userInfo = await getUserInfoOnce()
133
+ let userAssessmentVo
134
+ if (userInfo) {
135
+ const cacheKey = assessmentRateCacheKey(assessmentId, userInfo.user_id)
136
+ try {
137
+ userAssessmentVo = JSON.parse(localStorage.getItem(cacheKey))
138
+ } catch (e) {
139
+ //
140
+ }
141
+ if (userAssessmentVo && !userAssessmentVo.assessment_id && userAssessmentVo.score) {
142
+ submitUserAssessmentRate(assessmentId, userAssessmentVo.score, assessmentType)
143
+ }
144
+ }
145
+ let lastModified
146
+ let assessmentVo
147
+ try {
148
+ const { data, headers: { 'last-modified': _lastModified } } = await assessmentApiCdn.get(`/assessments/${assessmentId}?assessment_type=${assessmentType}`)
149
+ assessmentVo = data
150
+ lastModified = dayjs(_lastModified).valueOf()
151
+ } catch (e) {
152
+ //
153
+ }
154
+ if (!assessmentVo?.details?.length) {
155
+ assessmentVo = {
156
+ assessment_id: assessmentId,
157
+ assessment_type: assessmentType,
158
+ details: [{
159
+ user_count: 0,
160
+ score: 1
161
+ }, {
162
+ user_count: 0,
163
+ score: 2
164
+ }, {
165
+ user_count: 0,
166
+ score: 3
167
+ }, {
168
+ user_count: 0,
169
+ score: 4
170
+ }, {
171
+ user_count: 0,
172
+ score: 5
173
+ }]
174
+ }
175
+ }
176
+ if (userAssessmentVo?.updateTime > lastModified) {
177
+ assessmentVo.details.forEach((detail) => {
178
+ if (detail.score === userAssessmentVo.score) {
179
+ detail.user_count += 1
180
+ }
181
+ })
182
+ }
183
+ assessmentVo.total_user_count = assessmentVo.details?.reduce((prev, next) => prev + next.user_count, 0)
184
+ if (assessmentVo.total_user_count) {
185
+ let lessThan1Count = 0
186
+ let scoreOver1P = 0
187
+ const totalScore = assessmentVo.details.reduce((prev, next) => prev + next.user_count * next.score, 0)
188
+ assessmentVo.score = (totalScore / assessmentVo.total_user_count).toFixed(1)
189
+ assessmentVo.details.forEach((detail) => {
190
+ const rate = Math.round((detail.user_count * 100) / assessmentVo.total_user_count)
191
+ assessmentVo[`star_${detail.score}_rate`] = rate
192
+ if (rate) {
193
+ scoreOver1P += (rate * assessmentVo.total_user_count * detail.score) / 100
194
+ } else {
195
+ lessThan1Count += detail.user_count
196
+ }
197
+ })
198
+ let restRate = 100
199
+ for (const key of Object.keys(assessmentVo)) {
200
+ if (/^star_(\d)_rate$/.test(key)) {
201
+ restRate -= assessmentVo[key]
202
+ }
203
+ }
204
+ if (restRate * assessmentVo.total_user_count > 100) {
205
+ let avarageScore
206
+ if (lessThan1Count) {
207
+ avarageScore = Math.round(Math.abs((totalScore - scoreOver1P)) / lessThan1Count / restRate)
208
+ } else if (restRate) {
209
+ avarageScore = Math.round(Math.abs(totalScore - scoreOver1P) / ((assessmentVo.total_user_count * restRate) / 100))
210
+ }
211
+ if (avarageScore) {
212
+ // eslint-disable-next-line no-nested-ternary
213
+ avarageScore = avarageScore > 5 ? 5 : avarageScore < 1 ? 1 : avarageScore
214
+ assessmentVo[`star_${avarageScore}_rate`] += restRate
215
+ }
216
+ } else {
217
+ let score = 5
218
+ while (score) {
219
+ if (assessmentVo[`star_${score}_rate`]) {
220
+ assessmentVo[`star_${score}_rate`] += restRate
221
+ break
222
+ }
223
+ score -= 1
224
+ }
225
+ }
226
+ }
227
+ if (assessmentVo.total_user_count > 100000) {
228
+ assessmentVo.total_user_count = '10w+'
229
+ } else if (assessmentVo.total_user_count > 10000) {
230
+ assessmentVo.total_user_count = `${(assessmentVo.total_user_count / 10000).toFixed(1)}w`
231
+ }
232
+ return assessmentVo
233
+ }
234
+
235
+ /** 提交用户评价
236
+ * @param assessmentId: 评价对象(课程id)
237
+ * @param score: 评分
238
+ * @param assessment_type: 评价对象资源类型(默认course,前后端暂时都没有用这个字段,建议传递资源类型字段x_course(课本),x_class_hour_activity(课程也就是课时),t_course(教师研修),t_course_pdf(教师研修下的Pdf资源),x_audio_video,x_url,x_image_list,x_document,x_article
239
+ */
240
+ export async function submitUserAssessmentRate(assessmentId, score, assessment_type = 'course') {
241
+ const userInfo = await getUserInfo()
242
+ if (!userInfo) {
243
+ const loginUrl = getLoginUrl()
244
+ await goToLoginPage(loginUrl)
245
+ return
246
+ }
247
+ const cacheKey = assessmentRateCacheKey(assessmentId, userInfo.user_id)
248
+ const url = `/assessments/${assessmentId}/user_assessments`
249
+ let userAssessmentVo
250
+ try {
251
+ const { data } = await assessmentApi.post(url, {
252
+ assessment_type,
253
+ score
254
+ }, {
255
+ headers: {
256
+ 'sdp-app-id': appid
257
+ }
258
+ })
259
+ userAssessmentVo = data
260
+ } catch (e) {
261
+ userAssessmentVo = {
262
+ assessment_type,
263
+ user_id: userInfo.user_id,
264
+ score
265
+ }
266
+ }
267
+ userAssessmentVo.updateTime = Date.now()
268
+ localStorage.setItem(cacheKey, JSON.stringify(userAssessmentVo))
269
+ return userAssessmentVo
270
+ }
@@ -0,0 +1,31 @@
1
+ import {
2
+ getCdnAPI
3
+ } from '@/config/request/cdn'
4
+ import config from '@/config/env'
5
+ import { getNDRTestQuery } from '@/util/url'
6
+
7
+ const xCloudServiceName = config.api.serviceName['x-course']
8
+
9
+ const cdnAPI = getCdnAPI()
10
+
11
+ const isTest = getNDRTestQuery()
12
+ /**
13
+ * 获取精品课详情
14
+ * https://pretest-s-file-2.ykt.cbern.com.cn/zxx/ndrs/resources/8ae7e495-7cde-81e8-017c-e4c7bf0f01ca.json
15
+ * @param {*} contentId 课程id
16
+ */
17
+ export async function fetchQualityCourse(courseId) {
18
+ const requestURL = isTest
19
+ ? `https://bdcs-file-2.ykt.cbern.com.cn/zxx_secondary/ndrv2/resources/${courseId}.json`
20
+ : `/${xCloudServiceName}/ndrv2/resources/${courseId}.json`
21
+ const { data } = await cdnAPI.get(requestURL)
22
+ return data
23
+ }
24
+
25
+ export async function fetchNationalCourse(courseId) {
26
+ const requestURL = isTest
27
+ ? `https://bdcs-file-2.ykt.cbern.com.cn/zxx_secondary/ndrs/resources/${courseId}/relation/national_lesson.json`
28
+ : `/${xCloudServiceName}/ndrs/resources/${courseId}/relation/national_lesson.json`
29
+ const { data } = await cdnAPI.get(requestURL)
30
+ return data
31
+ }
@@ -0,0 +1,81 @@
1
+ /* eslint-disable max-len */
2
+ import shuffle from 'lodash/shuffle'
3
+ import api from '@/config/request/recommend'
4
+ import sha256 from '@/util/sha256'
5
+ import cdnAPI from '@/config/request/cdn'
6
+ import rawAPI from '@/config/request/raw'
7
+
8
+ import config from '@/config/env'
9
+
10
+ const { recommend, app } = config
11
+
12
+ const { channelId, JPKChannelId } = recommend
13
+
14
+ const { appid } = app
15
+
16
+ const libraryServiceName = config.api.serviceName.library
17
+
18
+ // http://api.e.101.com/services/elearning-channel-gateway/description/rest/html?env=design&version=10.8.3-SNAPSHOT#/v2/channels/{channel_id}/sections
19
+ async function getHashPath(id) {
20
+ const urlPath = `/v2/channels/${id}/sections`
21
+ const hashCode = await sha256(`${urlPath}?query_type=0`)
22
+ return `${urlPath}/${hashCode}.json`
23
+ }
24
+
25
+ async function getRequestURL(hashPath) {
26
+ const component = 'auxo_channel_api'
27
+ return `/${libraryServiceName}/api/zh-CN/${appid}/${component}${hashPath}`
28
+ }
29
+
30
+ /**
31
+ * 获取推荐页频道数据
32
+ */
33
+ export async function getRecommendChannelData() {
34
+ // 由于预生产的 cdn 都切到了 pretest 这里做下特殊处理 走预生产
35
+ if (process.env.SDP_ENV === 'preproduction') {
36
+ const hashPath = await getHashPath('b77b95c0-917a-4f52-b7ce-9d2c79a47894')
37
+ const requestURL = await getRequestURL(hashPath)
38
+ const { data } = await rawAPI.get(`https://ndcs-pre.101.com/${requestURL}`)
39
+ return data
40
+ } else {
41
+ const hashPath = await getHashPath(channelId)
42
+ const requestURL = await getRequestURL(hashPath)
43
+ const { data } = await cdnAPI.get(requestURL)
44
+ return data
45
+ }
46
+ }
47
+
48
+ /**
49
+ * 获取推荐精品课堂数据
50
+ */
51
+ export async function getRecommendJPKData() {
52
+ const hashPath = await getHashPath(JPKChannelId)
53
+ const requestURL = await getRequestURL(hashPath)
54
+ const { data } = await cdnAPI.get(requestURL)
55
+ return data
56
+ }
57
+
58
+ /**
59
+ * 推荐服务
60
+ * http://api.e.101.com/services/x-recommend-service/description/rest/html?env=design&version=1.0.0-SNAPSHOT#/v1/user/resource/recommend@get
61
+ */
62
+
63
+ // 用户同步学习进度的课时活动推荐
64
+ export async function getCourseRecommend() {
65
+ const { data } = await api.get('/user/sync_course/activity/recommend')
66
+ return data
67
+ }
68
+
69
+ export async function getResourceRecommend({
70
+ userRole
71
+ }) {
72
+ const { data } = await api.get('/user/resource/recommend', {
73
+ params: {
74
+ identity_code: userRole || 'GUEST'
75
+ }
76
+ })
77
+ // data.resources = shuffle([...data.resources, ...data.resources])
78
+ data.studios = shuffle(data.studios)
79
+ data.resources = shuffle(data.resources)
80
+ return data
81
+ }