@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/tCourse.js
CHANGED
|
@@ -1,204 +1,204 @@
|
|
|
1
|
-
import axios from 'axios'
|
|
2
|
-
|
|
3
|
-
import tCourseCdn from '@/config/request/t-course-cdn'
|
|
4
|
-
import tCourse from '@/config/request/x-course'
|
|
5
|
-
import teacherCommmunity from '@/config/request/teacher-community'
|
|
6
|
-
import libraryStatic from '@/lib/LibraryStatic'
|
|
7
|
-
import config from '@/config/env'
|
|
8
|
-
import { getTimestamp } from '@/util/getTimestamp'
|
|
9
|
-
|
|
10
|
-
const difficultTagsName = 'exercise-difficult-tags'
|
|
11
|
-
|
|
12
|
-
const { app } = config
|
|
13
|
-
const sdpAppId = app.appid
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* 根据标签组从indexedDb中获取课本信息
|
|
17
|
-
*
|
|
18
|
-
* @export
|
|
19
|
-
* @param {array} tags 过滤课本的标签
|
|
20
|
-
* @returns 课本列表
|
|
21
|
-
*/
|
|
22
|
-
export async function getBookList(tags) {
|
|
23
|
-
if (!tags || !tags.length) return []
|
|
24
|
-
const bookList = await libraryStatic.getTextBookList((book) => {
|
|
25
|
-
const { catalog_ids: catalogIds } = book
|
|
26
|
-
return tags.every((tag) => catalogIds && catalogIds.includes(tag))
|
|
27
|
-
})
|
|
28
|
-
return bookList.sort((firstEl, secondEl) => getBookVolumeTag(firstEl) - getBookVolumeTag(secondEl))
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
function getBookVolumeTag(book) {
|
|
32
|
-
const tagCode = book?.tagInfos?.volume?.tagCode
|
|
33
|
-
return tagCode ? tagCode.replace(/\$V/, '') : 0
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* 获取课程相关信息
|
|
38
|
-
*
|
|
39
|
-
* @export
|
|
40
|
-
* @param {string} courseId 课程(课本)id
|
|
41
|
-
* @returns 课程相关信息
|
|
42
|
-
*/
|
|
43
|
-
export async function getCourseRelativeInfo(courseId, channel) {
|
|
44
|
-
const { data } = await tCourseCdn(channel).get(`/v2/business_courses/${courseId}/course_relative_infos/zh-CN.json`)
|
|
45
|
-
return data
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export async function getCourseInfo(courseId) {
|
|
49
|
-
const textBookList = await libraryStatic.getTextBookList((data) => data.resource_id === courseId)
|
|
50
|
-
return textBookList[0]
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* 获取活动集信息, 包括了章节目录信息
|
|
55
|
-
*
|
|
56
|
-
* @export
|
|
57
|
-
* @param {string} activitySetId
|
|
58
|
-
* @returns 课程的活动集信息, nodes字段中包含活动节点信息
|
|
59
|
-
*/
|
|
60
|
-
export async function getActiveSet(activitySetId, channel) {
|
|
61
|
-
const { data } = await tCourseCdn(channel).get(`/v2/activity_sets/${activitySetId}/fulls.json`)
|
|
62
|
-
return data
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
// http://api.e.101.com/services/x-course/description/rest/html?env=test&version=1.0-SNAPSHOT#/definitions/%E8%AF%BE%E7%A8%8B%E8%AF%A6%E6%83%85%E4%BF%A1%E6%81%AF
|
|
66
|
-
// 获取用户进度信息
|
|
67
|
-
// 2022/4/1 取消获取服务端用户进度, 直接使用本地进度
|
|
68
|
-
export async function getUserRelativeInfo(courseId) {
|
|
69
|
-
const { data } = await tCourse.get(`/v2/business_courses/${courseId}/user_relative_infos`)
|
|
70
|
-
return data
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* 获取课时配置
|
|
75
|
-
*
|
|
76
|
-
* @export
|
|
77
|
-
* @returns 课时配置
|
|
78
|
-
*/
|
|
79
|
-
export async function getActivityConfig() {
|
|
80
|
-
const { data } = await tCourseCdn().get(`/v1/x_class_hour_activity/config/${sdpAppId}/_/_.json`)
|
|
81
|
-
return data
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* 获取单个课时活动信息
|
|
86
|
-
*
|
|
87
|
-
* @export
|
|
88
|
-
* @param {string} activityId
|
|
89
|
-
* @returns 课时活动和关联的信息
|
|
90
|
-
*/
|
|
91
|
-
export async function getActivityInfo(activityId) {
|
|
92
|
-
const { data } = await tCourseCdn().get(`/v1/x_class_hour_activity/${activityId}.json`)
|
|
93
|
-
return data
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* 获取课时练习列表
|
|
98
|
-
*
|
|
99
|
-
* @export
|
|
100
|
-
* @param {string} activityId
|
|
101
|
-
* @returns 课时练习列表
|
|
102
|
-
*/
|
|
103
|
-
export async function getExerciseList(activityId) {
|
|
104
|
-
const { data } = await tCourseCdn().get(`/v1/x_class_hour_activity/${activityId}/exercises.json`)
|
|
105
|
-
return data
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* 获取资源列表
|
|
110
|
-
*
|
|
111
|
-
* @export
|
|
112
|
-
* @param {string} activityId
|
|
113
|
-
* @returns 资源列表
|
|
114
|
-
*/
|
|
115
|
-
export async function getResourceList(activityId) {
|
|
116
|
-
const { data } = await tCourseCdn().get(`/v1/x_class_hour_activity/${activityId}/resources.json`)
|
|
117
|
-
return data
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* 获取单个资源播放信息
|
|
122
|
-
*
|
|
123
|
-
* @export
|
|
124
|
-
* @param {string} activityId
|
|
125
|
-
* @param {string} resourceId
|
|
126
|
-
* @returns 资源信息
|
|
127
|
-
*/
|
|
128
|
-
export async function getResourceInfo(activityId, resourceId) {
|
|
129
|
-
const { data } = await tCourseCdn().get(`/v1/x_class_hour_activity/${activityId}/resources/${resourceId}.json`)
|
|
130
|
-
return data
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
/**
|
|
134
|
-
* 获取课时活动讲师列表
|
|
135
|
-
*
|
|
136
|
-
* @export
|
|
137
|
-
* @param {string} activityId
|
|
138
|
-
* @returns 课时对应讲师列表
|
|
139
|
-
*/
|
|
140
|
-
export async function getLecturerList(activityId) {
|
|
141
|
-
const { data } = await tCourseCdn().get(`/v1/x_class_hour_activity/${activityId}/lecturers.json`)
|
|
142
|
-
return data
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
export async function getExercisePrepareData(preGenPaperPath) {
|
|
146
|
-
if (!preGenPaperPath) {
|
|
147
|
-
return
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
let url = preGenPaperPath
|
|
151
|
-
if (process.env.SDP_ENV !== 'ncet-xedu') {
|
|
152
|
-
url += `?v=${getTimestamp(24 * 60 * 60)}`
|
|
153
|
-
}
|
|
154
|
-
const response = await axios.get(url)
|
|
155
|
-
if (response.status === 200) {
|
|
156
|
-
const { data } = response
|
|
157
|
-
const questions = data?.question_vos || []
|
|
158
|
-
const paperVo = {
|
|
159
|
-
parts: [
|
|
160
|
-
{
|
|
161
|
-
paper_questions: questions
|
|
162
|
-
}
|
|
163
|
-
]
|
|
164
|
-
}
|
|
165
|
-
return {
|
|
166
|
-
questions,
|
|
167
|
-
paperVo
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
export async function getExerciseDifficultTags() {
|
|
173
|
-
let difficultTags = JSON.parse(localStorage.getItem(difficultTagsName))
|
|
174
|
-
|
|
175
|
-
if (!difficultTags) {
|
|
176
|
-
const response = await axios.get(
|
|
177
|
-
'https://ndr-gateway.beta.101.com/v1.0/1/tag_cascades?tag_path=j2jiHwFu-&global_lang=zh-CN'
|
|
178
|
-
)
|
|
179
|
-
if (response.status === 200) {
|
|
180
|
-
const { data } = response
|
|
181
|
-
difficultTags = data
|
|
182
|
-
}
|
|
183
|
-
localStorage.setItem(difficultTagsName, JSON.stringify(difficultTags))
|
|
184
|
-
}
|
|
185
|
-
return difficultTags
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
export async function getCourseProgress(courseId, userId) {
|
|
189
|
-
const { data } = await teacherCommmunity.get(`/business_courses/${courseId}/users/${userId}/progresses`, null, {
|
|
190
|
-
headers: {
|
|
191
|
-
'sdp-app-id': sdpAppId
|
|
192
|
-
}
|
|
193
|
-
})
|
|
194
|
-
return data
|
|
195
|
-
}
|
|
196
|
-
// 根据用户id获取区域,学校
|
|
197
|
-
export async function getAreasByUserId(userId) {
|
|
198
|
-
const { data } = await teacherCommmunity.get(`/managers/${userId}`, null, {
|
|
199
|
-
headers: {
|
|
200
|
-
'sdp-app-id': sdpAppId
|
|
201
|
-
}
|
|
202
|
-
})
|
|
203
|
-
return data
|
|
204
|
-
}
|
|
1
|
+
import axios from 'axios'
|
|
2
|
+
|
|
3
|
+
import tCourseCdn from '@/config/request/t-course-cdn'
|
|
4
|
+
import tCourse from '@/config/request/x-course'
|
|
5
|
+
import teacherCommmunity from '@/config/request/teacher-community'
|
|
6
|
+
import libraryStatic from '@/lib/LibraryStatic'
|
|
7
|
+
import config from '@/config/env'
|
|
8
|
+
import { getTimestamp } from '@/util/getTimestamp'
|
|
9
|
+
|
|
10
|
+
const difficultTagsName = 'exercise-difficult-tags'
|
|
11
|
+
|
|
12
|
+
const { app } = config
|
|
13
|
+
const sdpAppId = app.appid
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* 根据标签组从indexedDb中获取课本信息
|
|
17
|
+
*
|
|
18
|
+
* @export
|
|
19
|
+
* @param {array} tags 过滤课本的标签
|
|
20
|
+
* @returns 课本列表
|
|
21
|
+
*/
|
|
22
|
+
export async function getBookList(tags) {
|
|
23
|
+
if (!tags || !tags.length) return []
|
|
24
|
+
const bookList = await libraryStatic.getTextBookList((book) => {
|
|
25
|
+
const { catalog_ids: catalogIds } = book
|
|
26
|
+
return tags.every((tag) => catalogIds && catalogIds.includes(tag))
|
|
27
|
+
})
|
|
28
|
+
return bookList.sort((firstEl, secondEl) => getBookVolumeTag(firstEl) - getBookVolumeTag(secondEl))
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function getBookVolumeTag(book) {
|
|
32
|
+
const tagCode = book?.tagInfos?.volume?.tagCode
|
|
33
|
+
return tagCode ? tagCode.replace(/\$V/, '') : 0
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* 获取课程相关信息
|
|
38
|
+
*
|
|
39
|
+
* @export
|
|
40
|
+
* @param {string} courseId 课程(课本)id
|
|
41
|
+
* @returns 课程相关信息
|
|
42
|
+
*/
|
|
43
|
+
export async function getCourseRelativeInfo(courseId, channel) {
|
|
44
|
+
const { data } = await tCourseCdn(channel).get(`/v2/business_courses/${courseId}/course_relative_infos/zh-CN.json`)
|
|
45
|
+
return data
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export async function getCourseInfo(courseId) {
|
|
49
|
+
const textBookList = await libraryStatic.getTextBookList((data) => data.resource_id === courseId)
|
|
50
|
+
return textBookList[0]
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* 获取活动集信息, 包括了章节目录信息
|
|
55
|
+
*
|
|
56
|
+
* @export
|
|
57
|
+
* @param {string} activitySetId
|
|
58
|
+
* @returns 课程的活动集信息, nodes字段中包含活动节点信息
|
|
59
|
+
*/
|
|
60
|
+
export async function getActiveSet(activitySetId, channel) {
|
|
61
|
+
const { data } = await tCourseCdn(channel).get(`/v2/activity_sets/${activitySetId}/fulls.json`)
|
|
62
|
+
return data
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// http://api.e.101.com/services/x-course/description/rest/html?env=test&version=1.0-SNAPSHOT#/definitions/%E8%AF%BE%E7%A8%8B%E8%AF%A6%E6%83%85%E4%BF%A1%E6%81%AF
|
|
66
|
+
// 获取用户进度信息
|
|
67
|
+
// 2022/4/1 取消获取服务端用户进度, 直接使用本地进度
|
|
68
|
+
export async function getUserRelativeInfo(courseId) {
|
|
69
|
+
const { data } = await tCourse.get(`/v2/business_courses/${courseId}/user_relative_infos`)
|
|
70
|
+
return data
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* 获取课时配置
|
|
75
|
+
*
|
|
76
|
+
* @export
|
|
77
|
+
* @returns 课时配置
|
|
78
|
+
*/
|
|
79
|
+
export async function getActivityConfig() {
|
|
80
|
+
const { data } = await tCourseCdn().get(`/v1/x_class_hour_activity/config/${sdpAppId}/_/_.json`)
|
|
81
|
+
return data
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* 获取单个课时活动信息
|
|
86
|
+
*
|
|
87
|
+
* @export
|
|
88
|
+
* @param {string} activityId
|
|
89
|
+
* @returns 课时活动和关联的信息
|
|
90
|
+
*/
|
|
91
|
+
export async function getActivityInfo(activityId) {
|
|
92
|
+
const { data } = await tCourseCdn().get(`/v1/x_class_hour_activity/${activityId}.json`)
|
|
93
|
+
return data
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* 获取课时练习列表
|
|
98
|
+
*
|
|
99
|
+
* @export
|
|
100
|
+
* @param {string} activityId
|
|
101
|
+
* @returns 课时练习列表
|
|
102
|
+
*/
|
|
103
|
+
export async function getExerciseList(activityId) {
|
|
104
|
+
const { data } = await tCourseCdn().get(`/v1/x_class_hour_activity/${activityId}/exercises.json`)
|
|
105
|
+
return data
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* 获取资源列表
|
|
110
|
+
*
|
|
111
|
+
* @export
|
|
112
|
+
* @param {string} activityId
|
|
113
|
+
* @returns 资源列表
|
|
114
|
+
*/
|
|
115
|
+
export async function getResourceList(activityId) {
|
|
116
|
+
const { data } = await tCourseCdn().get(`/v1/x_class_hour_activity/${activityId}/resources.json`)
|
|
117
|
+
return data
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* 获取单个资源播放信息
|
|
122
|
+
*
|
|
123
|
+
* @export
|
|
124
|
+
* @param {string} activityId
|
|
125
|
+
* @param {string} resourceId
|
|
126
|
+
* @returns 资源信息
|
|
127
|
+
*/
|
|
128
|
+
export async function getResourceInfo(activityId, resourceId) {
|
|
129
|
+
const { data } = await tCourseCdn().get(`/v1/x_class_hour_activity/${activityId}/resources/${resourceId}.json`)
|
|
130
|
+
return data
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* 获取课时活动讲师列表
|
|
135
|
+
*
|
|
136
|
+
* @export
|
|
137
|
+
* @param {string} activityId
|
|
138
|
+
* @returns 课时对应讲师列表
|
|
139
|
+
*/
|
|
140
|
+
export async function getLecturerList(activityId) {
|
|
141
|
+
const { data } = await tCourseCdn().get(`/v1/x_class_hour_activity/${activityId}/lecturers.json`)
|
|
142
|
+
return data
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
export async function getExercisePrepareData(preGenPaperPath) {
|
|
146
|
+
if (!preGenPaperPath) {
|
|
147
|
+
return
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
let url = preGenPaperPath
|
|
151
|
+
if (process.env.SDP_ENV !== 'ncet-xedu') {
|
|
152
|
+
url += `?v=${getTimestamp(24 * 60 * 60)}`
|
|
153
|
+
}
|
|
154
|
+
const response = await axios.get(url)
|
|
155
|
+
if (response.status === 200) {
|
|
156
|
+
const { data } = response
|
|
157
|
+
const questions = data?.question_vos || []
|
|
158
|
+
const paperVo = {
|
|
159
|
+
parts: [
|
|
160
|
+
{
|
|
161
|
+
paper_questions: questions
|
|
162
|
+
}
|
|
163
|
+
]
|
|
164
|
+
}
|
|
165
|
+
return {
|
|
166
|
+
questions,
|
|
167
|
+
paperVo
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
export async function getExerciseDifficultTags() {
|
|
173
|
+
let difficultTags = JSON.parse(localStorage.getItem(difficultTagsName))
|
|
174
|
+
|
|
175
|
+
if (!difficultTags) {
|
|
176
|
+
const response = await axios.get(
|
|
177
|
+
'https://ndr-gateway.beta.101.com/v1.0/1/tag_cascades?tag_path=j2jiHwFu-&global_lang=zh-CN'
|
|
178
|
+
)
|
|
179
|
+
if (response.status === 200) {
|
|
180
|
+
const { data } = response
|
|
181
|
+
difficultTags = data
|
|
182
|
+
}
|
|
183
|
+
localStorage.setItem(difficultTagsName, JSON.stringify(difficultTags))
|
|
184
|
+
}
|
|
185
|
+
return difficultTags
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
export async function getCourseProgress(courseId, userId) {
|
|
189
|
+
const { data } = await teacherCommmunity.get(`/business_courses/${courseId}/users/${userId}/progresses`, null, {
|
|
190
|
+
headers: {
|
|
191
|
+
'sdp-app-id': sdpAppId
|
|
192
|
+
}
|
|
193
|
+
})
|
|
194
|
+
return data
|
|
195
|
+
}
|
|
196
|
+
// 根据用户id获取区域,学校
|
|
197
|
+
export async function getAreasByUserId(userId) {
|
|
198
|
+
const { data } = await teacherCommmunity.get(`/managers/${userId}`, null, {
|
|
199
|
+
headers: {
|
|
200
|
+
'sdp-app-id': sdpAppId
|
|
201
|
+
}
|
|
202
|
+
})
|
|
203
|
+
return data
|
|
204
|
+
}
|
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
import xCloudStatic from '@/config/request/x-cloud-api-static'
|
|
2
|
-
import xCourseCdn, { apiTeach } from '@/config/request/x-course-cdn'
|
|
3
|
-
|
|
4
|
-
// 获取研修课所有标签信息
|
|
5
|
-
export async function getTagTree() {
|
|
6
|
-
const { data } = await xCloudStatic.get('/tag_views/trees/x-tcourse.json')
|
|
7
|
-
return data
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
// 获取视频活动课时
|
|
11
|
-
export async function getVideoActivity(activityId) {
|
|
12
|
-
const { data } = await xCourseCdn.get(`/v1/video_activity/${activityId}.json`)
|
|
13
|
-
return data
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
// 获取文档活动课时
|
|
17
|
-
export async function getDocumentActivity(activityId) {
|
|
18
|
-
const { data } = await xCourseCdn.get(`/v1/document_activity/${activityId}.json`)
|
|
19
|
-
return data
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* 获取活动集信息, 包括了章节目录信息
|
|
24
|
-
*
|
|
25
|
-
* @export
|
|
26
|
-
* @param {string} activitySetId
|
|
27
|
-
* @returns 课程的活动集信息, nodes字段中包含活动节点信息
|
|
28
|
-
*/
|
|
29
|
-
export async function getActiveSet(activitySetId) {
|
|
30
|
-
const {
|
|
31
|
-
data
|
|
32
|
-
} = await apiTeach.get(`/v2/activity_sets/${activitySetId}/fulls.json`)
|
|
33
|
-
if (data) {
|
|
34
|
-
data.activity_set_id = activitySetId
|
|
35
|
-
}
|
|
36
|
-
return data
|
|
37
|
-
}
|
|
1
|
+
import xCloudStatic from '@/config/request/x-cloud-api-static'
|
|
2
|
+
import xCourseCdn, { apiTeach } from '@/config/request/x-course-cdn'
|
|
3
|
+
|
|
4
|
+
// 获取研修课所有标签信息
|
|
5
|
+
export async function getTagTree() {
|
|
6
|
+
const { data } = await xCloudStatic.get('/tag_views/trees/x-tcourse.json')
|
|
7
|
+
return data
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
// 获取视频活动课时
|
|
11
|
+
export async function getVideoActivity(activityId) {
|
|
12
|
+
const { data } = await xCourseCdn.get(`/v1/video_activity/${activityId}.json`)
|
|
13
|
+
return data
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// 获取文档活动课时
|
|
17
|
+
export async function getDocumentActivity(activityId) {
|
|
18
|
+
const { data } = await xCourseCdn.get(`/v1/document_activity/${activityId}.json`)
|
|
19
|
+
return data
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* 获取活动集信息, 包括了章节目录信息
|
|
24
|
+
*
|
|
25
|
+
* @export
|
|
26
|
+
* @param {string} activitySetId
|
|
27
|
+
* @returns 课程的活动集信息, nodes字段中包含活动节点信息
|
|
28
|
+
*/
|
|
29
|
+
export async function getActiveSet(activitySetId) {
|
|
30
|
+
const {
|
|
31
|
+
data
|
|
32
|
+
} = await apiTeach.get(`/v2/activity_sets/${activitySetId}/fulls.json`)
|
|
33
|
+
if (data) {
|
|
34
|
+
data.activity_set_id = activitySetId
|
|
35
|
+
}
|
|
36
|
+
return data
|
|
37
|
+
}
|
package/src/service/uc.js
CHANGED
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
import ucAPI from '@/config/request/uc'
|
|
2
|
-
import config from '@/config/env'
|
|
3
|
-
import ucS3Api from '@/config/request/uc-s3'
|
|
4
|
-
|
|
5
|
-
const { env } = config
|
|
6
|
-
|
|
7
|
-
export const getCSToken = async (data) => {
|
|
8
|
-
const url = '/cs_token'
|
|
9
|
-
const response = await ucAPI.post(url, data)
|
|
10
|
-
return response.data
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export const getUserInfo = async (
|
|
14
|
-
userId,
|
|
15
|
-
params = {
|
|
16
|
-
with_ext: false
|
|
17
|
-
}
|
|
18
|
-
) => {
|
|
19
|
-
const url = `/users/${userId}`
|
|
20
|
-
const response = await ucAPI.get(url, {
|
|
21
|
-
params
|
|
22
|
-
})
|
|
23
|
-
return response?.data
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export const getPublicUserInfo = async (userId) => {
|
|
27
|
-
const url = `/public/${env === 'ncet-xedu' ? 'person_accounts' : 'users'}/${userId}`
|
|
28
|
-
const response = await ucAPI.get(url, {
|
|
29
|
-
params: {
|
|
30
|
-
with_ext: false
|
|
31
|
-
}
|
|
32
|
-
})
|
|
33
|
-
return response.data
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export const setAccountInfo = async (userId, data) => {
|
|
37
|
-
const url = `/users/${userId}`
|
|
38
|
-
const response = await ucAPI.patch(url, data)
|
|
39
|
-
return response.data
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export const getUCS3CSToken = async (param) => {
|
|
43
|
-
const { data } = await ucS3Api.post('/cs_token', param)
|
|
44
|
-
return data
|
|
45
|
-
}
|
|
1
|
+
import ucAPI from '@/config/request/uc'
|
|
2
|
+
import config from '@/config/env'
|
|
3
|
+
import ucS3Api from '@/config/request/uc-s3'
|
|
4
|
+
|
|
5
|
+
const { env } = config
|
|
6
|
+
|
|
7
|
+
export const getCSToken = async (data) => {
|
|
8
|
+
const url = '/cs_token'
|
|
9
|
+
const response = await ucAPI.post(url, data)
|
|
10
|
+
return response.data
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export const getUserInfo = async (
|
|
14
|
+
userId,
|
|
15
|
+
params = {
|
|
16
|
+
with_ext: false
|
|
17
|
+
}
|
|
18
|
+
) => {
|
|
19
|
+
const url = `/users/${userId}`
|
|
20
|
+
const response = await ucAPI.get(url, {
|
|
21
|
+
params
|
|
22
|
+
})
|
|
23
|
+
return response?.data
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export const getPublicUserInfo = async (userId) => {
|
|
27
|
+
const url = `/public/${env === 'ncet-xedu' ? 'person_accounts' : 'users'}/${userId}`
|
|
28
|
+
const response = await ucAPI.get(url, {
|
|
29
|
+
params: {
|
|
30
|
+
with_ext: false
|
|
31
|
+
}
|
|
32
|
+
})
|
|
33
|
+
return response.data
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export const setAccountInfo = async (userId, data) => {
|
|
37
|
+
const url = `/users/${userId}`
|
|
38
|
+
const response = await ucAPI.patch(url, data)
|
|
39
|
+
return response.data
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export const getUCS3CSToken = async (param) => {
|
|
43
|
+
const { data } = await ucS3Api.post('/cs_token', param)
|
|
44
|
+
return data
|
|
45
|
+
}
|
package/src/util/app.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const inApp = window.Bridge && window.navigator.userAgent.indexOf('SmartCanWebView') !== -1
|
|
1
|
+
export const inApp = window.Bridge && window.navigator.userAgent.indexOf('SmartCanWebView') !== -1
|
package/src/util/array.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export function getRandomInArray(arr) {
|
|
2
|
-
return arr[Math.floor(Math.random() * arr.length)]
|
|
3
|
-
}
|
|
1
|
+
export function getRandomInArray(arr) {
|
|
2
|
+
return arr[Math.floor(Math.random() * arr.length)]
|
|
3
|
+
}
|