import React,{Component} from 'react'; import { Modal,Checkbox,Select,Input,Tooltip,Spin,Icon,Drawer,Dropdown,Menu,Breadcrumb,Pagination,Button,notification} from "antd"; import axios from'axios'; import NoneData from "../coursesPublic/NoneData"; import './Newshixunmodel.css'; const Search = Input.Search; class NewShixunModel extends Component{ constructor(props){ super(props) this.state={ shixun_list:undefined, shixuns_count:undefined, Grouplist:[], allGrouplist:[{page:1,list:[]}], page:1, type:'all', status:'all', keyword:undefined, order:'desc', diff:0, limit:15, sort:"myshixuns_count" } } componentDidMount() { let{page,type,keyword,order,diff,limit,status,sort}=this.state; if(this.props.type==='shixuns'){ this.getdatalist(page,type,status,keyword,order,diff,limit) }else{ this.getdatalist(page,type,undefined,keyword,order,undefined,limit,undefined,sort); } } getdatalist=(page,type,newstatus,keyword,order,diff,limit,pagetype,sort)=>{ this.setState({ isspinning:true }) let status=this.props.statustype===undefined?newstatus:'published'; let url; if(this.props.type==='shixuns'){ url="/shixun_lists.json"; }else{ url="/subject_lists.json"; } axios.get(url,{params:{ page, type, status, keyword, order, diff, limit, sort }}).then((response) => { if(response.data){ if(pagetype===undefined){ this.setState({ shixun_list:response.data.shixun_list===undefined?response.data.subject_list:response.data.shixun_list, shixuns_count:response.data.shixuns_count===undefined?response.data.subjects_count:response.data.shixuns_count, Grouplist:[], isspinning:false }) }else if(pagetype==="pagetype"){ this.setState({ shixun_list:response.data.shixun_list===undefined?response.data.subject_list:response.data.shixun_list, shixuns_count:response.data.shixuns_count===undefined?response.data.subjects_count:response.data.shixuns_count, isspinning:false }) } } }).catch((error) => { this.setState({ isspinning:false }) }) } DropdownClick=(diff)=>{ this.setState({ diff:diff }) let{page,type,status,keyword,order,limit}=this.state; this.getdatalist(page,type,status,keyword,order,diff,limit) } ItsCourse=(item)=>{ return
} getGrouplist=(Grouplist)=>{ let {page,allGrouplist}=this.state; let newallGrouplist=allGrouplist; var a=newallGrouplist.find((value,index,arr)=>{ return value.page==page }); if(a!=undefined){ newallGrouplist.map((item,key)=>{ if(item.page===page){ item.list=Grouplist } }) } let newGrouplist=[]; newallGrouplist.map((item,key)=>{ item.list.map((items,ke)=>{ newGrouplist.push(items) }) }) this.setState({ Grouplist: newGrouplist, allGrouplist:newallGrouplist }) } PaginationCourse=(pageNumber)=>{ let {allGrouplist}=this.state; let newallGrouplist=allGrouplist; var v=newallGrouplist.find((value,index,arr)=>{ return value.page==pageNumber }); if(v===undefined){ newallGrouplist.push({page:pageNumber,list:[]}) } let{type,status,keyword,order,diff,limit,sort}=this.state; if(this.props.type==='shixuns'){ this.getdatalist(pageNumber,type,status,keyword,order,diff,limit,"pagetype") }else{ this.getdatalist(pageNumber,type,undefined,keyword,order,undefined,limit,"pagetype",sort); } this.setState({ page:pageNumber, allGrouplist:newallGrouplist }) } belongto=(value)=>{ this.setState({ type:value, keyword:undefined, page:1 }) let{status,order,diff,limit,sort}=this.state; if(this.props.type==='shixuns'){ this.getdatalist(1,value,status,undefined,order,diff,limit) }else{ this.getdatalist(1,value,undefined,undefined,order,undefined,limit,undefined,sort) } } updatedlist=(order)=>{ if(order==="desc"){ this.setState({ order:"asc" }) let{type,page,status,keyword,diff,limit}=this.state; this.getdatalist(page,type,status,keyword,"asc",diff,limit) }else{ this.setState({ order:"desc" }) let{type,page,status,keyword,diff,limit}=this.state; this.getdatalist(page,type,status,keyword,"desc",diff,limit) } } setdatafunsval=(e)=>{ this.setState({ keyword:e.target.value }) } setdatafuns=(value)=>{ this.setState({ keyword:value, type:undefined, page:1, status:'all', order:'desc', diff:0, limit:15, }) this.getdatalist(1,undefined,'all',value,'desc',0,15) } showNotification = (description, message = "提示", icon) => { const data = { message, description } if (icon) { data.icon = icon; } notification.open(data); } savecouseShixunModal=()=>{ this.setState({ hometypepvisible:true }) let {coursesId}=this.props; let{Grouplist}=this.state; if(Grouplist.length===0){ this.setState({ hometypepvisible:false }) this.showNotification(this.props.type==='shixuns'?"请先选择实训":"请先选择课程") return } if (this.props.chooseShixun) { if(Grouplist.length>1){ this.setState({ hometypepvisible:false }) this.showNotification("试卷选择的实训数不能大于1") return } this.props.chooseShixun(Grouplist) this.setState({ hometypepvisible:false }) return; } if (this.props.pathShixun) { this.setState({ hometypepvisible:false }) this.props.pathShixun(Grouplist) return; } if(this.props.type==='shixuns'){ let url="/courses/"+coursesId+"/homework_commons/create_shixun_homework.json"; axios.post(url, { category_id:this.props.category_id===null||this.props.category_id===undefined?undefined:parseInt(this.props.category_id), shixun_ids:Grouplist, } ).then((response) => { if(response.data.status===-1){ // this.props.showNotification(response.data.message) }else{ // this.props.courseshomeworkstart(response.data.category_id,response.data.homework_ids) this.showNotification("操作成功") this.props.homeworkupdatalists(this.props.Coursename,this.props.page,this.props.order); this.props.hideNewShixunModelType() this.props.updataleftNavfun() } this.setState({ hometypepvisible:false }) // category_id: 3 // homework_ids: (5) [9171, 9172, 9173, 9174, 9175] }).catch((error) => { console.log(error) this.setState({ hometypepvisible:false }) }) }else{ let url="/courses/"+coursesId+"/homework_commons/create_subject_homework.json"; axios.post(url, { category_id:this.props.category_id===null||this.props.category_id===undefined?undefined:parseInt(this.props.category_id), subject_ids:Grouplist, } ).then((response) => { if(response.data.status===-1){ // this.props.showNotification(response.data.message) }else{ // this.props.courseshomeworkstart(response.data.category_id,response.data.homework_ids) this.showNotification("操作成功") this.props.homeworkupdatalists(this.props.Coursename,this.props.page,this.props.order); this.props.hideNewShixunModelType() this.props.updataleftNavfun() } this.setState({ hometypepvisible:false }) // category_id: 3 // homework_ids: (5) [9171, 9172, 9173, 9174, 9175] }).catch((error) => { console.log(error) this.setState({ hometypepvisible:false }) }) } } poststatus=(status)=>{ this.setState({ status:status }) let{page,type,keyword,order,diff,limit}=this.state; this.getdatalist(page,type,status,keyword,order,diff,limit) } updatepathlist=(sorts,orders)=>{ let{page,type,keyword,order,diff,limit,status,sort}=this.state; let seartorders; if(sort===sorts){ if(orders==="desc"){ this.setState({ sort:sorts, order:"asc" }) seartorders="asc" }else{ this.setState({ sort:sorts, order:"desc" }) seartorders="desc" } }else{ this.setState({ sort:sorts, order:"desc" }) seartorders=orders } this.getdatalist(page,type,undefined,keyword,seartorders,undefined,limit,undefined,sorts) } render() { let {diff,Grouplist,status,shixun_list,shixuns_count,page,type,order,sort}=this.state; // let {visible,patheditarry}=this.props; // console.log(Grouplist) // console.log(allGrouplist) const statusmenus=( ); const menus = ( ); console.log(shixun_list) return(Jupyter