@x-edu/live-player 0.0.19 → 0.0.21

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 (302) hide show
  1. package/.browserslistrc +10 -10
  2. package/.eslintignore +8 -8
  3. package/.eslintrc.js +26 -26
  4. package/.gem-mine +11 -11
  5. package/.postcssrc.js +6 -6
  6. package/README.md +145 -145
  7. package/babel.config.js +33 -33
  8. package/dist/XEduLivePlayer.common.js +12161 -1154
  9. package/dist/XEduLivePlayerPre.common.js +12369 -1358
  10. package/doc/develop.md +23 -23
  11. package/gem-mine.config.js +86 -86
  12. package/jest.config.js +9 -9
  13. package/jsconfig.json +15 -15
  14. package/mock/helper.js +8 -8
  15. package/mock/index.js +34 -34
  16. package/package.json +99 -99
  17. package/public/3rd/ali-player/alipayercomponents-1.0.8.min.js +26 -26
  18. package/public/3rd/ali-player/aliplayer-hls-min.js +27 -27
  19. package/public/3rd/ali-player/aliplayer-min.js +1 -1
  20. package/public/3rd/im-web-push/index.umd.js +14 -14
  21. package/public/JsBridge.js +1602 -1602
  22. package/public/fish/editor/themes/default/css/ueditor.css +1905 -1905
  23. package/public/fish/editor/third-party/codemirror/codemirror.css +104 -104
  24. package/public/fish/editor/third-party/codemirror/codemirror.js +3581 -3581
  25. package/public/fish/editor/third-party/zeroclipboard/ZeroClipboard.js +1255 -1255
  26. package/public/fish/editor/ueditor.all.min.js +16 -16
  27. package/public/fish/editor/ueditor.config.js +467 -467
  28. package/public/fish/icon/umd-4.1.2.js +1 -1
  29. package/public/fish/video/videoplayer.min.css +6 -6
  30. package/public/fish/video/videoplayer.min.js +31 -31
  31. package/public/fish/video/zh-CN.js +82 -82
  32. package/public/icon/demo.css +539 -539
  33. package/public/icon/demo_index.html +2189 -2189
  34. package/public/icon/iconfont.css +363 -363
  35. package/public/icon/iconfont.json +618 -618
  36. package/public/index.html +50 -50
  37. package/script/image/readme.md +77 -77
  38. package/script/postcss.js +48 -48
  39. package/src/App.jsx +24 -24
  40. package/src/asset/img/course/playing.svg +21 -21
  41. package/src/asset/img/icon-course-white.svg +3 -3
  42. package/src/asset/img/icon-course.svg +3 -3
  43. package/src/asset/img/icon-eye-white.svg +4 -4
  44. package/src/asset/img/icon-eye.svg +4 -4
  45. package/src/asset/img/icon-school-white.svg +3 -3
  46. package/src/asset/img/icon-school.svg +3 -3
  47. package/src/asset/img/loading.svg +52 -52
  48. package/src/asset/img/video-play.svg +6 -6
  49. package/src/asset/style/background.less +19 -19
  50. package/src/asset/style/banner.less +36 -36
  51. package/src/asset/style/base.less +74 -74
  52. package/src/asset/style/index.less +114 -114
  53. package/src/asset/style/reset-theme.less +141 -141
  54. package/src/asset/style/theme/index.less +55 -55
  55. package/src/asset/style/theme/party/global.less +20 -20
  56. package/src/asset/style/theme/party/override.less +57 -57
  57. package/src/asset/style/theme/test/global.less +18 -18
  58. package/src/asset/style/theme/test/override.less +45 -45
  59. package/src/asset/style/variable.less +12 -12
  60. package/src/component/AliPlayer/index.jsx +49 -49
  61. package/src/component/Avatar/index.jsx +50 -50
  62. package/src/component/Empty/index.jsx +34 -34
  63. package/src/component/Empty/index.module.less +37 -37
  64. package/src/component/IMChatroom/component/status/403.jsx +13 -13
  65. package/src/component/IMChatroom/component/status/404.jsx +13 -13
  66. package/src/component/IMChatroom/component/status/Error.jsx +23 -23
  67. package/src/component/IMChatroom/component/status/Loading.jsx +5 -5
  68. package/src/component/IMChatroom/config/app/config.js +118 -118
  69. package/src/component/IMChatroom/config/app/index.js +60 -60
  70. package/src/component/IMChatroom/config/env.js +5 -5
  71. package/src/component/IMChatroom/config/index.js +3 -3
  72. package/src/component/IMChatroom/config/request/config/base.js +124 -124
  73. package/src/component/IMChatroom/config/request/config/chatroom.js +26 -26
  74. package/src/component/IMChatroom/config/request/config/imCoreApi.js +21 -21
  75. package/src/component/IMChatroom/config/request/index.js +21 -21
  76. package/src/component/IMChatroom/config/request/proxy.js +39 -39
  77. package/src/component/IMChatroom/config/url.js +7 -7
  78. package/src/component/IMChatroom/constants/errorCode.js +9 -9
  79. package/src/component/IMChatroom/constants/index.js +84 -84
  80. package/src/component/IMChatroom/constants/origin.js +27 -27
  81. package/src/component/IMChatroom/context/chatroom.js +154 -154
  82. package/src/component/IMChatroom/context/connect.js +28 -28
  83. package/src/component/IMChatroom/i18n/en/index.json +73 -73
  84. package/src/component/IMChatroom/i18n/index.jsx +14 -14
  85. package/src/component/IMChatroom/i18n/language.js +9 -9
  86. package/src/component/IMChatroom/i18n/zh-CN/index.json +73 -73
  87. package/src/component/IMChatroom/index.jsx +49 -49
  88. package/src/component/IMChatroom/page/chat/index.jsx +27 -27
  89. package/src/component/IMChatroom/page/chat/messageEditor/index.jsx +375 -375
  90. package/src/component/IMChatroom/page/chat/messageList/index.jsx +354 -354
  91. package/src/component/IMChatroom/page/chat/stickedMessage/index.jsx +59 -59
  92. package/src/component/IMChatroom/page/chat/stickedMessage/style/index.module.less +7 -7
  93. package/src/component/IMChatroom/page/chat/style/index.module.less +51 -51
  94. package/src/component/IMChatroom/page/home/connect/index.jsx +188 -188
  95. package/src/component/IMChatroom/page/home/connect/status.jsx +124 -124
  96. package/src/component/IMChatroom/page/home/context/cmd.jsx +37 -37
  97. package/src/component/IMChatroom/page/home/context/index.jsx +67 -67
  98. package/src/component/IMChatroom/page/home/index.jsx +164 -164
  99. package/src/component/IMChatroom/page/home/notice/index.jsx +123 -123
  100. package/src/component/IMChatroom/page/home/notice/style/index.module.less +49 -49
  101. package/src/component/IMChatroom/page/home/style/index.module.less +110 -110
  102. package/src/component/IMChatroom/page/member/index.jsx +15 -15
  103. package/src/component/IMChatroom/page/member/memberCount/index.jsx +44 -44
  104. package/src/component/IMChatroom/page/member/memberList/index.jsx +121 -121
  105. package/src/component/IMChatroom/page/member/style/index.module.less +2 -2
  106. package/src/component/IMChatroom/sdk/bridge.js +39 -39
  107. package/src/component/IMChatroom/sdk/cs/constants.js +20 -20
  108. package/src/component/IMChatroom/sdk/cs/index.js +101 -101
  109. package/src/component/IMChatroom/sdk/imChatroom.js +15 -15
  110. package/src/component/IMChatroom/sdk/imcore/constants.js +128 -128
  111. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomDestroyed.js +5 -5
  112. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomInfoGetFail.js +5 -5
  113. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomKickedByAdmin.js +5 -5
  114. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomKickedBySelf.js +5 -5
  115. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomLoginFail.js +5 -5
  116. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomLoginSuccess.js +5 -5
  117. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomMemberLogin.js +5 -5
  118. package/src/component/IMChatroom/sdk/imcore/emitters/chatroomMemberLogout.js +5 -5
  119. package/src/component/IMChatroom/sdk/imcore/emitters/connectionConnected.js +5 -5
  120. package/src/component/IMChatroom/sdk/imcore/emitters/connectionConnecting.js +5 -5
  121. package/src/component/IMChatroom/sdk/imcore/emitters/connectionDisconnect.js +5 -5
  122. package/src/component/IMChatroom/sdk/imcore/emitters/index.js +57 -57
  123. package/src/component/IMChatroom/sdk/imcore/emitters/messageReceive.js +36 -36
  124. package/src/component/IMChatroom/sdk/imcore/index.js +178 -178
  125. package/src/component/IMChatroom/sdk/imcore/interceptors/request.js +7 -7
  126. package/src/component/IMChatroom/sdk/imcore/interceptors/response.js +5 -5
  127. package/src/component/IMChatroom/sdk/imcore/plugins/getAuth.js +64 -64
  128. package/src/component/IMChatroom/sdk/imcore/plugins/getConversationId.js +20 -20
  129. package/src/component/IMChatroom/sdk/imcore/plugins/getExtInfo.js +10 -10
  130. package/src/component/IMChatroom/sdk/imcore/plugins/getLoginInfo.js +48 -48
  131. package/src/component/IMChatroom/sdk/imcore/plugins/getPlatformType.js +12 -12
  132. package/src/component/IMChatroom/sdk/imcore/plugins/index.js +22 -22
  133. package/src/component/IMChatroom/sdk/imcore/util/format.js +177 -177
  134. package/src/component/IMChatroom/sdk/imcore/util/parser.js +35 -35
  135. package/src/component/IMChatroom/sdk/oms.js +18 -18
  136. package/src/component/IMChatroom/sdk/uc.js +3 -3
  137. package/src/component/IMChatroom/subscription/channel/app.js +5 -5
  138. package/src/component/IMChatroom/subscription/channel/ctl.js +22 -22
  139. package/src/component/IMChatroom/subscription/channel/member.js +40 -40
  140. package/src/component/IMChatroom/subscription/channel/message.js +13 -13
  141. package/src/component/IMChatroom/subscription/channel/ntf.js +86 -86
  142. package/src/component/IMChatroom/subscription/channel/tel.js +5 -5
  143. package/src/component/IMChatroom/subscription/channel/websocket.js +5 -5
  144. package/src/component/IMChatroom/subscription/event.js +37 -37
  145. package/src/component/IMChatroom/subscription/index.js +19 -19
  146. package/src/component/IMChatroom/util/account.js +8 -8
  147. package/src/component/IMChatroom/util/chatroom.js +255 -255
  148. package/src/component/IMChatroom/util/jsonBigInt.js +5 -5
  149. package/src/component/IMChatroom/util/location.js +12 -12
  150. package/src/component/Icon/index.jsx +16 -16
  151. package/src/component/Icon/index.module.less +2 -2
  152. package/src/component/Pagination/LocalPagination.jsx +27 -27
  153. package/src/component/Pagination/RemotePagination.jsx +32 -32
  154. package/src/component/Pagination/index.jsx +31 -31
  155. package/src/component/Pagination/index.module.less +110 -110
  156. package/src/component/PlayerTip/index.jsx +34 -34
  157. package/src/component/VideoBase/index.jsx +242 -242
  158. package/src/component/VideoBase/style.less +65 -65
  159. package/src/component/VideoBase/utils.js +81 -81
  160. package/src/component/mixin.less +9 -9
  161. package/src/component/status/403.jsx +15 -15
  162. package/src/component/status/404/index.jsx +73 -73
  163. package/src/component/status/404/index.module.less +36 -36
  164. package/src/component/status/Error/error.module.less +13 -13
  165. package/src/component/status/Error/index.jsx +47 -47
  166. package/src/component/status/Loading/img/loading.svg +52 -52
  167. package/src/component/status/Loading/index.jsx +31 -31
  168. package/src/component/status/Loading/index.less +56 -56
  169. package/src/component/status/None/index.jsx +20 -20
  170. package/src/component/status/None/index.module.less +35 -35
  171. package/src/component/status/Status/index.jsx +26 -26
  172. package/src/component/status/Status/index.module.less +8 -8
  173. package/src/config/constant/commonUrl.js +2 -2
  174. package/src/config/constant/user.js +6 -6
  175. package/src/config/context/site-config.js +48 -48
  176. package/src/config/env/index.js +5 -5
  177. package/src/config/env/local/index.js +13 -13
  178. package/src/config/env/ncet-xedu/api.js +175 -175
  179. package/src/config/env/ncet-xedu/app.js +12 -12
  180. package/src/config/env/ncet-xedu/cs.js +8 -8
  181. package/src/config/env/ncet-xedu/index.js +14 -14
  182. package/src/config/env/ncet-xedu/push.js +5 -5
  183. package/src/config/env/preproduction/api.js +144 -144
  184. package/src/config/env/preproduction/app.js +12 -12
  185. package/src/config/env/preproduction/cs.js +8 -8
  186. package/src/config/env/preproduction/index.js +14 -14
  187. package/src/config/env/preproduction/push.js +5 -5
  188. package/src/config/env/product/api.js +113 -113
  189. package/src/config/env/product/app.js +12 -12
  190. package/src/config/env/product/cs.js +5 -5
  191. package/src/config/env/product/index.js +14 -14
  192. package/src/config/env/product/push.js +5 -5
  193. package/src/config/live.js +80 -80
  194. package/src/config/publicLive.js +53 -53
  195. package/src/config/request/assessments.js +24 -24
  196. package/src/config/request/config-center.js +8 -8
  197. package/src/config/request/helper.js +166 -166
  198. package/src/config/request/im-broadcasts.js +12 -12
  199. package/src/config/request/live-activity-gateway.js +8 -8
  200. package/src/config/request/live-activity.js +13 -13
  201. package/src/config/request/raw.js +6 -6
  202. package/src/config/request/x-cloud-web.js +13 -13
  203. package/src/config/request/x-proxy.js +34 -34
  204. package/src/demo/Detail.jsx +11 -11
  205. package/src/demo/List.jsx +64 -64
  206. package/src/demo/index.jsx +17 -17
  207. package/src/detail/LineSwitch/index.jsx +71 -71
  208. package/src/detail/LiveCountDown/index.jsx +44 -44
  209. package/src/detail/LiveCountDown/index.module.less +31 -31
  210. package/src/detail/LiveOnlineCount/img/icon.svg +15 -15
  211. package/src/detail/LiveOnlineCount/index.jsx +68 -68
  212. package/src/detail/LiveOnlineCount/index.module.less +34 -34
  213. package/src/detail/LiveOnlineCount/util.js +74 -74
  214. package/src/detail/LiveStatus/AnchorOnTheWay.jsx +88 -88
  215. package/src/detail/LiveStatus/index.jsx +202 -202
  216. package/src/detail/LiveStatus/index.module.less +192 -192
  217. package/src/detail/LiveVideo/config.js +37 -37
  218. package/src/detail/LiveVideo/index.jsx +188 -188
  219. package/src/detail/LiveVideo/index.module.less +41 -41
  220. package/src/detail/NotLoginChatroom/index.jsx +37 -37
  221. package/src/detail/NotLoginChatroom/index.module.less +46 -46
  222. package/src/detail/RecordVideo/index.jsx +150 -150
  223. package/src/detail/RecordVideo/index.module.less +31 -31
  224. package/src/detail/ReplayVideo/index.jsx +93 -93
  225. package/src/detail/ReplayVideo/index.module.less +65 -65
  226. package/src/detail/const.js +20 -20
  227. package/src/detail/hook/usePullSource.js +82 -82
  228. package/src/detail/hook/usePullState.js +51 -51
  229. package/src/detail/index.jsx +482 -482
  230. package/src/detail/index.module.less +188 -188
  231. package/src/hook/useAsync.js +84 -84
  232. package/src/hook/useGoToPage.js +83 -83
  233. package/src/hook/useInterval.js +28 -28
  234. package/src/hook/useIsMounted.js +17 -17
  235. package/src/hook/useModuleByRole.js +53 -53
  236. package/src/hook/usePageScrollable.js +52 -52
  237. package/src/hook/usePortal.js +83 -83
  238. package/src/hook/useScrollRestore/index.js +32 -32
  239. package/src/hook/useScrollRestore/scrollContext.js +20 -20
  240. package/src/hook/useTrackRef.js +11 -11
  241. package/src/hook/useWindowSize.js +28 -28
  242. package/src/hook/useZoom.js +47 -47
  243. package/src/index.js +10 -10
  244. package/src/lib/getLiveOnlineCount.js +10 -10
  245. package/src/lib/getServiceConfig.js +102 -102
  246. package/src/list/Empty/index.jsx +20 -20
  247. package/src/list/Empty/index.module.less +23 -23
  248. package/src/list/ListItem/Action/index.jsx +98 -98
  249. package/src/list/ListItem/Action/index.module.less +21 -21
  250. package/src/list/ListItem/img/dianzan.svg +4 -0
  251. package/src/list/ListItem/img/play.svg +15 -15
  252. package/src/list/ListItem/img/yiguankan.svg +3 -0
  253. package/src/list/ListItem/index.jsx +24 -1
  254. package/src/list/ListItem/index.module.less +146 -123
  255. package/src/list/index.jsx +80 -0
  256. package/src/list/index.module.less +35 -35
  257. package/src/service/common.js +73 -73
  258. package/src/service/content-mgr.js +73 -73
  259. package/src/service/im-group.js +12 -12
  260. package/src/service/im.js +7 -7
  261. package/src/service/imBroadcasts.js +33 -33
  262. package/src/service/like.js +134 -134
  263. package/src/service/manageApi.js +7 -7
  264. package/src/service/managePortal.js +6 -6
  265. package/src/service/myStudyRecord.js +93 -93
  266. package/src/service/navigation.js +47 -47
  267. package/src/service/ndMeeting.js +10 -10
  268. package/src/service/ndr.js +122 -122
  269. package/src/service/news.js +93 -93
  270. package/src/service/personalCenter.js +270 -270
  271. package/src/service/qualityCourse.js +31 -31
  272. package/src/service/recommend.js +81 -81
  273. package/src/service/school.js +323 -323
  274. package/src/service/search.js +170 -170
  275. package/src/service/site-config.js +7 -7
  276. package/src/service/socialCensor.js +45 -45
  277. package/src/service/specialEdu.js +31 -31
  278. package/src/service/suggestion.js +85 -85
  279. package/src/service/syncClassroom.js +321 -321
  280. package/src/service/tCourse.js +204 -204
  281. package/src/service/tchTraining.js +37 -37
  282. package/src/service/uc.js +45 -45
  283. package/src/util/app.js +1 -1
  284. package/src/util/array.js +3 -3
  285. package/src/util/auth/func.js +57 -57
  286. package/src/util/date.js +53 -53
  287. package/src/util/env.js +9 -9
  288. package/src/util/getTimestamp.js +10 -10
  289. package/src/util/hof.js +105 -105
  290. package/src/util/live/index.js +42 -42
  291. package/src/util/liveCountUtil.js +52 -0
  292. package/src/util/netUrl.js +35 -35
  293. package/src/util/object.js +13 -13
  294. package/src/util/push/index.js +58 -58
  295. package/src/util/request.js +227 -227
  296. package/src/util/type.js +17 -17
  297. package/src/util/url.js +203 -203
  298. package/src/util/video.js +26 -26
  299. package/test/setup.js +21 -21
  300. package/test/unit/component/header/logo.spec.jsx +8 -8
  301. package/test/unit/helper.jsx +25 -25
  302. package/test/unit/util/date.spec.js +40 -40
