import React, {Component} from "React"; import {Form, Select, Input, Button, Checkbox, DatePicker,Spin,Icon,AutoComplete,InputNumber,Breadcrumb} from "antd"; import ApplyForAddOrgModal from '../../user/modal/ApplyForAddOrgModal'; import axios from 'axios'; import "../css/Courses.css"; import locale from 'antd/lib/date-picker/locale/zh_CN'; import moment from 'moment'; import Modals from '../../modals/Modals'; import {WordsBtn, ActionBtn} from 'educoder'; const { Option } = Select; const dateFormat = 'YYYY-MM-DD'; function range(start, end) { const result = []; for (let i = start; i < end; i++) { result.push(i); } return result; } function disabledDateTime() { return { disabledMinutes: () => range(1, 30).concat(range(31, 60)), }; } function disabledDate(current) { return current && current < moment().endOf('day').subtract(1, 'days'); } // function disabledDate(current) { // console.log(current); // return current && current < moment().endOf('day').subtract(1, 'days'); // } // function disabledDateysl(current) { // console.log(current); // return current && current < moment().endOf('day').add(1, 'days'); // } class Goldsubject extends Component { constructor(props) { super(props) this.state = { coursedata: undefined, searchlist: [], searchlistscholl:[], listvalue: undefined, fetching:false, subject_id:"", start_date:"", addonAfteronelenone:"", addonAfteronelentwo:"", Whethertocreateanewclassroom:true, checkbofrup:[ {module_type:"announcement",module_name:"公告栏"},{module_type:"online_learning",module_name:"在线学习"} ,{module_type:"shixun_homework",module_name:"实训作业"},{module_type:"common_homework",module_name:"普通作业"} ,{module_type:"exercise",module_name:"试卷"},{module_type:"poll",module_name:"问卷"} ,{module_type:"attachment",module_name:"资源"},{module_type:"board",module_name:"讨论"},{module_type:"course_group",module_name:"分班"},], } } // disabledEndDate= endValue => { // const { datatimetwo } = this.state; // var startValue =datatimetwo // if (!endValue || !startValue) { // return false; // } // return endValue.valueOf() < startValue.valueOf(); // }; isabledStartDate = (startValue) => { const { datatime } = this.state; var datatimes=""; if(datatime!==undefined){ datatimes=datatime; datatimes=moment(datatimes, dateFormat).subtract(0, 'days');; }else { datatimes=datatime; } if (!startValue || !datatimes) { return false; } return startValue.valueOf() > datatimes.valueOf(); }; disabledEndDate = (endValue) => { // console.log("---------------------------------") // console.log(moment(new Date(), dateFormat).add(1, 'days')); // console.log(moment(new Date(), dateFormat).add(2, 'days')); const { datatimetwo } = this.state; var startvalue=""; if(datatimetwo!==undefined){ startvalue=datatimetwo; startvalue=moment(startvalue, dateFormat).add(1, 'days'); }else { startvalue=datatimetwo; } // console.log("结束时间"); // console.log(endValue); // console.log(startvalue); // console.log(datatimetwo); if (!endValue || !startvalue) { return false; } return endValue.valueOf() < startvalue.valueOf(); }; componentDidMount() { console.log("新建精品课堂的数据"); console.log(this.props); let coursesId = this.props.match.params.coursesId; let user_school=this.props.current_user&&this.props.current_user.user_school; // this.getschool("") // this.Searchvalue("") if (coursesId != undefined) { let url = "/courses/" + coursesId + "/settings.json" axios.get(url).then((result) => { let data = result.data; this.props.form.setFieldsValue({ course: data.course_list_name, classroom: data.name, period: data.class_period===undefined?'':data.class_period===null?'':data.class_period===null?'':data.class_period==="null"?'':data.class_period+"", credit: data.credit===undefined?'':data.credit===null?'':data.credit===null?'':data.credit==="null"?'':data.credit+"", checkboxgroup: data.course_module_types, Realnamecertification: data.authentication, Professionalcertification:data.professional_certification, starttime: data.start_date === undefined ? "" : moment(data.start_date, dateFormat), endtime: data.end_date === undefined ? "" : moment(data.end_date, dateFormat), school:data.school }); // starttime this.setState({ datatimetwo: data.start_date === undefined ? "" : moment(data.start_date, dateFormat), datatime: data.end_date === undefined ? "" : moment(data.end_date, dateFormat), is_public: data.is_public, Realnamecertification: data.authentication, Professionalcertification:data.professional_certification, name: data.name, class_period: data.class_period, addonAfteronelenone: data.class_period===undefined?'':data.class_period===null?'':data.class_period===null?'':data.class_period==="null"?'':data.class_period, credit: parseFloat(data.credit), addonAfteronelentwo:data.credit===undefined?'':data.credit===null?'':data.credit===null?'':data.credit==="null"?'':data.credit, course_module_types: data.course_module_types, school:data.school, Whethertocreateanewclassroom:false, }); this.handleSearchschool(data.school); }).catch((error) => { console.log(error); }) }else{ let subjectid= this.props.match.params.subjectid; let url = "/courses/new.json" axios.get(url,{params:{ subject_id:subjectid, //这是带过来的值 }}).then((response) => { if (response) { // this.goback if(response.data){ console.log("获取Goldsubject.js"); console.log(response.data); if(response.data.status===0){ this.props.form.setFieldsValue({ classroom: response.data.course_name, name: response.data.name, }); } } } }).catch((error) => { console.log(error); }) // console.log(user_school); this.props.form.setFieldsValue({ school:user_school, starttime:moment(new Date(),dateFormat), }); this.setState({ school:user_school, Whethertocreateanewclassroom:true, datatimetwo: moment(new Date(),dateFormat), }); this.handleSearchschool(user_school); } } componentDidUpdate(prevProps) { if(prevProps.current_user !== this.props.current_user){ let user_school=this.props.current_user&&this.props.current_user.user_school; this.props.form.setFieldsValue({ school:user_school, }); this.setState({ school:user_school, }); this.handleSearchschool(user_school); } } onChangeTimepublishs = (date, dateString) => { console.log("结束时间11111111111"); console.log(dateString); if(dateString===""){ this.setState({ datatime: undefined, }) console.log("结束时间111111111116"); this.props.form.setFieldsValue({ endtime:undefined, }); }else{ console.log("结束时间111111111117"); this.setState({ datatime: dateString, }); this.props.form.setFieldsValue({ endtime: moment(dateString, dateFormat), }); } }; onChangeTimepublishstwo = (date, dateString) => { console.log("结束时间22222222222"); console.log(dateString); if(dateString===""){ console.log("结束时间222222222223"); this.setState({ datatimetwo: undefined, }) this.props.form.setFieldsValue({ starttime: undefined, }); }else{ console.log("结束时间222222222224"); this.setState({ datatimetwo: dateString, }) this.props.form.setFieldsValue({ starttime: moment(dateString, dateFormat), }); } }; cancelmodel = () => { this.setState({ Modalstype: false, Loadtype: false, Modalstopval: "", ModalCancel: "", ModalSave: "", }) } scrollToAnchor = (anchorName) => { if (anchorName) { // 找到锚点 let anchorElement = document.getElementById(anchorName); // 如果对应id的锚点存在,就跳转到锚点 window.scrollTo(0, anchorElement.offsetTop - window.innerHeight / 2); } } //提交数据的地方 handleSubmit = (e) => { e.preventDefault(); let first_category_url=this.props.current_user.first_category_url; let coursesId = this.props.match.params.coursesId; var is_public =this.props.match.params.id; let {datatime,datatimetwo} = this.state // console.log(is_public) if (coursesId != undefined) { // 编辑 this.props.form.validateFields((err, values) => { if (err) { return; } // if(values.course===""||values.course===undefined){ // this.scrollToAnchor("iscourse") // return // // } // if(values.classroom===""||values.classroom===undefined){ // this.scrollToAnchor("isclassroom") // return // } // // if(values.school===""||values.school===undefined){ // // this.scrollToAnchor("isschool") // return // // } if(values.checkboxgroup.length===0){ this.setState({ Modalstype:true, Modalstopval:"请您至少添加一个课堂模块,", ModalsBottomval:"否则您将无法新建课堂。", Loadtype:true, ModalSave:()=>this.cancelmodel(), }) return } if (!err) { // console.log('Received values of form: ', values); var datasysl={ // subject_id:128, //这是带过来的值 编辑就不要传值了 name: values.classroom, class_period: values.period, credit: parseFloat(values.credit), start_date:moment(values.starttime).format("YYYY-MM-DD"), end_date: moment(values.endtime).format("YYYY-MM-DD"), is_public: this.state.is_public, //这是也是带过来的值 course_module_types: values.checkboxgroup, school:values.school }; try { console.log("327"); console.log(datasysl); // console.log(JSON.stringify(datasysl)); console.log("88887777"); console.log(moment(values.starttime).format("YYYY-MM-DD")); console.log(moment(values.endtime).format("YYYY-MM-DD")); }catch (e) { } let url = "/courses/" + coursesId + ".json"; axios.put(url, datasysl ).then((response) => { // debugger if (response.data.status === 0) { // this.goback() window.location.href=first_category_url; var yslGuideone = window.localStorage.getItem('yslGuideone'); try { if(yslGuideone=== null){ window.localStorage.setItem('yslGuideone', "true"); return } if(yslGuideone=== undefined){ window.localStorage.setItem('yslGuideone', "true"); return } }catch (e) { } } }).catch((error) => { console.log(error) }) } console.log("错误信息信息信息1"); console.log(err); console.log(values.starttime); console.log(values.endtime); }); } else { this.props.form.validateFields((err, values) => { console.log("错误信息信息信息2"); console.log(err); if (err) { return; } // if(values.course===""||values.course===undefined){ // this.scrollToAnchor("iscourse") // return // } // if(values.classroom===""||values.classroom===undefined){ // this.scrollToAnchor("isclassroom") // return // } // if(values.school===""||values.school===undefined){ // // this.scrollToAnchor("isschool") // return // // } if (!err) { // debugger //新建 // console.log('Received values of form: ', values); let subjectid = this.props.match.params.subjectid; let url = "/courses.json"; var ysldatas={ subject_id:subjectid, //这是带过来的值 name: values.classroom, class_period: values.period, credit: parseFloat(values.credit), start_date:moment(values.starttime).format("YYYY-MM-DD"), end_date: moment(values.endtime).format("YYYY-MM-DD"), is_public: is_public, //这是也是带过来的值 course_module_types: values.checkboxgroup, school:values.school }; try { console.log("提交的ysldatas数据"); console.log(ysldatas); // console.log(JSON.stringify(ysldatas)); console.log(moment(values.starttime).format("YYYY-MM-DD")); console.log(moment(values.endtime).format("YYYY-MM-DD")); }catch (e) { } axios.post(url, ysldatas ).then((response) => { if (response.status === 200) { // this.goback window.location.href=response.data.first_category_url; var yslGuideone = window.localStorage.getItem('yslGuideone'); try { if(yslGuideone=== null){ window.localStorage.setItem('yslGuideone', "true"); return } if(yslGuideone=== undefined){ window.localStorage.setItem('yslGuideone', "true"); return } }catch (e) { } } }).catch((error) => { console.log(error) }) } }); } } goback = () => { // if(this.props.match.params.coursesId===undefined){ // this.props.history.push("/courses"); // }else{ // this.props.history.push(this.props.current_user.first_category_url); // } // window.history.go(-1) if(this.state.Whethertocreateanewclassroom===true){ var subjectids=this.props.match.params.subjectid; window.location.href=`/paths/${subjectids}` }else{ // this.props.history.goBack(); window.location.href=`/courses/${this.props.match.params.coursesId}/informs` } } onCheckAllChange = (e) => { // console.log(e.target.checked) this.setState({ is_public: e.target.checked == true ? 1 : 0, }); } onchanges =(e)=>{ this.setState({ Realnamecertification:e.target.checked, }) // console.log(e.target.checked); } onchangess=(e)=>{ this.setState({ Professionalcertification:e.target.checked, }) // console.log(e.target.checked); } Searchvalue=(value)=>{ let url="/courses/search_course_list.json"; axios.post(url,{ search:value }).then((result)=>{ // console.log(result.data) if (result.data.message===undefined) { this.setState({ searchlist: result.data.course_lists, // course:value, }) } // this.props.form.setFieldsValue({ // course:value // }) }).catch((error)=>{ console.log(error) }) } handleSearch=(value)=>{ if(value!=""){ this.props.form.setFieldsValue({ classroom:value, // course:value }); this.Searchvalue(value) } }; handleChange=(value)=>{ this.props.form.setFieldsValue({ // course:value, classroom:value }) }; handleSearchschool=(value)=>{ if(value!="") { // this.props.form.setFieldsValue({ // // school: value, // fetching: true, // }); this.setState({ fetching: true, school: value }) this.getschool(value) } }; handleChangeschools=(value)=>{ // this.props.form.setFieldsValue({ // // school: value, // fetching: true, // }); // this.setState({ // fetching: true // }) } handleChangeschool=(value)=>{ this.setState({ school:value }); this.props.form.setFieldsValue({ school:value, }) }; getschool=(value)=>{ // this.props.form.setFieldsValue({ // school: value // }) let url="/schools/school_list.json"; axios.get(url,{ params: { search: value } }).then((result)=>{ if(result){ if (result.data.status===0) { this.setState({ searchlistscholl: result.data.school_names, }) if(result.data.school_names.length!=0){ this.setState({ fetching: false }) } } } }).catch((error)=>{ console.log(error) }) } showApplyForAddOrgModal = () => { this.applyForAddOrgForm.setVisible(true) } render() { let {datatime,datatimetwo,school,searchlistscholl,Whethertocreateanewclassroom,addonAfteronelenone,addonAfteronelentwo} = this.state; const {getFieldDecorator} = this.props.form; const propsWithoutForm = Object.assign({}, this.props) delete propsWithoutForm.form const options = this.state.searchlist && this.state.searchlist.map(d => ); const optionschool = this.state.searchlistscholl===undefined?"":this.state.searchlistscholl===null?"":this.state.searchlistscholl==="[]"?"":this.state.searchlistscholl.map(z => ); // console.log(this.props.current_user.user_school) // form合并了 // console.log("获取到的数据"); // console.log(this.state); // console.log(this.props); // console.log(this.props.current_user); var addonAfterone=this.props.form&&this.props.form.getFieldValue('period'); var addonAfteronelen=0; if(addonAfterone){ addonAfteronelen=String(addonAfterone).length; } var addonAftertwo=this.props.form&&this.props.form.getFieldValue('credit'); var addonAfteronelens=0; if(addonAftertwo){ addonAfteronelens=String(addonAftertwo).length; } console.log(addonAfteronelenone); console.log(addonAfteronelentwo); return (
this.applyForAddOrgForm = form} schoolName={school} {...propsWithoutForm}> {/*提示*/}
{/**/} {/* */} {/* 翻转课堂*/} {/* */} {/* {Whethertocreateanewclassroom===true?"新建课堂":"编辑课堂"}*/} {/**/}

