import React,{ Component } from "react"; import { Modal,Checkbox,Select,Input,Tooltip,Spin,Icon} from "antd"; import axios from'axios'; // import Loading from '@icedesign/base/lib/loading'; // import '@icedesign/base/lib/loading/style.js'; const Option = Select.Option; const Search = Input.Search; class ShixunModal extends Component{ constructor(props){ super(props); this.state={ Searchvalue:undefined, type:'all', category_id:0, page:1, shixunmodallist:undefined, hometypepvisible:false, newshixunmodallist:undefined, } } componentDidMount() { this.setState({ hometypepvisible:true, }) let coursesId=this.props.match.params.coursesId; let url = this.props.shixunsUrl || "/courses/"+coursesId+"/homework_commons/shixuns.json"; axios.get(url).then((result)=>{ if(result.status===200){ if(result.data.message===undefined){ this.setState({ shixunmodallist:result.data, hometypepvisible:false, newshixunmodallist:result.data.shixun_list, }) } } }).catch((error)=>{ console.log(error); }) } setupdatalist=(search,type,loading,page)=>{ let{newshixunmodallist}=this.state; let newshixunmodallists=[] if(page>1){ newshixunmodallists=newshixunmodallist; } this.setState({ hometypepvisible:loading }) let coursesId=this.props.match.params.coursesId; let url = this.props.shixunsUrl || "/courses/"+coursesId+"/homework_commons/shixuns.json"; axios.get(url, { params: { search: search, type:type, page:page } }).then((result)=>{ if(result.status===200){ if(result.data.message===undefined){ let shixun_list = result.data.shixun_list; for (var i = 0; i < shixun_list.length; i++) { newshixunmodallists.push(shixun_list[i]) } this.setState({ shixunmodallist: result.data, newshixunmodallist: newshixunmodallists, hometypepvisible: false, page: page }) } } }).catch((error)=>{ console.log(error); }) } //勾选实训 shixunhomeworkedit=(list)=>{ let newpatheditarry=[]; if (this.props.singleChoose == true) { if (list.length > 0) { newpatheditarry.push(list[list.length - 1]) } } else { for(var i=0; i<list.length;i++){ newpatheditarry.push(list[i]) } } // this.setState({ // patheditarry:newpatheditarry // }) this.props.funpatheditarry(newpatheditarry) } contentViewScrolledit=(e)=>{ const {shixunmodallist}=this.state; //滑动到底判断 let newscrollTop=parseInt(e.currentTarget.scrollTop); let allclientHeight=e.currentTarget.clientHeight+newscrollTop; if(e.currentTarget.scrollHeight-allclientHeight===0||e.currentTarget.scrollHeight-allclientHeight===1||e.currentTarget.scrollHeight-allclientHeight===-1) { if (shixunmodallist.shixun_list.length === 0) { return; } else { let {Searchvalue, type, page} = this.state; let newpage = page + 1 this.setupdatalist(Searchvalue, type, true, newpage) } } } //搜索 SenttotheValue=(e)=>{ this.setState({ Searchvalue:e.target.value }) } SenttotheSearch=(value)=>{ let{type}=this.state; this.setState({ page:1, }) this.props.funpatheditarry([]) this.setupdatalist(value,type,true,1) } //tag changeTag=(types)=>{ let {Searchvalue}=this.state; this.setState({ type:types, page:1, newshixunmodallist:undefined }) this.props.funpatheditarry([]) this.setupdatalist(Searchvalue,types,true,1) } hidecouseShixunModal=()=>{ this.props.hidecouseShixunModal() } savecouseShixunModal=()=>{ this.setState({ hometypepvisible:true }) let {coursesId,patheditarry,datas}=this.props; if(patheditarry.length===0){ this.setState({ shixunmodelchke:true, chekicmessage:"请先选择实训", hometypepvisible:false }) return } if (this.props.chooseShixun) { this.props.chooseShixun(patheditarry) this.setState({ hometypepvisible:false }) return; } 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:patheditarry, } ).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.props.homeworkupdatalists(this.props.Coursename,this.props.page,this.props.order); this.props.hidecouseShixunModal() } this.setState({ hometypepvisible:false }) // category_id: 3 // homework_ids: (5) [9171, 9172, 9173, 9174, 9175] }).catch((error) => { console.log(error) }) } selectCloseList=(value)=>{ this.setState({ category_id:value }) } render(){ let {Searchvalue,type,hometypepvisible,shixunmodallist,newshixunmodallist,}=this.state; let {visible,patheditarry}=this.props; const antIcon = <Icon type="loading" style={{ fontSize: 24 }} spin />; // console.log(patheditarry) return( <div> <Modal keyboard={false} title="选择实训" visible={visible} closable={false} footer={null} width="840px" destroyOnClose={true} > <style> { ` .ant-spin-lg .ant-spin-dot { font-size: 32px !important; } ` } </style> <Spin indicator={antIcon} spinning={hometypepvisible} className="newnext-loading" color='#4AC7FF' size="large"> {/*<Spin shape="dot-circle" >*/} {/*{*/} {/*shixunmodallist === undefined ? "":shixunmodallist.homework_category.length>0?<div>*/} {/*<div className={"fl"}>选择目录名称:</div>*/} {/*<div className="fl mb20">*/} {/*<Select*/} {/*placeholder="请选择您要发送的课堂"*/} {/*value={isNaN(parseInt(category_id))?"":parseInt(category_id)}*/} {/*style={{"width":"660px","marginTop": "-7px"}}*/} {/*onSelect={this.selectCloseList}*/} {/*// onMouseEnter={this.openList}*/} {/*defaultOpen={false}*/} {/*// open={openSearch}*/} {/*optionLabelProp="name"*/} {/*>*/} {/*{ shixunmodallist.main_category.map((item,key)=>{*/} {/*return(*/} {/*<Option key={key} value={item.main_category_id} name={item.main_category_name}>{item.main_category_name}</Option>*/} {/*)*/} {/*})*/} {/*}*/} {/*{*/} {/*shixunmodallist.homework_category.map((item,key)=>{*/} {/*return(*/} {/*<Option key={key} value={item.category_id} name={item.category_name}>{item.category_name}</Option>*/} {/*)*/} {/*})*/} {/*}*/} {/*</Select>*/} {/*</div>*/} {/*</div>:""}*/} <div className="newupload_conbox"> <style> { ` #shixun_tab_div{ max-height: 65px; } ` } </style> <div className="clearfix mb10 shixun_work_div newshixun_tab_div cdefault" id="shixun_tab_div"> <li className="fl mr5 mt5"> <a onClick={()=>this.changeTag("all")} className={ type==="all" ? "active edu-filter-cir-grey font-12":"edu-filter-cir-grey font-12"}>全部</a> </li> { shixunmodallist && shixunmodallist.tags.map((item,key)=>{ return( <li className="fl mr5 mt5" key={key}> <a onClick={()=>this.changeTag(item.tag_id)} className={ parseInt(type) === parseInt(item.tag_id) ? "active edu-filter-cir-grey font-12":"edu-filter-cir-grey font-12"}>{item.tag_name}</a> </li> ) }) } </div> <div className="clearfix mb10" id="shixun_search_form_div" style={{height:"30px"}}> <span className="fl color-grey-9 font-16 mt3"> <span>共</span> <span className="color-orange-tip">{shixunmodallist === undefined ? "":shixunmodallist.shixuns_count}</span> <span>个实训</span> </span> <div className="fr search-new"> <Search placeholder="请输入创建者或者实训名称进行搜索" value={Searchvalue} onInput={this.SenttotheValue} onSearch={(value) => this.SenttotheSearch(value)} style={{width: '115%'}} /> </div> </div> { <style> { `.paddingleft22{ text-align: left; padding-left: 23px; } ` } </style> } <ul className="clearfix greybackHead edu-txt-center"> <li className="fl with40 paddingleft22" >实训名称</li> <li className="fl with25 edu-txt-left">院校</li> <li className="fl with11">学习人数</li> <li className="fl with11">难度</li> <li className="fl with11"></li> </ul> <div className="over210 pl20 pr20" onScroll={this.contentViewScrolledit} > <style> { ` .next-loading{ width: 100%; height: 230px; } .newtaskhide{ margin-top:0px !important; height: 40px; } .with11{ width: 11%; box-sizing: border-box; } .pl12{ padding-left: 12px; } ` } </style> {/*<Loading visible={hometypepvisible} shape="dot-circle" className="newnext-loading" color='#4AC7FF'>*/} <Checkbox.Group style={{ width: '100%' }} value={patheditarry} onChange={this.shixunhomeworkedit}> { newshixunmodallist === undefined ? "":newshixunmodallist.length===0? <div className="alltask edu-back-white"> <div className="edu-tab-con-box clearfix edu-txt-center"> <img className="edu-nodata-img mb20" src="/images/educoder/nodata.png" /> <p className="edu-nodata-p mb20">暂时还没有相关数据哦!</p></div> </div>:newshixunmodallist.map((item,key)=>{ return( <div className="clearfix edu-txt-center lineh-40 bor-bottom-greyE" key={key}> <li className="fl with40 edu-txt-left task-hide paddingl5 newtaskhide"> <Checkbox id={"shixun_input_"+item.shixun_id} value={item.shixun_id} key={item.shixun_id} className=" task-hide edu-txt-left newtaskhide" style={{"width":"280px"}} name="shixun_homework[]" > <span style={{"textAlign":"left","color":"#05101A"}} className="task-hide color-grey-name">{item.shixun_name}</span> </Checkbox> </li> <li className="fl with25 edu-txt-left task-hide paddingl5">{item.school}</li> <li className="fl with11 paddingl10">{item.myshixuns_count}</li> <li className="fl with11 color-orange-tip paddingl10 pl12">{item.level}</li> <Tooltip title="新窗口查看详情"> <li className="fl with11"><a className="color-blue" href={"/shixuns/"+item.identifier+"/challenges"} target="_blank">详情</a></li> </Tooltip> </div> ) }) } </Checkbox.Group> {/*</Loading>*/} </div> </div> </Spin> <span className={this.state.shixunmodelchke===true?"color-red":"none"}>{this.state.chekicmessage}</span> <div className="mt20 marginauto clearfix edu-txt-center"> <a className="pop_close task-btn mr30 margin-tp26" onClick={this.hidecouseShixunModal}>取消</a> <a className="task-btn task-btn-orange margin-tp26" id="submit_send_shixun" onClick={this.savecouseShixunModal}>确定</a> </div> </Modal> </div> ) } } export default ShixunModal;