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
a8c70bf1
Commit
a8c70bf1
authored
Aug 15, 2019
by
sujie@126.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'wxl-develop' of git.server:wangxuelai/biz.qingxiao.com into wxl-develop
parents
67a9c908
fef64be9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
119 additions
and
39 deletions
+119
-39
index.html
index.html
+1
-1
classdetail.js
src/models/classdetail.js
+3
-2
classmgt.js
src/models/classmgt.js
+6
-2
students.js
src/models/students.js
+2
-1
thememgt.js
src/models/thememgt.js
+0
-1
index.js
src/pages/classdetail/index.js
+2
-2
EditClassModal.js
src/pages/classmgt/EditClassModal.js
+37
-10
index.js
src/pages/classmgt/index.js
+56
-13
StudentAdd.js
src/pages/student/StudentAdd.js
+12
-7
No files found.
index.html
View file @
a8c70bf1
<!DOCTYPE html>
<html
lang=
"en"
><head><meta
charset=
"UTF-8"
><title>
轻校
</title><link
rel=
"shortcut icon"
href=
"https://cdn.img.shangjiadao.cn/qingxiao/biz/image/qxlogo4.png"
><meta
content=
"width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0;"
name=
"viewport"
><meta
http-equiv=
"X-UA-Compatible"
content=
"IE=edge"
>
<!-- Polyfills --><!--[if lt IE 10]>
<script src="js/console-polyfill.js"></script>
<![endif]-->
<script
charset=
"utf-8"
src=
"https://map.qq.com/api/js?v=2.exp&key=XSZBZ-5LHCV-5I2P7-UQHPW-6456F-JBB3B"
></script><link
href=
"/dist/index.css?1565746061406"
rel=
"stylesheet"
><script
src=
"/lib/vendor.dll.js?3"
charset=
"utf-8"
></script><script
src=
"https://cdn.img.shangjiadao.cn/qingxiao/biz/js/console-polyfill.js?3"
charset=
"utf-8"
></script><script
src=
"https://cdn.img.shangjiadao.cn/qingxiao/biz/js/es6-shim.min.js?3"
charset=
"utf-8"
></script><script
src=
"https://cdn.img.shangjiadao.cn/qingxiao/biz/js/es5-shim.js?3"
charset=
"utf-8"
></script><script
src=
"https://cdn.img.shangjiadao.cn/qingxiao/biz/js/es5-sham.min.js?3"
charset=
"utf-8"
></script><script
src=
"https://cdn.img.shangjiadao.cn/qingxiao/biz/js/json3.min.js?3"
charset=
"utf-8"
></script><script
src=
"https://cdn.img.shangjiadao.cn/qingxiao/biz/js/html5shiv.min.js?3"
charset=
"utf-8"
></script><script
src=
"https://cdn.img.shangjiadao.cn/qingxiao/biz/js/polyfill.js?3"
charset=
"utf-8"
></script></head><body><div
id=
"root"
></div><script
src=
"/dist/index.js?1565746061406"
charset=
"utf-8"
></script></body></html>
\ No newline at end of file
<![endif]-->
<script
charset=
"utf-8"
src=
"https://map.qq.com/api/js?v=2.exp&key=XSZBZ-5LHCV-5I2P7-UQHPW-6456F-JBB3B"
></script><link
href=
"/dist/index.css?1565771827295"
rel=
"stylesheet"
><script
src=
"/lib/vendor.dll.js?3"
charset=
"utf-8"
></script><script
src=
"https://cdn.img.shangjiadao.cn/qingxiao/biz/js/console-polyfill.js?3"
charset=
"utf-8"
></script><script
src=
"https://cdn.img.shangjiadao.cn/qingxiao/biz/js/es6-shim.min.js?3"
charset=
"utf-8"
></script><script
src=
"https://cdn.img.shangjiadao.cn/qingxiao/biz/js/es5-shim.js?3"
charset=
"utf-8"
></script><script
src=
"https://cdn.img.shangjiadao.cn/qingxiao/biz/js/es5-sham.min.js?3"
charset=
"utf-8"
></script><script
src=
"https://cdn.img.shangjiadao.cn/qingxiao/biz/js/json3.min.js?3"
charset=
"utf-8"
></script><script
src=
"https://cdn.img.shangjiadao.cn/qingxiao/biz/js/html5shiv.min.js?3"
charset=
"utf-8"
></script><script
src=
"https://cdn.img.shangjiadao.cn/qingxiao/biz/js/polyfill.js?3"
charset=
"utf-8"
></script></head><body><div
id=
"root"
></div><script
src=
"/dist/index.js?1565771827295"
charset=
"utf-8"
></script></body></html>
\ No newline at end of file
src/models/classdetail.js
View file @
a8c70bf1
...
...
@@ -2,6 +2,7 @@
import
{
routerRedux
}
from
'dva/router'
;
import
{
message
}
from
'antd'
;
import
{
delay
}
from
'redux-saga'
;
import
moment
from
'moment'
;
import
co
from
'co'
;
import
{
LocalStorage
,
...
...
@@ -181,7 +182,7 @@ export default {
},
*
querystudentChangeScheduleList
({
payload
},
{
call
,
put
,
select
})
{
const
{
studentChangeScheduleListQueryParams
,
studentChangeScheduleListTotal
,
classDetail
,
classId
,
studentChangeScheduleListLoading
,
studentChangeScheduleListQueryParams
,
studentChangeScheduleListTotal
,
classDetail
,
classId
,
studentChangeScheduleListLoading
,
datetime
,
}
=
yield
select
(
state
=>
state
.
classdetail
);
const
{
sid
}
=
yield
select
(
state
=>
state
.
webapp
);
const
{
params
,
action
}
=
payload
;
...
...
@@ -203,7 +204,7 @@ export default {
school_id
:
sid
,
course_id
:
classDetail
.
course_id
,
exclude_class_id
:
params
.
exclude_class_id
||
classId
,
start_time
:
''
,
start_time
:
moment
(
datetime
,
'YYYY-MM-DD'
)
,
end_time
:
''
,
});
const
queryScheduleListData
=
yield
call
(
schedulemgtAjax
.
scheduleList
,
newScheduleListQueryParams
);
...
...
src/models/classmgt.js
View file @
a8c70bf1
...
...
@@ -614,6 +614,7 @@ export default {
*
saveStatusChange
({
payload
},
{
call
,
put
,
select
})
{
const
{
selectedClasskey
,
selectedClass
,
statusChangeSubmitting
}
=
yield
select
(
state
=>
state
.
classmgt
);
const
{
sid
}
=
yield
select
(
state
=>
state
.
webapp
);
const
{
status
}
=
payload
;
if
(
selectedClasskey
.
length
==
0
)
{
message
.
warn
(
'请选择需要结业的班级'
,
1
);
return
;
...
...
@@ -630,7 +631,7 @@ export default {
const
changeClassStatusData
=
yield
call
(
classMgtAjax
.
changeClassStatus
,
{
ids
:
selectedClass
.
map
(
ele
=>
ele
.
id
).
join
(
','
),
school_id
:
sid
,
status
:
2
,
status
,
});
yield
put
({
type
:
'updateState'
,
...
...
@@ -660,7 +661,7 @@ export default {
},
},
});
message
.
success
(
'结业成功'
,
1
);
message
.
success
(
status
==
1
?
'撤销结业成功'
:
'结业成功'
,
1
);
}
else
{
message
.
error
(
changeClassStatusData
.
msg
,
1
);
}
...
...
@@ -683,6 +684,9 @@ export default {
},
*
goThemeMgt
({
payload
},
{
call
,
put
,
select
})
{
const
{
classInfo
,
type
}
=
payload
;
yield
put
({
type
:
'thememgt/pageInit'
,
});
yield
put
(
routerRedux
.
push
({
pathname
:
`/sjd/thememgt/
${
classInfo
.
id
}
`
,
}));
...
...
src/models/students.js
View file @
a8c70bf1
...
...
@@ -629,6 +629,8 @@ export default {
const
loading
=
message
.
loading
(
'数据加载中...'
,
1
);
const
newClassListQueryParams
=
Object
.
assign
(
classListQueryParams
,
params
,
{
school_id
:
sid
,
page
:
1
,
perPage
:
1000
,
// teacher_id: 77,
});
const
classListData
=
yield
call
(
classMgtAjax
.
getClassList
,
newClassListQueryParams
);
...
...
@@ -649,7 +651,6 @@ export default {
type
:
'updateState'
,
payload
:
{
classList
:
(
classListData
.
data
&&
classListData
.
data
.
list
)
||
[],
classListQueryParams
:
{
...
newClassListQueryParams
},
},
});
}
else
{
...
...
src/models/thememgt.js
View file @
a8c70bf1
...
...
@@ -176,7 +176,6 @@ export default {
});
},
*
pageInit
({
payload
},
{
call
,
put
,
select
})
{
console
.
log
(
'ssssssssssssssssss'
);
yield
put
({
type
:
'updateState'
,
payload
:
{
...
...
src/pages/classdetail/index.js
View file @
a8c70bf1
...
...
@@ -407,7 +407,7 @@ class ClassDetailForm extends React.Component {
delCoursePlan
=
(
plan
)
=>
{
const
{
dispatch
}
=
this
.
props
;
Modal
.
confirm
({
title
:
'
您确定删除这条排课记录
吗?'
,
title
:
'
确定要删除排课
吗?'
,
onOk
:
()
=>
{
dispatch
({
type
:
'classdetail/delCoursePlan'
,
...
...
@@ -425,7 +425,7 @@ class ClassDetailForm extends React.Component {
return
;
}
Modal
.
confirm
({
title
:
'
您确定删除这条排课记录
吗?'
,
title
:
'
确定要删除排课
吗?'
,
onOk
:
()
=>
{
dispatch
({
type
:
'classdetail/delCoursePlans'
,
...
...
src/pages/classmgt/EditClassModal.js
View file @
a8c70bf1
import
{
connect
}
from
'dva'
;
import
React
from
'react'
;
import
PropTypes
from
'prop-types'
;
import
{
Icon
,
Button
,
Row
,
Col
,
Input
,
Select
,
Checkbox
,
Table
,
Modal
,
Form
,
Alert
}
from
'antd'
;
import
{
Icon
,
Button
,
Row
,
Col
,
Input
,
Select
,
Checkbox
,
Table
,
Modal
,
Form
,
Alert
,
InputNumber
}
from
'antd'
;
import
pageStyle
from
'./EditClassModal.less'
;
import
{
pageIn
}
from
'../../utils/index'
;
const
{
Option
}
=
Select
;
const
{
TextArea
}
=
Input
;
class
EditClassModal
extends
React
.
Component
{
state
=
{
classRoomId
:
''
,
};
componentDidMount
()
{
// 挂载
pageIn
(
'班级管理'
);
// 初始化地图函数 自定义函数名init
...
...
@@ -28,6 +31,11 @@ class EditClassModal extends React.Component {
form
.
resetFields
();
close
();
}
getCurrentClassRoom
=
(
e
)
=>
{
this
.
setState
({
classRoomId
:
e
,
});
}
render
()
{
const
{
visible
,
...
...
@@ -39,12 +47,20 @@ class EditClassModal extends React.Component {
classSubmitting
,
classroomList
,
isEdit
,
form
,
}
=
this
.
props
;
const
{
classRoomId
}
=
this
.
state
;
let
classRoom
;
let
class_room_id
;
if
(
isEdit
==
1
)
{
classRoom
=
classroomList
.
find
(
ele
=>
ele
.
id
==
editClassInfo
.
class_room_id
);
class_room_id
=
classRoom
?
editClassInfo
.
class_room_id
:
''
;
}
const
{
getFieldDecorator
}
=
this
.
props
.
form
;
return
(
<
Modal
visible
=
{
visible
}
title
=
{
isEdit
?
'编辑班级'
:
'新增班级'
}
title
=
{
isEdit
==
1
?
'编辑班级'
:
'新增班级'
}
okText
=
"确定"
onCancel
=
{
this
.
close
}
onOk
=
{
this
.
save
}
...
...
@@ -107,9 +123,12 @@ class EditClassModal extends React.Component {
initialValue
:
editClassInfo
.
capacity
,
rules
:
[
{
required
:
true
,
message
:
'班级容量不能为空'
},
{
pattern
:
/^
[
0-9
]
*
[
1-9
][
0-9
]
*$/
,
message
:
'班级容量须为正整数'
},
{
pattern
:
/^
\d
+$/
,
message
:
'请输入大于0的整数'
,
},
],
})(
<
Input
type
=
"text"
placeholder
=
"请输入班级容量"
/>
)}
})(
<
Input
Number
placeholder
=
"请输入班级容量"
style
=
{{
width
:
'100%'
}}
/>
)
}
<
/Form.Item
>
<
Form
.
Item
label
=
"上课次数:"
...
...
@@ -125,9 +144,13 @@ class EditClassModal extends React.Component {
{
getFieldDecorator
(
'total'
,
{
initialValue
:
editClassInfo
.
total
,
rules
:
[
{
pattern
:
/^
[
0-9
]
*
[
1-9
][
0-9
]
*$/
,
message
:
'上课次数须为正整数'
},
{
pattern
:
/^
\d
+$/
,
message
:
'请输入大于0的整数'
,
},
{
required
:
true
,
message
:
'上课次数不能为空'
},
],
})(
<
Input
type
=
"text"
placeholder
=
"请输入上课次数"
/>
)}
})(
<
Input
Number
placeholder
=
"请输入上课次数"
style
=
{{
width
:
'100%'
}}
/>
)
}
<
/Form.Item
>
<
Form
.
Item
label
=
"课次消耗:"
...
...
@@ -145,9 +168,13 @@ class EditClassModal extends React.Component {
{
getFieldDecorator
(
'expend'
,
{
initialValue
:
editClassInfo
.
expend
,
rules
:
[
{
pattern
:
/^
\d
+$/
,
message
:
'请输入大于0的整数'
,
},
{
required
:
true
,
message
:
'课次消耗不能为空'
},
],
})(
<
Input
type
=
"text"
placeholder
=
"请输入课次消耗"
/>
)}
})(
<
Input
Number
placeholder
=
"请输入课次消耗"
style
=
{{
width
:
'100%'
}}
/>
)
}
<
/Col
>
<
Col
span
=
{
5
}
style
=
{{
color
:
'#000000'
,
fontSize
:
'14px'
}}
>
课时
...
...
@@ -170,7 +197,7 @@ class EditClassModal extends React.Component {
{
getFieldDecorator
(
'teacher_id'
,
{
initialValue
:
editClassInfo
.
teacher_id
,
})(
<
Select
mode
=
"multiple"
>
<
Select
mode
=
"multiple"
allowClear
placeholder
=
"请选择老师"
>
{
teacherList
.
map
(
ele
=>
(
<
Option
value
=
{
ele
.
id
}
>
{
ele
.
nickname
}
<
/Option
>
))}
...
...
@@ -195,9 +222,9 @@ class EditClassModal extends React.Component {
<
Row
gutter
=
{
8
}
>
<
Col
span
=
{
19
}
>
{
getFieldDecorator
(
'class_room_id'
,
{
initialValue
:
(
editClassInfo
.
class_room_id
&&
Number
(
editClassInfo
.
class_room_id
))
||
''
,
initialValue
:
class_room_id
,
})(
<
Select
>
<
Select
allowClear
placeholder
=
"请选择教室"
onChange
=
{
this
.
getCurrentClassRoom
}
>
<
Option
value
=
""
>
空
<
/Option
>
{
classroomList
.
map
(
ele
=>
<
Option
value
=
{
ele
.
id
}
>
{
ele
.
title
}
<
/Option>
)
}
<
/Select>
)
}
...
...
src/pages/classmgt/index.js
View file @
a8c70bf1
...
...
@@ -89,12 +89,18 @@ class ClassMgtForm extends React.Component {
});
}
searchParamsChange
=
(
e
,
type
,
key
)
=>
{
const
{
dispatch
}
=
this
.
props
;
const
{
dispatch
,
copyClassListQueryParams
}
=
this
.
props
;
let
getvalue
=
''
;
if
(
type
==
'Input'
)
{
getvalue
=
e
.
target
.
value
;
}
else
if
(
type
==
'Select'
)
{
getvalue
=
e
;
}
else
if
(
type
==
'Radio'
)
{
if
({
...
copyClassListQueryParams
}.
assign_class_status
==
e
.
target
.
value
)
{
getvalue
=
0
;
}
else
{
getvalue
=
e
.
target
.
value
;
}
}
else
{
console
.
log
(
'else'
);
}
...
...
@@ -257,6 +263,9 @@ class ClassMgtForm extends React.Component {
const
{
dispatch
}
=
this
.
props
;
dispatch
({
type
:
'classmgt/saveStatusChange'
,
payload
:
{
status
:
2
,
},
});
}
singleClassStatusChange
=
(
classinfo
)
=>
{
...
...
@@ -273,6 +282,39 @@ class ClassMgtForm extends React.Component {
onOk
:
()
=>
{
dispatch
({
type
:
'classmgt/saveStatusChange'
,
payload
:
{
status
:
2
,
},
});
},
onCancel
:
()
=>
{
dispatch
({
type
:
'classmgt/updateState'
,
payload
:
{
selectedClasskey
:
[],
selectedClass
:
[],
},
});
},
});
}
singleResetClassStatusChange
=
(
classinfo
)
=>
{
const
{
dispatch
}
=
this
.
props
;
dispatch
({
type
:
'classmgt/updateState'
,
payload
:
{
selectedClasskey
:
[
1
],
selectedClass
:
[
classinfo
],
},
});
Modal
.
confirm
({
title
:
'撤销结业后,班级可以重新加入学生和排课。您确定要撤销结业吗?'
,
onOk
:
()
=>
{
dispatch
({
type
:
'classmgt/saveStatusChange'
,
payload
:
{
status
:
1
,
},
});
},
onCancel
:
()
=>
{
...
...
@@ -389,7 +431,7 @@ class ClassMgtForm extends React.Component {
render
:
(
text
,
record
,
index
)
=>
{
return
(
<
div
>
{
record
.
expend
_time
}
/{record.total
}
{
record
.
expend
}
/{record.total
}
<
/div
>
);
},
...
...
@@ -409,7 +451,7 @@ class ClassMgtForm extends React.Component {
<
span
className
=
{
pageStyle
.
divideline
}
>|<
/span
>
<
a
className
=
{
pageStyle
.
alink
}
href
=
"javascript:;"
onClick
=
{()
=>
this
.
goClassDetail
(
record
,
3
)}
>
点名
<
/a
>
<
span
className
=
{
pageStyle
.
divideline
}
>|<
/span
>
{
record
.
status
==
2
&&
<
a
className
=
{
pageStyle
.
alink
}
href
=
"javascript:;"
>
已结业
<
/a>
}
{
record
.
status
==
2
&&
<
a
className
=
{
pageStyle
.
alink
}
onClick
=
{()
=>
this
.
singleResetClassStatusChange
(
record
)}
href
=
"javascript:;"
>
已结业
<
/a>
}
{
record
.
status
==
1
&&
<
a
className
=
{
pageStyle
.
alink
}
href
=
"javascript:;"
onClick
=
{()
=>
this
.
singleClassStatusChange
(
record
)}
>
结业
<
/a>
}
<
/div
>
);
...
...
@@ -472,16 +514,16 @@ class ClassMgtForm extends React.Component {
<
/Col
>
<
Col
className
=
{
pageStyle
.
formitem
}
xs
=
{{
span
:
24
}}
sm
=
{{
span
:
24
}}
md
=
{{
span
:
12
}}
lg
=
{{
span
:
6
}}
>
<
div
className
=
{
pageStyle
.
formitemlabel
}
>
是否排课
<
/div
>
<
R
adio
.
Group
style
=
{{
width
:
'100%'
,
lineHeight
:
'32px'
}}
>
<
Row
type
=
"flex"
align
=
"center"
justify
=
"center"
>
<
Col
span
=
{
12
}
>
<
Radio
value
=
"A"
>
已排课
<
/Radio
>
<
/Col
>
<
Col
span
=
{
12
}
>
<
Radio
value
=
"C"
>
未排课
<
/Radio
>
<
/Col
>
<
/Row
>
<
/Radio.Group
>
<
R
ow
type
=
"flex"
align
=
"center"
justify
=
"center"
>
<
Col
span
=
{
12
}
>
<
Radio
value
=
{
2
}
onClick
=
{
e
=>
this
.
searchParamsChange
(
e
,
'Radio'
,
'assign_class_status'
)}
checked
=
{
copyClassListQueryParams
.
assign_class_status
==
2
}
>
已排课
<
/Radio
>
<
/Col
>
<
Col
span
=
{
12
}
>
<
Radio
value
=
{
1
}
onClick
=
{
e
=>
this
.
searchParamsChange
(
e
,
'Radio'
,
'assign_class_status'
)}
checked
=
{
copyClassListQueryParams
.
assign_class_status
==
1
}
>
未排课
<
/Radio
>
<
/Col
>
<
/Row
>
{
/* <Radio.Group style={{ width: '100%', lineHeight: '32px' }} value={copyClassListQueryParams.assign_class_status} onChange={e => this.searchParamsChange(e, 'Radio', 'assign_class_status')}
>
</Radio.Group>
*/
}
<
/Col
>
<
Col
className
=
{
pageStyle
.
searchbtnbox
}
xs
=
{{
span
:
12
}}
sm
=
{{
span
:
12
}}
md
=
{{
span
:
12
}}
lg
=
{{
span
:
6
}}
>
<
Button
className
=
{
pageStyle
.
resetbtn
}
onClick
=
{
this
.
reset
}
>
重置
<
/Button
>
...
...
@@ -517,6 +559,7 @@ class ClassMgtForm extends React.Component {
courseList
=
{
courseList
}
teacherList
=
{
teacherList
}
classroomList
=
{
classroomList
}
isEdit
=
{
2
}
/
>
<
ClassRoomMgt
visible
=
{
classRoomMgtShow
}
...
...
src/pages/student/StudentAdd.js
View file @
a8c70bf1
...
...
@@ -22,6 +22,7 @@ class StudentAddForm extends React.Component {
},
],
modeType
:
1
,
usefulClassList
:
[],
// ages: 0,
// addVisible: false,
// delVisible: false,
...
...
@@ -79,7 +80,7 @@ class StudentAddForm extends React.Component {
});
}
courseChange
=
(
value
)
=>
{
const
{
courseList
}
=
this
.
props
;
const
{
courseList
,
classList
}
=
this
.
props
;
const
{
modeTypeArr
}
=
this
.
state
;
const
currentCourse
=
courseList
.
find
(
ele
=>
ele
.
id
==
value
);
const
newModeTypaArr
=
[];
...
...
@@ -107,6 +108,10 @@ class StudentAddForm extends React.Component {
this
.
props
.
form
.
setFieldsValue
({
mode_type
:
newModeTypaArr
[
0
].
value
,
});
const
usefulClassList
=
classList
.
filter
(
ele
=>
ele
.
course_id
==
value
);
this
.
setState
({
usefulClassList
,
});
setTimeout
(()
=>
{
this
.
setState
({
modeType
:
newModeTypaArr
[
0
].
value
,
...
...
@@ -126,9 +131,9 @@ class StudentAddForm extends React.Component {
const
{
visible
,
courseList
,
classList
,
hide
,
}
=
this
.
props
;
const
{
usefulClassList
}
=
this
.
state
;
const
{
modeType
,
modeTypeArr
}
=
this
.
state
;
const
{
getFieldDecorator
}
=
this
.
props
.
form
;
return
(
...
...
@@ -410,7 +415,7 @@ class StudentAddForm extends React.Component {
rules
:
[
{
pattern
:
/^
\d
+$/
,
message
:
'请输入大于0的
数字
'
,
message
:
'请输入大于0的
整数
'
,
},
{
required
:
true
,
...
...
@@ -438,7 +443,7 @@ class StudentAddForm extends React.Component {
rules
:
[
{
pattern
:
/^
\d
+$/
,
message
:
'请输入大于0的
数字
'
,
message
:
'请输入大于0的
整数
'
,
},
{
required
:
true
,
...
...
@@ -470,7 +475,7 @@ class StudentAddForm extends React.Component {
rules
:
[
{
pattern
:
/^
\d
+$/
,
message
:
'请输入大于0的
数字
'
,
message
:
'请输入大于0的
整数
'
,
},
{
required
:
true
,
...
...
@@ -499,7 +504,7 @@ class StudentAddForm extends React.Component {
rules
:
[
{
pattern
:
/^
\d
+$/
,
message
:
'请输入大于0的
数字
'
,
message
:
'请输入大于0的
整数
'
,
},
{
required
:
true
,
...
...
@@ -541,7 +546,7 @@ class StudentAddForm extends React.Component {
placeholder
=
"请选择班级"
style
=
{{
width
:
200
}}
>
{
c
lassList
.
map
(
ele
=>
<
Option
value
=
{
ele
.
id
}
>
{
ele
.
title
}
<
/Option>
)
}
{
usefulC
lassList
.
map
(
ele
=>
<
Option
value
=
{
ele
.
id
}
>
{
ele
.
title
}
<
/Option>
)
}
<
/Select>
,
)}
<
/Form.Item
>
...
...
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