import React, {Component} from "react"; import CoursesListType from '../coursesPublic/CoursesListType'; import {WordsBtn, ActionBtn, markdownToHTML} from 'educoder'; import GraduateTopicReply from '../graduation/topics/GraduateTopicReply' import MemoDetailMDEditortwo from '../../forums/MemoDetailMDEditortwo' import { Form, Select, Input, Button, Checkbox, Upload, Icon, message, Modal, Table, Divider, InputNumber, Tag, DatePicker, Radio, Tooltip, notification } from "antd"; import {Link, Switch, Route, Redirect} from 'react-router-dom'; import moment from 'moment'; import 'moment/locale/zh-cn'; import {Base64} from 'js-base64'; import axios from 'axios'; import '../css/members.css' import "../common/formCommon.css" import '../css/Courses.css' import './style.css' import 'antd/lib/pagination/style/index.css'; import './Challenges.css' import CommonReply from "../common/comments/CommonReply"; import Homeworddescription from "../shixunHomework/Homeworddescription"; import ShixunWorkModal from './Shixunworkdetails/ShixunWorkModal'; import HomeworkModal from "../coursesPublic/HomeworkModal"; // import Homeworddescription from "../shixunHomework/Homeworddescription"; const TextArea = Input.TextArea //GraduationTaskssetting.js //作业问答页面 class Workquestionandanswer extends Component { //unifiedsetting 统一设置 //allowreplenishment 允许补交 //completionefficiencyscore 完成效率评分占比 //level级别 //proportion 比例 constructor(props) { super(props); // this.props.form.setFieldsValue({ // radiogroup:1, // // }); this.state = { // namestring:"JFinal是基于Java语言的极速web开发框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、`Restful`。在拥有Java语言所有优势的同时再拥有`ruby`、`python`等动态语言的开发效率。\r\n\r\n在本实训中,我们将基于JFinal框架搭建一个在线商城。我们会学习到如何合理设计`Model`来进行数据表映射和数据操作、如何设计`Controller`对请求进行合理的处理…… 通过本实训,您不仅能收获到具体框架和技术的使用经验,也能对项目架构设计等知识有所了解或巩固。\r\n\r\n
\r\n\t\r\n
\r\n\r\n本实训聚焦一个在线商城项目的核心业务逻辑实现。你将在这一过程中收获Java Web项目设计的基本思想,也能得到编程能力的一次跃升。", props: props, starttimetype: false, endtimetype: false, latetimetype: false, allowlate: 1, latepenaltytype: false, unifiedsetting: false, allowreplenishment: undefined, completionefficiencyscore: false, proportion: undefined, level: undefined, ealuation: false, latededuction: undefined, latedeductiontwo: undefined, Showupdateinstructions: false, database: false, datasheet: false, databasetwo: undefined, datasheettwo: undefined, publicwork: undefined, memo: {id: "94", user_id: 1}, polls_descriptiontest: "作业说明...", jobdescriptiondisplay: "none", score_open: false, code_review: false } } componentDidMount() { var homeworkid = this.props.match.params.homeworkid; // console.log(homeworkid) this.Gettitleinformation(homeworkid) let query = this.props.location.pathname; const type = query.split('/'); this.setState({ shixuntypes: type[3] }) } isupdatas = () => { var homeworkid = this.props.match.params.homeworkid; this.Gettitleinformation(homeworkid) } //获取题目信息 Gettitleinformation = (homeworkid) => { // console.log("获取题目信息"); let url = `/homework_commons/${homeworkid}.json`; axios.get(url).then((result) => { if (result.status === 200) { // console.log(url) // console.log("设置页") // console.log(JSON.stringify(result)) this.setState({ jobsettingsdata: result, ...result.data }) } }).catch((error) => { console.log(error) }) } jobdescriptiondisplaybj = () => { this.setState({ Showupdateinstructions: true, }) } //统一设置 onChange = (e) => { this.setState({ unifiedsetting: e.target.checked, }) // console.log(e.target.checked); } //立即发布 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, course_groups: response.data.course_groups, typs: "end", }) } }).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); }); } ReleaseNotes = (explanations) => { var homeworkid = this.props.match.params.homeworkid; let url = `/homework_commons/${homeworkid}/update_explanation.json`; axios.post((url), { explanation: explanations }) .then((result) => { if (result) { this.props.showNotification(`${result.data.message}`); this.setState({ Showupdateinstructions: false }) var homeworkid = this.props.match.params.homeworkid; // console.log(homeworkid) this.Gettitleinformation(homeworkid) } }).catch((error) => { console.log(error); }) } NOReleaseNotes = () => { this.setState({ Showupdateinstructions: false, }) } workshowmodel = () => { this.setState({ showmodel: true }) } hideshowmodel = () => { this.setState({ showmodel: false }) } homeworkhide = () => { this.isupdatas() 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, }) } getcourse_groupslist = (id) => { this.setState({ course_groupslist: id }) } // 导出实习报告批量 internshipreport = (url) => { console.log("internshipreport"); // var homeworkid = this.props.match.params.homeworkid; // let url = "/zip/shixun_report"; axios.get(url).then((response) => { console.log("326"); console.log(response); if(response.data.status&&response.data.status===-1){ }else if(response.data.status&&response.data.status===-2){ }else{ const type='application/zip'//ZIP文件 const blob = new Blob([response.data], { type: type }) const downloadElement = document.createElement('a') const href = window.URL.createObjectURL(blob) //后台再header中传文件名 // console.log(Base64.decode(response.headers['content-disposition'].split('=')[1])); const string = Base64.decode(response.headers['content-disposition'].split('=')[1]); downloadElement.href = href var now=""; try { now = moment().year()+""+(moment().month()+1)+""+moment().date()+""+moment().hour()+""+moment().minute()+"" console.log(now); } catch (e) { console.log("1376"); } downloadElement.download = string+now+".zip" document.body.appendChild(downloadElement) downloadElement.click() document.body.removeChild(downloadElement) // 下载完成移除元素 window.URL.revokeObjectURL(href) // 释放掉blob对象 } }).catch((error) => { console.log(error) }); } // 课堂学生成绩的导出下载 Classstudentachievement = (url) => { console.log("Classstudentachievement"); // const course_id = this.props.match.params.coursesId; // let url = "/courses/" + course_id + "/export_member_scores_excel.xlsx"; axios.get(url).then((response) => { console.log("1374"); console.log(response); if(response.data.status&&response.data.status===-1){ }else if(response.data.status&&response.data.status===-2){ }else{ const type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' //excel文件 const blob = new Blob([response.data], { type: type }) const downloadElement = document.createElement('a') const href = window.URL.createObjectURL(blob) //后台再header中传文件名 // console.log("1409"); // console.log(Base64.decode(response.headers['content-disposition'].split('=')[1])); const string = Base64.decode(response.headers['content-disposition'].split('=')[1]); var now=""; try { now = moment().year()+""+(moment().month()+1)+""+moment().date()+""+moment().hour()+""+moment().minute()+"" console.log("1422"); console.log(now); } catch (e) { console.log("1432"); } downloadElement.href = href downloadElement.download =string+now+".xlsx"; document.body.appendChild(downloadElement) downloadElement.click() document.body.removeChild(downloadElement) // 下载完成移除元素 window.URL.revokeObjectURL(href) // 释放掉blob对象 } }).catch((error) => { console.log(error) }); } render() { const dateFormat = 'YYYY-MM-DD HH:mm:ss'; let { starttimetype, endtimetype, latetimetype, allowlate, latepenaltytype, jobsettingsdata, score_open, Showupdateinstructions , homework_id } = this.state; const radioStyle = { display: 'block', height: '30px', lineHeight: '30px', }; const formItemLayout = { labelCol: {span: 6}, wrapperCol: {span: 14}, }; let coursesId = this.props.match.params.coursesId; return (
{this.state.showmodel === true ? this.hideshowmodel()} updatas={() => this.isupdatas()} /> : ""} {/*立即发布*/} this.getcourse_groupslist(id)} starttimes={this.state.starttimes} typs={this.state.typs} />

