hjm 5 years ago
commit b5fbbffce8

@ -3,10 +3,9 @@
"version": "0.1.0",
"private": true,
"dependencies": {
"@novnc/novnc": "^1.1.0",
"@flatten/array": "^1.1.7",
"@icedesign/base": "^0.2.5",
"@novnc/novnc": "^1.1.0",
"antd": "^3.6.5",
"array-flatten": "^2.1.2",
"autoprefixer": "7.1.6",
@ -41,6 +40,7 @@
"fs-extra": "3.0.1",
"html-webpack-plugin": "2.29.0",
"immutability-helper": "^2.6.6",
"install": "^0.12.2",
"jest": "20.0.4",
"js-file-download": "^0.4.7",
"lodash": "^4.17.5",

@ -299,9 +299,11 @@ class Listofworks extends Component {
var data = {
search: "",
order: "",
b_order: "",
b_order: "asc",
work_status: "",
course_group: "",
page:1,
limit:20,
}
axios.post(urll, data).then((result) => {
if (result !== undefined) {

@ -90,7 +90,9 @@ class Listofworksstudentone extends Component {
var data = {
search: "",
order: "",
b_order: "",
b_order: "asc",
page:1,
limit:20,
work_status: "",
course_group: "",
}

@ -36,9 +36,11 @@ class TraineetraininginformationModal extends Component {
props: this.props,
userids: this.props.userids,
game_list:this.props.game_list,
gline:0,
})
// console.log("TraineetraininginformationModal")
// console.log(JSON.stringify(this.props))
// console.log(this.props)
}
@ -47,6 +49,7 @@ class TraineetraininginformationModal extends Component {
}
componentDidMount() {
// this.seacthdata();
}
// 设置数据
// seacthdata = () => {
@ -54,12 +57,11 @@ class TraineetraininginformationModal extends Component {
// console.log(datalist)
// }
render() {
let columns = [
const columns = [
{
title: '关卡',
dataIndex: 'number',
key: 'number',
width: 150,
align: "center",
render: (text, record) => (
<span >
@ -71,7 +73,55 @@ class TraineetraininginformationModal extends Component {
title: '完成时间',
dataIndex: 'name',
key: 'name',
width: 150,
width: 178,
align: "center",
render: (text, record) => (
<span >
<a style={{"color":'#989898', "text-align": "center"}} >{record.name==='Invalid date'?"--":record.name}</a>
</span>
),
},
{
title: '耗时',
dataIndex: 'stduynumber',
key: 'stduynumber',
align: "center",
render: (text, record) => (
<span>
<a style={{"color":'#989898', "text-align": "center"}}>{record.stduynumber}</a>
</span>
),
},
{
title: '经验值',
key: 'classroom',
dataIndex: 'classroom',
align: "center",
render: (text, record) => (
<span>
<a style={{"color":'#29BD8B', "text-align": "center"}}>{record.classroom}</a>
</span>
),
}
];
const columnss = [
{
title: '关卡',
dataIndex: 'number',
key: 'number',
width: 92,
align: "center",
render: (text, record) => (
<span >
<a style={{"color":'#07111B', "text-align": "center"}}>{record.number}</a>
</span>
),
},
{
title: '完成时间',
dataIndex: 'name',
key: 'name',
width: 178,
align: "center",
render: (text, record) => (
<span >
@ -83,11 +133,12 @@ class TraineetraininginformationModal extends Component {
title: '',
dataIndex: 'complete_status',
key: 'complete_status',
width: 150,
width: 100,
align: "center",
render: (text, record) => (
<span>
{record.complete_status===2?<img src={delay}/>:record.complete_status===3?<img src={invalid}/>:""}
</span>
),
},
@ -95,7 +146,7 @@ class TraineetraininginformationModal extends Component {
title: '耗时',
dataIndex: 'stduynumber',
key: 'stduynumber',
width: 150,
width: 92,
align: "center",
render: (text, record) => (
<span>
@ -106,7 +157,7 @@ class TraineetraininginformationModal extends Component {
{
title: '经验值',
key: 'classroom',
width: 150,
width: 92,
dataIndex: 'classroom',
align: "center",
render: (text, record) => (
@ -128,18 +179,22 @@ class TraineetraininginformationModal extends Component {
onCancel={this.Cancel}
>
<div style={{width:"100%" }}className="login_register_content" >
<div style={{"width": "100%","text-align": "center"}}>
<a style={{"text-align": "center"}}>{this.props.viewtrainingdata === undefined ? "" : this.props.viewtrainingdata.shixun_name}</a>
<a className="ml20 " style={{"text-align": "center","color":'#29BD8B'}} >经验值<span style={{"color":'#29BD8B'}}> {this.props.viewtrainingdata === undefined ? "" : this.props.viewtrainingdata.shixun_score}</span></a>
<div style={{"width": "100%","text-align": "left","clear": "both"}}>
<div className="mt5 fl" >
<span style={{"text-align": "left"}}>{this.props.viewtrainingdata === undefined ? "" : this.props.viewtrainingdata.shixun_name}</span>
<span className="ml10 " style={{"text-align": "left","color":'#29BD8B'}} >经验值<span style={{"color":'#29BD8B'}}> {this.props.viewtrainingdata === undefined ? "" : this.props.viewtrainingdata.shixun_score}</span></span>
</div>
{/*<Button type="primary" className="ml30" >实训报告</Button>*/}
<a className="ml30 color-blue " style={{"text-align": "center"}} target={"_blank"} href={`/courses/${this.props.coursesId}/shixun_homeworks/${this.props.viewtrainingdata.work_id}/shixun_work_report`}>
<Button type="primary" className="lh38 fr" style={{"text-align": "center","width": "100px",color: "#fff"}} href={`/courses/${this.props.coursesId}/shixun_homeworks/${this.props.viewtrainingdata.work_id}/shixun_work_report`}>
实训报告
</a>
</Button>
{/*这里到时候要做判断*/}
</div>
</div>
<div className=" bor-bottom-greyE mt10"></div>
<div className=" bor-bottom-greyE mt45 "></div>
<div style={{"clear": "both"}}>
<div className="fl edu-back-white ml10 ">
<img alt="头像" className="radius mt10" height="70" id="nh_user_logo" name="avatar_image"
src={this.props.viewtrainingdata === undefined ? "" : "https://www.educoder.net/images/" + `${this.props.viewtrainingdata.image_url}`}
@ -154,9 +209,11 @@ class TraineetraininginformationModal extends Component {
<li className="mt20"> <span style={{"color":"#989898"}}>课堂最高完成效率</span> <span style={{"color":"#4C4C4C"}}>{this.props.viewtrainingdata === undefined ? "" :this.props.viewtrainingdata.max_efficiency} </span> </li>
<li><span style={{"color":"#989898"}}>总耗时:</span> <span style={{"color":"#4C4C4C"}}> {this.props.viewtrainingdata === undefined ? "" :this.props.viewtrainingdata.total_spend_time}</span> </li>
</div>
</div>
{
this.props.game_list === undefined?"" : this.props.game_list.length<4?
<div>
<style>
{
` .ant-table-body{
@ -165,9 +222,18 @@ class TraineetraininginformationModal extends Component {
}
</style>
:""
}
<div className={"both"}></div>
{this.props.game_list === undefined ? "" : <Table
className="mt20"
dataSource={this.props.game_list}
columns={columns}
loading={false}
pagination={false}
onChange={this.TablePagination}
/>}
</div>
:
<div>
<div className={"both"}></div>
{this.props.game_list === undefined ? "" : <Table
className="mt20"
@ -183,6 +249,10 @@ class TraineetraininginformationModal extends Component {
onChange={this.TablePagination}
scroll={{ y: 300 }}
/>}
</div>
}
</Modal>

@ -141,7 +141,7 @@ class Trainingjobsetting extends Component {
// console.log(homeworkid)
let url = `/homework_commons/${homeworkid}/settings.json`;
axios.get(url).then((result) => {
if (result.status === 200) {
if (result!=undefined) {
// console.log(result.data.code_review)
// console.log("设置页")
// console.log(JSON.stringify(result))
@ -637,12 +637,12 @@ class Trainingjobsetting extends Component {
//允许补交
onChanges = (e) => {
console.log("640");
console.log(this.state.end_time);
// console.log("640");
// console.log(this.state.end_time);
if(e.target.value ==="允许补交"){
if(this.state.end_time !== null && this.state.end_time!== undefined){
// console.log(this.state.end_time);
var times = this.state.end_time.format('YYYY-MM-DD HH:mm');
var times = this.state.deadline.format('YYYY-MM-DD HH:mm');
this.setState({
late_time:moment(handleDateString(times)).add(1, 'months'),
late_times:moment(handleDateString(times)).add(1, 'months').format('YYYY-MM-DD HH:mm'),
@ -983,16 +983,19 @@ class Trainingjobsetting extends Component {
if (!startValue || !endValue) {
return false;
}
return startValue.valueOf() > endValue.valueOf();
var endValues= moment(endValue).subtract(1, 'days');
return startValue.valueOf() > endValues.valueOf();
};
disabledEndDateend = (endValue) => {
const startValue = this.state.publish_time;
if (!endValue || !startValue) {
return false;
}
return endValue.valueOf() <= startValue.valueOf();
};
var endValuesys= moment(startValue).subtract(1, 'days');
return endValue.valueOf() <= endValuesys.valueOf();
};
disabledEndDateendd = (endsValue) => {
const endValues = this.state.end_time
@ -1000,7 +1003,9 @@ class Trainingjobsetting extends Component {
if (!endsValue|| !endValues) {
return false;
}
return endsValue.valueOf() <= endValues.valueOf();
var endValuesyss= moment(endValues).subtract(1, 'days');
return endsValue.valueOf() <= endValuesyss.valueOf();
};
@ -1156,13 +1161,15 @@ class Trainingjobsetting extends Component {
deadline:undefined,
})
} else {
// console.log(moment(value, "YYYY-MM-DD HH:mm"));
// console.log(moment(this.state.publish_time, "YYYY-MM-DD HH:mm"));
if (moment(value, "YYYY-MM-DD HH:mm") <= moment(this.state.publish_time, "YYYY-MM-DD HH:mm")) {
this.setState({
unit_e_tip: "截止时间不能早于发布时间",
p_flag: true,
borredss:"bor-reds",
end_time:undefined,
deadline:undefined,
end_time:value.format('YYYY-MM-DD HH:mm'),
deadline:value.format('YYYY-MM-DD HH:mm'),
})
return
@ -1180,8 +1187,8 @@ class Trainingjobsetting extends Component {
// this.onChangedata('end_time', value, dateString);
if(this.state.allowreplenishment === "允许补交"){
this.setState({
end_time:moment(handleDateString(dateString)).add(1, 'months'),
deadline:moment(handleDateString(dateString)).add(1, 'months').format('YYYY-MM-DD HH:mm'),
end_time:moment(handleDateString(dateString)),
deadline:moment(handleDateString(dateString)).format('YYYY-MM-DD HH:mm'),
late_time:moment(handleDateString(dateString)).add(2, 'months'),
late_times:moment(handleDateString(dateString)).add(2, 'months').format('YYYY-MM-DD HH:mm'),
})
@ -1199,7 +1206,7 @@ class Trainingjobsetting extends Component {
})
return;
}
let{publish_time,unifiedsetting,rulesdata}=this.state;
let{publish_time,end_time,unifiedsetting,rulesdata}=this.state;
if(unifiedsetting===true){
if (moment(value, "YYYY-MM-DD HH:mm") <= moment(publish_time)) {
@ -1207,20 +1214,30 @@ class Trainingjobsetting extends Component {
hand__e_tip: "补交时间不能早于发布时间",
hand_flags: true,
handclass:"bor-reds",
late_times:undefined,
late_time:undefined,
late_times:value.format('YYYY-MM-DD HH:mm'),
late_time:value.format('YYYY-MM-DD HH:mm'),
})
} else {
}
else if (moment(value, "YYYY-MM-DD HH:mm") <= moment(end_time)) {
this.setState({
hand__e_tip: "补交时间不能早于截止时间",
hand_flags: true,
handclass:"bor-reds",
late_times: value.format('YYYY-MM-DD HH:mm'),
late_time:value.format('YYYY-MM-DD HH:mm'),
})
}
else {
try {
this.setState({
late_times: value.format('YYYY-MM-DD HH:mm'),
late_time:value.format('YYYY-MM-DD HH:mm'),
hand__e_tip: "",
hand_flags: false,
handclass:"",
})
this.onChangedata('late_time', value, dateString);
}catch (e) {
}
@ -1241,11 +1258,11 @@ class Trainingjobsetting extends Component {
}else{
this.setState({
late_times: value.format('YYYY-MM-DD HH:mm'),
late_time:value.format('YYYY-MM-DD HH:mm'),
hand__e_tip: "",
hand_flags: false,
handclass:undefined,
})
this.onChangedata('late_time', value, dateString);
}
}
@ -1622,6 +1639,19 @@ class Trainingjobsetting extends Component {
{this.props.isAdmin()?this.state.code_review===false?"": <Link
to={`/courses/${this.state.props.match.params.coursesId}/${this.state.shixuntypes}/${this.state.props.match.params.homeworkid}/student_work`}>代码查重</Link> : ""}
<style>{
`
.poll_list a.active:after {
content: '';
width: 57px;
left: 10px;
bottom: 0px;
height: 2px;
background-color: #4CACFF;
position: absolute;
}
`
}</style>
<Link className="active"
to={`/courses/${this.state.props.match.params.coursesId}/${this.state.shixuntypes}/${this.state.props.match.params.homeworkid}/settings`}
>设置</Link>
@ -1646,7 +1676,7 @@ class Trainingjobsetting extends Component {
<div className="stud-class-set bor-bottom-greyE edu-back-white">
<div className=" mt20 pl20">
<p className=" clearfix ">
<span className="font-16 fl "style={{"color":"#05101A"}}>发布设置 <span className="ml15 color-grey-9" style={{"font-size":"14px","text-align":"left"}}>(课堂管理员教师助教拥有设置权限)</span></span>
<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
@ -1714,7 +1744,6 @@ class Trainingjobsetting extends Component {
<DatePicker
showToday={false}
id={"end_timeid"}
disabledDate={this.disabledEndDateend}
disabledTime={disabledDateTime}
showTime={{ format: 'HH:mm' }}
className={borredss}
@ -1747,6 +1776,7 @@ class Trainingjobsetting extends Component {
>
<PollDetailTabForthRules
rules={rules}
moduleName={"作业"}
course_group={rulest}
flagPageEdit={flagPageEdit}
rulesCheckInfo={(info)=>this.rulesCheckInfo(info)}
@ -1795,7 +1825,6 @@ class Trainingjobsetting extends Component {
<DatePicker
showToday={false}
id={"late_timeid"}
disabledDate={this.disabledEndDateendd}
disabledTime={disabledDateTime}
format="YYYY-MM-DD HH:mm"
value={late_time && moment(late_time, dataformat)}
@ -1841,7 +1870,7 @@ class Trainingjobsetting extends Component {
<RadioGroup className="ml60 mt20" onChange={this.onChangeslevel} value={this.state.level}>
<Radio style={radioStyle} disabled={!flagPageEdit} className="c_grey" value={"扣分"}>按查看答案级别扣分<span
className="color-grey-9 font-14 ml15" style={{"text-align":"left"}}>(根据学员选择查看的实训答案级别(解题思路完整答案)扣减相应的分值)</span></Radio>
className="color-grey-9 font-14 ml15" style={{"text-align":"left"}}>根据学员选择查看的实训答案级别(解题思路完整答案)扣减相应的分值</span></Radio>
<Radio style={radioStyle} disabled={!flagPageEdit} className="c_grey mt15"
value={"满分"}>不扣分 </Radio>
</RadioGroup>
@ -1855,7 +1884,7 @@ class Trainingjobsetting extends Component {
checked={this.state.completionefficiencyscore} style={{"color":"#666666"}}>效率分<span
className={"font-14 color-grey-9 font-14 ml15"} style={{"text-align":"left"}}>(选中则学生最终成绩包含效率分)</span></Checkbox>
</div>
<div className="ml80 mt20">
<div className="ml80 mt30">
<span className="c_grey mr10" style={{"color":"#999999"}}>分值</span>
<InputNumber min={0} disabled={!flagPageEdit} max={100} className="ml10 h40 mr10 color-grey-9"
style={{width: "100px","color":"#999999"}}
@ -1902,7 +1931,7 @@ class Trainingjobsetting extends Component {
</div>
</div>
{/*公开设置*/}
<div className="stud-class-set bor-bottom-greyE bor-top-greyE edu-back-white mt35 ">
<div className="stud-class-set bor-top-greyE edu-back-white mt35 pb5 ">
<div className=" clearfix edu-back-white poll_list mt20">
<div className={"font-16 color-dark fl pl20 "} style={{"color":"#05101A"}}>公开设置</div>
</div>
@ -1914,7 +1943,6 @@ class Trainingjobsetting extends Component {
</div>
</div>

@ -427,7 +427,7 @@ class Workquestionandanswer extends Component {
</div>
</div>
{jobsettingsdata === undefined|| jobsettingsdata.data.description===null? "" : <div className=" clearfix edu-back-white poll_list mt20 mr20 ">
{jobsettingsdata === undefined|| jobsettingsdata.data.description===null? "" : <div className=" clearfix edu-back-white poll_list mt20 mr20 ">
<span>
<div className={"font-16 color-dark fl pl20 "}>
<div dangerouslySetInnerHTML={{__html: markdownToHTML(jobsettingsdata.data.description).replace(/▁/g,"▁▁▁")}}></div>
@ -466,8 +466,8 @@ class Workquestionandanswer extends Component {
<span>
<div className="font-16 color-dark break_word flex1 pl20 " style={{"padding":"10px 10px 10px 20px"}}>
{jobsettingsdata === undefined ? "" : jobsettingsdata === null ? "" : jobsettingsdata === "null" ? "" :
jobsettingsdata.data.explanation=== undefined?"" :jobsettingsdata.data.explanation=== null?"":
{jobsettingsdata === undefined ? "" : jobsettingsdata === null ? "" : jobsettingsdata === "null" ? "" :
jobsettingsdata.data.explanation=== undefined?"" :jobsettingsdata.data.explanation=== null?"":
<div dangerouslySetInnerHTML={{__html:markdownToHTML(jobsettingsdata.data.explanation).replace(/▁/g,"▁▁▁")}}></div>
}
</div>

@ -77,9 +77,9 @@ class Trialapplication extends Component {
//TODO 这里如果样式变了会出现css不加载的情况
});
console.log(this.props.isRenders);
console.log("89");
console.log(this.state.props.user_phone_binded );
// console.log(this.props.isRenders);
// console.log("89");
// console.log(this.state.props.user_phone_binded );
try {
if (this.state.props.user_phone_binded !== undefined) {
console.log(this.state.props.user_phone_binded);

@ -1,5 +1,8 @@
import React, { Component } from 'react';
import MonacoEditor from 'react-monaco-editor';
//MonacoDiffEditor 对比模式
import {Input, Select, Radio, Checkbox, Popconfirm, message, Modal,Icon,DatePicker} from 'antd';
// import "antd/dist/antd.css";
@ -222,7 +225,8 @@ export default class TPMsettings extends Component {
pod_exist_time: undefined,
pod_exist_timetype: false,
shixunmemoMDvalue:""
shixunmemoMDvalue:"",
language:""
}
}
descriptionMD=(initValue, id)=> {
@ -894,6 +898,7 @@ export default class TPMsettings extends Component {
SelectScput = (value, e) => {
this.setState({
choice_standard_scriptssum: value,
language:e.props.name,
choice_standard_scripts: {id:e.props.value,value:""},
standard_scriptsModal:true
})
@ -1003,11 +1008,15 @@ export default class TPMsettings extends Component {
})
}
getshixunmemoMDvalue=(e)=>{
getshixunmemoMDvalue=(value, e)=>{
this.setState({
shixunmemoMDvalue:e.target.value
shixunmemoMDvalue:value
})
}
render() {
let {
postapplyvisible,
@ -1376,9 +1385,20 @@ export default class TPMsettings extends Component {
<div className="flex1">
<div className="fl " id="shixunmemoMD" >
<textarea className={"shixunmemoMDdiv"} value={shixunmemoMDvalue} onInput={this.getshixunmemoMDvalue} name="content">
</textarea>
<div className="fl " >
{/*<textarea className={"shixunmemoMDdiv"} value={shixunmemoMDvalue} onInput={this.getshixunmemoMDvalue} name="content">*/}
{/*</textarea>*/}
<MonacoEditor
height="450"
width="1100"
language={this.state.language}
value={shixunmemoMDvalue}
options={ {
selectOnLineNumbers: true
}}
onChange={operateauthority===true?this.getshixunmemoMDvalue:""}
/>
</div>

@ -75,13 +75,22 @@ a.newuse_scope-btn {
width:98% !important;
height: 620px !important;
}
#shixunmemoMDs{
width: 98% !important;
height: 420px !important;
}
#shixunmemoMDs .CodeMirror {
/* width: 548px !important; */
margin-top: 31px !important;
height: 402px !important;
}
.pdr20{
padding-right:20px;
}
.nonemodel{
width: 30%;
height: 624px;
width: 59%;
height: 468px;
/*background: rgba(0, 0, 0, 0.65);*/
background: #f5f5f5;
position: absolute;

@ -61,6 +61,7 @@ h4{ font-size:14px;}/*color:#3b3b3b;*/
.lh24{line-height:24px;}
.lh26{line-height:26px;}
.lh27{line-height:27px;}
.lh38{line-height: 38px !important;}
.fmYh{font-family:"微软雅黑";}
.font999{ color:#999;}
.fontRed{color:#770000;}

Loading…
Cancel
Save