Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
B
biz.qingxiao.com
Project
Project
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wangxuelai
biz.qingxiao.com
Commits
fada4b2b
Commit
fada4b2b
authored
Dec 03, 2019
by
wangxuelai
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
''
parent
63b43bd5
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
320 additions
and
249 deletions
+320
-249
courserecord.png
image/menu/courserecord.png
+0
-0
courserecordactive.png
image/menu/courserecordactive.png
+0
-0
menuconfig.js
src/common/menuconfig.js
+2
-2
CallStudents.js
src/components/CallStudents.js
+38
-3
CourseChart.js
src/components/CourseChart.js
+157
-42
CourseChart.less
src/components/CourseChart.less
+35
-9
callstudents.js
src/models/callstudents.js
+4
-3
indexstaic.js
src/models/indexstaic.js
+6
-6
index.js
src/pages/index/index.js
+78
-184
No files found.
image/menu/courserecord.png
0 → 100644
View file @
fada4b2b
1.03 KB
image/menu/courserecordactive.png
0 → 100644
View file @
fada4b2b
781 Bytes
src/common/menuconfig.js
View file @
fada4b2b
...
...
@@ -73,8 +73,8 @@ export default {
width
:
'20px'
,
height
:
'20px'
,
},
activeurl
:
`
${
__IMGCDN__
}
menu/
teacher
active.png`
,
notactiveurl
:
`
${
__IMGCDN__
}
menu/
teacher
.png`
,
activeurl
:
`
${
__IMGCDN__
}
menu/
courserecord
active.png`
,
notactiveurl
:
`
${
__IMGCDN__
}
menu/
courserecord
.png`
,
path
:
'/sjd/record'
,
relativePath
:
[
'/sjd/record'
],
},
...
...
src/components/CallStudents.js
View file @
fada4b2b
...
...
@@ -124,13 +124,13 @@ class CallStudentsForm extends React.Component {
});
return
;
}
if
(
callType
==
1
)
{
if
(
callType
==
1
||
callType
==
3
)
{
dispatch
({
type
:
'callstudents/studentCallPost'
,
payload
:
{
callBack
:
()
=>
{
callBack
:
(
id
)
=>
{
if
(
callBack
&&
(
typeof
callBack
==
'function'
))
{
callBack
();
callBack
(
id
);
}
},
},
...
...
@@ -645,6 +645,41 @@ class CallStudentsForm extends React.Component {
<
/Col
>
<
/Row
>
<
/div>
}
{
callType
==
3
&&
<
div
>
<
Row
gutter
=
{
16
}
className
=
{
pageStyle
.
detailrow
}
>
<
Col
xs
=
{{
span
:
24
}}
sm
=
{{
span
:
12
}}
md
=
{{
span
:
12
}}
lg
=
{{
span
:
6
}}
style
=
{{
marginBottom
:
'20px'
}}
>
<
span
className
=
{
pageStyle
.
detailtitle
}
>
上课班级:
<
/span
>
<
span
className
=
{
pageStyle
.
detaildesc
}
>
{
callStudentSchedule
.
class
&&
callStudentSchedule
.
class
.
title
}
<
/span
>
<
/Col
>
<
Col
xs
=
{{
span
:
24
}}
sm
=
{{
span
:
12
}}
md
=
{{
span
:
12
}}
lg
=
{{
span
:
6
}}
style
=
{{
marginBottom
:
'20px'
}}
>
<
span
className
=
{
pageStyle
.
detailtitle
}
>
上课课程:
<
/span
>
<
span
className
=
{
pageStyle
.
detaildesc
}
>
{
callStudentSchedule
.
course
&&
callStudentSchedule
.
course
.
title
}
<
/span
>
<
/Col
>
<
Col
xs
=
{{
span
:
24
}}
sm
=
{{
span
:
12
}}
md
=
{{
span
:
12
}}
lg
=
{{
span
:
6
}}
style
=
{{
marginBottom
:
'20px'
}}
>
<
span
className
=
{
pageStyle
.
detailtitle
}
>
上课日期:
<
/span
>
<
span
className
=
{
pageStyle
.
detaildesc
}
>
{
callStudentSchedule
.
start_date
}
<
/span
>
<
/Col
>
<
Col
xs
=
{{
span
:
24
}}
sm
=
{{
span
:
12
}}
md
=
{{
span
:
12
}}
lg
=
{{
span
:
6
}}
style
=
{{
marginBottom
:
'20px'
}}
>
<
span
className
=
{
pageStyle
.
detailtitle
}
>
上课老师:
<
/span
>
{
callStudentSchedule
.
school_teacher
&&
callStudentSchedule
.
school_teacher
.
nickname
&&
<
span
className
=
{
pageStyle
.
detaildesc
}
>
{
callStudentSchedule
.
school_teacher
.
nickname
}
<
/span
>
}
<
/Col
>
<
Col
xs
=
{{
span
:
24
}}
sm
=
{{
span
:
12
}}
md
=
{{
span
:
12
}}
lg
=
{{
span
:
6
}}
style
=
{{
marginBottom
:
'20px'
}}
>
<
span
className
=
{
pageStyle
.
detailtitle
}
>
上课教室:
<
/span
>
<
span
className
=
{
pageStyle
.
detaildesc
}
>
{(
callStudentSchedule
.
class_room
&&
callStudentSchedule
.
class_room
.
title
)
||
'未设置'
}
<
/span
>
<
/Col
>
<
Col
xs
=
{{
span
:
24
}}
sm
=
{{
span
:
12
}}
md
=
{{
span
:
12
}}
lg
=
{{
span
:
6
}}
>
<
span
className
=
{
pageStyle
.
detailtitle
}
>
上课时间:
<
/span
>
<
span
className
=
{
pageStyle
.
detaildesc
}
>
{
callStudentSchedule
.
start_date_format
}
-
{
callStudentSchedule
.
end_date_format
}
<
/span
>
<
/Col
>
<
Col
xs
=
{{
span
:
24
}}
sm
=
{{
span
:
12
}}
md
=
{{
span
:
12
}}
lg
=
{{
span
:
6
}}
>
<
span
className
=
{
pageStyle
.
detailtitle
}
>
授课课时:
<
/span
>
<
InputNumber
value
=
{
expend
}
size
=
"middle"
className
=
{
pageStyle
.
hourInput
}
onChange
=
{
this
.
changeExpand
}
/
>
<
/Col
>
<
/Row
>
<
/div>
}
{
callType
==
2
&&
<
div
>
<
Row
gutter
=
{
16
}
className
=
{
pageStyle
.
detailrow
}
>
...
...
src/components/CourseChart.js
View file @
fada4b2b
...
...
@@ -66,6 +66,9 @@ class CourseChart extends React.Component {
teacherList
,
scheduleListQueryParams
,
goPlanCourse
,
toCallStudent
,
toChangeCourse
,
toEditCallStudents
,
}
=
this
.
props
;
const
courseChartColumns
=
[{
title
:
''
,
...
...
@@ -117,6 +120,13 @@ class CourseChart extends React.Component {
key
=
{
ele
.
id
}
content
=
{
<
div
>
<
div
className
=
{
pageStyle
.
classtitlebox
}
>
{
ele
.
class
.
title
}
<
/div
>
<
div
className
=
{
pageStyle
.
coursetitlebox
}
>
所属课程:
{
ele
.
course
.
title
}
<
/div
>
<
div
className
=
{
pageStyle
.
divideline
}
/
>
<
div
className
=
{
pageStyle
.
timebox
}
>
<
div
className
=
{
pageStyle
.
left
}
>
<
div
className
=
{
pageStyle
.
bluedot
}
/
>
...
...
@@ -126,15 +136,24 @@ class CourseChart extends React.Component {
<
/div
>
<
div
className
=
{
pageStyle
.
detailbox
}
>
<
div
className
=
{
pageStyle
.
whitedot
}
/
>
<
div
className
=
{
pageStyle
.
name
}
>
{
ele
.
school_teacher
.
nickname
}
<
/div
>
<
div
className
=
{
pageStyle
.
name
}
>
老师:
{
ele
.
school_teacher
.
nickname
}
<
/div
>
<
/div
>
<
div
className
=
{
pageStyle
.
detailbox
}
style
=
{{
borderBottom
:
'1px solid rgba(255,255,255,0.2)'
}}
>
<
div
className
=
{
pageStyle
.
detailbox
}
>
<
div
className
=
{
pageStyle
.
whitedot
}
/
>
{
ele
.
class_room
&&
ele
.
class_room
.
title
&&
<
div
className
=
{
pageStyle
.
name
}
>
{
ele
.
class_room
&&
ele
.
class_room
.
title
}
<
/div>
}
<
div
>
{
ele
.
class
.
class_student_count
}
/{ele.class.capacity}</
div
>
{
ele
.
class_room
&&
ele
.
class_room
.
title
&&
<
div
className
=
{
pageStyle
.
name
}
>
教室:
{
ele
.
class_room
&&
ele
.
class_room
.
title
}
<
/div>
}
<
/div
>
<
div
className
=
{
pageStyle
.
classtitlebox
}
>
{
ele
.
class
.
title
}
<
div
className
=
{
pageStyle
.
detailbox
}
style
=
{{
borderBottom
:
'1px solid rgba(255,255,255,0.2)'
}}
>
<
div
className
=
{
pageStyle
.
whitedot
}
style
=
{{
opacity
:
0
}}
/
>
<
div
>
容量:
{
ele
.
class
.
class_student_count
}
/{ele.class.capacity}</
div
>
<
/div
>
<
div
className
=
{
pageStyle
.
btnbox
}
>
{
ele
.
call_time
&&
<
div
className
=
{
pageStyle
.
btnitem
}
onClick
=
{()
=>
toEditCallStudents
(
ele
)}
>
已点名
<
/div
>
}
{
!
ele
.
call_time
&&
<
div
className
=
{
pageStyle
.
btnitem
}
onClick
=
{()
=>
toCallStudent
(
ele
)}
>
点名
<
/div
>
}
<
div
className
=
{
pageStyle
.
btnitem
}
onClick
=
{()
=>
toChangeCourse
(
ele
)}
>
调课
<
/div
>
<
/div
>
<
/div
>
}
...
...
@@ -207,6 +226,13 @@ class CourseChart extends React.Component {
key
=
{
ele
.
id
}
content
=
{
<
div
>
<
div
className
=
{
pageStyle
.
classtitlebox
}
>
{
ele
.
class
.
title
}
<
/div
>
<
div
className
=
{
pageStyle
.
coursetitlebox
}
>
所属课程:
{
ele
.
course
.
title
}
<
/div
>
<
div
className
=
{
pageStyle
.
divideline
}
/
>
<
div
className
=
{
pageStyle
.
timebox
}
>
<
div
className
=
{
pageStyle
.
left
}
>
<
div
className
=
{
pageStyle
.
bluedot
}
/
>
...
...
@@ -216,15 +242,24 @@ class CourseChart extends React.Component {
<
/div
>
<
div
className
=
{
pageStyle
.
detailbox
}
>
<
div
className
=
{
pageStyle
.
whitedot
}
/
>
<
div
className
=
{
pageStyle
.
name
}
>
{
ele
.
school_teacher
.
nickname
}
<
/div
>
<
div
className
=
{
pageStyle
.
name
}
>
老师:
{
ele
.
school_teacher
.
nickname
}
<
/div
>
<
/div
>
<
div
className
=
{
pageStyle
.
detailbox
}
style
=
{{
borderBottom
:
'1px solid rgba(255,255,255,0.2)'
}}
>
<
div
className
=
{
pageStyle
.
detailbox
}
>
<
div
className
=
{
pageStyle
.
whitedot
}
/
>
{
ele
.
class_room
&&
ele
.
class_room
.
title
&&
<
div
className
=
{
pageStyle
.
name
}
>
{
ele
.
class_room
&&
ele
.
class_room
.
title
}
<
/div>
}
<
div
>
{
ele
.
class
.
class_student_count
}
/{ele.class.capacity}</
div
>
{
ele
.
class_room
&&
ele
.
class_room
.
title
&&
<
div
className
=
{
pageStyle
.
name
}
>
教室:
{
ele
.
class_room
&&
ele
.
class_room
.
title
}
<
/div>
}
<
/div
>
<
div
className
=
{
pageStyle
.
classtitlebox
}
>
{
ele
.
class
.
title
}
<
div
className
=
{
pageStyle
.
detailbox
}
style
=
{{
borderBottom
:
'1px solid rgba(255,255,255,0.2)'
}}
>
<
div
className
=
{
pageStyle
.
whitedot
}
style
=
{{
opacity
:
0
}}
/
>
<
div
>
容量:
{
ele
.
class
.
class_student_count
}
/{ele.class.capacity}</
div
>
<
/div
>
<
div
className
=
{
pageStyle
.
btnbox
}
>
{
ele
.
call_time
&&
<
div
className
=
{
pageStyle
.
btnitem
}
onClick
=
{()
=>
toEditCallStudents
(
ele
)}
>
已点名
<
/div
>
}
{
!
ele
.
call_time
&&
<
div
className
=
{
pageStyle
.
btnitem
}
onClick
=
{()
=>
toCallStudent
(
ele
)}
>
点名
<
/div
>
}
<
div
className
=
{
pageStyle
.
btnitem
}
onClick
=
{()
=>
toChangeCourse
(
ele
)}
>
调课
<
/div
>
<
/div
>
<
/div
>
}
...
...
@@ -297,6 +332,13 @@ class CourseChart extends React.Component {
key
=
{
ele
.
id
}
content
=
{
<
div
>
<
div
className
=
{
pageStyle
.
classtitlebox
}
>
{
ele
.
class
.
title
}
<
/div
>
<
div
className
=
{
pageStyle
.
coursetitlebox
}
>
所属课程:
{
ele
.
course
.
title
}
<
/div
>
<
div
className
=
{
pageStyle
.
divideline
}
/
>
<
div
className
=
{
pageStyle
.
timebox
}
>
<
div
className
=
{
pageStyle
.
left
}
>
<
div
className
=
{
pageStyle
.
bluedot
}
/
>
...
...
@@ -306,15 +348,24 @@ class CourseChart extends React.Component {
<
/div
>
<
div
className
=
{
pageStyle
.
detailbox
}
>
<
div
className
=
{
pageStyle
.
whitedot
}
/
>
<
div
className
=
{
pageStyle
.
name
}
>
{
ele
.
school_teacher
.
nickname
}
<
/div
>
<
div
className
=
{
pageStyle
.
name
}
>
老师:
{
ele
.
school_teacher
.
nickname
}
<
/div
>
<
/div
>
<
div
className
=
{
pageStyle
.
detailbox
}
style
=
{{
borderBottom
:
'1px solid rgba(255,255,255,0.2)'
}}
>
<
div
className
=
{
pageStyle
.
detailbox
}
>
<
div
className
=
{
pageStyle
.
whitedot
}
/
>
{
ele
.
class_room
&&
ele
.
class_room
.
title
&&
<
div
className
=
{
pageStyle
.
name
}
>
{
ele
.
class_room
&&
ele
.
class_room
.
title
}
<
/div>
}
<
div
>
{
ele
.
class
.
class_student_count
}
/{ele.class.capacity}</
div
>
{
ele
.
class_room
&&
ele
.
class_room
.
title
&&
<
div
className
=
{
pageStyle
.
name
}
>
教室:
{
ele
.
class_room
&&
ele
.
class_room
.
title
}
<
/div>
}
<
/div
>
<
div
className
=
{
pageStyle
.
classtitlebox
}
>
{
ele
.
class
.
title
}
<
div
className
=
{
pageStyle
.
detailbox
}
style
=
{{
borderBottom
:
'1px solid rgba(255,255,255,0.2)'
}}
>
<
div
className
=
{
pageStyle
.
whitedot
}
style
=
{{
opacity
:
0
}}
/
>
<
div
>
容量:
{
ele
.
class
.
class_student_count
}
/{ele.class.capacity}</
div
>
<
/div
>
<
div
className
=
{
pageStyle
.
btnbox
}
>
{
ele
.
call_time
&&
<
div
className
=
{
pageStyle
.
btnitem
}
onClick
=
{()
=>
toEditCallStudents
(
ele
)}
>
已点名
<
/div
>
}
{
!
ele
.
call_time
&&
<
div
className
=
{
pageStyle
.
btnitem
}
onClick
=
{()
=>
toCallStudent
(
ele
)}
>
点名
<
/div
>
}
<
div
className
=
{
pageStyle
.
btnitem
}
onClick
=
{()
=>
toChangeCourse
(
ele
)}
>
调课
<
/div
>
<
/div
>
<
/div
>
}
...
...
@@ -387,6 +438,13 @@ class CourseChart extends React.Component {
key
=
{
ele
.
id
}
content
=
{
<
div
>
<
div
className
=
{
pageStyle
.
classtitlebox
}
>
{
ele
.
class
.
title
}
<
/div
>
<
div
className
=
{
pageStyle
.
coursetitlebox
}
>
所属课程:
{
ele
.
course
.
title
}
<
/div
>
<
div
className
=
{
pageStyle
.
divideline
}
/
>
<
div
className
=
{
pageStyle
.
timebox
}
>
<
div
className
=
{
pageStyle
.
left
}
>
<
div
className
=
{
pageStyle
.
bluedot
}
/
>
...
...
@@ -396,15 +454,24 @@ class CourseChart extends React.Component {
<
/div
>
<
div
className
=
{
pageStyle
.
detailbox
}
>
<
div
className
=
{
pageStyle
.
whitedot
}
/
>
<
div
className
=
{
pageStyle
.
name
}
>
{
ele
.
school_teacher
.
nickname
}
<
/div
>
<
div
className
=
{
pageStyle
.
name
}
>
老师:
{
ele
.
school_teacher
.
nickname
}
<
/div
>
<
/div
>
<
div
className
=
{
pageStyle
.
detailbox
}
style
=
{{
borderBottom
:
'1px solid rgba(255,255,255,0.2)'
}}
>
<
div
className
=
{
pageStyle
.
detailbox
}
>
<
div
className
=
{
pageStyle
.
whitedot
}
/
>
{
ele
.
class_room
&&
ele
.
class_room
.
title
&&
<
div
className
=
{
pageStyle
.
name
}
>
{
ele
.
class_room
&&
ele
.
class_room
.
title
}
<
/div>
}
<
div
>
{
ele
.
class
.
class_student_count
}
/{ele.class.capacity}</
div
>
{
ele
.
class_room
&&
ele
.
class_room
.
title
&&
<
div
className
=
{
pageStyle
.
name
}
>
教室:
{
ele
.
class_room
&&
ele
.
class_room
.
title
}
<
/div>
}
<
/div
>
<
div
className
=
{
pageStyle
.
classtitlebox
}
>
{
ele
.
class
.
title
}
<
div
className
=
{
pageStyle
.
detailbox
}
style
=
{{
borderBottom
:
'1px solid rgba(255,255,255,0.2)'
}}
>
<
div
className
=
{
pageStyle
.
whitedot
}
style
=
{{
opacity
:
0
}}
/
>
<
div
>
容量:
{
ele
.
class
.
class_student_count
}
/{ele.class.capacity}</
div
>
<
/div
>
<
div
className
=
{
pageStyle
.
btnbox
}
>
{
ele
.
call_time
&&
<
div
className
=
{
pageStyle
.
btnitem
}
onClick
=
{()
=>
toEditCallStudents
(
ele
)}
>
已点名
<
/div
>
}
{
!
ele
.
call_time
&&
<
div
className
=
{
pageStyle
.
btnitem
}
onClick
=
{()
=>
toCallStudent
(
ele
)}
>
点名
<
/div
>
}
<
div
className
=
{
pageStyle
.
btnitem
}
onClick
=
{()
=>
toChangeCourse
(
ele
)}
>
调课
<
/div
>
<
/div
>
<
/div
>
}
...
...
@@ -477,6 +544,13 @@ class CourseChart extends React.Component {
key
=
{
ele
.
id
}
content
=
{
<
div
>
<
div
className
=
{
pageStyle
.
classtitlebox
}
>
{
ele
.
class
.
title
}
<
/div
>
<
div
className
=
{
pageStyle
.
coursetitlebox
}
>
所属课程:
{
ele
.
course
.
title
}
<
/div
>
<
div
className
=
{
pageStyle
.
divideline
}
/
>
<
div
className
=
{
pageStyle
.
timebox
}
>
<
div
className
=
{
pageStyle
.
left
}
>
<
div
className
=
{
pageStyle
.
bluedot
}
/
>
...
...
@@ -486,15 +560,24 @@ class CourseChart extends React.Component {
<
/div
>
<
div
className
=
{
pageStyle
.
detailbox
}
>
<
div
className
=
{
pageStyle
.
whitedot
}
/
>
<
div
className
=
{
pageStyle
.
name
}
>
{
ele
.
school_teacher
.
nickname
}
<
/div
>
<
div
className
=
{
pageStyle
.
name
}
>
老师:
{
ele
.
school_teacher
.
nickname
}
<
/div
>
<
/div
>
<
div
className
=
{
pageStyle
.
detailbox
}
style
=
{{
borderBottom
:
'1px solid rgba(255,255,255,0.2)'
}}
>
<
div
className
=
{
pageStyle
.
detailbox
}
>
<
div
className
=
{
pageStyle
.
whitedot
}
/
>
{
ele
.
class_room
&&
ele
.
class_room
.
title
&&
<
div
className
=
{
pageStyle
.
name
}
>
{
ele
.
class_room
&&
ele
.
class_room
.
title
}
<
/div>
}
<
div
>
{
ele
.
class
.
class_student_count
}
/{ele.class.capacity}</
div
>
{
ele
.
class_room
&&
ele
.
class_room
.
title
&&
<
div
className
=
{
pageStyle
.
name
}
>
教室:
{
ele
.
class_room
&&
ele
.
class_room
.
title
}
<
/div>
}
<
/div
>
<
div
className
=
{
pageStyle
.
classtitlebox
}
>
{
ele
.
class
.
title
}
<
div
className
=
{
pageStyle
.
detailbox
}
style
=
{{
borderBottom
:
'1px solid rgba(255,255,255,0.2)'
}}
>
<
div
className
=
{
pageStyle
.
whitedot
}
style
=
{{
opacity
:
0
}}
/
>
<
div
>
容量:
{
ele
.
class
.
class_student_count
}
/{ele.class.capacity}</
div
>
<
/div
>
<
div
className
=
{
pageStyle
.
btnbox
}
>
{
ele
.
call_time
&&
<
div
className
=
{
pageStyle
.
btnitem
}
onClick
=
{()
=>
toEditCallStudents
(
ele
)}
>
已点名
<
/div
>
}
{
!
ele
.
call_time
&&
<
div
className
=
{
pageStyle
.
btnitem
}
onClick
=
{()
=>
toCallStudent
(
ele
)}
>
点名
<
/div
>
}
<
div
className
=
{
pageStyle
.
btnitem
}
onClick
=
{()
=>
toChangeCourse
(
ele
)}
>
调课
<
/div
>
<
/div
>
<
/div
>
}
...
...
@@ -567,6 +650,13 @@ class CourseChart extends React.Component {
key
=
{
ele
.
id
}
content
=
{
<
div
>
<
div
className
=
{
pageStyle
.
classtitlebox
}
>
{
ele
.
class
.
title
}
<
/div
>
<
div
className
=
{
pageStyle
.
coursetitlebox
}
>
所属课程:
{
ele
.
course
.
title
}
<
/div
>
<
div
className
=
{
pageStyle
.
divideline
}
/
>
<
div
className
=
{
pageStyle
.
timebox
}
>
<
div
className
=
{
pageStyle
.
left
}
>
<
div
className
=
{
pageStyle
.
bluedot
}
/
>
...
...
@@ -576,15 +666,24 @@ class CourseChart extends React.Component {
<
/div
>
<
div
className
=
{
pageStyle
.
detailbox
}
>
<
div
className
=
{
pageStyle
.
whitedot
}
/
>
<
div
className
=
{
pageStyle
.
name
}
>
{
ele
.
school_teacher
.
nickname
}
<
/div
>
<
div
className
=
{
pageStyle
.
name
}
>
老师:
{
ele
.
school_teacher
.
nickname
}
<
/div
>
<
/div
>
<
div
className
=
{
pageStyle
.
detailbox
}
style
=
{{
borderBottom
:
'1px solid rgba(255,255,255,0.2)'
}}
>
<
div
className
=
{
pageStyle
.
detailbox
}
>
<
div
className
=
{
pageStyle
.
whitedot
}
/
>
{
ele
.
class_room
&&
ele
.
class_room
.
title
&&
<
div
className
=
{
pageStyle
.
name
}
>
{
ele
.
class_room
&&
ele
.
class_room
.
title
}
<
/div>
}
<
div
>
{
ele
.
class
.
class_student_count
}
/{ele.class.capacity}</
div
>
{
ele
.
class_room
&&
ele
.
class_room
.
title
&&
<
div
className
=
{
pageStyle
.
name
}
>
教室:
{
ele
.
class_room
&&
ele
.
class_room
.
title
}
<
/div>
}
<
/div
>
<
div
className
=
{
pageStyle
.
classtitlebox
}
>
{
ele
.
class
.
title
}
<
div
className
=
{
pageStyle
.
detailbox
}
style
=
{{
borderBottom
:
'1px solid rgba(255,255,255,0.2)'
}}
>
<
div
className
=
{
pageStyle
.
whitedot
}
style
=
{{
opacity
:
0
}}
/
>
<
div
>
容量:
{
ele
.
class
.
class_student_count
}
/{ele.class.capacity}</
div
>
<
/div
>
<
div
className
=
{
pageStyle
.
btnbox
}
>
{
ele
.
call_time
&&
<
div
className
=
{
pageStyle
.
btnitem
}
onClick
=
{()
=>
toEditCallStudents
(
ele
)}
>
已点名
<
/div
>
}
{
!
ele
.
call_time
&&
<
div
className
=
{
pageStyle
.
btnitem
}
onClick
=
{()
=>
toCallStudent
(
ele
)}
>
点名
<
/div
>
}
<
div
className
=
{
pageStyle
.
btnitem
}
onClick
=
{()
=>
toChangeCourse
(
ele
)}
>
调课
<
/div
>
<
/div
>
<
/div
>
}
...
...
@@ -657,6 +756,13 @@ class CourseChart extends React.Component {
key
=
{
ele
.
id
}
content
=
{
<
div
>
<
div
className
=
{
pageStyle
.
classtitlebox
}
>
{
ele
.
class
.
title
}
<
/div
>
<
div
className
=
{
pageStyle
.
coursetitlebox
}
>
所属课程:
{
ele
.
course
.
title
}
<
/div
>
<
div
className
=
{
pageStyle
.
divideline
}
/
>
<
div
className
=
{
pageStyle
.
timebox
}
>
<
div
className
=
{
pageStyle
.
left
}
>
<
div
className
=
{
pageStyle
.
bluedot
}
/
>
...
...
@@ -666,15 +772,24 @@ class CourseChart extends React.Component {
<
/div
>
<
div
className
=
{
pageStyle
.
detailbox
}
>
<
div
className
=
{
pageStyle
.
whitedot
}
/
>
<
div
className
=
{
pageStyle
.
name
}
>
{
ele
.
school_teacher
.
nickname
}
<
/div
>
<
div
className
=
{
pageStyle
.
name
}
>
老师:
{
ele
.
school_teacher
.
nickname
}
<
/div
>
<
/div
>
<
div
className
=
{
pageStyle
.
detailbox
}
style
=
{{
borderBottom
:
'1px solid rgba(255,255,255,0.2)'
}}
>
<
div
className
=
{
pageStyle
.
detailbox
}
>
<
div
className
=
{
pageStyle
.
whitedot
}
/
>
{
ele
.
class_room
&&
ele
.
class_room
.
title
&&
<
div
className
=
{
pageStyle
.
name
}
>
{
ele
.
class_room
&&
ele
.
class_room
.
title
}
<
/div>
}
<
div
>
{
ele
.
class
.
class_student_count
}
/{ele.class.capacity}</
div
>
{
ele
.
class_room
&&
ele
.
class_room
.
title
&&
<
div
className
=
{
pageStyle
.
name
}
>
教室:
{
ele
.
class_room
&&
ele
.
class_room
.
title
}
<
/div>
}
<
/div
>
<
div
className
=
{
pageStyle
.
classtitlebox
}
>
{
ele
.
class
.
title
}
<
div
className
=
{
pageStyle
.
detailbox
}
style
=
{{
borderBottom
:
'1px solid rgba(255,255,255,0.2)'
}}
>
<
div
className
=
{
pageStyle
.
whitedot
}
style
=
{{
opacity
:
0
}}
/
>
<
div
>
容量:
{
ele
.
class
.
class_student_count
}
/{ele.class.capacity}</
div
>
<
/div
>
<
div
className
=
{
pageStyle
.
btnbox
}
>
{
ele
.
call_time
&&
<
div
className
=
{
pageStyle
.
btnitem
}
onClick
=
{()
=>
toEditCallStudents
(
ele
)}
>
已点名
<
/div
>
}
{
!
ele
.
call_time
&&
<
div
className
=
{
pageStyle
.
btnitem
}
onClick
=
{()
=>
toCallStudent
(
ele
)}
>
点名
<
/div
>
}
<
div
className
=
{
pageStyle
.
btnitem
}
onClick
=
{()
=>
toChangeCourse
(
ele
)}
>
调课
<
/div
>
<
/div
>
<
/div
>
}
...
...
src/components/CourseChart.less
View file @
fada4b2b
...
...
@@ -85,7 +85,7 @@
align-items: center;
justify-content: space-between;
color: #FFFFFF;
padding:
0
15px 10px;
padding:
10px
15px 10px;
line-height: 1;
.left {
display: flex;
...
...
@@ -107,28 +107,54 @@
display: flex;
align-items: center;
padding: 0 15px;
color: rgba(255,255,255,0.
5
);
color: rgba(255,255,255,0.
7
);
line-height: 1;
padding-bottom: 10px;
font-size: 12px;
word-break: break-all;
.whitedot {
width: 8px;
height: 4px;
border-radius: 2px;
margin-right: 9px;
background-color:
rgba(255,255,255,0.5)
;
background-color:
#A9A9A9
;
}
.name {
margin-right: 5px;
}
}
.classtitlebox {
text-align: center;
//
text-align: center;
color: #FFFFFF;
font-size: 14px;
word-break: break-all;
padding: 10px 15px;
text-align: center;
padding: 0 15px 11px;
// text-align: center;
}
.coursetitlebox {
color: rgba(255,255,255,0.7);
font-size: 14px;
padding: 0 15px 15px;
}
.divideline {
border-bottom: 1px solid rgba(255,255,255,0.1);
}
.btnbox {
display: flex;
align-items: center;
.btnitem {
flex-grow: 1;
text-align: center;
line-height: 50px;
color: #FFFFFF;
cursor: pointer;
&:hover {
background-color: rgba(0,0,0,1);
}
&:first-child {
border-right: 1px solid rgba(255,255,255,0.2);
}
}
}
:global {
.ant-popover-content {
...
...
@@ -137,13 +163,13 @@
border-radius: 4px;
}
.ant-popover-inner-content {
background-color: rgba(0,0,0,0.
7
);
background-color: rgba(0,0,0,0.
8
);
border-radius: 4px;
padding: 15px 0 0;
}
.ant-popover-arrow {
border-top-color: rgba(0, 0, 0, 0.
7
);
border-left-color: rgba(0, 0, 0, 0.
7
);
border-top-color: rgba(0, 0, 0, 0.
8
);
border-left-color: rgba(0, 0, 0, 0.
8
);
}
}
}
...
...
src/models/callstudents.js
View file @
fada4b2b
...
...
@@ -194,7 +194,7 @@ export default {
const
{
sid
}
=
yield
select
(
state
=>
state
.
webapp
);
let
newcallStudentTotal
=
callStudentTotal
;
let
newqueryScheduleStudentListParams
=
{};
if
(
callType
==
1
)
{
// 正常点名
if
(
callType
==
1
||
callType
==
3
)
{
// 正常点名
newqueryScheduleStudentListParams
=
Object
.
assign
(
queryCallStudentListParams
,
{
school_id
:
sid
,
extra
:
'time,recently_course'
,
...
...
@@ -322,6 +322,7 @@ export default {
course_id
:
callStudentSchedule
.
course_id
,
});
const
callStudengListDate
=
yield
call
(
schedulemgtAjax
.
getStudentCalls
,
newqueryScheduleStudentListParams
);
console
.
log
(
'ddddddddddddddddddddddd'
);
yield
put
({
type
:
'updateState'
,
payload
:
{
...
...
@@ -586,7 +587,7 @@ export default {
});
const
loading
=
message
.
loading
(
'点名处理中...'
,
0
);
const
studentCallsDate
=
yield
call
(
schedulemgtAjax
.
studentCalls
,
{
type
:
callType
,
type
:
(
callType
==
1
||
callType
==
3
)
?
1
:
callType
,
school_id
:
sid
,
call_students
:
callStudent
.
join
(
';'
),
expend
,
...
...
@@ -613,7 +614,7 @@ export default {
},
});
if
(
callBack
&&
(
typeof
callBack
==
'function'
))
{
callBack
();
callBack
(
callStudentSchedule
.
id
);
}
}
else
{
yield
put
({
...
...
src/models/indexstaic.js
View file @
fada4b2b
...
...
@@ -482,12 +482,12 @@ export default {
judgetodaycurrentTimestamp
:
(
new
Date
(
staticcenter
.
datetime
.
replace
(
/-/g
,
'/'
)).
getTime
()),
},
});
//
yield put({
//
type: 'coursechart/queryInfo',
//
payload: {
//
dateTime: staticcenter.datetime,
//
},
//
});
yield
put
({
type
:
'coursechart/queryInfo'
,
payload
:
{
dateTime
:
staticcenter
.
datetime
,
},
});
if
(
staticcenter
.
code
==
200
)
{
yield
put
({
type
:
'updateState'
,
...
...
src/pages/index/index.js
View file @
fada4b2b
...
...
@@ -36,6 +36,7 @@ import AddCourseTime from '../classdetail/AddCourseTime';
import
CourseTimeList
from
'../classdetail/CourseTimeList'
;
import
StudentAdd
from
'../student/StudentAdd'
;
import
Cropper
from
'../../components/Cropper'
;
import
CallStudents
from
'../../components/CallStudents'
;
const
{
RangePicker
}
=
DatePicker
;
const
echarts
=
require
(
'echarts'
);
class
StaticCenter
extends
React
.
Component
{
...
...
@@ -110,7 +111,7 @@ class StaticCenter extends React.Component {
return
current
>
moment
();
}
goPlanCourse
=
()
=>
{
const
{
dispatch
,
class
Detail
,
class
Id
}
=
this
.
props
;
const
{
dispatch
,
classId
}
=
this
.
props
;
dispatch
({
type
:
'plancourse/queryClassList'
,
});
...
...
@@ -371,6 +372,76 @@ class StaticCenter extends React.Component {
},
});
}
toCallStudent
=
(
schedule
)
=>
{
console
.
log
(
schedule
,
'toCallStudent'
);
const
{
dispatch
,
datetime
,
classDetail
,
classStudentTotal
,
}
=
this
.
props
;
if
(
schedule
.
class
.
graduation_status
==
2
)
{
Modal
.
warn
({
title
:
'已结业班级不允许点名'
,
});
return
;
}
if
(
new
Date
(
datetime
.
replace
(
/-/g
,
'/'
)).
getTime
()
-
new
Date
(
schedule
.
start_time
.
replace
(
/-/g
,
'/'
)).
getTime
()
<
(
-
2
*
3600
*
1000
))
{
message
.
error
(
' 开课前两小时才能点名'
);
return
;
}
dispatch
({
type
:
'callstudents/updateState'
,
payload
:
{
callStudentsShow
:
true
,
expend
:
schedule
.
class
.
expend
,
copyExpend
:
schedule
.
class
.
expend
,
courseId
:
schedule
.
course_id
,
classroomId
:
schedule
.
class_room_id
,
classId
:
schedule
.
class_id
,
canAddStudent
:
true
,
rule_leave
:
(
schedule
.
course
&&
schedule
.
course
.
rule_leave
)
||
1
,
rule_absent
:
(
schedule
.
course
&&
schedule
.
course
.
rule_absent
)
||
1
,
},
});
dispatch
({
type
:
'callstudents/queryCallStudentList'
,
payload
:
{
callStudentSchedule
:
schedule
,
callType
:
3
,
},
});
}
toEditCallStudents
=
(
schedule
)
=>
{
const
{
dispatch
}
=
this
.
props
;
dispatch
({
type
:
'callstudents/updateState'
,
payload
:
{
callStudentsShow
:
true
,
expend
:
schedule
.
class
.
expend
,
copyExpend
:
schedule
.
class
.
expend
,
courseId
:
schedule
.
course_id
,
classroomId
:
schedule
.
class_room_id
,
classId
:
schedule
.
class_id
,
canAddStudent
:
false
,
rule_leave
:
(
schedule
.
course
&&
schedule
.
course
.
rule_leave
)
||
1
,
rule_absent
:
(
schedule
.
course
&&
schedule
.
course
.
rule_absent
)
||
1
,
},
});
dispatch
({
type
:
'callstudents/queryEditCallStudentList'
,
payload
:
{
callStudentSchedule
:
schedule
,
callType
:
3
,
},
});
}
saveCallStudents
=
(
scheduleId
)
=>
{
const
{
dispatch
}
=
this
.
props
;
dispatch
({
type
:
'coursechart/queryScheduleList'
,
});
}
toChangeCourse
=
(
info
)
=>
{
console
.
log
(
info
,
'toChangeCourse'
);
}
render
()
{
const
that
=
this
;
const
{
...
...
@@ -401,40 +472,6 @@ class StaticCenter extends React.Component {
uploadImgUrl
,
avatorUploader
,
}
=
this
.
props
;
// 图表功能注释代码
// const dataArray = clockCharts;
// const month = dataArray.dates;
// const clockCount = dataArray.clock_count;
// const peopleCount = dataArray.clock_people_count;
// const studentCount = dataArray.student_count;
// const chartArea = [];
// for (let i = 0; i < month.length && i < clockCount.length && i < peopleCount.length && i < studentCount.length; i++) {
// chartArea.push({ month: month[i], count: studentCount[i], name: '新增学员(人)' }, { month: month[i], count: peopleCount[i], name: '打卡数(人)' }, { month: month[i], count: clockCount[i], name: '打卡总数' });
// }
// const data = chartArea;
// this.ds = new DataSet({
// state: {
// start: new Date((`${moment(chartStartDate).format('YYYY-MM-DD')} 00:00:00`).replace(/-/g, '/')).getTime(),
// end: new Date((`${moment(chartEndDate).format('YYYY-MM-DD')} 23:59:59`).replace(/-/g, '/')).getTime(),
// },
// });
// // - (24 * 60 * 60 * 1000)
// const dv = this.ds.createView('origin').source(data);
// dv.transform({
// type: 'filter',
// callback(obj) {
// const time = new Date(obj.month.replace(/-/g, '-')).getTime(); // !注意:时间格式,建议转换为时间戳进行比较
// return time >= that.ds.state.start && time <= that.ds.state.end;
// },
// });
// const cols = {
// month: {
// type: 'time',
// tickCount: 10,
// },
// };
// const yesterday = moment(moment().subtract(6, 'days').unix() * 1000);
// const today = moment(moment().unix() * 1000);
return
(
<
div
className
=
{
pageStyle
.
container
}
>
<
ClassRoomMgt
...
...
@@ -512,132 +549,6 @@ class StaticCenter extends React.Component {
<
/div
>
<
/div
>
<
/div
>
{
/* <div className={pageStyle.chartbox}> */
}
{
/* <div */
}
{
/* className={`${pageStyle.cardtitlereset} clearfix `} */
}
{
/* > */
}
{
/* <span style={{ paddingLeft: '0', fontWeight: '600' }}>打卡数据变化趋势</span> */
}
{
/* <div className={pageStyle.staticcolorbox}> */
}
{
/* <div className={`${pageStyle.chartdayshift}`}> */
}
{
/* <RangePicker */
}
{
/* ranges={{ */
}
{
/* ' 最近7天': [moment().subtract(6, 'days'), moment()], */
}
{
/* ' 最近三十天 ': [moment().subtract(29, 'days'), moment()], */
}
{
/* }} */
}
{
/* defaultValue={[yesterday, today]} */
}
{
/* disabledDate={this.disabledDate} */
}
{
/* onChange={this.onRangePickerChange} */
}
{
/* allowClear={false} */
}
{
/* className={pageStyle.rangePicker} */
}
{
/* /> */
}
{
/* </div> */
}
{
/* </div> */
}
{
/* </div> */
}
{
/* <div className={pageStyle.chartcontent}> */
}
{
/* {clockChartsSuccess && chartArea.length > 0 && */
}
{
/* <div style={{ width: '100%', height: '450px' }}> */
}
{
/* <Chart */
}
{
/* data={dv} */
}
{
/* width={1000} */
}
{
/* height={400} */
}
{
/* scale={cols} */
}
{
/* padding="auto" */
}
{
/* forceFit */
}
{
/* > */
}
{
/* <Axis name="month" /> */
}
{
/* <Tooltip */
}
{
/* g2-tooltip={{ */
}
{
/* backgroundColor: '#000', */
}
{
/* opacity: '0.75', */
}
{
/* color: '#FFFFFF', */
}
{
/* }} */
}
{
/* crosshairs={{ */
}
{
/* type: 'y', */
}
{
/* fill: '#000', */
}
{
/* stroke: '#000', */
}
{
/* }} */
}
{
/* /><Legend */
}
{
/* textStyle={{ fontSize: '15', fill: '#5c5c5c', textBaseline: 'middle' }} */
}
{
/* marker="circle" */
}
{
/* offsetY={-45} */
}
{
/* position="top-right" */
}
{
/* items={[ */
}
{
/* { */
}
{
/* value: 'student_count', */
}
{
/* marker: { */
}
{
/* fill: '#E32020', */
}
{
/* radius: 2, */
}
{
/* }, */
}
{
/* }, { */
}
{
/* value: 'clock_people_count', */
}
{
/* marker: { */
}
{
/* fill: '#1890FF', */
}
{
/* radius: 2, */
}
{
/* }, */
}
{
/* }, */
}
{
/* { */
}
{
/* value: 'clock_count', */
}
{
/* marker: { */
}
{
/* fill: '#2FC25B', */
}
{
/* radius: 2, */
}
{
/* }, */
}
{
/* }, */
}
{
/* ]} */
}
{
/* /> */
}
{
/* <Geom */
}
{
/* type="line" */
}
{
/* position="month*count" */
}
{
/* color={['name', ['#E32020', '#1890FF', '#2FC25B']]} */
}
{
/* size={3} */
}
{
/* /> */
}
{
/* <Geom */
}
{
/* type="line" */
}
{
/* position="month*count" */
}
{
/* color={['name', ['#E32020', '#1890FF', '#2FC25B']]} */
}
{
/* size={3} */
}
{
/* /> */
}
{
/* <Geom */
}
{
/* type="line" */
}
{
/* position="month*count" */
}
{
/* color={['name', ['#E32020', '#1890FF', '#2FC25B']]} */
}
{
/* size={3} */
}
{
/* /> */
}
{
/* </Chart> */
}
{
/* <div> */
}
{
/* <Slider */
}
{
/* width="auto" */
}
{
/* height={26} */
}
{
/* start={this.ds.state.start} */
}
{
/* end={this.ds.state.end - 86399000} */
}
{
/* xAxis="month" */
}
{
/* yAxis="count" */
}
{
/* padding={[40, 90, 40, 90]} */
}
{
/* handleStyle={{ */
}
{
/* img: `${__IMGCDN__}sliderblock.png`, */
}
{
/* width: 30, */
}
{
/* height: 29, */
}
{
/* }} */
}
{
/* scales={{ */
}
{
/* month: { */
}
{
/* type: 'time', */
}
{
/* tickCount: 10, */
}
{
/* }, */
}
{
/* }} */
}
{
/* data={dv} */
}
{
/* backgroundChart={{ */
}
{
/* type: 'line', */
}
{
/* }} */
}
{
/* fillerStyle={{ */
}
{
/* fill: '#F0F2F5', */
}
{
/* }} */
}
{
/* onChange={this.onSlideChange} */
}
{
/* /> */
}
{
/* </div> */
}
{
/* </div> */
}
{
/* } */
}
{
/* {!clockChartsSuccess && <div className={pageStyle.chartcontentfail}>数据加载失败</div>} */
}
{
/* </div> */
}
{
/* </div> */
}
<
/Col
>
<
Col
xs
=
{{
span
:
24
}}
sm
=
{{
span
:
24
}}
lg
=
{{
span
:
8
}}
md
=
{{
span
:
24
}}
>
<
div
className
=
{
pageStyle
.
makebox
}
>
...
...
@@ -671,20 +582,6 @@ class StaticCenter extends React.Component {
<
/div
>
<
/div
>
<
/div
>
{
/* <div> */
}
{
/* <div className={pageStyle.todoitem} style={{ maxHeight: '470px' }}> */
}
{
/* <div className={pageStyle.cardtitle}> */
}
{
/* <span>待办事项</span> */
}
{
/* </div> */
}
{
/* <div className={pageStyle.items}> */
}
{
/* {renew.total > 0 && <div className={pageStyle.renew} onClick={this.goDeadlineStudent}><span>续费</span>有{renew.total || 0}名学员的课时即将到期</div>} */
}
{
/* {birthday.total > 0 && <div className={pageStyle.birthday} onClick={this.goBirthStudent}><span>生日</span>本日有{birthday.total || 0}名学员生日待祝福</div>} */
}
{
/* {callData.total > 0 && <div className={pageStyle.birthday} onClick={this.goCallStudent}><span>点名</span>本周有{callData.total || 0}个课时尚未点名</div>} */
}
{
/* {assign.total > 0 && <div className={pageStyle.birthday} onClick={this.goPlanStudent}><span>分配</span>有{assign.total || 0}名学员未安排班级</div>} */
}
{
/* {scheduleCount > 0 && <div className={pageStyle.birthday} onClick={this.goPlanClass}><span>排课</span>有{scheduleCount}个班级课表即将结束</div>} */
}
{
/* </div> */
}
{
/* </div> */
}
{
/* </div> */
}
<
/Col
>
<
/Row
>
<
Card
className
=
{
pageStyle
.
informList
}
bodyStyle
=
{{
borderRadius
:
6
,
padding
:
'36px 0'
}}
bordered
=
{
false
}
>
...
...
@@ -743,6 +640,9 @@ class StaticCenter extends React.Component {
<
CourseChart
teacherList
=
{
teacherList
}
goPlanCourse
=
{
this
.
goPlanCourse
}
toCallStudent
=
{
this
.
toCallStudent
}
toChangeCourse
=
{
this
.
toChangeCourse
}
toEditCallStudents
=
{
this
.
toEditCallStudents
}
/
>
<
/div
>
<
/Col
>
...
...
@@ -762,15 +662,9 @@ class StaticCenter extends React.Component {
sureCropper
=
{
this
.
sureCropper
}
uploadImgUrl
=
{
uploadImgUrl
}
/>
}
{
/* <AddCourseTime */
}
{
/* visible={addCourseTimeShow} */
}
{
/* saveCourseTime={this.saveCourseTime} */
}
{
/* close={this.closeAddCourseTime} */
}
{
/* timeArr={timeArr} */
}
{
/* addTimeSubmitting={addTimeSubmitting} */
}
{
/* delTime={this.delTime} */
}
{
/* /> */
}
<
CallStudents
callBack
=
{
this
.
saveCallStudents
}
/
>
<
/div
>
);
}
...
...
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