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){