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
27a89940
Commit
27a89940
authored
Jul 08, 2021
by
yuananting
Browse files
Options
Browse Files
Download
Plain Diff
fix:解决合并周优化的分支冲突
parents
1f5b217c
961679f4
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
419 additions
and
371 deletions
+419
-371
src/modules/course-manage/components/LiveCourseList.jsx
+120
-107
src/modules/course-manage/components/LiveCourseList.less
+56
-39
src/modules/course-manage/offline-course/components/OfflineCourseList.jsx
+7
-9
src/modules/course-manage/video-course/components/VideoCourseList.jsx
+50
-53
src/modules/plan-manage/components/PlanList.jsx
+8
-7
src/modules/plan-manage/components/TrainingTask.less
+109
-108
src/modules/plan-manage/modal/relatedCourseModal.jsx
+22
-10
src/modules/root/Header.jsx
+9
-9
src/modules/root/Header.less
+10
-7
src/modules/teach-tool/examination-manager/Index.tsx
+2
-1
src/modules/teach-tool/paper-manage/components/PaperList.less
+22
-20
src/modules/teach-tool/question-manage/Index.less
+4
-1
No files found.
src/modules/course-manage/components/LiveCourseList.jsx
View file @
27a89940
...
@@ -11,7 +11,7 @@ import college from '@/common/lottie/college';
...
@@ -11,7 +11,7 @@ import college from '@/common/lottie/college';
import
{
PageControl
,
XMTable
}
from
'@/components'
;
import
{
PageControl
,
XMTable
}
from
'@/components'
;
import
DownloadLiveModal
from
'@/components/DownloadLiveModal'
;
import
DownloadLiveModal
from
'@/components/DownloadLiveModal'
;
import
BaseService
from
'@/domains/basic-domain/baseService'
;
import
BaseService
from
'@/domains/basic-domain/baseService'
;
import
{
appId
,
LIVE_SHARE
}
from
'@/domains/course-domain/constants'
;
import
{
LIVE_SHARE
}
from
'@/domains/course-domain/constants'
;
import
CourseService
from
'@/domains/course-domain/CourseService'
;
import
CourseService
from
'@/domains/course-domain/CourseService'
;
import
{
QuestionCircleOutlined
}
from
'@ant-design/icons'
;
import
{
QuestionCircleOutlined
}
from
'@ant-design/icons'
;
import
{
Dropdown
,
message
,
Modal
,
Switch
,
Tooltip
}
from
'antd'
;
import
{
Dropdown
,
message
,
Modal
,
Switch
,
Tooltip
}
from
'antd'
;
...
@@ -66,7 +66,6 @@ class LiveCourseList extends React.Component {
...
@@ -66,7 +66,6 @@ class LiveCourseList extends React.Component {
}
}
// 显示分享弹窗
// 显示分享弹窗
handleShowShareModal
=
(
item
,
needStr
=
false
)
=>
{
handleShowShareModal
=
(
item
,
needStr
=
false
)
=>
{
const
_appId
=
appId
;
const
{
liveCourseId
}
=
item
;
const
{
liveCourseId
}
=
item
;
const
htmlUrl
=
`
${
LIVE_SHARE
}
live_detail/
${
liveCourseId
}
?id=
${
User
.
getStoreId
()}
`
;
const
htmlUrl
=
`
${
LIVE_SHARE
}
live_detail/
${
liveCourseId
}
?id=
${
User
.
getStoreId
()}
`
;
...
@@ -93,13 +92,8 @@ class LiveCourseList extends React.Component {
...
@@ -93,13 +92,8 @@ class LiveCourseList extends React.Component {
};
};
//改变上架状态
//改变上架状态
changeShelfState
=
(
index
,
item
,
checked
)
=>
{
changeShelfState
=
(
index
,
item
,
checked
)
=>
{
let
_shelfState
=
checked
?
"YES"
:
"NO"
let
_shelfState
=
checked
?
'YES'
:
'NO'
;
// if (_shelfState === 'NO') {
// _shelfState = 'YES';
// } else {
// _shelfState = 'NO';
// }
const
params
=
{
const
params
=
{
liveCourseId
:
item
.
liveCourseId
,
liveCourseId
:
item
.
liveCourseId
,
shelfState
:
_shelfState
,
shelfState
:
_shelfState
,
...
@@ -111,7 +105,7 @@ class LiveCourseList extends React.Component {
...
@@ -111,7 +105,7 @@ class LiveCourseList extends React.Component {
}
else
{
}
else
{
message
.
success
(
'已取消展示'
);
message
.
success
(
'已取消展示'
);
}
}
this
.
props
.
changeShelfState
(
index
,
_shelfState
)
this
.
props
.
changeShelfState
(
index
,
_shelfState
);
}
}
});
});
};
};
...
@@ -125,25 +119,15 @@ class LiveCourseList extends React.Component {
...
@@ -125,25 +119,15 @@ class LiveCourseList extends React.Component {
});
});
};
};
parseColumns
=
()
=>
{
parseColumns
=
()
=>
{
const
menu
=
(
item
)
=>
(
<
div
className=
'live-course-more-menu'
>
<
div
>
上课记录
</
div
>
<
div
onClick=
{
()
=>
{
this
.
handleShowRepeatModal
(
item
);
}
}
>
回放记录
</
div
>
</
div
>
);
let
columns
;
let
columns
;
const
userRole
=
User
.
getUserRole
();
const
userRole
=
User
.
getUserRole
();
if
(
userRole
!==
'CloudLecturer'
)
{
if
(
userRole
!==
'CloudLecturer'
)
{
columns
=
[
columns
=
[
{
{
title
:
'直播课'
,
title
:
'直播课'
,
width
:
'23%'
,
key
:
'course'
,
key
:
'course'
,
fixed
:
'left'
,
dataIndex
:
'courseName'
,
dataIndex
:
'courseName'
,
render
:
(
val
,
record
)
=>
{
render
:
(
val
,
record
)
=>
{
let
hasCover
=
false
;
let
hasCover
=
false
;
...
@@ -152,21 +136,28 @@ class LiveCourseList extends React.Component {
...
@@ -152,21 +136,28 @@ class LiveCourseList extends React.Component {
{
record
.
courseMediaVOS
.
map
((
item
,
index
)
=>
{
{
record
.
courseMediaVOS
.
map
((
item
,
index
)
=>
{
if
(
item
.
contentType
===
'COVER'
)
{
if
(
item
.
contentType
===
'COVER'
)
{
hasCover
=
true
;
hasCover
=
true
;
return
<
img
className=
'course-cover'
src=
{
item
.
mediaUrl
}
/>;
return
<
img
key=
{
item
.
mediaContent
+
index
}
className=
'course-cover'
src=
{
item
.
mediaUrl
}
alt=
''
/>;
}
else
{
return
null
;
}
}
})
}
})
}
{
!
hasCover
&&
<
img
className=
'course-cover'
src=
{
'https://image.xiaomaiketang.com/xm/Yip2YtFDwH.png'
}
/>
}
{
!
hasCover
&&
<
img
className=
'course-cover'
src=
{
'https://image.xiaomaiketang.com/xm/Yip2YtFDwH.png'
}
alt=
''
/>
}
<
div
>
<
div
>
{
record
.
courseName
.
length
>
17
?
(
<
Choose
>
<
Tooltip
title=
{
record
.
courseName
}
>
<
When
condition=
{
record
.
courseName
.
length
>
14
}
>
<
Tooltip
title=
{
record
.
courseName
}
>
<
div
className=
'course-name'
>
{
record
.
courseName
}
</
div
>
</
Tooltip
>
</
When
>
<
Otherwise
>
{
' '
}
<
div
className=
'course-name'
>
{
record
.
courseName
}
</
div
>
<
div
className=
'course-name'
>
{
record
.
courseName
}
</
div
>
</
Tooltip
>
</
Otherwise
>
)
:
(
</
Choose
>
<
div
className=
'course-name'
>
{
record
.
courseName
}
</
div
>
)
}
<
div
>
<
div
>
<
span
className=
'course-time'
>
<
span
className=
'course-time'
>
{
formatDate
(
'YYYY-MM-DD H:i'
,
parseInt
(
record
.
startTime
))
}
~
{
formatDate
(
'H:i'
,
parseInt
(
record
.
endTime
))
}
{
window
.
formatDate
(
'YYYY-MM-DD H:i'
,
parseInt
(
record
.
startTime
))
}
~
{
window
.
formatDate
(
'H:i'
,
parseInt
(
record
.
endTime
))
}
</
span
>
</
span
>
<
span
<
span
className=
'course-status'
className=
'course-status'
...
@@ -175,31 +166,35 @@ class LiveCourseList extends React.Component {
...
@@ -175,31 +166,35 @@ class LiveCourseList extends React.Component {
</
span
>
</
span
>
</
div
>
</
div
>
<
div
className=
'teacher-assistant'
>
<
div
className=
'teacher-assistant'
>
{
record
.
teacherName
&&
record
.
teacherName
.
length
>
4
?
(
<
Choose
>
<
Tooltip
title=
{
record
.
teacherName
}
>
<
When
condition=
{
record
.
teacherName
&&
record
.
teacherName
.
length
>
4
}
>
<
Tooltip
title=
{
record
.
teacherName
}
>
<
span
className=
'teacher'
>
讲师:
{
record
.
teacherName
}
</
span
>
</
Tooltip
>
</
When
>
<
Otherwise
>
<
span
className=
'teacher'
>
讲师:
{
record
.
teacherName
}
</
span
>
<
span
className=
'teacher'
>
讲师:
{
record
.
teacherName
}
</
span
>
</
Tooltip
>
</
Otherwise
>
)
:
(
</
Choose
>
<
span
className=
'teacher'
>
讲师:
{
record
.
teacherName
}
</
span
>
)
}
{
record
.
admins
.
length
>
0
&&
(
<
If
condition=
{
record
.
admins
.
length
>
0
}
>
<>
<
span
className=
'split'
>
|
</
span
>
<
span
className=
'split'
>
|
</
span
>
<
Choose
>
{
this
.
handleAdminName
(
record
.
admins
).
length
>
4
?
(
<
When
condition=
{
this
.
handleAdminName
(
record
.
admins
).
length
>
4
}
>
<
Tooltip
title=
{
this
.
handleAdminName
(
record
.
admins
)
}
>
<
Tooltip
title=
{
this
.
handleAdminName
(
record
.
admins
)
}
>
<
span
className=
'assistant'
>
<
span
className=
'assistant'
>
助教:
助教:
{
record
.
admins
.
map
((
item
,
index
)
=>
{
{
record
.
admins
.
map
((
item
,
index
)
=>
{
return
(
return
(
<
span
>
<
span
key=
{
item
.
adminId
+
index
}
>
{
item
.
adminName
}
{
index
<
record
.
admins
.
length
-
1
&&
<
span
>
、
</
span
>
}{
' '
}
{
item
.
adminName
}
{
index
<
record
.
admins
.
length
-
1
&&
<
span
>
、
</
span
>
}{
' '
}
</
span
>
</
span
>
);
);
})
}
})
}
</
span
>
</
span
>
</
Tooltip
>
</
Tooltip
>
)
:
(
</
When
>
<
Otherwise
>
<
span
className=
'assistant'
>
<
span
className=
'assistant'
>
助教:
助教:
{
record
.
admins
.
map
((
item
,
index
)
=>
{
{
record
.
admins
.
map
((
item
,
index
)
=>
{
...
@@ -210,9 +205,9 @@ class LiveCourseList extends React.Component {
...
@@ -210,9 +205,9 @@ class LiveCourseList extends React.Component {
);
);
})
}
})
}
</
span
>
</
span
>
)
}
</
Otherwise
>
</>
</
Choose
>
)
}
</
If
>
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
...
@@ -287,10 +282,13 @@ class LiveCourseList extends React.Component {
...
@@ -287,10 +282,13 @@ class LiveCourseList extends React.Component {
key
:
'shelfState'
,
key
:
'shelfState'
,
dataIndex
:
'shelfState'
,
dataIndex
:
'shelfState'
,
render
:
(
val
,
item
,
index
)
=>
{
render
:
(
val
,
item
,
index
)
=>
{
return
<
Switch
return
(
checked=
{
item
.
shelfState
===
"YES"
}
<
Switch
defaultChecked=
{
item
.
shelfState
===
'YES'
?
true
:
false
}
checked=
{
item
.
shelfState
===
'YES'
}
onChange=
{
(
checked
)
=>
this
.
changeShelfState
(
index
,
item
,
checked
)
}
/>;
defaultChecked=
{
item
.
shelfState
===
'YES'
?
true
:
false
}
onChange=
{
(
checked
)
=>
this
.
changeShelfState
(
index
,
item
,
checked
)
}
/>
);
},
},
},
},
{
{
...
@@ -301,7 +299,7 @@ class LiveCourseList extends React.Component {
...
@@ -301,7 +299,7 @@ class LiveCourseList extends React.Component {
sorter
:
true
,
sorter
:
true
,
render
:
(
val
,
item
)
=>
{
render
:
(
val
,
item
)
=>
{
// -29000:与后端约定 在初始化学院时,创建时间(标志位-29000)默认展示为'-'
// -29000:与后端约定 在初始化学院时,创建时间(标志位-29000)默认展示为'-'
return
<
span
>
{
val
===
-
29000
?
'-'
:
formatDate
(
'YYYY-MM-DD H:i'
,
val
)
}
</
span
>;
return
<
span
style=
{
{
whiteSpace
:
'nowrap'
}
}
>
{
val
===
-
29000
?
'-'
:
window
.
formatDate
(
'YYYY-MM-DD H:i'
,
val
)
}
</
span
>;
},
},
},
},
{
{
...
@@ -312,27 +310,31 @@ class LiveCourseList extends React.Component {
...
@@ -312,27 +310,31 @@ class LiveCourseList extends React.Component {
render
:
(
val
,
record
)
=>
{
render
:
(
val
,
record
)
=>
{
return
(
return
(
<
div
className=
'related-task'
>
<
div
className=
'related-task'
>
{
record
.
relatedPlanList
?
(
<
Choose
>
<
Tooltip
title=
{
this
.
handlePlanName
(
record
.
relatedPlanList
)
}
placement=
'top'
arrowPointAtCenter
>
<
When
condition=
{
record
.
relatedPlanLis
}
>
{
record
.
relatedPlanList
.
map
((
item
,
index
)
=>
{
<
Tooltip
title=
{
this
.
handlePlanName
(
record
.
relatedPlanList
)
}
placement=
'top'
arrowPointAtCenter
>
return
(
{
record
.
relatedPlanList
.
map
((
item
,
index
)
=>
{
<
span
>
return
(
{
item
.
planName
}
{
index
<
record
.
relatedPlanList
.
length
-
1
&&
<
span
>
、
</
span
>
}{
' '
}
<
span
>
</
span
>
{
item
.
planName
}
{
index
<
record
.
relatedPlanList
.
length
-
1
&&
<
span
>
、
</
span
>
}{
' '
}
);
</
span
>
})
}
);
</
Tooltip
>
})
}
)
:
(
</
Tooltip
>
<
span
></
span
>
</
When
>
)
}
<
Otherwise
>
<
span
></
span
>
</
Otherwise
>
</
Choose
>
</
div
>
</
div
>
);
);
},
},
},
},
{
{
title
:
'操作'
,
title
:
'操作'
,
width
:
'15%'
,
width
:
210
,
key
:
'operate'
,
key
:
'operate'
,
fixed
:
'right'
,
dataIndex
:
'operate'
,
dataIndex
:
'operate'
,
render
:
(
val
,
item
)
=>
{
render
:
(
val
,
item
)
=>
{
return
(
return
(
...
@@ -424,21 +426,25 @@ class LiveCourseList extends React.Component {
...
@@ -424,21 +426,25 @@ class LiveCourseList extends React.Component {
{
record
.
courseMediaVOS
.
map
((
item
,
index
)
=>
{
{
record
.
courseMediaVOS
.
map
((
item
,
index
)
=>
{
if
(
item
.
contentType
===
'COVER'
)
{
if
(
item
.
contentType
===
'COVER'
)
{
hasCover
=
true
;
hasCover
=
true
;
return
<
img
className=
'course-cover'
src=
{
item
.
mediaUrl
}
/>;
return
<
img
className=
'course-cover'
src=
{
item
.
mediaUrl
}
alt=
''
/>;
}
}
})
}
})
}
{
!
hasCover
&&
<
img
className=
'course-cover'
src=
{
'https://image.xiaomaiketang.com/xm/Yip2YtFDwH.png'
}
/>
}
{
!
hasCover
&&
<
img
className=
'course-cover'
src=
{
'https://image.xiaomaiketang.com/xm/Yip2YtFDwH.png'
}
alt=
''
/>
}
<
div
>
<
div
>
{
record
.
courseName
.
length
>
17
?
(
<
Choose
>
<
Tooltip
title=
{
record
.
courseName
}
>
<
When
condition=
{
record
.
courseName
.
length
>
17
}
>
<
Tooltip
title=
{
record
.
courseName
}
>
<
div
className=
'course-name'
>
{
record
.
courseName
}
</
div
>
</
Tooltip
>
</
When
>
<
Otherwise
>
<
div
className=
'course-name'
>
{
record
.
courseName
}
</
div
>
<
div
className=
'course-name'
>
{
record
.
courseName
}
</
div
>
</
Tooltip
>
</
Otherwise
>
)
:
(
</
Choose
>
<
div
className=
'course-name'
>
{
record
.
courseName
}
</
div
>
)
}
<
div
>
<
div
>
<
span
className=
'course-time'
>
<
span
className=
'course-time'
>
{
formatDate
(
'YYYY-MM-DD H:i'
,
parseInt
(
record
.
startTime
))
}
~
{
formatDate
(
'H:i'
,
parseInt
(
record
.
endTime
))
}
{
window
.
formatDate
(
'YYYY-MM-DD H:i'
,
parseInt
(
record
.
startTime
))
}
~
{
window
.
formatDate
(
'H:i'
,
parseInt
(
record
.
endTime
))
}
</
span
>
</
span
>
<
span
<
span
className=
'course-status'
className=
'course-status'
...
@@ -447,18 +453,21 @@ class LiveCourseList extends React.Component {
...
@@ -447,18 +453,21 @@ class LiveCourseList extends React.Component {
</
span
>
</
span
>
</
div
>
</
div
>
<
div
className=
'teacher-assistant'
>
<
div
className=
'teacher-assistant'
>
{
record
.
teacherName
&&
record
.
teacherName
.
length
>
4
?
(
<
Choose
>
<
Tooltip
title=
{
record
.
teacherName
}
>
<
When
condition=
{
record
.
teacherName
&&
record
.
teacherName
.
length
>
4
}
>
<
Tooltip
title=
{
record
.
teacherName
}
>
<
span
className=
'teacher'
>
讲师:
{
record
.
teacherName
}
</
span
>
</
Tooltip
>
</
When
>
<
Otherwise
>
<
span
className=
'teacher'
>
讲师:
{
record
.
teacherName
}
</
span
>
<
span
className=
'teacher'
>
讲师:
{
record
.
teacherName
}
</
span
>
</
Tooltip
>
</
Otherwise
>
)
:
(
</
Choose
>
<
span
className=
'teacher'
>
讲师:
{
record
.
teacherName
}
</
span
>
)
}
{
record
.
admins
.
length
>
0
&&
(
<
If
condition=
{
record
.
admins
.
length
>
0
}
>
<>
<
span
className=
'split'
>
|
</
span
>
<
span
className=
'split'
>
|
</
span
>
<
Choose
>
{
this
.
handleAdminName
(
record
.
admins
).
length
>
4
?
(
<
When
condition=
{
this
.
handleAdminName
(
record
.
admins
).
length
>
4
}
>
<
Tooltip
title=
{
this
.
handleAdminName
(
record
.
admins
)
}
>
<
Tooltip
title=
{
this
.
handleAdminName
(
record
.
admins
)
}
>
<
span
className=
'assistant'
>
<
span
className=
'assistant'
>
助教:
助教:
...
@@ -471,7 +480,8 @@ class LiveCourseList extends React.Component {
...
@@ -471,7 +480,8 @@ class LiveCourseList extends React.Component {
})
}
})
}
</
span
>
</
span
>
</
Tooltip
>
</
Tooltip
>
)
:
(
</
When
>
<
Otherwise
>
<
span
className=
'assistant'
>
<
span
className=
'assistant'
>
助教:
助教:
{
record
.
admins
.
map
((
item
,
index
)
=>
{
{
record
.
admins
.
map
((
item
,
index
)
=>
{
...
@@ -482,9 +492,9 @@ class LiveCourseList extends React.Component {
...
@@ -482,9 +492,9 @@ class LiveCourseList extends React.Component {
);
);
})
}
})
}
</
span
>
</
span
>
)
}
</
Otherwise
>
</>
</
Choose
>
)
}
</
If
>
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
...
@@ -544,7 +554,7 @@ class LiveCourseList extends React.Component {
...
@@ -544,7 +554,7 @@ class LiveCourseList extends React.Component {
dataIndex
:
'created'
,
dataIndex
:
'created'
,
sorter
:
true
,
sorter
:
true
,
render
:
(
val
,
item
)
=>
{
render
:
(
val
,
item
)
=>
{
return
<
span
>
{
formatDate
(
'YYYY-MM-DD H:i'
,
val
)
}
</
span
>;
return
<
span
>
{
window
.
formatDate
(
'YYYY-MM-DD H:i'
,
val
)
}
</
span
>;
},
},
},
},
{
{
...
@@ -555,19 +565,22 @@ class LiveCourseList extends React.Component {
...
@@ -555,19 +565,22 @@ class LiveCourseList extends React.Component {
render
:
(
val
,
record
)
=>
{
render
:
(
val
,
record
)
=>
{
return
(
return
(
<
div
className=
'related-task'
>
<
div
className=
'related-task'
>
{
record
.
relatedPlanList
?
(
<
Choose
>
<
Tooltip
title=
{
this
.
handlePlanName
(
record
.
relatedPlanList
)
}
placement=
'top'
arrowPointAtCenter
>
<
When
condition=
{
record
.
relatedPlanList
}
>
{
record
.
relatedPlanList
.
map
((
item
,
index
)
=>
{
<
Tooltip
title=
{
this
.
handlePlanName
(
record
.
relatedPlanList
)
}
placement=
'top'
arrowPointAtCenter
>
return
(
{
record
.
relatedPlanList
.
map
((
item
,
index
)
=>
{
<
span
>
return
(
{
item
.
planName
}
{
index
<
record
.
relatedPlanList
.
length
-
1
&&
<
span
>
、
</
span
>
}{
' '
}
<
span
>
</
span
>
{
item
.
planName
}
{
index
<
record
.
relatedPlanList
.
length
-
1
&&
<
span
>
、
</
span
>
}{
' '
}
);
</
span
>
})
}
);
</
Tooltip
>
})
}
)
:
(
</
Tooltip
>
<
span
></
span
>
</
When
>
)
}
<
Otherwise
>
<
span
></
span
>
</
Otherwise
>
</
Choose
>
</
div
>
</
div
>
);
);
},
},
...
@@ -578,7 +591,7 @@ class LiveCourseList extends React.Component {
...
@@ -578,7 +591,7 @@ class LiveCourseList extends React.Component {
};
};
handleAdminName
=
(
adminArray
)
=>
{
handleAdminName
=
(
adminArray
)
=>
{
let
adminStr
=
''
;
let
adminStr
=
''
;
adminArray
.
map
((
item
,
index
)
=>
{
adminArray
.
forEach
((
item
,
index
)
=>
{
if
(
index
<
adminArray
.
length
-
1
)
{
if
(
index
<
adminArray
.
length
-
1
)
{
adminStr
=
adminStr
+
item
.
adminName
+
'、'
;
adminStr
=
adminStr
+
item
.
adminName
+
'、'
;
}
else
{
}
else
{
...
@@ -590,7 +603,7 @@ class LiveCourseList extends React.Component {
...
@@ -590,7 +603,7 @@ class LiveCourseList extends React.Component {
handlePlanName
=
(
planArray
)
=>
{
handlePlanName
=
(
planArray
)
=>
{
let
planStr
=
''
;
let
planStr
=
''
;
planArray
.
map
((
item
,
index
)
=>
{
planArray
.
forEach
((
item
,
index
)
=>
{
if
(
index
<
planArray
.
length
-
1
)
{
if
(
index
<
planArray
.
length
-
1
)
{
planStr
=
planStr
+
item
.
planName
+
'、'
;
planStr
=
planStr
+
item
.
planName
+
'、'
;
}
else
{
}
else
{
...
@@ -687,7 +700,7 @@ class LiveCourseList extends React.Component {
...
@@ -687,7 +700,7 @@ class LiveCourseList extends React.Component {
}
}
};
};
onShowSizeChange
=
(
current
,
size
)
=>
{
onShowSizeChange
=
(
current
,
size
)
=>
{
if
(
current
==
size
)
{
if
(
current
==
=
size
)
{
return
;
return
;
}
}
let
_query
=
this
.
props
.
query
;
let
_query
=
this
.
props
.
query
;
...
@@ -795,6 +808,7 @@ class LiveCourseList extends React.Component {
...
@@ -795,6 +808,7 @@ class LiveCourseList extends React.Component {
size=
'middle'
size=
'middle'
pagination=
{
false
}
pagination=
{
false
}
columns=
{
columns
}
columns=
{
columns
}
scroll=
{
{
x
:
1300
}
}
loading=
{
loading
}
loading=
{
loading
}
dataSource=
{
courseList
}
dataSource=
{
courseList
}
onChange=
{
this
.
handleChangeTable
}
onChange=
{
this
.
handleChangeTable
}
...
@@ -818,7 +832,6 @@ class LiveCourseList extends React.Component {
...
@@ -818,7 +832,6 @@ class LiveCourseList extends React.Component {
{
openCoursewareModal
&&
(
{
openCoursewareModal
&&
(
<
ManageCoursewareModal
<
ManageCoursewareModal
data=
{
editData
}
data=
{
editData
}
type=
{
type
}
onCancel=
{
()
=>
{
onCancel=
{
()
=>
{
this
.
props
.
onChange
();
this
.
props
.
onChange
();
this
.
setState
({
openCoursewareModal
:
false
});
this
.
setState
({
openCoursewareModal
:
false
});
...
@@ -846,7 +859,7 @@ class LiveCourseList extends React.Component {
...
@@ -846,7 +859,7 @@ class LiveCourseList extends React.Component {
onConfirm=
{
this
.
onConfirmSelectPlanList
}
onConfirm=
{
this
.
onConfirmSelectPlanList
}
/>
/>
)
}
)
}
<
iframe
src=
{
url
}
style=
{
{
display
:
'none'
}
}
/>
<
iframe
src=
{
url
}
style=
{
{
display
:
'none'
}
}
title=
'navigation'
/>
<
Route
path=
{
`${match.url}/live-course-data`
}
component=
{
DataList
}
/>
<
Route
path=
{
`${match.url}/live-course-data`
}
component=
{
DataList
}
/>
</
div
>
</
div
>
);
);
...
...
src/modules/course-manage/components/LiveCourseList.less
View file @
27a89940
.live-course-list {
.live-course-list {
margin-top: 12px;
margin-top: 12px;
.record__item {
.record__item {
overflow: hidden;
display: flex;
display: flex;
align-items: center;
align-items: center;
.course-cover {
.course-cover {
...
@@ -11,63 +11,61 @@
...
@@ -11,63 +11,61 @@
border-radius: 2px;
border-radius: 2px;
margin-right: 8px;
margin-right: 8px;
}
}
.course-name{
.course-name
{
font-size: 14px;
font-size: 14px;
font-weight: 500;
font-weight: 500;
color: #333333;
color: #333333;
line-height: 20px;
line-height: 20px;
font-weight: bold;
font-weight: bold;
max-width:
244
px;
max-width:
200
px;
overflow: hidden;
overflow: hidden;
text-overflow:ellipsis;
text-overflow:
ellipsis;
white-space: nowrap;
white-space: nowrap;
}
}
.course-time{
.course-time
{
font-size: 12px;
font-size: 12px;
font-weight: 400;
font-weight: 400;
color: #666666;
color: #666666;
line-height: 20px;
line-height: 20px;
}
}
.course-status {
.course-status {
font-size:
12px;
font-size:
12px;
line-height:
18px;
line-height:
18px;
display:
inline-block;
display:
inline-block;
border-radius:
2px;
border-radius:
2px;
padding:
0 8px;
padding:
0 8px;
margin-left:
4px;
margin-left:
4px;
}
}
.teacher-assistant{
.teacher-assistant
{
display:flex;
display:
flex;
.teacher{
.teacher
{
font-size: 12px;
font-size: 12px;
color: #666666;
color: #666666;
max-width: 96px;
max-width: 96px;
overflow: hidden;
overflow: hidden;
text-overflow:ellipsis;
text-overflow:
ellipsis;
white-space: nowrap;
white-space: nowrap;
display:inline-block;
display:
inline-block;
padding-top:2px;
padding-top:
2px;
}
}
.assistant{
.assistant
{
font-size: 12px;
font-size: 12px;
color: #666666;
color: #666666;
max-width: 96px;
max-width: 96px;
overflow: hidden;
overflow: hidden;
text-overflow:ellipsis;
text-overflow:
ellipsis;
white-space: nowrap;
white-space: nowrap;
display:inline-block;
display:
inline-block;
padding-top:2px;
padding-top:
2px;
}
}
.split {
.split {
margin: 0 4px;
margin: 0 4px;
color: #
BFBFBF
;
color: #
bfbfbf
;
display: inline-blcok;
display: inline-blcok;
}
}
}
}
}
}
.related-task{
.related-task
{
text-overflow: -o-ellipsis-lastline;
text-overflow: -o-ellipsis-lastline;
overflow: hidden;
overflow: hidden;
text-overflow: ellipsis;
text-overflow: ellipsis;
...
@@ -76,37 +74,37 @@
...
@@ -76,37 +74,37 @@
line-clamp: 2;
line-clamp: 2;
-webkit-box-orient: vertical;
-webkit-box-orient: vertical;
}
}
.categoryName{
.categoryName
{
font-size: 14px;
font-size: 14px;
color: #666666;
color: #666666;
line-height: 20px;
line-height: 20px;
}
}
.courseware{
.courseware
{
font-size: 14px;
font-size: 14px;
color: #2966
FF
;
color: #2966
ff
;
line-height: 20px;
line-height: 20px;
text-align:right;
text-align:
right;
cursor:pointer;
cursor:
pointer;
}
}
.quota-icon{
.quota-icon
{
color:
#2966FF
;
color:
#2966ff
;
cursor:pointer;
cursor:
pointer;
}
}
.operate {
.operate {
display: flex;
display: flex;
align-items: center;
align-items: center;
flex-wrap: wrap;
flex-wrap: wrap;
.operate__item {
.operate__item {
color: #2966
FF
;
color: #2966
ff
;
cursor: pointer;
cursor: pointer;
&.split {
&.split {
margin: 0 8px;
margin: 0 8px;
color: #
BFBFBF
;
color: #
bfbfbf
;
}
}
}
}
}
}
.operate-text {
.operate-text {
color: #2966
FF
;
color: #2966
ff
;
cursor: pointer;
cursor: pointer;
}
}
.course-start-end {
.course-start-end {
...
@@ -135,7 +133,27 @@
...
@@ -135,7 +133,27 @@
font-size: 12px;
font-size: 12px;
}
}
}
}
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;
}
}
}
}
}
}
.live-course-more-menu {
.live-course-more-menu {
background: white;
background: white;
...
@@ -155,4 +173,4 @@
...
@@ -155,4 +173,4 @@
.type {
.type {
font-weight: 700;
font-weight: 700;
}
}
}
}
\ No newline at end of file
src/modules/course-manage/offline-course/components/OfflineCourseList.jsx
View file @
27a89940
...
@@ -10,7 +10,7 @@ import Service from '@/common/js/service';
...
@@ -10,7 +10,7 @@ import Service from '@/common/js/service';
import
User
from
'@/common/js/user'
;
import
User
from
'@/common/js/user'
;
import
college
from
'@/common/lottie/college'
;
import
college
from
'@/common/lottie/college'
;
import
{
PageControl
,
XMTable
}
from
'@/components'
;
import
{
PageControl
,
XMTable
}
from
'@/components'
;
import
{
appId
,
LIVE_SHARE
}
from
'@/domains/course-domain/constants'
;
import
{
LIVE_SHARE
}
from
'@/domains/course-domain/constants'
;
import
CourseService
from
'@/domains/course-domain/CourseService'
;
import
CourseService
from
'@/domains/course-domain/CourseService'
;
import
ShareLiveModal
from
'@/modules/course-manage/modal/ShareLiveModal'
;
import
ShareLiveModal
from
'@/modules/course-manage/modal/ShareLiveModal'
;
import
OfflineCourseData
from
'@/modules/course-manage/offline-course/OfflineCourseData'
;
import
OfflineCourseData
from
'@/modules/course-manage/offline-course/OfflineCourseData'
;
...
@@ -78,7 +78,7 @@ class OfflineCourseList extends React.Component {
...
@@ -78,7 +78,7 @@ class OfflineCourseList extends React.Component {
}
${
moment
(
startTime
).
format
(
'HH:mm'
)}
~
${
moment
(
endTime
).
format
(
'HH:mm'
)}
`
;
}
${
moment
(
startTime
).
format
(
'HH:mm'
)}
~
${
moment
(
endTime
).
format
(
'HH:mm'
)}
`
;
return
(
return
(
<
div
className=
'record__item'
>
<
div
className=
'record__item'
>
<
img
className=
'course-cover'
src=
{
coverUrl
||
defaultCoverUrl
}
/>
<
img
className=
'course-cover'
src=
{
coverUrl
||
defaultCoverUrl
}
alt=
''
/>
<
div
style=
{
{
width
:
175
}
}
>
<
div
style=
{
{
width
:
175
}
}
>
<
Tooltip
title=
{
courseName
}
>
<
Tooltip
title=
{
courseName
}
>
<
div
className=
'course-name'
>
{
courseName
}
</
div
>
<
div
className=
'course-name'
>
{
courseName
}
</
div
>
...
@@ -152,14 +152,14 @@ class OfflineCourseList extends React.Component {
...
@@ -152,14 +152,14 @@ class OfflineCourseList extends React.Component {
},
},
{
{
title
:
'报名时间'
,
title
:
'报名时间'
,
width
:
181
,
width
:
200
,
key
:
'apply'
,
key
:
'apply'
,
dataIndex
:
'apply'
,
dataIndex
:
'apply'
,
sorter
:
true
,
sorter
:
true
,
render
:
(
val
,
item
)
=>
{
render
:
(
val
,
item
)
=>
{
return
(
return
(
<
div
>
<
div
style=
{
{
whiteSpace
:
'nowrap'
}
}
>
{
item
.
startTimeApply
?
`${
formatDate('MM-DD H:i', item.startTimeApply)} ~ ${
formatDate('MM-DD H:i', item.endTimeApply)}`
:
'-'
}
{
item
.
startTimeApply
?
`${
window.formatDate('MM-DD H:i', item.startTimeApply)} ~ ${window.
formatDate('MM-DD H:i', item.endTimeApply)}`
:
'-'
}
{
item
.
whetherApplyFull
===
'YES'
&&
(
{
item
.
whetherApplyFull
===
'YES'
&&
(
<
span
<
span
style=
{
{
style=
{
{
...
@@ -185,7 +185,7 @@ class OfflineCourseList extends React.Component {
...
@@ -185,7 +185,7 @@ class OfflineCourseList extends React.Component {
dataIndex
:
'created'
,
dataIndex
:
'created'
,
sorter
:
true
,
sorter
:
true
,
render
:
(
val
)
=>
{
render
:
(
val
)
=>
{
return
formatDate
(
'YYYY-MM-DD H:i'
,
val
)
;
return
<
span
style=
{
{
whiteSpace
:
'nowrap'
}
}
>
{
window
.
formatDate
(
'YYYY-MM-DD H:i'
,
val
)
}
</
span
>
;
},
},
},
},
{
{
...
@@ -360,8 +360,6 @@ class OfflineCourseList extends React.Component {
...
@@ -360,8 +360,6 @@ class OfflineCourseList extends React.Component {
// 显示分享弹窗
// 显示分享弹窗
handleShowShareModal
=
(
record
,
needStr
=
false
)
=>
{
handleShowShareModal
=
(
record
,
needStr
=
false
)
=>
{
const
{
courseId
}
=
record
;
const
{
courseId
}
=
record
;
const
_appId
=
appId
;
const
htmlUrl
=
`
${
LIVE_SHARE
}
offline_detail/
${
courseId
}
?id=
${
User
.
getStoreId
()}
`
;
const
htmlUrl
=
`
${
LIVE_SHARE
}
offline_detail/
${
courseId
}
?id=
${
User
.
getStoreId
()}
`
;
const
longUrl
=
htmlUrl
;
const
longUrl
=
htmlUrl
;
const
{
courseName
,
courseMediaVOS
}
=
record
;
const
{
courseName
,
courseMediaVOS
}
=
record
;
...
@@ -437,7 +435,7 @@ class OfflineCourseList extends React.Component {
...
@@ -437,7 +435,7 @@ class OfflineCourseList extends React.Component {
columns=
{
this
.
parseColumns
()
}
columns=
{
this
.
parseColumns
()
}
onChange=
{
this
.
handleChangeTable
}
onChange=
{
this
.
handleChangeTable
}
pagination=
{
false
}
pagination=
{
false
}
scroll=
{
{
x
:
1
5
00
}
}
scroll=
{
{
x
:
1
3
00
}
}
bordered
bordered
className=
'offline-list-table'
className=
'offline-list-table'
/>
/>
...
...
src/modules/course-manage/video-course/components/VideoCourseList.jsx
View file @
27a89940
import
React
from
"react"
import
React
from
'react'
;
import
{
Table
,
Modal
,
message
,
Tooltip
,
Switch
,
Dropdown
}
from
"antd"
import
{
Modal
,
message
,
Tooltip
,
Switch
,
Dropdown
}
from
'antd'
;
import
_
from
"underscore"
import
_
from
'underscore'
;
import
{
PageControl
}
from
"@/components"
import
{
PageControl
}
from
'@/components'
;
import
{
LIVE_SHARE
}
from
"@/domains/course-domain/constants"
import
{
LIVE_SHARE
}
from
'@/domains/course-domain/constants'
;
import
{
Route
,
withRouter
}
from
'react-router-dom'
;
import
{
Route
,
withRouter
}
from
'react-router-dom'
;
import
ShareLiveModal
from
"@/modules/course-manage/modal/ShareLiveModal"
import
ShareLiveModal
from
'@/modules/course-manage/modal/ShareLiveModal'
;
import
WatchDataModal
from
"../modal/WatchDataModal"
import
CourseService
from
'@/domains/course-domain/CourseService'
;
import
CourseService
from
"@/domains/course-domain/CourseService"
import
RelatedPlanModal
from
'../../modal/RelatedPlanModal'
;
import
RelatedPlanModal
from
"../../modal/RelatedPlanModal"
import
User
from
'@/common/js/user'
;
import
User
from
"@/common/js/user"
import
VideoCourseDetail
from
'../VideoCourseDetail'
;
import
VideoCourseDetail
from
'../VideoCourseDetail'
;
import
WatchData
from
"./WatchData"
;
import
WatchData
from
'./WatchData'
;
import
{
XMTable
}
from
'@/components'
;
import
{
XMTable
}
from
'@/components'
;
import
college
from
'@/common/lottie/college'
;
import
college
from
'@/common/lottie/college'
;
import
"./VideoCourseList.less"
import
'./VideoCourseList.less'
;
class
VideoCourseList
extends
React
.
Component
{
class
VideoCourseList
extends
React
.
Component
{
constructor
(
props
)
{
constructor
(
props
)
{
...
@@ -36,20 +35,20 @@ class VideoCourseList extends React.Component {
...
@@ -36,20 +35,20 @@ class VideoCourseList extends React.Component {
}
}
}
}
// 跳转课程详情页
// 跳转课程详情页
handleLinkToCourseDetail
=
(
courseId
)
=>
{
handleLinkToCourseDetail
=
(
courseId
)
=>
{
const
{
match
}
=
this
.
props
;
const
{
match
}
=
this
.
props
;
window
.
RCHistory
.
push
(
`
${
match
.
url
}
/video-course-detail?courseId=
${
courseId
}
`
)
window
.
RCHistory
.
push
(
`
${
match
.
url
}
/video-course-detail?courseId=
${
courseId
}
`
);
}
};
// 观看数据弹窗
// 观看数据弹窗
handleShowWatchDataModal
=
(
item
)
=>
{
handleShowWatchDataModal
=
(
item
)
=>
{
const
{
match
}
=
this
.
props
;
const
{
match
}
=
this
.
props
;
window
.
RCHistory
.
push
({
window
.
RCHistory
.
push
({
pathname
:
`
${
match
.
url
}
/course-data?courseName=
${
item
.
courseName
}
&courseId=
${
item
.
id
}
`
pathname
:
`
${
match
.
url
}
/course-data?courseName=
${
item
.
courseName
}
&courseId=
${
item
.
id
}
`
,
})
})
;
}
}
;
// 请求表头
// 请求表头
parseColumns
=
()
=>
{
parseColumns
=
()
=>
{
...
@@ -57,22 +56,16 @@ class VideoCourseList extends React.Component {
...
@@ -57,22 +56,16 @@ class VideoCourseList extends React.Component {
const
{
ShelfLoading
}
=
this
.
state
;
const
{
ShelfLoading
}
=
this
.
state
;
const
columns
=
[
const
columns
=
[
{
{
title
:
"线上课"
,
title
:
'线上课'
,
key
:
"scheduleName"
,
key
:
'scheduleName'
,
dataIndex
:
"scheduleName"
,
dataIndex
:
'scheduleName'
,
width
:
321
,
width
:
321
,
fixed
:
'left'
,
fixed
:
'left'
,
render
:
(
val
,
record
)
=>
{
render
:
(
val
,
record
)
=>
{
const
{
coverUrl
}
=
record
;
const
{
coverUrl
}
=
record
;
return
(
return
(
<
div
className=
'record__item'
>
<
div
className=
'record__item'
>
<
img
<
img
className=
'course-cover'
src=
{
coverUrl
||
'https://image.xiaomaiketang.com/xm/mt3ZQRxGKB.png'
}
alt=
'封面图'
/>
className=
'course-cover'
src=
{
coverUrl
||
'https://image.xiaomaiketang.com/xm/mt3ZQRxGKB.png'
}
alt=
'封面图'
/>
<
Choose
>
<
Choose
>
<
When
condition=
{
record
.
courseName
.
length
>
25
}
>
<
When
condition=
{
record
.
courseName
.
length
>
25
}
>
<
Tooltip
title=
{
record
.
courseName
}
>
<
Tooltip
title=
{
record
.
courseName
}
>
...
@@ -100,8 +93,8 @@ class VideoCourseList extends React.Component {
...
@@ -100,8 +93,8 @@ class VideoCourseList extends React.Component {
</
If
>
</
If
>
</
span
>
</
span
>
),
),
key
:
"categoryName"
,
key
:
'categoryName'
,
dataIndex
:
"categoryName"
,
dataIndex
:
'categoryName'
,
width
:
150
,
width
:
150
,
render
:
(
val
,
record
)
=>
{
render
:
(
val
,
record
)
=>
{
return
(
return
(
...
@@ -123,12 +116,12 @@ class VideoCourseList extends React.Component {
...
@@ -123,12 +116,12 @@ class VideoCourseList extends React.Component {
title
:
'课节数'
,
title
:
'课节数'
,
key
:
'chapterNum'
,
key
:
'chapterNum'
,
dataIndex
:
'chapterNum'
,
dataIndex
:
'chapterNum'
,
className
:
"chapterNum"
,
className
:
'chapterNum'
,
width
:
100
,
width
:
100
,
align
:
'right'
,
align
:
'right'
,
render
:
(
val
,
item
)
=>
{
render
:
(
val
,
item
)
=>
{
return
<
div
onClick=
{
()
=>
this
.
handleLinkToCourseDetail
(
item
.
id
)
}
>
{
val
||
1
}
</
div
>
return
<
div
onClick=
{
()
=>
this
.
handleLinkToCourseDetail
(
item
.
id
)
}
>
{
val
||
1
}
</
div
>;
}
}
,
},
},
{
{
title
:
(
title
:
(
...
@@ -142,7 +135,7 @@ class VideoCourseList extends React.Component {
...
@@ -142,7 +135,7 @@ class VideoCourseList extends React.Component {
关闭后,学院内不再展示此课程,但学员仍可通过分享的海报/链接查看此课程。
关闭后,学院内不再展示此课程,但学员仍可通过分享的海报/链接查看此课程。
</
div
>
</
div
>
}
>
}
>
<
i
className=
'icon iconfont'
style=
{
{
marginLeft
:
'5px'
,
cursor
:
'pointer'
,
color
:
'#bfbfbf'
,
fontSize
:
'14px'
}
}
>
<
i
className=
'icon iconfont'
style=
{
{
marginLeft
:
'5px'
,
cursor
:
'pointer'
,
color
:
'#bfbfbf'
,
fontSize
:
'14px'
,
fontWeight
:
'normal'
}
}
>


</
i
>
</
i
>
</
Tooltip
>
</
Tooltip
>
...
@@ -165,19 +158,23 @@ class VideoCourseList extends React.Component {
...
@@ -165,19 +158,23 @@ class VideoCourseList extends React.Component {
},
},
},
},
{
{
title
:
"观看学员数"
,
title
:
'观看学员数'
,
width
:
150
,
width
:
150
,
key
:
"watchUserCount"
,
key
:
'watchUserCount'
,
dataIndex
:
"watchUserCount"
,
dataIndex
:
'watchUserCount'
,
align
:
'right'
,
align
:
'right'
,
render
:
(
val
,
item
)
=>
{
render
:
(
val
,
item
)
=>
{
return
<
div
className=
'watchUserCount'
onClick=
{
()
=>
this
.
handleShowWatchDataModal
(
item
)
}
>
{
val
||
0
}
</
div
>
return
(
}
<
div
className=
'watchUserCount'
onClick=
{
()
=>
this
.
handleShowWatchDataModal
(
item
)
}
>
{
val
||
0
}
</
div
>
);
},
},
},
{
{
title
:
"创建人"
,
title
:
'创建人'
,
key
:
"createName"
,
key
:
'createName'
,
dataIndex
:
"createName"
,
dataIndex
:
'createName'
,
width
:
100
,
width
:
100
,
render
:
(
val
)
=>
{
render
:
(
val
)
=>
{
return
(
return
(
...
@@ -188,8 +185,8 @@ class VideoCourseList extends React.Component {
...
@@ -188,8 +185,8 @@ class VideoCourseList extends React.Component {
</
Tooltip
>
</
Tooltip
>
)
}
)
}
</
div
>
</
div
>
)
)
;
}
}
,
},
},
{
{
title
:
'创建时间'
,
title
:
'创建时间'
,
...
@@ -198,7 +195,7 @@ class VideoCourseList extends React.Component {
...
@@ -198,7 +195,7 @@ class VideoCourseList extends React.Component {
dataIndex
:
'created'
,
dataIndex
:
'created'
,
sorter
:
true
,
sorter
:
true
,
render
:
(
val
)
=>
{
render
:
(
val
)
=>
{
return
formatDate
(
'YYYY-MM-DD H:i'
,
val
);
return
window
.
formatDate
(
'YYYY-MM-DD H:i'
,
val
);
},
},
},
},
{
{
...
@@ -208,7 +205,7 @@ class VideoCourseList extends React.Component {
...
@@ -208,7 +205,7 @@ class VideoCourseList extends React.Component {
dataIndex
:
'updated'
,
dataIndex
:
'updated'
,
sorter
:
true
,
sorter
:
true
,
render
:
(
val
)
=>
{
render
:
(
val
)
=>
{
return
formatDate
(
'YYYY-MM-DD H:i'
,
val
);
return
window
.
formatDate
(
'YYYY-MM-DD H:i'
,
val
);
},
},
},
},
{
{
...
@@ -224,7 +221,7 @@ class VideoCourseList extends React.Component {
...
@@ -224,7 +221,7 @@ class VideoCourseList extends React.Component {
<
Tooltip
title=
{
this
.
handlePlanName
(
record
.
relatedPlanList
)
}
placement=
'top'
arrowPointAtCenter
>
<
Tooltip
title=
{
this
.
handlePlanName
(
record
.
relatedPlanList
)
}
placement=
'top'
arrowPointAtCenter
>
{
record
.
relatedPlanList
.
map
((
item
,
index
)
=>
{
{
record
.
relatedPlanList
.
map
((
item
,
index
)
=>
{
return
(
return
(
<
span
>
<
span
key=
{
item
.
planId
}
>
{
item
.
planName
}
{
index
<
record
.
relatedPlanList
.
length
-
1
&&
<
span
>
、
</
span
>
}
{
item
.
planName
}
{
index
<
record
.
relatedPlanList
.
length
-
1
&&
<
span
>
、
</
span
>
}
</
span
>
</
span
>
);
);
...
@@ -248,7 +245,7 @@ class VideoCourseList extends React.Component {
...
@@ -248,7 +245,7 @@ class VideoCourseList extends React.Component {
render
:
(
val
,
record
)
=>
{
render
:
(
val
,
record
)
=>
{
return
(
return
(
<
div
className=
'operate'
>
<
div
className=
'operate'
>
<
If
condition=
{
type
===
"internal"
}
>
<
If
condition=
{
type
===
'internal'
}
>
<
div
className=
'operate__item'
onClick=
{
()
=>
this
.
handleShowShareModal
(
record
)
}
>
<
div
className=
'operate__item'
onClick=
{
()
=>
this
.
handleShowShareModal
(
record
)
}
>
分享
分享
</
div
>
</
div
>
...
@@ -304,7 +301,7 @@ class VideoCourseList extends React.Component {
...
@@ -304,7 +301,7 @@ class VideoCourseList extends React.Component {
handlePlanName
=
(
planArray
)
=>
{
handlePlanName
=
(
planArray
)
=>
{
let
planStr
=
''
;
let
planStr
=
''
;
planArray
.
map
((
item
,
index
)
=>
{
planArray
.
forEach
((
item
,
index
)
=>
{
if
(
index
<
planArray
.
length
-
1
)
{
if
(
index
<
planArray
.
length
-
1
)
{
planStr
=
planStr
+
item
.
planName
+
'、'
;
planStr
=
planStr
+
item
.
planName
+
'、'
;
}
else
{
}
else
{
...
...
src/modules/plan-manage/components/PlanList.jsx
View file @
27a89940
...
@@ -8,9 +8,9 @@
...
@@ -8,9 +8,9 @@
*/
*/
import
React
,
{
useState
}
from
'react'
;
import
React
,
{
useState
}
from
'react'
;
import
{
Table
,
Modal
,
message
,
Tooltip
,
Switch
,
Dropdown
}
from
'antd'
;
import
{
Modal
,
message
,
Tooltip
,
Switch
,
Dropdown
}
from
'antd'
;
import
{
withRouter
}
from
'react-router-dom'
;
import
{
withRouter
}
from
'react-router-dom'
;
import
{
PageControl
,
XMTable
}
from
"@/components"
;
import
{
PageControl
,
XMTable
}
from
'@/components'
;
import
PlanService
from
'@/domains/plan-domain/planService'
;
import
PlanService
from
'@/domains/plan-domain/planService'
;
import
SharePlanModal
from
'../modal/SharePlanModal'
;
import
SharePlanModal
from
'../modal/SharePlanModal'
;
import
{
LIVE_SHARE
}
from
'@/domains/course-domain/constants'
;
import
{
LIVE_SHARE
}
from
'@/domains/course-domain/constants'
;
...
@@ -29,6 +29,7 @@ function PlanList(props) {
...
@@ -29,6 +29,7 @@ function PlanList(props) {
key
:
'planName'
,
key
:
'planName'
,
dataIndex
:
'planName'
,
dataIndex
:
'planName'
,
width
:
'18%'
,
width
:
'18%'
,
fixed
:
'left'
,
render
:
(
val
,
record
)
=>
{
render
:
(
val
,
record
)
=>
{
return
(
return
(
<
div
className=
'plan_name_item'
>
<
div
className=
'plan_name_item'
>
...
@@ -86,7 +87,7 @@ function PlanList(props) {
...
@@ -86,7 +87,7 @@ function PlanList(props) {
dataIndex
:
'created'
,
dataIndex
:
'created'
,
sorter
:
true
,
sorter
:
true
,
render
:
(
val
)
=>
{
render
:
(
val
)
=>
{
return
window
.
formatDate
(
'YYYY-MM-DD H:i'
,
val
)
;
return
<
span
style=
{
{
whiteSpace
:
'nowrap'
}
}
>
{
window
.
formatDate
(
'YYYY-MM-DD H:i'
,
val
)
}
</
span
>
;
},
},
},
},
{
{
...
@@ -96,12 +97,12 @@ function PlanList(props) {
...
@@ -96,12 +97,12 @@ function PlanList(props) {
dataIndex
:
'updated'
,
dataIndex
:
'updated'
,
sorter
:
true
,
sorter
:
true
,
render
:
(
val
)
=>
{
render
:
(
val
)
=>
{
return
window
.
formatDate
(
'YYYY-MM-DD H:i'
,
val
)
;
return
<
span
style=
{
{
whiteSpace
:
'nowrap'
}
}
>
{
window
.
formatDate
(
'YYYY-MM-DD H:i'
,
val
)
}
</
span
>
;
},
},
},
},
{
{
title
:
'参培人数'
,
title
:
'参培人数'
,
width
:
76
,
width
:
'10%'
,
key
:
'cultureCustomerNum'
,
key
:
'cultureCustomerNum'
,
dataIndex
:
'cultureCustomerNum'
,
dataIndex
:
'cultureCustomerNum'
,
sorter
:
true
,
sorter
:
true
,
...
@@ -114,7 +115,7 @@ function PlanList(props) {
...
@@ -114,7 +115,7 @@ function PlanList(props) {
key
:
'operate'
,
key
:
'operate'
,
dataIndex
:
'operate'
,
dataIndex
:
'operate'
,
fixed
:
'right'
,
fixed
:
'right'
,
width
:
176
,
width
:
'14.5%'
,
render
:
(
val
,
record
)
=>
{
render
:
(
val
,
record
)
=>
{
return
(
return
(
<
div
className=
'operate'
>
<
div
className=
'operate'
>
...
@@ -317,7 +318,7 @@ function PlanList(props) {
...
@@ -317,7 +318,7 @@ function PlanList(props) {
scroll=
{
{
x
:
1400
}
}
scroll=
{
{
x
:
1400
}
}
className=
'plan-list-table'
className=
'plan-list-table'
renderEmpty=
{
{
renderEmpty=
{
{
description
:
<
span
style=
{
{
display
:
'block'
,
paddingBottom
:
24
}
}
>
暂无数据
</
span
>
description
:
<
span
style=
{
{
display
:
'block'
,
paddingBottom
:
24
}
}
>
暂无数据
</
span
>
,
}
}
}
}
/>
/>
<
div
className=
'box-footer'
>
<
div
className=
'box-footer'
>
...
...
src/modules/plan-manage/components/TrainingTask.less
View file @
27a89940
.training-task{
.training-task
{
thead
{
thead
{
display:
none;
display:
none;
}
}
.ant-form-item
{
.ant-form-item
{
margin-bottom:
0 !important;
margin-bottom:
0 !important;
}
}
.add-task-con{
.add-task-con {
height: 52px;
height: 52px;
background: #F7F8F9;
background: #f7f8f9;
border-radius: 2px;
border-radius: 2px;
padding:16px;
padding: 16px;
margin-top:16px;
margin-top: 16px;
.add-task-btn-disabled{
.add-task-btn-disabled {
color:#CCCCCC;
color: #cccccc;
font-size:14px;
font-size: 14px;
}
}
.add-task-btn{
.add-task-btn {
color: #2966FF;
color: #2966ff;
font-size:14px;
font-size: 14px;
}
}
}
}
}
}
.plan-sort-task-item{
.plan-sort-task-item
{
.task-con{
.task-con
{
display:flex;
display:
flex;
padding:16px;
padding:
16px;
background: #
F7F8F
9;
background: #
f7f8f
9;
border-radius: 2px;
border-radius: 2px;
justify-content: space-between;
justify-content: space-between;
align-items: center;
align-items: center;
.task-instro{
.task-instro
{
display:flex;
display:
flex;
align-items: center;
align-items: center;
.open-icon{
.open-icon
{
color:#999999;
color:
#999999;
font-size:10px;
font-size:
10px;
}
}
.task-name-con{
.task-name-con
{
display:flex;
display:
flex;
align-items: center;
align-items: center;
color:#333333;
color:
#333333;
font-size:14px;
font-size:
14px;
.number{
.number
{
margin-right:10px;
margin-right:
10px;
margin-left:10px;
margin-left:
10px;
}
}
.task-name-input{
.task-name-input
{
width: 300px;
width: 300px;
height: 32px;
height: 32px;
background: #
FFFFFF
;
background: #
ffffff
;
border-radius: 4px;
border-radius: 4px;
}
}
}
}
}
}
.operate{
.operate
{
display: none;
display: none;
.operate__item{
.operate__item
{
cursor:pointer;
cursor:
pointer;
margin-left:16px;
margin-left:
16px;
color:#666666;
color:
#666666;
font-size:14px;
font-size:
14px;
.icon{
.icon
{
font-size:14px;
font-size:
14px;
color:#999;
color:
#999;
}
}
.text{
.text
{
margin-left:8px;
margin-left:
8px;
}
}
}
}
}
}
&:hover{
&:hover
{
.operate{
.operate
{
display:block;
display:
block;
}
}
}
}
}
}
.course-box{
.course-box {
.add-course-con{
.add-course-con {
padding:16px 51px;
padding: 16px 51px;
color: #2966FF;
color: #2966ff;
font-size:14px;
font-size: 14px;
.add-course-btn-disabled{
.add-course-btn-disabled {
font-size:14px;
font-size: 14px;
color:#ccc;
color: #ccc;
}
pointer-events: none;
}
}
}
}
}
}
}
.plan-course-sort-item{
.plan-course-sort-item
{
display:flex;
display:
flex;
padding:16px 16px 16px 0px;
padding:
16px 16px 16px 0px;
margin-left:51px;
margin-left:
51px;
justify-content: space-between;
justify-content: space-between;
align-items: center;
align-items: center;
border-bottom:
1px dotted #E8E8E
8;
border-bottom:
1px dotted #e8e8e
8;
&:hover{
&:hover
{
.course-operate{
.course-operate
{
display:block;
display:
block;
}
}
}
}
.course-operate{
.course-operate
{
display: none;
display: none;
.operate__item{
.operate__item
{
cursor:pointer;
cursor:
pointer;
margin-left:16px;
margin-left:
16px;
color:#666666;
color:
#666666;
font-size:14px;
font-size:
14px;
.icon{
.icon
{
font-size:14px;
font-size:
14px;
color:#999;
color:
#999;
}
}
.text{
.text
{
margin-left:8px;
margin-left:
8px;
}
}
}
}
}
}
.course-info{
.course-info
{
.ant-form{
.ant-form
{
display:inline-block;
display:
inline-block;
}
}
.course-name-input{
.course-name-input
{
margin-right:8px;
margin-right:
8px;
}
}
.course-type{
.course-type
{
font-size:
11px;
font-size:
11px;
color:
#666666;
color:
#666666;
padding:
0px 6px;
padding:
0px 6px;
border: 1px solid #999999;
border: 1px solid #999999;
margin-right:
4px;
margin-right:
4px;
border-radius: 2px;
border-radius: 2px;
line-height: 16px;
line-height: 16px;
}
}
.course-name{
.course-name
{
color:
#666666;
color:
#666666;
font-size:
14px;
font-size:
14px;
margin-right:
8px;
margin-right:
8px;
}
}
.tip{
.tip
{
font-size:
14px;
font-size:
14px;
color:#FF4F4F
;
color: #ff4f4f
;
margin-right:
2px;
margin-right:
2px;
}
}
.course-state{
.course-state
{
color:
#999;
color:
#999;
font-size:
14px;
font-size:
14px;
}
}
}
}
}
}
src/modules/plan-manage/modal/relatedCourseModal.jsx
View file @
27a89940
...
@@ -491,7 +491,7 @@ class SelectOperatorModal extends React.Component {
...
@@ -491,7 +491,7 @@ class SelectOperatorModal extends React.Component {
}
else
{
}
else
{
_list
=
_
.
reject
(
selectLive
,
(
item
)
=>
item
.
liveCourseId
===
record
.
liveCourseId
);
_list
=
_
.
reject
(
selectLive
,
(
item
)
=>
item
.
liveCourseId
===
record
.
liveCourseId
);
}
}
if
(
_list
.
length
+
currentTaskCourseData
.
length
+
selectVideo
.
length
+
selectPicture
.
length
>
20
)
{
if
(
_list
.
length
+
currentTaskCourseData
.
length
+
selectVideo
.
internal
.
length
+
selectVideo
.
external
.
length
+
selectPicture
.
length
>
20
)
{
message
.
warning
(
'无法继续选择,一个任务最多关联20个课程'
);
message
.
warning
(
'无法继续选择,一个任务最多关联20个课程'
);
return
;
return
;
}
}
...
@@ -502,14 +502,14 @@ class SelectOperatorModal extends React.Component {
...
@@ -502,14 +502,14 @@ class SelectOperatorModal extends React.Component {
const
{
selectVideo
,
currentTaskCourseData
,
selectLive
,
selectPicture
,
videoCourseDivision
}
=
this
.
state
;
const
{
selectVideo
,
currentTaskCourseData
,
selectLive
,
selectPicture
,
videoCourseDivision
}
=
this
.
state
;
let
{
[
videoCourseDivision
]:
selectList
}
=
selectVideo
;
let
{
[
videoCourseDivision
]:
selectList
}
=
selectVideo
;
let
otherVideoCourseDivision
=
videoCourseDivision
===
'internal'
?
'external'
:
'internal'
;
let
_list
=
[];
let
_list
=
[];
if
(
selected
||
!
_
.
find
(
selectList
,
(
item
)
=>
item
.
id
===
record
.
id
))
{
if
(
selected
||
!
_
.
find
(
selectList
,
(
item
)
=>
item
.
id
===
record
.
id
))
{
_list
=
_
.
uniq
(
selectList
.
concat
([
record
]),
false
,
(
item
)
=>
item
.
id
);
_list
=
_
.
uniq
(
selectList
.
concat
([
record
]),
false
,
(
item
)
=>
item
.
id
);
}
else
{
}
else
{
_list
=
_
.
reject
(
selectList
,
(
item
)
=>
item
.
id
===
record
.
id
);
_list
=
_
.
reject
(
selectList
,
(
item
)
=>
item
.
id
===
record
.
id
);
}
}
if
(
_list
.
length
+
currentTaskCourseData
.
length
+
selectLive
.
length
+
selectPicture
.
length
>
20
)
{
if
(
_list
.
length
+
selectVideo
[
otherVideoCourseDivision
]?.
length
+
currentTaskCourseData
.
length
+
selectLive
.
length
+
selectPicture
.
length
>
20
)
{
message
.
warning
(
'无法继续选择,一个任务最多关联20个课程'
);
message
.
warning
(
'无法继续选择,一个任务最多关联20个课程'
);
return
;
return
;
}
}
...
@@ -529,7 +529,7 @@ class SelectOperatorModal extends React.Component {
...
@@ -529,7 +529,7 @@ class SelectOperatorModal extends React.Component {
}
else
{
}
else
{
_list
=
_
.
reject
(
selectPicture
,
(
item
)
=>
item
.
id
===
record
.
id
);
_list
=
_
.
reject
(
selectPicture
,
(
item
)
=>
item
.
id
===
record
.
id
);
}
}
if
(
_list
.
length
+
currentTaskCourseData
.
length
+
selectLive
.
length
+
selectVideo
.
length
>
20
)
{
if
(
_list
.
length
+
currentTaskCourseData
.
length
+
selectLive
.
length
+
selectVideo
.
internal
.
length
+
selectVideo
.
external
.
length
>
20
)
{
message
.
warning
(
'无法继续选择,一个任务最多关联20个课程'
);
message
.
warning
(
'无法继续选择,一个任务最多关联20个课程'
);
return
;
return
;
}
}
...
@@ -750,9 +750,10 @@ class SelectOperatorModal extends React.Component {
...
@@ -750,9 +750,10 @@ class SelectOperatorModal extends React.Component {
}
else
{
}
else
{
_list
=
_
.
reject
(
selectLive
,
(
item
)
=>
_
.
find
(
changeRows
,
(
data
)
=>
data
.
liveCourseId
===
item
.
liveCourseId
));
_list
=
_
.
reject
(
selectLive
,
(
item
)
=>
_
.
find
(
changeRows
,
(
data
)
=>
data
.
liveCourseId
===
item
.
liveCourseId
));
}
}
if
(
_list
.
length
+
currentTaskCourseData
.
length
+
selectVideo
.
length
+
selectPicture
.
length
>
20
)
{
if
(
_list
.
length
+
currentTaskCourseData
.
length
+
selectVideo
.
internal
.
length
+
selectVideo
.
external
.
length
+
selectPicture
.
length
>
20
)
{
message
.
warning
(
'无法继续选择,一个任务最多关联20个课程'
);
message
.
warning
(
'无法继续选择,一个任务最多关联20个课程'
);
const
extraLength
=
_list
.
length
+
currentTaskCourseData
.
length
+
selectVideo
.
length
+
selectPicture
.
length
-
20
;
const
extraLength
=
_list
.
length
+
currentTaskCourseData
.
length
+
selectVideo
.
internal
.
length
+
selectVideo
.
external
.
length
+
+
selectPicture
.
length
-
20
;
_list
.
splice
(
_list
.
length
-
extraLength
,
extraLength
);
_list
.
splice
(
_list
.
length
-
extraLength
,
extraLength
);
}
}
this
.
setState
({
selectLive
:
_list
});
this
.
setState
({
selectLive
:
_list
});
...
@@ -836,14 +837,24 @@ class SelectOperatorModal extends React.Component {
...
@@ -836,14 +837,24 @@ class SelectOperatorModal extends React.Component {
},
},
onSelectAll
:
(
selected
,
_selectedRows
,
changeRows
)
=>
{
onSelectAll
:
(
selected
,
_selectedRows
,
changeRows
)
=>
{
let
_list
=
[];
let
_list
=
[];
let
otherVideoCourseDivision
=
videoCourseDivision
===
'internal'
?
'external'
:
'internal'
;
if
(
selected
)
{
if
(
selected
)
{
_list
=
_
.
uniq
(
selectVideo
[
videoCourseDivision
].
concat
(
changeRows
),
false
,
(
item
)
=>
item
.
id
);
_list
=
_
.
uniq
(
selectVideo
[
videoCourseDivision
].
concat
(
changeRows
),
false
,
(
item
)
=>
item
.
id
);
}
else
{
}
else
{
_list
=
_
.
reject
(
selectVideo
[
videoCourseDivision
],
(
item
)
=>
_
.
find
(
changeRows
,
(
data
)
=>
data
.
id
===
item
.
id
));
_list
=
_
.
reject
(
selectVideo
[
videoCourseDivision
],
(
item
)
=>
_
.
find
(
changeRows
,
(
data
)
=>
data
.
id
===
item
.
id
));
}
}
if
(
_list
.
length
+
currentTaskCourseData
.
length
+
selectLive
.
length
+
selectPicture
.
length
>
20
)
{
if
(
_list
.
length
+
selectVideo
[
otherVideoCourseDivision
]?.
length
+
currentTaskCourseData
.
length
+
selectLive
.
length
+
selectPicture
.
length
>
20
)
{
message
.
warning
(
'无法继续选择,一个任务最多关联20个课程'
);
message
.
warning
(
'无法继续选择,一个任务最多关联20个课程'
);
const
extraLength
=
_list
.
length
+
currentTaskCourseData
.
length
+
selectLive
.
length
+
selectPicture
.
length
-
20
;
const
extraLength
=
_list
.
length
+
selectVideo
[
otherVideoCourseDivision
]?.
length
+
currentTaskCourseData
.
length
+
selectLive
.
length
+
selectPicture
.
length
-
20
;
_list
.
splice
(
_list
.
length
-
extraLength
,
extraLength
);
_list
.
splice
(
_list
.
length
-
extraLength
,
extraLength
);
}
}
this
.
setState
({
this
.
setState
({
...
@@ -936,9 +947,10 @@ class SelectOperatorModal extends React.Component {
...
@@ -936,9 +947,10 @@ class SelectOperatorModal extends React.Component {
}
else
{
}
else
{
_list
=
_
.
reject
(
selectPicture
,
(
item
)
=>
_
.
find
(
changeRows
,
(
data
)
=>
data
.
id
===
item
.
id
));
_list
=
_
.
reject
(
selectPicture
,
(
item
)
=>
_
.
find
(
changeRows
,
(
data
)
=>
data
.
id
===
item
.
id
));
}
}
if
(
_list
.
length
+
currentTaskCourseData
.
length
+
selectVideo
.
length
+
selectLive
.
length
>
20
)
{
if
(
_list
.
length
+
currentTaskCourseData
.
length
+
selectVideo
.
internal
.
length
+
selectVideo
.
external
.
length
+
selectLive
.
length
>
20
)
{
message
.
warning
(
'无法继续选择,一个任务最多关联20个课程'
);
message
.
warning
(
'无法继续选择,一个任务最多关联20个课程'
);
const
extraLength
=
_list
.
length
+
currentTaskCourseData
.
length
+
selectVideo
.
length
+
selectLive
.
length
-
20
;
const
extraLength
=
_list
.
length
+
currentTaskCourseData
.
length
+
selectVideo
.
internal
.
length
+
selectVideo
.
external
.
length
+
selectLive
.
length
-
20
;
_list
.
splice
(
_list
.
length
-
extraLength
,
extraLength
);
_list
.
splice
(
_list
.
length
-
extraLength
,
extraLength
);
}
}
this
.
setState
({
selectPicture
:
_list
});
this
.
setState
({
selectPicture
:
_list
});
...
...
src/modules/root/Header.jsx
View file @
27a89940
/*
/*
* @Author: 吴文洁
* @Author: 吴文洁
* @Date: 2019-09-10 18:26:03
* @Date: 2019-09-10 18:26:03
* @LastEditors:
Please set LastEditors
* @LastEditors:
yuananting
* @LastEditTime: 2021-0
6-24 19:28:14
* @LastEditTime: 2021-0
7-06 14:37:49
* @Description:
* @Description:
*/
*/
import
React
,
{
useRef
,
useContext
,
useEffect
,
useState
}
from
'react'
;
import
React
,
{
useRef
,
useContext
,
useEffect
,
useState
}
from
'react'
;
...
@@ -271,14 +271,14 @@ function Header(props) {
...
@@ -271,14 +271,14 @@ function Header(props) {
onChange=
{
(
e
)
=>
{
onChange=
{
(
e
)
=>
{
setStoreId
(
e
.
target
.
value
);
setStoreId
(
e
.
target
.
value
);
User
.
setStoreId
(
e
.
target
.
value
);
User
.
setStoreId
(
e
.
target
.
value
);
list
.
map
((
item
)
=>
{
list
.
map
((
item
)
=>
{
if
(
item
.
id
===
e
.
target
.
value
)
{
if
(
item
.
id
===
e
.
target
.
value
)
{
User
.
setStoreUserId
(
item
.
storeUserId
);
User
.
setStoreUserId
(
item
.
storeUserId
);
}
}
})
})
;
User
.
setUserId
(
User
.
getUserId
());
User
.
setUserId
(
User
.
getUserId
());
User
.
setToken
(
User
.
getToken
());
User
.
setToken
(
User
.
getToken
());
User
.
setEnterpriseId
(
User
.
getEnterpriseId
())
User
.
setEnterpriseId
(
User
.
getEnterpriseId
())
;
window
.
RCHistory
.
push
(
'/home'
);
window
.
RCHistory
.
push
(
'/home'
);
window
.
location
.
reload
();
window
.
location
.
reload
();
}
}
}
}
...
@@ -320,10 +320,10 @@ function Header(props) {
...
@@ -320,10 +320,10 @@ function Header(props) {
</
div
>
</
div
>
)
}
)
}
<
div
className=
'right-box'
>
<
div
className=
'right-box'
>
<
div
className=
'right-bg-img'
>
<
img
src=
'https://image.xiaomaiketang.com/xm/WCwjyyXYda.png'
></
img
>
</
div
>
<
div
className=
'link-to-store'
>
<
div
className=
'link-to-store'
>
<
div
className=
'right-bg-img'
>
<
img
src=
'https://image.xiaomaiketang.com/xm/WCwjyyXYda.png'
></
img
>
</
div
>
<
div
className=
'link'
>
<
div
className=
'link'
>
<
span
className=
'link-btn'
>
<
span
className=
'link-btn'
>
<
span
className=
'icon iconfont tool-tip-right'
>

</
span
>
<
span
className=
'icon iconfont tool-tip-right'
>

</
span
>
...
...
src/modules/root/Header.less
View file @
27a89940
...
@@ -196,7 +196,6 @@
...
@@ -196,7 +196,6 @@
margin-left: 62px;
margin-left: 62px;
.college-container {
.college-container {
position: relative;
position: relative;
width: 360px;
height: 50px;
height: 50px;
display: flex;
display: flex;
align-items: center;
align-items: center;
...
@@ -310,13 +309,9 @@
...
@@ -310,13 +309,9 @@
display: flex;
display: flex;
align-items: center;
align-items: center;
}
}
.right-bg-img {
img {
width: 277px;
height: 60px;
}
}
.link-to-store {
.link-to-store {
position: relative;
display: flex;
display: flex;
height: 49px;
height: 49px;
line-height: 49px;
line-height: 49px;
...
@@ -329,6 +324,14 @@
...
@@ -329,6 +324,14 @@
.iconfont {
.iconfont {
color: #fff;
color: #fff;
}
}
.right-bg-img {
position: absolute;
right: 347px;
img {
width: 277px;
height: 60px;
}
}
.link {
.link {
cursor: pointer;
cursor: pointer;
position: relative;
position: relative;
...
...
src/modules/teach-tool/examination-manager/Index.tsx
View file @
27a89940
...
@@ -134,11 +134,12 @@ function ExaminationManager(props: any) {
...
@@ -134,11 +134,12 @@ function ExaminationManager(props: any) {
},
},
{
{
title
:
'创建时间'
,
title
:
'创建时间'
,
width
:
150
,
dataIndex
:
'examCreateTime'
,
dataIndex
:
'examCreateTime'
,
align
:
fixStr
.
right
,
align
:
fixStr
.
right
,
sorter
:
true
,
sorter
:
true
,
sortOrder
:
field
===
'examCreateTime'
?
order
:
sortStatus
.
type
,
sortOrder
:
field
===
'examCreateTime'
?
order
:
sortStatus
.
type
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
span
>
{
moment
(
text
).
format
(
'YYYY-MM-DD HH:mm'
)
}
</
span
>,
render
:
(
text
:
any
,
record
:
any
)
=>
<
span
style=
{
{
whiteSpace
:
'nowrap'
}
}
>
{
moment
(
text
).
format
(
'YYYY-MM-DD HH:mm'
)
}
</
span
>,
},
},
{
{
title
:
'操作'
,
title
:
'操作'
,
...
...
src/modules/teach-tool/paper-manage/components/PaperList.less
View file @
27a89940
...
@@ -2,38 +2,38 @@
...
@@ -2,38 +2,38 @@
.select-box {
.select-box {
display: flex;
display: flex;
align-items: center;
align-items: center;
.select-container{
.select-container
{
margin-right: 24px;
margin-right: 24px;
.con{
.con
{
background: #
E9EFFF
;
background: #
e9efff
;
border-radius: 4px;
border-radius: 4px;
padding: 3px 16px;
padding: 3px 16px;
display: inline-flex;
display: inline-flex;
align-items: center;
align-items: center;
justify-content: space-between;
justify-content: space-between;
.tip{
.tip
{
font-size:14px;
font-size:
14px;
color:
#2966FF
;
color:
#2966ff
;
margin-right:8px;
margin-right:
8px;
}
}
.text{
.text
{
font-size:14px;
font-size:
14px;
color:#666;
color:
#666;
margin-right:30px;
margin-right:
30px;
}
}
.clear{
.clear
{
color:
#5289FA
;
color:
#5289fa
;
font-size:14px;
font-size:
14px;
}
}
}
}
}
}
}
}
.ant-radio-wrapper{
.ant-radio-wrapper
{
left: -10px;
left: -10px;
}
}
.paper-list-filter {
.paper-list-filter {
position: relative;
position: relative;
.search-condition {
.search-condition {
width: calc(100% - 80px);
width: calc(100% - 80px);
display: flex;
display: flex;
...
@@ -75,8 +75,10 @@
...
@@ -75,8 +75,10 @@
.paper-list-content {
.paper-list-content {
position: relative;
position: relative;
margin-top: 12px;
margin-top: 12px;
height: calc(100vh - 260px);
overflow: scroll;
.empty-list-tip {
.empty-list-tip {
color: #2966
FF
;
color: #2966
ff
;
cursor: pointer;
cursor: pointer;
}
}
.record-name {
.record-name {
...
@@ -88,7 +90,7 @@
...
@@ -88,7 +90,7 @@
display: flex;
display: flex;
&__item {
&__item {
color: #2966
FF
;
color: #2966
ff
;
cursor: pointer;
cursor: pointer;
&.split {
&.split {
...
@@ -98,7 +100,7 @@
...
@@ -98,7 +100,7 @@
}
}
}
}
}
}
&.modal-select{
&.modal-select
{
.search-condition {
.search-condition {
width: calc(100% - 80px);
width: calc(100% - 80px);
display: flex;
display: flex;
...
...
src/modules/teach-tool/question-manage/Index.less
View file @
27a89940
...
@@ -7,7 +7,10 @@
...
@@ -7,7 +7,10 @@
.content {
.content {
width: 100%;
width: 100%;
margin-left: 24px;
margin-left: 24px;
height: calc(100vh - 160px);
.question-list-content {
height: calc(100vh - 260px);
overflow: scroll;
}
}
}
}
}
}
}
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