You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
303 lines
11 KiB
303 lines
11 KiB
import React, {Component} from "react";
|
|
import {Link, NavLink} from 'react-router-dom';
|
|
import {WordsBtn, ActionBtn} from 'educoder';
|
|
import axios from 'axios';
|
|
import {
|
|
notification
|
|
} 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 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 TPMMDEditor from "../../tpm/challengesnew/TPMMDEditor";
|
|
import DownloadMessageysl from "../../modals/DownloadMessageysl";
|
|
class ShixunHomeworkPage extends Component {
|
|
constructor(props) {
|
|
super(props);
|
|
// this.answerMdRef = React.createRef();
|
|
this.state = {
|
|
tab: ["0"],
|
|
jobsettingsdatapage: undefined,
|
|
teacherdatapage: undefined,
|
|
code_review: false,
|
|
view_report: false,
|
|
visible: false,
|
|
showmodel:false,
|
|
child:undefined,
|
|
yslpros:false,
|
|
}
|
|
|
|
}
|
|
|
|
//切换tab
|
|
ChangeTab = (e) => {
|
|
// console.log(e);
|
|
this.setState({
|
|
tab: e
|
|
})
|
|
try {
|
|
var currenturl = window.location.href;
|
|
var newUrl = (currenturl.split("?"))[0];
|
|
window.history.pushState('','',newUrl+'?tab='+e);
|
|
}catch (e) {
|
|
console.log(e);
|
|
console.log("44");
|
|
}
|
|
|
|
}
|
|
Getdataback = (jobsettingsdata, teacherdata) => {
|
|
// console.log("56");
|
|
// console.log(jobsettingsdata);
|
|
// console.log(teacherdata);
|
|
|
|
this.setState({
|
|
jobsettingsdatapage: jobsettingsdata.data.message===undefined?jobsettingsdata:undefined,
|
|
teacherdatapage: teacherdata.message===undefined?teacherdata:undefined,
|
|
code_review: teacherdata.code_review===undefined?false :teacherdata.code_review,
|
|
view_report: teacherdata.view_report!==undefined? false:teacherdata.view_report,
|
|
})
|
|
}
|
|
|
|
componentDidMount() {
|
|
// console.log("父组件加载框");
|
|
const query = this.props.location.search;
|
|
const type = query.split('?tab=');
|
|
// let sum = []
|
|
// sum.push(type[1])
|
|
// console.log("componentDidMountcomponentDidMount");
|
|
// console.log(type);
|
|
this.setState({
|
|
tab: type[1],
|
|
})
|
|
let querys = this.props.location.pathname;
|
|
const types = querys.split('/');
|
|
// console.log(types);
|
|
this.setState({
|
|
shixuntypes: types[3]
|
|
})
|
|
}
|
|
|
|
|
|
confirmysl(child,i) {
|
|
if(i===1){
|
|
child.daochushixunbaogao();
|
|
}
|
|
if(i===2){
|
|
child.daochuzuoye();
|
|
}
|
|
}
|
|
|
|
homeworkendss(child){
|
|
child.homeworkends();
|
|
}
|
|
|
|
homeworkstarts(child){
|
|
child.homeworkstart();
|
|
|
|
}
|
|
workshowmodels(child){
|
|
child.workshowmodel();
|
|
}
|
|
/// 确认是否下载
|
|
|
|
|
|
bindRef = ref => { this.child = ref }
|
|
///////////////教师截止
|
|
gotohome=()=>{
|
|
let courseId=this.props.match.params.coursesId;
|
|
if(courseId===undefined){
|
|
this.props.history.push("/courses");
|
|
}else{
|
|
this.props.history.push(this.props.current_user.first_category_url);
|
|
}
|
|
}
|
|
render() {
|
|
let {tab, teacherdatapage, jobsettingsdatapage} = this.state;
|
|
|
|
const isAdmin = this.props.isAdmin();
|
|
// console.log(119)
|
|
// console.log(jobsettingsdatapage);
|
|
// console.log(teacherdatapage);
|
|
return (
|
|
<div className="newMain clearfix ">
|
|
<div className={"educontent mb20"} style={{width: "1200px"}}>
|
|
|
|
<div className="educontent mb20">
|
|
<p className="clearfix mb20 mt10">
|
|
<a className="btn colorgrey fl hovercolorblue " onClick={()=>this.gotohome()}>{jobsettingsdatapage === undefined ? "" : jobsettingsdatapage.data.course_name}</a>
|
|
<span className="color-grey-9 fl ml3 mr3">></span>
|
|
<a
|
|
className=" btn colorgrey fl hovercolorblue "
|
|
href={`/courses/${this.props.match.params.coursesId}/${this.state.shixuntypes}/${jobsettingsdatapage === undefined ? "" : jobsettingsdatapage.data.category.category_id === undefined ? "" : jobsettingsdatapage.data.category.category_id}`}>{jobsettingsdatapage === undefined ? "" : jobsettingsdatapage.data.category.category_name}</a>
|
|
<span className="color-grey-9 fl ml3 mr3">></span>
|
|
<WordsBtn className="fl">作业详情</WordsBtn>
|
|
</p>
|
|
</div>
|
|
<div className="educontent mb20">
|
|
<p className=" fl color-black summaryname" style={{heigth: "33px"}}>
|
|
{teacherdatapage === undefined ? "" : teacherdatapage.homework_name}
|
|
</p>
|
|
<CoursesListType
|
|
typelist={teacherdatapage === undefined ? [""] : teacherdatapage.homework_status}
|
|
/>
|
|
<a className="color-grey-9 fr font-16 summaryname ml20 mr20" onClick={()=>this.gotohome()}>返回</a>
|
|
<a className="color-grey-9 fr font-16 mr20"
|
|
href={`/shixuns/${teacherdatapage === undefined ? "" : teacherdatapage.shixun_identifier}/challenges`}
|
|
target={"_blank"}>实训详情</a>
|
|
|
|
|
|
</div>
|
|
|
|
<div className="edu-back-white ">
|
|
<div className="stud-class-set bor-bottom-greyE ">
|
|
<div className=" clearfix edu-back-white poll_list">
|
|
<a className={parseInt(tab) === 0 ? "active" : ""} onClick={(e) => this.ChangeTab(0)}>作品列表</a>
|
|
<a className={parseInt(tab) === 1 ? "active" : ""} onClick={(e) => this.ChangeTab(1)}>作业问答</a>
|
|
{this.props.isAdmin() ?
|
|
this.state.code_review === true || jobsettingsdatapage === undefined ? [""] : jobsettingsdatapage.data.homework_status[0] === "未发布" ? "" :
|
|
<a
|
|
className={parseInt(tab) === 2 ? "active" : ""}
|
|
onClick={(e) => this.ChangeTab(2)}>
|
|
代码查重</a> : ""}
|
|
{parseInt(tab) === 3?
|
|
<style>{
|
|
`
|
|
.poll_list a.active:after {
|
|
content: '';
|
|
width: 57px;
|
|
left: 10px;
|
|
bottom: 0px;
|
|
height: 2px;
|
|
background-color: #4CACFF;
|
|
position: absolute;
|
|
}
|
|
`
|
|
}</style>
|
|
:""}
|
|
<a className={parseInt(tab) === 3 ? "active" : ""}
|
|
onClick={(e) => this.ChangeTab(3)}
|
|
>设置</a>
|
|
{/*{this.props.isAdmin() ? <a*/}
|
|
{/* className="fr color-blue font-16"*/}
|
|
{/* href={`/api/homework_commons/${this.props.match.params.coursesId}/works_list.xlsx`}*/}
|
|
{/*>导出</a> : ""}*/}
|
|
<style>{`
|
|
.drop_down_menu li a {
|
|
padding: 0px;
|
|
font-size: 14px;
|
|
}
|
|
.drop_down_menu {
|
|
width: 93px;
|
|
}
|
|
.drop_down_menu li {
|
|
overflow: visible;
|
|
width: 93px;
|
|
}
|
|
.drop_down_menu, .drop_down_normal {
|
|
padding-top: 10px;
|
|
padding-bottom: 8px;
|
|
}
|
|
|
|
`}</style>
|
|
{this.props.isAdmin() ?
|
|
<li className="li_line drop_down fr color-blue font-16 mr8 mt20" style={{"padding": "0 20px"}}>
|
|
导出<i className="iconfont icon-xiajiantou font-12 ml2"></i>
|
|
<ul className="drop_down_menu" style={{"right": "-0px", "left": "unset", "height": "auto"}}>
|
|
{/*<li><a*/}
|
|
{/* onClick={(child,i) => this.confirmysl(this.child,1)}>实训报告</a>*/}
|
|
{/*</li>*/}
|
|
<li><a
|
|
onClick={(child,i) => this.confirmysl(this.child,2)}>学生成绩</a>
|
|
</li>
|
|
|
|
</ul>
|
|
</li> : ""}
|
|
{this.props.isAdmin() ?
|
|
teacherdatapage && teacherdatapage.end_immediately === true ?
|
|
<a className="fr color-blue font-16" onClick={(child)=>this.homeworkendss(this.child)}>立即截止</a>
|
|
: ""
|
|
: ""}
|
|
{this.props.isAdmin() ?
|
|
teacherdatapage && teacherdatapage.publish_immediately === true ?
|
|
<a className="fr color-blue font-16" onClick={(child)=>this.homeworkstarts(this.child)}>立即发布</a>
|
|
: ""
|
|
: ""}
|
|
{this.props.isAdmin() ?
|
|
teacherdatapage && teacherdatapage.code_review === true ?
|
|
<a className="fr color-blue font-16" onClick={(child)=>this.workshowmodels(this.child)}>代码查重</a>
|
|
: "" : ""}
|
|
{this.state.view_report === true ? <Link className="fr color-blue font-16" target={"_blank"}
|
|
to={`/courses/${this.props.match.params.coursesId}/${this.state.shixuntypes}/${teacherdatapage&&teacherdatapage.work_id}/shixun_work_report`}>
|
|
查看实训报告
|
|
</Link> : ""}
|
|
{
|
|
teacherdatapage === undefined ? ""
|
|
: teacherdatapage.commit_des === null || teacherdatapage.commit_des === undefined ? "" :
|
|
<a className="fr color-blue font-16"
|
|
href={`/courses/${this.props.match.params.coursesId}/${this.state.shixuntypes}/${teacherdatapage === undefined ? "" : teacherdatapage.id}/commitsummary/${this.props.match.params.homeworkid}`}>{teacherdatapage.commit_des}</a>
|
|
}
|
|
{teacherdatapage === undefined ? "" : <Startshixuntask
|
|
{...this.props}
|
|
data={teacherdatapage}
|
|
/>}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
{/*<DownloadMessageysl*/}
|
|
{/*{...this.props}*/}
|
|
{/*value={this.state.DownloadMessageval}*/}
|
|
{/*modalCancel={this.Downloadcal}*/}
|
|
{/*modalsType={this.state.DownloadType}*/}
|
|
|
|
{/*/>*/}
|
|
|
|
{parseInt(tab) === 0 ?<Listofworksstudentone triggerRef={this.bindRef} {...this.props} {...this.state} Getdataback={(jobsettingsdata, teacherdata) => this.Getdataback(jobsettingsdata, teacherdata)}></Listofworksstudentone>:""}
|
|
{parseInt(tab) === 1 ?<Workquestionandanswer triggerRef={this.bindRef} {...this.props} {...this.state} Getdataback={(jobsettingsdata, teacherdata) => this.Getdataback(jobsettingsdata, teacherdata)}></Workquestionandanswer>:""}
|
|
{parseInt(tab) === 2 ?<ShixunStudentWork triggerRef={this.bindRef} {...this.props} {...this.state} Getdataback={(jobsettingsdata, teacherdata) => this.Getdataback(jobsettingsdata, teacherdata)}></ShixunStudentWork>:""}
|
|
{parseInt(tab) === 3 ?<Trainingjobsetting triggerRef={this.bindRef} {...this.props} {...this.state} Getdataback={(jobsettingsdata, teacherdata) => this.Getdataback(jobsettingsdata, teacherdata)}></Trainingjobsetting>:""}
|
|
|
|
</div>
|
|
</div>
|
|
)
|
|
}
|
|
}
|
|
|
|
export default ShixunHomeworkPage;
|
|
|
|
// <div className="edu-back-white mt10" >
|
|
// <div className="stud-class-set bor-bottom-greyE ">
|
|
// <div className=" clearfix edu-back-white pl30 pr30">
|
|
// <div className="fl task_menu_ul">
|
|
// {this.props.isAdmin() === true ?
|
|
//
|
|
// <Menu mode="horizontal" selectedKeys={tab} onClick={(e)=>this.changeTab(e)}>
|
|
// <Menu.Item key="0">作品列表</Menu.Item>
|
|
// <Menu.Item key="1">作业回答</Menu.Item>
|
|
// <Menu.Item key="2">代码查重</Menu.Item>
|
|
// <Menu.Item key="3">设置</Menu.Item>
|
|
// </Menu>
|
|
// :
|
|
// <Menu mode="horizontal" selectedKeys={tab} onClick={(e)=>this.changeTab(e)}>
|
|
// <Menu.Item key="0">作品列表</Menu.Item>
|
|
// <Menu.Item key="1">作业回答</Menu.Item>
|
|
// <Menu.Item key="2">代码查重</Menu.Item>
|
|
// </Menu>
|
|
// }
|
|
//
|
|
// </div>
|
|
// </div>
|
|
{/* </div>*/
|
|
}
|
|
|
|
|
|
{/*</div>*/
|
|
} |