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
cb715f0a
Commit
cb715f0a
authored
Feb 23, 2021
by
zhangleyuan
Browse files
Options
Browse Files
Download
Plain Diff
feat:解决合并代码后的冲突
parents
ca457ba2
c5d57ff3
Hide whitespace changes
Inline
Side-by-side
Showing
97 changed files
with
648 additions
and
325 deletions
+648
-325
CHANGE_LOG.md
+6
-1
src/bu-components/ChooseMembersModal.jsx
+4
-1
src/bu-components/ChooseMembersModal.less
+26
-6
src/bu-components/CopyFileModal.jsx
+7
-6
src/bu-components/CopyFileModal.less
+1
-0
src/bu-components/ManagingMembersModal.jsx
+1
-0
src/bu-components/ManagingMembersModal.less
+3
-2
src/bu-components/NonCompliantFileModal.jsx
+2
-0
src/bu-components/PreviewCourseModal.jsx
+3
-2
src/bu-components/PreviewCourseModal.less
+2
-1
src/bu-components/SelectPrepareFileModal.jsx
+6
-32
src/bu-components/SelectPrepareFileModal.less
+1
-1
src/bu-components/ShareLiveModal.jsx
+1
-0
src/bu-components/ShowTip.less
+2
-1
src/components/CropperModal.tsx
+3
-1
src/components/DownloadLiveModal.jsx
+1
-1
src/components/ImgCutModal.jsx
+1
-0
src/components/ImgCutModalNew.jsx
+1
-0
src/components/MultipleDatePicker.less
+1
-2
src/components/ShowTips.less
+2
-1
src/core/antd.less
+200
-62
src/core/global.less
+8
-8
src/core/page.less
+5
-5
src/domains/basic-domain/constants.ts
+1
-1
src/domains/course-domain/constants.ts
+2
-2
src/modules/common/DateRangePicker.jsx
+1
-1
src/modules/course-manage/AddLive.jsx
+10
-16
src/modules/course-manage/components/AddLiveBasic.jsx
+5
-14
src/modules/course-manage/components/AddLiveClass.jsx
+54
-20
src/modules/course-manage/components/AddLiveClass.less
+7
-1
src/modules/course-manage/components/AddLiveIntro.jsx
+2
-1
src/modules/course-manage/components/LiveCourseFilter.jsx
+10
-4
src/modules/course-manage/components/LiveCourseList.jsx
+5
-2
src/modules/course-manage/components/LiveCourseList.less
+1
-7
src/modules/course-manage/components/liveCourseOpt.less
+2
-1
src/modules/course-manage/modal/AbnormalModal.jsx
+1
-0
src/modules/course-manage/modal/AccountChargeModal.jsx
+3
-2
src/modules/course-manage/modal/AccountChargeRecords.jsx
+1
-0
src/modules/course-manage/modal/ChargeArgeement.jsx
+1
-0
src/modules/course-manage/modal/ChargeExplainModal.jsx
+1
-0
src/modules/course-manage/modal/ChargingDetailModal.jsx
+1
-0
src/modules/course-manage/modal/CheckBalanceModal.jsx
+1
-0
src/modules/course-manage/modal/ClassRecordModal.jsx
+2
-1
src/modules/course-manage/modal/LackConsumeStudentModal.jsx
+1
-0
src/modules/course-manage/modal/LiveStudentListModal.jsx
+1
-0
src/modules/course-manage/modal/ManageCoursewareModal.jsx
+1
-0
src/modules/course-manage/modal/PlayBackRecordModal.jsx
+2
-1
src/modules/course-manage/modal/PreviewCourseModal.jsx
+5
-4
src/modules/course-manage/modal/PreviewCourseModal.less
+2
-1
src/modules/course-manage/modal/ShareLiveModal.jsx
+2
-1
src/modules/course-manage/modal/ShareLiveModal.less
+12
-2
src/modules/course-manage/modal/StartLiveModal.jsx
+1
-0
src/modules/course-manage/modal/TeacherLiveModal.jsx
+1
-0
src/modules/course-manage/modal/select-student/index.jsx
+1
-0
src/modules/course-manage/video-course/AddVideoCourse.jsx
+3
-4
src/modules/course-manage/video-course/AddVideoCourse.less
+1
-1
src/modules/course-manage/video-course/components/VideoCourseFilter.jsx
+9
-13
src/modules/course-manage/video-course/components/VideoCourseFilter.less
+11
-1
src/modules/course-manage/video-course/components/VideoCourseList.jsx
+5
-3
src/modules/course-manage/video-course/components/VideoCourseList.less
+27
-7
src/modules/course-manage/video-course/components/VideoCourseOpt.less
+1
-0
src/modules/course-manage/video-course/modal/WatchDataModal.jsx
+5
-2
src/modules/personalInfo/ChangePhoneModal.tsx
+1
-0
src/modules/personalInfo/IdentificationModal.tsx
+1
-0
src/modules/personalInfo/index.less
+0
-3
src/modules/personalInfo/index.tsx
+1
-3
src/modules/prepare-lesson/components/FolderList.jsx
+2
-1
src/modules/prepare-lesson/components/OperateArea.jsx
+3
-1
src/modules/prepare-lesson/index.jsx
+1
-0
src/modules/prepare-lesson/modal/CreateFolderModal.jsx
+1
-0
src/modules/prepare-lesson/modal/NonCompliantFileModal.jsx
+2
-0
src/modules/prepare-lesson/modal/ScanFileModal.jsx
+1
-0
src/modules/prepare-lesson/modal/SelectPrepareFileModal.jsx
+7
-6
src/modules/prepare-lesson/modal/SelectPrepareFileModal.less
+1
-2
src/modules/resource-disk/components/FolderList.jsx
+2
-1
src/modules/resource-disk/components/OperateArea.jsx
+3
-2
src/modules/resource-disk/modal/CreateFolderModal.jsx
+1
-0
src/modules/resource-disk/modal/ScanFileModal.jsx
+1
-0
src/modules/root/App.tsx
+3
-3
src/modules/root/Header.jsx
+3
-4
src/modules/root/Login.jsx
+2
-2
src/modules/root/Login.less
+6
-7
src/modules/root/Menu.less
+7
-0
src/modules/root/WechatLogin.tsx
+1
-1
src/modules/store-manage/CourseCatalogPage.less
+77
-25
src/modules/store-manage/CourseCatalogPage.tsx
+2
-2
src/modules/store-manage/EmployeeAddOrEditModal.less
+3
-0
src/modules/store-manage/EmployeeAddOrEditModal.tsx
+1
-0
src/modules/store-manage/EmployeesManagePage.less
+3
-0
src/modules/store-manage/EmployeesManagePage.tsx
+2
-3
src/modules/store-manage/StoreDecorationPage.less
+3
-0
src/modules/store-manage/StoreDecorationPage.tsx
+1
-3
src/modules/store-manage/StoreH5DecorationTab.jsx
+5
-3
src/modules/store-manage/StoreWebDecorationTab.jsx
+3
-1
src/modules/store-manage/UserManagePage.tsx
+3
-4
src/modules/store-manage/modal/CatalogAddOrEditModal.tsx
+2
-1
src/modules/store-manage/modal/SecondCatalogAddOrEditModal.tsx
+4
-1
No files found.
CHANGE_LOG.md
View file @
cb715f0a
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
*
@Author: zhangleyuan
*
@Author: zhangleyuan
*
@Date: 2020-12-15 19:58:31
*
@Date: 2020-12-15 19:58:31
*
@LastEditors: zhangleyuan
*
@LastEditors: zhangleyuan
*
@LastEditTime: 2021-01-
04 20:10:06
*
@LastEditTime: 2021-01-
27 19:54:58
*
@Description: 描述一下
*
@Description: 描述一下
*
@@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*
@@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
-->
-->
...
@@ -18,4 +18,8 @@
...
@@ -18,4 +18,8 @@
`2020-01-04`
`2020-01-04`
+
播种计划一期第二阶段初上线
`2021-01-27`
+
播种计划一期第二阶段初上线
+
播种计划一期第二阶段初上线
\ No newline at end of file
src/bu-components/ChooseMembersModal.jsx
View file @
cb715f0a
...
@@ -277,6 +277,7 @@ class ChooseMembersModal extends React.Component {
...
@@ -277,6 +277,7 @@ class ChooseMembersModal extends React.Component {
title=
{
title
}
title=
{
title
}
width=
{
680
}
width=
{
680
}
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
>
>
<
div
className=
'choose-container'
>
<
div
className=
'choose-container'
>
{
/* 拥有文件夹权限的成员列表 */
}
{
/* 拥有文件夹权限的成员列表 */
}
...
@@ -288,7 +289,9 @@ class ChooseMembersModal extends React.Component {
...
@@ -288,7 +289,9 @@ class ChooseMembersModal extends React.Component {
value=
{
searchKey
}
value=
{
searchKey
}
onSearch=
{
this
.
handleSearch
}
onSearch=
{
this
.
handleSearch
}
onChange=
{
this
.
handleChangeSearchKey
}
onChange=
{
this
.
handleChangeSearchKey
}
className=
'search'
className=
'search search-input'
enterButton=
{
<
span
className=
"icon iconfont"
>

</
span
>
}
/>
/>
<
div
className=
'container-left-body-table'
>
<
div
className=
'container-left-body-table'
>
<
Table
<
Table
...
...
src/bu-components/ChooseMembersModal.less
View file @
cb715f0a
...
@@ -46,6 +46,8 @@
...
@@ -46,6 +46,8 @@
margin: 100px 0 !important;
margin: 100px 0 !important;
}
}
.avatar{
.avatar{
display: flex;
align-items: center;
.avatar-img{
.avatar-img{
height: 23px;
height: 23px;
width: 23px;
width: 23px;
...
@@ -62,7 +64,7 @@
...
@@ -62,7 +64,7 @@
.span-left{
.span-left{
margin-left: 10px;
margin-left: 10px;
.span-left-l{
.span-left-l{
color: #
FD9A6A
;
color: #
ffb714
;
cursor: pointer;
cursor: pointer;
}
}
}
}
...
@@ -78,6 +80,8 @@
...
@@ -78,6 +80,8 @@
.container-right-body{
.container-right-body{
border: 1px solid #E9E9E9;
border: 1px solid #E9E9E9;
margin: 10px;
margin: 10px;
margin-top: 12px;
min-height:376px;
.edit {
.edit {
.edit-icon {
.edit-icon {
color:#999;
color:#999;
...
@@ -88,15 +92,31 @@
...
@@ -88,15 +92,31 @@
height: 16px;
height: 16px;
}
}
.ant-table {
.ant-table .ant-table-body {
min-height: 378px !important;
overflow: auto;
max-height: 376px!important;
}
}
.ant-table tbody tr:nth-child(even) {
.ant-table tbody {
background: transparent!important;
tr{
&:nth-child(even){
background: transparent!important;
td{
background: #FFF;
}
}
&:nth-child(odd){
background: #FAFAFA !important;
td{
background: #FAFAFA;
}
}
}
}
}
.ant-empty-normal {
.ant-empty-normal {
margin: 1
30
px 0 !important;
margin: 1
44
px 0 !important;
}
}
.avatar{
.avatar{
...
...
src/bu-components/CopyFileModal.jsx
View file @
cb715f0a
...
@@ -250,6 +250,7 @@ class CopyFileModal extends React.Component {
...
@@ -250,6 +250,7 @@ class CopyFileModal extends React.Component {
复制到此目录
复制到此目录
</
Button
>
</
Button
>
]
}
]
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
>
>
<
div
className=
'copy-body'
>
<
div
className=
'copy-body'
>
{
/* 面包屑 */
}
{
/* 面包屑 */
}
...
@@ -283,12 +284,12 @@ class CopyFileModal extends React.Component {
...
@@ -283,12 +284,12 @@ class CopyFileModal extends React.Component {
{
/* 信息列表 */
}
{
/* 信息列表 */
}
{
{
(
folderList
.
length
>
0
)
&&
(
folderList
.
length
>
0
)
&&
<
div
<
div
>
onScrollCapture=
{
()
=>
this
.
handleScrollEvent
()
}
<
div
className=
'folder-list'
style=
{
{
height
:
'320px'
,
overflowY
:
'scroll'
}
}
onScrollCapture=
{
()
=>
this
.
handleScrollEvent
()
}
ref=
{
this
.
fileListRef
}
style=
{
{
height
:
'320px'
,
overflowY
:
'auto'
}
}
>
ref=
{
this
.
fileListRef
}
<
div
className=
'folder-list'
>
>
{
{
folderList
.
map
(
item
=>
{
folderList
.
map
(
item
=>
{
const
{
folderType
,
folderFormat
,
folderSize
}
=
item
;
const
{
folderType
,
folderFormat
,
folderSize
}
=
item
;
...
...
src/bu-components/CopyFileModal.less
View file @
cb715f0a
...
@@ -47,6 +47,7 @@
...
@@ -47,6 +47,7 @@
right: 20px;
right: 20px;
.iconfont {
.iconfont {
color: #BFBFBF;
color: #BFBFBF;
font-size:12px;
}
}
}
}
.file-item__size{
.file-item__size{
...
...
src/bu-components/ManagingMembersModal.jsx
View file @
cb715f0a
...
@@ -297,6 +297,7 @@ class ManagingMembersModal extends React.Component {
...
@@ -297,6 +297,7 @@ class ManagingMembersModal extends React.Component {
title=
{
title
}
title=
{
title
}
width=
{
680
}
width=
{
680
}
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
>
>
<
div
className=
'managing-header'
>
<
div
className=
'managing-header'
>
<
div
className=
'managing-left'
>
<
div
className=
'managing-left'
>
...
...
src/bu-components/ManagingMembersModal.less
View file @
cb715f0a
...
@@ -8,8 +8,9 @@
...
@@ -8,8 +8,9 @@
.tool-tip-left{
.tool-tip-left{
cursor: pointer;
cursor: pointer;
margin-left: 4px;
margin-left: 4px;
width: 14px;
width: 16px;
height: 14px;
height: 16px;
margin-bottom: 2px;
}
}
}
}
...
...
src/bu-components/NonCompliantFileModal.jsx
View file @
cb715f0a
...
@@ -32,6 +32,8 @@ class NonCompliantFileModal extends React.Component {
...
@@ -32,6 +32,8 @@ class NonCompliantFileModal extends React.Component {
onOk=
{
this
.
props
.
onOk
}
onOk=
{
this
.
props
.
onOk
}
maskClosable=
{
false
}
maskClosable=
{
false
}
className=
"prepare-lesson__non-compliant-file-modal"
className=
"prepare-lesson__non-compliant-file-modal"
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
width=
{
560
}
>
>
<
div
className=
"file-list"
>
<
div
className=
"file-list"
>
<
div
className=
"file-list__title"
>
以下文件超出上传限制,无法上传,点击继续上传不会上传以下文件。
</
div
>
<
div
className=
"file-list__title"
>
以下文件超出上传限制,无法上传,点击继续上传不会上传以下文件。
</
div
>
...
...
src/bu-components/PreviewCourseModal.jsx
View file @
cb715f0a
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* @Author: 吴文洁
* @Author: 吴文洁
* @Date: 2020-07-23 14:54:16
* @Date: 2020-07-23 14:54:16
* @LastEditors: wufan
* @LastEditors: wufan
* @LastEditTime: 202
0-12-22 20:29:39
* @LastEditTime: 202
1-02-02 19:32:21
* @Description: 大班直播课预览弹窗
* @Description: 大班直播课预览弹窗
* @Copyright: 杭州杰竞科技有限公司 版权所有
* @Copyright: 杭州杰竞科技有限公司 版权所有
*/
*/
...
@@ -82,6 +82,7 @@ class PreviewCourseModal extends React.Component {
...
@@ -82,6 +82,7 @@ class PreviewCourseModal extends React.Component {
footer=
{
null
}
footer=
{
null
}
maskClosable=
{
false
}
maskClosable=
{
false
}
className=
"preview-live-course-modal"
className=
"preview-live-course-modal"
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
>
>
<
div
className=
"container__wrap"
>
<
div
className=
"container__wrap"
>
<
div
className=
"container"
>
<
div
className=
"container"
>
...
@@ -135,7 +136,7 @@ class PreviewCourseModal extends React.Component {
...
@@ -135,7 +136,7 @@ class PreviewCourseModal extends React.Component {
</
Otherwise
>
</
Otherwise
>
</
Choose
>
</
Choose
>
<
div
className=
"container__introduction"
>
<
div
className=
"container__introduction"
>
<
div
className=
"container__introduction__title"
>
直播简介
</
div
>
<
div
className=
"container__introduction__title"
>
直播
课
简介
</
div
>
<
div
className=
"container__introduction__list editor-box"
>
<
div
className=
"container__introduction__list editor-box"
>
{
{
liveCourseMediaRequests
.
map
((
item
,
index
)
=>
{
liveCourseMediaRequests
.
map
((
item
,
index
)
=>
{
...
...
src/bu-components/PreviewCourseModal.less
View file @
cb715f0a
...
@@ -49,7 +49,8 @@
...
@@ -49,7 +49,8 @@
.title__state {
.title__state {
min-width: 40px;
min-width: 40px;
height: 17px;
height: 17px;
padding: 0 2px;
padding: 0px 8px;
border-radius: 10px;
margin-left: 6px;
margin-left: 6px;
font-size: 12px;
font-size: 12px;
color: #FFF;
color: #FFF;
...
...
src/bu-components/SelectPrepareFileModal.jsx
View file @
cb715f0a
...
@@ -98,7 +98,6 @@ class SelectPrepareFileModal extends React.Component {
...
@@ -98,7 +98,6 @@ class SelectPrepareFileModal extends React.Component {
// 根据当前根节点获取文件列表
// 根据当前根节点获取文件列表
const
{
selectType
}
=
this
.
props
;
const
{
selectType
}
=
this
.
props
;
const
{
query
,
folderList
,
currentRootDisk
}
=
this
.
state
;
const
{
query
,
folderList
,
currentRootDisk
}
=
this
.
state
;
const
{
instId
}
=
window
.
currentUserInstInfo
;
const
_params
=
{
const
_params
=
{
...
query
,
...
query
,
...
params
,
...
params
,
...
@@ -324,21 +323,7 @@ class SelectPrepareFileModal extends React.Component {
...
@@ -324,21 +323,7 @@ class SelectPrepareFileModal extends React.Component {
const
_fileList
=
[...
fileList
];
const
_fileList
=
[...
fileList
];
_fileList
.
map
((
file
,
index
)
=>
{
_fileList
.
map
((
file
,
index
)
=>
{
let
{
size
,
type
,
name
}
=
file
;
let
{
size
,
type
,
name
}
=
file
;
// if (!type) {
// type = getFileTypeByName(name);
// }
// if (type.indexOf('image') > -1 && size > 5 * DEFAULT_SIZE_UNIT) {
// nonCompliantFileList.push(file);
// _fileList.splice(index, 1);
// }
// if (type.indexOf('audio') > -1 && size > 20 * DEFAULT_SIZE_UNIT) {
// nonCompliantFileList.push(file);
// _fileList.splice(index, 1);
// }
// if (type.indexOf('video') > -1 && size > 500 * DEFAULT_SIZE_UNIT) {
// nonCompliantFileList.push(file);
// _fileList.splice(index, 1);
// }
if
(
localFileTypeMap
.
indexOf
(
type
)
>
-
1
&&
size
>
FileVerifyMap
[
type
].
maxSize
*
DEFAULT_SIZE_UNIT
)
{
if
(
localFileTypeMap
.
indexOf
(
type
)
>
-
1
&&
size
>
FileVerifyMap
[
type
].
maxSize
*
DEFAULT_SIZE_UNIT
)
{
nonCompliantFileList
.
push
(
file
);
nonCompliantFileList
.
push
(
file
);
_fileList
.
splice
(
index
,
1
);
_fileList
.
splice
(
index
,
1
);
...
@@ -386,7 +371,6 @@ class SelectPrepareFileModal extends React.Component {
...
@@ -386,7 +371,6 @@ class SelectPrepareFileModal extends React.Component {
const
{
folderPathList
,
currentRootDisk
,
uploadFolderPath
}
=
this
.
state
;
const
{
folderPathList
,
currentRootDisk
,
uploadFolderPath
}
=
this
.
state
;
const
{
scene
}
=
this
.
props
;
const
{
scene
}
=
this
.
props
;
const
{
teacherId
,
instId
}
=
window
.
currentUserInstInfo
;
const
currentFolder
=
folderPathList
[
folderPathList
.
length
-
1
];
const
currentFolder
=
folderPathList
[
folderPathList
.
length
-
1
];
const
{
id
=
null
}
=
uploadFolderPath
||
currentFolder
;
const
{
id
=
null
}
=
uploadFolderPath
||
currentFolder
;
let
{
size
,
type
,
name
}
=
file
;
let
{
size
,
type
,
name
}
=
file
;
...
@@ -395,17 +379,6 @@ class SelectPrepareFileModal extends React.Component {
...
@@ -395,17 +379,6 @@ class SelectPrepareFileModal extends React.Component {
type
=
getFileTypeByName
(
name
)
type
=
getFileTypeByName
(
name
)
}
}
// const params = {
// name,
// resourceId,
// folderSize: size,
// folderFormat: type,
// folderTypeEnum: resourceId ? 'FILE' : 'FOLDER',
// disk: currentRootDisk.disk,
// instId: instId,
// createUser: teacherId ? "TEACHER" : "ADMIN",
// parentId: id
// }
const
params
=
{
const
params
=
{
name
,
name
,
resourceId
,
resourceId
,
...
@@ -552,6 +525,7 @@ class SelectPrepareFileModal extends React.Component {
...
@@ -552,6 +525,7 @@ class SelectPrepareFileModal extends React.Component {
width=
{
680
}
width=
{
680
}
onCancel=
{
this
.
handleClose
}
onCancel=
{
this
.
handleClose
}
className=
"select-prepare-file-modal"
className=
"select-prepare-file-modal"
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
>
>
{
{
// 机构可见磁盘大于1且在选择文件的情况下才显示tabs
// 机构可见磁盘大于1且在选择文件的情况下才显示tabs
...
@@ -595,12 +569,12 @@ class SelectPrepareFileModal extends React.Component {
...
@@ -595,12 +569,12 @@ class SelectPrepareFileModal extends React.Component {
</
div
>
</
div
>
<
Choose
>
<
Choose
>
<
When
condition=
{
!
_
.
isEmpty
(
folderList
)
}
>
<
When
condition=
{
!
_
.
isEmpty
(
folderList
)
}
>
<
div
<
div
>
<
div
className=
"file-list"
onScrollCapture=
{
()
=>
this
.
handleScrollEvent
()
}
onScrollCapture=
{
()
=>
this
.
handleScrollEvent
()
}
style=
{
{
height
:
'320px'
,
overflowY
:
'
scroll
'
}
}
style=
{
{
height
:
'320px'
,
overflowY
:
'
auto
'
}
}
ref=
"fileListRef"
ref=
"fileListRef"
>
>
<
div
className=
"file-list"
>
{
{
folderList
.
map
((
folder
,
index
)
=>
{
folderList
.
map
((
folder
,
index
)
=>
{
const
{
folderType
,
folderSize
,
folderFormat
,
folderName
}
=
folder
;
const
{
folderType
,
folderSize
,
folderFormat
,
folderName
}
=
folder
;
...
...
src/bu-components/SelectPrepareFileModal.less
View file @
cb715f0a
...
@@ -84,9 +84,9 @@
...
@@ -84,9 +84,9 @@
&__size {
&__size {
margin-left: 40px;
margin-left: 40px;
}
}
.iconfont {
.iconfont {
color: #BFBFBF;
color: #BFBFBF;
font-size:12px;
}
}
}
}
}
}
...
...
src/bu-components/ShareLiveModal.jsx
View file @
cb715f0a
...
@@ -109,6 +109,7 @@ class ShareLiveModal extends React.Component {
...
@@ -109,6 +109,7 @@ class ShareLiveModal extends React.Component {
maskClosable=
{
false
}
maskClosable=
{
false
}
className=
"share-live-modal"
className=
"share-live-modal"
onCancel=
{
this
.
props
.
close
}
onCancel=
{
this
.
props
.
close
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
>
>
<
div
className=
"left"
id=
"poster"
>
<
div
className=
"left"
id=
"poster"
>
...
...
src/bu-components/ShowTip.less
View file @
cb715f0a
...
@@ -7,6 +7,7 @@
...
@@ -7,6 +7,7 @@
justify-content: flex-start;
justify-content: flex-start;
align-items: center;
align-items: center;
padding: 0 12px;
padding: 0 12px;
line-height: 32px;
span.icon {
span.icon {
color:#FF9D14;
color:#FF9D14;
line-height: 20px;
line-height: 20px;
...
@@ -14,7 +15,7 @@
...
@@ -14,7 +15,7 @@
p {
p {
color:#666666;
color:#666666;
font-size: 14px;
font-size: 14px;
line-height:2
0
px;
line-height:2
5
px;
margin-left: 12px;
margin-left: 12px;
}
}
}
}
...
...
src/components/CropperModal.tsx
View file @
cb715f0a
...
@@ -111,7 +111,9 @@ const CropperModal = (props: CropperModalProps) => {
...
@@ -111,7 +111,9 @@ const CropperModal = (props: CropperModalProps) => {
确定
确定
</
Button
>,
</
Button
>,
]
}
]
}
onCancel=
{
close
}
>
onCancel=
{
close
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
>
<
Row
>
<
Row
>
<
Col
span=
{
14
}
>
<
Col
span=
{
14
}
>
<
div
className=
"container"
>
<
div
className=
"container"
>
...
...
src/components/DownloadLiveModal.jsx
View file @
cb715f0a
...
@@ -13,7 +13,6 @@ class DownloadLiveModal extends React.Component {
...
@@ -13,7 +13,6 @@ class DownloadLiveModal extends React.Component {
type
:
'pre'
,
type
:
'pre'
,
}
}
}
}
render
()
{
render
()
{
const
{
url
}
=
this
.
props
;
const
{
url
}
=
this
.
props
;
const
{
image
,
tip
,
text
,
type
}
=
this
.
state
;
const
{
image
,
tip
,
text
,
type
}
=
this
.
state
;
...
@@ -25,6 +24,7 @@ class DownloadLiveModal extends React.Component {
...
@@ -25,6 +24,7 @@ class DownloadLiveModal extends React.Component {
onCancel=
{
()
=>
{
onCancel=
{
()
=>
{
this
.
props
.
onCancel
();
this
.
props
.
onCancel
();
}
}
}
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
>
>
<
img
className=
"download-image"
src=
{
image
}
alt=
""
/>
<
img
className=
"download-image"
src=
{
image
}
alt=
""
/>
<
p
className=
"download-tip"
>
{
tip
}
</
p
>
<
p
className=
"download-tip"
>
{
tip
}
</
p
>
...
...
src/components/ImgCutModal.jsx
View file @
cb715f0a
...
@@ -117,6 +117,7 @@ class ImgCutModal extends React.Component {
...
@@ -117,6 +117,7 @@ class ImgCutModal extends React.Component {
visible=
{
visible
}
visible=
{
visible
}
onCancel=
{
onClose
}
onCancel=
{
onClose
}
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
footer=
{
[
footer=
{
[
<
Choose
>
<
Choose
>
<
When
condition=
{
!
needReUpload
}
>
<
When
condition=
{
!
needReUpload
}
>
...
...
src/components/ImgCutModalNew.jsx
View file @
cb715f0a
...
@@ -147,6 +147,7 @@ class ImgCutModalNew extends React.Component {
...
@@ -147,6 +147,7 @@ class ImgCutModalNew extends React.Component {
visible=
{
visible
}
visible=
{
visible
}
onCancel=
{
onClose
}
onCancel=
{
onClose
}
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
footer=
{
[
footer=
{
[
!
needReUpload
?
!
needReUpload
?
<
Button
<
Button
...
...
src/components/MultipleDatePicker.less
View file @
cb715f0a
...
@@ -55,8 +55,7 @@
...
@@ -55,8 +55,7 @@
cursor: pointer;
cursor: pointer;
vertical-align: top;
vertical-align: top;
&:hover {
&:hover {
background: #FFB714;
background: rgba(255, 183, 20,.2);
opacity:0.2;
border-radius:4px;
border-radius:4px;
}
}
&.before-disabled {
&.before-disabled {
...
...
src/components/ShowTips.less
View file @
cb715f0a
...
@@ -7,6 +7,7 @@
...
@@ -7,6 +7,7 @@
justify-content: flex-start;
justify-content: flex-start;
align-items: center;
align-items: center;
padding: 0 12px;
padding: 0 12px;
line-height: 32px;
.icon {
.icon {
color:#FF9D14;
color:#FF9D14;
font-size:14px;
font-size:14px;
...
@@ -14,7 +15,7 @@
...
@@ -14,7 +15,7 @@
p {
p {
color:#666666;
color:#666666;
font-size: 14px;
font-size: 14px;
line-height:2
0
px;
line-height:2
5
px;
margin-left:8px;
margin-left:8px;
}
}
}
}
...
...
src/core/antd.less
View file @
cb715f0a
...
@@ -40,17 +40,6 @@
...
@@ -40,17 +40,6 @@
display: block;
display: block;
}
}
.ant-btn-primary {
text-shadow: none !important;
box-shadow: none !important;
i {
color: #fff !important;
}
span {
color: #fff !important;
}
}
.ant-switch-small:after {
.ant-switch-small:after {
top: 0.3px;
top: 0.3px;
...
@@ -144,6 +133,10 @@
...
@@ -144,6 +133,10 @@
font-size: 14px !important;
font-size: 14px !important;
}
}
.ant-input[disabled] {
background-color: #F0F2F5 !important;
}
.ant-dropdown-link {
.ant-dropdown-link {
line-height: 20px !important;
line-height: 20px !important;
}
}
...
@@ -214,6 +207,9 @@
...
@@ -214,6 +207,9 @@
}
}
}
}
}
}
.ant-table-body {
overflow-y: auto !important;
}
.ant-table-fixed-right .ant-table-fixed {
.ant-table-fixed-right .ant-table-fixed {
border-left: none !important;
border-left: none !important;
...
@@ -221,22 +217,12 @@
...
@@ -221,22 +217,12 @@
}
}
/* 按钮padding改成8px */
.ant-btn {
height: 28px !important;
line-height:20px !important;
font-weight: 400 !important;
border: 1px solid #e8e8e8;
box-shadow: none !important;
}
.ant-input-search-button {
.ant-input-search-button {
height: 32px !important;
height: 32px !important;
}
}
.ant-btn-loading {
padding-left:18px !important;
}
.ant-avatar {
.ant-avatar {
width: 35px;
width: 35px;
...
@@ -298,6 +284,9 @@
...
@@ -298,6 +284,9 @@
.ant-checkbox-wrapper+.ant-checkbox-wrapper {
.ant-checkbox-wrapper+.ant-checkbox-wrapper {
margin-left: 0 !important;
margin-left: 0 !important;
}
}
.ant-checkbox-inner {
border-radius: 2px !important;
}
.ant-menu {
.ant-menu {
.iconfont {
.iconfont {
...
@@ -349,10 +338,7 @@ mr0 {
...
@@ -349,10 +338,7 @@ mr0 {
transform: translate(-8px, -8px) scale(0.7) !important;
transform: translate(-8px, -8px) scale(0.7) !important;
}
}
.ant-input,
.ant-btn {
border-color: @xm-color-border;
}
.ant-select-selection {
.ant-select-selection {
border-color: @xm-color-border !important;
border-color: @xm-color-border !important;
...
@@ -372,18 +358,7 @@ mr0 {
...
@@ -372,18 +358,7 @@ mr0 {
color:#ffb000;
color:#ffb000;
}
}
.ant-btn-primary.ant-btn {
background-color: @xm-color-text-select-primary !important;
border-color: @xm-color-text-select-primary !important;
&:hover {
background-color: #fdb089 !important;
border-color: #fdb089 !important;
}
span {
color: #fff !important;
}
}
.ant-select-open .ant-select-selection {
.ant-select-open .ant-select-selection {
box-shadow: none;
box-shadow: none;
...
@@ -427,11 +402,7 @@ mr0 {
...
@@ -427,11 +402,7 @@ mr0 {
background: rgba(204, 204, 204, 1);
background: rgba(204, 204, 204, 1);
}
}
.ant-modal-footer {
.ant-btn {
font-weight: normal !important;
}
}
.ant-avatar {
.ant-avatar {
background: #e8e8e8;
background: #e8e8e8;
...
@@ -516,12 +487,7 @@ mr0 {
...
@@ -516,12 +487,7 @@ mr0 {
margin: 0 12px;
margin: 0 12px;
}
}
.ant-btn-danger:hover,
.ant-btn-danger:focus {
color: #fff !important;
background-color: #ffb000 !important;
border-color: #ffb000 !important;
}
.ant-modal-confirm-info .ant-modal-confirm-body > .anticon {
.ant-modal-confirm-info .ant-modal-confirm-body > .anticon {
color: #ffb000!important;
color: #ffb000!important;
...
@@ -609,16 +575,6 @@ mr0 {
...
@@ -609,16 +575,6 @@ mr0 {
padding: 16px 24px !important;
padding: 16px 24px !important;
}
}
}
}
.ant-btn-dangerous{
background:#FF4F4F !important;
color:#FFF !important;
border:none !important;
}
.ant-btn-dangerous:hover, .ant-btn-dangerous:focus{
background:#FF4F4F !important;
color:#FFF !important;
border:none !important;
}
.row-dragging {
.row-dragging {
background: #fafafa;
background: #fafafa;
...
@@ -634,15 +590,198 @@ mr0 {
...
@@ -634,15 +590,198 @@ mr0 {
visibility: visible;
visibility: visible;
}
}
//滚动条的公共样式处理
.ant-select-dropdown .rc-virtual-list-scrollbar .rc-virtual-list-scrollbar-thumb{
.ant-select-dropdown .rc-virtual-list-scrollbar .rc-virtual-list-scrollbar-thumb{
background: #D6D6D6 !important;
background: #D6D6D6 !important;
width:6px !important;
height:80px !important;
}
}
.ant-select-dropdown .rc-virtual-list-scrollbar .rc-virtual-list-scrollbar-thumb:hover{
background: #ADADAD !important;
}
//table的公共的样式的处理
.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > thead > tr > .ant-table-cell-fix-right-first::after,
.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > thead > tr > .ant-table-cell-fix-right-first::after,
.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tbody > tr > .ant-table-cell-fix-right-first::after
.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table > tbody > tr > .ant-table-cell-fix-right-first::after
{
{
border-right:none !important;
border-right:none !important;
}
}
.ant-table tbody tr:nth-child(2n) td{
// .ant-table tbody tr:nth-child(2n) td{
background: #FAFAFA !important;
// background: #FAFAFA !important;
}
// }
\ No newline at end of file
.ant-table-thead > tr > th{
font-weight:normal !important;
}
//按钮的样式的公共处理
.ant-btn-loading {
padding-left:18px !important;
}
.ant-input,
.ant-btn {
border-color: @xm-color-border;
}
//普通按钮样式
.ant-btn {
height:28px !important;
font-weight: normal !important;
border: 1px solid #e8e8e8;
box-shadow: none !important;
padding:0px 12px !important;
color:#666 !important;
.span{
line-height:1;
}
&:hover {
border:1px solid rgba(232, 232, 232, 1) !important;
opacity: 0.7;
}
&:focus,
&:active{
color:#C6C6C6 !important;
border:1px solid #C6C6C6 !important;
}
}
//主要按钮样式
.ant-btn-primary.ant-btn {
text-shadow: none !important;
box-shadow: none !important;
i {
color: #fff !important;
}
span {
color: #fff !important;
}
background-color: @xm-color-text-select-primary !important;
border-color: @xm-color-text-select-primary !important;
border:none !important;
&:hover {
background-color: #FFB714 !important;
opacity: 0.8 !important;
}
&:focus,
&:active{
background-color:#FFA100 !important;
}
}
//警示按钮样式
.ant-btn-dangerous{
background:rgba(255, 79, 79, 1) !important;
color:#FFF !important;
border:none !important;
}
.ant-btn-dangerous:hover{
background:rgba(255, 79, 79, 0.7) !important;
color:#FFF !important;
border:none !important;
}
.ant-btn-dangerous:focus,
.ant-btn-dangerous:active{
background:rgba(255, 79, 79,1) !important;
color:#FFF !important;
border:none !important;
}
//disabled的按钮的样式
.ant-btn-primary[disabled], .ant-btn-primary[disabled]:hover, .ant-btn-primary[disabled]:focus, .ant-btn-primary[disabled]:active{
background: #F7F8F9 !important;
border: 1px solid #E8E8E8 !important;
color: #CCCCCC !important;
span{
color: #CCCCCC !important;
}
}
//时间选择器后的按钮样式
.ant-picker-ok{
.ant-btn{
padding:0 8px !important;
}
}
//搜索框后面的按钮样式
.ant-input-search-button{
height:32px !important;
}
.ant-input-search > .ant-input-group > .ant-input-group-addon:last-child .ant-input-search-button{
background: #FFF !important;
border-top:1px solid #dfdfdf !important;
border-right:1px solid #dfdfdf !important;
border-bottom:1px solid #dfdfdf !important;
}
.ant-input-search .ant-input:hover, .ant-input-search .ant-input:focus{
border-color: #ffcb3d;
border: 1px solid #d9d9d9 !important;
box-shadow: none !important;
border-right: 0px !important;
}
// .ant-input-search:focus{
// border-top:1px solid #FFA100 !important;
// border-right:1px solid #FFA100 !important;
// border-bottom:1px solid #FFA100 !important;
// }
.ant-input-search > .ant-input-group > .ant-input-group-addon:last-child .ant-input-search-button span{
color:#bfbfbf !important;
font-size:12px;
}
.ant-modal-footer {
.ant-btn {
font-weight: 400 !important;
}
}
//模态框的样式的公共处理
//删除模态框的样式的的处理
.ant-modal-confirm{
.ant-modal-body{
padding:32px 32px 24px 32px !important;
.ant-modal-confirm-title{
color: rgba(0, 0, 0, 0.85)
}
.ant-modal-confirm-content{
min-height:44px;
color: rgba(0, 0, 0, 0.65)
}
}
}
//普通模态框的样式的处理
.ant-modal{
.ant-modal-title{
color:#333;
font-weight:400;
}
.ant-modal-close-x{
.modal-close-icon{
color:#999;
font-size:12px;
margin-right:6px;
font-weight:400;
}
}
.ant-modal-footer{
padding:10px 24px;
}
}
// 排序小三角
.ant-table-column-sorter {
margin-left: 2px!important;
}
src/core/global.less
View file @
cb715f0a
...
@@ -1278,10 +1278,10 @@ input:focus {
...
@@ -1278,10 +1278,10 @@ input:focus {
margin-right: 16px;
margin-right: 16px;
}
}
.ant-btn-primary.ant-btn:hover {
//
.ant-btn-primary.ant-btn:hover {
border-color: rgba(255, 183, 20, .8) !important;
//
border-color: rgba(255, 183, 20, .8) !important;
background-color: rgba(255, 183, 20, .8) !important;
//
background-color: rgba(255, 183, 20, .8) !important;
}
//
}
.noTitleModal {
.noTitleModal {
.ant-modal-close {
.ant-modal-close {
...
@@ -1320,10 +1320,10 @@ input:focus {
...
@@ -1320,10 +1320,10 @@ input:focus {
display: none !important;
display: none !important;
}
}
.ant-btn.subButton {
//
.ant-btn.subButton {
border: 1px solid #fdb089;
//
border: 1px solid #fdb089;
color: #fdb089;
//
color: #fdb089;
}
//
}
.ant-form-explain-holder[aria-hidden=true] {
.ant-form-explain-holder[aria-hidden=true] {
display: none;
display: none;
...
...
src/core/page.less
View file @
cb715f0a
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
@import './antd.less';
@import './antd.less';
.page {
.page {
position:
absolut
e;
position:
relativ
e;
top: 0px;
top: 0px;
left: 0px;
left: 0px;
right: 0;
right: 0;
...
@@ -78,9 +78,9 @@
...
@@ -78,9 +78,9 @@
margin-left: 16px;
margin-left: 16px;
height: 40px;
height: 40px;
}
}
>.ant-btn {
//
>.ant-btn {
height: 28px!important;
//
height: 28px!important;
}
//
}
*:first-child {
*:first-child {
margin-left: 0px;
margin-left: 0px;
}
}
...
@@ -96,7 +96,7 @@
...
@@ -96,7 +96,7 @@
margin: 8px 16px;
margin: 8px 16px;
}
}
&:last-child{
&:last-child{
margin-bottom: 1
6
px;
margin-bottom: 1
3
px;
}
}
}
}
...
...
src/domains/basic-domain/constants.ts
View file @
cb715f0a
/*
/*
* @Author: 陈剑宇
* @Author: 陈剑宇
* @Date: 2020-05-07 14:43:01
* @Date: 2020-05-07 14:43:01
* @LastEditTime: 2021-0
1-25 20:05:28
* @LastEditTime: 2021-0
2-23 18:13:40
* @LastEditors: zhangleyuan
* @LastEditors: zhangleyuan
* @Description:
* @Description:
* @FilePath: /wheat-web-demo/src/domains/basic-domain/constants.ts
* @FilePath: /wheat-web-demo/src/domains/basic-domain/constants.ts
...
...
src/domains/course-domain/constants.ts
View file @
cb715f0a
...
@@ -2,12 +2,12 @@
...
@@ -2,12 +2,12 @@
* @Author: 吴文洁
* @Author: 吴文洁
* @Date: 2020-08-20 09:21:40
* @Date: 2020-08-20 09:21:40
* @LastEditors: zhangleyuan
* @LastEditors: zhangleyuan
* @LastEditTime: 2021-01-2
5 20:04:20
* @LastEditTime: 2021-01-2
7 19:53:17
* @Description:
* @Description:
* @Copyright: 杭州杰竞科技有限公司 版权所有
* @Copyright: 杭州杰竞科技有限公司 版权所有
*/
*/
import
{
MapInterface
}
from
'@/domains/basic-domain/interface'
import
{
MapInterface
}
from
'@/domains/basic-domain/interface'
const
ENV
:
string
=
process
.
env
.
DEPLOY_ENV
||
'
rc
'
;
const
ENV
:
string
=
process
.
env
.
DEPLOY_ENV
||
'
dev
'
;
const
appIdMap
:
MapInterface
=
{
const
appIdMap
:
MapInterface
=
{
dev
:
'wx3ea60e78ddfa277e'
,
dev
:
'wx3ea60e78ddfa277e'
,
...
...
src/modules/common/DateRangePicker.jsx
View file @
cb715f0a
...
@@ -27,7 +27,7 @@ class DateRangePicker extends React.Component {
...
@@ -27,7 +27,7 @@ class DateRangePicker extends React.Component {
this
.
props
.
onChange
(
date
)
this
.
props
.
onChange
(
date
)
}
}
}
}
{
...
showTime
}
{
...
showTime
}
suffixIcon=
{
<
span
class=
"icon iconfont"
>

</
span
>
}
suffixIcon=
{
<
span
class
Name
=
"icon iconfont"
>

</
span
>
}
/>
/>
)
)
}
}
...
...
src/modules/course-manage/AddLive.jsx
View file @
cb715f0a
...
@@ -187,10 +187,7 @@ class AddLive extends React.Component {
...
@@ -187,10 +187,7 @@ class AddLive extends React.Component {
assistantStoreUserId
assistantStoreUserId
}
}
// liveCourseMediaRequests = liveCourseMediaRequests.length
// ? [...liveCourseMediaRequests]
// : [{ contentType:"INTRO",mediaType: 'TEXT', mediaContent: '', key: window.random_string(16) }, ...liveCourseMediaRequests];
const
addLiveIntroInfo
=
{
const
addLiveIntroInfo
=
{
liveCourseWarmMedia
,
liveCourseWarmMedia
,
needRecord
,
needRecord
,
...
@@ -242,15 +239,15 @@ handleChangeBasicInfo = (field, value) => {
...
@@ -242,15 +239,15 @@ handleChangeBasicInfo = (field, value) => {
});
});
// 批量开始时间改变,结束时间自动同步一致
// 批量开始时间改变,结束时间自动同步一致
if
(
field
===
'startTime'
)
{
//
if (field === 'startTime') {
this
.
setState
({
//
this.setState({
addLiveClassInfo
:
{
//
addLiveClassInfo: {
...
this
.
state
.
addLiveClassInfo
,
//
...this.state.addLiveClassInfo,
[
field
]:
_value
,
//
[field]: _value,
endTime
:
_value
,
//
endTime: _value,
}
//
}
});
//
});
}
//
}
}
}
// 修改简介
// 修改简介
...
@@ -359,9 +356,6 @@ handleChangeBasicInfo = (field, value) => {
...
@@ -359,9 +356,6 @@ handleChangeBasicInfo = (field, value) => {
updateUserId
:
User
.
getUserId
(),
updateUserId
:
User
.
getUserId
(),
liveCourseId
:
id
,
liveCourseId
:
id
,
}
}
// if(params.liveCourseWarmMedia && !params.liveCourseWarmMedia.mediaUrl) {
// delete params.liveCourseWarmMedia
// }
CourseService
.
updateLiveCloudCourse
(
params
).
then
((
res
)
=>
{
CourseService
.
updateLiveCloudCourse
(
params
).
then
((
res
)
=>
{
if
(
res
.
success
){
if
(
res
.
success
){
message
.
success
(
"更新成功"
);
message
.
success
(
"更新成功"
);
...
...
src/modules/course-manage/components/AddLiveBasic.jsx
View file @
cb715f0a
...
@@ -232,17 +232,6 @@ class AddLiveBasic extends React.Component {
...
@@ -232,17 +232,6 @@ class AddLiveBasic extends React.Component {
<
img
src=
{
coverUrl
}
/>
<
img
src=
{
coverUrl
}
/>
</
div
>
</
div
>
<
div
className=
"opt-btns"
>
<
div
className=
"opt-btns"
>
{
/* <input
type="file"
value={fileName} // 避免选择同一文件 value不改变 不触发onChange事件
accept="image/png, image/jpeg, image/bmp, image/jpg"
ref="stagePicInputFile"
style={{display: 'none'}}
onChange={() => { this.setState({
showSelectFileModal: true
}) }}
/> */
}
<
Button
onClick=
{
()
=>
{
<
Button
onClick=
{
()
=>
{
this
.
setState
({
this
.
setState
({
showSelectFileModal
:
true
showSelectFileModal
:
true
...
@@ -252,17 +241,17 @@ class AddLiveBasic extends React.Component {
...
@@ -252,17 +241,17 @@ class AddLiveBasic extends React.Component {
className=
{
`default-btn ${isDefaultCover ? 'disabled' : ''}`
}
className=
{
`default-btn ${isDefaultCover ? 'disabled' : ''}`
}
onClick=
{
this
.
handleResetCoverUrl
}
onClick=
{
this
.
handleResetCoverUrl
}
>
使用默认图
</
span
>
>
使用默认图
</
span
>
<
div
className=
"tips"
>
建议尺寸
690*398
像素,图片支持jpg、jpeg、png格式。
</
div
>
<
div
className=
"tips"
>
建议尺寸
1280*720
像素,图片支持jpg、jpeg、png格式。
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
<
div
className=
"course-catalog"
>
<
div
className=
"course-catalog"
>
<
span
className=
"label"
><
span
className=
"require"
>
*
</
span
>
课程分类:
</
span
>
<
span
className=
"label"
><
span
className=
"require"
>
*
</
span
>
课程分类:
</
span
>
{
pageType
===
'add'
&&
{
pageType
===
'add'
&&
<
Cascader
options=
{
courseCatalogList
}
displayRender=
{
label
=>
label
.
join
(
'-'
)
}
fieldNames=
{
fieldNames
}
onChange=
{
this
.
catalogChange
}
style=
{
{
width
:
240
}
}
placeholder=
"请选择课程分类"
/>
<
Cascader
options=
{
courseCatalogList
}
displayRender=
{
label
=>
label
.
join
(
'-'
)
}
fieldNames=
{
fieldNames
}
onChange=
{
this
.
catalogChange
}
style=
{
{
width
:
240
}
}
placeholder=
"请选择课程分类"
suffixIcon=
{
<
span
className=
"icon iconfont"
style=
{
{
fontSize
:
'12px'
,
color
:
'#BFBFBF'
}
}
>

</
span
>
}
/>
}
}
{
(
pageType
===
'edit'
&&
categoryName
)
&&
{
(
pageType
===
'edit'
&&
categoryName
)
&&
<
Cascader
disabled=
{
!
isEdit
?
true
:
false
}
defaultValue=
{
[
categoryName
]
}
options=
{
courseCatalogList
}
displayRender=
{
label
=>
label
.
join
(
'-'
)
}
fieldNames=
{
fieldNames
}
onChange=
{
this
.
catalogChange
}
style=
{
{
width
:
240
}
}
placeholder=
"请选择课程分类"
/>
<
Cascader
disabled=
{
!
isEdit
?
true
:
false
}
defaultValue=
{
[
categoryName
]
}
options=
{
courseCatalogList
}
displayRender=
{
label
=>
label
.
join
(
'-'
)
}
fieldNames=
{
fieldNames
}
onChange=
{
this
.
catalogChange
}
style=
{
{
width
:
240
}
}
placeholder=
"请选择课程分类"
suffixIcon=
{
<
span
className=
"icon iconfont"
style=
{
{
fontSize
:
'12px'
,
color
:
'#BFBFBF'
}
}
>

</
span
>
}
/>
}
}
</
div
>
</
div
>
<
ImgCutModalNew
<
ImgCutModalNew
...
@@ -303,9 +292,11 @@ class AddLiveBasic extends React.Component {
...
@@ -303,9 +292,11 @@ class AddLiveBasic extends React.Component {
width=
{
1080
}
width=
{
1080
}
visible=
{
visible
}
visible=
{
visible
}
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
onCancel=
{
()
=>
{
onCancel=
{
()
=>
{
this
.
setState
({
visible
:
false
});
this
.
setState
({
visible
:
false
});
}
}
}
}
zIndex=
{
10001
}
footer=
{
[
footer=
{
[
<
Button
<
Button
key=
"back"
key=
"back"
...
...
src/modules/course-manage/components/AddLiveClass.jsx
View file @
cb715f0a
...
@@ -20,7 +20,7 @@ import moment from 'moment';
...
@@ -20,7 +20,7 @@ import moment from 'moment';
import
'./AddLiveClass.less'
;
import
'./AddLiveClass.less'
;
const
defaultTeacherQuery
=
{
const
defaultTeacherQuery
=
{
size
:
1
0
,
size
:
1
5
,
current
:
1
,
current
:
1
,
nickName
:
null
nickName
:
null
}
}
...
@@ -50,7 +50,6 @@ class AddLiveClass extends React.Component {
...
@@ -50,7 +50,6 @@ class AddLiveClass extends React.Component {
}
}
componentWillReceiveProps
(
nextProps
)
{
componentWillReceiveProps
(
nextProps
)
{
if
(
nextProps
.
data
.
assistantStoreUserId
.
sort
().
toString
()
!==
this
.
props
.
data
.
assistantStoreUserId
.
sort
().
toString
())
{
if
(
nextProps
.
data
.
assistantStoreUserId
.
sort
().
toString
()
!==
this
.
props
.
data
.
assistantStoreUserId
.
sort
().
toString
())
{
console
.
log
(
'我在改变'
)
// 获取助教老师列表
// 获取助教老师列表
this
.
getAssistantList
(
1
,
nextProps
.
data
.
assistantStoreUserId
);
this
.
getAssistantList
(
1
,
nextProps
.
data
.
assistantStoreUserId
);
}
}
...
@@ -69,14 +68,12 @@ class AddLiveClass extends React.Component {
...
@@ -69,14 +68,12 @@ class AddLiveClass extends React.Component {
this
.
setState
({
this
.
setState
({
hasNext
,
hasNext
,
teacherList
:
list
,
teacherList
:
list
,
teacherQuery
:{...
_query
}
})
})
});
});
}
}
// 获取助教老师列表
// 获取助教老师列表
getAssistantList
=
(
current
=
1
,
selectList
)
=>
{
getAssistantList
=
(
current
=
1
,
selectList
)
=>
{
console
.
log
(
'zhujiao'
,
current
);
const
{
assistantQuery
,
assistantList
}
=
this
.
state
;
const
{
assistantQuery
,
assistantList
}
=
this
.
state
;
const
{
assistantStoreUserId
}
=
this
.
props
.
data
;
const
{
assistantStoreUserId
}
=
this
.
props
.
data
;
const
idList
=
selectList
?
selectList
:
assistantStoreUserId
;
const
idList
=
selectList
?
selectList
:
assistantStoreUserId
;
...
@@ -95,6 +92,7 @@ class AddLiveClass extends React.Component {
...
@@ -95,6 +92,7 @@ class AddLiveClass extends React.Component {
this
.
setState
({
this
.
setState
({
assistantHasNext
:
hasNext
,
assistantHasNext
:
hasNext
,
assistantList
:
list
,
assistantList
:
list
,
assistantQuery
:{...
_query
}
})
})
});
});
}
}
...
@@ -103,13 +101,15 @@ class AddLiveClass extends React.Component {
...
@@ -103,13 +101,15 @@ class AddLiveClass extends React.Component {
handleScrollTeacherList
=
(
e
)
=>
{
handleScrollTeacherList
=
(
e
)
=>
{
const
{
hasNext
}
=
this
.
state
;
const
{
hasNext
}
=
this
.
state
;
const
container
=
e
.
target
;
const
container
=
e
.
target
;
//判定元素是否滚动到底部
const
scrollToBottom
=
container
&&
container
.
scrollHeight
<=
container
.
clientHeight
+
container
.
scrollTop
;
const
scrollToBottom
=
container
&&
container
.
scrollHeight
<=
container
.
clientHeight
+
container
.
scrollTop
;
if
(
scrollToBottom
&&
hasNext
)
{
if
(
scrollToBottom
&&
hasNext
)
{
const
{
teacherQuery
}
=
this
.
state
;
const
{
teacherQuery
}
=
this
.
state
;
let
_teacherQuery
=
teacherQuery
;
let
_teacherQuery
=
teacherQuery
;
_teacherQuery
.
current
=
_teacherQuery
.
current
+
1
_teacherQuery
.
current
=
_teacherQuery
.
current
+
1
this
.
setState
({
this
.
setState
({
assistant
Query
:{...
_teacherQuery
}
teacher
Query
:{...
_teacherQuery
}
},()
=>
{
this
.
getTeacherList
(
_teacherQuery
.
current
)})
},()
=>
{
this
.
getTeacherList
(
_teacherQuery
.
current
)})
}
}
}
}
...
@@ -118,6 +118,8 @@ class AddLiveClass extends React.Component {
...
@@ -118,6 +118,8 @@ class AddLiveClass extends React.Component {
handleScrollAssistantList
=
(
e
)
=>
{
handleScrollAssistantList
=
(
e
)
=>
{
const
{
assistantHasNext
}
=
this
.
state
;
const
{
assistantHasNext
}
=
this
.
state
;
const
container
=
e
.
target
;
const
container
=
e
.
target
;
//判定元素是否滚动到底部
const
scrollToBottom
=
container
&&
container
.
scrollHeight
<=
container
.
clientHeight
+
container
.
scrollTop
;
const
scrollToBottom
=
container
&&
container
.
scrollHeight
<=
container
.
clientHeight
+
container
.
scrollTop
;
if
(
scrollToBottom
&&
assistantHasNext
)
{
if
(
scrollToBottom
&&
assistantHasNext
)
{
const
{
assistantQuery
}
=
this
.
state
;
const
{
assistantQuery
}
=
this
.
state
;
...
@@ -192,27 +194,29 @@ class AddLiveClass extends React.Component {
...
@@ -192,27 +194,29 @@ class AddLiveClass extends React.Component {
<
div
className=
"hour"
id=
"hour"
>
<
div
className=
"hour"
id=
"hour"
>
<
span
className=
"label"
><
span
className=
"require"
>
*
</
span
>
上课时间:
</
span
>
<
span
className=
"label"
><
span
className=
"require"
>
*
</
span
>
上课时间:
</
span
>
<
TimePicker
<
TimePicker
className=
"time-picker"
format=
"HH:mm"
format=
"HH:mm"
value=
{
startTime
?
moment
(
startTime
)
:
null
}
value=
{
startTime
?
moment
(
startTime
)
:
null
}
placeholder=
"开始时间"
placeholder=
"开始时间"
showNow=
{
false
}
style=
{
{
width
:
100
,
minWidth
:
100
}
}
style=
{
{
width
:
100
,
minWidth
:
100
}
}
onChange=
{
(
time
)
=>
{
onSelect=
{
(
time
)
=>
{
console
.
log
(
'startTime'
,
time
);
this
.
props
.
onChange
(
'startTime'
,
time
);
this
.
props
.
onChange
(
'startTime'
,
time
);
}
}
}
}
getPopupContainer=
{
()
=>
getPopupContainer=
{
()
=>
document
.
getElementById
(
"hour"
)
document
.
getElementById
(
"hour"
)
}
}
/>
~
/>
~
<
TimePicker
<
TimePicker
className=
"time-picker"
format=
"HH:mm"
format=
"HH:mm"
value=
{
endTime
?
moment
(
endTime
)
:
null
}
value=
{
endTime
?
moment
(
endTime
)
:
null
}
placeholder=
"结束时间"
placeholder=
"结束时间"
showNow=
{
false
}
style=
{
{
width
:
100
,
minWidth
:
100
}
}
style=
{
{
width
:
100
,
minWidth
:
100
}
}
on
Change=
{
(
time
)
=>
{
on
Select=
{
(
time
)
=>
{
this
.
props
.
onChange
(
'endTime'
,
time
)
this
.
props
.
onChange
(
'endTime'
,
time
)
}
}
}
}
getPopupContainer=
{
()
=>
getPopupContainer=
{
()
=>
document
.
getElementById
(
"hour"
)
document
.
getElementById
(
"hour"
)
}
}
...
@@ -247,7 +251,8 @@ class AddLiveClass extends React.Component {
...
@@ -247,7 +251,8 @@ class AddLiveClass extends React.Component {
getPopupContainer=
{
()
=>
getPopupContainer=
{
()
=>
document
.
getElementById
(
"time"
)
document
.
getElementById
(
"time"
)
}
}
onChange=
{
(
time
)
=>
{
this
.
props
.
onChange
(
'timeHorizonStart'
,
time
)
}
}
onSelect=
{
(
time
)
=>
{
this
.
props
.
onChange
(
'timeHorizonStart'
,
time
)
}
}
showNow=
{
false
}
/>
/>
<
TimePicker
<
TimePicker
disabled=
{
!
isEdit
}
disabled=
{
!
isEdit
}
...
@@ -259,7 +264,8 @@ class AddLiveClass extends React.Component {
...
@@ -259,7 +264,8 @@ class AddLiveClass extends React.Component {
getPopupContainer=
{
()
=>
getPopupContainer=
{
()
=>
document
.
getElementById
(
"time"
)
document
.
getElementById
(
"time"
)
}
}
onChange=
{
(
time
)
=>
{
this
.
props
.
onChange
(
'timeHorizonEnd'
,
time
)
}
}
onSelect=
{
(
time
)
=>
{
this
.
props
.
onChange
(
'timeHorizonEnd'
,
time
)
}
}
showNow=
{
false
}
/>
/>
</
div
>
</
div
>
...
@@ -269,19 +275,21 @@ class AddLiveClass extends React.Component {
...
@@ -269,19 +275,21 @@ class AddLiveClass extends React.Component {
<
span
className=
"label"
><
span
className=
"require"
>
*
</
span
>
讲师:
</
span
>
<
span
className=
"label"
><
span
className=
"require"
>
*
</
span
>
讲师:
</
span
>
<
Select
<
Select
placeholder=
"请选择讲师"
placeholder=
"请选择讲师"
// key={teacherName}
// defaultValue={teacherName}
value=
{
teacherName
}
value=
{
teacherName
}
style=
{
{
width
:
240
,
marginTop
:
6
}
}
style=
{
{
width
:
240
,
marginTop
:
6
}
}
disabled=
{
!
isEdit
?
true
:
false
}
disabled=
{
!
isEdit
?
true
:
false
}
showSearch
showSearch
allowClear
filterOption=
{
(
input
,
option
)
=>
option
}
filterOption=
{
(
input
,
option
)
=>
option
}
onPopupScroll=
{
this
.
handleScrollTeacherList
}
onPopupScroll=
{
this
.
handleScrollTeacherList
}
suffixIcon=
{
<
span
className=
"icon iconfont"
style=
{
{
fontSize
:
'12px'
,
color
:
'#BFBFBF'
}
}
>

</
span
>
}
onChange=
{
(
value
,
option
)
=>
{
onChange=
{
(
value
,
option
)
=>
{
console
.
log
(
"value"
,
value
);
if
(
option
){
this
.
props
.
onChange
(
'teacherId'
,
value
,
'teacherType'
,
option
.
children
)
this
.
props
.
onChange
(
'teacherId'
,
value
,
'teacherType'
,
option
.
children
)
}
else
{
this
.
props
.
onChange
(
'teacherId'
,
value
,
'teacherType'
,
""
)
}
}
}
}
}
onSearch=
{
(
value
)
=>
{
onSearch=
{
(
value
)
=>
{
teacherQuery
.
nickName
=
value
teacherQuery
.
nickName
=
value
this
.
setState
({
this
.
setState
({
...
@@ -290,6 +298,18 @@ class AddLiveClass extends React.Component {
...
@@ -290,6 +298,18 @@ class AddLiveClass extends React.Component {
this
.
getTeacherList
()
this
.
getTeacherList
()
})
})
}
}
}
}
onClear
={(
value
)=
>
{
this
.
setState
({
teacherQuery
:{
size
:
15
,
current
:
1
,
nickName
:
null
}
},
()
=>
{
this
.
getTeacherList
()
})
}
}
getPopupContainer=
{
()
=>
getPopupContainer=
{
()
=>
document
.
getElementById
(
"teacher"
)
document
.
getElementById
(
"teacher"
)
}
}
...
@@ -320,8 +340,14 @@ class AddLiveClass extends React.Component {
...
@@ -320,8 +340,14 @@ class AddLiveClass extends React.Component {
filterOption=
{
(
input
,
option
)
=>
option
}
filterOption=
{
(
input
,
option
)
=>
option
}
onPopupScroll=
{
this
.
handleScrollAssistantList
}
onPopupScroll=
{
this
.
handleScrollAssistantList
}
onChange=
{
(
value
,
option
)
=>
{
onChange=
{
(
value
,
option
)
=>
{
console
.
log
(
'option'
,
option
);
if
(
!
option
.
length
){
this
.
props
.
onChange
(
'assistant'
,
value
,
'assistantType'
,
option
)
assistantQuery
.
nickName
=
""
this
.
setState
({
assistantQuery
},()
=>
this
.
props
.
onChange
(
'assistant'
,
value
,
'assistantType'
,
option
)
)
}
else
{
this
.
props
.
onChange
(
'assistant'
,
value
,
'assistantType'
,
option
)
}
}
}
}
}
onSearch=
{
(
value
)
=>
{
onSearch=
{
(
value
)
=>
{
assistantQuery
.
nickName
=
value
assistantQuery
.
nickName
=
value
...
@@ -331,6 +357,14 @@ class AddLiveClass extends React.Component {
...
@@ -331,6 +357,14 @@ class AddLiveClass extends React.Component {
this
.
getAssistantList
()
this
.
getAssistantList
()
})
})
}
}
}
}
onClear
={(
value
)=
>
{
assistantQuery
.
nickName
=
""
this
.
setState
({
assistantQuery
},
()
=>
{
this
.
getAssistantList
()
})
}
}
getPopupContainer=
{
()
=>
getPopupContainer=
{
()
=>
document
.
getElementById
(
"assistant-teacher"
)
document
.
getElementById
(
"assistant-teacher"
)
}
}
...
...
src/modules/course-manage/components/AddLiveClass.less
View file @
cb715f0a
...
@@ -192,7 +192,7 @@
...
@@ -192,7 +192,7 @@
.tip-icon{
.tip-icon{
color:#BFBFBF;
color:#BFBFBF;
}
}
}
}
.iconfont {
.iconfont {
color: #bfbfbf;
color: #bfbfbf;
...
@@ -204,4 +204,9 @@
...
@@ -204,4 +204,9 @@
.multiple-calendar {
.multiple-calendar {
line-height: 40px;
line-height: 40px;
}
}
.ant-picker-dropdown{
.ant-picker-footer{
display:none !important;
}
}
}
}
\ No newline at end of file
src/modules/course-manage/components/AddLiveIntro.jsx
View file @
cb715f0a
...
@@ -140,6 +140,7 @@ class AddLiveIntro extends React.Component {
...
@@ -140,6 +140,7 @@ class AddLiveIntro extends React.Component {
handleChangeIntro
=
(
index
,
value
,
length
)
=>
{
handleChangeIntro
=
(
index
,
value
,
length
)
=>
{
const
{
liveCourseMediaRequests
}
=
this
.
props
.
data
;
const
{
liveCourseMediaRequests
}
=
this
.
props
.
data
;
console
.
log
(
'index'
,
index
);
liveCourseMediaRequests
[
index
].
mediaContent
=
value
;
liveCourseMediaRequests
[
index
].
mediaContent
=
value
;
liveCourseMediaRequests
[
index
].
mediaContentLength
=
length
liveCourseMediaRequests
[
index
].
mediaContentLength
=
length
this
.
props
.
onChange
(
'liveCourseMediaRequests'
,
liveCourseMediaRequests
);
this
.
props
.
onChange
(
'liveCourseMediaRequests'
,
liveCourseMediaRequests
);
...
@@ -263,7 +264,7 @@ class AddLiveIntro extends React.Component {
...
@@ -263,7 +264,7 @@ class AddLiveIntro extends React.Component {
<
div
className=
"introduce"
>
<
div
className=
"introduce"
>
<
span
className=
"label"
>
直播简介:
</
span
>
<
span
className=
"label"
>
直播
课
简介:
</
span
>
<
div
className=
"content"
>
<
div
className=
"content"
>
<
div
className=
"intro-list"
>
<
div
className=
"intro-list"
>
{
{
...
...
src/modules/course-manage/components/LiveCourseFilter.jsx
View file @
cb715f0a
...
@@ -9,9 +9,6 @@
...
@@ -9,9 +9,6 @@
import
React
from
'react'
;
import
React
from
'react'
;
import
{
withRouter
}
from
'react-router-dom'
;
import
{
withRouter
}
from
'react-router-dom'
;
import
{
Row
,
Col
,
Input
,
Select
,
Tooltip
}
from
'antd'
;
import
{
Row
,
Col
,
Input
,
Select
,
Tooltip
}
from
'antd'
;
import
Bus
from
'@/core/bus'
;
import
TeacherSearchSelect
from
"@/modules/common/TeacherSearchSelect"
;
import
RangePicker
from
"@/modules/common/DateRangePicker"
;
import
RangePicker
from
"@/modules/common/DateRangePicker"
;
import
moment
from
'moment'
;
import
moment
from
'moment'
;
import
StoreService
from
"@/domains/store-domain/storeService"
;
import
StoreService
from
"@/domains/store-domain/storeService"
;
...
@@ -71,7 +68,11 @@ class LiveCourseFilter extends React.Component {
...
@@ -71,7 +68,11 @@ class LiveCourseFilter extends React.Component {
const
scrollToBottom
=
container
&&
container
.
scrollHeight
<=
container
.
clientHeight
+
container
.
scrollTop
;
const
scrollToBottom
=
container
&&
container
.
scrollHeight
<=
container
.
clientHeight
+
container
.
scrollTop
;
if
(
scrollToBottom
&&
hasNext
)
{
if
(
scrollToBottom
&&
hasNext
)
{
const
{
teacherQuery
}
=
this
.
state
;
const
{
teacherQuery
}
=
this
.
state
;
this
.
getTeacherList
(
teacherQuery
.
current
+
1
);
let
_teacherQuery
=
teacherQuery
;
_teacherQuery
.
current
=
_teacherQuery
.
current
+
1
this
.
setState
({
teacherQuery
:{...
_teacherQuery
}
},()
=>
{
this
.
getTeacherList
(
_teacherQuery
.
current
)})
}
}
}
}
...
@@ -164,6 +165,8 @@ class LiveCourseFilter extends React.Component {
...
@@ -164,6 +165,8 @@ class LiveCourseFilter extends React.Component {
onChange=
{
(
e
)
=>
{
this
.
handleChangeQuery
(
'courseName'
,
e
.
target
.
value
)}
}
onChange=
{
(
e
)
=>
{
this
.
handleChangeQuery
(
'courseName'
,
e
.
target
.
value
)}
}
onSearch=
{
()
=>
{
this
.
props
.
onChange
(
this
.
state
.
query
)
}
}
onSearch=
{
()
=>
{
this
.
props
.
onChange
(
this
.
state
.
query
)
}
}
style=
{
{
width
:
"calc(100% - 70px)"
}
}
style=
{
{
width
:
"calc(100% - 70px)"
}
}
className=
"search-input"
enterButton=
{
<
span
className=
"icon iconfont"
>

</
span
>
}
/>
/>
</
div
>
</
div
>
<
div
className=
"search-condition__item"
>
<
div
className=
"search-condition__item"
>
...
@@ -187,6 +190,7 @@ class LiveCourseFilter extends React.Component {
...
@@ -187,6 +190,7 @@ class LiveCourseFilter extends React.Component {
allowClear
allowClear
filterOption=
{
(
input
,
option
)
=>
option
}
filterOption=
{
(
input
,
option
)
=>
option
}
onPopupScroll=
{
this
.
handleScrollTeacherList
}
onPopupScroll=
{
this
.
handleScrollTeacherList
}
suffixIcon=
{
<
span
className=
"icon iconfont"
style=
{
{
fontSize
:
'12px'
,
color
:
'#BFBFBF'
}
}
>

</
span
>
}
value=
{
teacherId
}
value=
{
teacherId
}
onChange=
{
(
value
)
=>
{
onChange=
{
(
value
)
=>
{
this
.
handleChangeQuery
(
'teacherId'
,
value
);
this
.
handleChangeQuery
(
'teacherId'
,
value
);
...
@@ -229,6 +233,7 @@ class LiveCourseFilter extends React.Component {
...
@@ -229,6 +233,7 @@ class LiveCourseFilter extends React.Component {
allowClear=
{
true
}
allowClear=
{
true
}
value=
{
courseState
}
value=
{
courseState
}
onChange=
{
(
value
)
=>
{
this
.
handleChangeQuery
(
'courseState'
,
value
)
}
}
onChange=
{
(
value
)
=>
{
this
.
handleChangeQuery
(
'courseState'
,
value
)
}
}
suffixIcon=
{
<
span
className=
"icon iconfont"
style=
{
{
fontSize
:
'12px'
,
color
:
'#BFBFBF'
}
}
>

</
span
>
}
>
>
<
Option
value=
"UN_START"
>
待开课
</
Option
>
<
Option
value=
"UN_START"
>
待开课
</
Option
>
<
Option
value=
"STARTING"
>
上课中
</
Option
>
<
Option
value=
"STARTING"
>
上课中
</
Option
>
...
@@ -246,6 +251,7 @@ class LiveCourseFilter extends React.Component {
...
@@ -246,6 +251,7 @@ class LiveCourseFilter extends React.Component {
allowClear=
{
true
}
allowClear=
{
true
}
value=
{
shelfState
}
value=
{
shelfState
}
onChange=
{
(
value
)
=>
{
this
.
handleChangeQuery
(
'shelfState'
,
value
)
}
}
onChange=
{
(
value
)
=>
{
this
.
handleChangeQuery
(
'shelfState'
,
value
)
}
}
suffixIcon=
{
<
span
className=
"icon iconfont"
style=
{
{
fontSize
:
'12px'
,
color
:
'#BFBFBF'
}
}
>

</
span
>
}
>
>
<
Option
value=
"YES"
>
开启
</
Option
>
<
Option
value=
"YES"
>
开启
</
Option
>
<
Option
value=
"NO"
>
关闭
</
Option
>
<
Option
value=
"NO"
>
关闭
</
Option
>
...
...
src/modules/course-manage/components/LiveCourseList.jsx
View file @
cb715f0a
...
@@ -262,7 +262,8 @@ class LiveCourseList extends React.Component {
...
@@ -262,7 +262,8 @@ class LiveCourseList extends React.Component {
<
Tooltip
title=
{
<
div
>
开启后,用户可在店铺内查看到此课程。若课程“未成功开课”,则系统会自动“关闭”店铺展示。
<
br
/>
关闭后,店铺内不再展示此课程,但用户仍可通过分享的海报/链接查看此课程。
</
div
>
}
><
i
className=
"icon iconfont"
style=
{
{
marginLeft
:
'5px'
,
cursor
:
'pointer'
,
color
:
'#bfbfbf'
,
fontSize
:
'14px'
}
}
>

</
i
></
Tooltip
>
<
Tooltip
title=
{
<
div
>
开启后,用户可在店铺内查看到此课程。若课程“未成功开课”,则系统会自动“关闭”店铺展示。
<
br
/>
关闭后,店铺内不再展示此课程,但用户仍可通过分享的海报/链接查看此课程。
</
div
>
}
><
i
className=
"icon iconfont"
style=
{
{
marginLeft
:
'5px'
,
cursor
:
'pointer'
,
color
:
'#bfbfbf'
,
fontSize
:
'14px'
}
}
>

</
i
></
Tooltip
>
</
span
>,
</
span
>,
width
:
"9%"
,
width
:
"9%"
,
dataIndex
:
"courseware"
,
key
:
"shelfState"
,
dataIndex
:
"shelfState"
,
render
:
(
val
,
item
,
index
)
=>
{
render
:
(
val
,
item
,
index
)
=>
{
return
(
return
(
<
Switch
defaultChecked=
{
item
.
shelfState
===
"YES"
?
true
:
false
}
onChange=
{
()
=>
this
.
changeShelfState
(
item
)
}
/>
<
Switch
defaultChecked=
{
item
.
shelfState
===
"YES"
?
true
:
false
}
onChange=
{
()
=>
this
.
changeShelfState
(
item
)
}
/>
...
@@ -491,12 +492,14 @@ class LiveCourseList extends React.Component {
...
@@ -491,12 +492,14 @@ class LiveCourseList extends React.Component {
}
}
handleDelete
=
(
record
)
=>
{
handleDelete
=
(
record
)
=>
{
return
confirm
({
return
confirm
({
title
:
'你确定要删除直播课'
,
title
:
'你确定要删除直播课
?
'
,
content
:
'删除后,用户将不能观看直播课/回放'
,
content
:
'删除后,用户将不能观看直播课/回放'
,
icon
:
<
span
className=
"icon iconfont default-confirm-icon"
>

</
span
>,
icon
:
<
span
className=
"icon iconfont default-confirm-icon"
>

</
span
>,
okText
:
'删除'
,
okText
:
'删除'
,
okType
:
'danger'
,
okType
:
'danger'
,
cancelText
:
'取消'
,
cancelText
:
'取消'
,
width
:
440
,
height
:
188
,
onOk
:
()
=>
{
onOk
:
()
=>
{
this
.
deleteConfirm
(
record
);
this
.
deleteConfirm
(
record
);
}
}
...
...
src/modules/course-manage/components/LiveCourseList.less
View file @
cb715f0a
.live-course-list {
.live-course-list {
margin-top: 1
6
px;
margin-top: 1
2
px;
.record__item {
.record__item {
display: flex;
display: flex;
align-items: center;
align-items: center;
...
@@ -128,12 +128,6 @@
...
@@ -128,12 +128,6 @@
}
}
}
}
.ant-tooltip{
max-width:700px !important;
}
.ant-tooltip-inner{
max-width:700px !important;
}
.live-course-more-menu {
.live-course-more-menu {
background: white;
background: white;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
...
...
src/modules/course-manage/components/liveCourseOpt.less
View file @
cb715f0a
...
@@ -10,6 +10,6 @@
...
@@ -10,6 +10,6 @@
}
}
.ant-btn {
.ant-btn {
margin-right:
12
px;
margin-right:
8
px;
}
}
}
}
\ No newline at end of file
src/modules/course-manage/modal/AbnormalModal.jsx
View file @
cb715f0a
...
@@ -55,6 +55,7 @@ class AbnormalModal extends React.Component {
...
@@ -55,6 +55,7 @@ class AbnormalModal extends React.Component {
footer=
{
null
}
footer=
{
null
}
onCancel=
{
onClose
}
onCancel=
{
onClose
}
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
className=
"abnormal-modal"
className=
"abnormal-modal"
>
>
{
content
}
{
content
}
...
...
src/modules/course-manage/modal/AccountChargeModal.jsx
View file @
cb715f0a
...
@@ -2,8 +2,8 @@
...
@@ -2,8 +2,8 @@
* @Description: 云课堂充值
* @Description: 云课堂充值
* @Author: zhangyi
* @Author: zhangyi
* @Date: 2020-05-09 15:02:39
* @Date: 2020-05-09 15:02:39
* @LastEditors:
wuf
an
* @LastEditors:
zhangleyu
an
* @LastEditTime: 202
0-12-22 20:30:26
* @LastEditTime: 202
1-02-01 13:59:54
*/
*/
import
React
from
'react'
;
import
React
from
'react'
;
import
{
Modal
,
message
,
Form
,
InputNumber
,
Row
,
Col
,
Button
}
from
"antd"
;
import
{
Modal
,
message
,
Form
,
InputNumber
,
Row
,
Col
,
Button
}
from
"antd"
;
...
@@ -287,6 +287,7 @@ class AccountChargeModal extends React.Component {
...
@@ -287,6 +287,7 @@ class AccountChargeModal extends React.Component {
width=
{
550
}
width=
{
550
}
footer=
{
null
}
footer=
{
null
}
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
className=
"account-charge-modal"
className=
"account-charge-modal"
onCancel=
{
()
=>
{
onCancel=
{
()
=>
{
this
.
handleCancel
();
this
.
handleCancel
();
...
...
src/modules/course-manage/modal/AccountChargeRecords.jsx
View file @
cb715f0a
...
@@ -79,6 +79,7 @@ class AccountChargeRecords extends React.Component{
...
@@ -79,6 +79,7 @@ class AccountChargeRecords extends React.Component{
width=
{
680
}
width=
{
680
}
footer=
{
null
}
footer=
{
null
}
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
onCancel=
{
()
=>
{
onCancel=
{
()
=>
{
this
.
props
.
close
();
this
.
props
.
close
();
}
}
}
}
...
...
src/modules/course-manage/modal/ChargeArgeement.jsx
View file @
cb715f0a
...
@@ -47,6 +47,7 @@ class ChargeArgeement extends React.Component {
...
@@ -47,6 +47,7 @@ class ChargeArgeement extends React.Component {
className=
"charge-agreement-modal"
className=
"charge-agreement-modal"
footer=
{
null
}
footer=
{
null
}
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
onCancel=
{
()
=>
{
onCancel=
{
()
=>
{
this
.
props
.
close
();
this
.
props
.
close
();
}
}
}
}
...
...
src/modules/course-manage/modal/ChargeExplainModal.jsx
View file @
cb715f0a
...
@@ -31,6 +31,7 @@ function ChargeExplainModal(props) {
...
@@ -31,6 +31,7 @@ function ChargeExplainModal(props) {
className=
"charge-explain-modal"
className=
"charge-explain-modal"
width=
{
880
}
width=
{
880
}
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
onCancel=
{
()
=>
{
onCancel=
{
()
=>
{
props
.
close
();
props
.
close
();
}
}
}
}
...
...
src/modules/course-manage/modal/ChargingDetailModal.jsx
View file @
cb715f0a
...
@@ -107,6 +107,7 @@ class ChargingDetailModal extends React.Component {
...
@@ -107,6 +107,7 @@ class ChargingDetailModal extends React.Component {
visible=
{
true
}
visible=
{
true
}
width=
{
680
}
width=
{
680
}
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
className=
"charging-detail-modal"
className=
"charging-detail-modal"
footer=
{
null
}
footer=
{
null
}
onCancel=
{
()
=>
{
onCancel=
{
()
=>
{
...
...
src/modules/course-manage/modal/CheckBalanceModal.jsx
View file @
cb715f0a
...
@@ -47,6 +47,7 @@ class CheckBalanceModal extends React.Component {
...
@@ -47,6 +47,7 @@ class CheckBalanceModal extends React.Component {
width=
{
550
}
width=
{
550
}
title=
"余额不足"
title=
"余额不足"
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
onCancel=
{
()
=>
{
onCancel=
{
()
=>
{
this
.
props
.
close
();
this
.
props
.
close
();
}
}
}
}
...
...
src/modules/course-manage/modal/ClassRecordModal.jsx
View file @
cb715f0a
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
* @Author: zhangyi
* @Author: zhangyi
* @Date: 2020-05-12 09:43:48
* @Date: 2020-05-12 09:43:48
* @LastEditors: zhangleyuan
* @LastEditors: zhangleyuan
* @LastEditTime: 202
0-12-28 15:19:18
* @LastEditTime: 202
1-02-01 14:00:19
*/
*/
import
React
,
{
useState
,
useEffect
}
from
"react"
;
import
React
,
{
useState
,
useEffect
}
from
"react"
;
...
@@ -235,6 +235,7 @@ class ClassRecordModal extends React.Component {
...
@@ -235,6 +235,7 @@ class ClassRecordModal extends React.Component {
footer=
{
null
}
footer=
{
null
}
width=
{
680
}
width=
{
680
}
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
className=
"class-record-modal"
className=
"class-record-modal"
onCancel=
{
()
=>
{
onCancel=
{
()
=>
{
this
.
props
.
close
();
this
.
props
.
close
();
...
...
src/modules/course-manage/modal/LackConsumeStudentModal.jsx
View file @
cb715f0a
...
@@ -24,6 +24,7 @@ class LackConsumeStudentModal extends React.Component {
...
@@ -24,6 +24,7 @@ class LackConsumeStudentModal extends React.Component {
okText=
"继续保存"
okText=
"继续保存"
onOk=
{
onOk
}
onOk=
{
onOk
}
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
onCancel=
{
onClose
}
onCancel=
{
onClose
}
className=
"lack-consume-student-modal"
className=
"lack-consume-student-modal"
>
>
...
...
src/modules/course-manage/modal/LiveStudentListModal.jsx
View file @
cb715f0a
...
@@ -289,6 +289,7 @@ class LiveStudentListModal extends React.Component {
...
@@ -289,6 +289,7 @@ class LiveStudentListModal extends React.Component {
width=
{
680
}
width=
{
680
}
footer=
{
null
}
footer=
{
null
}
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
className=
"live-student-list-modal"
className=
"live-student-list-modal"
onCancel=
{
this
.
props
.
close
}
onCancel=
{
this
.
props
.
close
}
>
>
...
...
src/modules/course-manage/modal/ManageCoursewareModal.jsx
View file @
cb715f0a
...
@@ -304,6 +304,7 @@ class ManageCoursewareModal extends React.Component {
...
@@ -304,6 +304,7 @@ class ManageCoursewareModal extends React.Component {
title=
"课件管理"
title=
"课件管理"
footer=
{
null
}
footer=
{
null
}
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
className=
"manage-courseware-modal"
className=
"manage-courseware-modal"
width=
{
_
.
isEmpty
(
_list
)
?
680
:
800
}
width=
{
_
.
isEmpty
(
_list
)
?
680
:
800
}
onCancel=
{
()
=>
{
onCancel=
{
()
=>
{
...
...
src/modules/course-manage/modal/PlayBackRecordModal.jsx
View file @
cb715f0a
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
* @Author: zhangyi
* @Author: zhangyi
* @Date: 2020-05-12 09:43:48
* @Date: 2020-05-12 09:43:48
* @LastEditors: zhangleyuan
* @LastEditors: zhangleyuan
* @LastEditTime: 202
0-12-09 16:23:05
* @LastEditTime: 202
1-02-01 14:00:36
*/
*/
import
React
,
{
useState
,
useEffect
}
from
"react"
;
import
React
,
{
useState
,
useEffect
}
from
"react"
;
...
@@ -179,6 +179,7 @@ class PlayBackRecordModal extends React.Component {
...
@@ -179,6 +179,7 @@ class PlayBackRecordModal extends React.Component {
width=
{
680
}
width=
{
680
}
visible=
{
true
}
visible=
{
true
}
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
footer=
{
null
}
footer=
{
null
}
onCancel=
{
()
=>
{
onCancel=
{
()
=>
{
this
.
props
.
close
();
this
.
props
.
close
();
...
...
src/modules/course-manage/modal/PreviewCourseModal.jsx
View file @
cb715f0a
/*
/*
* @Author: 吴文洁
* @Author: 吴文洁
* @Date: 2020-07-23 14:54:16
* @Date: 2020-07-23 14:54:16
* @LastEditors:
zhangleyu
an
* @LastEditors:
wuf
an
* @LastEditTime: 2021-0
1-09 16:26:03
* @LastEditTime: 2021-0
2-01 16:33:18
* @Description: 大班直播课预览弹窗
* @Description: 大班直播课预览弹窗
* @Copyright: 杭州杰竞科技有限公司 版权所有
* @Copyright: 杭州杰竞科技有限公司 版权所有
*/
*/
...
@@ -121,6 +121,7 @@ class PreviewCourseModal extends React.Component {
...
@@ -121,6 +121,7 @@ class PreviewCourseModal extends React.Component {
onCancel=
{
this
.
props
.
close
}
onCancel=
{
this
.
props
.
close
}
footer=
{
null
}
footer=
{
null
}
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
className=
"preview-live-course-modal"
className=
"preview-live-course-modal"
>
>
<
div
className=
"container__wrap"
>
<
div
className=
"container__wrap"
>
...
@@ -171,9 +172,9 @@ class PreviewCourseModal extends React.Component {
...
@@ -171,9 +172,9 @@ class PreviewCourseModal extends React.Component {
<
div
className=
"container__introduction"
>
<
div
className=
"container__introduction"
>
{
type
===
'videoCourse'
?
{
type
===
'videoCourse'
?
<
div
className=
"container__introduction__title"
>
视频简介
</
div
>
<
div
className=
"container__introduction__title"
>
视频
课
简介
</
div
>
:
:
<
div
className=
"container__introduction__title"
>
直播简介
</
div
>
<
div
className=
"container__introduction__title"
>
直播
课
简介
</
div
>
}
}
<
div
className=
"container__introduction__list editor-box"
>
<
div
className=
"container__introduction__list editor-box"
>
{
{
...
...
src/modules/course-manage/modal/PreviewCourseModal.less
View file @
cb715f0a
...
@@ -49,7 +49,8 @@
...
@@ -49,7 +49,8 @@
.title__state {
.title__state {
min-width: 40px;
min-width: 40px;
height: 17px;
height: 17px;
padding: 0 2px;
padding: 0px 8px;
border-radius: 10px;
margin-left: 6px;
margin-left: 6px;
font-size: 12px;
font-size: 12px;
color: #FFF;
color: #FFF;
...
...
src/modules/course-manage/modal/ShareLiveModal.jsx
View file @
cb715f0a
...
@@ -158,6 +158,7 @@ class ShareLiveModal extends React.Component {
...
@@ -158,6 +158,7 @@ class ShareLiveModal extends React.Component {
visible=
{
true
}
visible=
{
true
}
footer=
{
null
}
footer=
{
null
}
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
className=
"share-live-modal"
className=
"share-live-modal"
onCancel=
{
this
.
props
.
close
}
onCancel=
{
this
.
props
.
close
}
>
>
...
@@ -213,7 +214,7 @@ class ShareLiveModal extends React.Component {
...
@@ -213,7 +214,7 @@ class ShareLiveModal extends React.Component {
{
type
===
"videoClass"
&&
{
type
===
"videoClass"
&&
<
div
className=
"sub-title"
>
用户可通过打开链接,报名观看视频
</
div
>
<
div
className=
"sub-title"
>
用户可通过打开链接,报名观看视频
</
div
>
}
}
<
div
className=
"content"
>
<
div
className=
"content
url-content
"
>
<
div
className=
"share-url"
id=
"shareUrl"
>
{
shareUrl
}
</
div
>
<
div
className=
"share-url"
id=
"shareUrl"
>
{
shareUrl
}
</
div
>
<
Button
type=
"primary"
onClick=
{
this
.
handleCopy
}
>
复制
</
Button
>
<
Button
type=
"primary"
onClick=
{
this
.
handleCopy
}
>
复制
</
Button
>
</
div
>
</
div
>
...
...
src/modules/course-manage/modal/ShareLiveModal.less
View file @
cb715f0a
...
@@ -99,7 +99,6 @@
...
@@ -99,7 +99,6 @@
display: flex;
display: flex;
align-items: center;
align-items: center;
margin-top: 8px;
margin-top: 8px;
.share-url {
.share-url {
width: 212px;
width: 212px;
overflow: hidden;
overflow: hidden;
...
@@ -111,11 +110,22 @@
...
@@ -111,11 +110,22 @@
color: #999999;
color: #999999;
background: #EFEFEF;
background: #EFEFEF;
}
}
.ant-btn {
.ant-btn {
margin-left: -2px;
margin-left: -2px;
}
}
}
}
.url-content{
position:relative;
&:after{
content:'';
width: 12px;
height: 22px;
background: #EFEFEF;
position:absolute;
right:56px;
}
}
.share-poster {
.share-poster {
margin-bottom: 40px;
margin-bottom: 40px;
...
...
src/modules/course-manage/modal/StartLiveModal.jsx
View file @
cb715f0a
...
@@ -76,6 +76,7 @@ class StartLiveModal extends React.Component {
...
@@ -76,6 +76,7 @@ class StartLiveModal extends React.Component {
width=
{
550
}
width=
{
550
}
footer=
{
null
}
footer=
{
null
}
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
onCancel=
{
this
.
props
.
close
}
onCancel=
{
this
.
props
.
close
}
>
>
<
div
className=
"live-start-modal"
>
<
div
className=
"live-start-modal"
>
...
...
src/modules/course-manage/modal/TeacherLiveModal.jsx
View file @
cb715f0a
...
@@ -46,6 +46,7 @@ class TeacherLiveModal extends React.Component {
...
@@ -46,6 +46,7 @@ class TeacherLiveModal extends React.Component {
onCancel=
{
this
.
props
.
close
}
onCancel=
{
this
.
props
.
close
}
footer=
{
null
}
footer=
{
null
}
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
>
>
<
TeacherTip
isXiaomai=
{
isXiaomai
}
/>
<
TeacherTip
isXiaomai=
{
isXiaomai
}
/>
</
Modal
>
</
Modal
>
...
...
src/modules/course-manage/modal/select-student/index.jsx
View file @
cb715f0a
...
@@ -377,6 +377,7 @@ class SelectStudent extends React.Component {
...
@@ -377,6 +377,7 @@ class SelectStudent extends React.Component {
width=
{
720
}
width=
{
720
}
onCancel=
{
this
.
props
.
close
}
onCancel=
{
this
.
props
.
close
}
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
className=
"livecourse__select-student-modal"
className=
"livecourse__select-student-modal"
onOk=
{
this
.
handleSelectDone
}
onOk=
{
this
.
handleSelectDone
}
>
>
...
...
src/modules/course-manage/video-course/AddVideoCourse.jsx
View file @
cb715f0a
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* @Author: 吴文洁
* @Author: 吴文洁
* @Date: 2020-08-05 10:07:47
* @Date: 2020-08-05 10:07:47
* @LastEditors: zhangleyuan
* @LastEditors: zhangleyuan
* @LastEditTime: 2021-0
1-25 13:46:13
* @LastEditTime: 2021-0
2-04 16:41:05
* @Description: 视频课新增/编辑页
* @Description: 视频课新增/编辑页
* @Copyright: 杭州杰竞科技有限公司 版权所有
* @Copyright: 杭州杰竞科技有限公司 版权所有
*/
*/
...
@@ -468,7 +468,6 @@ class AddVideoCourse extends React.Component {
...
@@ -468,7 +468,6 @@ class AddVideoCourse extends React.Component {
</
div
>
</
div
>
<
div
className=
"sub-content"
>
<
div
className=
"sub-content"
>
<
Button
<
Button
type=
"primary"
onClick=
{
()
=>
{
onClick=
{
()
=>
{
this
.
setState
({
this
.
setState
({
showSelectFileModal
:
true
showSelectFileModal
:
true
...
@@ -513,10 +512,10 @@ class AddVideoCourse extends React.Component {
...
@@ -513,10 +512,10 @@ class AddVideoCourse extends React.Component {
<
div
className=
"course-catalog required"
>
<
div
className=
"course-catalog required"
>
<
span
className=
"label"
>
课程分类:
</
span
>
<
span
className=
"label"
>
课程分类:
</
span
>
{
(
pageType
===
'add'
)
&&
{
(
pageType
===
'add'
)
&&
<
Cascader
defaultValue=
{
[
categoryName
]
}
options=
{
courseCatalogList
}
displayRender=
{
label
=>
label
.
join
(
'-'
)
}
fieldNames=
{
fieldNames
}
onChange=
{
this
.
catalogChange
}
style=
{
{
width
:
240
}
}
placeholder=
"请选择课程分类"
/>
<
Cascader
defaultValue=
{
[
categoryName
]
}
options=
{
courseCatalogList
}
displayRender=
{
label
=>
label
.
join
(
'-'
)
}
fieldNames=
{
fieldNames
}
onChange=
{
this
.
catalogChange
}
style=
{
{
width
:
240
}
}
placeholder=
"请选择课程分类"
suffixIcon=
{
<
span
className=
"icon iconfont"
style=
{
{
fontSize
:
'12px'
,
color
:
'#BFBFBF'
}
}
>

</
span
>
}
/>
}
}
{
(
pageType
===
'edit'
&&
categoryName
)
&&
{
(
pageType
===
'edit'
&&
categoryName
)
&&
<
Cascader
defaultValue=
{
[
categoryName
]
}
options=
{
courseCatalogList
}
displayRender=
{
label
=>
label
.
join
(
'-'
)
}
fieldNames=
{
fieldNames
}
onChange=
{
this
.
catalogChange
}
style=
{
{
width
:
240
}
}
placeholder=
"请选择课程分类"
/>
<
Cascader
defaultValue=
{
[
categoryName
]
}
options=
{
courseCatalogList
}
displayRender=
{
label
=>
label
.
join
(
'-'
)
}
fieldNames=
{
fieldNames
}
onChange=
{
this
.
catalogChange
}
style=
{
{
width
:
240
}
}
placeholder=
"请选择课程分类"
suffixIcon=
{
<
span
className=
"icon iconfont"
style=
{
{
fontSize
:
'12px'
,
color
:
'#BFBFBF'
}
}
>

</
span
>
}
/>
}
}
</
div
>
</
div
>
<
div
className=
"intro-info mt16"
>
<
div
className=
"intro-info mt16"
>
...
...
src/modules/course-manage/video-course/AddVideoCourse.less
View file @
cb715f0a
...
@@ -121,7 +121,7 @@
...
@@ -121,7 +121,7 @@
margin-top: 4px;
margin-top: 4px;
.tips {
.tips {
margin-left:
16
px;
margin-left:
4
px;
color: #999;
color: #999;
}
}
}
}
...
...
src/modules/course-manage/video-course/components/VideoCourseFilter.jsx
View file @
cb715f0a
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* @Author: 吴文洁
* @Author: 吴文洁
* @Date: 2020-08-05 10:11:57
* @Date: 2020-08-05 10:11:57
* @LastEditors: zhangleyuan
* @LastEditors: zhangleyuan
* @LastEditTime: 2021-0
1-15 13:52:10
* @LastEditTime: 2021-0
2-23 16:35:37
* @Description: 视频课-搜索模块
* @Description: 视频课-搜索模块
* @Copyright: 杭州杰竞科技有限公司 版权所有
* @Copyright: 杭州杰竞科技有限公司 版权所有
*/
*/
...
@@ -11,7 +11,6 @@ import React from 'react';
...
@@ -11,7 +11,6 @@ import React from 'react';
import
{
Row
,
Input
,
Select
,
Tooltip
}
from
'antd'
;
import
{
Row
,
Input
,
Select
,
Tooltip
}
from
'antd'
;
import
RangePicker
from
"@/modules/common/DateRangePicker"
;
import
RangePicker
from
"@/modules/common/DateRangePicker"
;
// import TeacherSelectV5 from '@/modules/classManage_V5/classDetail/TeacherSelectV5';
import
'./VideoCourseFilter.less'
;
import
'./VideoCourseFilter.less'
;
import
moment
from
'moment'
;
import
moment
from
'moment'
;
...
@@ -70,7 +69,11 @@ class VideoCourseFilter extends React.Component {
...
@@ -70,7 +69,11 @@ class VideoCourseFilter extends React.Component {
const
scrollToBottom
=
container
&&
container
.
scrollHeight
<=
container
.
clientHeight
+
container
.
scrollTop
;
const
scrollToBottom
=
container
&&
container
.
scrollHeight
<=
container
.
clientHeight
+
container
.
scrollTop
;
if
(
scrollToBottom
&&
hasNext
)
{
if
(
scrollToBottom
&&
hasNext
)
{
const
{
teacherQuery
}
=
this
.
state
;
const
{
teacherQuery
}
=
this
.
state
;
this
.
getTeacherList
(
teacherQuery
.
current
+
1
);
let
_teacherQuery
=
teacherQuery
;
_teacherQuery
.
current
=
_teacherQuery
.
current
+
1
this
.
setState
({
teacherQuery
:{...
_teacherQuery
}
},()
=>
{
this
.
getTeacherList
(
_teacherQuery
.
current
)})
}
}
}
}
// 改变搜索条件
// 改变搜索条件
...
@@ -142,6 +145,7 @@ class VideoCourseFilter extends React.Component {
...
@@ -142,6 +145,7 @@ class VideoCourseFilter extends React.Component {
onChange=
{
(
e
)
=>
{
this
.
handleChangeQuery
(
'courseName'
,
e
.
target
.
value
)}
}
onChange=
{
(
e
)
=>
{
this
.
handleChangeQuery
(
'courseName'
,
e
.
target
.
value
)}
}
onSearch=
{
()
=>
{
this
.
props
.
onChange
(
this
.
state
.
query
)
}
}
onSearch=
{
()
=>
{
this
.
props
.
onChange
(
this
.
state
.
query
)
}
}
style=
{
{
width
:
"calc(100% - 84px)"
}
}
style=
{
{
width
:
"calc(100% - 84px)"
}
}
enterButton=
{
<
span
className=
"icon iconfont"
>

</
span
>
}
/>
/>
</
div
>
</
div
>
...
@@ -154,6 +158,7 @@ class VideoCourseFilter extends React.Component {
...
@@ -154,6 +158,7 @@ class VideoCourseFilter extends React.Component {
allowClear
allowClear
filterOption=
{
(
input
,
option
)
=>
option
}
filterOption=
{
(
input
,
option
)
=>
option
}
onPopupScroll=
{
this
.
handleScrollTeacherList
}
onPopupScroll=
{
this
.
handleScrollTeacherList
}
suffixIcon=
{
<
span
className=
"icon iconfont"
style=
{
{
fontSize
:
'12px'
,
color
:
'#BFBFBF'
}
}
>

</
span
>
}
value=
{
operatorId
}
value=
{
operatorId
}
onChange=
{
(
value
)
=>
{
onChange=
{
(
value
)
=>
{
this
.
handleChangeQuery
(
'operatorId'
,
value
)
this
.
handleChangeQuery
(
'operatorId'
,
value
)
...
@@ -185,16 +190,6 @@ class VideoCourseFilter extends React.Component {
...
@@ -185,16 +190,6 @@ class VideoCourseFilter extends React.Component {
);
);
})
}
})
}
</
Select
>
</
Select
>
{
/* <TeacherSelectV5
ref="TeacherSelect"
showSearch={true}
allowClear={true}
style={{ width: "calc(100% - 70px)" }}
onSelect={(teacherId) => { this.handleChangeQuery('teacherId', teacherId)}}
placeholder='请选择创建人'
label='创建人'
defaultValue={teacherId}
/> */
}
</
div
>
</
div
>
<
div
className=
"search-condition__item"
>
<
div
className=
"search-condition__item"
>
...
@@ -217,6 +212,7 @@ class VideoCourseFilter extends React.Component {
...
@@ -217,6 +212,7 @@ class VideoCourseFilter extends React.Component {
allowClear=
{
true
}
allowClear=
{
true
}
value=
{
shelfState
}
value=
{
shelfState
}
onChange=
{
(
value
)
=>
{
this
.
handleChangeQuery
(
'shelfState'
,
value
)
}
}
onChange=
{
(
value
)
=>
{
this
.
handleChangeQuery
(
'shelfState'
,
value
)
}
}
suffixIcon=
{
<
span
className=
"icon iconfont"
style=
{
{
fontSize
:
'12px'
,
color
:
'#BFBFBF'
}
}
>

</
span
>
}
>
>
<
Option
value=
"YES"
>
开启
</
Option
>
<
Option
value=
"YES"
>
开启
</
Option
>
<
Option
value=
"NO"
>
关闭
</
Option
>
<
Option
value=
"NO"
>
关闭
</
Option
>
...
...
src/modules/course-manage/video-course/components/VideoCourseFilter.less
View file @
cb715f0a
.video-course-filter {
.video-course-filter {
position: relative;
position: relative;
.video-list-table{
// tr:nth-child(even){
// background: transparent !important;
// }
// tr:nth-child(odd){
// td{
// background: #FAFAFA !important;
// }
// }
}
.search-condition {
.search-condition {
width: calc(100% - 80px);
width: calc(100% - 80px);
display: flex;
display: flex;
...
...
src/modules/course-manage/video-course/components/VideoCourseList.jsx
View file @
cb715f0a
...
@@ -23,7 +23,7 @@ import User from '@/common/js/user'
...
@@ -23,7 +23,7 @@ import User from '@/common/js/user'
import
'./VideoCourseList.less'
;
import
'./VideoCourseList.less'
;
const
ENV
=
process
.
env
.
DEPLOY_ENV
||
'
rc
'
;
const
ENV
=
process
.
env
.
DEPLOY_ENV
||
'
dev
'
;
class
VideoCourseList
extends
React
.
Component
{
class
VideoCourseList
extends
React
.
Component
{
...
@@ -147,7 +147,7 @@ class VideoCourseList extends React.Component {
...
@@ -147,7 +147,7 @@ class VideoCourseList extends React.Component {
},
},
{
{
title
:
'创建时间'
,
title
:
'创建时间'
,
width
:
"10%"
,
width
:
181
,
key
:
'created'
,
key
:
'created'
,
dataIndex
:
'created'
,
dataIndex
:
'created'
,
sorter
:
true
,
sorter
:
true
,
...
@@ -157,7 +157,7 @@ class VideoCourseList extends React.Component {
...
@@ -157,7 +157,7 @@ class VideoCourseList extends React.Component {
},
},
{
{
title
:
'更新时间'
,
title
:
'更新时间'
,
width
:
"10%"
,
width
:
181
,
key
:
'updated'
,
key
:
'updated'
,
dataIndex
:
'updated'
,
dataIndex
:
'updated'
,
sorter
:
true
,
sorter
:
true
,
...
@@ -244,6 +244,7 @@ class VideoCourseList extends React.Component {
...
@@ -244,6 +244,7 @@ class VideoCourseList extends React.Component {
content
:
'删除后,学员将不能进行观看。'
,
content
:
'删除后,学员将不能进行观看。'
,
icon
:
<
span
className=
"icon iconfont default-confirm-icon"
>

</
span
>,
icon
:
<
span
className=
"icon iconfont default-confirm-icon"
>

</
span
>,
okText
:
'确定'
,
okText
:
'确定'
,
okType
:
'danger'
,
cancelText
:
'取消'
,
cancelText
:
'取消'
,
onOk
:
()
=>
{
onOk
:
()
=>
{
const
param
=
{
const
param
=
{
...
@@ -329,6 +330,7 @@ class VideoCourseList extends React.Component {
...
@@ -329,6 +330,7 @@ class VideoCourseList extends React.Component {
pagination=
{
false
}
pagination=
{
false
}
scroll=
{
{
x
:
1500
}
}
scroll=
{
{
x
:
1500
}
}
bordered
bordered
className=
"video-list-table"
/>
/>
<
div
className=
"box-footer"
>
<
div
className=
"box-footer"
>
...
...
src/modules/course-manage/video-course/components/VideoCourseList.less
View file @
cb715f0a
.video-course-list {
.video-course-list {
margin-top: 12px;
margin-top: 12px;
.video-list-table{
tbody {
tr{
&:nth-child(even){
background: transparent !important;
td{
background:#FFF !important;
}
}
&:nth-child(odd){
background: #FAFAFA !important;
td{
background: #FAFAFA !important;
}
}
&:hover{
td{
background:#F3f6fa !important;
}
}
}
}
}
.watchUserCount{
.watchUserCount{
text-align:right;
text-align:right;
padding:16px;
padding:16px;
...
@@ -21,6 +44,9 @@
...
@@ -21,6 +44,9 @@
}
}
}
}
}
}
.more-operate{
line-height:20px;
}
.record__item {
.record__item {
display: flex;
display: flex;
...
@@ -44,6 +70,7 @@
...
@@ -44,6 +70,7 @@
height:48px;
height:48px;
}
}
}
}
}
}
.video-course-more-menu {
.video-course-more-menu {
...
@@ -58,10 +85,4 @@
...
@@ -58,10 +85,4 @@
background: #f3f6fa;
background: #f3f6fa;
}
}
}
}
}
.ant-tooltip{
max-width:700px !important;
}
.ant-tooltip-inner{
max-width:700px !important;
}
}
\ No newline at end of file
src/modules/course-manage/video-course/components/VideoCourseOpt.less
View file @
cb715f0a
.video-course-opt {
.video-course-opt {
margin-top:4px;
.link {
.link {
color: #FF8534;
color: #FF8534;
}
}
...
...
src/modules/course-manage/video-course/modal/WatchDataModal.jsx
View file @
cb715f0a
...
@@ -20,7 +20,7 @@ class WatchDataModal extends React.Component {
...
@@ -20,7 +20,7 @@ class WatchDataModal extends React.Component {
this
.
state
=
{
this
.
state
=
{
visible
:
true
,
visible
:
true
,
dataSource
:[],
dataSource
:[],
size
:
1
,
size
:
1
0
,
query
:
{
query
:
{
current
:
1
,
current
:
1
,
},
},
...
@@ -130,9 +130,10 @@ class WatchDataModal extends React.Component {
...
@@ -130,9 +130,10 @@ class WatchDataModal extends React.Component {
className=
"watch-data-modal"
className=
"watch-data-modal"
closable=
{
true
}
closable=
{
true
}
width=
{
800
}
width=
{
800
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
>
>
<
div
className=
"search-container"
>
<
div
className=
"search-container"
>
<
Search
placeholder=
"搜索用户姓名/手机号"
style=
{
{
width
:
200
}
}
onChange=
{
(
e
)
=>
{
this
.
handleChangNickname
(
e
.
target
.
value
)}
}
onSearch=
{
()
=>
{
this
.
handleFetchDataList
()}
}
/>
<
Search
placeholder=
"搜索用户姓名/手机号"
style=
{
{
width
:
200
}
}
onChange=
{
(
e
)
=>
{
this
.
handleChangNickname
(
e
.
target
.
value
)}
}
onSearch=
{
()
=>
{
this
.
handleFetchDataList
()}
}
enterButton=
{
<
span
className=
"icon iconfont"
>

</
span
>
}
/>
</
div
>
</
div
>
<
div
>
<
div
>
<
Table
<
Table
...
@@ -140,6 +141,7 @@ class WatchDataModal extends React.Component {
...
@@ -140,6 +141,7 @@ class WatchDataModal extends React.Component {
dataSource=
{
dataSource
}
dataSource=
{
dataSource
}
columns=
{
this
.
parseColumns
()
}
columns=
{
this
.
parseColumns
()
}
pagination=
{
false
}
pagination=
{
false
}
bordered
/>
/>
{
dataSource
.
length
>
0
&&
{
dataSource
.
length
>
0
&&
<
div
className=
"box-footer"
>
<
div
className=
"box-footer"
>
...
@@ -147,6 +149,7 @@ class WatchDataModal extends React.Component {
...
@@ -147,6 +149,7 @@ class WatchDataModal extends React.Component {
current=
{
query
.
current
-
1
}
current=
{
query
.
current
-
1
}
pageSize=
{
size
}
pageSize=
{
size
}
total=
{
totalCount
}
total=
{
totalCount
}
size=
"small"
toPage=
{
(
page
)
=>
{
toPage=
{
(
page
)
=>
{
const
_query
=
{...
query
,
current
:
page
+
1
};
const
_query
=
{...
query
,
current
:
page
+
1
};
this
.
setState
({
this
.
setState
({
...
...
src/modules/personalInfo/ChangePhoneModal.tsx
View file @
cb715f0a
...
@@ -114,6 +114,7 @@ function ChangePhoneModal(props: changePhoneModalProps) {
...
@@ -114,6 +114,7 @@ function ChangePhoneModal(props: changePhoneModalProps) {
title=
"更换手机号"
title=
"更换手机号"
width=
{
448
}
width=
{
448
}
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
onCancel=
{
onClose
}
onCancel=
{
onClose
}
className=
"change-phone-modal"
className=
"change-phone-modal"
footer=
{
[
footer=
{
[
...
...
src/modules/personalInfo/IdentificationModal.tsx
View file @
cb715f0a
...
@@ -89,6 +89,7 @@ function IdentificationModal(props: IdentificationModalProps) {
...
@@ -89,6 +89,7 @@ function IdentificationModal(props: IdentificationModalProps) {
width=
{
448
}
width=
{
448
}
onCancel=
{
onClose
}
onCancel=
{
onClose
}
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
className=
"identification-modal"
className=
"identification-modal"
footer=
{
[
footer=
{
[
<
Button
<
Button
...
...
src/modules/personalInfo/index.less
View file @
cb715f0a
.personal-info-page{
.personal-info-page{
.page-content{
.box{
.box{
padding: 60px 60px 60px 40px !important;
padding: 60px 60px 60px 40px !important;
}
}
...
@@ -58,5 +57,4 @@
...
@@ -58,5 +57,4 @@
margin-left:20px;
margin-left:20px;
}
}
}
}
}
}
}
\ No newline at end of file
src/modules/personalInfo/index.tsx
View file @
cb715f0a
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* @Author: zhangleyuan
* @Author: zhangleyuan
* @Date: 2020-11-27 15:06:31
* @Date: 2020-11-27 15:06:31
* @LastEditors: wufan
* @LastEditors: wufan
* @LastEditTime: 2021-0
1-18 21:22:16
* @LastEditTime: 2021-0
2-01 14:34:44
* @Description: 描述一下
* @Description: 描述一下
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/
*/
...
@@ -123,7 +123,6 @@ function PersonalInfoPage() {
...
@@ -123,7 +123,6 @@ function PersonalInfoPage() {
console
.
log
(
'User.getStoreType()'
,
User
.
getStoreType
());
console
.
log
(
'User.getStoreType()'
,
User
.
getStoreType
());
return
(
return
(
<
div
className=
"page personal-info-page"
>
<
div
className=
"page personal-info-page"
>
<
div
className=
"page-content"
>
<
div
className=
"content-header"
>
个人设置
</
div
>
<
div
className=
"content-header"
>
个人设置
</
div
>
<
div
className=
"box"
>
<
div
className=
"box"
>
<
Form
>
<
Form
>
...
@@ -212,7 +211,6 @@ console.log('User.getStoreType()',User.getStoreType());
...
@@ -212,7 +211,6 @@ console.log('User.getStoreType()',User.getStoreType());
onConfirm=
{
changePhoneConfirm
}
onConfirm=
{
changePhoneConfirm
}
/>
/>
)
}
)
}
</
div
>
</
div
>
</
div
>
);
);
}
}
...
...
src/modules/prepare-lesson/components/FolderList.jsx
View file @
cb715f0a
...
@@ -289,7 +289,8 @@ class FolderList extends React.Component {
...
@@ -289,7 +289,8 @@ class FolderList extends React.Component {
Modal
.
confirm
({
Modal
.
confirm
({
title
:
'确认删除所选的文件吗?'
,
title
:
'确认删除所选的文件吗?'
,
content
:
hasRelative
?
'此文件已关联了课次,删除后,学员将不能查看到此文件。'
:
'删除后,数据将无法恢复。'
,
content
:
hasRelative
?
'此文件已关联了课次,删除后,学员将不能查看到此文件。'
:
'删除后,数据将无法恢复。'
,
icon
:
<
span
className=
"icon iconfont default-confirm-icon"
>

</
span
>,
icon
:<
span
className=
"icon iconfont default-confirm-icon"
>

</
span
>,
okType
:
'danger'
,
onOk
:
()
=>
{
onOk
:
()
=>
{
const
{
currentFolder
}
=
this
.
state
;
const
{
currentFolder
}
=
this
.
state
;
axios
.
Apollo
(
DEL_FOLDER_URL_MAP
[
disk
],
{
axios
.
Apollo
(
DEL_FOLDER_URL_MAP
[
disk
],
{
...
...
src/modules/prepare-lesson/components/OperateArea.jsx
View file @
cb715f0a
...
@@ -212,7 +212,8 @@ class OperateArea extends React.Component {
...
@@ -212,7 +212,8 @@ class OperateArea extends React.Component {
Modal
.
confirm
({
Modal
.
confirm
({
title
:
'确认删除所选的文件吗?'
,
title
:
'确认删除所选的文件吗?'
,
content
:
'删除后,数据将无法恢复。'
,
content
:
'删除后,数据将无法恢复。'
,
icon
:
<
span
className=
"icon iconfont default-confirm-icon"
>

</
span
>,
icon
:<
span
className=
"icon iconfont default-confirm-icon"
>

</
span
>,
okType
:
'danger'
,
onOk
:
()
=>
{
onOk
:
()
=>
{
const
currentFolder
=
folderPathList
[
folderPathList
.
length
-
1
];
const
currentFolder
=
folderPathList
[
folderPathList
.
length
-
1
];
Service
.
Hades
(
DEL_FOLDER_URL_MAP
[
disk
],
{
Service
.
Hades
(
DEL_FOLDER_URL_MAP
[
disk
],
{
...
@@ -334,6 +335,7 @@ class OperateArea extends React.Component {
...
@@ -334,6 +335,7 @@ class OperateArea extends React.Component {
value=
{
searchKey
}
value=
{
searchKey
}
onSearch=
{
this
.
props
.
onSearch
}
onSearch=
{
this
.
props
.
onSearch
}
style=
{
{
width
:
'245px'
}
}
style=
{
{
width
:
'245px'
}
}
enterButton=
{
<
span
className=
"icon iconfont"
>

</
span
>
}
/>
/>
</
div
>
</
div
>
...
...
src/modules/prepare-lesson/index.jsx
View file @
cb715f0a
...
@@ -85,6 +85,7 @@ class PrepareLessonPage extends React.Component {
...
@@ -85,6 +85,7 @@ class PrepareLessonPage extends React.Component {
footer=
{
null
}
footer=
{
null
}
width=
{
680
}
width=
{
680
}
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
className=
"prepare-lesson-upgrade-modal"
className=
"prepare-lesson-upgrade-modal"
onCancel=
{
()
=>
{
onCancel=
{
()
=>
{
this
.
setState
({
this
.
setState
({
...
...
src/modules/prepare-lesson/modal/CreateFolderModal.jsx
View file @
cb715f0a
...
@@ -79,6 +79,7 @@ class CreateFolderModal extends React.Component {
...
@@ -79,6 +79,7 @@ class CreateFolderModal extends React.Component {
onCancel=
{
this
.
handleCancel
}
onCancel=
{
this
.
handleCancel
}
onOk=
{
this
.
handleOk
}
onOk=
{
this
.
handleOk
}
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
width=
{
448
}
width=
{
448
}
className=
"create-folder-modal"
className=
"create-folder-modal"
>
>
...
...
src/modules/prepare-lesson/modal/NonCompliantFileModal.jsx
View file @
cb715f0a
...
@@ -29,9 +29,11 @@ class NonCompliantFileModal extends React.Component {
...
@@ -29,9 +29,11 @@ class NonCompliantFileModal extends React.Component {
okText=
"继续上传"
okText=
"继续上传"
cancelText=
"放弃上传"
cancelText=
"放弃上传"
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
onCancel=
{
this
.
props
.
onClose
}
onCancel=
{
this
.
props
.
onClose
}
onOk=
{
this
.
props
.
onOk
}
onOk=
{
this
.
props
.
onOk
}
className=
"prepare-lesson__non-compliant-file-modal"
className=
"prepare-lesson__non-compliant-file-modal"
width=
{
560
}
>
>
<
div
className=
"file-list"
>
<
div
className=
"file-list"
>
<
div
className=
"file-list__title"
>
以下文件已超出上传限制,无法上传。
</
div
>
<
div
className=
"file-list__title"
>
以下文件已超出上传限制,无法上传。
</
div
>
...
...
src/modules/prepare-lesson/modal/ScanFileModal.jsx
View file @
cb715f0a
...
@@ -26,6 +26,7 @@ class ScanFileModal extends React.Component {
...
@@ -26,6 +26,7 @@ class ScanFileModal extends React.Component {
width=
{
680
}
width=
{
680
}
className=
"scan-file-modal"
className=
"scan-file-modal"
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
>
>
<
div
className=
"scan-file-modal"
style=
{
{
width
:
632
}
}
>
<
div
className=
"scan-file-modal"
style=
{
{
width
:
632
}
}
>
{
(
fileType
===
"JPG"
||
fileType
===
'PNG'
)
&&
(
{
(
fileType
===
"JPG"
||
fileType
===
'PNG'
)
&&
(
...
...
src/modules/prepare-lesson/modal/SelectPrepareFileModal.jsx
View file @
cb715f0a
...
@@ -538,6 +538,7 @@ class SelectPrepareFileModal extends React.Component {
...
@@ -538,6 +538,7 @@ class SelectPrepareFileModal extends React.Component {
footer=
{
footer
}
footer=
{
footer
}
width=
{
680
}
width=
{
680
}
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
onCancel=
{
this
.
handleClose
}
onCancel=
{
this
.
handleClose
}
className=
"select-prepare-file-modal"
className=
"select-prepare-file-modal"
>
>
...
@@ -583,12 +584,12 @@ class SelectPrepareFileModal extends React.Component {
...
@@ -583,12 +584,12 @@ class SelectPrepareFileModal extends React.Component {
</
div
>
</
div
>
{
{
!
_
.
isEmpty
(
folderList
)
?
!
_
.
isEmpty
(
folderList
)
?
<
div
<
div
>
onScrollCapture=
{
()
=>
this
.
handleScrollEvent
()
}
<
div
className=
"file-list"
style=
{
{
height
:
'320px'
,
overflowY
:
'scroll'
}
}
onScrollCapture=
{
()
=>
this
.
handleScrollEvent
()
}
ref=
"fileListRef"
style=
{
{
height
:
'320px'
,
overflowY
:
'auto'
}
}
>
ref=
"fileListRef"
<
div
className=
"file-list"
>
>
{
{
folderList
.
map
((
folder
,
index
)
=>
{
folderList
.
map
((
folder
,
index
)
=>
{
const
{
folderType
,
folderSize
,
folderFormat
,
folderName
}
=
folder
;
const
{
folderType
,
folderSize
,
folderFormat
,
folderName
}
=
folder
;
...
...
src/modules/prepare-lesson/modal/SelectPrepareFileModal.less
View file @
cb715f0a
...
@@ -52,7 +52,6 @@
...
@@ -52,7 +52,6 @@
.file-list {
.file-list {
border: 1px solid #E8E8E8;
border: 1px solid #E8E8E8;
border-radius: 4px;
border-radius: 4px;
.file-item {
.file-item {
display: flex;
display: flex;
align-items: center;
align-items: center;
...
@@ -82,7 +81,7 @@
...
@@ -82,7 +81,7 @@
.iconfont {
.iconfont {
color: #BFBFBF;
color: #BFBFBF;
font-size:12px;
&.correct {
&.correct {
color: #FFB714;
color: #FFB714;
}
}
...
...
src/modules/resource-disk/components/FolderList.jsx
View file @
cb715f0a
...
@@ -297,7 +297,8 @@ class FolderList extends React.Component {
...
@@ -297,7 +297,8 @@ class FolderList extends React.Component {
Modal
.
confirm
({
Modal
.
confirm
({
title
:
'确认删除所选的文件吗?'
,
title
:
'确认删除所选的文件吗?'
,
content
:
'删除后,数据将无法恢复。'
,
content
:
'删除后,数据将无法恢复。'
,
icon
:
<
span
className=
"icon iconfont default-confirm-icon"
>

</
span
>,
icon
:<
span
className=
"icon iconfont default-confirm-icon"
>

</
span
>,
okType
:
'danger'
,
onOk
:
()
=>
{
onOk
:
()
=>
{
const
{
currentFolder
}
=
this
.
state
;
const
{
currentFolder
}
=
this
.
state
;
Service
.
Hades
(
DEL_FOLDER_URL_MAP
[
disk
],
{
Service
.
Hades
(
DEL_FOLDER_URL_MAP
[
disk
],
{
...
...
src/modules/resource-disk/components/OperateArea.jsx
View file @
cb715f0a
...
@@ -211,7 +211,8 @@ class OperateArea extends React.Component {
...
@@ -211,7 +211,8 @@ class OperateArea extends React.Component {
Modal
.
confirm
({
Modal
.
confirm
({
title
:
'确认删除所选的文件吗?'
,
title
:
'确认删除所选的文件吗?'
,
content
:
'删除后,数据将无法恢复。'
,
content
:
'删除后,数据将无法恢复。'
,
icon
:
<
span
className=
"icon iconfont default-confirm-icon"
>

</
span
>,
icon
:<
span
className=
"icon iconfont default-confirm-icon"
>

</
span
>,
okType
:
'danger'
,
onOk
:
()
=>
{
onOk
:
()
=>
{
const
currentFolder
=
folderPathList
[
folderPathList
.
length
-
1
];
const
currentFolder
=
folderPathList
[
folderPathList
.
length
-
1
];
Service
.
Hades
(
DEL_FOLDER_URL_MAP
[
disk
],
{
Service
.
Hades
(
DEL_FOLDER_URL_MAP
[
disk
],
{
...
@@ -341,7 +342,6 @@ class OperateArea extends React.Component {
...
@@ -341,7 +342,6 @@ class OperateArea extends React.Component {
<
Button
<
Button
onClick=
{
this
.
handleToggleCreateFolderModal
}
onClick=
{
this
.
handleToggleCreateFolderModal
}
disabled=
{
showResultPage
}
disabled=
{
showResultPage
}
className=
"create-btn"
>
>
<
div
className=
"btn-content"
>
<
div
className=
"btn-content"
>
<
span
className=
"icon iconfont"
>

</
span
>
<
span
className=
"icon iconfont"
>

</
span
>
...
@@ -375,6 +375,7 @@ class OperateArea extends React.Component {
...
@@ -375,6 +375,7 @@ class OperateArea extends React.Component {
onSearch=
{
this
.
handleSearch
}
onSearch=
{
this
.
handleSearch
}
onChange=
{
this
.
handleChangeSearchKey
}
onChange=
{
this
.
handleChangeSearchKey
}
style=
{
{
width
:
'245px'
}
}
style=
{
{
width
:
'245px'
}
}
enterButton=
{
<
span
className=
"icon iconfont"
>

</
span
>
}
/>
/>
</
div
>
</
div
>
...
...
src/modules/resource-disk/modal/CreateFolderModal.jsx
View file @
cb715f0a
...
@@ -80,6 +80,7 @@ class CreateFolderModal extends React.Component {
...
@@ -80,6 +80,7 @@ class CreateFolderModal extends React.Component {
onOk=
{
this
.
handleOk
}
onOk=
{
this
.
handleOk
}
width=
{
448
}
width=
{
448
}
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
className=
"create-folder-modal"
className=
"create-folder-modal"
>
>
<
Form
>
<
Form
>
...
...
src/modules/resource-disk/modal/ScanFileModal.jsx
View file @
cb715f0a
...
@@ -24,6 +24,7 @@ class ScanFileModal extends React.Component {
...
@@ -24,6 +24,7 @@ class ScanFileModal extends React.Component {
footer=
{
null
}
footer=
{
null
}
width=
{
680
}
width=
{
680
}
className=
"scan-file-modal"
className=
"scan-file-modal"
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
>
>
<
div
className=
"scan-file-modal"
style=
{
{
width
:
632
}
}
>
<
div
className=
"scan-file-modal"
style=
{
{
width
:
632
}
}
>
{
(
fileType
===
"JPG"
||
fileType
===
'PNG'
)
&&
(
{
(
fileType
===
"JPG"
||
fileType
===
'PNG'
)
&&
(
...
...
src/modules/root/App.tsx
View file @
cb715f0a
/*
/*
* @Author: 吴文洁
* @Author: 吴文洁
* @Date: 2019-07-10 10:30:49
* @Date: 2019-07-10 10:30:49
* @LastEditors:
wuf
an
* @LastEditors:
zhangleyu
an
* @LastEditTime: 2021-0
1-18 21:22:33
* @LastEditTime: 2021-0
2-02 16:42:04
* @Description:
* @Description:
*/
*/
import
React
,
{
useContext
,
useEffect
,
useState
}
from
'react'
;
import
React
,
{
useContext
,
useEffect
,
useState
}
from
'react'
;
...
@@ -77,7 +77,7 @@ const App: React.FC = (props: any) => {
...
@@ -77,7 +77,7 @@ const App: React.FC = (props: any) => {
return
(
return
(
<
div
id=
"home"
>
<
div
id=
"home"
>
<
Header
handleMenuType=
{
handleMenuType
}
menuType=
{
menuType
}
/>
<
Header
handleMenuType=
{
handleMenuType
}
menuType=
{
menuType
}
/>
<
ConfigProvider
locale=
{
zhCN
}
>
<
ConfigProvider
locale=
{
zhCN
}
autoInsertSpaceInButton=
{
false
}
>
<
Main
menuType=
{
menuType
}
/>
<
Main
menuType=
{
menuType
}
/>
</
ConfigProvider
>
</
ConfigProvider
>
<
Menu
menuType=
{
menuType
}
/>
<
Menu
menuType=
{
menuType
}
/>
...
...
src/modules/root/Header.jsx
View file @
cb715f0a
/*
/*
* @Author: 吴文洁
* @Author: 吴文洁
* @Date: 2019-09-10 18:26:03
* @Date: 2019-09-10 18:26:03
* @LastEditors:
wuf
an
* @LastEditors:
zhangleyu
an
* @LastEditTime: 2021-01-2
5 20:40:5
3
* @LastEditTime: 2021-01-2
8 15:24:4
3
* @Description:
* @Description:
*/
*/
import
React
,
{
useContext
,
useEffect
,
useState
}
from
"react"
;
import
React
,
{
useContext
,
useEffect
,
useState
}
from
"react"
;
...
@@ -116,8 +116,7 @@ function Header(props) {
...
@@ -116,8 +116,7 @@ function Header(props) {
<
div
id=
"top-container"
className=
"top-container"
>
<
div
id=
"top-container"
className=
"top-container"
>
<
div
className=
"top top-nav"
>
<
div
className=
"top top-nav"
>
<
div
>
<
div
>
<
img
src=
{
logoImg
}
className=
"logo"
alt=
""
/>
{
menuType
?
<
img
src=
'https://image.xiaomaiketang.com/xm/4swGidkYR6.png'
className=
"logo"
alt=
""
/>:<
img
src=
{
logoImg
}
className=
"logo"
alt=
""
/>
}
{
menuType
&&
<
span
className=
"logo-name"
>
小麦企培
</
span
>
}
</
div
>
</
div
>
{
menuType
?
(
{
menuType
?
(
<
span
<
span
...
...
src/modules/root/Login.jsx
View file @
cb715f0a
...
@@ -3,7 +3,7 @@ import {
...
@@ -3,7 +3,7 @@ import {
withRouter
withRouter
}
from
'react-router-dom'
;
}
from
'react-router-dom'
;
import
'./Login.less'
;
import
'./Login.less'
;
import
{
Input
,
Popover
,
message
,
Tabs
}
from
'antd'
;
import
{
Input
,
Popover
,
message
,
Tabs
,
Button
}
from
'antd'
;
import
CheckBeforeSendCode
from
'../../components/CheckBeforeSendCode'
;
import
CheckBeforeSendCode
from
'../../components/CheckBeforeSendCode'
;
import
User
from
'@/common/js/user'
;
import
User
from
'@/common/js/user'
;
import
WechatLogin
from
'./WechatLogin'
import
WechatLogin
from
'./WechatLogin'
...
@@ -194,7 +194,7 @@ function Login(props) {
...
@@ -194,7 +194,7 @@ function Login(props) {
</
div
>
</
div
>
<
div
className=
"submit"
>
<
div
className=
"submit"
>
<
div
className=
"btn"
>
<
div
className=
"btn"
>
<
button
id=
'loginIn'
onClick=
{
()
=>
{
handleSubmit
()
}
}
>
登录
</
butto
n
>
<
span
id=
'loginIn'
onClick=
{
()
=>
{
handleSubmit
()
}
}
>
登录
</
spa
n
>
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
...
...
src/modules/root/Login.less
View file @
cb715f0a
...
@@ -98,16 +98,14 @@
...
@@ -98,16 +98,14 @@
display: none;
display: none;
}
}
.ant-tabs-tab {
.ant-tabs-tab {
width: 105px;
text-align: center;
text-align: center;
margin:0;
}
}
.ant-tabs > .ant-tabs-nav .ant-tabs-nav-list {
.ant-tabs > .ant-tabs-nav .ant-tabs-nav-list {
margin: 0 auto;
margin: 0 auto;
}
}
.ant-tabs-top > .ant-tabs-nav .ant-tabs-ink-bar {
.ant-tabs-top > .ant-tabs-nav .ant-tabs-ink-bar {
width: 24px !important;
height: 4px;
height: 4px;
margin-left: 47px;
}
}
.l {
.l {
...
@@ -167,7 +165,7 @@
...
@@ -167,7 +165,7 @@
flex: 1;
flex: 1;
-webkit-flex: 1;
-webkit-flex: 1;
height: 100%;
height: 100%;
padding:
30
px;
padding:
24
px;
box-sizing: border-box;
box-sizing: border-box;
position: relative;
position: relative;
&.show-qrcode {
&.show-qrcode {
...
@@ -433,14 +431,14 @@
...
@@ -433,14 +431,14 @@
}
}
}
}
.btn {
.btn {
butto
n {
#loginI
n {
display: block;
display: block;
width: 100%;
width: 100%;
background: @primary;
background: @primary;
color: #fff;
color: #fff;
font-size: 14px;
font-size: 14px;
font-weight: 400;
font-weight: 400
!important
;
line-height: 40px;
line-height: 40px
!important
;
border-radius: 4px;
border-radius: 4px;
-webkit-transition: all 0.3s;
-webkit-transition: all 0.3s;
-moz-transition: all 0.3s;
-moz-transition: all 0.3s;
...
@@ -449,6 +447,7 @@
...
@@ -449,6 +447,7 @@
transition: all 0.3s;
transition: all 0.3s;
cursor: pointer;
cursor: pointer;
border: none;
border: none;
text-align:center;
&:hover {
&:hover {
opacity: 0.7;
opacity: 0.7;
background: linear-gradient(90deg, #ffb714 0%, #ffad34 100%);
background: linear-gradient(90deg, #ffb714 0%, #ffad34 100%);
...
...
src/modules/root/Menu.less
View file @
cb715f0a
...
@@ -101,6 +101,13 @@
...
@@ -101,6 +101,13 @@
padding-left: 22px;
padding-left: 22px;
padding-right: 0;
padding-right: 0;
width: 117px;
width: 117px;
margin-bottom:0 !important;
&:first-child{
margin-top:8px !important;
}
&:last-child{
margin-bottom:8px !important;
}
}
}
.listType {
.listType {
...
...
src/modules/root/WechatLogin.tsx
View file @
cb715f0a
...
@@ -26,7 +26,7 @@ export default function WechatLogin(props: any) {
...
@@ -26,7 +26,7 @@ export default function WechatLogin(props: any) {
if
(
status
===
0
)
{
if
(
status
===
0
)
{
Service
.
Hades
(
"anon/hades/getTicket"
,
{}).
then
((
res
:
any
)
=>
{
Service
.
Hades
(
"anon/hades/getTicket"
,
{}).
then
((
res
:
any
)
=>
{
setTicket
(
res
.
result
)
setTicket
(
res
.
result
)
const
redirect
=
`
${
location
.
origin
+
location
.
pathname
.
replace
(
'index.html'
,
''
)
+
'h5.html'
}
?ticket=
${
res
.
result
}
&appTermEnum=XIAOMAI_CLOUD_CLASS_PC_WEB_ADMIN&env=
${
process
.
env
.
DEPLOY_ENV
||
'
rc
'
}
`
const
redirect
=
`
${
location
.
origin
+
location
.
pathname
.
replace
(
'index.html'
,
''
)
+
'h5.html'
}
?ticket=
${
res
.
result
}
&appTermEnum=XIAOMAI_CLOUD_CLASS_PC_WEB_ADMIN&env=
${
process
.
env
.
DEPLOY_ENV
||
'
dev
'
}
`
// console.log(redirect)
// console.log(redirect)
// const url = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=ww409ccf9c6e31f19e&redirect_uri=${encodeURIComponent(redirect)}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect`
// const url = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=ww409ccf9c6e31f19e&redirect_uri=${encodeURIComponent(redirect)}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect`
// console.log(url)
// console.log(url)
...
...
src/modules/store-manage/CourseCatalogPage.less
View file @
cb715f0a
.course-catalog-page{
.course-catalog-page{
.child-table{
thead{
display:none;
}
tbody tr td{
border-bottom:none;
background:#FAFAFA;
}
// tr:hover td{
// background: #FAFAFA !important;
// }
// tbody tr:hover{
// background: #FAFAFA !important;
// }
}
.divider-line{
.divider-line{
color: #BFBFBF;
color: #BFBFBF;
}
}
...
@@ -36,13 +20,82 @@
...
@@ -36,13 +20,82 @@
line-height: 20px;
line-height: 20px;
cursor: pointer;
cursor: pointer;
}
}
.empty-child{
td{
color:#666;
.empty-child{
font-size:14px;
color:#666;
text-align:center;
font-size:14px;
background: #FAFAFA;
text-align:center;
// background: #FAFAFA;
}
&:hover{
.empty-child{
background: none;
}
}
}
.catalog-tabel{
.ant-table-content{
border:1px solid #e8e8e8;
tr{
td{
border:none;
}
.child-table{
.ant-table-content{
border:none;
thead{
display:none;
}
tbody tr td{
border-bottom:none;
// background:#FAFAFA;
}
}
}
}
.odd-row{
background:transparent;
td{
background: #FFF;
}
& + .ant-table-expanded-row{
background:transparent;
td{
background: #FFF;
}
}
&:hover{
& + .ant-table-expanded-row{
background:transparent;
td{
background: #F3f6fa !important;
}
}
}
}
.even-row{
background:transparent;
td{
background: #FAFAFA;
}
& + .ant-table-expanded-row{
background:transparent;
td{
background: #FAFAFA;
}
}
&:hover{
& + .ant-table-expanded-row{
background:transparent;
td{
background: #F3f6fa !important;
}
}
}
}
}
}
}
// tr.ant-table-expanded-row:hover > td {
// background: #FAFAFA !important;
// }
}
}
\ No newline at end of file
src/modules/store-manage/CourseCatalogPage.tsx
View file @
cb715f0a
...
@@ -164,7 +164,6 @@ function CourseCatalogPage() {
...
@@ -164,7 +164,6 @@ function CourseCatalogPage() {
return
(
return
(
<
div
className=
" page course-catalog-page"
>
<
div
className=
" page course-catalog-page"
>
<
div
className=
"page-content"
>
<
div
className=
"content-header"
>
课程分类
</
div
>
<
div
className=
"content-header"
>
课程分类
</
div
>
<
div
className=
"box"
>
<
div
className=
"box"
>
<
div
className=
"box-header"
>
<
div
className=
"box-header"
>
...
@@ -191,6 +190,8 @@ function CourseCatalogPage() {
...
@@ -191,6 +190,8 @@ function CourseCatalogPage() {
}
}
}
}
}
}
dataSource=
{
courseCatalogList
}
dataSource=
{
courseCatalogList
}
className=
"catalog-tabel"
rowClassName=
{
(
record
,
index
)
=>
{
if
(
index
%
2
===
0
){
return
'odd-row'
}
else
{
return
'even-row'
}}
}
/>
/>
</
div
>
</
div
>
<
div
className=
"box-footer"
>
<
div
className=
"box-footer"
>
...
@@ -214,7 +215,6 @@ function CourseCatalogPage() {
...
@@ -214,7 +215,6 @@ function CourseCatalogPage() {
{
{
secondCatalogModalVisible
&&
<
SecondCatalogAddOrEditModal
modalType=
{
secondCatalogModalType
}
parentId=
{
parentCatalogId
}
parentName=
{
parentCatalogName
}
onClose=
{
()
=>
{
setSecondCatalogModalVisible
(
false
)}
}
choosedItem=
{
choosedItem
}
refreshCatalogList=
{
getCourseCatalogList
}
/>
secondCatalogModalVisible
&&
<
SecondCatalogAddOrEditModal
modalType=
{
secondCatalogModalType
}
parentId=
{
parentCatalogId
}
parentName=
{
parentCatalogName
}
onClose=
{
()
=>
{
setSecondCatalogModalVisible
(
false
)}
}
choosedItem=
{
choosedItem
}
refreshCatalogList=
{
getCourseCatalogList
}
/>
}
}
</
div
>
</
div
>
</
div
>
);
);
}
}
...
...
src/modules/store-manage/EmployeeAddOrEditModal.less
View file @
cb715f0a
.employee-add-modal {
.employee-add-modal {
.ant-modal-body {
height: 247px;
}
.mt-4 {
.mt-4 {
margin-bottom:-6px !important
margin-bottom:-6px !important
}
}
...
...
src/modules/store-manage/EmployeeAddOrEditModal.tsx
View file @
cb715f0a
...
@@ -208,6 +208,7 @@ function AddEmployeeModal(props: AddEmployeeModalProps) {
...
@@ -208,6 +208,7 @@ function AddEmployeeModal(props: AddEmployeeModalProps) {
onCancel=
{
props
.
onClose
}
onCancel=
{
props
.
onClose
}
onOk=
{
handleOk
}
onOk=
{
handleOk
}
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
>
>
<
Row
>
<
Row
>
<
Col
span=
{
16
}
>
<
Col
span=
{
16
}
>
...
...
src/modules/store-manage/EmployeesManagePage.less
View file @
cb715f0a
...
@@ -23,4 +23,7 @@
...
@@ -23,4 +23,7 @@
margin-right: 20px;
margin-right: 20px;
}
}
}
}
.ant-checkbox-wrapper {
margin-right: 4px !important;
}
}
}
src/modules/store-manage/EmployeesManagePage.tsx
View file @
cb715f0a
...
@@ -305,7 +305,6 @@ function EmployeesManagePage() {
...
@@ -305,7 +305,6 @@ function EmployeesManagePage() {
return
(
return
(
<
div
className=
" page employee-manage-page"
>
<
div
className=
" page employee-manage-page"
>
<
div
className=
"page-content"
>
<
div
className=
"content-header"
>
员工管理
</
div
>
<
div
className=
"content-header"
>
员工管理
</
div
>
<
div
className=
"box"
>
<
div
className=
"box"
>
<
div
className=
"box-header"
>
<
div
className=
"box-header"
>
...
@@ -314,7 +313,7 @@ function EmployeesManagePage() {
...
@@ -314,7 +313,7 @@ function EmployeesManagePage() {
display
:
"flex"
,
display
:
"flex"
,
alignItems
:
"center"
,
alignItems
:
"center"
,
justifyContent
:
"flex-start"
,
justifyContent
:
"flex-start"
,
padding
:
"
15px 0 10
px"
,
padding
:
"
0px 0 16
px"
,
}
}
}
}
>
>
<
div
>
<
div
>
...
@@ -351,6 +350,7 @@ function EmployeesManagePage() {
...
@@ -351,6 +350,7 @@ function EmployeesManagePage() {
}
}
setQuery
(
_query
);
setQuery
(
_query
);
}
}
}
}
enterButton=
{
<
span
className=
"icon iconfont"
>

</
span
>
}
/>
/>
</
div
>
</
div
>
...
@@ -427,7 +427,6 @@ function EmployeesManagePage() {
...
@@ -427,7 +427,6 @@ function EmployeesManagePage() {
</
div
>
</
div
>
</
div
>
</
div
>
{
model
}
{
model
}
</
div
>
</
div
>
</
div
>
);
);
}
}
...
...
src/modules/store-manage/StoreDecorationPage.less
View file @
cb715f0a
.store-decoration-page {
.store-decoration-page {
.box {
padding-top:11px!important;
}
thead {
thead {
display: none;
display: none;
}
}
...
...
src/modules/store-manage/StoreDecorationPage.tsx
View file @
cb715f0a
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* @Author: wufan
* @Author: wufan
* @Date: 2020-11-30 10:47:38
* @Date: 2020-11-30 10:47:38
* @LastEditors: wufan
* @LastEditors: wufan
* @LastEditTime: 2021-0
1-09 15:59:32
* @LastEditTime: 2021-0
2-01 14:12:38
* @Description: 店铺装修页面
* @Description: 店铺装修页面
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/
*/
...
@@ -31,7 +31,6 @@ function StoreDecorationPage(props: StoreDecoprationProps) {
...
@@ -31,7 +31,6 @@ function StoreDecorationPage(props: StoreDecoprationProps) {
return
(
return
(
<
div
className=
"page store-decoration-page"
>
<
div
className=
"page store-decoration-page"
>
<
div
className=
"page-content"
>
<
div
className=
"content-header"
>
店铺装修
</
div
>
<
div
className=
"content-header"
>
店铺装修
</
div
>
<
div
className=
"box"
>
<
div
className=
"box"
>
<
Tabs
<
Tabs
...
@@ -53,7 +52,6 @@ function StoreDecorationPage(props: StoreDecoprationProps) {
...
@@ -53,7 +52,6 @@ function StoreDecorationPage(props: StoreDecoprationProps) {
}
}
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
);
);
}
}
...
...
src/modules/store-manage/StoreH5DecorationTab.jsx
View file @
cb715f0a
/*
/*
* @Author: wufan
* @Author: wufan
* @Date: 2020-11-30 10:47:38
* @Date: 2020-11-30 10:47:38
* @LastEditors:
wuf
an
* @LastEditors:
zhangleyu
an
* @LastEditTime: 2021-0
1-18 21:22:44
* @LastEditTime: 2021-0
2-01 14:02:11
* @Description: web店铺banner页面
* @Description: web店铺banner页面
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/
*/
...
@@ -164,9 +164,10 @@ class StoreH5Decoration extends React.Component {
...
@@ -164,9 +164,10 @@ class StoreH5Decoration extends React.Component {
return
confirm
({
return
confirm
({
title
:
"你确定要删除这个banner吗?"
,
title
:
"你确定要删除这个banner吗?"
,
icon
:
(
icon
:
(
<
span
className=
"icon iconfont default-confirm-icon"
>
຃
4;
</
span
>
<
span
className=
"icon iconfont default-confirm-icon"
>
຃
9;
</
span
>
),
),
okText
:
"删除"
,
okText
:
"删除"
,
okType
:
'danger'
,
cancelText
:
"取消"
,
cancelText
:
"取消"
,
onOk
:
()
=>
{
onOk
:
()
=>
{
this
.
handleDeleteDecoration
(
record
);
this
.
handleDeleteDecoration
(
record
);
...
@@ -425,6 +426,7 @@ class StoreH5Decoration extends React.Component {
...
@@ -425,6 +426,7 @@ class StoreH5Decoration extends React.Component {
this
.
setState
({
visible
:
false
});
this
.
setState
({
visible
:
false
});
}
}
}
}
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
footer=
{
[
footer=
{
[
<
Button
<
Button
key=
"back"
key=
"back"
...
...
src/modules/store-manage/StoreWebDecorationTab.jsx
View file @
cb715f0a
...
@@ -163,9 +163,10 @@ class StoreWebDecoration extends React.Component {
...
@@ -163,9 +163,10 @@ class StoreWebDecoration extends React.Component {
return
confirm
({
return
confirm
({
title
:
"你确定要删除这个banner吗?"
,
title
:
"你确定要删除这个banner吗?"
,
icon
:
(
icon
:
(
<
span
className=
"icon iconfont default-confirm-icon"
>
຃
4;
</
span
>
<
span
className=
"icon iconfont default-confirm-icon"
>
຃
9;
</
span
>
),
),
okText
:
"删除"
,
okText
:
"删除"
,
okType
:
'danger'
,
cancelText
:
"取消"
,
cancelText
:
"取消"
,
onOk
:
()
=>
{
onOk
:
()
=>
{
this
.
handleDeleteDecoration
(
record
);
this
.
handleDeleteDecoration
(
record
);
...
@@ -423,6 +424,7 @@ class StoreWebDecoration extends React.Component {
...
@@ -423,6 +424,7 @@ class StoreWebDecoration extends React.Component {
this
.
setState
({
visible
:
false
});
this
.
setState
({
visible
:
false
});
}
}
}
}
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
footer=
{
[
footer=
{
[
<
Button
<
Button
key=
"back"
key=
"back"
...
...
src/modules/store-manage/UserManagePage.tsx
View file @
cb715f0a
/*
/*
* @Author: wufan
* @Author: wufan
* @Date: 2020-11-30 10:47:38
* @Date: 2020-11-30 10:47:38
* @LastEditors:
wuf
an
* @LastEditors:
zhangleyu
an
* @LastEditTime: 202
0-12-14 19:49:52
* @LastEditTime: 202
1-02-02 10:22:34
* @Description: 用户管理页面
* @Description: 用户管理页面
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/
*/
...
@@ -81,7 +81,6 @@ function UserManagePage() {
...
@@ -81,7 +81,6 @@ function UserManagePage() {
return
(
return
(
<
div
className=
" page user-manage-page"
>
<
div
className=
" page user-manage-page"
>
<
div
className=
"page-content"
>
<
div
className=
"content-header"
>
用户管理
</
div
>
<
div
className=
"content-header"
>
用户管理
</
div
>
<
div
className=
"box"
>
<
div
className=
"box"
>
<
div
className=
"box-header"
>
<
div
className=
"box-header"
>
...
@@ -118,6 +117,7 @@ function UserManagePage() {
...
@@ -118,6 +117,7 @@ function UserManagePage() {
}
}
setQuery
(
_query
);
setQuery
(
_query
);
}
}
}
}
enterButton=
{
<
span
className=
"icon iconfont"
>

</
span
>
}
/>
/>
</
div
>
</
div
>
...
@@ -168,7 +168,6 @@ function UserManagePage() {
...
@@ -168,7 +168,6 @@ function UserManagePage() {
/>
/>
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
);
);
}
}
...
...
src/modules/store-manage/modal/CatalogAddOrEditModal.tsx
View file @
cb715f0a
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* @Author: wufan
* @Author: wufan
* @Date: 2020-11-27 16:21:49
* @Date: 2020-11-27 16:21:49
* @LastEditors: zhangleyuan
* @LastEditors: zhangleyuan
* @LastEditTime: 202
0-12-15 16:12:32
* @LastEditTime: 202
1-02-01 14:02:23
* @Description: Description
* @Description: Description
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/
*/
...
@@ -84,6 +84,7 @@ function CatalogAddOrEditModal(props: CatalogAddOrEditModalProps) {
...
@@ -84,6 +84,7 @@ function CatalogAddOrEditModal(props: CatalogAddOrEditModalProps) {
</
Button
>
</
Button
>
]
}
]
}
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
>
>
<
Form
<
Form
labelCol=
{
{
span
:
5
}
}
labelCol=
{
{
span
:
5
}
}
...
...
src/modules/store-manage/modal/SecondCatalogAddOrEditModal.tsx
View file @
cb715f0a
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* @Author: wufan
* @Author: wufan
* @Date: 2020-11-27 16:21:49
* @Date: 2020-11-27 16:21:49
* @LastEditors: zhangleyuan
* @LastEditors: zhangleyuan
* @LastEditTime: 202
0-12-15 16:13:27
* @LastEditTime: 202
1-02-01 14:02:30
* @Description: Description
* @Description: Description
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/
*/
...
@@ -139,6 +139,7 @@ function SecondCatalogAddOrEditModal(props: SecondCatalogAddOrEditModalProps) {
...
@@ -139,6 +139,7 @@ function SecondCatalogAddOrEditModal(props: SecondCatalogAddOrEditModalProps) {
</
Button
>
</
Button
>
]
}
]
}
maskClosable=
{
false
}
maskClosable=
{
false
}
closeIcon=
{
<
span
className=
"icon iconfont modal-close-icon"
>

</
span
>
}
>
>
<
Form
<
Form
labelCol=
{
{
span
:
6
}
}
labelCol=
{
{
span
:
6
}
}
...
@@ -168,9 +169,11 @@ function SecondCatalogAddOrEditModal(props: SecondCatalogAddOrEditModalProps) {
...
@@ -168,9 +169,11 @@ function SecondCatalogAddOrEditModal(props: SecondCatalogAddOrEditModalProps) {
style=
{
{
width
:
240
}
}
style=
{
{
width
:
240
}
}
defaultValue=
{
parentName
}
defaultValue=
{
parentName
}
onPopupScroll=
{
handleScroll
}
onPopupScroll=
{
handleScroll
}
suffixIcon=
{
<
span
className=
"icon iconfont"
style=
{
{
fontSize
:
'12px'
,
color
:
'#BFBFBF'
}
}
>

</
span
>
}
onChange=
{
(
value
)
=>
{
onChange=
{
(
value
)
=>
{
setSelectParentId
(
String
(
value
))
setSelectParentId
(
String
(
value
))
}
}
}
}
>
>
{
_
.
map
(
optionList
,
(
item
:
any
,
index
)
=>
{
{
_
.
map
(
optionList
,
(
item
:
any
,
index
)
=>
{
return
<
Option
id=
{
item
.
id
}
value=
{
item
.
id
}
>
{
item
.
categoryName
}
</
Option
>
return
<
Option
id=
{
item
.
id
}
value=
{
item
.
id
}
>
{
item
.
categoryName
}
</
Option
>
...
...
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