|
|
|
@ -12,7 +12,7 @@ import {
|
|
|
|
|
DatePicker,
|
|
|
|
|
Radio,
|
|
|
|
|
Tooltip,
|
|
|
|
|
notification
|
|
|
|
|
notification,
|
|
|
|
|
} from "antd";
|
|
|
|
|
import {Link} from 'react-router-dom';
|
|
|
|
|
import locale from 'antd/lib/date-picker/locale/zh_CN';
|
|
|
|
@ -112,7 +112,8 @@ class Trainingjobsetting extends Component {
|
|
|
|
|
group_settings:undefined,
|
|
|
|
|
rulesdata:[],
|
|
|
|
|
showmodel:false,
|
|
|
|
|
code_review:false
|
|
|
|
|
code_review:false,
|
|
|
|
|
testscripttiptype:false,
|
|
|
|
|
}
|
|
|
|
|
// console.log("获取到的值")
|
|
|
|
|
// console.log("Trainingjobsetting")
|
|
|
|
@ -1698,11 +1699,24 @@ class Trainingjobsetting extends Component {
|
|
|
|
|
DownloadMessageval:undefined
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
testscripttip =(e)=>{
|
|
|
|
|
if(e === 0){
|
|
|
|
|
this.setState({
|
|
|
|
|
testscripttiptype:true,
|
|
|
|
|
})
|
|
|
|
|
}else {
|
|
|
|
|
this.setState({
|
|
|
|
|
testscripttiptype:false,
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
render() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const dataformat = 'YYYY-MM-DD HH:mm';
|
|
|
|
|
let {flagPageEdit,flagPageEdits,flagPageEditstwo,flagPageEditsbox,whethertopay,handclass,flagPageEditsthrees, flagPageEditsfor,rules,rulest,unifiedsetting,group_settings, course_group,unit_e_tip, borreds,borredss,unit_p_tip, end_time, late_time, score_open, publish_time, starttimetype, modalsType, modalsTopval, loadtype, modalSave, endtimetype, latetimetype, allowlate, latepenaltytype, jobsettingsdata, endOpen, mystyle, mystyles} = this.state;
|
|
|
|
|
let {flagPageEdit,testscripttiptype,flagPageEdits,flagPageEditstwo,flagPageEditsbox,whethertopay,handclass,flagPageEditsthrees, flagPageEditsfor,rules,rulest,unifiedsetting,group_settings, course_group,unit_e_tip, borreds,borredss,unit_p_tip, end_time, late_time, score_open, publish_time, starttimetype, modalsType, modalsTopval, loadtype, modalSave, endtimetype, latetimetype, allowlate, latepenaltytype, jobsettingsdata, endOpen, mystyle, mystyles} = this.state;
|
|
|
|
|
const radioStyle = {
|
|
|
|
|
display: 'block',
|
|
|
|
|
height: '30px',
|
|
|
|
@ -1874,8 +1888,8 @@ class Trainingjobsetting extends Component {
|
|
|
|
|
<span className="font-16 fl "style={{"color":"#05101A"}}>发布设置 <span className="ml15 color-grey-9" style={{"font-size":"14px","text-align":"left"}}></span></span>
|
|
|
|
|
{
|
|
|
|
|
!flagPageEdit && this.props.isAdmin() === true ?
|
|
|
|
|
<a className="fr" onClick={this.editSetting}><Tooltip title="编辑"><i
|
|
|
|
|
className="iconfont icon-bianjidaibeijing font-20 color-green pr20 "></i></Tooltip></a>
|
|
|
|
|
<a className="fr" onClick={this.editSetting}><i
|
|
|
|
|
className="iconfont font-16 pr20 " style={{color:"#333333"}}>编辑</i></a>
|
|
|
|
|
: ""
|
|
|
|
|
}
|
|
|
|
|
</p>
|
|
|
|
@ -2062,16 +2076,21 @@ class Trainingjobsetting extends Component {
|
|
|
|
|
<div className=" clearfix edu-back-white poll_list mt20">
|
|
|
|
|
<div className={"font-16 color-dark fl pl20 "} style={{"color":"#05101A"}}>评分设置</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div className="yslflexhomes">
|
|
|
|
|
<div style={{width:"700px"}}>
|
|
|
|
|
<div className="ml20 mt10 mt20">
|
|
|
|
|
<span className="c_grey font-13" style={{"color":"#333333"}}> 关卡任务的选择和分值设置 </span><span className="ml15 font-14 color-grey-c" style={{"text-align":"left"}}>(成绩 = 效率分+ 关卡任务总分)</span>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div className=" clearfix edu-back-white poll_list mt10" style={{marginLeft:" 40px"}}>
|
|
|
|
|
<Checkbox disabled={!flagPageEdit} className=" font-13 mt10"
|
|
|
|
|
onChange={this.onChangeeffectiveness}
|
|
|
|
|
checked={this.state.completionefficiencyscore} style={{"color":"#666666"}}>效率分<span
|
|
|
|
|
className={"font-14 color-grey-c font-14 ml15"} style={{"text-align":"left"}}>(选中,则学生最终成绩包含效率分)</span></Checkbox>
|
|
|
|
|
<Checkbox disabled={!flagPageEdit} className=" font-13 mt10"
|
|
|
|
|
onChange={this.onChangeeffectiveness}
|
|
|
|
|
checked={this.state.completionefficiencyscore} style={{"color":"#666666"}}>效率分<span
|
|
|
|
|
className={"font-14 color-grey-c font-14 ml15"} style={{"text-align":"left"}}>(选中,则学生最终成绩包含效率分)</span>
|
|
|
|
|
</Checkbox>
|
|
|
|
|
<div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
<div className=" mt20" style={{marginLeft:"75px"}}>
|
|
|
|
|
<span className="c_grey mr10" style={{"color":"#999999"}}>分值</span>
|
|
|
|
@ -2082,9 +2101,22 @@ class Trainingjobsetting extends Component {
|
|
|
|
|
<span className="ml10" style={{"color":"#999999"}}>分</span>
|
|
|
|
|
<span className={"font-14 color-grey-9 "} style={{"color":"#999999"}}></span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<div className="yslflexhomes invite-tipysl" style={{marginTop: "45px"}} >
|
|
|
|
|
<span className="to-back-left"></span>
|
|
|
|
|
<div className="padding20 invitecontent clearfix" style={{backgroundColor:" #FAFAFA"}}>
|
|
|
|
|
<p className="font-12 edu-txt-left">
|
|
|
|
|
(学生工作效率= log(实训总得分/实训总耗时)<br/>
|
|
|
|
|
(学生效率分 = 学生工作效率 / 课堂学生最高工作效率 * 分值)<br/>
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div className="yslflexhome">
|
|
|
|
|
<div style={{width:"720px"}}>
|
|
|
|
|
<div className="ml20 mt40 mt20" style={{width:"600px"}}>
|
|
|
|
|
<div >
|
|
|
|
|
<div className="ml20 mt40 mt20" >
|
|
|
|
|
<span className="c_grey font-13" style={{"color":"#333333"}}> 关卡任务分值设置规则 </span> <span> <RadioGroup className="ml50" onChange={this.onChangeslevelproportion} value={this.state.proportion}>
|
|
|
|
|
<Radio style={{ display: 'block',
|
|
|
|
|
height: '30px',
|
|
|
|
@ -2097,25 +2129,47 @@ class Trainingjobsetting extends Component {
|
|
|
|
|
lineHeight: '30px',
|
|
|
|
|
color:"#666666",
|
|
|
|
|
}} disabled={!flagPageEdit} className="c_grey ml30"
|
|
|
|
|
value={"经验值比例"} style={{"color":"#666666"}}>经验值比例</Radio>
|
|
|
|
|
value={"经验值比例"} style={{"color":"#666666"}}>难易度</Radio>
|
|
|
|
|
<Radio style={{ display: 'block',
|
|
|
|
|
height: '30px',
|
|
|
|
|
lineHeight: '30px',
|
|
|
|
|
color:"#666666",
|
|
|
|
|
}} disabled={!flagPageEdit} className="c_grey mt20 ml30"
|
|
|
|
|
value={"自定义分值"} style={{"color":"#666666"}}>自定义分值 <a><img style={{marginBottom:"3px",marginLeft:"10px"}}
|
|
|
|
|
src={getImageUrl("images/educoder/problem.png") }/></a></Radio>
|
|
|
|
|
value={"自定义分值"} style={{"color":"#666666"}}>自定义分值
|
|
|
|
|
<a onClick={()=>this.testscripttip(0)}><img style={{marginBottom:"3px",marginLeft:"10px"}} src={getImageUrl("images/educoder/problem.png") }/></a>
|
|
|
|
|
{testscripttiptype===true?
|
|
|
|
|
<div className="invite-tip clearfix " id="test_script_tip" style={{left: '140px',width: '322px',zIndex: '10'}}>
|
|
|
|
|
<span className="right-black-trangles"></span>
|
|
|
|
|
<div className="padding20 invitecontent clearfix">
|
|
|
|
|
<p className="font-12 edu-txt-left">
|
|
|
|
|
若完成效率分值 = 10分, 则<br/>
|
|
|
|
|
均分比例: 根据任务数平均分配<br/>
|
|
|
|
|
例: 实训任务3关, 每关分值: 1/3*(100-10)=30分<br/>
|
|
|
|
|
<br/>
|
|
|
|
|
难易度: 根据关卡经验值的高低确定关卡分值<br/>
|
|
|
|
|
例: 实训总经验值1200, 某关经验值200,<br/>
|
|
|
|
|
则其分值:200/1200*(100-10)=15分<br/>
|
|
|
|
|
<br/>
|
|
|
|
|
自定义分值: 手动设置关卡分值<br/>
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
<p className="inviteTipbtn with100 fl">
|
|
|
|
|
<a onClick={()=>this.testscripttip(1)}>知道了</a>
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
:""}
|
|
|
|
|
</Radio>
|
|
|
|
|
</RadioGroup></span>
|
|
|
|
|
</div>
|
|
|
|
|
<p className="ml20 mt15 c_grey font-13 " style={{"color":"#666666",width: "600px"}}> 关卡名称<span
|
|
|
|
|
<p className="ml20 mt15 c_grey font-13 " style={{"color":"#666666"}}> 关卡名称<span
|
|
|
|
|
className="color-grey-c font-10 ml10">(需要学生完成的任务请选中)</span></p>
|
|
|
|
|
<div className="ml40 mt15" style={{width: "600px"}}>
|
|
|
|
|
<div className="ml40 mt15" >
|
|
|
|
|
{this.state.challenge_settings === undefined ? "" : this.state.challenge_settings.map((object, index) => {
|
|
|
|
|
return (
|
|
|
|
|
<li>
|
|
|
|
|
<Checkbox className="ml110 mt20 "
|
|
|
|
|
disabled={!flagPageEditsbox}
|
|
|
|
|
style={{"width": "400px","color":"#05101A"}}
|
|
|
|
|
style={{"width": "480px","color":"#05101A"}}
|
|
|
|
|
checked={object.checked}
|
|
|
|
|
onChange={(value) => this.onChangedatasheet(value, index)}
|
|
|
|
|
>{object.challenge_name}</Checkbox>
|
|
|
|
@ -2131,31 +2185,7 @@ class Trainingjobsetting extends Component {
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div style={{
|
|
|
|
|
height: "467px",
|
|
|
|
|
width: "468px",
|
|
|
|
|
}}>
|
|
|
|
|
<div className="yslinvitetip"
|
|
|
|
|
style={{width: '468px'}}>
|
|
|
|
|
<span className="right-black-trangle"></span>
|
|
|
|
|
<div className="padding20 invitecontent clearfix">
|
|
|
|
|
<p className="font-12 edu-txt-left">
|
|
|
|
|
若完成效率分值 = 10分, 则<br/>
|
|
|
|
|
均分比例: 根据任务数平均分配<br/>
|
|
|
|
|
例: 实训任务3关, 每关分值: 1/3*(100-10)=30分<br/>
|
|
|
|
|
<br/>
|
|
|
|
|
难易度: 根据关卡经验值的高低确定关卡分值<br/>
|
|
|
|
|
例: 实训总经验值1200, 某关经验值200,<br/>
|
|
|
|
|
则其分值:200/1200*(100-10)=15分<br/>
|
|
|
|
|
<br/>
|
|
|
|
|
自定义分值: 手动设置关卡分值<br/>
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
<p className="inviteTipbtn with100 fl">
|
|
|
|
|
<a>知道了</a>
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
<p className="ml20 mt40 c_grey font-13 " style={{"color":"#333333"}}> 查看参考答案才通过评测的关卡扣分规则<span
|
|
|
|
|
className=" font-14 color-grey-c ml15" style={{textAlign:"left",marginLeft:"40px"}}>(学生通过评测后再查看参考答案,不对成绩产生影响)</span></p>
|
|
|
|
|