Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
X
xiaomai-cloud-class-web
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xiaomai-cloud-class
xiaomai-cloud-class-web
Commits
95bec18d
Commit
95bec18d
authored
Jul 29, 2021
by
guomingpang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
docs:删除无用的注释
parent
c6b1c283
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
240 additions
and
240 deletions
+240
-240
src/modules/course-manage/video-course/AddVideoCourse.jsx
+240
-240
No files found.
src/modules/course-manage/video-course/AddVideoCourse.jsx
View file @
95bec18d
...
...
@@ -7,33 +7,33 @@
* @Copyright: 杭州杰竞科技有限公司 版权所有
*/
import
React
from
'react'
import
{
Button
,
Input
,
message
,
Modal
,
Tooltip
,
Form
,
Popconfirm
,
Menu
,
Dropdown
}
from
'antd'
import
{
FileTypeIcon
}
from
'@/common/constants/academic/lessonEnum'
import
{
CourseCatalogSelect
}
from
'@/modules/common'
import
ShowTips
from
'@/components/ShowTips'
import
Breadcrumbs
from
'@/components/Breadcrumbs'
import
moment
from
'moment'
import
AddVideoIntro
from
'./components/AddVideoIntro'
import
SelectStudent
from
'../modal/select-student'
import
SelectPrepareFileModal
from
'../../prepare-lesson/modal/SelectPrepareFileModal'
import
PreviewCourseModal
from
'../modal/PreviewCourseModal'
import
CourseService
from
'@/domains/course-domain/CourseService'
import
Service
from
'@/common/js/service'
import
User
from
'@/common/js/user'
import
_
from
'underscore'
import
Upload
from
'@/core/upload'
import
{
randomString
}
from
'@/domains/basic-domain/utils'
import
ImgClipModal
from
'@/components/ImgClipModal'
import
$
from
'jquery'
import
'./AddVideoCourse.less'
import
Bus
from
'@/core/bus'
const
{
TextArea
}
=
Input
const
EDIT_BOX_KEY
=
Math
.
random
()
import
React
from
'react'
;
import
{
Button
,
Input
,
message
,
Modal
,
Tooltip
,
Form
,
Popconfirm
,
Menu
,
Dropdown
}
from
'antd'
;
import
{
FileTypeIcon
}
from
'@/common/constants/academic/lessonEnum'
;
import
{
CourseCatalogSelect
}
from
'@/modules/common'
;
import
ShowTips
from
'@/components/ShowTips'
;
import
Breadcrumbs
from
'@/components/Breadcrumbs'
;
import
moment
from
'moment'
;
import
AddVideoIntro
from
'./components/AddVideoIntro'
;
import
SelectStudent
from
'../modal/select-student'
;
import
SelectPrepareFileModal
from
'../../prepare-lesson/modal/SelectPrepareFileModal'
;
import
PreviewCourseModal
from
'../modal/PreviewCourseModal'
;
import
CourseService
from
'@/domains/course-domain/CourseService'
;
import
Service
from
'@/common/js/service'
;
import
User
from
'@/common/js/user'
;
import
_
from
'underscore'
;
import
Upload
from
'@/core/upload'
;
import
{
randomString
}
from
'@/domains/basic-domain/utils'
;
import
ImgClipModal
from
'@/components/ImgClipModal'
;
import
$
from
'jquery'
;
import
'./AddVideoCourse.less'
;
import
Bus
from
'@/core/bus'
;
const
{
TextArea
}
=
Input
;
const
EDIT_BOX_KEY
=
Math
.
random
()
;
//添加课程时课程默认的一些值
const
defaultShelfState
=
'YES'
const
defaultShelfState
=
'YES'
;
const
defaultScheduleMedia
=
[
{
contentType
:
'INTRO'
,
...
...
@@ -41,23 +41,23 @@ const defaultScheduleMedia = [
mediaContent
:
''
,
key
:
EDIT_BOX_KEY
,
},
]
const
whetherVisitorsJoin
=
'NO'
]
;
const
whetherVisitorsJoin
=
'NO'
;
let
cutFlag
=
false
let
cutFlag
=
false
;
const
SUPPORT_WORD_PDF
=
[
'application/msword'
,
'application/wps-writer'
,
'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
,
'application/pdf'
,
'application/wps-office.pdf'
,
]
]
;
class
AddVideoCourse
extends
React
.
Component
{
constructor
(
props
)
{
super
(
props
)
super
(
props
);
const
id
=
getParameterByName
(
'id'
)
const
pageType
=
getParameterByName
(
'type'
)
const
id
=
getParameterByName
(
'id'
);
const
pageType
=
getParameterByName
(
'type'
);
this
.
state
=
{
id
,
// 线上课ID,编辑的时候从URL上带过来
...
...
@@ -93,59 +93,59 @@ class AddVideoCourse extends React.Component {
mediaNameAlias
:
''
,
// 任一视频重命名的名称(气泡框)
selectTypeList
:
[
'MP4'
],
accept
:
'video/mp4'
,
}
};
}
componentWillMount
()
{
const
{
id
,
pageType
}
=
this
.
state
const
{
id
,
pageType
}
=
this
.
state
;
if
(
pageType
===
'edit'
)
{
this
.
handleFetchScheudleDetail
(
id
)
this
.
handleFetchScheudleDetail
(
id
);
}
Bus
.
bind
(
'editorLimit'
,
(
editorTextLength
)
=>
{
this
.
setState
({
editorTextLength
,
})
})
});
});
}
handleChangeCatalogList
=
(
value
,
label
)
=>
{
this
.
setState
({
categoryId
:
value
,
categoryName
:
label
[
0
]
})
}
this
.
setState
({
categoryId
:
value
,
categoryName
:
label
[
0
]
});
};
// 获取线上课详情
handleFetchScheudleDetail
=
(
courseId
)
=>
{
CourseService
.
videoScheduleDetail
({
courseId
,
}).
then
((
res
)
=>
{
const
{
result
=
{}
}
=
res
||
{}
const
{
courseName
,
shelfState
,
whetherVisitorsJoin
,
courseMediaVOS
,
categoryId
,
courseChapterVOList
=
[]
}
=
result
let
coverId
let
coverUrl
let
scheduleMedia
=
[]
let
scheduleVideoUrl
let
hasIntro
const
{
result
=
{}
}
=
res
||
{};
const
{
courseName
,
shelfState
,
whetherVisitorsJoin
,
courseMediaVOS
,
categoryId
,
courseChapterVOList
=
[]
}
=
result
;
let
coverId
;
let
coverUrl
;
let
scheduleMedia
=
[];
let
scheduleVideoUrl
;
let
hasIntro
;
courseMediaVOS
.
map
((
item
)
=>
{
switch
(
item
.
contentType
)
{
case
'COVER'
:
coverId
=
item
.
mediaContent
coverUrl
=
item
.
mediaUrl
break
coverId
=
item
.
mediaContent
;
coverUrl
=
item
.
mediaUrl
;
break
;
case
'INTRO'
:
hasIntro
=
true
this
.
getTextDetail
(
'introduce'
,
item
.
mediaUrl
)
break
hasIntro
=
true
;
this
.
getTextDetail
(
'introduce'
,
item
.
mediaUrl
);
break
;
default
:
break
break
;
}
return
item
})
return
item
;
});
const
_courseChapterVOList
=
courseChapterVOList
.
map
((
item
)
=>
{
item
.
mediaName
=
item
.
name
item
.
resourceId
=
item
.
id
return
item
})
item
.
mediaName
=
item
.
name
;
item
.
resourceId
=
item
.
id
;
return
item
;
});
this
.
setState
({
loadintroduce
:
!
hasIntro
,
...
...
@@ -158,9 +158,9 @@ class AddVideoCourse extends React.Component {
whetherVisitorsJoin
,
categoryId
,
courseChapterList
:
_courseChapterVOList
,
})
})
}
});
});
};
getTextDetail
=
(
key
,
url
)
=>
{
$
.
ajax
({
...
...
@@ -169,13 +169,13 @@ class AddVideoCourse extends React.Component {
url
,
contentType
:
'application/x-www-form-urlencoded; charset=UTF-8'
,
success
:
(
res
)
=>
{
this
.
setState
({
[
key
]:
res
,
[
`load
${
key
}
`
]:
true
})
this
.
setState
({
[
key
]:
res
,
[
`load
${
key
}
`
]:
true
});
},
})
}
});
};
handleGoBack
=
()
=>
{
const
{
coverId
,
courseName
,
scheduleMedia
,
courseChapterList
,
categoryId
,
shelfState
,
whetherVisitorsJoin
}
=
this
.
state
const
{
coverId
,
courseName
,
scheduleMedia
,
courseChapterList
,
categoryId
,
shelfState
,
whetherVisitorsJoin
}
=
this
.
state
;
if
(
!
courseChapterList
.
length
||
!
_
.
isEqual
(
scheduleMedia
,
defaultScheduleMedia
)
||
...
...
@@ -194,29 +194,29 @@ class AddVideoCourse extends React.Component {
onOk
:
()
=>
{
window
.
RCHistory
.
push
({
pathname
:
`/video-course`
,
})
});
},
})
});
}
else
{
window
.
RCHistory
.
push
({
pathname
:
`/video-course`
,
})
}
});
}
};
// 修改表单
handleChangeForm
=
(
field
,
value
,
coverUrl
)
=>
{
this
.
setState
({
[
field
]:
value
,
coverUrl
:
coverUrl
?
coverUrl
:
this
.
state
.
coverUrl
,
})
}
});
};
// 显示选择学员弹窗
handleShowSelectStuModal
=
()
=>
{
this
.
setState
({
studentModal
:
true
})
this
.
setState
({
studentModal
:
true
});
const
{
studentList
,
selectedStuList
}
=
this
.
state
const
{
studentList
,
selectedStuList
}
=
this
.
state
;
const
studentModal
=
(
<
SelectStudent
showTabs=
{
true
}
...
...
@@ -227,35 +227,35 @@ class AddVideoCourse extends React.Component {
close=
{
()
=>
{
this
.
setState
({
studentModal
:
null
,
})
});
}
}
/>
)
this
.
setState
({
studentModal
})
}
);
this
.
setState
({
studentModal
});
};
handleSelectStudent
=
(
studentIds
)
=>
{
let
studentList
=
[]
let
studentList
=
[];
_
.
each
(
studentIds
,
(
item
)
=>
{
studentList
.
push
({
studentId
:
item
})
})
this
.
setState
({
studentList
})
this
.
setState
({
studentModal
:
false
})
}
studentList
.
push
({
studentId
:
item
});
});
this
.
setState
({
studentList
});
this
.
setState
({
studentModal
:
false
});
};
// 显示预览弹窗
handleShowPreviewModal
=
()
=>
{
const
{
coverUrl
,
scheduleVideoUrl
,
courseName
,
scheduleMedia
,
introduce
,
courseChapterList
,
categoryName
}
=
this
.
state
const
{
coverUrl
,
scheduleVideoUrl
,
courseName
,
scheduleMedia
,
introduce
,
courseChapterList
,
categoryName
}
=
this
.
state
;
const
courseBasinInfo
=
{
coverUrl
,
scheduleVideoUrl
,
courseName
,
}
};
const
courseIntroInfo
=
{
liveCourseMediaRequests
:
scheduleMedia
,
introduce
,
categoryName
,
}
};
const
previewCourseModal
=
(
<
PreviewCourseModal
...
...
@@ -265,35 +265,35 @@ class AddVideoCourse extends React.Component {
close=
{
()
=>
{
this
.
setState
({
previewCourseModal
:
null
,
})
});
}
}
courseChapterList=
{
courseChapterList
}
/>
)
);
this
.
setState
({
previewCourseModal
})
}
this
.
setState
({
previewCourseModal
});
};
// 选择视频
handleSelectVideo
=
(
addFolderIds
,
selectedFileList
)
=>
{
this
.
setState
({
showSelectFileModal
:
false
,
})
});
let
{
courseChapterList
}
=
this
.
state
let
_courseChapterList
=
[...
courseChapterList
]
let
{
courseChapterList
}
=
this
.
state
;
let
_courseChapterList
=
[...
courseChapterList
];
if
(
selectedFileList
.
length
+
courseChapterList
.
length
>
20
)
{
message
.
warning
(
`最多只能上传20个文件`
)
return
message
.
warning
(
`最多只能上传20个文件`
);
return
;
}
selectedFileList
.
map
((
file
,
index
)
=>
{
const
{
ossUrl
,
resourceId
,
folderName
,
folderFormat
,
folderSize
}
=
file
const
_mediaName
=
folderName
.
replace
(
`.
${
_
.
last
(
folderName
.
split
(
'.'
)).
toLowerCase
()}
`
,
''
)
console
.
log
(
'folderFormat'
,
folderFormat
)
const
{
ossUrl
,
resourceId
,
folderName
,
folderFormat
,
folderSize
}
=
file
;
const
_mediaName
=
folderName
.
replace
(
`.
${
_
.
last
(
folderName
.
split
(
'.'
)).
toLowerCase
()}
`
,
''
);
console
.
log
(
'folderFormat'
,
folderFormat
);
if
(
folderFormat
===
'MP4'
||
folderFormat
===
'video/mp4'
)
{
const
videoDom
=
document
.
createElement
(
'video'
)
videoDom
.
src
=
ossUrl
const
videoDom
=
document
.
createElement
(
'video'
);
videoDom
.
src
=
ossUrl
;
videoDom
.
onloadedmetadata
=
()
=>
{
_courseChapterList
.
push
({
mediaContent
:
resourceId
,
...
...
@@ -304,13 +304,13 @@ class AddVideoCourse extends React.Component {
resourceId
,
mediaUrl
:
ossUrl
,
sort
:
_courseChapterList
.
length
,
})
});
this
.
setState
({
courseChapterList
:
_courseChapterList
,
})
}
});
};
}
else
if
(
folderFormat
===
'WORD'
||
folderFormat
===
'PDF'
||
SUPPORT_WORD_PDF
.
indexOf
(
folderFormat
)
>
-
1
)
{
const
suffix
=
_
.
last
(
folderName
.
split
(
'.'
)).
toUpperCase
()
const
suffix
=
_
.
last
(
folderName
.
split
(
'.'
)).
toUpperCase
();
_courseChapterList
.
push
({
mediaContent
:
resourceId
,
contentType
:
'SCHEDULE'
,
...
...
@@ -319,47 +319,47 @@ class AddVideoCourse extends React.Component {
resourceId
,
mediaUrl
:
ossUrl
,
sort
:
_courseChapterList
.
length
,
})
});
this
.
setState
({
courseChapterList
:
_courseChapterList
,
})
}
})
});
}
});
};
// 校验课节名称
handleValidateChapterName
=
(
chapterName
)
=>
{
let
hasError
=
false
let
hasError
=
false
;
return
new
Promise
((
resolve
)
=>
{
if
(
!
chapterName
)
{
this
.
setState
({
chapterNameValidateStatus
:
'error'
,
chapterNameHelpMsg
:
'请输入课节名称'
,
})
hasError
=
true
resolve
(
false
)
return
false
});
hasError
=
true
;
resolve
(
false
);
return
false
;
}
if
(
chapterName
.
length
>
40
)
{
this
.
setState
({
chapterNameValidateStatus
:
'error'
,
chapterNameHelpMsg
:
'不要超过40字'
,
})
hasError
=
true
resolve
(
false
)
return
false
});
hasError
=
true
;
resolve
(
false
);
return
false
;
}
if
(
!
hasError
)
{
resolve
(
true
)
resolve
(
true
);
this
.
setState
({
chapterNameValidateStatus
:
''
,
chapterNameHelpMsg
:
''
,
})
}
})
});
}
});
};
// 保存
handleSubmit
=
()
=>
{
...
...
@@ -369,8 +369,8 @@ class AddVideoCourse extends React.Component {
title
:
'服务已到期'
,
content
:
'当前企业购买的小麦企学院服务已到期,如需继续使用学院功能,请尽快续费购买'
,
okText
:
'我知道了'
,
})
return
});
return
;
}
const
{
...
...
@@ -387,7 +387,7 @@ class AddVideoCourse extends React.Component {
introduce
,
courseChapterList
,
editorTextLength
,
}
=
this
.
state
}
=
this
.
state
;
const
commonParams
=
{
// videoName,
...
...
@@ -402,75 +402,75 @@ class AddVideoCourse extends React.Component {
whetherVisitorsJoin
,
courseType
:
'VOICE'
,
courseChapterList
,
}
};
// 校验必填字段:课程名称, 课程视频
this
.
handleValidate
(
courseName
,
courseChapterList
,
categoryId
,
scheduleMedia
,
editorTextLength
).
then
((
res
)
=>
{
if
(
!
res
)
return
if
(
!
res
)
return
;
Upload
.
uploadTextToOSS
(
introduce
,
`
${
randomString
()}
.txt`
,
(
introduceId
)
=>
{
this
.
submitRemote
({
id
,
pageType
,
commonParams
:
{
...
commonParams
,
introduceId
}
})
})
})
}
this
.
submitRemote
({
id
,
pageType
,
commonParams
:
{
...
commonParams
,
introduceId
}
});
});
});
};
submitRemote
=
({
id
,
pageType
,
commonParams
})
=>
{
if
(
pageType
===
'add'
)
{
Service
.
Hades
(
'public/hades/createVideoSchedule'
,
commonParams
).
then
((
res
)
=>
{
if
(
!
res
)
return
message
.
success
(
'新建成功'
)
if
(
!
res
)
return
;
message
.
success
(
'新建成功'
);
window
.
RCHistory
.
push
({
pathname
:
`/video-course`
,
})
})
});
});
}
else
{
const
editParams
=
{
courseId
:
id
,
...
commonParams
,
}
};
Service
.
Hades
(
'public/hades/editVideoSchedule'
,
editParams
).
then
((
res
)
=>
{
if
(
!
res
)
return
message
.
success
(
'保存成功'
)
if
(
!
res
)
return
;
message
.
success
(
'保存成功'
);
window
.
RCHistory
.
push
({
pathname
:
`/video-course`
,
})
})
}
});
});
}
};
handleValidate
=
(
courseName
,
courseChapterList
,
categoryId
,
scheduleMedia
,
editorTextLength
)
=>
{
return
new
Promise
((
resolve
)
=>
{
if
(
!
courseName
)
{
message
.
warning
(
'请输入课程名称'
)
resolve
(
false
)
return
false
message
.
warning
(
'请输入课程名称'
);
resolve
(
false
);
return
false
;
}
if
(
!
courseChapterList
.
length
)
{
message
.
warning
(
'请上传课节'
)
resolve
(
false
)
return
false
message
.
warning
(
'请上传课节'
);
resolve
(
false
);
return
false
;
}
if
(
!
categoryId
)
{
message
.
warning
(
'请选择课程分类'
)
resolve
(
false
)
return
false
message
.
warning
(
'请选择课程分类'
);
resolve
(
false
);
return
false
;
}
if
(
editorTextLength
>
1000
)
{
message
.
warning
(
'课程简介超过字数限定'
)
resolve
(
false
)
return
}
resolve
(
true
)
})
message
.
warning
(
'课程简介超过字数限定'
);
resolve
(
false
);
return
;
}
resolve
(
true
);
});
};
handleSelectCover
=
(
file
)
=>
{
if
(
!
file
)
{
message
.
info
(
'请选择文件!'
)
return
message
.
info
(
'请选择文件!'
);
return
;
}
this
.
setState
({
visible
:
true
,
imageFile
:
file
,
})
}
});
};
//获取resourceId
getSignature
=
(
blob
,
fileName
)
=>
{
Upload
.
uploadBlobToOSS
(
blob
,
'cover'
+
new
Date
().
valueOf
(),
null
,
'signInfo'
).
then
((
signInfo
)
=>
{
...
...
@@ -481,77 +481,77 @@ class AddVideoCourse extends React.Component {
visible
:
false
,
},
()
=>
this
.
updateCover
()
)
})
}
);
});
};
updateCover
=
()
=>
{
const
{
coverClicpPath
,
coverId
}
=
this
.
state
const
{
coverClicpPath
,
coverId
}
=
this
.
state
;
this
.
setState
({
showSelectCoverModal
:
false
,
coverUrl
:
coverClicpPath
,
coverId
:
coverId
,
})
}
});
};
handleRenameCourseChapter
=
(
chapterId
,
chapterIndex
)
=>
{
const
{
mediaNameAlias
}
=
this
.
state
const
{
mediaNameAlias
}
=
this
.
state
;
this
.
handleValidateChapterName
(
mediaNameAlias
).
then
((
res
)
=>
{
// 校验不通过不能点确定保存修改课节名称
if
(
!
res
)
{
return
message
.
warning
(
'重命名失败'
)
return
message
.
warning
(
'重命名失败'
);
}
let
{
courseChapterList
}
=
this
.
state
let
_courseChapterList
=
[]
let
{
courseChapterList
}
=
this
.
state
;
let
_courseChapterList
=
[];
_courseChapterList
=
courseChapterList
.
map
((
item
,
index
)
=>
{
if
(
item
.
resourceId
===
chapterId
&&
chapterIndex
===
index
)
{
item
.
mediaName
=
mediaNameAlias
item
.
visible
=
false
item
.
mediaName
=
mediaNameAlias
;
item
.
visible
=
false
;
}
return
item
})
return
item
;
});
this
.
setState
({
courseChapterList
:
_courseChapterList
,
chapterNameValidateStatus
:
''
,
chapterNameHelpMsg
:
''
,
mediaNameAlias
:
''
,
})
})
}
});
});
};
handleChangePopConfirmVisible
=
(
chapterId
,
chapterNameIndex
,
visible
)
=>
{
let
{
courseChapterList
}
=
this
.
state
let
_courseChapterList
=
[]
let
{
courseChapterList
}
=
this
.
state
;
let
_courseChapterList
=
[];
_courseChapterList
=
courseChapterList
.
map
((
item
,
index
)
=>
{
if
(
item
.
resourceId
===
chapterId
&&
chapterNameIndex
===
index
)
{
item
.
visible
=
visible
item
.
visible
=
visible
;
}
else
{
item
.
visible
=
false
item
.
visible
=
false
;
}
return
item
})
return
item
;
});
this
.
setState
({
courseChapterList
:
_courseChapterList
,
})
}
});
};
handleDeleteCourseChapter
=
(
chapterId
,
chapterIndex
)
=>
{
console
.
log
(
'chapterId---'
,
chapterId
,
chapterIndex
)
let
{
courseChapterList
}
=
this
.
state
console
.
log
(
'chapterId---'
,
chapterId
,
chapterIndex
);
let
{
courseChapterList
}
=
this
.
state
;
let
_courseChapterList
=
courseChapterList
.
filter
((
item
,
index
)
=>
{
return
item
.
resourceId
!==
chapterId
||
(
item
.
resourceId
===
chapterId
&&
chapterIndex
!==
index
)
})
return
item
.
resourceId
!==
chapterId
||
(
item
.
resourceId
===
chapterId
&&
chapterIndex
!==
index
);
});
_courseChapterList
.
map
((
item
,
index
)
=>
{
item
.
sort
=
index
})
item
.
sort
=
index
;
});
this
.
setState
({
courseChapterList
:
_courseChapterList
,
})
}
});
};
renderChapterTitle
=
(
item
)
=>
{
const
{
chapterNameValidateStatus
,
chapterNameHelpMsg
}
=
this
.
state
const
{
chapterNameValidateStatus
,
chapterNameHelpMsg
}
=
this
.
state
;
return
(
<
div
className=
'course-chapter-title-popover'
>
...
...
@@ -570,54 +570,54 @@ class AddVideoCourse extends React.Component {
mediaNameAlias
:
e
.
target
.
value
.
trim
(),
},
()
=>
{
this
.
handleValidateChapterName
(
this
.
state
.
mediaNameAlias
)
this
.
handleValidateChapterName
(
this
.
state
.
mediaNameAlias
);
}
)
);
}
}
/>
</
Form
.
Item
>
</
Form
>
</
div
>
)
}
);
};
// 上下移动
handleChangeIndex
=
(
isUp
,
sortIndex
)
=>
{
const
{
courseChapterList
}
=
this
.
state
const
{
courseChapterList
}
=
this
.
state
;
// 第一个上移和最后一个下移不能使用
if
((
isUp
&&
sortIndex
===
0
)
||
(
!
isUp
&&
sortIndex
===
courseChapterList
.
length
-
1
))
{
return
return
;
}
let
_courseChapterList
=
[...
courseChapterList
]
const
temp
=
courseChapterList
[
sortIndex
]
let
_courseChapterList
=
[...
courseChapterList
];
const
temp
=
courseChapterList
[
sortIndex
];
// 若上移
if
(
isUp
)
{
_courseChapterList
[
sortIndex
-
1
]
=
temp
_courseChapterList
[
sortIndex
-
1
].
sort
=
sortIndex
-
1
_courseChapterList
[
sortIndex
]
=
courseChapterList
[
sortIndex
-
1
]
_courseChapterList
[
sortIndex
].
sort
=
sortIndex
_courseChapterList
[
sortIndex
-
1
]
=
temp
;
_courseChapterList
[
sortIndex
-
1
].
sort
=
sortIndex
-
1
;
_courseChapterList
[
sortIndex
]
=
courseChapterList
[
sortIndex
-
1
];
_courseChapterList
[
sortIndex
].
sort
=
sortIndex
;
}
else
{
// 若下移
_courseChapterList
[
sortIndex
+
1
]
=
temp
_courseChapterList
[
sortIndex
+
1
].
sort
=
sortIndex
+
1
_courseChapterList
[
sortIndex
]
=
courseChapterList
[
sortIndex
+
1
]
_courseChapterList
[
sortIndex
].
sort
=
sortIndex
_courseChapterList
[
sortIndex
+
1
]
=
temp
;
_courseChapterList
[
sortIndex
+
1
].
sort
=
sortIndex
+
1
;
_courseChapterList
[
sortIndex
]
=
courseChapterList
[
sortIndex
+
1
];
_courseChapterList
[
sortIndex
].
sort
=
sortIndex
;
}
this
.
setState
({
courseChapterList
:
_courseChapterList
,
})
}
});
};
renderTypemenu
=
()
=>
{
return
(
<
Menu
>
<
Menu
.
Item
>
<
span
onClick=
{
()
=>
{
this
.
selectFileType
(
'VIDEO'
)
this
.
selectFileType
(
'VIDEO'
);
}
}
>
视频文件
</
span
>
...
...
@@ -625,34 +625,34 @@ class AddVideoCourse extends React.Component {
<
Menu
.
Item
>
<
span
onClick=
{
()
=>
{
this
.
selectFileType
(
'WORD_PDF'
)
this
.
selectFileType
(
'WORD_PDF'
);
}
}
>
资料文件
</
span
>
</
Menu
.
Item
>
</
Menu
>
)
}
);
};
selectFileType
=
(
type
)
=>
{
const
{
courseChapterList
}
=
this
.
state
const
{
courseChapterList
}
=
this
.
state
;
if
(
courseChapterList
.
length
>=
20
)
{
message
.
warning
(
`最多只能上传20个文件`
)
return
message
.
warning
(
`最多只能上传20个文件`
);
return
;
}
if
(
type
===
'VIDEO'
)
{
this
.
setState
({
showSelectFileModal
:
true
,
selectTypeList
:
[
'MP4'
],
accept
:
'video/mp4'
,
})
});
}
else
{
this
.
setState
({
showSelectFileModal
:
true
,
selectTypeList
:
[
'DOC'
,
'DOCX'
,
'PDF'
],
accept
:
'.doc,.docx,.pdf'
,
})
}
});
}
};
renderToolTipTitle
=
()
=>
{
return
(
...
...
@@ -660,8 +660,8 @@ class AddVideoCourse extends React.Component {
<
p
>
视频支持mp4格式,大小不超过2G;
</
p
>
<
p
>
文件支持PDF、docx、doc格式,大小不超过100M
</
p
>
</
div
>
)
}
);
};
render
()
{
const
{
...
...
@@ -685,9 +685,9 @@ class AddVideoCourse extends React.Component {
imageFile
,
selectTypeList
,
accept
,
}
=
this
.
state
const
defaultCover
=
'https://image.xiaomaiketang.com/xm/TwtGPQGE4K.png'
const
isDefaultCover
=
coverUrl
===
defaultCover
||
coverUrl
==
null
}
=
this
.
state
;
const
defaultCover
=
'https://image.xiaomaiketang.com/xm/TwtGPQGE4K.png'
;
const
isDefaultCover
=
coverUrl
===
defaultCover
||
coverUrl
==
null
;
return
(
<
div
className=
'page add-video-course-page'
>
...
...
@@ -707,7 +707,7 @@ class AddVideoCourse extends React.Component {
maxLength=
{
40
}
style=
{
{
width
:
240
}
}
onChange=
{
(
e
)
=>
{
this
.
handleChangeForm
(
'courseName'
,
e
.
target
.
value
)
this
.
handleChangeForm
(
'courseName'
,
e
.
target
.
value
);
}
}
/>
</
div
>
...
...
@@ -790,15 +790,15 @@ class AddVideoCourse extends React.Component {
chapterNameValidateStatus
:
''
,
chapterNameHelpMsg
:
''
,
mediaNameAlias
:
''
,
})
});
}
}
onCancel=
{
()
=>
this
.
handleChangePopConfirmVisible
(
item
.
resourceId
,
index
,
false
)
}
>
<
div
className=
'rename'
onClick=
{
()
=>
{
this
.
setState
({
mediaNameAlias
:
item
.
mediaName
},
()
=>
{
this
.
handleChangePopConfirmVisible
(
item
.
resourceId
,
index
,
true
)
})
this
.
handleChangePopConfirmVisible
(
item
.
resourceId
,
index
,
true
);
});
}
}
>
重命名
</
div
>
...
...
@@ -809,7 +809,7 @@ class AddVideoCourse extends React.Component {
</
div
>
</
div
>
</
div
>
)
);
})
}
</
div
>
</
div
>
...
...
@@ -822,7 +822,7 @@ class AddVideoCourse extends React.Component {
<
div
>
<
Button
onClick=
{
()
=>
{
this
.
setState
({
showSelectCoverModal
:
true
})
this
.
setState
({
showSelectCoverModal
:
true
});
}
}
>
{
`${pageType === 'add' && !coverUrl ? '上传' : '修改'}封面`
}
</
Button
>
<
span
className=
{
`span ${coverUrl ? 'defalut-span' : ''}`
}
...
...
@@ -830,7 +830,7 @@ class AddVideoCourse extends React.Component {
this
.
setState
({
coverUrl
:
''
,
coverId
:
''
,
})
});
}
}
>
使用默认图
</
span
>
...
...
@@ -850,7 +850,7 @@ class AddVideoCourse extends React.Component {
<
CourseCatalogSelect
value=
{
categoryId
}
onChange=
{
(
value
,
label
)
=>
{
this
.
handleChangeCatalogList
(
value
,
label
)
this
.
handleChangeCatalogList
(
value
,
label
);
}
}
/>
</
div
>
...
...
@@ -895,7 +895,7 @@ class AddVideoCourse extends React.Component {
diskList=
{
diskList
}
addVideo=
{
true
}
onClose=
{
()
=>
{
this
.
setState
({
showSelectFileModal
:
false
})
this
.
setState
({
showSelectFileModal
:
false
});
}
}
onSelect=
{
this
.
handleSelectVideo
}
/>
...
...
@@ -910,7 +910,7 @@ class AddVideoCourse extends React.Component {
tooltip=
'支持文件类型:jpg、jpeg、png'
isOpen=
{
showSelectCoverModal
}
onClose=
{
()
=>
{
this
.
setState
({
showSelectCoverModal
:
false
})
this
.
setState
({
showSelectCoverModal
:
false
});
}
}
onSelect=
{
this
.
handleSelectCover
}
/>
...
...
@@ -921,14 +921,14 @@ class AddVideoCourse extends React.Component {
imgUrl=
{
imageFile
.
ossUrl
}
onConfirm=
{
this
.
getSignature
}
onClose=
{
()
=>
{
this
.
setState
({
visible
:
false
})
this
.
setState
({
visible
:
false
});
}
}
/>
)
}
{
this
.
state
.
previewCourseModal
}
</
div
>
)
);
}
}
export
default
AddVideoCourse
export
default
AddVideoCourse
;
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment