@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/school.js
CHANGED
|
@@ -1,323 +1,323 @@
|
|
|
1
|
-
import { memoize } from 'lodash'
|
|
2
|
-
import config from '@/config/env'
|
|
3
|
-
import { getCdnAPI, getCdnHotAPI } from '@/config/request/cdn'
|
|
4
|
-
import cdnAPISchool, { apiCommon } from '@/config/request/x-cloud-web'
|
|
5
|
-
// import eduAdminPublicBase from '@/config/request/edu-admin-public-base'
|
|
6
|
-
import rawAPI from '@/config/request/raw'
|
|
7
|
-
|
|
8
|
-
const schoolServiceName = config.api.serviceName.school
|
|
9
|
-
const areaServiceName = config.api.serviceName.areaLibrary
|
|
10
|
-
|
|
11
|
-
const other = {
|
|
12
|
-
area: 'bdxcloud/configs/rank_area_info.json',
|
|
13
|
-
school: 'v1/area_infos/{area_code}/school_infos',
|
|
14
|
-
schoolDetail: 'v1/school_infos/{school_id}/actions/detail',
|
|
15
|
-
gradeSection: 'bdxcloud/configs/gradeSection.json',
|
|
16
|
-
subjectCode: 'bdxcloud/configs/subjectCode.json',
|
|
17
|
-
jobTitle: 'bdxcloud/configs/job_title.json',
|
|
18
|
-
schoolSection: 'studio/school/section.json',
|
|
19
|
-
teacherHonor: 'bdxcloud/configs/teacher_honor.json',
|
|
20
|
-
searchSchool: 'v1/school_infos/from_es?grade_section_contain=true&offset={offset}&limit={limit}&school_name={school_name}&area_code={area_code}'
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
function isSchoolUrl(url) {
|
|
24
|
-
return url.indexOf('/school_infos') > -1
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
function isSchoolCommonUrl(url) {
|
|
28
|
-
return url.indexOf('v1/school_infos') > -1
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
function isOtherUrl(url) {
|
|
32
|
-
return url.indexOf('bdxcloud/configs') > -1 || url.indexOf('studio/school/') > -1
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
function getServiceName(url) {
|
|
36
|
-
if (isSchoolUrl(url)) return schoolServiceName
|
|
37
|
-
if (isOtherUrl(url)) return ''
|
|
38
|
-
return areaServiceName
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
function getApiRequest(url) {
|
|
42
|
-
if (isSchoolCommonUrl(url)) return apiCommon
|
|
43
|
-
if (isSchoolUrl(url)) return cdnAPISchool
|
|
44
|
-
if (isOtherUrl(url)) return getCdnHotAPI()
|
|
45
|
-
return getCdnAPI()
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* 拼接请求信息
|
|
50
|
-
* @param {*} url
|
|
51
|
-
* @param {*} language
|
|
52
|
-
*/
|
|
53
|
-
async function getRequestURL(url) {
|
|
54
|
-
const serviceName = getServiceName(url)
|
|
55
|
-
return serviceName ? `/${serviceName}/${url}` : `/${url}`
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* 请求数据
|
|
60
|
-
* @param {*} url
|
|
61
|
-
* @returns
|
|
62
|
-
*/
|
|
63
|
-
async function getLibraryDatas(url) {
|
|
64
|
-
const requestURL = await getRequestURL(url)
|
|
65
|
-
const { data } = await getApiRequest(url).get(requestURL)
|
|
66
|
-
return data
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* 获取地区数据
|
|
71
|
-
* @param {*} id
|
|
72
|
-
* @returns
|
|
73
|
-
*/
|
|
74
|
-
export const getAreas = memoize(
|
|
75
|
-
async () => {
|
|
76
|
-
if (process.env.SDP_ENV === 'preproduction') {
|
|
77
|
-
const resp = await rawAPI.get('https://betacs.101.com/v0.1/static/preproduction_content_x_cloud/configs/rank_area_info.json')
|
|
78
|
-
return resp.data
|
|
79
|
-
} else {
|
|
80
|
-
const data = await getLibraryDatas(other.area)
|
|
81
|
-
return data
|
|
82
|
-
}
|
|
83
|
-
},
|
|
84
|
-
() => 'areas'
|
|
85
|
-
)
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* 获取地区下学校数据
|
|
89
|
-
* @param {*} areaCode
|
|
90
|
-
* @returns
|
|
91
|
-
*/
|
|
92
|
-
// export async function getSchools(areaCode) {
|
|
93
|
-
// const data = await getLibraryDatas(other.school.replace('{area_code}', areaCode))
|
|
94
|
-
// return data
|
|
95
|
-
// }
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* 新接口 获取地区下学校数据
|
|
99
|
-
* @param {*} areaCode
|
|
100
|
-
* @returns
|
|
101
|
-
*/
|
|
102
|
-
export async function getSchoolSearchApi({
|
|
103
|
-
areaCode,
|
|
104
|
-
isAll = false, // 是否搜索全部, 就是包括所有子集
|
|
105
|
-
schoolName = '',
|
|
106
|
-
offset = 0,
|
|
107
|
-
limit = 100
|
|
108
|
-
}) {
|
|
109
|
-
const params = {
|
|
110
|
-
include_sub_area: isAll,
|
|
111
|
-
offset,
|
|
112
|
-
limit,
|
|
113
|
-
count: true
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
if (areaCode) {
|
|
117
|
-
params.area_code = areaCode
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
if (schoolName) {
|
|
121
|
-
params.school_name = schoolName
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
const { data } = await apiCommon.get('/v1/school_infos/actions/search', {
|
|
125
|
-
params
|
|
126
|
-
})
|
|
127
|
-
return data
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
* 获取学校年段
|
|
132
|
-
* @param {*} id
|
|
133
|
-
* @returns
|
|
134
|
-
*/
|
|
135
|
-
export async function getSchoolSectionApi(schoolInfo) {
|
|
136
|
-
const newSchoolInfo = {
|
|
137
|
-
...schoolInfo
|
|
138
|
-
}
|
|
139
|
-
const vals = await getTermMap()
|
|
140
|
-
newSchoolInfo.school_section = newSchoolInfo.school_section.map((section) => Object.keys(vals.find((v) => v.id === section)?.section))
|
|
141
|
-
newSchoolInfo.school_section = newSchoolInfo.school_section.join(',').split(',')
|
|
142
|
-
return newSchoolInfo
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
/**
|
|
146
|
-
* 获取学校数据
|
|
147
|
-
* @param {*} id
|
|
148
|
-
* @returns
|
|
149
|
-
*/
|
|
150
|
-
export async function getSchool(id) {
|
|
151
|
-
const data = await getLibraryDatas(other.schoolDetail.replace('{school_id}', id))
|
|
152
|
-
const vals = await getTermMap()
|
|
153
|
-
data.school_section = data.school_section.map((section) => Object.keys(vals.find((v) => v.id === section)?.section))
|
|
154
|
-
data.school_section = data.school_section.join(',').split(',')
|
|
155
|
-
return data
|
|
156
|
-
}
|
|
157
|
-
// 获取学校详情
|
|
158
|
-
export const getSchoolDetail = memoize(
|
|
159
|
-
async (id) => {
|
|
160
|
-
const data = await getLibraryDatas(other.schoolDetail.replace('{school_id}', id))
|
|
161
|
-
return data
|
|
162
|
-
},
|
|
163
|
-
(id) => `getSchoolDetail_${id}`
|
|
164
|
-
)
|
|
165
|
-
|
|
166
|
-
/**
|
|
167
|
-
* 获取学校数据
|
|
168
|
-
* @param {*} id
|
|
169
|
-
* @returns
|
|
170
|
-
*/
|
|
171
|
-
export async function getSchoolsByName(name, areaCode, offset = 0, limit = 10) {
|
|
172
|
-
let url = ''
|
|
173
|
-
if (!name && areaCode) {
|
|
174
|
-
url = other.searchSchool
|
|
175
|
-
.replace('&school_name={school_name}', '')
|
|
176
|
-
.replace('{area_code}', areaCode)
|
|
177
|
-
.replace('{offset}', offset)
|
|
178
|
-
.replace('{limit}', limit)
|
|
179
|
-
} else if (name && !areaCode) {
|
|
180
|
-
url = other.searchSchool
|
|
181
|
-
.replace('{school_name}', name)
|
|
182
|
-
.replace('&area_code={area_code}', '')
|
|
183
|
-
.replace('{offset}', offset)
|
|
184
|
-
.replace('{limit}', limit)
|
|
185
|
-
} else if (!name && !areaCode) {
|
|
186
|
-
url = other.searchSchool
|
|
187
|
-
.replace('{school_name}', name)
|
|
188
|
-
.replace('&area_code={area_code}', '')
|
|
189
|
-
.replace('{offset}', offset)
|
|
190
|
-
.replace('{limit}', limit)
|
|
191
|
-
} else {
|
|
192
|
-
url = other.searchSchool
|
|
193
|
-
.replace('{school_name}', name)
|
|
194
|
-
.replace('{area_code}', areaCode)
|
|
195
|
-
.replace('{offset}', offset)
|
|
196
|
-
.replace('{limit}', limit)
|
|
197
|
-
}
|
|
198
|
-
const data = await getLibraryDatas(url)
|
|
199
|
-
const vals = await getTermMap()
|
|
200
|
-
let items = data.items.map((item) => {
|
|
201
|
-
// 将编码转为机构
|
|
202
|
-
item.school_section = item.school_section.map((section) => Object.keys(vals.find((v) => v.id === section)?.section))
|
|
203
|
-
item.school_section = item.school_section.join(',').split(',')
|
|
204
|
-
// 将机构转为学段
|
|
205
|
-
return item
|
|
206
|
-
})
|
|
207
|
-
/**
|
|
208
|
-
* 把“其他”排到最后
|
|
209
|
-
*/
|
|
210
|
-
// 搜索了limit个
|
|
211
|
-
// 如果offset为0,说明是第一次搜索
|
|
212
|
-
if (offset === 0) {
|
|
213
|
-
window.tmpSchools = []
|
|
214
|
-
}
|
|
215
|
-
// 取其他学校数据
|
|
216
|
-
let newItems = items.filter((item) => item?.school_name?.indexOf('其他') === -1).sort((data1, data2) => data1?.school_name?.localeCompare(data2?.school_name, 'zh'))
|
|
217
|
-
const otherItems = items.filter((item) => item?.school_name?.indexOf('其他') > -1)
|
|
218
|
-
window.tmpSchools = [...window.tmpSchools, ...otherItems]
|
|
219
|
-
// 如果结果小于limit,说明搜索结束,添加其他地区
|
|
220
|
-
if (items?.length < limit) {
|
|
221
|
-
newItems = [...newItems, ...window.tmpSchools]
|
|
222
|
-
window.tmpSchools = []
|
|
223
|
-
}
|
|
224
|
-
items = [...newItems]
|
|
225
|
-
|
|
226
|
-
return {
|
|
227
|
-
...data,
|
|
228
|
-
items
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
export async function getSchoolByName(name) {
|
|
233
|
-
const schools = await getSchoolsByName(name)
|
|
234
|
-
return schools?.items?.find((s) => s.school_name === name)
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
/**
|
|
238
|
-
* 获取职称
|
|
239
|
-
* @returns
|
|
240
|
-
*/
|
|
241
|
-
export async function getJobTitles() {
|
|
242
|
-
const { data } = await rawAPI.get('https://bdcs-file-1.ykt.cbern.com.cn/bdxcloud/configs/job_title.json')
|
|
243
|
-
// const data = await getLibraryDatas(other.jobTitle)
|
|
244
|
-
return data
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
/**
|
|
248
|
-
* 获取学段
|
|
249
|
-
* @returns
|
|
250
|
-
*/
|
|
251
|
-
export async function getTerm() {
|
|
252
|
-
// const data = await getLibraryDatas(other.gradeSection)
|
|
253
|
-
const { data } = await rawAPI.get('https://bdcs-file-1.ykt.cbern.com.cn/bdxcloud/configs/gradeSection.json')
|
|
254
|
-
return data
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
export async function getTermMap() {
|
|
258
|
-
const { data } = await rawAPI.get('https://bdcs-file-1.ykt.cbern.com.cn/studio/school/section.json')
|
|
259
|
-
return data
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
// export function getDetailTerms(arg) {
|
|
263
|
-
// switch (arg) {
|
|
264
|
-
// case '小学':
|
|
265
|
-
// return [2]
|
|
266
|
-
// case '初中':
|
|
267
|
-
// return [3]
|
|
268
|
-
// case '高中':
|
|
269
|
-
// return [4]
|
|
270
|
-
// case '完中':
|
|
271
|
-
// return [3, 4]
|
|
272
|
-
// case '九年一贯制':
|
|
273
|
-
// return [2, 3]
|
|
274
|
-
// case '12年一贯制 ':
|
|
275
|
-
// return [2, 3]
|
|
276
|
-
// case '幼儿园':
|
|
277
|
-
// return [1]
|
|
278
|
-
// case '其他教育类':
|
|
279
|
-
// return [5]
|
|
280
|
-
// case '高等教育':
|
|
281
|
-
// case '中职':
|
|
282
|
-
// case '高职':
|
|
283
|
-
// case '机构':
|
|
284
|
-
// case '教学点':
|
|
285
|
-
// default:
|
|
286
|
-
// return [1, 2, 3, 4, 5]
|
|
287
|
-
// }
|
|
288
|
-
// }
|
|
289
|
-
|
|
290
|
-
/**
|
|
291
|
-
* 获取学科
|
|
292
|
-
* @returns
|
|
293
|
-
*/
|
|
294
|
-
export async function getTermSubject(key) {
|
|
295
|
-
const { data } = await rawAPI.get('https://bdcs-file-1.ykt.cbern.com.cn/bdxcloud/configs/subjectCode.json')
|
|
296
|
-
// const data = await getLibraryDatas(other.subjectCode)
|
|
297
|
-
const res = {}
|
|
298
|
-
Object.keys(data).forEach((val, idx) => {
|
|
299
|
-
if (String(val).slice(0, 1) === String(key)) {
|
|
300
|
-
res[val] = Object.values(data)[idx]
|
|
301
|
-
}
|
|
302
|
-
})
|
|
303
|
-
return res
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
/**
|
|
307
|
-
* 获取学校信息
|
|
308
|
-
* @param {*} id
|
|
309
|
-
* @returns
|
|
310
|
-
*/
|
|
311
|
-
export async function getSchoolInfo(id) {
|
|
312
|
-
const data = await getLibraryDatas(other.schoolDetail.replace('{school_id}', id))
|
|
313
|
-
return data
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
/**
|
|
317
|
-
* 获取荣誉
|
|
318
|
-
* @returns
|
|
319
|
-
*/
|
|
320
|
-
export async function getHonor() {
|
|
321
|
-
const data = await getLibraryDatas(other.teacherHonor)
|
|
322
|
-
return data
|
|
323
|
-
}
|
|
1
|
+
import { memoize } from 'lodash'
|
|
2
|
+
import config from '@/config/env'
|
|
3
|
+
import { getCdnAPI, getCdnHotAPI } from '@/config/request/cdn'
|
|
4
|
+
import cdnAPISchool, { apiCommon } from '@/config/request/x-cloud-web'
|
|
5
|
+
// import eduAdminPublicBase from '@/config/request/edu-admin-public-base'
|
|
6
|
+
import rawAPI from '@/config/request/raw'
|
|
7
|
+
|
|
8
|
+
const schoolServiceName = config.api.serviceName.school
|
|
9
|
+
const areaServiceName = config.api.serviceName.areaLibrary
|
|
10
|
+
|
|
11
|
+
const other = {
|
|
12
|
+
area: 'bdxcloud/configs/rank_area_info.json',
|
|
13
|
+
school: 'v1/area_infos/{area_code}/school_infos',
|
|
14
|
+
schoolDetail: 'v1/school_infos/{school_id}/actions/detail',
|
|
15
|
+
gradeSection: 'bdxcloud/configs/gradeSection.json',
|
|
16
|
+
subjectCode: 'bdxcloud/configs/subjectCode.json',
|
|
17
|
+
jobTitle: 'bdxcloud/configs/job_title.json',
|
|
18
|
+
schoolSection: 'studio/school/section.json',
|
|
19
|
+
teacherHonor: 'bdxcloud/configs/teacher_honor.json',
|
|
20
|
+
searchSchool: 'v1/school_infos/from_es?grade_section_contain=true&offset={offset}&limit={limit}&school_name={school_name}&area_code={area_code}'
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function isSchoolUrl(url) {
|
|
24
|
+
return url.indexOf('/school_infos') > -1
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function isSchoolCommonUrl(url) {
|
|
28
|
+
return url.indexOf('v1/school_infos') > -1
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function isOtherUrl(url) {
|
|
32
|
+
return url.indexOf('bdxcloud/configs') > -1 || url.indexOf('studio/school/') > -1
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function getServiceName(url) {
|
|
36
|
+
if (isSchoolUrl(url)) return schoolServiceName
|
|
37
|
+
if (isOtherUrl(url)) return ''
|
|
38
|
+
return areaServiceName
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function getApiRequest(url) {
|
|
42
|
+
if (isSchoolCommonUrl(url)) return apiCommon
|
|
43
|
+
if (isSchoolUrl(url)) return cdnAPISchool
|
|
44
|
+
if (isOtherUrl(url)) return getCdnHotAPI()
|
|
45
|
+
return getCdnAPI()
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* 拼接请求信息
|
|
50
|
+
* @param {*} url
|
|
51
|
+
* @param {*} language
|
|
52
|
+
*/
|
|
53
|
+
async function getRequestURL(url) {
|
|
54
|
+
const serviceName = getServiceName(url)
|
|
55
|
+
return serviceName ? `/${serviceName}/${url}` : `/${url}`
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* 请求数据
|
|
60
|
+
* @param {*} url
|
|
61
|
+
* @returns
|
|
62
|
+
*/
|
|
63
|
+
async function getLibraryDatas(url) {
|
|
64
|
+
const requestURL = await getRequestURL(url)
|
|
65
|
+
const { data } = await getApiRequest(url).get(requestURL)
|
|
66
|
+
return data
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* 获取地区数据
|
|
71
|
+
* @param {*} id
|
|
72
|
+
* @returns
|
|
73
|
+
*/
|
|
74
|
+
export const getAreas = memoize(
|
|
75
|
+
async () => {
|
|
76
|
+
if (process.env.SDP_ENV === 'preproduction') {
|
|
77
|
+
const resp = await rawAPI.get('https://betacs.101.com/v0.1/static/preproduction_content_x_cloud/configs/rank_area_info.json')
|
|
78
|
+
return resp.data
|
|
79
|
+
} else {
|
|
80
|
+
const data = await getLibraryDatas(other.area)
|
|
81
|
+
return data
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
() => 'areas'
|
|
85
|
+
)
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* 获取地区下学校数据
|
|
89
|
+
* @param {*} areaCode
|
|
90
|
+
* @returns
|
|
91
|
+
*/
|
|
92
|
+
// export async function getSchools(areaCode) {
|
|
93
|
+
// const data = await getLibraryDatas(other.school.replace('{area_code}', areaCode))
|
|
94
|
+
// return data
|
|
95
|
+
// }
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* 新接口 获取地区下学校数据
|
|
99
|
+
* @param {*} areaCode
|
|
100
|
+
* @returns
|
|
101
|
+
*/
|
|
102
|
+
export async function getSchoolSearchApi({
|
|
103
|
+
areaCode,
|
|
104
|
+
isAll = false, // 是否搜索全部, 就是包括所有子集
|
|
105
|
+
schoolName = '',
|
|
106
|
+
offset = 0,
|
|
107
|
+
limit = 100
|
|
108
|
+
}) {
|
|
109
|
+
const params = {
|
|
110
|
+
include_sub_area: isAll,
|
|
111
|
+
offset,
|
|
112
|
+
limit,
|
|
113
|
+
count: true
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
if (areaCode) {
|
|
117
|
+
params.area_code = areaCode
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
if (schoolName) {
|
|
121
|
+
params.school_name = schoolName
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
const { data } = await apiCommon.get('/v1/school_infos/actions/search', {
|
|
125
|
+
params
|
|
126
|
+
})
|
|
127
|
+
return data
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* 获取学校年段
|
|
132
|
+
* @param {*} id
|
|
133
|
+
* @returns
|
|
134
|
+
*/
|
|
135
|
+
export async function getSchoolSectionApi(schoolInfo) {
|
|
136
|
+
const newSchoolInfo = {
|
|
137
|
+
...schoolInfo
|
|
138
|
+
}
|
|
139
|
+
const vals = await getTermMap()
|
|
140
|
+
newSchoolInfo.school_section = newSchoolInfo.school_section.map((section) => Object.keys(vals.find((v) => v.id === section)?.section))
|
|
141
|
+
newSchoolInfo.school_section = newSchoolInfo.school_section.join(',').split(',')
|
|
142
|
+
return newSchoolInfo
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* 获取学校数据
|
|
147
|
+
* @param {*} id
|
|
148
|
+
* @returns
|
|
149
|
+
*/
|
|
150
|
+
export async function getSchool(id) {
|
|
151
|
+
const data = await getLibraryDatas(other.schoolDetail.replace('{school_id}', id))
|
|
152
|
+
const vals = await getTermMap()
|
|
153
|
+
data.school_section = data.school_section.map((section) => Object.keys(vals.find((v) => v.id === section)?.section))
|
|
154
|
+
data.school_section = data.school_section.join(',').split(',')
|
|
155
|
+
return data
|
|
156
|
+
}
|
|
157
|
+
// 获取学校详情
|
|
158
|
+
export const getSchoolDetail = memoize(
|
|
159
|
+
async (id) => {
|
|
160
|
+
const data = await getLibraryDatas(other.schoolDetail.replace('{school_id}', id))
|
|
161
|
+
return data
|
|
162
|
+
},
|
|
163
|
+
(id) => `getSchoolDetail_${id}`
|
|
164
|
+
)
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* 获取学校数据
|
|
168
|
+
* @param {*} id
|
|
169
|
+
* @returns
|
|
170
|
+
*/
|
|
171
|
+
export async function getSchoolsByName(name, areaCode, offset = 0, limit = 10) {
|
|
172
|
+
let url = ''
|
|
173
|
+
if (!name && areaCode) {
|
|
174
|
+
url = other.searchSchool
|
|
175
|
+
.replace('&school_name={school_name}', '')
|
|
176
|
+
.replace('{area_code}', areaCode)
|
|
177
|
+
.replace('{offset}', offset)
|
|
178
|
+
.replace('{limit}', limit)
|
|
179
|
+
} else if (name && !areaCode) {
|
|
180
|
+
url = other.searchSchool
|
|
181
|
+
.replace('{school_name}', name)
|
|
182
|
+
.replace('&area_code={area_code}', '')
|
|
183
|
+
.replace('{offset}', offset)
|
|
184
|
+
.replace('{limit}', limit)
|
|
185
|
+
} else if (!name && !areaCode) {
|
|
186
|
+
url = other.searchSchool
|
|
187
|
+
.replace('{school_name}', name)
|
|
188
|
+
.replace('&area_code={area_code}', '')
|
|
189
|
+
.replace('{offset}', offset)
|
|
190
|
+
.replace('{limit}', limit)
|
|
191
|
+
} else {
|
|
192
|
+
url = other.searchSchool
|
|
193
|
+
.replace('{school_name}', name)
|
|
194
|
+
.replace('{area_code}', areaCode)
|
|
195
|
+
.replace('{offset}', offset)
|
|
196
|
+
.replace('{limit}', limit)
|
|
197
|
+
}
|
|
198
|
+
const data = await getLibraryDatas(url)
|
|
199
|
+
const vals = await getTermMap()
|
|
200
|
+
let items = data.items.map((item) => {
|
|
201
|
+
// 将编码转为机构
|
|
202
|
+
item.school_section = item.school_section.map((section) => Object.keys(vals.find((v) => v.id === section)?.section))
|
|
203
|
+
item.school_section = item.school_section.join(',').split(',')
|
|
204
|
+
// 将机构转为学段
|
|
205
|
+
return item
|
|
206
|
+
})
|
|
207
|
+
/**
|
|
208
|
+
* 把“其他”排到最后
|
|
209
|
+
*/
|
|
210
|
+
// 搜索了limit个
|
|
211
|
+
// 如果offset为0,说明是第一次搜索
|
|
212
|
+
if (offset === 0) {
|
|
213
|
+
window.tmpSchools = []
|
|
214
|
+
}
|
|
215
|
+
// 取其他学校数据
|
|
216
|
+
let newItems = items.filter((item) => item?.school_name?.indexOf('其他') === -1).sort((data1, data2) => data1?.school_name?.localeCompare(data2?.school_name, 'zh'))
|
|
217
|
+
const otherItems = items.filter((item) => item?.school_name?.indexOf('其他') > -1)
|
|
218
|
+
window.tmpSchools = [...window.tmpSchools, ...otherItems]
|
|
219
|
+
// 如果结果小于limit,说明搜索结束,添加其他地区
|
|
220
|
+
if (items?.length < limit) {
|
|
221
|
+
newItems = [...newItems, ...window.tmpSchools]
|
|
222
|
+
window.tmpSchools = []
|
|
223
|
+
}
|
|
224
|
+
items = [...newItems]
|
|
225
|
+
|
|
226
|
+
return {
|
|
227
|
+
...data,
|
|
228
|
+
items
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
export async function getSchoolByName(name) {
|
|
233
|
+
const schools = await getSchoolsByName(name)
|
|
234
|
+
return schools?.items?.find((s) => s.school_name === name)
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* 获取职称
|
|
239
|
+
* @returns
|
|
240
|
+
*/
|
|
241
|
+
export async function getJobTitles() {
|
|
242
|
+
const { data } = await rawAPI.get('https://bdcs-file-1.ykt.cbern.com.cn/bdxcloud/configs/job_title.json')
|
|
243
|
+
// const data = await getLibraryDatas(other.jobTitle)
|
|
244
|
+
return data
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* 获取学段
|
|
249
|
+
* @returns
|
|
250
|
+
*/
|
|
251
|
+
export async function getTerm() {
|
|
252
|
+
// const data = await getLibraryDatas(other.gradeSection)
|
|
253
|
+
const { data } = await rawAPI.get('https://bdcs-file-1.ykt.cbern.com.cn/bdxcloud/configs/gradeSection.json')
|
|
254
|
+
return data
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
export async function getTermMap() {
|
|
258
|
+
const { data } = await rawAPI.get('https://bdcs-file-1.ykt.cbern.com.cn/studio/school/section.json')
|
|
259
|
+
return data
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
// export function getDetailTerms(arg) {
|
|
263
|
+
// switch (arg) {
|
|
264
|
+
// case '小学':
|
|
265
|
+
// return [2]
|
|
266
|
+
// case '初中':
|
|
267
|
+
// return [3]
|
|
268
|
+
// case '高中':
|
|
269
|
+
// return [4]
|
|
270
|
+
// case '完中':
|
|
271
|
+
// return [3, 4]
|
|
272
|
+
// case '九年一贯制':
|
|
273
|
+
// return [2, 3]
|
|
274
|
+
// case '12年一贯制 ':
|
|
275
|
+
// return [2, 3]
|
|
276
|
+
// case '幼儿园':
|
|
277
|
+
// return [1]
|
|
278
|
+
// case '其他教育类':
|
|
279
|
+
// return [5]
|
|
280
|
+
// case '高等教育':
|
|
281
|
+
// case '中职':
|
|
282
|
+
// case '高职':
|
|
283
|
+
// case '机构':
|
|
284
|
+
// case '教学点':
|
|
285
|
+
// default:
|
|
286
|
+
// return [1, 2, 3, 4, 5]
|
|
287
|
+
// }
|
|
288
|
+
// }
|
|
289
|
+
|
|
290
|
+
/**
|
|
291
|
+
* 获取学科
|
|
292
|
+
* @returns
|
|
293
|
+
*/
|
|
294
|
+
export async function getTermSubject(key) {
|
|
295
|
+
const { data } = await rawAPI.get('https://bdcs-file-1.ykt.cbern.com.cn/bdxcloud/configs/subjectCode.json')
|
|
296
|
+
// const data = await getLibraryDatas(other.subjectCode)
|
|
297
|
+
const res = {}
|
|
298
|
+
Object.keys(data).forEach((val, idx) => {
|
|
299
|
+
if (String(val).slice(0, 1) === String(key)) {
|
|
300
|
+
res[val] = Object.values(data)[idx]
|
|
301
|
+
}
|
|
302
|
+
})
|
|
303
|
+
return res
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
/**
|
|
307
|
+
* 获取学校信息
|
|
308
|
+
* @param {*} id
|
|
309
|
+
* @returns
|
|
310
|
+
*/
|
|
311
|
+
export async function getSchoolInfo(id) {
|
|
312
|
+
const data = await getLibraryDatas(other.schoolDetail.replace('{school_id}', id))
|
|
313
|
+
return data
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
/**
|
|
317
|
+
* 获取荣誉
|
|
318
|
+
* @returns
|
|
319
|
+
*/
|
|
320
|
+
export async function getHonor() {
|
|
321
|
+
const data = await getLibraryDatas(other.teacherHonor)
|
|
322
|
+
return data
|
|
323
|
+
}
|