import React, {Component} from "react"; import {WordsBtn,markdownToHTML, MarkdownToHtml} from 'educoder'; import { Form, Select, Input, Button,Checkbox,Upload,Icon,message,Modal, Table, Divider,InputNumber, Tag,DatePicker,Radio,Tooltip,Pagination} from "antd"; import {Link,Switch,Route,Redirect} from 'react-router-dom'; import axios from 'axios'; import Exercisetablesmubu from './Exercisetablesmubu'; import Exercisestatisticalresulttabel from './Exercisestatisticalresulttabel'; import '../css/members.css'; import '../css/busyWork.css'; import '../poll/pollStyle.css'; const CheckboxGroup = Checkbox.Group; const $ = window.$ function createMarkup(value) { return {__html:value} }; class Exercisestatisticalresult extends Component { constructor(props) { super(props); this.state = { data:undefined, sort:"asc", exercise_group_id:[], page:1, limit:10, searchtext:"", order: "end_at", } } componentDidMount() { let{sort,exercise_group_id,page,limit}=this.state; this.updatefun(sort,exercise_group_id,page,limit); try { this.props.triggerRef(this); }catch (e) { } } _getRequestParams() { const { order, exercise_group_id,searchtext, page ,limit} = this.state return { page, search:searchtext, order, limit: limit, group_id:exercise_group_id, } } updatefun=(sort,exercise_group_id,page,limit)=>{ let ExerciseId=this.props.match.params.Id; let url = `/exercises/`+ExerciseId+`/exercise_result.json`; axios.get(url,{ params:{ sort:sort, exercise_group_id:exercise_group_id, page:page, limit:limit } }).then((result) => { this.setState({ data:result.data }) }).catch((error) => { console.log(error) }) } onSortTypeChange=()=>{ let{exercise_group_id,page,limit,sort}=this.state; let newdesc="asc"; if(sort==="desc"){ newdesc="asc" }else{ newdesc="desc" } this.setState({ sort:newdesc }) this.updatefun(newdesc,exercise_group_id,page,limit) } funtaskstatustwo=(checkedValues,list)=>{ let{sort,page,limit}=this.state; if(checkedValues.length===list.length){ this.setState({ exercise_group_id:[] }) }else{ this.setState({ exercise_group_id:checkedValues }) } this.updatefun(sort,checkedValues,page,limit) } alldatalist = () => { let {sort, page, limit} = this.state; this.setState({ exercise_group_id: [] }) this.updatefun(sort, [], page, limit) } PaginationCourse=(pageNumber)=>{ let{sort,exercise_group_id,limit}=this.state; this.setState({ page:pageNumber }) // debugger $('html').animate({ scrollTop: 10 }, 1000); this.updatefun(sort,exercise_group_id,pageNumber,limit) } render() { let{data,sort,page,limit} =this.state; let choicetype=["满分作答","部分得分作答","零分作答","未批"] return (
{data&&data.course_groups.length===0?"":
  • 分班情况: this.alldatalist()}>不限 this.funtaskstatustwo(e,data&&data.course_groups)} value={this.state.exercise_group_id} style={{width:'87%',paddingTop: '4px'}}> { data&&data.course_groups.map((item, key) => { return ( {item.exercise_group_name} ({item.exercise_group_students}) ) })}
}
  • 统计详情
  • this.onSortTypeChange()}> {/*{sort==="percent"?"正确率":sort==="type"?"题型":sort==="position"?"题序":""}*/} {/**/} {/*
      */} {/*{sort==='percent'?"":
    • this.onSortTypeChange('percent')}>正确率
    • }*/} {/*{sort==='type'?"":
    • this.onSortTypeChange('type')}>题型
    • }*/} {/*{sort==='position'?"":
    • this.onSortTypeChange('position')}>题序
    • }*/} {/*
    */} 正确率
  • {/* 从子组件将样式提出来,不然会循环多次 */} {data&&data.commit_results.map((item,key)=>{ return(
    {item.ques_position + "."}{item.ques_type === 0 ? "单选" : item.ques_type === 1 ? "多选" : item.ques_type === 2 ? "判断" : item.ques_type === 3 ? "填空" : item.ques_type === 4 ? "主观" : item.ques_type === 5 ? "实训" : ""}题
    {/*Q{item.ques_position}:*/} {/*
    */} {/**/}
    正确率 {item.right_percent}%
    {item.ques_type===5? item.ques_details.map((ite,k)=>{ return(
    {ite.challenge_position}:{ite.challenge_name}
    正确率 {ite.challenge_percent}%
    ) }): }
    ) })}
    { data && data.questions_count > 10 &&
    }
    ) } } export default Exercisestatisticalresult;