@@ -1,170 +1,170 @@
1
- import SearchAPI, { testApi as SearchTestAPI } from '@/config/request/search'
2
- import cdnAPI from '@/config/request/cdn'
3
-
4
- const host = window.location.hostname
5
- // test5.ykt.eduyun.cn 为提测的地址
6
- // 使用测试环境数据
7
- const isUseTestData = ['localhost', 'test3.ykt.eduyun.cn', 'test5.ykt.eduyun.cn'].includes(host)
8
- // const isUseTestData = false
9
-
10
- export const SearchType = {
11
- Course: 'SEARCH_COURSE_TYPE',
12
- Article: 'SEARCH_ARTICLE_TYPE',
13
- Document: 'SEARCH_DOCUMENT_TYPE',
14
- AudioVideo: 'SEARCH_AUDIO_VIDEO_TYPE',
15
- EBook: 'SEARCH_EBOOK_TYPE',
16
- TMaterial: 'SEARCH_TEACHING_MATERIAL_TYPE',
17
- Other: 'SEARCH_OTHER_TYPE'
18
- }
19
-
20
- export const OrderField = {
21
- Default: '_score',
22
- CreateTime: 'create_time',
23
- UpdateTime: 'update_time',
24
- VisitCount: 'visit_count'
25
- }
26
-
27
- export const OrderDirection = {
28
- ASC: 'asc',
29
- Desc: 'desc'
30
- }
31
-
32
- /**
33
- * api: http://api.e.101.com/services/x-search/description/rest/html?env=design&version=0.1.0-SNAPSHOT
34
- */
35
-
36
- /**
37
- * 聚合搜索,获取结果数量,用于判断是否展示 tab
38
- * @param {string} keyword 关键字
39
- * @param {string[]} libraryIds 内容库列表
40
- * @returns
41
- */
42
- export async function aggregate({
43
- keyword,
44
- tabCodes,
45
- searchType,
46
- crossTenant
47
- }) {
48
- const resp = await SearchAPI.post('/resources/aggregate', {
49
- keyword,
50
- tab_codes: tabCodes.filter(
51
- (t) => !(
52
- [
53
- 'syncClassroom',
54
- 'classActivity'
55
- ].includes(t)
56
- )
57
- ),
58
- resource_search_type: searchType,
59
- cross_tenant: !!crossTenant
60
- })
61
- return resp?.data
62
- }
63
-
64
- // 分页搜索
65
- export async function search({
66
- keyword,
67
- tabCodes,
68
- searchType,
69
- crossTenant,
70
- duplicateFilter,
71
- searchFields,
72
- orderField = OrderField.Default,
73
- orderDirection = OrderDirection.Desc,
74
- limit = 12,
75
- offset = 0
76
- }) {
77
- try {
78
- // 兼容 测试、正式环境 的数据
79
- const _API = isUseTestData ? SearchTestAPI : SearchAPI
80
- const resp = await _API.post('/resources/search', {
81
- // const resp = await SearchAPI.post('/resources/search', {
82
- keyword,
83
- tab_codes: tabCodes.filter(
84
- (t) => !(
85
- [
86
- 'syncClassroom',
87
- 'classActivity'
88
- ].includes(t)
89
- )
90
- ),
91
- cross_tenant: !!crossTenant,
92
- resource_search_type: searchType,
93
- duplicate_filter: duplicateFilter,
94
- search_order: {
95
- field: orderField,
96
- direction: orderDirection
97
- },
98
- search_fields: searchFields,
99
- offset,
100
- limit
101
- })
102
- return resp?.data
103
- } catch (error) {
104
- return {
105
- error: true
106
- }
107
- }
108
- }
109
-
110
- export async function getSearchConfigForZxx() {
111
- const result = await cdnAPI.get('https://api.ykt.cbern.com.cn/zxx/api_static/conf_bd/6_5_9/searchconfig_1.json')
112
- return result.data
113
- }
114
-
115
- export async function getSearchConfigForVe() {
116
- const result = await cdnAPI.get('https://api.ykt.cbern.com.cn/zxx/api_static/conf_bd/6_5_9/searchconfig_4.json')
117
- return result.data
118
- }
119
-
120
- export async function getSearchConfigForHe() {
121
- const result = await cdnAPI.get('https://api.ykt.cbern.com.cn/zxx/api_static/conf_bd/6_5_9/searchconfig_8.json')
122
- return result.data
123
- }
124
-
125
- export async function getSearchConfigForSe() {
126
- const result = await cdnAPI.get('https://api.ykt.cbern.com.cn/zxx/api_static/conf_bd/6_5_9/searchconfig_100.json')
127
- return result.data
128
- }
129
-
130
- export async function getSearchConfig() {
131
- const url = isUseTestData
132
- ? 'https://api.ykt.cbern.com.cn/zxx/api_static/conf_bd/searchconfig_platform.json' // 测试环境数据
133
- : 'https://api.ykt.cbern.com.cn/zxx/api_static/conf/6_7_1/searchconfig_platform.json' // 正式环境数据
134
- // const result = await cdnAPI.get('https://api.ykt.cbern.com.cn/zxx/api_static/conf/6_6_7/searchconfig_platform.json')
135
- // const result = await cdnAPI.get('https://api.ykt.cbern.com.cn/zxx/api_static/conf_bd/searchconfig_platform.json')
136
- const result = await cdnAPI.get(url)
137
- const enabledConfig = result.data.filter((t) => t.enable === 1)
138
-
139
- await Promise.all(enabledConfig.map(async (t) => {
140
- const resultData = await cdnAPI.get(t.configure)
141
- t.config = resultData.data
142
- }))
143
- return enabledConfig
144
- }
145
-
146
- export async function getLibraryList() {
147
- // const result = await cdnAPI.get('https://api.ykt.cbern.com.cn/zxx/api_static/data/6_3_22/librarylist.json')
148
- const result = await cdnAPI.get('https://api.ykt.cbern.com.cn/zxx/api_static/data/6_6_6/librarylist.json')
149
- return result.data
150
- }
151
-
152
- // 搜索标签
153
- export async function searchTags({
154
- keyword,
155
- tabCodes,
156
- crossTenant,
157
- limit = 20,
158
- offset = 0
159
- }) {
160
- const _API = isUseTestData ? SearchTestAPI : SearchAPI
161
- const resp = await _API.post('/site/category/search', {
162
- keyword,
163
- tab_codes: tabCodes,
164
- cross_tenant: !!crossTenant,
165
- limit,
166
- highlight: true,
167
- offset
168
- })
169
- return resp?.data
170
- }
1
+ import SearchAPI, { testApi as SearchTestAPI } from '@/config/request/search'
2
+ import cdnAPI from '@/config/request/cdn'
3
+
4
+ const host = window.location.hostname
5
+ // test5.ykt.eduyun.cn 为提测的地址
6
+ // 使用测试环境数据
7
+ const isUseTestData = ['localhost', 'test3.ykt.eduyun.cn', 'test5.ykt.eduyun.cn'].includes(host)
8
+ // const isUseTestData = false
9
+
10
+ export const SearchType = {
11
+ Course: 'SEARCH_COURSE_TYPE',
12
+ Article: 'SEARCH_ARTICLE_TYPE',
13
+ Document: 'SEARCH_DOCUMENT_TYPE',
14
+ AudioVideo: 'SEARCH_AUDIO_VIDEO_TYPE',
15
+ EBook: 'SEARCH_EBOOK_TYPE',
16
+ TMaterial: 'SEARCH_TEACHING_MATERIAL_TYPE',
17
+ Other: 'SEARCH_OTHER_TYPE'
18
+ }
19
+
20
+ export const OrderField = {
21
+ Default: '_score',
22
+ CreateTime: 'create_time',
23
+ UpdateTime: 'update_time',
24
+ VisitCount: 'visit_count'
25
+ }
26
+
27
+ export const OrderDirection = {
28
+ ASC: 'asc',
29
+ Desc: 'desc'
30
+ }
31
+
32
+ /**
33
+ * api: http://api.e.101.com/services/x-search/description/rest/html?env=design&version=0.1.0-SNAPSHOT
34
+ */
35
+
36
+ /**
37
+ * 聚合搜索,获取结果数量,用于判断是否展示 tab
38
+ * @param {string} keyword 关键字
39
+ * @param {string[]} libraryIds 内容库列表
40
+ * @returns
41
+ */
42
+ export async function aggregate({
43
+ keyword,
44
+ tabCodes,
45
+ searchType,
46
+ crossTenant
47
+ }) {
48
+ const resp = await SearchAPI.post('/resources/aggregate', {
49
+ keyword,
50
+ tab_codes: tabCodes.filter(
51
+ (t) => !(
52
+ [
53
+ 'syncClassroom',
54
+ 'classActivity'
55
+ ].includes(t)
56
+ )
57
+ ),
58
+ resource_search_type: searchType,
59
+ cross_tenant: !!crossTenant
60
+ })
61
+ return resp?.data
62
+ }
63
+
64
+ // 分页搜索
65
+ export async function search({
66
+ keyword,
67
+ tabCodes,
68
+ searchType,
69
+ crossTenant,
70
+ duplicateFilter,
71
+ searchFields,
72
+ orderField = OrderField.Default,
73
+ orderDirection = OrderDirection.Desc,
74
+ limit = 12,
75
+ offset = 0
76
+ }) {
77
+ try {
78
+ // 兼容 测试、正式环境 的数据
79
+ const _API = isUseTestData ? SearchTestAPI : SearchAPI
80
+ const resp = await _API.post('/resources/search', {
81
+ // const resp = await SearchAPI.post('/resources/search', {
82
+ keyword,
83
+ tab_codes: tabCodes.filter(
84
+ (t) => !(
85
+ [
86
+ 'syncClassroom',
87
+ 'classActivity'
88
+ ].includes(t)
89
+ )
90
+ ),
91
+ cross_tenant: !!crossTenant,
92
+ resource_search_type: searchType,
93
+ duplicate_filter: duplicateFilter,
94
+ search_order: {
95
+ field: orderField,
96
+ direction: orderDirection
97
+ },
98
+ search_fields: searchFields,
99
+ offset,
100
+ limit
101
+ })
102
+ return resp?.data
103
+ } catch (error) {
104
+ return {
105
+ error: true
106
+ }
107
+ }
108
+ }
109
+
110
+ export async function getSearchConfigForZxx() {
111
+ const result = await cdnAPI.get('https://api.ykt.cbern.com.cn/zxx/api_static/conf_bd/6_5_9/searchconfig_1.json')
112
+ return result.data
113
+ }
114
+
115
+ export async function getSearchConfigForVe() {
116
+ const result = await cdnAPI.get('https://api.ykt.cbern.com.cn/zxx/api_static/conf_bd/6_5_9/searchconfig_4.json')
117
+ return result.data
118
+ }
119
+
120
+ export async function getSearchConfigForHe() {
121
+ const result = await cdnAPI.get('https://api.ykt.cbern.com.cn/zxx/api_static/conf_bd/6_5_9/searchconfig_8.json')
122
+ return result.data
123
+ }
124
+
125
+ export async function getSearchConfigForSe() {
126
+ const result = await cdnAPI.get('https://api.ykt.cbern.com.cn/zxx/api_static/conf_bd/6_5_9/searchconfig_100.json')
127
+ return result.data
128
+ }
129
+
130
+ export async function getSearchConfig() {
131
+ const url = isUseTestData
132
+ ? 'https://api.ykt.cbern.com.cn/zxx/api_static/conf_bd/searchconfig_platform.json' // 测试环境数据
133
+ : 'https://api.ykt.cbern.com.cn/zxx/api_static/conf/6_7_1/searchconfig_platform.json' // 正式环境数据
134
+ // const result = await cdnAPI.get('https://api.ykt.cbern.com.cn/zxx/api_static/conf/6_6_7/searchconfig_platform.json')
135
+ // const result = await cdnAPI.get('https://api.ykt.cbern.com.cn/zxx/api_static/conf_bd/searchconfig_platform.json')
136
+ const result = await cdnAPI.get(url)
137
+ const enabledConfig = result.data.filter((t) => t.enable === 1)
138
+
139
+ await Promise.all(enabledConfig.map(async (t) => {
140
+ const resultData = await cdnAPI.get(t.configure)
141
+ t.config = resultData.data
142
+ }))
143
+ return enabledConfig
144
+ }
145
+
146
+ export async function getLibraryList() {
147
+ // const result = await cdnAPI.get('https://api.ykt.cbern.com.cn/zxx/api_static/data/6_3_22/librarylist.json')
148
+ const result = await cdnAPI.get('https://api.ykt.cbern.com.cn/zxx/api_static/data/6_6_6/librarylist.json')
149
+ return result.data
150
+ }
151
+
152
+ // 搜索标签
153
+ export async function searchTags({
154
+ keyword,
155
+ tabCodes,
156
+ crossTenant,
157
+ limit = 20,
158
+ offset = 0
159
+ }) {
160
+ const _API = isUseTestData ? SearchTestAPI : SearchAPI
161
+ const resp = await _API.post('/site/category/search', {
162
+ keyword,
163
+ tab_codes: tabCodes,
164
+ cross_tenant: !!crossTenant,
165
+ limit,
166
+ highlight: true,
167
+ offset
168
+ })
169
+ return resp?.data
170
+ }
@@ -1,7 +1,7 @@
1
- import api from '@/config/request/site-config'
2
-
3
- export async function getSiteConfig() {
4
- const { data } = await api.get('/web_config.json')
5
- // 可以在这里覆盖配置
6
- return data
7
- }
1
+ import api from '@/config/request/site-config'
2
+
3
+ export async function getSiteConfig() {
4
+ const { data } = await api.get('/web_config.json')
5
+ // 可以在这里覆盖配置
6
+ return data
7
+ }
@@ -1,45 +1,45 @@
1
- import socialCensorAPI from '@/config/request/social-censor'
2
- import cdnAPI from '@/config/request/social-censor-cdn'
3
-
4
- // https://wiki.doc.101.com/index.php?title=%E6%95%8F%E6%84%9F%E8%AF%8D%E6%9C%8D%E5%8A%A1%E7%AB%AFAPI#AppConfig:.E4.BA.A7.E5.93.81.E9.85.8D.E7.BD.AE
5
- export const getAppConfig = async () => {
6
- const url = '/c/apps/config'
7
- const response = await socialCensorAPI.get(url, {
8
- params: {
9
- version: 0
10
- }
11
- })
12
- return response.data
13
- }
14
-
15
- let nameLexicon = null
16
- export const checkNameCensorWord = async (word) => {
17
- console.log('word', word)
18
- const config = await getAppConfig()
19
- const findInWhiteList = []
20
- // 没有配置白名单则不处理
21
- if (config.lexicon_groups.WHITELIST) {
22
- const whiteWord = await cdnAPI.get(`/v0.1/download?dentryId=${config.lexicon_groups.WHITELIST}`)
23
- findInWhiteList.push(...whiteWord?.data?.split('\n'))
24
- }
25
- const whiteList = findInWhiteList.filter((item) => !!item)
26
- console.log('whiteList', whiteList)
27
- const nameConfig = config.lexicon_groups.name || {}
28
- const dentryIds = [nameConfig.base_dentry_id, nameConfig.dentry_id].filter((_) => !!_)
29
- const requests = dentryIds.map((detryId) => cdnAPI.get(`/v0.1/download?dentryId=${detryId}`))
30
- const lexicon = []
31
- await Promise.all(requests)
32
- .then((res) => {
33
- res.forEach((item) => {
34
- lexicon.push(...item.data.split('\n'))
35
- })
36
- })
37
- nameLexicon = [...lexicon]
38
- const aSet = new Set(nameLexicon)
39
- const bSet = new Set(whiteList)
40
- const differenceSet = new Set([...aSet].filter((x) => !bSet.has(x)))
41
- const differenceSetArr = Array.from(differenceSet)
42
- console.log('differenceSetArr', differenceSetArr)
43
- return differenceSetArr.some((item) => item && word.toString()
44
- .includes(item))
45
- }
1
+ import socialCensorAPI from '@/config/request/social-censor'
2
+ import cdnAPI from '@/config/request/social-censor-cdn'
3
+
4
+ // https://wiki.doc.101.com/index.php?title=%E6%95%8F%E6%84%9F%E8%AF%8D%E6%9C%8D%E5%8A%A1%E7%AB%AFAPI#AppConfig:.E4.BA.A7.E5.93.81.E9.85.8D.E7.BD.AE
5
+ export const getAppConfig = async () => {
6
+ const url = '/c/apps/config'
7
+ const response = await socialCensorAPI.get(url, {
8
+ params: {
9
+ version: 0
10
+ }
11
+ })
12
+ return response.data
13
+ }
14
+
15
+ let nameLexicon = null
16
+ export const checkNameCensorWord = async (word) => {
17
+ console.log('word', word)
18
+ const config = await getAppConfig()
19
+ const findInWhiteList = []
20
+ // 没有配置白名单则不处理
21
+ if (config.lexicon_groups.WHITELIST) {
22
+ const whiteWord = await cdnAPI.get(`/v0.1/download?dentryId=${config.lexicon_groups.WHITELIST}`)
23
+ findInWhiteList.push(...whiteWord?.data?.split('\n'))
24
+ }
25
+ const whiteList = findInWhiteList.filter((item) => !!item)
26
+ console.log('whiteList', whiteList)
27
+ const nameConfig = config.lexicon_groups.name || {}
28
+ const dentryIds = [nameConfig.base_dentry_id, nameConfig.dentry_id].filter((_) => !!_)
29
+ const requests = dentryIds.map((detryId) => cdnAPI.get(`/v0.1/download?dentryId=${detryId}`))
30
+ const lexicon = []
31
+ await Promise.all(requests)
32
+ .then((res) => {
33
+ res.forEach((item) => {
34
+ lexicon.push(...item.data.split('\n'))
35
+ })
36
+ })
37
+ nameLexicon = [...lexicon]
38
+ const aSet = new Set(nameLexicon)
39
+ const bSet = new Set(whiteList)
40
+ const differenceSet = new Set([...aSet].filter((x) => !bSet.has(x)))
41
+ const differenceSetArr = Array.from(differenceSet)
42
+ console.log('differenceSetArr', differenceSetArr)
43
+ return differenceSetArr.some((item) => item && word.toString()
44
+ .includes(item))
45
+ }
@@ -1,31 +1,31 @@
1
- import config from '@/config/env'
2
- import cdnAPI from '@/config/request/cdn'
3
-
4
- const xCloudServiceName = config.api.serviceName['x-cloud']
5
- const eLabourServiceName = config.api.serviceName.eLabour
6
-
7
- export async function getResourceDetail(
8
- contentType,
9
- contentId
10
- ) {
11
- const { data } = await cdnAPI.get(
12
- `${xCloudServiceName}/api_static/contents/${contentId}.json`
13
- )
14
- return {
15
- ...data,
16
- property_values: JSON.parse(data.property_values)
17
- }
18
- }
19
-
20
- export async function getELabourResourceDetail(
21
- contentType,
22
- contentId
23
- ) {
24
- const { data } = await cdnAPI.get(
25
- `${eLabourServiceName}/api_static/contents/${contentId}.json`
26
- )
27
- return {
28
- ...data,
29
- property_values: JSON.parse(data.property_values)
30
- }
31
- }
1
+ import config from '@/config/env'
2
+ import cdnAPI from '@/config/request/cdn'
3
+
4
+ const xCloudServiceName = config.api.serviceName['x-cloud']
5
+ const eLabourServiceName = config.api.serviceName.eLabour
6
+
7
+ export async function getResourceDetail(
8
+ contentType,
9
+ contentId
10
+ ) {
11
+ const { data } = await cdnAPI.get(
12
+ `${xCloudServiceName}/api_static/contents/${contentId}.json`
13
+ )
14
+ return {
15
+ ...data,
16
+ property_values: JSON.parse(data.property_values)
17
+ }
18
+ }
19
+
20
+ export async function getELabourResourceDetail(
21
+ contentType,
22
+ contentId
23
+ ) {
24
+ const { data } = await cdnAPI.get(
25
+ `${eLabourServiceName}/api_static/contents/${contentId}.json`
26
+ )
27
+ return {
28
+ ...data,
29
+ property_values: JSON.parse(data.property_values)
30
+ }
31
+ }