翻转课堂 > {Whethertocreateanewclassroom===true?"新建课堂":"编辑课堂"}

{Whethertocreateanewclassroom===true ? "新建课堂" : "编辑课堂"}

{/*内容*/} {/*
*/} {/*
*/} {/* */} {/* {getFieldDecorator('course', {*/} {/* rules: [{required: true, message: "不能为空"}],*/} {/* })(*/} {/* */} {/* {options}*/} {/* */} {/* )}*/} {/* */} {/* /!*(错误示例:数据结构2017本部;数据结构2017秋季;数据结构2017电子商务1班)*!/*/} {/*

*/} {/* */} {/* 正确示例:数据结构*/} {/*

*/} {/*

*/} {/* */} {/* 错误示例:数据结构2019春*/} {/*

*/} {/*
*/} {/*
*/} {/*
*/} {/*
*/} {/*
*/}
{getFieldDecorator('classroom', { rules: [{required: true, message: "不能为空"}], })( {options} )} {/**/} {/* /!*(如果本学期包含多个班级,只需创建一个课堂然后在课堂内部建立不同的分班)*!/*/} {/*

*/} {/* */} {/* 正确示例:数据结构2019春季班级*/} {/*

*/} {/*

*/} {/* */} {/* 错误示例:2019春季班级数据结构*/} {/*

*/} {/*
*/}
{getFieldDecorator("period", { rules:[{ pattern: new RegExp(/^[0-9]+([.]{1}[0-9]+){0,1}$/, "g"), message: '必须是数值' }, { max:5, message: '不能超过5个字符', }]} )( )} {getFieldDecorator("credit", { rules:[{ pattern: new RegExp(/^[0-9]+([.]{1}[0-9]+){0,1}$/, "g"), message: '必须是数值' }, { max:5, message: '不能超过5个字符', } ]} )( )} {getFieldDecorator("starttime", { rules: [{type: 'object',required: true, message: "开始时间不能为空"}], })( )} {getFieldDecorator("endtime", { rules: [{type: 'object', required: true, message: "结束时间不能为空"}], })( )}
{getFieldDecorator("checkboxgroup", { initialValue: [ "announcement","online_learning","shixun_homework","common_homework", ], })( 公告栏 在线学习 实训作业 普通作业 试卷 问卷 资源 讨论 分班 )}
{/*
*/} {/* */} {/* */} {/* {getFieldDecorator("Realnamecertification")(*/} {/* 已实名认证*/} {/* // */} {/* // 已实名认证*/} {/* // 已职业认证 (勾选,则通过邀请码加入课堂的用户,需要完成相关认证才能加入课堂)*/} {/* // */} {/* )}*/} {/* */} {/* */} {/* */} {/* */} {/* {getFieldDecorator("Professionalcertification")(*/} {/* 已职业认证 (勾选,则通过邀请码加入课堂的用户,需要完成相关认证才能加入课堂)*/} {/* )}*/} {/* */} {/* */} {/*
*/} {/*
*/} {/* */} {/* {getFieldDecorator("publicclass")(*/} {/* 公开课堂*/} {/* )}*/} {/* (选中后本课堂对所有用户可见,否则仅本课堂成员可见)*/} {/* */} {/*
*/}
{getFieldDecorator('school', { rules: [{required: true, message: "不能为空"}], })( {optionschool} )} {/*(输入内容出现匹配的下拉菜单←同账号管理的单位信息填写)*/}
{searchlistscholl.length===0&&this.state.fetching===true?
未找到包含“{school}”的高校, 申请新增
:""}
{/*提交*/} 取消
) } } const WrappedCoursesNewAppGoldclass = Form.create({name: 'goldsubject'})(Goldsubject); export default WrappedCoursesNewAppGoldclass;