|
|
@ -1,13 +1,13 @@
|
|
|
|
import React, {Component} from 'react';
|
|
|
|
import React, {Component} from 'react';
|
|
|
|
|
|
|
|
|
|
|
|
import {Input, Select, Radio, Checkbox, Popconfirm, message, Modal} from 'antd';
|
|
|
|
import {Input, Select, Radio, Checkbox, Popconfirm, message, Button} from 'antd';
|
|
|
|
|
|
|
|
|
|
|
|
import {BrowserRouter as Router, Route, Link, Switch} from "react-router-dom";
|
|
|
|
import {BrowserRouter as Router, Route, Link, Switch} from "react-router-dom";
|
|
|
|
|
|
|
|
|
|
|
|
// import "antd/dist/antd.css";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import TPMMDEditor from '../../tpm/challengesnew/TPMMDEditor';
|
|
|
|
import TPMMDEditor from '../../tpm/challengesnew/TPMMDEditor';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import Bottomsubmit from "../../modals/Bottomsubmit";
|
|
|
|
|
|
|
|
|
|
|
|
import axios from 'axios';
|
|
|
|
import axios from 'axios';
|
|
|
|
|
|
|
|
|
|
|
|
import './css/TPMchallengesnew.css';
|
|
|
|
import './css/TPMchallengesnew.css';
|
|
|
@ -83,7 +83,8 @@ export default class TPMchallengesnew extends Component {
|
|
|
|
task_pass_default: response.data.task_pass_default,
|
|
|
|
task_pass_default: response.data.task_pass_default,
|
|
|
|
submit_url: response.data.submit_url,
|
|
|
|
submit_url: response.data.submit_url,
|
|
|
|
checkpointId:checkpointId,
|
|
|
|
checkpointId:checkpointId,
|
|
|
|
exercisememoMDRefval:response.data.task_pass_default
|
|
|
|
exercisememoMDRefval:response.data.task_pass_default,
|
|
|
|
|
|
|
|
responsedata:response.data
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
this.exercisememoMDRef.current.setValue(response.data.task_pass_default||'')
|
|
|
|
this.exercisememoMDRef.current.setValue(response.data.task_pass_default||'')
|
|
|
@ -136,7 +137,8 @@ export default class TPMchallengesnew extends Component {
|
|
|
|
exec_time:response.data.exec_time,
|
|
|
|
exec_time:response.data.exec_time,
|
|
|
|
tab2url: "/shixuns/" + id + "/challenges/"+checkpointId+"/tab=2",
|
|
|
|
tab2url: "/shixuns/" + id + "/challenges/"+checkpointId+"/tab=2",
|
|
|
|
tab3url: "/shixuns/" + id + "/challenges/"+checkpointId+"/tab=3",
|
|
|
|
tab3url: "/shixuns/" + id + "/challenges/"+checkpointId+"/tab=3",
|
|
|
|
exercisememoMDRefval:response.data.task_pass
|
|
|
|
exercisememoMDRefval:response.data.task_pass,
|
|
|
|
|
|
|
|
responsedata:response.data
|
|
|
|
})
|
|
|
|
})
|
|
|
|
if(response.data.power===false){
|
|
|
|
if(response.data.power===false){
|
|
|
|
this.props.showSnackbar("你没有权限修改");
|
|
|
|
this.props.showSnackbar("你没有权限修改");
|
|
|
@ -241,7 +243,8 @@ export default class TPMchallengesnew extends Component {
|
|
|
|
if (response.data.status === 1) {
|
|
|
|
if (response.data.status === 1) {
|
|
|
|
// $("html").animate({ scrollTop: 0 })
|
|
|
|
// $("html").animate({ scrollTop: 0 })
|
|
|
|
//window.location.href=`/shixuns/${id}/challenges/${response.data.challenge_id}/editcheckpoint?tab=2`;
|
|
|
|
//window.location.href=`/shixuns/${id}/challenges/${response.data.challenge_id}/editcheckpoint?tab=2`;
|
|
|
|
window.location.href=`/shixuns/${id}/challenges/${response.data.challenge_id}/tab=2`;
|
|
|
|
// window.location.href=`/shixuns/${id}/challenges/${response.data.challenge_id}/tab=2`;
|
|
|
|
|
|
|
|
this.props.history.replace(`/shixuns/${id}/challenges/${response.data.challenge_id}/tab=2`);
|
|
|
|
// this.setState({
|
|
|
|
// this.setState({
|
|
|
|
// setopen: true,
|
|
|
|
// setopen: true,
|
|
|
|
// CreatePracticesendtype:false,
|
|
|
|
// CreatePracticesendtype:false,
|
|
|
@ -363,13 +366,14 @@ export default class TPMchallengesnew extends Component {
|
|
|
|
}).then((response) => {
|
|
|
|
}).then((response) => {
|
|
|
|
this.props.showSnackbar(response.data.messages);
|
|
|
|
this.props.showSnackbar(response.data.messages);
|
|
|
|
if (response.data.status === 1) {
|
|
|
|
if (response.data.status === 1) {
|
|
|
|
window.location.href=`/shixuns/${id}/challenges/${checkpointId}/tab=2`;
|
|
|
|
// window.location.href=`/shixuns/${id}/challenges/${checkpointId}/tab=2`;
|
|
|
|
this.setState({
|
|
|
|
this.setState({
|
|
|
|
setopen: true,
|
|
|
|
setopen: true,
|
|
|
|
editPracticesendtype:false,
|
|
|
|
editPracticesendtype:false,
|
|
|
|
tab2url: "/shixuns/" + id + "/challenges/"+checkpointId+"/tab=2",
|
|
|
|
tab2url: "/shixuns/" + id + "/challenges/"+checkpointId+"/tab=2",
|
|
|
|
tab3url: "/shixuns/" + id + "/challenges/"+checkpointId+"/tab=3",
|
|
|
|
tab3url: "/shixuns/" + id + "/challenges/"+checkpointId+"/tab=3",
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
this.props.history.replace(`/shixuns/${id}/challenges/${checkpointId}/tab=2`);
|
|
|
|
// window.location.href = "/shixuns/" + id + "/challenges/"+response.data.challenge_id+"/tab=2"
|
|
|
|
// window.location.href = "/shixuns/" + id + "/challenges/"+response.data.challenge_id+"/tab=2"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}).catch((error) => {
|
|
|
|
}).catch((error) => {
|
|
|
@ -401,7 +405,7 @@ export default class TPMchallengesnew extends Component {
|
|
|
|
let shixuntype = this.props.match.params.type;
|
|
|
|
let shixuntype = this.props.match.params.type;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let {marktype,
|
|
|
|
let {responsedata,
|
|
|
|
shixunCreatePracticetype, shixunsskillvaluelisttype,
|
|
|
|
shixunCreatePracticetype, shixunsskillvaluelisttype,
|
|
|
|
choice_url, practice_url, go_back_url, position, task_pass_default, submit_url, setopen,checkpointId,prev_challenge,next_challenge,power,
|
|
|
|
choice_url, practice_url, go_back_url, position, task_pass_default, submit_url, setopen,checkpointId,prev_challenge,next_challenge,power,
|
|
|
|
shixunCreatePractice, shixunCreatePracticeGroup, onshixunsmarkvalue, shixunsskillvalue, shixunsskillvaluelist, tab2url, tab3url,optionsums,
|
|
|
|
shixunCreatePractice, shixunCreatePracticeGroup, onshixunsmarkvalue, shixunsskillvalue, shixunsskillvaluelist, tab2url, tab3url,optionsums,
|
|
|
@ -417,69 +421,81 @@ export default class TPMchallengesnew extends Component {
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// console.log(this.props)
|
|
|
|
|
|
|
|
// console.log(this.state)
|
|
|
|
|
|
|
|
// console.log(responsedata)
|
|
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
return (
|
|
|
|
<React.Fragment>
|
|
|
|
<React.Fragment>
|
|
|
|
<div className="educontent mt30 mb30">
|
|
|
|
<div className="educontent mt30 mb30">
|
|
|
|
<div className="padding10-20 mb10 edu-back-white clearfix">
|
|
|
|
<div className="TPMchallengesnewtitles edu-back-white clearfix borderbottomf4">
|
|
|
|
<span className="fl ring-blue mr10 mt7">
|
|
|
|
|
|
|
|
<img src={getImageUrl("images/educoder/icon/code.svg")} data-tip-down="实训任务" className="fl mt2 ml2"/>
|
|
|
|
<span className="font-16 task-hide fl TPMtaskName">第{position}关:{responsedata&&responsedata.st === 0 ?"实践题":"选择题"}</span>
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<span className="font-16 task-hide fl TPMtaskName">第{position}关</span>
|
|
|
|
{this.props.identity>4||this.props.identity===undefined||this.props.status===2||this.props.status===1?"":<Link to={practice_url === undefined ? "" : practice_url}
|
|
|
|
|
|
|
|
className="fr ml15 mt13">
|
|
|
|
<Link to={go_back_url === undefined ? "" : go_back_url}
|
|
|
|
<Button type="primary" className="edu-default-btn edu-greenback-btn "
|
|
|
|
className="color-grey-6 fr font-15 mt3">返回</Link>
|
|
|
|
>新增实践任务</Button></Link>}
|
|
|
|
{ next_challenge===undefined?"":
|
|
|
|
|
|
|
|
<a href={next_challenge}className="fr color-blue mr15 mt4">下一关</a>
|
|
|
|
{this.props.identity>4||this.props.identity===undefined||this.props.status===2||this.props.status===1?"":<Link to={choice_url === undefined ? "" : choice_url}
|
|
|
|
}
|
|
|
|
className="fr ml15 mt13">
|
|
|
|
{ prev_challenge===undefined?"":
|
|
|
|
<Button type="primary"
|
|
|
|
<a href={prev_challenge} className="fr color-blue mr15 mt4">上一关</a>
|
|
|
|
className="edu-default-btn edu-greenback-btn mr5"
|
|
|
|
}
|
|
|
|
>新增选择题任务</Button></Link>}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{next_challenge===undefined?"":<Link to={next_challenge} className="fr ml15 mt13">
|
|
|
|
|
|
|
|
<Button type="primary" ghost
|
|
|
|
|
|
|
|
className="edu-default-btn edu-greenback-btn mr5"
|
|
|
|
<a href={practice_url === undefined ? "" : practice_url}
|
|
|
|
>下一关</Button></Link>}
|
|
|
|
className="fr color-blue mr15 mt4"
|
|
|
|
{prev_challenge===undefined?"":<Link to={prev_challenge} className="fr ml15 mt13">
|
|
|
|
style={{display:this.props.identity>4||this.props.identity===undefined||this.props.status===2||this.props.status===1?"none":'block'}}
|
|
|
|
<Button type="primary" ghost
|
|
|
|
data-tip-down="新增代码编辑类型的任务">+ 实践类型</a>
|
|
|
|
className="edu-default-btn edu-greenback-btn mr5"
|
|
|
|
|
|
|
|
>上一关</Button></Link>}
|
|
|
|
<a href={choice_url === undefined ? "" : choice_url}
|
|
|
|
|
|
|
|
className="fr color-blue mr15 mt4"
|
|
|
|
{/*{ next_challenge===undefined?"":*/}
|
|
|
|
style={{display:this.props.identity>4||this.props.identity===undefined||this.props.status===2||this.props.status===1?"none":'block'}}
|
|
|
|
{/* <a href={next_challenge}className="fr color-blue ml15 mt4">下一关</a>*/}
|
|
|
|
data-tip-down="新增选择题类型的任务">+ 选择题类型</a>
|
|
|
|
{/*}*/}
|
|
|
|
|
|
|
|
{/*{ prev_challenge===undefined?"":*/}
|
|
|
|
|
|
|
|
{/* <a href={prev_challenge} className="fr color-blue ml15 mt4">上一关</a>*/}
|
|
|
|
|
|
|
|
{/*}*/}
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div className="challenge_nav clearfix edu-back-white">
|
|
|
|
<div className="challenge_nav clearfix edu-back-white">
|
|
|
|
|
|
|
|
|
|
|
|
<li className="active">
|
|
|
|
<li className="active">
|
|
|
|
<a>本关任务</a>
|
|
|
|
<a>1、本关任务</a>
|
|
|
|
</li>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
<li className="">
|
|
|
|
<li className="">
|
|
|
|
{tab2url === "" ? <span>评测设置</span> : <Link to={tab2url}>评测设置</Link>}
|
|
|
|
{tab2url === "" ? <span></span> : <Link to={tab2url}>2、评测设置</Link>}
|
|
|
|
</li>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
<li className="">
|
|
|
|
<li className="">
|
|
|
|
{tab3url === "" ? <span>参考答案</span> : <Link to={tab3url}>参考答案</Link>}
|
|
|
|
{tab3url === "" ? <span></span> : <Link to={tab3url}>3、参考答案</Link>}
|
|
|
|
|
|
|
|
|
|
|
|
</li>
|
|
|
|
</li>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div className="edu-back-white mb10 clearfix">
|
|
|
|
<div className="edu-back-white clearfix">
|
|
|
|
<div className="padding40-20">
|
|
|
|
<div className="newpadding1020">
|
|
|
|
<p className="color-grey-6 font-16 mb30">任务名称</p>
|
|
|
|
<p className="color-grey-6 font-16 mb10"> <span className="mr5 color-orange">*</span>名称</p>
|
|
|
|
<div className="df">
|
|
|
|
<div>
|
|
|
|
<span className="mr30 color-orange pt10">*</span>
|
|
|
|
<div className="flex1">
|
|
|
|
<div className="flex1 mr20">
|
|
|
|
{/*<input type="text"*/}
|
|
|
|
<input type="text"
|
|
|
|
{/* // className="input-100-45 greyInput"*/}
|
|
|
|
// className="input-100-45 greyInput"
|
|
|
|
{/* className={shixunCreatePracticetype===true?"input-100-45 greyInpus wind100":"input-100-45 greyInput "}*/}
|
|
|
|
className={shixunCreatePracticetype===true?"input-100-45 greyInpus wind100":"input-100-45 greyInput "}
|
|
|
|
{/* maxLength="60"*/}
|
|
|
|
maxLength="50"
|
|
|
|
{/* name="challenge[subject]"*/}
|
|
|
|
name="challenge[subject]"
|
|
|
|
{/* value={shixunCreatePractice}*/}
|
|
|
|
value={shixunCreatePractice}
|
|
|
|
{/* onInput={this.shixunCreatePractice}*/}
|
|
|
|
|
|
|
|
{/* placeholder="请输入任务名称,最大限制60个字符;此信息将在实训发布后展示给学员,例:计算学生的课程成绩绩点"/>*/}
|
|
|
|
|
|
|
|
<Input placeholder="请输入任务名称,最大限制60个字符;此信息将在实训发布后展示给学员,例:计算学生的课程成绩绩点"
|
|
|
|
|
|
|
|
maxLength="60"
|
|
|
|
|
|
|
|
className={"newViewAfter"}
|
|
|
|
onInput={this.shixunCreatePractice}
|
|
|
|
onInput={this.shixunCreatePractice}
|
|
|
|
placeholder="请输入任务名称(此信息将提前展示给学员),例:计算学生的课程成绩绩点"/>
|
|
|
|
value={shixunCreatePractice}
|
|
|
|
|
|
|
|
addonAfter={`${String(!shixunCreatePractice? 0 : shixunCreatePractice.length)}/${60}`}
|
|
|
|
|
|
|
|
/>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div style={{width: '57px'}}>
|
|
|
|
<div style={{width: '57px'}}>
|
|
|
|
<span
|
|
|
|
<span
|
|
|
@ -492,38 +508,59 @@ export default class TPMchallengesnew extends Component {
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div className="edu-back-white padding40-20 mb20">
|
|
|
|
<div className="edu-back-white newpadding02020">
|
|
|
|
|
|
|
|
|
|
|
|
<p className="color-grey-6 font-16 mb30">过关任务</p>
|
|
|
|
<p className="color-grey-6 font-16 mb10"><span className="mr5 color-orange">*</span>过关任务</p>
|
|
|
|
|
|
|
|
<style>
|
|
|
|
<TPMMDEditor ref={this.exercisememoMDRef} placeholder="请输入选择题的题干内容" mdID={'exercisememoMD'} refreshTimeout={1500}
|
|
|
|
{
|
|
|
|
watch={true} className="courseMessageMD" initValue={this.state.exercisememoMDRefval} height={700}></TPMMDEditor>
|
|
|
|
`
|
|
|
|
|
|
|
|
.markdown-body img {
|
|
|
|
|
|
|
|
max-width: 80%;
|
|
|
|
|
|
|
|
margin: 0 auto;
|
|
|
|
|
|
|
|
display: block;
|
|
|
|
|
|
|
|
width: auto;
|
|
|
|
|
|
|
|
height: auto;
|
|
|
|
|
|
|
|
max-height: 80%;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
`
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
</style>
|
|
|
|
|
|
|
|
<TPMMDEditor ref={this.exercisememoMDRef} placeholder="请输入选择题的题干内容" mdID={'exercisememoMD'} refreshTimeout={1500}
|
|
|
|
|
|
|
|
watch={true} className="courseMessageMD" initValue={this.state.exercisememoMDRefval} height={800}></TPMMDEditor>
|
|
|
|
|
|
|
|
|
|
|
|
<p id="e_tip_Memochallengesnew" className="edu-txt-right color-grey-cd font-12"></p>
|
|
|
|
<p id="e_tip_Memochallengesnew" className="edu-txt-right color-grey-cd font-12"></p>
|
|
|
|
<p id="e_tips_Memochallengesnew" className="edu-txt-right color-grey-cd font-12"></p>
|
|
|
|
<p id="e_tips_Memochallengesnew" className="edu-txt-right color-grey-cd font-12"></p>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div className="edu-back-white padding40-20 mb20">
|
|
|
|
<div className="edu-back-white newpadding02020">
|
|
|
|
<p className="color-grey-6 font-16 mb30">难度系数</p>
|
|
|
|
<p className="color-grey-6 font-16 mb20">
|
|
|
|
<div className="clearfix mb40">
|
|
|
|
<span className="fl color-orange mr5">*</span>
|
|
|
|
|
|
|
|
难度系数:
|
|
|
|
<RadioGroup value={shixunCreatePracticeGroup} className="fl mr40"
|
|
|
|
<RadioGroup value={shixunCreatePracticeGroup} className="ml10"
|
|
|
|
disabled={this.props.status===2?true:false}
|
|
|
|
disabled={this.props.status===2?true:false}
|
|
|
|
onChange={this.props.status===2?"":this.onshixunCreatePracticeChange}>
|
|
|
|
onChange={this.props.status===2?"":this.onshixunCreatePracticeChange}>
|
|
|
|
<Radio value={1}>简单</Radio>
|
|
|
|
<Radio value={1}>简单</Radio>
|
|
|
|
<Radio value={2}>中等</Radio>
|
|
|
|
<Radio value={2}>中等</Radio>
|
|
|
|
<Radio value={3}>困难</Radio>
|
|
|
|
<Radio value={3}>困难</Radio>
|
|
|
|
</RadioGroup>
|
|
|
|
</RadioGroup>
|
|
|
|
|
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
{/*<div className="clearfix mb40">*/}
|
|
|
|
<p className="color-grey-6 font-16 mb30">奖励经验值</p>
|
|
|
|
|
|
|
|
|
|
|
|
{/* <RadioGroup value={shixunCreatePracticeGroup} className="fl mr40"*/}
|
|
|
|
|
|
|
|
{/* disabled={this.props.status===2?true:false}*/}
|
|
|
|
|
|
|
|
{/* onChange={this.props.status===2?"":this.onshixunCreatePracticeChange}>*/}
|
|
|
|
|
|
|
|
{/* <Radio value={1}>简单</Radio>*/}
|
|
|
|
|
|
|
|
{/* <Radio value={2}>中等</Radio>*/}
|
|
|
|
|
|
|
|
{/* <Radio value={3}>困难</Radio>*/}
|
|
|
|
|
|
|
|
{/* </RadioGroup>*/}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{/*</div>*/}
|
|
|
|
|
|
|
|
<p className="color-grey-6 font-16 mb10"> <span className="fl mr5 color-orange">*</span> 奖励经验值:<span className={"color-grey-8 font-14"}> (如果学员答题正确,将获得相应的经验值;如果学员成功得到经验值,那么将同时获得等值的金币奖励,如:+100经验值、+100金币)</span></p>
|
|
|
|
<div className="clearfix"
|
|
|
|
<div className="clearfix"
|
|
|
|
// onMouseLeave={this.props.status===2?"":this.onshixunsmarkss}
|
|
|
|
// onMouseLeave={this.props.status===2?"":this.onshixunsmarkss}
|
|
|
|
>
|
|
|
|
>
|
|
|
|
<span className="fl mr30 color-orange pt10">*</span>
|
|
|
|
<Select style={{width: 252}} className="winput-240-40 fl ml3"
|
|
|
|
|
|
|
|
|
|
|
|
<Select style={{width: 120}} className="winput-240-40 fl"
|
|
|
|
|
|
|
|
id="challenge_score"
|
|
|
|
id="challenge_score"
|
|
|
|
onChange={this.props.status===2?"":this.onshixunsmark}
|
|
|
|
onChange={this.props.status===2?"":this.onshixunsmark}
|
|
|
|
// onMouseEnter={this.props.status===2?"":this.onshixunsmarks}
|
|
|
|
// onMouseEnter={this.props.status===2?"":this.onshixunsmarks}
|
|
|
@ -535,10 +572,10 @@ export default class TPMchallengesnew extends Component {
|
|
|
|
{options}
|
|
|
|
{options}
|
|
|
|
</Select>
|
|
|
|
</Select>
|
|
|
|
|
|
|
|
|
|
|
|
<p className="fl color-grey-9 font-12 ml20">
|
|
|
|
{/*<p className="fl color-grey-9 font-12 ml20">*/}
|
|
|
|
如果学员答题错误,则不能得到相应的经验值<br/>
|
|
|
|
{/* 如果学员答题错误,则不能得到相应的经验值<br/>*/}
|
|
|
|
如果学员成功得到经验值,那么将同时获得等值的金币奖励,如:+10经验值、+10金币
|
|
|
|
{/* 如果学员成功得到经验值,那么将同时获得等值的金币奖励,如:+10经验值、+10金币*/}
|
|
|
|
</p>
|
|
|
|
{/*</p>*/}
|
|
|
|
|
|
|
|
|
|
|
|
<span className="color-orange mt7 fl ml20 none" id="ex_value_notice"><i
|
|
|
|
<span className="color-orange mt7 fl ml20 none" id="ex_value_notice"><i
|
|
|
|
className="fa fa-exclamation-circle mr3"></i>必填项</span>
|
|
|
|
className="fa fa-exclamation-circle mr3"></i>必填项</span>
|
|
|
@ -546,13 +583,12 @@ export default class TPMchallengesnew extends Component {
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div className="edu-back-white padding40-20 mb20">
|
|
|
|
<div className="edu-back-white newpadding02020">
|
|
|
|
<p className="color-grey-6 font-16 mb30">技能标签</p>
|
|
|
|
<p className="color-grey-6 font-16 mb10"><span className="mr5 color-orange">*</span>技能标签:<span className={"color-grey-8 font-14"}> (学员答题正确将获得技能,否则不能获得技能)</span></p>
|
|
|
|
<div className="clearfix df">
|
|
|
|
<div className="clearfix df">
|
|
|
|
<span className="mr30 color-orange pt10">*</span>
|
|
|
|
|
|
|
|
<div className="flex1">
|
|
|
|
<div className="flex1">
|
|
|
|
<Input type="text"
|
|
|
|
<Input type="text"
|
|
|
|
className="winput-240-40 fl mr20 winput-240-40s"
|
|
|
|
className="winput-240-40 fl mr20 winput-240-40s ml10"
|
|
|
|
id="input_task_tag"
|
|
|
|
id="input_task_tag"
|
|
|
|
placeholder="添加标签"
|
|
|
|
placeholder="添加标签"
|
|
|
|
onInput={this.shixunsskill}
|
|
|
|
onInput={this.shixunsskill}
|
|
|
@ -561,10 +597,9 @@ export default class TPMchallengesnew extends Component {
|
|
|
|
onBlur={this.clickshixunsskill}
|
|
|
|
onBlur={this.clickshixunsskill}
|
|
|
|
/>
|
|
|
|
/>
|
|
|
|
{/*<a className="white-btn orange-btn fl mt1 use_scope-btn ml20 mt5 mr20"*/}
|
|
|
|
{/*<a className="white-btn orange-btn fl mt1 use_scope-btn ml20 mt5 mr20"*/}
|
|
|
|
{/*onClick={this.clickshixunsskill}>+ 添加</a>*/}
|
|
|
|
{/*onClick={this.clickshixunsskill}>+ 添加</a>*/}
|
|
|
|
<div className="ml15 color-grey-9 mt5">学员答题正确将获得技能,否则不能获得技能</div>
|
|
|
|
<div className="ml15 color-grey-9 mt5 font-14">(回车添加标签)</div>
|
|
|
|
<div className="mt20 clearfix" id="task_tag_content">
|
|
|
|
<div className="mt20 clearfix" id="task_tag_content">
|
|
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
{
|
|
|
|
shixunsskillvaluelist===undefined?"":shixunsskillvaluelist.length === 0 ? "" : shixunsskillvaluelist.map((itme, key) => {
|
|
|
|
shixunsskillvaluelist===undefined?"":shixunsskillvaluelist.length === 0 ? "" : shixunsskillvaluelist.map((itme, key) => {
|
|
|
|
return (
|
|
|
|
return (
|
|
|
@ -574,21 +609,18 @@ export default class TPMchallengesnew extends Component {
|
|
|
|
)
|
|
|
|
)
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<span
|
|
|
|
<span className={shixunsskillvaluelisttype === true ? "color-orange mt7 fl ml20 block" : " color-orange mt7 fl ml20 none"}
|
|
|
|
className={shixunsskillvaluelisttype === true ? "color-orange mt7 fl ml20 block" : " color-orange mt7 fl ml20 none"}
|
|
|
|
|
|
|
|
id="stage_name_notice">
|
|
|
|
id="stage_name_notice">
|
|
|
|
<i className="fa fa-exclamation-circle mr3"></i>必填项</span>
|
|
|
|
<i className="fa fa-exclamation-circle mr3"></i>必填项</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div className="edu-back-white padding40-20 mb20">
|
|
|
|
<div className="edu-back-white newpadding02020">
|
|
|
|
<p className="color-grey-6 font-16 mb30">服务配置</p>
|
|
|
|
<p className="color-grey-6 font-16 mb20"> <span className="color-orange mr5 fl">*</span> 服务配置</p>
|
|
|
|
<div className="clearfix mb5">
|
|
|
|
<div className="clearfix mb5">
|
|
|
|
<span className="color-orange pt10 fl">*</span>
|
|
|
|
|
|
|
|
<label className="panel-form-label fl">评测时限(S):</label>
|
|
|
|
<label className="panel-form-label fl">评测时限(S):</label>
|
|
|
|
<div className="pr fl with80 status_con">
|
|
|
|
<div className="pr fl with80 status_con">
|
|
|
|
<input value={this.state.exec_time} className="panel-box-sizing task-form-100 task-height-40" placeholder="请输入类别名称" onInput={this.setexec_time}/>
|
|
|
|
<input value={this.state.exec_time} className="panel-box-sizing task-form-100 task-height-40" placeholder="请输入类别名称" onInput={this.setexec_time}/>
|
|
|
@ -600,14 +632,20 @@ export default class TPMchallengesnew extends Component {
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div className="clearfix mt30"
|
|
|
|
|
|
|
|
style={{display:this.props.identity>4||this.props.identity===undefined?"none":'block'}}
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
{checkpointId===undefined?<a className="defalutSubmitbtn fl mr20" onClick={CreatePracticesendtype===true?"":this.CreatePracticesend}>提交</a>:
|
|
|
|
|
|
|
|
<a className="defalutSubmitbtn fl mr20" onClick={editPracticesendtype===true?"":this.editPracticesend}>提交</a>}
|
|
|
|
|
|
|
|
<a href={go_back_url === undefined ? "" : go_back_url} className="defalutCancelbtn fl">取消</a>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
{this.props.identity>4||this.props.identity===undefined?"":<div className="clearfix mt30"
|
|
|
|
|
|
|
|
// style={{display:this.props.identity>4||this.props.identity===undefined?"none":'block'}}
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
{/*{checkpointId===undefined?<a className="defalutSubmitbtn fl mr20" onClick={CreatePracticesendtype===true?"":this.CreatePracticesend}>提交</a>:*/}
|
|
|
|
|
|
|
|
{/*<a className="defalutSubmitbtn fl mr20" onClick={editPracticesendtype===true?"":this.editPracticesend}>提交</a>}*/}
|
|
|
|
|
|
|
|
{/*<a href={go_back_url === undefined ? "" : go_back_url} className="defalutCancelbtn fl">取消</a>*/}
|
|
|
|
|
|
|
|
{/*<Link to={go_back_url === undefined ? "" : go_back_url} className={"defalutCancelbtn fl"}>取消</Link>*/}
|
|
|
|
|
|
|
|
<Bottomsubmit {...this.props} {...this.state} url={go_back_url === undefined ? "" : go_back_url}
|
|
|
|
|
|
|
|
bottomvalue={"提交"}
|
|
|
|
|
|
|
|
onSubmits={checkpointId===undefined?CreatePracticesendtype===true?"":this.CreatePracticesend:editPracticesendtype===true?"":this.editPracticesend}
|
|
|
|
|
|
|
|
loadings={this.state.loading}/>
|
|
|
|
|
|
|
|
</div>}
|
|
|
|
</React.Fragment>
|
|
|
|
</React.Fragment>
|
|
|
|
)
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|
|
|
|