|
|
@ -169,7 +169,7 @@ class ExerciseReviewAndAnswer extends Component {
|
|
|
|
sureCommit = () => {
|
|
|
|
sureCommit = () => {
|
|
|
|
let coursesId = this.props.match.params.coursesId;
|
|
|
|
let coursesId = this.props.match.params.coursesId;
|
|
|
|
let eId = this.props.match.params.Id;
|
|
|
|
let eId = this.props.match.params.Id;
|
|
|
|
this.props.history.push(`/courses/${coursesId}/exercises/${eId}/student_exercise_list?tab=0`);
|
|
|
|
this.props.history.push(`/classrooms/${coursesId}/exercises/${eId}/student_exercise_list?tab=0`);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 滚动定位
|
|
|
|
// 滚动定位
|
|
|
@ -585,7 +585,7 @@ class ExerciseReviewAndAnswer extends Component {
|
|
|
|
returnBtn = () =>{
|
|
|
|
returnBtn = () =>{
|
|
|
|
let coursesId=this.props.match.params.coursesId;
|
|
|
|
let coursesId=this.props.match.params.coursesId;
|
|
|
|
let eId=this.props.match.params.Id;
|
|
|
|
let eId=this.props.match.params.Id;
|
|
|
|
this.props.history.push(`/courses/${coursesId}/exercises/${eId}/student_exercise_list?tab=0`)
|
|
|
|
this.props.history.push(`/classrooms/${coursesId}/exercises/${eId}/student_exercise_list?tab=0`)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
deadline = (time) => {
|
|
|
|
deadline = (time) => {
|
|
|
@ -687,9 +687,9 @@ class ExerciseReviewAndAnswer extends Component {
|
|
|
|
<p className="clearfix mb20">
|
|
|
|
<p className="clearfix mb20">
|
|
|
|
<WordsBtn style="grey" className="fl" to={current_user && current_user.first_category_url}>{courseName}</WordsBtn>
|
|
|
|
<WordsBtn style="grey" className="fl" to={current_user && current_user.first_category_url}>{courseName}</WordsBtn>
|
|
|
|
<span className="color-grey-9 fl ml3 mr3">></span>
|
|
|
|
<span className="color-grey-9 fl ml3 mr3">></span>
|
|
|
|
<WordsBtn style="grey" className="fl" to={`/courses/${coursesId}/exercises/${data && data.left_banner_id}`}>{data && data.left_banner_name}</WordsBtn>
|
|
|
|
<WordsBtn style="grey" className="fl" to={`/classrooms/${coursesId}/exercises/${data && data.left_banner_id}`}>{data && data.left_banner_name}</WordsBtn>
|
|
|
|
<span className="color-grey-9 fl ml3 mr3">></span>
|
|
|
|
<span className="color-grey-9 fl ml3 mr3">></span>
|
|
|
|
<WordsBtn style="grey" to={`/courses/${coursesId}/exercises/${eId}/student_exercise_list?tab=0`} className="fl mr3">{data && data.left_banner_name}详情</WordsBtn>>
|
|
|
|
<WordsBtn style="grey" to={`/classrooms/${coursesId}/exercises/${eId}/student_exercise_list?tab=0`} className="fl mr3">{data && data.left_banner_name}详情</WordsBtn>>
|
|
|
|
<span className="ml3">{exercise_answer_user&&exercise_answer_user.user_name}{data&&data.exercise.user_name}</span>
|
|
|
|
<span className="ml3">{exercise_answer_user&&exercise_answer_user.user_name}{data&&data.exercise.user_name}</span>
|
|
|
|
</p>
|
|
|
|
</p>
|
|
|
|
<p className="clearfix">
|
|
|
|
<p className="clearfix">
|
|
|
@ -745,8 +745,8 @@ class ExerciseReviewAndAnswer extends Component {
|
|
|
|
<span className="color-grey-9 mr15">简答题 {exercise_types.q_mains} 题,共 {exercise_types && exercise_types.q_mains_scores} 分</span>
|
|
|
|
<span className="color-grey-9 mr15">简答题 {exercise_types.q_mains} 题,共 {exercise_types && exercise_types.q_mains_scores} 分</span>
|
|
|
|
}
|
|
|
|
}
|
|
|
|
{
|
|
|
|
{
|
|
|
|
exercise_types && exercise_types.q_shixuns > 0 &&
|
|
|
|
exercise && exercise.exercise_description &&
|
|
|
|
<span className="color-grey-9 mr15">实训题 {exercise_types.q_shixuns} 题,共 {exercise_types && exercise_types.q_shixuns_scores} 分</span>
|
|
|
|
<p className="color-grey-3 edu-back-white padding15 mt30">{exercise.exercise_description}</p>
|
|
|
|
}
|
|
|
|
}
|
|
|
|
<span className="color-grey-3 fr">共<span className="color-orange-tip"> {exercise_types &&exercise_types.q_scores} </span>分</span>
|
|
|
|
<span className="color-grey-3 fr">共<span className="color-orange-tip"> {exercise_types &&exercise_types.q_scores} </span>分</span>
|
|
|
|
<span className="color-grey-3 fr">合计<span className="color-blue"> {exercise_types &&exercise_types.q_counts} </span>题:</span>
|
|
|
|
<span className="color-grey-3 fr">合计<span className="color-blue"> {exercise_types &&exercise_types.q_counts} </span>题:</span>
|
|
|
@ -764,42 +764,31 @@ class ExerciseReviewAndAnswer extends Component {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</span>
|
|
|
|
</span>
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// 老师身份 || 学生身份且试卷已经截止
|
|
|
|
exercise_types && exercise_types.q_shixuns > 0 &&
|
|
|
|
(isAdmin || (isStudent && exercise && exercise.exercise_status == 3)) &&
|
|
|
|
<span className="color-grey-9 mr15">实训题 {exercise_types.q_shixuns} 题,共 {exercise_types && exercise_types.q_shixuns_scores} 分</span>
|
|
|
|
<div className="mt10">
|
|
|
|
}
|
|
|
|
{
|
|
|
|
<span className="color-grey-3 fr">共<span className="color-orange-tip"> {exercise_types && exercise_types.q_scores} </span>分</span>
|
|
|
|
exercise_scores && exercise_scores.objective_scores && exercise_scores.objective_scores.length > 0 &&
|
|
|
|
<span className="color-grey-3 fr">合计<span className="color-blue"> {exercise_types && exercise_types.q_counts} </span>题:</span>
|
|
|
|
<div>
|
|
|
|
|
|
|
|
<p className="clearfix">
|
|
|
|
|
|
|
|
<span className="font-16 mr40">客观题</span>
|
|
|
|
|
|
|
|
<span className="mr40 answerTure">正确</span>
|
|
|
|
|
|
|
|
<span className="mr40 answerFalse">错误</span>
|
|
|
|
|
|
|
|
<span className="mr40 answerHalf">部分得分</span>
|
|
|
|
|
|
|
|
</p>
|
|
|
|
</p>
|
|
|
|
<ul className="clearfix leaderMainNav mb20">
|
|
|
|
<div className="edu-back-white">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div className={questionPanelFixed == true ? "questionsfixed padding30" : "questionsNo padding30"} style={{ borderBottom: "none" }}>
|
|
|
|
|
|
|
|
<span className="clearfix font-16">
|
|
|
|
{
|
|
|
|
{
|
|
|
|
exercise_scores.objective_scores.map((item, key) => {
|
|
|
|
exercise_start_at && <span className="fl color-grey-9">开始答题时间:{exercise_start_at && moment(exercise_start_at).format(format)}</span>
|
|
|
|
return (
|
|
|
|
|
|
|
|
<a className={item.answer_status == 1 ? "acted" : item.answer_status == 2 ? "half" : ""} onClick={() => this.scrollToAnchor(`${item.ques_position}`)}>{item.ques_position}</a>
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
{
|
|
|
|
{
|
|
|
|
exercise_scores && exercise_scores.subjective_scores.length > 0 &&
|
|
|
|
exercise_scores && exercise_scores.subjective_scores.length > 0 &&
|
|
|
|
<div>
|
|
|
|
<div>
|
|
|
|
<p className="clearfix">
|
|
|
|
<p className="clearfix">
|
|
|
|
<span className="font-16 mr40">主观题</span>
|
|
|
|
<span className="mr40 answered ml20">已答</span>
|
|
|
|
<span className="mr40 answered">已评</span>
|
|
|
|
<span className="unanswer">未答</span>
|
|
|
|
<span className="unanswer">未评</span>
|
|
|
|
|
|
|
|
</p>
|
|
|
|
</p>
|
|
|
|
<ul className="clearfix leaderNav">
|
|
|
|
<ul className="clearfix leaderNav">
|
|
|
|
{
|
|
|
|
{
|
|
|
|
exercise_scores.subjective_scores.map((item, key) => {
|
|
|
|
question_status && question_status.map((item, key) => {
|
|
|
|
return (
|
|
|
|
return (
|
|
|
|
<a className={item.answer_status == 0 ? "" : "acted"} onClick={() => this.scrollToAnchor(`${item.ques_position}`)}>{item.ques_position}</a>
|
|
|
|
<a className={item.ques_status == 1 ? "acted" : ""} onClick={() => this.scrollToAnchor(`${item.ques_number}`)}>{item.ques_number}</a>
|
|
|
|
)
|
|
|
|
)
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -962,6 +951,37 @@ class ExerciseReviewAndAnswer extends Component {
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
// 调分输入部分
|
|
|
|
|
|
|
|
isAdmin && ((item.setScore && item.question_type == 3) || (item.setScore && item.question_type == 1) || ((item.setScore || parseInt(item.answer_status) == 0) && item.question_type == 4))?
|
|
|
|
|
|
|
|
<div className="ml30 mr30 bor-top-greyE pt20 mt20" id={`${"Anchor_"+item.q_position+"_"+item.question_type}`}>
|
|
|
|
|
|
|
|
<div className="edu-txt-right">
|
|
|
|
|
|
|
|
<span><span className="color-red">*</span>调分:</span>
|
|
|
|
|
|
|
|
<li className="fr">
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
|
|
|
<InputNumber
|
|
|
|
|
|
|
|
placeholder="请填写分数"
|
|
|
|
|
|
|
|
min={0}
|
|
|
|
|
|
|
|
// max={item.question_score}
|
|
|
|
|
|
|
|
value={list && list.length>0 && list[0].inputSore}
|
|
|
|
|
|
|
|
step={0.1}
|
|
|
|
|
|
|
|
precision={1}
|
|
|
|
|
|
|
|
className={ list && list.length>0 && list[0].setTip !="" ? "edu-txt-center winput-115-40 fl mt3 noticeTip inputNumber30" : "edu-txt-center winput-115-40 fl mt3 inputNumber30"}
|
|
|
|
|
|
|
|
onChange={(value)=>this.inputScore(value,item.question_id)}
|
|
|
|
|
|
|
|
id={`${"input_"+item.q_position+"_"+item.question_type}`}
|
|
|
|
|
|
|
|
></InputNumber>
|
|
|
|
|
|
|
|
<span className="ml5">分</span>
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
parseInt(item.answer_status) == 0 && item.question_type == 4 ? <span className="color-red ml10 font-16">未评分</span> : ''
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
<ActionBtn style="blue" className="middle ml20" onClick={()=>this.setAction(key,item.question_id,item.question_score,item.user_score)}>确认</ActionBtn>
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
list && list.length > 0 && list[0].setTip !="" ? <p className="color-red edu-txt-left">{ list[0].setTip }</p> :""
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
</li>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
}
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// 调分输入部分
|
|
|
|
// 调分输入部分
|
|
|
|
isAdmin && ((item.setScore && item.question_type == 3) || (item.setScore && item.question_type == 1) || ((item.setScore || parseInt(item.answer_status) == 0) && item.question_type == 4)) ?
|
|
|
|
isAdmin && ((item.setScore && item.question_type == 3) || (item.setScore && item.question_type == 1) || ((item.setScore || parseInt(item.answer_status) == 0) && item.question_type == 4)) ?
|
|
|
|