dev_ec
杨树林 5 years ago
parent e03e085062
commit 610536b100

@ -35,12 +35,13 @@ class EcStudentList extends Component {
pages:1,
per_pages:20,
total_student:0,
Myschoolstudents:[],
}
}
componentDidMount(){
window.document.title = '学生列表';
let major_id=this.props.match.params.major_id;
let year_id=this.props.match.params.year_id;
let major_id=this.props.match.params.majorId;
let year_id=this.props.match.params.yearId;
const url ='/ec_years/'+year_id+'/students.json';
axios.get(url, {
@ -54,7 +55,23 @@ class EcStudentList extends Component {
total_student:response.data.count,
majorschoollist:response.data,
ismanager:response.data.ismanager,
})
});
try {
if(response.data.students.length>0){
var mst=response.data.students;
for(var i=0;i<mst.length;i++){
mst[i].istrue=false;
}
this.setState({
Myschoolstudents:mst
});
}
}catch (e) {
this.setState({
Myschoolstudents:[]
});
}
}
}
}
@ -63,33 +80,11 @@ class EcStudentList extends Component {
.catch(function (error) {
console.log(error);
});
// let majorschoollist={
// ec_students: [{index: 1, student_name: "同意", student_id: "s20111458"},
// {index: 1, student_name: "同意", student_id: "s20111458"},
// {index: 2, student_name: "涛哥", student_id: "2011554f4"},
// {index: 3, student_name: "例如", student_id: "20154787b"},
// {index: 4, student_name: "问问", student_id: "201548580014"},
// {index: 5, student_name: "嗯嗯", student_id: "2015748912321234"},
// {index: 6, student_name: "让人", student_id: "20157456"},
// {index: 7, student_name: "方法", student_id: "20159658"},
// {index: 8, student_name: "全球", student_id: "20159632"},
// {index: 9, student_name: "是说", student_id: "20154512"},
// {index: 10, student_name: "谷歌", student_id: "20157932"},
// {index: 11, student_name: "版本", student_id: "20159635"},
// {index: 12, student_name: "捏捏", student_id: "20153451"},
// ],
// import_url: "/ec_major_schools/3/academic_years/10/import_students",
// show_name: true,
// template_url: "/attachments/download/227528/01_学生列表导入模板.xls",
// total_page: 1
// }
// this.setState({
// majorschoollist:majorschoollist
// })
}
uploadcomponentDidMount(){
let major_id=this.props.match.params.major_id;
let year_id=this.props.match.params.year_id;
let major_id=this.props.match.params.majorId;
let year_id=this.props.match.params.yearId;
const url ='/ec_years/'+year_id+'/students.json';
axios.get(url, {
page:this.state.pages,
@ -103,7 +98,23 @@ class EcStudentList extends Component {
total_student:response.data.count,
majorschoollist:response.data,
ismanager:response.data.ismanager,
})
});
try {
if(response.data.students.length>0){
var mst=response.data.students;
for(var i=0;i<mst.length;i++){
mst[i].istrue=false;
}
this.setState({
Myschoolstudents:mst
});
}
}catch (e) {
this.setState({
Myschoolstudents:[]
});
}
}
}
}
@ -122,27 +133,31 @@ class EcStudentList extends Component {
uploadfile=(file)=>{
this.setState({isSpin:true})
let {majorschoollist}=this.state;
let Url =majorschoollist.import_url;
let year_id=this.props.match.params.yearId;
let Url ='/ec_years/'+year_id+'/students/import.json';
const form = new FormData();
form.append('file', file.file);
form.append('attachment_id', file.file.id);
axios.post(Url,form
).then((response) => {
if(response.data.status===1){
if(response.data.status===0){
// message.success('已成功导入'+response.data.count+"条数据!");
this.setState({
// titlemessage: response.data.message+"(支撑关系变更)",
Modallist: '已成功导入'+response.data.count+"条数据!",
Modallisttype:true,
Modallisttypes:1,
Modallisttypess:0,
isSpin:false
})
}else if(response.data.status===0){
}else{
// message.warning(response.data.message);
this.setState({
// titlemessage: response.data.message+"(支撑关系变更)",
Modallist:response.data.message,
Modallisttype:true,
Modallisttypes:0,
Modallisttypess:0,
isSpin:false
})
}
@ -150,8 +165,7 @@ class EcStudentList extends Component {
console.log(error)
})
}
hidemodeldelete=()=>{
let {Modallisttypes}=this.state;
hidemodeldelete=(Modallisttypes)=>{
this.setState({
Modallisttype:false,
Modallist:'',
@ -165,8 +179,8 @@ class EcStudentList extends Component {
showecStudentList=(page)=>{
let major_id=this.props.match.params.major_id;
let year_id=this.props.match.params.year_id;
let major_id=this.props.match.params.majorId;
let year_id=this.props.match.params.yearId;
const url ='/ec_years/'+year_id+'/students.json';
axios.get(url, {
page:this.state.pages,
@ -180,51 +194,67 @@ class EcStudentList extends Component {
majorschoollist:response.data,
ismanager:response.data.ismanager,
pages:page,
})
});
try {
if(response.data.students.length>0){
var mst=response.data.students;
for(var i=0;i<mst.length;i++){
mst[i].istrue=false;
}
this.setState({
Myschoolstudents:mst
});
}
}catch (e) {
this.setState({
Myschoolstudents:[]
});
}
}
}
}
}).catch(function (error) {
console.log(error);
});
}
};
//全选
onChangestudentall=(e)=>{
let {majorschoollist}=this.state;
let mewmajorschoollist=majorschoollist
for(var i=0; i<mewmajorschoollist.ec_students.length; i++){
mewmajorschoollist.ec_students[i].istrue=e.target.checked
let {Myschoolstudents}=this.state;
let mewmajorschoollist=Myschoolstudents
for(var i=0; i<mewmajorschoollist.length; i++){
mewmajorschoollist[i].istrue=e.target.checked
}
this.setState({
studentall:e.target.checked,
majorschoollist:mewmajorschoollist
Myschoolstudents:mewmajorschoollist
})
}
};
//单选
onChangestudent=(e)=>{
let {majorschoollist,studentall}=this.state;
let mewmajorschoollist=majorschoollist;
let {Myschoolstudents,studentall}=this.state;
let mewmajorschoollist=Myschoolstudents;
let newstudentall=studentall;
if(e.target.checked===false){
newstudentall=false
}
for(var i=0; i<mewmajorschoollist.ec_students.length; i++){
if(i===e.target.index&&e.target.id===mewmajorschoollist.ec_students[i].student_id){
mewmajorschoollist.ec_students[i].istrue=e.target.checked
for(var i=0; i<mewmajorschoollist.length; i++){
if(i===e.target.index&&e.target.id===mewmajorschoollist[i].student_id){
mewmajorschoollist[i].istrue=e.target.checked
}
}
this.setState({
student_id:e.target.id,
majorschoollist:mewmajorschoollist,
studentall:newstudentall
studentall:newstudentall,
Myschoolstudents:mewmajorschoollist
})
}
};
// 删除提示
deletelistbth=()=>{
let {majorschoollist,studentall} =this.state;
let {Myschoolstudents,studentall} =this.state;
let studentalltype=0
for(var i=0; i<majorschoollist.ec_students.length; i++){
if(majorschoollist.ec_students[i].istrue===true){
for(var i=0; i<Myschoolstudents.length; i++){
if(Myschoolstudents[i].istrue===true){
studentalltype=1
}
}
@ -240,32 +270,33 @@ class EcStudentList extends Component {
Modallisttype:true
})
}
}
};
//删除学生
deletelistbthenters=()=>{
let {majorschoollist,studentall} =this.state;
let major_id=this.props.match.params.major_id;
let year_id=this.props.match.params.year_id;
debugger
let {Myschoolstudents,studentall} =this.state;
let major_id=this.props.match.params.majorId;
let year_id=this.props.match.params.yearId;
let newstudent_id=[];
if(studentall===false){
for(var i=0; i<majorschoollist.ec_students.length; i++){
if(majorschoollist.ec_students[i].istrue===true){
newstudent_id.push(majorschoollist.ec_students[i].student_id)
for(var i=0; i<Myschoolstudents.length; i++){
if(Myschoolstudents[i].istrue===true){
newstudent_id.push(Myschoolstudents[i].id)
}
}
}
let url ='/ec_major_schools/'+major_id+'/academic_years/'+year_id+'/destroy_students'
let url ='/ec_years/'+year_id+'/students.json'
axios.delete(url,{data:{
all:studentall,
student_ids:newstudent_id,
ids:newstudent_id,
}}).then((response) => {
if(response.data.status===1){
if(response.data.status===0){
this.setState({
// Modallist: "删除成功!",
// Modallisttype:true,
Modallisttypes:1,
Modallisttypess:0
})
this.hidemodeldelete();
this.hidemodeldelete(1);
}
}).catch((error) => {
console.log(error)
@ -282,12 +313,9 @@ class EcStudentList extends Component {
student_id,
Modallisttypess,
total_student,
ismanager
ismanager,
Myschoolstudents
}=this.state;
// ec_students: []
// import_url: "/ec_major_schools/:1/academic_years/:1/import_students"
// template_url: "javascript:void(0);"
// total_page: 0
const uploadProps = {
name: 'file',
@ -304,128 +332,137 @@ class EcStudentList extends Component {
}
}
return (
<div className="newMain clearfix">
<Modal
title={titlemessage}
// visible={modeldelet===true&&listid===list.id?true:false}
visible={Modallisttype}
className={"ecmodeldelet"}
closable={false}
footer={null}
>
<div className="task-popup-content">
<div className="task-popup-text-center font-14">{Modallist}</div>
</div>
<div className="task-popup-submit clearfix">
<a onClick={this.hidemodeldelete} className="task-btn fl">取消</a>
{
Modallisttypess===0?<a className="task-btn task-btn-orange fr"
onClick={this.hidemodeldelete}
>确定</a>:<a className="task-btn task-btn-orange fr"
onClick={this.deletelistbthenters}
>确定</a>
}
</div>
</Modal>
<div className="educontent mb290">
<div className="clearfix padding20-30 bor-bottom-greyE mb10 edu-back-white">
<span className="fl font-18 courseSystem ">学生列表</span>
<a className="fr font-15 courseSystem" onClick={this.windowsgoblack}>返回</a>
</div>
<div className="edu-back-white ">
<div className="clearfix padding20-30 bor-bottom-greyE"><span
className=" font-18 courseSystem">学生列表
{total_student}
</span>
<div className="color-grey-9 mr10">提供模板支持导入学生信息(请先下载模板) <a className={"color-blue"} onClick={() => window.elasticLayer(3533)}>查看详情</a></div>
</div>
<div className="padding20-30 padbottom" id="training_objective_contents">
{ismanager===false?"":
<span className="mr30">请使用导入模板<a href={majorschoollist===undefined?"":majorschoollist.template_url} className="color-green"><i className="iconfont icon-fujian mr5 color-green font-16"></i></a>便</span>
}
<a className="white-btn edu-orangeback-btn fr mr10" >
{ismanager===false?"":<Upload
{...uploadProps}
showUploadList={false}
style={{color:'#fff'}}
>
导入
</Upload>}
</a>
</div>
<div id="training_objective_contents" className='deletelist' >
{ismanager===false?"":<div className="white-btn deletebth ml30 mr10" onClick={this.deletelistbth}>
删除
</div>}
</div>
<Spin spinning={this.state.isSpin}>
<div className="ListTableLine minH-560 edu-back-white mb80" id="listContent">
<p className="clearfix">
<span className="column-No column-2 relative">
<Checkbox
className={'mr20 changestudent'}
checked={studentall===true?true:false}
onChange={this.onChangestudentall}></Checkbox>
序号
</span>
<span className="column-2" style={{display:majorschoollist===undefined?"":majorschoollist.show_name===false?"none":'inline-block'}}>姓名</span>
<span className="column-2">学号</span>
</p>
<ul>
{
majorschoollist===undefined?
<div className="edu-txt-center color-grey-9 pt50">
<p className="mb20"><img className="edu-nodata-img mb20" src={getImageUrl("images/educoder/nodata.png")} /></p>
<p>学生数据为空请导入数据</p>
</div>
:majorschoollist.ec_students.length===0?
<div className="edu-txt-center color-grey-9 pt50">
<p className="mb20"><img className="edu-nodata-img mb20" src={getImageUrl("images/educoder/nodata.png")}/></p>
<p>学生数据为空请导入数据</p>
</div>:majorschoollist.students.map((item,key)=>{
// console.log(item)
return(
<li className="clearfix" key={key}>
<span className="column-No column-2 relative">
<Checkbox
className={'mr20 changestudents'}
checked={item.istrue===true?true:false}
key={key}
index={key}
onChange={this.onChangestudent} id={item.student_id}></Checkbox>
{item.index}
</span>
<span className="column-2" style={{display:majorschoollist===undefined?"none":majorschoollist.show_name===false?"none":'inline-block'}}>{item.student_name}</span>
<span className="column-2">{item.student_id}</span>
</li>
)
})
}
</ul>
<div style={{width:'100%',position: 'relative'}}>
{
majorschoollist===undefined?"":majorschoollist.students===0||majorschoollist.total_student<51?"": <Pagination size="small" className={"pagelistStudentList mt30"} pageSize={20} showQuickJumper current={1} total={majorschoollist.students.length} onChange={this.showecStudentList} />
}
</div>
</div>
</Spin>
</div>
</div>
</div>
<div className="newMain clearfix">
<Modal
title={titlemessage}
// visible={modeldelet===true&&listid===list.id?true:false}
visible={Modallisttype}
className={"ecmodeldelet"}
closable={false}
footer={null}
>
<div className="task-popup-content">
<div className="task-popup-text-center font-14">{Modallist}</div>
</div>
<div className="task-popup-submit clearfix">
<a onClick={()=>this.hidemodeldelete(1)} className="task-btn fl">取消</a>
{
Modallisttypess===0?<a className="task-btn task-btn-orange fr"
onClick={()=>this.hidemodeldelete(1)}
>确定</a>:<a className="task-btn task-btn-orange fr"
onClick={this.deletelistbthenters}
>确定</a>
}
</div>
</Modal>
<div className="educontent mb290">
<div className="clearfix padding20-30 bor-bottom-greyE mb10 edu-back-white">
<span className="fl font-18 courseSystem ">学生列表</span>
<a className="fr font-15 courseSystem" onClick={this.windowsgoblack}>返回</a>
</div>
<div className="edu-back-white ">
<div className="clearfix padding20-30 bor-bottom-greyE"><span
className=" font-18 courseSystem">学生列表
{total_student}
</span>
<div className="color-grey-9 mr10">提供模板支持导入学生信息(请先下载模板)
{/*<a className={"color-blue"} onClick={() => window.elasticLayer(3533)}>查看详情</a>*/}
</div>
</div>
<div className="padding20-30 padbottom" id="training_objective_contents">
{ismanager===false?"":
<span className="mr30">请使用导入模板<a href={'/attachments/download/279190/01_学生列表导入模板2.0.xls'} className="color-green"><i className="iconfont icon-fujian mr5 color-green font-16"></i></a>便</span>
}
<a className="white-btn edu-orangeback-btn fr mr10" >
{ismanager===false?"":<Upload
{...uploadProps}
showUploadList={false}
style={{color:'#fff'}}
>
导入
</Upload>}
</a>
</div>
<div id="training_objective_contents" className='deletelist' >
{ismanager===false?"":<div className="white-btn deletebth ml30 mr10" onClick={this.deletelistbth}>
删除
</div>}
</div>
<Spin spinning={this.state.isSpin}>
<div className="ListTableLine minH-560 edu-back-white mb80" id="listContent">
<p className="clearfix">
<span className="column-No column-2 relative">
<Checkbox
className={'mr20 changestudent'}
checked={studentall===true?true:false}
onChange={this.onChangestudentall}></Checkbox>
序号
</span>
<span className="column-2">姓名</span>
<span className="column-2">学号</span>
</p>
<style>{
`
.myslispan{
display: flex;
flex-direction:initial;
}
`
}</style>
<ul>
{
majorschoollist===undefined?
<div className="edu-txt-center color-grey-9 pt50">
<p className="mb20"><img className="edu-nodata-img mb20" src={getImageUrl("images/educoder/nodata.png")} /></p>
<p>学生数据为空请导入数据</p>
</div>
:Myschoolstudents&&Myschoolstudents.length===0?
<div className="edu-txt-center color-grey-9 pt50">
<p className="mb20"><img className="edu-nodata-img mb20" src={getImageUrl("images/educoder/nodata.png")}/></p>
<p>学生数据为空请导入数据</p>
</div>:Myschoolstudents&&Myschoolstudents.map((item,key)=>{
// console.log(item)
return(
<li className="clearfix myslispan" key={key}>
<div className="column-No column-2 relative">
<Checkbox
className={'mr20 changestudents'}
checked={item.istrue===true?true:false}
key={key}
index={key}
onChange={this.onChangestudent} id={item.student_id}></Checkbox>
{item.index}
</div>
<div className="column-2" >{item.name}</div>
<div className="column-2">{item.student_id}</div>
</li>
)
})
}
</ul>
<div style={{width:'100%',position: 'relative'}}>
{
majorschoollist&&majorschoollist.students&&majorschoollist.students===0||majorschoollist&&majorschoollist.students&&majorschoollist.students.length<51?"": <Pagination size="small" className={"pagelistStudentList mt30"} pageSize={20} showQuickJumper current={1} total={majorschoollist&&majorschoollist.students&&majorschoollist.students.length} onChange={this.showecStudentList} />
}
</div>
</div>
</Spin>
</div>
</div>
</div>
)
}
}
export default SnackbarHOC() (EcStudentList);
export default SnackbarHOC() (EcStudentList);

Loading…
Cancel
Save