@x-edu/live-player 0.0.21 → 0.0.23
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.
- package/.browserslistrc +10 -10
- package/.eslintignore +8 -8
- package/.eslintrc.js +26 -26
- package/.gem-mine +11 -11
- package/.postcssrc.js +6 -6
- package/README.md +145 -145
- package/babel.config.js +33 -33
- package/doc/develop.md +23 -23
- package/gem-mine.config.js +86 -86
- package/jest.config.js +9 -9
- package/jsconfig.json +15 -15
- package/mock/helper.js +8 -8
- package/mock/index.js +34 -34
- package/package.json +99 -99
- package/public/3rd/ali-player/alipayercomponents-1.0.8.min.js +26 -26
- package/public/3rd/ali-player/aliplayer-hls-min.js +27 -27
- package/public/3rd/ali-player/aliplayer-min.js +1 -1
- package/public/3rd/im-web-push/index.umd.js +14 -14
- package/public/JsBridge.js +1602 -1602
- package/public/fish/editor/themes/default/css/ueditor.css +1905 -1905
- package/public/fish/editor/third-party/codemirror/codemirror.css +104 -104
- package/public/fish/editor/third-party/codemirror/codemirror.js +3581 -3581
- package/public/fish/editor/third-party/zeroclipboard/ZeroClipboard.js +1255 -1255
- package/public/fish/editor/ueditor.all.min.js +16 -16
- package/public/fish/editor/ueditor.config.js +467 -467
- package/public/fish/icon/umd-4.1.2.js +1 -1
- package/public/fish/video/videoplayer.min.css +6 -6
- package/public/fish/video/videoplayer.min.js +31 -31
- package/public/fish/video/zh-CN.js +82 -82
- package/public/icon/demo.css +539 -539
- package/public/icon/demo_index.html +2189 -2189
- package/public/icon/iconfont.css +363 -363
- package/public/icon/iconfont.json +618 -618
- package/public/index.html +50 -50
- package/script/image/readme.md +77 -77
- package/script/postcss.js +48 -48
- package/src/App.jsx +24 -24
- package/src/asset/img/course/playing.svg +21 -21
- package/src/asset/img/icon-course-white.svg +3 -3
- package/src/asset/img/icon-course.svg +3 -3
- package/src/asset/img/icon-eye-white.svg +4 -4
- package/src/asset/img/icon-eye.svg +4 -4
- package/src/asset/img/icon-school-white.svg +3 -3
- package/src/asset/img/icon-school.svg +3 -3
- package/src/asset/img/loading.svg +52 -52
- package/src/asset/img/video-play.svg +6 -6
- package/src/asset/style/background.less +19 -19
- package/src/asset/style/banner.less +36 -36
- package/src/asset/style/base.less +74 -74
- package/src/asset/style/index.less +114 -114
- package/src/asset/style/reset-theme.less +141 -141
- package/src/asset/style/theme/index.less +55 -55
- package/src/asset/style/theme/party/global.less +20 -20
- package/src/asset/style/theme/party/override.less +57 -57
- package/src/asset/style/theme/test/global.less +18 -18
- package/src/asset/style/theme/test/override.less +45 -45
- package/src/asset/style/variable.less +12 -12
- package/src/component/AliPlayer/index.jsx +49 -49
- package/src/component/Avatar/index.jsx +50 -50
- package/src/component/Empty/index.jsx +34 -34
- package/src/component/Empty/index.module.less +37 -37
- package/src/component/IMChatroom/component/status/403.jsx +13 -13
- package/src/component/IMChatroom/component/status/404.jsx +13 -13
- package/src/component/IMChatroom/component/status/Error.jsx +23 -23
- package/src/component/IMChatroom/component/status/Loading.jsx +5 -5
- package/src/component/IMChatroom/config/app/config.js +118 -118
- package/src/component/IMChatroom/config/app/index.js +60 -60
- package/src/component/IMChatroom/config/env.js +5 -5
- package/src/component/IMChatroom/config/index.js +3 -3
- package/src/component/IMChatroom/config/request/config/base.js +124 -124
- package/src/component/IMChatroom/config/request/config/chatroom.js +26 -26
- package/src/component/IMChatroom/config/request/config/imCoreApi.js +21 -21
- package/src/component/IMChatroom/config/request/index.js +21 -21
- package/src/component/IMChatroom/config/request/proxy.js +39 -39
- package/src/component/IMChatroom/config/url.js +7 -7
- package/src/component/IMChatroom/constants/errorCode.js +9 -9
- package/src/component/IMChatroom/constants/index.js +84 -84
- package/src/component/IMChatroom/constants/origin.js +27 -27
- package/src/component/IMChatroom/context/chatroom.js +154 -154
- package/src/component/IMChatroom/context/connect.js +28 -28
- package/src/component/IMChatroom/i18n/en/index.json +73 -73
- package/src/component/IMChatroom/i18n/index.jsx +14 -14
- package/src/component/IMChatroom/i18n/language.js +9 -9
- package/src/component/IMChatroom/i18n/zh-CN/index.json +73 -73
- package/src/component/IMChatroom/index.jsx +49 -49
- package/src/component/IMChatroom/page/chat/index.jsx +27 -27
- package/src/component/IMChatroom/page/chat/messageEditor/index.jsx +375 -375
- package/src/component/IMChatroom/page/chat/messageList/index.jsx +354 -354
- package/src/component/IMChatroom/page/chat/stickedMessage/index.jsx +59 -59
- package/src/component/IMChatroom/page/chat/stickedMessage/style/index.module.less +7 -7
- package/src/component/IMChatroom/page/chat/style/index.module.less +51 -51
- package/src/component/IMChatroom/page/home/connect/index.jsx +188 -188
- package/src/component/IMChatroom/page/home/connect/status.jsx +124 -124
- package/src/component/IMChatroom/page/home/context/cmd.jsx +37 -37
- package/src/component/IMChatroom/page/home/context/index.jsx +67 -67
- package/src/component/IMChatroom/page/home/index.jsx +164 -164
- package/src/component/IMChatroom/page/home/notice/index.jsx +123 -123
- package/src/component/IMChatroom/page/home/notice/style/index.module.less +49 -49
- package/src/component/IMChatroom/page/home/style/index.module.less +110 -110
- package/src/component/IMChatroom/page/member/index.jsx +15 -15
- package/src/component/IMChatroom/page/member/memberCount/index.jsx +44 -44
- package/src/component/IMChatroom/page/member/memberList/index.jsx +121 -121
- package/src/component/IMChatroom/page/member/style/index.module.less +2 -2
- package/src/component/IMChatroom/sdk/bridge.js +39 -39
- package/src/component/IMChatroom/sdk/cs/constants.js +20 -20
- package/src/component/IMChatroom/sdk/cs/index.js +101 -101
- package/src/component/IMChatroom/sdk/imChatroom.js +15 -15
- package/src/component/IMChatroom/sdk/imcore/constants.js +128 -128
- package/src/component/IMChatroom/sdk/imcore/emitters/chatroomDestroyed.js +5 -5
- package/src/component/IMChatroom/sdk/imcore/emitters/chatroomInfoGetFail.js +5 -5
- package/src/component/IMChatroom/sdk/imcore/emitters/chatroomKickedByAdmin.js +5 -5
- package/src/component/IMChatroom/sdk/imcore/emitters/chatroomKickedBySelf.js +5 -5
- package/src/component/IMChatroom/sdk/imcore/emitters/chatroomLoginFail.js +5 -5
- package/src/component/IMChatroom/sdk/imcore/emitters/chatroomLoginSuccess.js +5 -5
- package/src/component/IMChatroom/sdk/imcore/emitters/chatroomMemberLogin.js +5 -5
- package/src/component/IMChatroom/sdk/imcore/emitters/chatroomMemberLogout.js +5 -5
- package/src/component/IMChatroom/sdk/imcore/emitters/connectionConnected.js +5 -5
- package/src/component/IMChatroom/sdk/imcore/emitters/connectionConnecting.js +5 -5
- package/src/component/IMChatroom/sdk/imcore/emitters/connectionDisconnect.js +5 -5
- package/src/component/IMChatroom/sdk/imcore/emitters/index.js +57 -57
- package/src/component/IMChatroom/sdk/imcore/emitters/messageReceive.js +36 -36
- package/src/component/IMChatroom/sdk/imcore/index.js +178 -178
- package/src/component/IMChatroom/sdk/imcore/interceptors/request.js +7 -7
- package/src/component/IMChatroom/sdk/imcore/interceptors/response.js +5 -5
- package/src/component/IMChatroom/sdk/imcore/plugins/getAuth.js +64 -64
- package/src/component/IMChatroom/sdk/imcore/plugins/getConversationId.js +20 -20
- package/src/component/IMChatroom/sdk/imcore/plugins/getExtInfo.js +10 -10
- package/src/component/IMChatroom/sdk/imcore/plugins/getLoginInfo.js +48 -48
- package/src/component/IMChatroom/sdk/imcore/plugins/getPlatformType.js +12 -12
- package/src/component/IMChatroom/sdk/imcore/plugins/index.js +22 -22
- package/src/component/IMChatroom/sdk/imcore/util/format.js +177 -177
- package/src/component/IMChatroom/sdk/imcore/util/parser.js +35 -35
- package/src/component/IMChatroom/sdk/oms.js +18 -18
- package/src/component/IMChatroom/sdk/uc.js +3 -3
- package/src/component/IMChatroom/subscription/channel/app.js +5 -5
- package/src/component/IMChatroom/subscription/channel/ctl.js +22 -22
- package/src/component/IMChatroom/subscription/channel/member.js +40 -40
- package/src/component/IMChatroom/subscription/channel/message.js +13 -13
- package/src/component/IMChatroom/subscription/channel/ntf.js +86 -86
- package/src/component/IMChatroom/subscription/channel/tel.js +5 -5
- package/src/component/IMChatroom/subscription/channel/websocket.js +5 -5
- package/src/component/IMChatroom/subscription/event.js +37 -37
- package/src/component/IMChatroom/subscription/index.js +19 -19
- package/src/component/IMChatroom/util/account.js +8 -8
- package/src/component/IMChatroom/util/chatroom.js +255 -255
- package/src/component/IMChatroom/util/jsonBigInt.js +5 -5
- package/src/component/IMChatroom/util/location.js +12 -12
- package/src/component/Icon/index.jsx +16 -16
- package/src/component/Icon/index.module.less +2 -2
- package/src/component/Pagination/LocalPagination.jsx +27 -27
- package/src/component/Pagination/RemotePagination.jsx +32 -32
- package/src/component/Pagination/index.jsx +32 -31
- package/src/component/Pagination/index.module.less +117 -110
- package/src/component/PlayerTip/index.jsx +34 -34
- package/src/component/VideoBase/index.jsx +242 -242
- package/src/component/VideoBase/style.less +65 -65
- package/src/component/VideoBase/utils.js +81 -81
- package/src/component/mixin.less +9 -9
- package/src/component/status/403.jsx +15 -15
- package/src/component/status/404/index.jsx +73 -73
- package/src/component/status/404/index.module.less +36 -36
- package/src/component/status/Error/error.module.less +13 -13
- package/src/component/status/Error/index.jsx +47 -47
- package/src/component/status/Loading/img/loading.svg +52 -52
- package/src/component/status/Loading/index.jsx +31 -31
- package/src/component/status/Loading/index.less +56 -56
- package/src/component/status/None/index.jsx +20 -20
- package/src/component/status/None/index.module.less +35 -35
- package/src/component/status/Status/index.jsx +26 -26
- package/src/component/status/Status/index.module.less +8 -8
- package/src/config/constant/commonUrl.js +2 -2
- package/src/config/constant/user.js +6 -6
- package/src/config/context/site-config.js +48 -48
- package/src/config/env/index.js +5 -5
- package/src/config/env/local/index.js +13 -13
- package/src/config/env/ncet-xedu/api.js +175 -175
- package/src/config/env/ncet-xedu/app.js +12 -12
- package/src/config/env/ncet-xedu/cs.js +8 -8
- package/src/config/env/ncet-xedu/index.js +14 -14
- package/src/config/env/ncet-xedu/push.js +5 -5
- package/src/config/env/preproduction/api.js +144 -144
- package/src/config/env/preproduction/app.js +12 -12
- package/src/config/env/preproduction/cs.js +8 -8
- package/src/config/env/preproduction/index.js +14 -14
- package/src/config/env/preproduction/push.js +5 -5
- package/src/config/env/product/api.js +113 -113
- package/src/config/env/product/app.js +12 -12
- package/src/config/env/product/cs.js +5 -5
- package/src/config/env/product/index.js +14 -14
- package/src/config/env/product/push.js +5 -5
- package/src/config/live.js +80 -80
- package/src/config/publicLive.js +53 -53
- package/src/config/request/assessments.js +24 -24
- package/src/config/request/config-center.js +8 -8
- package/src/config/request/helper.js +166 -166
- package/src/config/request/im-broadcasts.js +12 -12
- package/src/config/request/live-activity-gateway.js +8 -8
- package/src/config/request/live-activity.js +13 -13
- package/src/config/request/raw.js +6 -6
- package/src/config/request/x-cloud-web.js +13 -13
- package/src/config/request/x-proxy.js +34 -34
- package/src/demo/Detail.jsx +11 -11
- package/src/demo/List.jsx +66 -64
- package/src/demo/index.jsx +17 -17
- package/src/detail/LineSwitch/index.jsx +71 -71
- package/src/detail/LiveCountDown/index.jsx +44 -44
- package/src/detail/LiveCountDown/index.module.less +31 -31
- package/src/detail/LiveOnlineCount/img/icon.svg +15 -15
- package/src/detail/LiveOnlineCount/index.jsx +68 -68
- package/src/detail/LiveOnlineCount/index.module.less +34 -34
- package/src/detail/LiveOnlineCount/util.js +74 -74
- package/src/detail/LiveStatus/AnchorOnTheWay.jsx +88 -88
- package/src/detail/LiveStatus/index.jsx +202 -202
- package/src/detail/LiveStatus/index.module.less +192 -192
- package/src/detail/LiveVideo/config.js +37 -37
- package/src/detail/LiveVideo/index.jsx +188 -188
- package/src/detail/LiveVideo/index.module.less +41 -41
- package/src/detail/NotLoginChatroom/index.jsx +37 -37
- package/src/detail/NotLoginChatroom/index.module.less +46 -46
- package/src/detail/RecordVideo/index.jsx +150 -150
- package/src/detail/RecordVideo/index.module.less +31 -31
- package/src/detail/ReplayVideo/index.jsx +93 -93
- package/src/detail/ReplayVideo/index.module.less +65 -65
- package/src/detail/const.js +20 -20
- package/src/detail/hook/usePullSource.js +82 -82
- package/src/detail/hook/usePullState.js +51 -51
- package/src/detail/index.jsx +482 -482
- package/src/detail/index.module.less +188 -188
- package/src/hook/useAsync.js +84 -84
- package/src/hook/useGoToPage.js +83 -83
- package/src/hook/useInterval.js +28 -28
- package/src/hook/useIsMounted.js +17 -17
- package/src/hook/useModuleByRole.js +53 -53
- package/src/hook/usePageScrollable.js +52 -52
- package/src/hook/usePortal.js +83 -83
- package/src/hook/useScrollRestore/index.js +32 -32
- package/src/hook/useScrollRestore/scrollContext.js +20 -20
- package/src/hook/useTrackRef.js +11 -11
- package/src/hook/useWindowSize.js +28 -28
- package/src/hook/useZoom.js +47 -47
- package/src/index.js +10 -10
- package/src/lib/getLiveOnlineCount.js +10 -10
- package/src/lib/getServiceConfig.js +102 -102
- package/src/list/Empty/index.jsx +20 -20
- package/src/list/Empty/index.module.less +23 -23
- package/src/list/ListItem/Action/index.jsx +100 -98
- package/src/list/ListItem/Action/index.module.less +19 -21
- package/src/list/ListItem/img/play.svg +15 -15
- package/src/list/ListItem/img/video.svg +3 -0
- package/src/list/ListItem/index.jsx +46 -28
- package/src/list/ListItem/index.module.less +152 -146
- package/src/list/index.module.less +35 -35
- package/src/service/common.js +73 -73
- package/src/service/content-mgr.js +73 -73
- package/src/service/im-group.js +12 -12
- package/src/service/im.js +7 -7
- package/src/service/imBroadcasts.js +33 -33
- package/src/service/like.js +134 -134
- package/src/service/manageApi.js +7 -7
- package/src/service/managePortal.js +6 -6
- package/src/service/myStudyRecord.js +93 -93
- package/src/service/navigation.js +47 -47
- package/src/service/ndMeeting.js +10 -10
- package/src/service/ndr.js +122 -122
- package/src/service/news.js +93 -93
- package/src/service/personalCenter.js +270 -270
- package/src/service/qualityCourse.js +31 -31
- package/src/service/recommend.js +81 -81
- package/src/service/school.js +323 -323
- package/src/service/search.js +170 -170
- package/src/service/site-config.js +7 -7
- package/src/service/socialCensor.js +45 -45
- package/src/service/specialEdu.js +31 -31
- package/src/service/suggestion.js +85 -85
- package/src/service/syncClassroom.js +321 -321
- package/src/service/tCourse.js +204 -204
- package/src/service/tchTraining.js +37 -37
- package/src/service/uc.js +45 -45
- package/src/util/app.js +1 -1
- package/src/util/array.js +3 -3
- package/src/util/auth/func.js +57 -57
- package/src/util/date.js +53 -53
- package/src/util/env.js +9 -9
- package/src/util/getTimestamp.js +10 -10
- package/src/util/hof.js +105 -105
- package/src/util/live/index.js +42 -42
- package/src/util/netUrl.js +35 -35
- package/src/util/object.js +13 -13
- package/src/util/push/index.js +58 -58
- package/src/util/request.js +227 -227
- package/src/util/type.js +17 -17
- package/src/util/url.js +203 -203
- package/src/util/video.js +26 -26
- package/test/setup.js +21 -21
- package/test/unit/component/header/logo.spec.jsx +8 -8
- package/test/unit/helper.jsx +25 -25
- package/test/unit/util/date.spec.js +40 -40
- package/dist/XEduLivePlayer.common.js +0 -72605
- package/dist/XEduLivePlayerPre.common.js +0 -72625
package/src/service/search.js
CHANGED
|
@@ -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
|
+
}
|