截止时间:
-
+
diff --git a/public/react/src/modules/courses/poll/PollDetailTabForthRules.js b/public/react/src/modules/courses/poll/PollDetailTabForthRules.js
index 1a53b1acd..8cc0adc02 100644
--- a/public/react/src/modules/courses/poll/PollDetailTabForthRules.js
+++ b/public/react/src/modules/courses/poll/PollDetailTabForthRules.js
@@ -343,6 +343,7 @@ class PollDetailTabForthRules extends Component{
render(){
let {rules,course_group,flagPageEdit}=this.state
let isAdmin=this.props.isAdmin();
+ console.log(flagPageEdit)
return(
@@ -462,7 +463,7 @@ class PollDetailTabForthRules extends Component{
disabledTime={disabledDateTime}
disabledDate={disabledDate}
disabled={
- this.props.type==="Exercise"?
+ this.props.type==="Exercise"||this.props.type==="polls"?
rule.e_timeflag === undefined ? rule.publish_time === null ? false : moment(rule.end_time, dataformat) <= moment() ?this.props.isAdmin()?!flagPageEdit: true : !flagPageEdit : rule.e_timeflag == true ? this.props.isAdmin()?!flagPageEdit :true : !flagPageEdit:
rule.e_timeflag === undefined ? rule.publish_time === null ? false : moment(rule.end_time, dataformat) <= moment() ? true : !flagPageEdit : rule.e_timeflag == true ? true : !flagPageEdit
}
@@ -477,7 +478,7 @@ class PollDetailTabForthRules extends Component{
{
- flagPageEdit ?
+ flagPageEdit ?this.props.isAdmin()?
{rule.p_timeflag===undefined?r > 0&&rule.publish_time===null?
this.removeRules(`${r}`)}>
@@ -508,7 +509,7 @@ class PollDetailTabForthRules extends Component{
}
- :""
+ :"":""
}
diff --git a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js
index 438df7b05..fee00d4eb 100644
--- a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js
+++ b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js
@@ -1294,11 +1294,11 @@ class Listofworksstudentone extends Component {
record.submitstate === "未开启" ?
this.Viewstudenttraininginformationtysl2(e, record)}
- onClick={() => this.Viewstudenttraininginformationt(record)}>评阅 :
+ onClick={() => this.Viewstudenttraininginformationt(record)}>{record.has_comment===true?"详情":"评阅 "} :
this.Viewstudenttraininginformationtysl2(e, record)}
- onClick={() => this.Viewstudenttraininginformationt(record)}>评阅
+ onClick={() => this.Viewstudenttraininginformationt(record)}>{record.has_comment===true?"详情":"评阅 "}
)
},
@@ -1656,11 +1656,11 @@ class Listofworksstudentone extends Component {
record.submitstate === "未开启" ?
this.Viewstudenttraininginformationtysl2(e, record)}
- onClick={() => this.Viewstudenttraininginformationt(record)}>评阅 :
+ onClick={() => this.Viewstudenttraininginformationt(record)}>{record.has_comment===true?"详情":"评阅"} :
this.Viewstudenttraininginformationtysl2(e, record)}
- onClick={() => this.Viewstudenttraininginformationt(record)}>评阅
+ onClick={() => this.Viewstudenttraininginformationt(record)}>{record.has_comment===true?"详情":"评阅"}
)
},
@@ -1673,35 +1673,13 @@ class Listofworksstudentone extends Component {
}
componentDidCatch(error, info) {
- // console.log("-----------------------------905错误信息");
- // console.log(error);
- // console.log(info);
+
}
- // componentWillReceiveProps(nextProps) {
- // console.log("+++++++++916");
- // console.log(nextProps);
- // console.log(this.props)
- // // console.log(this.props.isAdmin());
- // if (nextProps.code_review != this.props.code_review) {
- // if (nextProps.code_review !== undefined) {
- // console.log("diaoyonglwangluo1");
- // if(this.props.isAdmin() === true){
- // this.tearchar();
- // }else{
- // this.student();
- // }
- // }
- // }
- //
- // }
+
componentDidMount() {
- // console.log("componentDidMount ");
- // console.log("调用子组件 ");
- // console.log(this.props);
- // console.log(this.props.isAdmin())
this.student();
}
@@ -1886,7 +1864,13 @@ class Listofworksstudentone extends Component {
console.log(error);
})
}
-
+ //一键评阅的按钮
+ AkeyreviewitGetalistofworkstwo=()=>{
+ this.setState({
+ loadingstate: true,
+ })
+ this.Startsortingt("", "", "", "", 1, 20);
+ }
// 获取作品列表
Getalistofworkstwo = (ordervlue, checkedValuesine, checkedValuesineinfo, searchtext, page, limit) => {
// console.log("获取作品列表");222222222222
@@ -2075,6 +2059,7 @@ class Listofworksstudentone extends Component {
stduynumber: teacherdata.student_id,
classroom: teacherdata.group_name,
cost_time: teacherdata.cost_time,
+ has_comment:teacherdata.has_comment,
submitstate: teacherdata.work_status === 0 ? "未开启" : teacherdata.work_status === 1 ? "未通关" : teacherdata.work_status === 2 ? "按时通关" : "迟交通关",
// updatetime:this.state.teacherdata.student_works[i].update_time,
// updatetime:"",
@@ -2091,6 +2076,7 @@ class Listofworksstudentone extends Component {
user_name: teacherdata.user_name,
user_login: teacherdata.user_login,
Curcomlevel: teacherdata.current_complete_count===undefined||teacherdata.current_complete_count===null||teacherdata.current_complete_count===""?0:teacherdata.current_complete_count,
+
})
// }
@@ -2119,6 +2105,7 @@ class Listofworksstudentone extends Component {
stduynumber: student_works[i].student_id,
classroom: student_works[i].group_name,
cost_time: student_works[i].cost_time,
+ has_comment:student_works[i].has_comment,
submitstate: student_works[i].work_status === 0 ? "未开启" : student_works[i].work_status === 1 ? "未通关" : student_works[i].work_status === 2 ? "按时通关" : "迟交通关",
// updatetime:this.state.teacherdata.student_works[i].update_time,
// updatetime:"",
@@ -2280,6 +2267,7 @@ class Listofworksstudentone extends Component {
stduynumber: teacherdata.student_id,
classroom: teacherdata.group_name,
cost_time: teacherdata.cost_time,
+ has_comment:teacherdata.has_comment,
submitstate: teacherdata.work_status === 0 ? "未开启" : teacherdata.work_status === 1 ? "未通关" : teacherdata.work_status === 2 ? "按时通关" : "迟交通关",
// updatetime:this.state.teacherdata.student_works[i].update_time,
// updatetime:"",
@@ -2642,6 +2630,7 @@ class Listofworksstudentone extends Component {
stduynumber: student_works[i].student_id,
classroom: student_works[i].group_name,
cost_time: student_works[i].cost_time,
+ has_comment:student_works[i].has_comment,
submitstate: student_works[i].work_status === 0 ? "未开启" : student_works[i].work_status === 1 ? "未通关" : student_works[i].work_status === 2 ? "按时通关" : "迟交通关",
// updatetime:this.state.teacherdata.student_works[i].update_time,
// updatetime:"",
@@ -2662,11 +2651,7 @@ class Listofworksstudentone extends Component {
}
- // var teacherlist = { //分页
- // total: student_works.length, //数据总数量
- // pageSize: 20, //一页显示几条
- // current: page,
- // }
+
if (work_efficiency === false) {
if (JSON.stringify(course_group_info) === "[]" || course_group_info === undefined || course_group_info === null) {
@@ -2883,11 +2868,15 @@ class Listofworksstudentone extends Component {
}
} else {
+
}
//
// console.log(datalist);
// console.log("1712");
+ // console.log("开始赋值了");
+ // console.log(datalistjs);
+
this.setState({
datajs: datalistjs,
columns: columns2js,
@@ -3389,27 +3378,7 @@ class Listofworksstudentone extends Component {
});
};
- //
- // setComputeTime=()=>{
- // this.setState({
- // computeTimetype:false
- // })
- // let homeworkid = this.props.match.params.homeworkid;
- // let url = "/homework_commons/"+homeworkid+"/update_score.json";
- //
- // axios.get(url).then((response) => {
- // if(response){
- // this.props.showNotification(response.data.message);
- // this.setState({
- // loadingstate: true
- // })
- // this.Startsortingt(this.state.order, this.state.course_groupyslstwo, this.state.checkedValuesineinfo, this.state.searchtext, 1, this.state.limit);
- // }
- // }).catch((error) => {
- // console.log(error)
- // });
- //
- // }
+
daochushixunbaogao = () => {
let url = `/zip/shixun_report?homework_common_id=${this.props.match.params.homeworkid}&work_status=${this.state.course_groupyslstwo === undefined || this.state.course_groupyslstwo === null ? "" : this.state.course_groupyslstwo}&course_group=${this.state.checkedValuesineinfo === undefined || this.state.checkedValuesineinfo === null ? "" : this.state.checkedValuesineinfo}&search=${this.state.searchtext === undefined || this.state.searchtext === null ? "" : this.state.searchtext}`
diff --git a/public/react/src/modules/courses/shixunHomework/ShixunHomeworkPage.js b/public/react/src/modules/courses/shixunHomework/ShixunHomeworkPage.js
index d4ccb2af9..92247c676 100644
--- a/public/react/src/modules/courses/shixunHomework/ShixunHomeworkPage.js
+++ b/public/react/src/modules/courses/shixunHomework/ShixunHomeworkPage.js
@@ -6,18 +6,20 @@ import {
notification,
Spin
} from "antd";
-import '../css/members.css';
-import "../common/formCommon.css";
-import '../css/Courses.css';
-import './style.css';
-import '../css/busyWork.css';
-import '../poll/pollStyle.css';
+import ApprausePublic from "../coursesPublic/ApprausePublic";
import Listofworksstudentone from './Listofworksstudentone';
import Trainingjobsetting from './Trainingjobsetting';
import Workquestionandanswer from './Workquestionandanswer';
import CoursesListType from '../coursesPublic/CoursesListType';
import ShixunStudentWork from "./ShixunStudentWork";
import Startshixuntask from "../coursesPublic/Startshixuntask";
+import '../css/members.css';
+import "../common/formCommon.css";
+import '../css/Courses.css';
+import './style.css';
+import '../css/busyWork.css';
+import '../poll/pollStyle.css';
+
import TPMMDEditor from "../../tpm/challengesnew/TPMMDEditor";
import DownloadMessageysl from "../../modals/DownloadMessageysl";
@@ -41,6 +43,7 @@ class ShixunHomeworkPage extends Component {
ModalsType:false,
mylistisSpin:false,
Showupdateinstructions:false,
+ AppraiseModaltype:false
}
}
@@ -189,8 +192,41 @@ class ShixunHomeworkPage extends Component {
this.props.history.replace(`/courses/${this.props.match.params.coursesId}/${jobsettingsdatapage === undefined ? "" : jobsettingsdatapage.data.category.main === 1 ? "shixun_homeworks" :"shixun_homework"}/${jobsettingsdatapage === undefined ? "" : jobsettingsdatapage.data.category.category_id === undefined ? "" : jobsettingsdatapage.data.category.category_id}`);
}
+
+ Akeyreviewit=()=>{
+ this.setState({
+ AppraiseModaltype:true
+ })
+ }
+
+ hideAppraiseModaltype=()=>{
+ this.setState({
+ AppraiseModaltype:false
+ })
+ }
+
+ SaveAppraiseModal=(comment,hidden_comment)=>{
+ let url = `/homework_commons/${this.props.match.params.homeworkid}/batch_comment.json`
+ axios.post(url,{
+ comment: comment,
+ hidden_comment: hidden_comment,
+ }
+ )
+ .then((response) => {
+ if (response.data.status == 0) {
+ this.props.showNotification('一键评阅成功')
+ this.hideAppraiseModaltype()
+ this.child.AkeyreviewitGetalistofworkstwo()
+ } else {
+
+ }
+ })
+ .catch( (error) =>{
+
+ });
+ }
render() {
- let {tab, teacherdatapage, jobsettingsdatapage} = this.state;
+ let {tab, teacherdatapage, jobsettingsdatapage,AppraiseModaltype} = this.state;
const isAdmin = this.props.isAdmin();
// console.log(119)
@@ -207,6 +243,17 @@ class ShixunHomeworkPage extends Component {
loadtype={false}
>
+
+ {AppraiseModaltype===true?
this.hideAppraiseModaltype()}
+ SaveAppraiseModal={(comment,hidden_comment)=>this.SaveAppraiseModal(comment,hidden_comment)}
+ />:""}
+
+
{
@@ -313,10 +360,17 @@ class ShixunHomeworkPage extends Component {
this.homeworkstarts(this.child)}>立即发布
: ""
: ""}
+
{this.props.isAdmin() ?
teacherdatapage && teacherdatapage.code_review === true ?
this.workshowmodels(this.child)}>代码查重
: "" : ""}
+
+ {parseInt(tab) === 0 ?this.props.isAdmin() ?
+ jobsettingsdatapage === undefined ? [""] : jobsettingsdatapage.data.homework_status[0] === "未发布" ? "" :
+ this.Akeyreviewit()}>一键评阅
+ : "":""}
+
{
parseInt(tab)===1?
this.props.isAdmin() ?
diff --git a/public/react/src/modules/courses/shixunHomework/ShixunStudentWork.js b/public/react/src/modules/courses/shixunHomework/ShixunStudentWork.js
index 7fe9f868e..772d88e19 100644
--- a/public/react/src/modules/courses/shixunHomework/ShixunStudentWork.js
+++ b/public/react/src/modules/courses/shixunHomework/ShixunStudentWork.js
@@ -1,6 +1,6 @@
import React, {Component} from "react";
import CoursesListType from '../coursesPublic/CoursesListType';
-import {WordsBtn, ActionBtn, sortDirections} from 'educoder';
+import {WordsBtn, getRandomcode, sortDirections} from 'educoder';
import ShixunWorkModal from './Shixunworkdetails/ShixunWorkModal';
import HomeworkModal from "../coursesPublic/HomeworkModal";
import OneSelfOrderModal from "../coursesPublic/OneSelfOrderModal";
@@ -622,7 +622,7 @@ class ShixunStudentWork extends Component {
}
}else {
this.props.showNotification(`正在下载中`);
- window.open("/api"+url, '_blank');
+ window.open(getRandomcode("/api"+url), '_blank');
}
}).catch((error) => {
console.log(error)
diff --git a/public/react/src/modules/courses/shixunHomework/ShixunWorkReport.js b/public/react/src/modules/courses/shixunHomework/ShixunWorkReport.js
index 10b12eb0a..90e6e6a4f 100644
--- a/public/react/src/modules/courses/shixunHomework/ShixunWorkReport.js
+++ b/public/react/src/modules/courses/shixunHomework/ShixunWorkReport.js
@@ -1,5 +1,5 @@
import React, {Component} from "react";
-import {WordsBtn,markdownToHTML,ActionBtn,queryString,downloadFile,getImageUrl} from 'educoder';
+import {WordsBtn,markdownToHTML,getRandomcode,queryString,downloadFile,getImageUrl} from 'educoder';
import { Form, Select, Input, Button,Checkbox,Upload,Icon,message,Modal, Table, Divider,InputNumber, Tag,DatePicker,Radio,Tooltip,Spin} from "antd";
import {Link,Switch,Route,Redirect} from 'react-router-dom';
import axios from 'axios';
@@ -76,7 +76,7 @@ class ShixunWorkReport extends Component {
// this.props.slowDownload(url)
//
// this.props.showNotification(`正在下载中`);
- window.open("/api"+url+"?disposition=inline", '_blank');
+ window.open(getRandomcode("/api"+url+"?disposition=inline"), '_blank');
this.setState({ isspinning: false })
}
}).catch((error) => {
diff --git a/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js b/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js
index 03ae5ec33..d15e8eaab 100644
--- a/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js
+++ b/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js
@@ -1,7 +1,7 @@
import React, {Component} from "react";
import CoursesListType from '../coursesPublic/CoursesListType';
import HomeworkModal from "../coursesPublic/HomeworkModal";
-import {WordsBtn, ActionBtn, handleDateString, getImageUrl} from 'educoder';
+import {WordsBtn, getRandomcode, handleDateString, getImageUrl} from 'educoder';
import PollDetailTabForthRules from '../poll/PollDetailTabForthRules';
import ShixunWorkModal from './Shixunworkdetails/ShixunWorkModal';
import {
@@ -2263,7 +2263,7 @@ class Trainingjobsetting extends Component {
}
} else {
this.props.showNotification(`正在下载中`);
- window.open("/api" + url, '_blank');
+ window.open(getRandomcode("/api" + url), '_blank');
}
}).catch((error) => {
console.log(error)
diff --git a/public/react/src/modules/courses/shixunHomework/Workquestionandanswer.js b/public/react/src/modules/courses/shixunHomework/Workquestionandanswer.js
index 1dccb298b..4e3e692e1 100644
--- a/public/react/src/modules/courses/shixunHomework/Workquestionandanswer.js
+++ b/public/react/src/modules/courses/shixunHomework/Workquestionandanswer.js
@@ -1,6 +1,6 @@
import React, {Component} from "react";
import CoursesListType from '../coursesPublic/CoursesListType';
-import {WordsBtn, ActionBtn, markdownToHTML} from 'educoder';
+import {WordsBtn, getRandomcode, markdownToHTML} from 'educoder';
import {
Form,
Select,
@@ -413,7 +413,7 @@ class Workquestionandanswer extends Component {
}
}else {
this.props.showNotification(`正在下载中`);
- window.open("/api"+url, '_blank');
+ window.open(getRandomcode("/api"+url), '_blank');
}
}).catch((error) => {
console.log(error)
diff --git a/public/react/src/modules/ecs/EcSetting/CourseSupports/index.js b/public/react/src/modules/ecs/EcSetting/CourseSupports/index.js
index 6aee871be..4dbc63c95 100644
--- a/public/react/src/modules/ecs/EcSetting/CourseSupports/index.js
+++ b/public/react/src/modules/ecs/EcSetting/CourseSupports/index.js
@@ -1,7 +1,7 @@
import React, { Component } from 'react';
import { BrowserRouter as Router, Route, Link, Switch } from "react-router-dom";
-
+import {getRandomcode} from 'educoder';
import axios from 'axios';
import { Select,message,Modal,Input,Spin,Icon,Tooltip } from 'antd';
@@ -550,7 +550,7 @@ class CourseSupports extends Component {
}
}else {
this.props.showNotification(`正在下载中`);
- window.open("/api"+url, '_blank');
+ window.open(getRandomcode("/api"+url), '_blank');
}
}).catch((error) => {
console.log(error)
diff --git a/public/react/src/modules/modals/DownloadMessage.js b/public/react/src/modules/modals/DownloadMessage.js
index 4655d7478..f01fe14c1 100644
--- a/public/react/src/modules/modals/DownloadMessage.js
+++ b/public/react/src/modules/modals/DownloadMessage.js
@@ -1,5 +1,5 @@
import React, { Component } from 'react';
-import {getImageUrl} from 'educoder';
+import {getRandomcode} from 'educoder';
import { Modal} from 'antd';
import axios from 'axios';
@@ -57,7 +57,7 @@ class DownloadMessage extends Component {
}
}else {
this.props.showNotification(`正在下载中`);
- window.open("/api"+url, '_blank');
+ window.open(getRandomcode("/api"+url), '_blank');
}
}).catch((error) => {
console.log(error)
diff --git a/public/react/src/modules/page/MainContent.js b/public/react/src/modules/page/MainContent.js
index a1b7566d0..175ea7bc0 100644
--- a/public/react/src/modules/page/MainContent.js
+++ b/public/react/src/modules/page/MainContent.js
@@ -41,6 +41,7 @@ class MainContent extends Component {
hideCodeEvaluate = () => {
const vncContainer = this.refs['vncContainer']
if (vncContainer) {
+ // console.log('点击的关闭按钮')
vncContainer.onBottomDrawerClose && vncContainer.onBottomDrawerClose()
}
}
@@ -124,7 +125,7 @@ class MainContent extends Component {
}
>
-
+
@@ -179,7 +180,9 @@ class MainContent extends Component {
-
+
diff --git a/public/react/src/modules/page/VNC.css b/public/react/src/modules/page/VNC.css
index 1180baf76..58a45d735 100644
--- a/public/react/src/modules/page/VNC.css
+++ b/public/react/src/modules/page/VNC.css
@@ -39,6 +39,47 @@
user-select: none;
}
+.btn_test_case,
+.btn_test_case_active{
+ display: inline-block;
+ position: absolute;
+ width: 56px;
+ height: 28px;
+ bottom: 23px;
+ line-height: 28px;
+ background: rgba(42,58,79,1);
+ z-index: 10;
+ left: 50%;
+ margin-left: -28px;
+ border-bottom-left-radius: 100px;
+ border-bottom-right-radius: 100px;
+ color: #fff;
+ text-align: center;
+ cursor: pointer;
+ opacity: .4;
+ transition: all .3s;
+}
+
+.btn_test_case:hover,
+.btn_test_case_active:hover{
+ opacity: 1;
+}
+.btn_test_case .btn-arrow{
+ position: relative;
+ font-size: 12px;
+ line-height: 28px;
+ bottom: 2px;
+}
+
+.btn_test_case_active{
+ bottom: 203px;
+ z-index: 10000;
+
+}
+.btn_test_case_active .btn-arrow{
+ bottom: 4px;
+}
+
@keyframes mymove
{
from {right:0px;}
diff --git a/public/react/src/modules/page/VNCContainer.js b/public/react/src/modules/page/VNCContainer.js
index aa4d82e78..30e439e8d 100644
--- a/public/react/src/modules/page/VNCContainer.js
+++ b/public/react/src/modules/page/VNCContainer.js
@@ -204,6 +204,10 @@ class VNCContainer extends Component {
render() {
const { challenge, vnc_url, git_url } = this.props
+ const _classCtx = this.state.bottomDrawer ? 'btn_test_case_active' : 'btn_test_case';
+ const _classes = this.state.bottomDrawer
+ ? `iconfont icon-xiajiantou btn-arrow`
+ : 'iconfont icon-shangjiantou btn-arrow';
const secondDrawerChildren = this.renderSecondDrawerChildren();
return (
@@ -352,9 +356,16 @@ class VNCContainer extends Component {
>
{ this.props.codeEvaluate }
- 测试集
+ >测试集 */}
+
+ {/* */}
+
+
diff --git a/public/react/src/modules/page/VNCDisplay.js b/public/react/src/modules/page/VNCDisplay.js
index 536ba43cb..98c4cb5e7 100644
--- a/public/react/src/modules/page/VNCDisplay.js
+++ b/public/react/src/modules/page/VNCDisplay.js
@@ -135,11 +135,13 @@ class VNCDisplay extends Component {