{jobsettingsdata === undefined ? "" : jobsettingsdata.data.course_name} > {jobsettingsdata === undefined ? "" : jobsettingsdata.data.category.category_name} > 作业详情

{jobsettingsdata === undefined ? "" : jobsettingsdata.data.homework_name}

返回 实训详情
{this.props.isAdmin() === true ? 作品列表 : 作品列表 // :作品列表(学生完成) } 作业问答 {this.props.isAdmin() ? this.state.code_review === true || jobsettingsdata === undefined ? [""] : jobsettingsdata.data.homework_status[0] === "未发布" ? "" : 代码查重 : ""} 设置 {/*导出成绩*/} {this.props.isAdmin() ?
  • 导出
  • : ""} {this.props.isAdmin() ? jobsettingsdata && jobsettingsdata.data.end_immediately === true ? 立即截止 : "" : ""} {this.props.isAdmin() ? jobsettingsdata && jobsettingsdata.data.publish_immediately === true ? 立即发布 : "" : ""} {this.props.isAdmin() ? this.state.code_review === true ? 代码查重 : "" : ""}
    {jobsettingsdata === undefined || jobsettingsdata.data.description === null ? "无" :
    {/* /!*{}}>
    {/* /!*{jobsettingsdata.data.description}*!/*/} {/* */}
    {/*
    */} {/*

    */} {/* /!*{ChallengesDataList === undefined ? "" :ChallengesDataList.description===null?""*!/*/} {/* */} {/* /!*}*!/*/} {/*

    */} {/*
    */}
    }
    作业说明:
    { this.props.isAdmin() && this.props.isAdmin() === true ? (Showupdateinstructions && Showupdateinstructions === true ? "" : this.jobdescriptiondisplaybj()}> ) : "" }
    {Showupdateinstructions && Showupdateinstructions === true ?
    :
    {jobsettingsdata === undefined ? "无" : jobsettingsdata === null ? "无" : jobsettingsdata === "null" ? "无" : jobsettingsdata.data.explanation === undefined ? "无" : jobsettingsdata.data.explanation === null ? "无" :
    }
    }
    {/* */} {/*
    */} {/**/} {/*
    */} {/*{ Showupdateinstructions&& Showupdateinstructions === true?*/} {/*
    */} {/* */} {/*
    */} {/* :""*/} {/*}*/} {homework_id && }
    ) } } export default Workquestionandanswer;