import React, {Component} from "react"; import CoursesListType from '../coursesPublic/CoursesListType'; import {WordsBtn,ActionBtn} from 'educoder'; import ShixunWorkModal from './Shixunworkdetails/ShixunWorkModal'; import HomeworkModal from "../coursesPublic/HomeworkModal"; import DownloadMessageysl from '../../modals/DownloadMessageysl'; import NoneData from '../coursesPublic/NoneData'; import { Form, Select, Input, Button, Checkbox, Upload, Icon, message, Modal, Table, Divider, InputNumber, Tag, DatePicker, Radio, Tooltip, notification, Pagination, Spin, } from "antd"; import {Link, Switch, Route, Redirect} from 'react-router-dom'; import axios from 'axios'; import '../css/members.css' import "../common/formCommon.css" import '../css/Courses.css' import './style.css' import moment from 'moment'; import 'moment/locale/zh-cn'; import Startshixuntask from "../coursesPublic/Startshixuntask"; const Search = Input.Search; const CheckboxGroup = Checkbox.Group; const qs = require('qs'); //课堂作业设置 //作品列表(教师) class ShixunStudentWork extends Component { constructor(props) { super(props); this.state = { props: props, data: undefined, page: 1, limit:10, loadingstate: true, order: "code_rate", b_order:"desc", task_status: [], course_group_info: [], teacherdata: undefined, checkedValuesine: undefined, checkedValuesineinfo: [], resultint: 0, search: undefined, visible: false, userid: 0, visibles: false, userids: 0, viewtrainingdata: {}, group_infolist: [], duplicatechecking: false, datalist:undefined, showmodel:false, jobsettingsdata:undefined, DownloadType:false, DownloadMessageval:undefined, lunxun:true, } } componentDidMount() { console.log("ShixunStudentWork"); console.log("componentDidMount"); this.getTrainingjobsettings(); this.props.triggerRef(this); } // 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"); // this.getTrainingjobsettings(); // } // } // // } getTrainingjobsettings=()=>{ this.getupdata(); this.getTrainingjobsetting(); } // 获取数据地方 getTrainingjobsetting = () => { var homeworkid = this.props.match.params.homeworkid; let url = `/homework_commons/${homeworkid}/settings.json`; axios.get(url).then((result) => { if(result !== undefined){ this.setState({ jobsettingsdata: result, }) this.props.Getdataback(result,result.data); } }) } getupdata=(pages)=>{ let {order,b_order,page,limit,group_infolist,search}=this.state; var homeworkid = this.props.match.params.homeworkid; let url = "/homework_commons/" + homeworkid + "/code_review_results.json"; axios.get(url,{params:{ order:order, sort:b_order, page:pages===undefined?page:pages, limit:limit, group_ids:group_infolist, search:search }, paramsSerializer: function(params) { return qs.stringify(params, {arrayFormat: 'brackets'}) }}).then((response) => { if (response.data.status === undefined || response.data.status === 0) { if(response.data!=undefined){ if(response.data.status!=-2){ let datas=[]; let list=response.data.users_reviews; for(var i=0; i { console.log("开始轮询了"); if(this.state.lunxun===true){ console.log("开始轮询了getupdata"); this.getupdatasysk(); } }, 5000); }).catch((error) => { console.log(error) }); let query = this.props.location.pathname; const type = query.split('/'); this.setState({ shixuntypes:type[3] }) }; getupdatasysk=(pages)=>{ let {order,b_order,page,limit,group_infolist,search}=this.state; var homeworkid = this.props.match.params.homeworkid; let url = "/homework_commons/" + homeworkid + "/code_review_results.json"; axios.get(url,{params:{ order:order, sort:b_order, page:pages===undefined?page:pages, limit:limit, group_ids:group_infolist, search:search }, paramsSerializer: function(params) { return qs.stringify(params, {arrayFormat: 'brackets'}) }}).then((response) => { if (response.data.status === undefined || response.data.status === 0) { if(response.data!=undefined){ if(response.data.status!=-2){ console.log(); let datas=[]; let list=response.data.users_reviews; for(var i=0; i { console.log(error) }); } getcode_review_results=(order,b_order,page,limit,group_infolist,search)=>{ var homeworkid = this.props.match.params.homeworkid; let url = "/homework_commons/" + homeworkid + "/code_review_results.json"; axios.get(url,{params:{ order:order, sort:b_order, page:page, limit:limit, group_ids:group_infolist, search:search }, paramsSerializer: function(params) { return qs.stringify(params, {arrayFormat: 'brackets'}) }}).then((response) => { if (response.data.status === undefined || response.data.status === 0) { if(response.data!=undefined){ if(response.data.status!=-2) { let datas = []; let list = response.data.users_reviews; for (var i = 0; i < list.length; i++) { datas.push({ number: i + 1, name: list[i].username, stduynumber: list[i].student_id, classroom: parseInt(list[i].code_rate), operating: list[i].user_id }) } this.setState({ data: response.data, datalist: datas }) } } } if (response.data.status === -2) { this.setState({ duplicatechecking: true }) notification.open({ message:"提示", description: response.data.message }); } if (response.data.status === -1) { notification.open({ message:"提示", description: response.data.message, }); } }).catch((error) => { console.log(error) }); } TablePagination = (pages) => { this.setState({ page:pages }) this.getupdata(pages) } inputSearchValue=(e)=>{ if(e.target.value===""){ this.setState({ search:undefined }) }else{ this.setState({ search:e.target.value }) } } searchValue=()=>{ let {order,b_order,page,limit,group_infolist,search} = this.state; this.getcode_review_results(order,b_order,page,limit,group_infolist,search) } funorder=(value)=>{ let {order,b_order,page,limit,group_infolist,search} = this.state; let newb_order; if(order===value){ if(b_order==="desc"){ this.setState({ order:value, b_order:"asc" }) newb_order="asc"; }else{ this.setState({ order:value, b_order:"desc" }) newb_order="desc"; } }else{ if(b_order==="desc"){ this.setState({ order:value, b_order:"desc" }) newb_order="desc"; }else{ this.setState({ order:value, b_order:"asc" }) newb_order="asc"; } } this.setState({ loadingstate:true, }) this.getcode_review_results(value,newb_order,page,limit,group_infolist,search) } groupgroup=(checkedValues)=>{ let {order,b_order,page,limit,search} = this.state; this.setState({ group_infolist:checkedValues }) this.getcode_review_results(order,b_order,page,limit,checkedValues,search) } Viewstudenttraininginformation =(list)=>{ window.location.href =list } workshowmodel=()=>{ this.setState({ showmodel:true }) } hideshowmodel=()=>{ this.setState({ showmodel:false }) } //立即发布 homeworkstart=()=>{ let homeworkid=this.props.match.params.homeworkid; let url="/homework_commons/"+homeworkid+"/publish_groups.json"; axios.get(url).then((response) => { if(response.status===200){ let starttime= this.props.getNowFormatDates(1); let endtime=this.props.getNowFormatDates(2); this.setState({ modalname:"立即发布", modaltype:response.data.course_groups===null||response.data.course_groups.length===0?2:1, visible:true, Topval:"学生将立即收到作业", // Botvalleft:"暂不发布", Botval:`本操作只对"未发布"的分班有效`, starttime:"发布时间:"+moment(moment(new Date())).format("YYYY-MM-DD HH:mm"), endtime:"截止时间:"+endtime, Cancelname:"暂不发布", Savesname:"立即发布", Cancel:this.homeworkhide, Saves:this.homeworkstartend, course_groups:response.data.course_groups, starttimes:starttime, typs:"start", }) } }).catch((error) => { console.log(error) }); } //立即截止 homeworkends=()=>{ let homeworkid=this.props.match.params.homeworkid; let url="/homework_commons/"+homeworkid+"/end_groups.json"; axios.get(url).then((response) => { if(response.status===200){ this.setState({ }) this.setState({ modalname:"立即截止", modaltype:response.data.course_groups===null||response.data.course_groups.length===0?2:1, visible:true, Topval:"学生将不能再提交作业", // Botvalleft:"暂不截止", Botval:`本操作只对"提交中"的分班有效`, Cancelname:"暂不截止", Savesname:"立即截止", Cancel:this.homeworkhide, Saves:this.coursetaskend, starttime:undefined, endtime:undefined, typs:"end", course_groups:response.data.course_groups, }) } }).catch((error) => { console.log(error) }); } // 立即发布 homeworkstartend=(ds,endtime)=>{ var homeworkid = this.props.match.params.homeworkid; let {course_groupslist} = this.state; let coursesId=this.props.match.params.coursesId; let url ="/courses/"+coursesId+"/homework_commons/publish_homework.json"; axios.post(url,{ homework_ids:[homeworkid], group_ids:course_groupslist, end_time:endtime, }).then((result)=>{ if(result.status===200){ if(result.data.status===0){ notification.open({ message:"提示", description: result.data.message, }); this.homeworkhide() } } }).catch((error)=>{ console.log(error); }) } //立即截止确定按钮 coursetaskend=()=>{ var homeworkid = this.props.match.params.homeworkid; let {course_groupslist} = this.state; const cid = this.props.match.params.coursesId; let url="/courses/"+cid+"/homework_commons/end_homework.json"; axios.post(url, { group_ids:course_groupslist, homework_ids: [homeworkid], }) .then((response) => { if (response.data.status == 0) { notification.open({ message:"提示", description: response.data.message, }); this.homeworkhide() } }) .catch(function (error) { console.log(error); }); } getcourse_groupslist=(id)=>{ this.setState({ course_groupslist:id }) } homeworkhide=()=>{ this.getupdata() this.setState({ modalname:undefined, modaltype:undefined, visible:false, Topval:undefined, Topvalright:undefined, Botvalleft:undefined, Botval:undefined, starttime:undefined, endtime:undefined, Cancelname:undefined, Savesname:undefined, Cancel:undefined, Saves:undefined, StudentList_value:undefined, addname:undefined, addnametype:false, addnametab:undefined, typs:undefined, starttimes:undefined, }) } // 导出实习报告批量 /// 确认是否下载 // confirmysl(url){ // this.refs.DownloadMessage.confirmysl(url); // axios.get(url).then((response) => { // if(response.data.status&&response.data.status===-1){ // }else if(response.data.status&&response.data.status===-2){ // if(response.data.messages === "100"){ // // 已超出文件导出的上限数量(100 ),建议: // this.setState({ // DownloadType:true, // DownloadMessageval:100 // }) // }else { // //因附件资料超过500M // this.setState({ // DownloadType:true, // DownloadMessageval:500 // }) // } // }else { // this.props.showNotification(`正在下载中`); // window.open("/api"+url, '_blank'); // } // }).catch((error) => { // console.log(error) // }); // } ChangeTab=(e)=>{ this.props.ChangeTab(e); } daochushixunbaogao=()=>{ let url =`/zip/shixun_report?homework_common_id=${this.props.match.params.homeworkid}`; this.confirmysl(url); } daochuzuoye =() =>{ let url = `/homework_commons/${this.props.match.params.homeworkid}/works_list.xlsx`; this.confirmysl(url); } confirmysl(url){ axios.get(url + '?export=true').then((response) => { if(response === undefined){ return } if(response.data.status&&response.data.status===-1){ }else if(response.data.status&&response.data.status===-2){ if(response.data.message === "100"){ // 已超出文件导出的上限数量(100 ),建议: this.setState({ DownloadType:true, DownloadMessageval:100 }) }else { //因附件资料超过500M this.setState({ DownloadType:true, DownloadMessageval:500 }) } }else { this.props.showNotification(`正在下载中`); window.open("/api"+url, '_blank'); } }).catch((error) => { console.log(error) }); } Downloadcal=()=>{ this.setState({ DownloadType:false, DownloadMessageval:undefined }) } render() { let { data, search, order, duplicatechecking, datalist, page, jobsettingsdata, } = this.state; // // let {data}=this.props; let columns = [ { title: '序号', dataIndex: 'number', key: 'number', render: (text, record) => ( {record.number} ) }, { title: '姓名', dataIndex: 'name', key: 'name', render: (text, record) => ( {record.name} ) }, { title: '学号', dataIndex: 'stduynumber', key: 'stduynumber', render: (text, record) => ( {record.stduynumber} ), }, { title: '相似度', key: 'classroom', dataIndex: 'classroom', render: (text, record) => ( =90?'#FF6800':"#747A7F", "text-align": "center"}}>{isNaN(record.classroom)?"--":record.classroom}% ) }, { title: '操作', dataIndex: 'operating', key: 'operating', render: (text, record) => ( this.Viewstudenttraininginformation("/courses/"+this.props.match.params.coursesId+"/"+this.state.shixuntypes+"/"+this.props.match.params.homeworkid+"/review_detail/"+record.operating)} >查看 ) }, ]; if(this.props.isNotMember()===true){ columns.some((item,key)=> { if (item.title === "学号") { columns.splice(key, 1) return true } } ) } const antIcon = ; return (
{this.state.showmodel===true?this.hideshowmodel()} updatas={()=>this.getupdata()} />:""} {/**/} {/*立即发布*/} this.getcourse_groupslist(id)} starttimes={this.state.starttimes} typs={this.state.typs} />
  • 正在执行查重,完成后将为您自动刷新结果。 温馨提示:执行时间因查重作品数以及作品的代码量而异
  • {data&&data?
    {data&&data.copy_reviews_count} 个疑似抄袭作品({data&&data.all_reviews_count}作品)
    {datalist === undefined ? "" : datalist.length===0?

    暂时还没有相关数据哦!

    :} :""} { datalist === undefined ? "":datalist.length===0?"":datalist.length<11?
    : "" } ) } } export default ShixunStudentWork; //
    //
    // this.ChangeTab(0)}>作品列表 // this.ChangeTab(1)}>作业问答 // {this.props.isAdmin()?this.ChangeTab(2)}>代码查重:""} // this.ChangeTab(3)}>设置 // // {this.props.isAdmin() ?
  • // 导出 // //
  • : ""} // {this.props.isAdmin()? // data&&data.end_immediately===true? // 立即截止 // :"": ""} // {this.props.isAdmin()? // data&&data.publish_immediately===true? // 立即发布 : "": ""} // { // jobsettingsdata&& jobsettingsdata.data === undefined ? "" // : jobsettingsdata&& jobsettingsdata.data.commit_des === null || jobsettingsdata&& jobsettingsdata.data.commit_des === undefined ? "" : // { jobsettingsdata&& jobsettingsdata.data.commit_des} // } // { jobsettingsdata&&jobsettingsdata.data === undefined ? "" : } {/*
    */} {/*
    */}