diff --git a/public/react/src/modules/courses/coursesPublic/OneSelfOrderModal.js b/public/react/src/modules/courses/coursesPublic/OneSelfOrderModal.js index 6d4a307e5..ef21f963c 100644 --- a/public/react/src/modules/courses/coursesPublic/OneSelfOrderModal.js +++ b/public/react/src/modules/courses/coursesPublic/OneSelfOrderModal.js @@ -229,8 +229,6 @@ class OneSelfOrderModal extends Component{ let {group_ids,endtime,course_groups}=this.state; // TODO course_groups为空时的处理 - - // let endtimelist=this.props.starttimes===undefined||this.props.starttimes===""?"":moment(handleDateString(endtime)).add(1,'months') return( <div> { diff --git a/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js b/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js index ac2ea7be3..f05cbf967 100644 --- a/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js +++ b/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js @@ -430,7 +430,8 @@ class Testpapersettinghomepage extends Component{ className={"btn fr color-blue font-16 mt20 mr20"} checkBoxValues={[parseInt(this.props.match.params.Id)]} Exercisetype={"exercise"} - action={this.Commonheadofthetestpaper} + pushtype={true} + action={this.Commonheadofthetestpaper} single={true} getsetdata={this.getsetdata} ></ImmediatelyPublish> diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js index b54aad071..fdd10db6a 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskDetail.js @@ -115,12 +115,18 @@ class GraduationTaskDetail extends Component{ // this.props.history.goBack() this.props.history.replace(`/courses/${this.state.questionslist.course_id}/graduation_tasks/${this.state.questionslist.graduation_id}`); } + + setend_time=(time)=>{ + this.setState({ + starttimesend:time===undefined||time===null||time===""?undefined:time, + }) + } //立即发布 publish=()=>{ let {questionslist}=this.state; let starttime= this.props.getNowFormatDates(1,1); let endtime=this.props.getNowFormatDates(2,1); - // this.homeworkstart() + console.log(this.bindRef.end_time) this.setState({ modalname:"立即发布", // visible:true, @@ -367,7 +373,14 @@ class GraduationTaskDetail extends Component{ course_groups={this.state.course_groups} modaltype={this.state.modaltype} getcourse_groupslist={(id) => this.getcourse_groupslist(id)} + starttimes={this.state.starttimes} + starttimesend={this.state.starttimesend} + typs={this.state.typs} /> + + + + {/*关联项目*/} {visibles===true? <Associationmodel @@ -505,19 +518,19 @@ class GraduationTaskDetail extends Component{ <Route exact path="/courses/:coursesId/graduation_tasks/:category_id/detail/:task_Id/list" render={ - (props) => (<GraduationTaskslist {...this.props} {...props} {...this.state} {...commom} triggerRef={this.bindRef} tab={`list`}/>) + (props) => (<GraduationTaskslist {...this.props} {...props} {...this.state} {...commom} triggerRef={this.bindRef} setend_time={(time)=>this.setend_time(time)} tab={`list`}/>) } ></Route> <Route exact path="/courses/:coursesId/graduation_tasks/:category_id/detail/:task_Id/setting" render={ - (props) => (<GraduationTaskssetting {...this.props} {...props} {...this.state} {...commom} triggerRef={this.bindRef} tab={`setting`}/>) + (props) => (<GraduationTaskssetting {...this.props} {...props} {...this.state} {...commom} triggerRef={this.bindRef} setend_time={(time)=>this.setend_time(time)} tab={`setting`}/>) } ></Route> <Route exact path="/courses/:coursesId/graduation_tasks/:category_id/detail/:task_Id/questions" render={ - (props) => (<GraduationTasksquestions {...this.props} {...props} {...this.state} {...commom} triggerRef={this.bindRef} tab={`questions`}/>) + (props) => (<GraduationTasksquestions {...this.props} {...props} {...this.state} {...commom} triggerRef={this.bindRef} setend_time={(time)=>this.setend_time(time)} tab={`questions`}/>) }></Route> </Switch> diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssetting.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssetting.js index bab853a13..365e53409 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssetting.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssetting.js @@ -143,6 +143,7 @@ class GraduationTaskssettingapp extends Component{ commenttime:result.data.comment_time===null||result.data.comment_time=== ""?"":moment(moment(handleDateString(result.data.comment_time))).format("YYYY-MM-DD HH:mm"), task_status: result.data.task_status }) + this.props.setend_time(result.data.end_time) } }).catch((error)=>{ diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js index b3282d7dd..ebe931eb0 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js @@ -151,7 +151,9 @@ class GraduationTaskssettinglist extends Component{ taskslistdata: result.data, data: datalist, loadingstate: false, + end_time:result.data.end_time }) + this.props.setend_time(result.data.end_time) } }).catch((error)=>{ console.log(error) diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettingquestions.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettingquestions.js index 06ed1eaa1..f87b0a53d 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettingquestions.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettingquestions.js @@ -54,8 +54,10 @@ class GraduationTasksquestions extends Component{ axios.get(url).then((result)=>{ if(result.status===200){ this.setState({ - questionslist:result.data + questionslist:result.data, + end_time:result.data.end_time }) + this.props.setend_time(result.data.end_time) } }).catch((error)=>{ console.log(error) diff --git a/public/react/src/modules/courses/poll/PollDetailIndex.js b/public/react/src/modules/courses/poll/PollDetailIndex.js index 69ea83d62..c91a6a493 100644 --- a/public/react/src/modules/courses/poll/PollDetailIndex.js +++ b/public/react/src/modules/courses/poll/PollDetailIndex.js @@ -185,6 +185,7 @@ class PollDetailIndex extends Component{ className={"font-16"} checkBoxValues={[this.props.match.params.pollId]} action={this.getPollInfo} + pushtype={true} single={true} ></ImmediatelyPublish> </li> diff --git a/public/react/src/modules/courses/poll/pollPublicBtn/ImmediatelyPublish.js b/public/react/src/modules/courses/poll/pollPublicBtn/ImmediatelyPublish.js index 9644acfde..b35b500ac 100644 --- a/public/react/src/modules/courses/poll/pollPublicBtn/ImmediatelyPublish.js +++ b/public/react/src/modules/courses/poll/pollPublicBtn/ImmediatelyPublish.js @@ -4,13 +4,14 @@ import React,{ Component } from "react"; import Modals from '../../../modals/Modals' import { WordsBtn } from 'educoder' import HomeworkModal from "../../coursesPublic/HomeworkModal"; - +import OneSelfOrderModal from "../../coursesPublic/OneSelfOrderModal"; import axios from 'axios' import moment from 'moment'; + class Immediatelypublish extends Component{ constructor(props){ super(props) @@ -39,104 +40,170 @@ class Immediatelypublish extends Component{ } //立即发布 homeworkstart=()=>{ - let {checkBoxValues}=this.props + let {checkBoxValues,pushtype}=this.props - // console.log(this.props.Exercisetype==="exercise") + if(pushtype===true){ + if(checkBoxValues.length==0){ + this.props.showNotification("请先在列表中选择数据"); + // this.setState({ + // modalsType:true, + // modalsTopval:"请先在列表中选择数据", + // loadtype:true + // }) + }else{ + let coursesId=this.props.match.params.coursesId; + if(this.props.Exercisetype==="exercise"){ + let url=`/exercises/${this.props.match.params.Id}/publish_groups.json`; + axios.get(url).then((response) => { + if(response.status===200){ + this.setState({ + modalname:"立即发布", + modaltype:response.data.course_groups===null||response.data.course_groups.length===0?2:1, + OneSelftype:true, + Topval:"学生将立即收到试卷", + // Botvalleft:"暂不发布", + Botval:this.props.single ? "":`本操作只对"未发布"的分班有效`, + starttime:moment(moment(new Date())).format("YYYY-MM-DD HH:mm"), + starttimes:this.props.getNowFormatDates(1), + endtime:"截止时间:"+this.props.getNowFormatDates(2), + Cancelname:"暂不发布", + Savesname:"立即发布", + Cancel:this.homeworkhide, + Saves:this.homeworkstartend, + course_groups:response.data.course_groups, + starttimesend:response.data.end_time===undefined||response.data.end_time===null||response.data.end_time===""?undefined:response.data.end_time, + }) + } + }).catch((error) => { + console.log(error) + }); + }else{ + let url=`/polls/${this.props.match.params.pollId}/publish_groups.json`; + axios.get(url).then((response) => { + if(response){ - if(checkBoxValues.length==0){ - this.props.showNotification("请先在列表中选择数据"); - // this.setState({ - // modalsType:true, - // modalsTopval:"请先在列表中选择数据", - // loadtype:true - // }) - }else{ - let coursesId=this.props.match.params.coursesId; - if(this.props.Exercisetype==="exercise"){ - let url=`/courses/${coursesId}/exercises/publish_modal.json`; - axios.get(url,{ - params:{ - check_ids:checkBoxValues - } - }).then((response) => { - if(response.status===200){ - let list=[]; - if(response.data.course_info){ - for(var i=0;i<response.data.course_info.length;i++){ - list.push({ - id:response.data.course_info[i].course_group_id, - name:response.data.course_info[i].course_group_name, - }) - } - } - this.setState({ - course_groups:list, - }) - this.setState({ - modalname:"立即发布", - modaltype:response.data.un_publish > 0 ? 1 : 2, - visible:true, - Topval:"学生将立即收到试卷", - // Botvalleft:"暂不发布", - Botval:this.props.single ? "":`本操作只对"未发布"的分班有效`, - starttime:"发布时间:"+moment(moment(new Date())).format("YYYY-MM-DD HH:mm"), - starttimes:this.props.getNowFormatDates(1), - endtime:"截止时间:"+this.props.getNowFormatDates(2), - Cancelname:"暂不发布", - Savesname:"立即发布", - Cancel:this.homeworkhide, - Saves:this.homeworkstartend, - }) + this.setState({ + modalname:"立即发布", + modaltype:response.data.course_groups===null||response.data.course_groups.length===0?2:1, + OneSelftype:true, + Topval:"学生将立即收到问卷", + // Botvalleft:"暂不发布", + Botval:this.props.single ? "":`本操作只对"未发布"的分班有效`, + starttime:"发布时间:"+moment(moment(new Date())).format("YYYY-MM-DD HH:mm"), + starttimes:this.props.getNowFormatDates(1), + endtime:"截止时间:"+this.props.getNowFormatDates(2), + Cancelname:"暂不发布", + Savesname:"立即发布", + Cancel:this.homeworkhide, + Saves:this.homeworkstartend, + course_groups:response.data.course_groups, + starttimesend:response.data.end_time===undefined||response.data.end_time===null||response.data.end_time===""?undefined:response.data.end_time, + }) + } + }).catch((error) => { + console.log(error) + }); - } - }).catch((error) => { - console.log(error) - }); - }else{ - let url=`/courses/${coursesId}/polls/publish_modal.json`; - axios.get(url,{ - params:{ - check_ids:checkBoxValues - } - }).then((response) => { - if(response){ - let list=[]; - if(response.data.course_info){ - for(var i=0;i<response.data.course_info.length;i++){ - list.push({ - id:response.data.course_info[i].course_group_id, - name:response.data.course_info[i].course_group_name, - }) - } - } - this.setState({ - course_groups:list, - }) - this.setState({ - modalname:"立即发布", - modaltype:response.data.un_publish > 0 ? 1 : 2, - visible:true, - Topval:"学生将立即收到问卷", - // Botvalleft:"暂不发布", - Botval:this.props.single ? "":`本操作只对"未发布"的分班有效`, - starttime:"发布时间:"+moment(moment(new Date())).format("YYYY-MM-DD HH:mm"), - starttimes:this.props.getNowFormatDates(1), - endtime:"截止时间:"+this.props.getNowFormatDates(2), - Cancelname:"暂不发布", - Savesname:"立即发布", - Cancel:this.homeworkhide, - Saves:this.homeworkstartend, - }) - } - }).catch((error) => { - console.log(error) - }); + } - } + } + }else{ + if(checkBoxValues.length==0){ + this.props.showNotification("请先在列表中选择数据"); + // this.setState({ + // modalsType:true, + // modalsTopval:"请先在列表中选择数据", + // loadtype:true + // }) + }else{ + let coursesId=this.props.match.params.coursesId; + if(this.props.Exercisetype==="exercise"){ + let url=`/courses/${coursesId}/exercises/publish_modal.json`; + axios.get(url,{ + params:{ + check_ids:checkBoxValues + } + }).then((response) => { + if(response.status===200){ + let list=[]; + if(response.data.course_info){ + for(var i=0;i<response.data.course_info.length;i++){ + list.push({ + id:response.data.course_info[i].course_group_id, + name:response.data.course_info[i].course_group_name, + }) + } + } + this.setState({ + course_groups:list, + }) + this.setState({ + modalname:"立即发布", + modaltype:response.data.un_publish > 0 ? 1 : 2, + visible:true, + Topval:"学生将立即收到试卷", + // Botvalleft:"暂不发布", + Botval:this.props.single ? "":`本操作只对"未发布"的分班有效`, + starttime:"发布时间:"+moment(moment(new Date())).format("YYYY-MM-DD HH:mm"), + starttimes:this.props.getNowFormatDates(1), + endtime:"截止时间:"+this.props.getNowFormatDates(2), + Cancelname:"暂不发布", + Savesname:"立即发布", + Cancel:this.homeworkhide, + Saves:this.homeworkstartend, + }) + + } + }).catch((error) => { + console.log(error) + }); + }else{ + let url=`/courses/${coursesId}/polls/publish_modal.json`; + axios.get(url,{ + params:{ + check_ids:checkBoxValues + } + }).then((response) => { + if(response){ + let list=[]; + if(response.data.course_info){ + for(var i=0;i<response.data.course_info.length;i++){ + list.push({ + id:response.data.course_info[i].course_group_id, + name:response.data.course_info[i].course_group_name, + }) + } + } + this.setState({ + course_groups:list, + }) + this.setState({ + modalname:"立即发布", + modaltype:response.data.un_publish > 0 ? 1 : 2, + visible:true, + Topval:"学生将立即收到问卷", + // Botvalleft:"暂不发布", + Botval:this.props.single ? "":`本操作只对"未发布"的分班有效`, + starttime:"发布时间:"+moment(moment(new Date())).format("YYYY-MM-DD HH:mm"), + starttimes:this.props.getNowFormatDates(1), + endtime:"截止时间:"+this.props.getNowFormatDates(2), + Cancelname:"暂不发布", + Savesname:"立即发布", + Cancel:this.homeworkhide, + Saves:this.homeworkstartend, + }) + } + }).catch((error) => { + console.log(error) + }); + + } + + } + } - } } @@ -154,6 +221,7 @@ class Immediatelypublish extends Component{ modalname:undefined, modaltype:undefined, visible:false, + OneSelftype:false, Topval:undefined, Topvalright:undefined, Botvalleft:undefined, @@ -174,18 +242,42 @@ class Immediatelypublish extends Component{ // 确定立即发布 homeworkstartend=(ids,endtime)=>{ - let {checkBoxValues}=this.props + let {checkBoxValues,pushtype}=this.props let {chooseId}=this.state; let coursesId=this.props.match.params.coursesId; + let data={}; + + if(pushtype===true){ + + if(ids.length===0){ + data = { + check_ids:checkBoxValues, + end_time: endtime, + } + }else{ + data={ + check_ids: checkBoxValues, + group_ids: ids, + group_end_times:endtime, + detail:true + } + + } + }else{ + + data={ + check_ids:checkBoxValues, + group_ids:chooseId, + end_time:endtime + } + } + + if(this.props.Exercisetype==="exercise"){ let url=`/courses/${coursesId}/exercises/publish.json` - axios.post(url,{ - check_ids:checkBoxValues, - group_ids:chooseId, - end_time:endtime - }).then((result)=>{ + axios.post(url,data).then((result)=>{ if(result){ this.props.showNotification(result.data.message); this.homeworkhide(); @@ -210,11 +302,7 @@ class Immediatelypublish extends Component{ }else{ let url=`/courses/${coursesId}/polls/publish.json` - axios.post(url,{ - check_ids:checkBoxValues, - group_ids:chooseId, - end_time:endtime - }).then((result)=>{ + axios.post(url,data).then((result)=>{ if(result){ this.props.showNotification(result.data.message); this.homeworkhide(); @@ -277,6 +365,29 @@ class Immediatelypublish extends Component{ course_groups={course_groups} getcourse_groupslist={(id)=>this.getcourse_groupslist(id)} /> + + {/*立即发布*/} + <OneSelfOrderModal + modaltype={this.state.modaltype} + modalname={this.state.modalname} + OneSelftype={this.state.OneSelftype} + Topval={this.state.Topval} + Topvalright={this.state.Topvalright} + Botvalleft={this.state.Botvalleft} + Botval={this.state.Botval} + starttime={this.state.starttime} + endtime={this.state.endtime} + Cancelname={this.state.Cancelname} + Savesname={this.state.Savesname} + Cancel={this.state.Cancel} + Saves={this.state.Saves} + course_groups={this.state.course_groups} + getcourse_groupslist={(id) => this.getcourse_groupslist(id)} + starttimes={this.state.starttimes} + starttimesend={this.state.starttimesend} + typs={this.state.typs} + /> + {/* 公用的提示弹框 */} <Modals modalsType={modalsType} diff --git a/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js b/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js index 3ba5703ef..c040b7d99 100644 --- a/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js +++ b/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js @@ -1590,7 +1590,7 @@ class Trainingjobsetting extends Component { // 立即发布 homeworkstartend = (ds,endtime) => { var homeworkid = this.props.match.params.homeworkid; - console.log(this.props) + let data={} if(ds.length===0){ if(this.props.teacherdatapage.category.main===1){