import React,{Component} from "React"; import { Form, Select, Input, Button,Checkbox,Upload,Icon,message,Modal, Table, Divider, Tag,DatePicker,Radio,Tooltip} from "antd"; import {Link} from 'react-router-dom'; import locale from 'antd/lib/date-picker/locale/zh_CN'; import { WordsBtn, MarkdownToHtml, markdownToHTML } from 'educoder'; import axios from 'axios'; import Modals from '../../modals/Modals'; import CoursesListType from '../coursesPublic/CoursesListType'; import HomeworkModal from "../coursesPublic/HomeworkModal"; import CheckAllGroup from '../common/button/CheckAllGroup' import moment from 'moment'; import CheckCodeModal from '../coursesPublic/modal/CheckCodeModal' import '../css/Courses.css' import WorkDetailPageHeader from './common/WorkDetailPageHeader' import CommonWorkAppraiseReply from './reply/CommonWorkAppraiseReply' import Example from './TestHooks' import CommonWorkAppraiseReviseAttachments from './CommonWorkAppraiseReviseAttachments' import LeaderIcon from './common/LeaderIcon' const { Option} = Select; const CheckboxGroup = Checkbox.Group; const confirm = Modal.confirm; const $ = window.$; const Search = Input.Search; const RadioGroup = Radio.Group; class CommonWorkAppraise extends Component{ constructor(props){ super(props) this.state={ course_name:"", homework_name:"", search: '', attachments: [], revise_attachments: [], } } getWork = () => { let workId =this.props.match.params.workId; let studentWorkId =this.props.match.params.studentWorkId; // https://www.showdoc.cc/127895880302646?page_id=1957586480118445 const url = `/student_works/${studentWorkId}.json` axios.get(url).then((result)=> { if (result.data.course_id) { this.setState({ ...result.data }) } }).catch((error)=>{ console.log(error) }) } getSupplyAttachments = () => { let workId =this.props.match.params.workId; let studentWorkId =this.props.match.params.studentWorkId; const url = `/student_works/${studentWorkId}/supply_attachments.json` axios.get(url).then((result)=> { if (result.data.course_id) { this.setState({ ...result.data }) } }).catch((error)=>{ console.log(error) }) } getReviseAttachments = () => { let studentWorkId =this.props.match.params.studentWorkId; const url = `/student_works/${studentWorkId}/supply_attachments.json`; axios.get(url).then((result)=> { if (result.data.revise_attachments) { this.setState({ ...result.data }) } }).catch((error)=>{ console.log(error) }) } componentDidUpdate(prevProps, prevState) { if (this.props.match.params.studentWorkId != prevProps.match.params.studentWorkId) { this.getWork(); this.getReviseAttachments() this.commonWorkAppraiseReply && this.commonWorkAppraiseReply.fetchAllComments() } } componentDidMount() { this.getWork(); this.getReviseAttachments() let workId =this.props.match.params.workId; let studentWorkId =this.props.match.params.studentWorkId; // const url = `/student_works/${studentWorkId}/comment_list.json` // axios.get(url).then((result)=> { // if (result.data.course_id) { // this.setState({ // ...result.data // }) // } // }).catch((error)=>{ // console.log(error) // }) } onAttachmentRemove = (id) => { this.setState({ Modalstype:true, // Modalstopval:'确定要删除这个附件吗?', Modalstopval: '是否确认删除?', ModalSave: ()=>this.deleteAttachment(id), ModalCancel:this.cancelAttachment }) } deleteAttachment = (id) => { const url = `/attachments/${id}.json` axios.delete(url, { }) .then((response) => { if (response.data) { const { status } = response.data; if (status == 0) { this.getWork() this.getReviseAttachments(); this.cancelAttachment(); } } }) .catch(function (error) { console.log(error); }); } cancelAttachment=()=>{ this.setState({ Modalstype:false, Modalstopval:'', ModalSave:"", ModalCancel:"" }) } onReplySuccess = () => { this.getReviseAttachments(); } render(){ const dateFormat = 'YYYY-MM-DD HH:mm'; let {course_name, homework_name, search, page, loadingstate, homework_status, reference_answer, attachments, homework_id, project_info, work_members, is_evaluation, description, update_user_name, update_time, commit_time, author_name, revise_attachments, revise_reason, atta_update_user, atta_update_time, atta_update_user_login, Modalstype,Modalstopval,ModalCancel,ModalSave,loadtype, is_leader_work } =this.state; let courseId=this.props.match.params.coursesId; let category_id=this.props.match.params.category_id; let studentWorkId=this.props.match.params.studentWorkId; const isAdmin = this.props.isAdmin() return( {/*提示*/} {/* 内容区 */} {/*
*/}
{(description || (attachments && attachments.length != 0)) &&
内容
{attachments.map((item,key)=>{ return(
40 ? item.title : ''}`}> {item.title} {item.filesize} {/*{item.delete===true?:""}*/} {item.delete===true?:""}
) })}
{ update_time && 更新 {update_user_name} {moment(update_time).format('YYYY-MM-DD HH:mm')==="Invalid date"?"":moment(update_time).format('YYYY-MM-DD HH:mm')} } { commit_time && 提交 {author_name} {moment(commit_time).format('YYYY-MM-DD HH:mm')==="Invalid date"?"":moment(commit_time).format('YYYY-MM-DD HH:mm')} }
} {is_evaluation != true && project_info && project_info.name &&
关联项目
{project_info.name}
} {is_evaluation != true && work_members && !!work_members.length &&
全部组员
当前组员:{author_name} {is_leader_work && }
其他组员: {work_members.map((item, index) => { return {isAdmin ? this.props.toWorkDetailPage(this.props.match.params, null, item.work_id)} > {item.user_name} : {item.user_name}} {item.is_leader && } })}
{isAdmin &&
温馨提示: 点击其他组员的姓名,可以快速评阅TA的作品
}
}
{/* task_type={datalist&&datalist.task_type} */} {this.commonWorkAppraiseReply = ref}} >
) } } export default CommonWorkAppraise;