Merge remote-tracking branch 'origin/master'

dev_forum
杨树明 6 years ago
commit 0ad94943af

@ -10,6 +10,17 @@ export function getImageUrl(path) {
return `/${path}`;
}
export function setImagesUrl(path){
const local = 'http://47.96.87.25:48080'
let firstStr=path.substr(0,1);
console.log(firstStr);
if(firstStr=="/"){
return isDev?`${local}${path}`:`${path}`;
}else{
return isDev?`${local}/${path}`:`/${path}`;
}
}
export function getUrl(path, goTest) {
// https://www.educoder.net
// https://testbdweb.trustie.net

@ -2,7 +2,7 @@ import { from } from '_array-flatten@2.1.2@array-flatten';
// export { default as OrderStateUtil } from '../routes/Order/components/OrderStateUtil';
export { getImageUrl as getImageUrl, getUrl as getUrl, getUploadActionUrl as getUploadActionUrl } from './UrlTool';
export { getImageUrl as getImageUrl, getUrl as getUrl,setImagesUrl as setImagesUrl, getUploadActionUrl as getUploadActionUrl } from './UrlTool';
export { default as queryString } from './UrlTool2';
export { SnackbarHOC as SnackbarHOC } from './SnackbarHOC';

@ -545,8 +545,8 @@ class CommonWorkSetting extends Component{
let temp_publish_time
let temp_end_time
if (unified_setting) {
let temp_publish_time = publish_time
let temp_end_time = end_time
temp_publish_time = publish_time
temp_end_time = end_time
if (!temp_publish_time) {
const publish_time_moment = getNextHalfHourOfMoment(moment());
temp_publish_time = publish_time_moment.format(dateFormat);

@ -279,6 +279,7 @@ class Testpapersettinghomepage extends Component{
checkBoxValues={[parseInt(this.props.match.params.Id)]}
Exercisetype={"exercise"}
action={this.Commonheadofthetestpaper}
single={true}
></ImmediatelyEnd>:"":""}
{isAdmin === true?Commonheadofthetestpaper!==undefined&&Commonheadofthetestpaper.user_permission.exercise_unpublish_count>0? <ImmediatelyPublish
{...this.props}
@ -287,6 +288,7 @@ class Testpapersettinghomepage extends Component{
checkBoxValues={[parseInt(this.props.match.params.Id)]}
Exercisetype={"exercise"}
action={this.Commonheadofthetestpaper}
single={true}
></ImmediatelyPublish>
:"":""}
{isAdmin === true? <Link className="fr color-blue font-16 mt20 mr20" to={`/courses/${this.props.match.params.coursesId}/exercises/${this.props.match.params.Id}/edit`}>编辑试卷</Link>:""}

@ -163,13 +163,13 @@ class GraduationTasksappraise extends Component{
<div className={"educontent mb20"}>
<p className="clearfix mt10">
<WordsBtn style="grey" className="fl"> <Link to={"/courses/"+courseId} className="color-grey-6">{datalist&&datalist.course_name}</Link></WordsBtn>
<Link to={"/courses/"+courseId} className="color-grey-9 fl">{datalist&&datalist.course_name}</Link>
<span className="color-grey-9 fl ml3 mr3">&gt;</span>
<WordsBtn style="grey" className="fl"> <Link to={"/courses/"+courseId+"/graduation_tasks/"+graduation_id} className="color-grey-6">{datalist&&datalist.graduation_name}</Link></WordsBtn>
<Link to={"/courses/"+courseId+"/graduation_tasks/"+graduation_id} className="color-grey-9 fl">{datalist&&datalist.graduation_name}</Link>
<span className="color-grey-9 fl ml3 mr3">&gt;</span>
<WordsBtn style="grey" className="fl"> <Link to={"/courses/"+courseId+"/graduation_tasks/"+graduation_id+"/"+task_id+"/list"} className="color-grey-6">任务详情</Link></WordsBtn>
<Link to={"/courses/"+courseId+"/graduation_tasks/"+graduation_id+"/"+task_id+"/list"} className="color-grey-9 fl">任务详情</Link>
<span className="color-grey-9 fl ml3 mr3">&gt;</span>
<WordsBtn style="grey" className="fl"> <span className="color-grey-6">{datalist&&datalist.author_name}</span></WordsBtn>
<span className="color-grey-6 fl">{datalist&&datalist.author_name}</span>
</p>
@ -195,16 +195,16 @@ class GraduationTasksappraise extends Component{
</div>
<div className=" edu-back-white " style={{"padding": "20px 15px 20px 15px","box-sizing": "border-box"}}>
<div className="edu-back-white">
<div className={"stud-class-set edu-back-white"} style={{ padding: '0px 10px 20px 10px'}}>
<div className={"stud-class-set edu-back-white padding20-30"}>
<div className={"color-grey-6 h20 mb20"}>
内容
</div>
<div className={"ml20"}>
<div dangerouslySetInnerHTML={{__html: markdownToHTML(datalist&&datalist.description===null?"--":datalist&&datalist.description).replace(/▁/g,"▁▁▁")}}></div>
<div className="markdown-body" dangerouslySetInnerHTML={{__html: markdownToHTML(datalist&&datalist.description===null?"--":datalist&&datalist.description).replace(/▁/g,"▁▁▁")}}></div>
</div>
{/*<div className={"color-grey-6 h20 ml20"}>*/}
@ -213,7 +213,7 @@ class GraduationTasksappraise extends Component{
{/*<span className={"mr10 color9B9B"}>15M</span>*/}
{/*</div>*/}
{datalist&&datalist.attachments.map((item,key)=>{
{datalist&& datalist.attachments && datalist.attachments.map((item,key)=>{
return(
<div className="color-grey" key={key}>
<a className="color-grey ml20">
@ -238,7 +238,7 @@ class GraduationTasksappraise extends Component{
{/*<span className={"color9B9B fr"}>*/}
{/*{moment(datalist&&datalist.update_time).format('YYYY-MM-DD HH:mm:ss')==="Invalid date"?"":moment(datalist&&datalist.update_time).format('YYYY-MM-DD HH:mm:ss')}*/}
{/*</span>*/}
<span className={"color9B9B fr mr30"}>提交</span>
<span className={"color9B9B fr"}>提交</span>
<span className={"fr font-13 mr10 ml10"}>{datalist&&datalist.author_name}</span>
<span className={" color9B9B fr"}>
{moment(datalist&&datalist.commit_time).format('YYYY-MM-DD HH:mm:ss')==="Invalid date"?"":moment(datalist&&datalist.commit_time).format('YYYY-MM-DD HH:mm:ss')}
@ -248,12 +248,11 @@ class GraduationTasksappraise extends Component{
</div>
{firelistdata===undefined?"":firelistdata.length===0?"":firelistdata.revise_attachments.length===0?"":<div className={"stud-class-set bor-bottom-greyE pd20 edu-back-white"}>
{firelistdata===undefined?"":firelistdata.length===0?"":firelistdata.revise_attachments.length===0?"":
<div className={"stud-class-set bor-top-greyE padding20-30 edu-back-white"}>
<div className={"color-grey-6 mb10 bor-top-greyE"}>
补交附件
</div>
<div className={"ml20"}>
补交原因{firelistdata&&firelistdata.revise_reason}
</div>
@ -291,28 +290,23 @@ class GraduationTasksappraise extends Component{
</div>}
{datalist&&datalist.project_info===undefined?"":<div className={"stud-class-set bor-bottom-greyE pd20 edu-back-white"}>
{datalist&&datalist.project_info===undefined?"":
<div className={"stud-class-set edu-back-white padding20-30 bor-top-greyE"}>
<div className={"color-grey-6 mb10"}>
关联项目
</div>
<div className={"ml20"}>
{datalist&&datalist.project_info.name}
</div>
</div>}
{/*{*/}
{ datalist === undefined?"":datalist&&datalist.task_type===undefined?"" :datalist.task_type===1? "":
<div className={"stud-class-set pd20 edu-back-white mb10"} style={{height:"100%"}}>
{ datalist === undefined?"": datalist && datalist.task_type===undefined ?"" : datalist.task_type===1? "": datalist && datalist.work_members && datalist.work_members.length == 0 ?"":
<div className={"stud-class-set edu-back-white padding20-30 bor-top-greyE"} style={{height:"100%"}}>
<div className={"color-grey-6 mb10"}>
其他组员
</div>
<div className={"both"}></div>
{datalist&&datalist.work_members&&datalist.work_members.map((item,key)=>{
{datalist.work_members.map((item,key)=>{
return(
<div className={"fl mr20 ml20"} key={key} id={item.user_id}>
{item.user_name}
@ -322,8 +316,6 @@ class GraduationTasksappraise extends Component{
<div className={"both"}></div>
</div>
}
</div>

@ -216,7 +216,7 @@ class GraduationTasksedit extends Component{
if ( response.data.status === 0) {
this.setState({
Modalstype:true,
Modalstype:false,
Modalstopval:response.data.message,
ModalSave:this.cancelAttachment,
Loadtype:true,

@ -1010,10 +1010,10 @@ class GraduationTaskssettingapp extends Component{
<div className={"educontent mb20"}>
<p className="clearfix mt10">
<WordsBtn style="grey" className="fl"> <Link to={"/courses/"+courseId+"/students"} className="color-grey-6">{coursename}</Link></WordsBtn>
<span className="color-grey-c fl ml3 mr3">&gt;</span>
<WordsBtn style="grey" className="fl"> <Link to={"/courses/"+courseId+"/graduation_tasks/"+settingdata.graduation_id} className="color-grey-6">毕设任务</Link></WordsBtn>
<span className="color-grey-c fl ml3 mr3">&gt;</span>
<Link to={"/courses/"+courseId+"/students"} className="color-grey-9 fl">{coursename}</Link>
<span className="color-grey-9 fl ml3 mr3">&gt;</span>
<Link to={"/courses/"+courseId+"/graduation_tasks/"+settingdata.graduation_id} className="color-grey-9 fl">毕设任务</Link>
<span className="color-grey-9 fl ml3 mr3">&gt;</span>
{/*{taskname===""?"":*/}
{/*<WordsBtn style="grey" className="fl">*/}
@ -1022,18 +1022,17 @@ class GraduationTaskssettingapp extends Component{
{/*</WordsBtn>*/}
{/*}*/}
<span>任务详情</span>
<span className="color-grey-6">任务详情</span>
</p>
<div style={{ width:'100%',height:'75px'}} >
<p className=" fl color-black mt25 summaryname">
<div className="clearfix mt20 mb20 lineh-25">
<p className=" fl color-black lineh-25 summaryname">
<Link to={"/courses/"+courseId+"/graduation"+"/graduation_tasks/"}>{taskname}</Link>
</p>
<CoursesListType
typelist={task_status}
typesylename={"mt22"}
/>
<a className="color-grey-6 fr font-16 ml30 mt10 mr20" onClick={this.goback}>返回</a>
<a className="color-grey-6 fr font-16 ml30 mr20" onClick={this.goback}>返回</a>
</div>

@ -1361,11 +1361,11 @@ class GraduationTaskssettinglist extends Component{
<div className={"educontent mb20"}>
<p className="clearfix mt10">
<WordsBtn style="grey" className="fl"> <Link to={"/courses/"+courseId+"/students"}>{taskslistdata.course_name}</Link></WordsBtn>
<Link className="color-grey-9 fl" to={"/courses/"+courseId+"/students"}>{taskslistdata.course_name}</Link>
<span className="color-grey-9 fl ml3 mr3">&gt;</span>
<WordsBtn style="grey" className="fl"> <Link to={"/courses/"+courseId+"/graduation_tasks/"+taskslistdata.graduation_id} className="color-grey-6">{taskslistdata.graduation_name}</Link></WordsBtn>
<Link className="color-grey-9 fl" to={"/courses/"+courseId+"/graduation_tasks/"+taskslistdata.graduation_id}>{taskslistdata.graduation_name}</Link>
<span className="color-grey-9 fl ml3 mr3">&gt;</span>
<span>任务详情</span>
<span className="color-grey-6 fl">任务详情</span>
</p>
<div className="clearfix lineh-25 mt20 mb20">

@ -243,29 +243,21 @@ class GraduationTasksquestions extends Component{
<div className={"educontent mb20"}>
<p className="clearfix mt10">
<WordsBtn style="grey" className="fl"> <Link to={"/courses/"+courseId+"/students"} className="color-grey-6">{questionslist.course_name}</Link></WordsBtn>
<Link to={"/courses/"+courseId+"/students"} className="color-grey-9 fl">{questionslist.course_name}</Link>
<span className="color-grey-9 fl ml3 mr3">&gt;</span>
<WordsBtn style="grey" className="fl"> <Link to={"/courses/"+courseId+"/graduation_tasks/"+questionslist.graduation_id} className="color-grey-6">{questionslist.graduation_name}</Link></WordsBtn>
<Link to={"/courses/"+courseId+"/graduation_tasks/"+questionslist.graduation_id} className="color-grey-9 fl">{questionslist.graduation_name}</Link>
<span className="color-grey-9 fl ml3 mr3">&gt;</span>
{/*<WordsBtn style="grey" className="fl">*/}
{/*<Link to={"/courses/"+courseId+"/graduation/graduation_tasks/"+category_id} className="color-grey-6">{questionslist.task_name}</Link>*/}
{/*<span className="color-grey-9 ml3 mr3">&gt;</span>*/}
{/*</WordsBtn>*/}
<span>任务详情</span>
<span className="color-grey-6">任务详情</span>
</p>
<div style={{ width:'100%'}} >
<p className=" fl color-black mt25 summaryname">
<div className="clearfix mt20 mb20 lineh-25">
<p className=" fl color-black summaryname">
<Link to={"/courses/"+courseId+"/graduation_tasks/"+category_id} className="color-grey-6">{questionslist.task_name}</Link>
</p>
<CoursesListType
typelist={questionslist.task_status}
typesylename={"mt22"}
/>
<a className="color-grey-6 fr font-16 ml30 mt10 mr20" onClick={this.goback}>返回</a>
<a className="color-grey-6 fr font-16 ml30 mr20" onClick={this.goback}>返回</a>
</div>

@ -36,7 +36,7 @@ class Graduationtaskitem extends Component{
</a>
<span className="t_area fl">{item.time}</span>
{/* 分数 */}
<span className="score_area fl">{item.score}</span>
{item.score && <span className="score_area fl">{item.score}</span>}
{ !item.is_invalid && item.delete && <Tooltip title={ "删除" } >
<i className="iconfont icon-shanchu mr5 fr" style={{marginLeft: '6px'}}

@ -19,7 +19,8 @@ class AddStudentModal extends Component{
hasMore: true,
loading: false,
courseGroup: '',
page: 1
page: 1,
isSpin:false
}
}
fetchMemberList = (arg_page) => {
@ -92,6 +93,9 @@ class AddStudentModal extends Component{
}
onSendOk = () => {
this.setState({
isSpin:true
})
if(!this.state.checkBoxValues || this.state.checkBoxValues.length == 0) {
this.props.showNotification('请从列表中先选择用户。')
return;
@ -111,6 +115,9 @@ class AddStudentModal extends Component{
this.setVisible(false)
this.props.showNotification('添加成功')
this.props.addStudentSuccess && this.props.addStudentSuccess(params)
this.setState({
isSpin:false
})
}
})
.catch(function (error) {
@ -142,7 +149,7 @@ class AddStudentModal extends Component{
}
render(){
const { users, checkBoxValues, loading, hasMore, name, school_name
, courseGroup, course_groups, } = this.state
, courseGroup, course_groups,isSpin } = this.state
const { moduleName } = this.props
return(
<ModalWrapper
@ -184,9 +191,9 @@ class AddStudentModal extends Component{
`}
</style>
<div className="df">
<span className="firstLabel label">姓名:</span>
<span className="mr10">姓名:</span>
<Input allowClear placeholder="请输入真实姓名" value={name} onChange={(e) => {this.setState({name: e.target.value})}}
style={{ width: '200px'}}
style={{ width: '242px'}}
></Input>
<span className="label" style={{ minWidth: '36px' }}>单位:</span>
{/* <Input allowClear placeholder="" value={school_name} onChange={(e) => {this.setState({school_name: e.target.value})}}
@ -202,8 +209,8 @@ class AddStudentModal extends Component{
</div>
{/* <Divider /> */}
{course_groups && course_groups.length && <div className="df" style={{ marginTop: '24px' }} >
<span className="firstLabel label">分班:</span>
<Select style={{ width: 457 }} onChange={this.handleCourseGroupChange} value={courseGroup}>
<span className="mr10">分班:</span>
<Select style={{ width:500 }} onChange={this.handleCourseGroupChange} value={courseGroup}>
{ course_groups.map((item) => {
return <Option value={item.id}>{item.name}</Option>
})}
@ -217,6 +224,7 @@ class AddStudentModal extends Component{
<span className="fl with45"><label className="task-hide fl" style={{"maxWidth":"208px;"}}>{'单位'}</label></span>
</p>
<Spin size="large" spinning={isSpin}>
{ users && users.length ? <div>
{/* https://github.com/CassetteRocks/react-infinite-scroller/issues/70 */}
<div className="edu-back-skyblue padding10-15" style={{"height":"300px", overflowY: "scroll", overflowAnchor: 'none' }}>
@ -259,6 +267,7 @@ class AddStudentModal extends Component{
</InfiniteScroll>
</div>
</div> : <NoneData></NoneData> }
</Spin>
</ModalWrapper>
)
}

@ -40,6 +40,15 @@ const buildColumns = (that) => {
render: (id, student, index) => {
return (that.state.page - 1) * 20 + index + 1
}
}, {
title: '用户id',
dataIndex: 'login',
key: 'login',
align:'center',
className:"color-grey-6",
// render: (name, record) => {
// return <a className="color-dark" target="_blank" href={`/users/${record.login}`}>{name}</a>
// }
}, {
title: '姓名',
dataIndex: 'name',
@ -316,6 +325,7 @@ class studentsList extends Component{
}).then((result)=>{
if (result.data.status == 0) {
this.props.showNotification('移动成功')
this.setState({checkBoxValues: []})
this.fetchAll()
this.props.updataleftNavfun()

@ -38,6 +38,10 @@ function buildColumns(that) {
render: (content, item, index) => {
return <a href="javascript:;">{(that.state.page - 1) * 20 + index + 1}</a>
}
},{
title: '用户ID',
dataIndex: 'login',
key: 'login'
}, {
title: '姓名',
dataIndex: 'name',
@ -122,6 +126,7 @@ function buildColumns(that) {
columns.push({
title: '操作',
key: 'action',
align:'center',
render: (text, record) => {
if (record.application_id) {
return (

@ -118,6 +118,7 @@ class PollDetailIndex extends Component{
className={"font-16"}
checkBoxValues={[this.props.match.params.pollId]}
action={this.getPollInfo}
single={true}
></ImmediatelyPublish>
</li>
:""
@ -133,6 +134,7 @@ class PollDetailIndex extends Component{
className={"font-16"}
checkBoxValues={[this.props.match.params.pollId]}
action={this.getPollInfo}
single={true}
></ImmediatelyEnd>
</li>
:""

@ -63,16 +63,17 @@ class PollDetailTabSecond extends Component{
return(
<div className="edu-back-white mb10">
<div className="pt20 pl30 pr30 pb10">
<span className="font-16">
<span className="mr20 color-grey-6">{parseInt(page-1)*parseInt(limit)+(key+1)}:
<span className="color-grey-9">({map[item.question.question_type]})</span></span>
<span className="color-grey-9">
<span className="font-16 clearfix">
<span className="color-blue fl">{parseInt(page-1)*parseInt(limit)+(key+1)}{map[item.question.question_type]}</span>
{ item.question.is_necessary==1 ? <span className="mustAnswer fl ml10 mr10 mt6">必答</span>:"" }
{ item.question.question_type == 2 ?
<span className="color-grey-9">
{
item.question.min_choices == item.question.max_choices ? "可选"+item.question.max_choices+"项" :
"可选"+item.question.min_choices+"-"+item.question.max_choices+"项"
:""
}
</span>
</span>:""
}
</span>
<p className="mt10 font-16">{item.question.question_title}</p>
</div>

@ -68,15 +68,17 @@ class PollDetailTabThird extends Component{
pollDetail && pollDetail.questions.map((item,key)=>{
return(
<div className="previewList">
<p className="pl30 pr30 pt30 pb15 font-16">
<span className="color-blue mr8">{map[item.question.question_type]}</span><span className="mr10"><span className="color-red">*</span>Q{item.question.question_number}</span>
<span className="color-grey-9">
<p className="pl30 pr30 pt30 pb15 font-16 clearfix">
<span className="color-blue mr8 fl">{item.question.question_number}{map[item.question.question_type]}</span>
{ item.question.is_necessary==1 ? <span className="mustAnswer fl ml10 mr10">必答</span>:"" }
{ item.question.question_type == 2 ?
<span className="color-grey-9">
{
item.question.min_choices == item.question.max_choices ? "可选"+item.question.max_choices+"项" :
"可选"+item.question.min_choices+"-"+item.question.max_choices+"项"
:""
}
</span>
</span>:""
}
</p>
<li className="pl30 pr30 pb15">{item.question.question_title}</li>
{

@ -72,7 +72,7 @@ class ImmediatelyEnd extends Component{
visible:true,
Topval:"学生将不能再提交试卷",
// Botvalleft:"暂不截止",
Botval:`本操作只对"提交中"的分班有效`,
Botval:this.props.single ?`本操作只对"提交中"的分班有效`:"",
// starttime:"发布时间:"+getNowFormatDate(1),
// endtime:"截止时间:"+getNowFormatDate(2),
Cancelname:"暂不截止",
@ -114,7 +114,7 @@ class ImmediatelyEnd extends Component{
visible:true,
Topval:"学生将不能再提交问卷",
// Botvalleft:"暂不截止",
Botval:`本操作只对"提交中"的分班有效`,
Botval:this.props.single ?`本操作只对"提交中"的分班有效`:"",
// starttime:"发布时间:"+getNowFormatDate(1),
// endtime:"截止时间:"+getNowFormatDate(2),
Cancelname:"暂不截止",

@ -80,7 +80,7 @@ class Immediatelypublish extends Component{
visible:true,
Topval:"学生将立即收到试卷",
// Botvalleft:"暂不发布",
Botval:`本操作只对"未发布"的分班有效`,
Botval:this.props.single ? "":`本操作只对"未发布"的分班有效`,
starttime:"发布时间:"+moment(moment(new Date())).format("YYYY-MM-DD HH:mm"),
starttimes:this.props.getNowFormatDates(1),
endtime:"截止时间:"+this.props.getNowFormatDates(2),
@ -119,7 +119,7 @@ class Immediatelypublish extends Component{
visible:true,
Topval:"学生将立即收到问卷",
// Botvalleft:"暂不发布",
Botval:`本操作只对"未发布"的分班有效`,
Botval:this.props.single ? "":`本操作只对"未发布"的分班有效`,
starttime:"发布时间:"+moment(moment(new Date())).format("YYYY-MM-DD HH:mm"),
starttimes:this.props.getNowFormatDates(1),
endtime:"截止时间:"+this.props.getNowFormatDates(2),

@ -91,6 +91,7 @@ class Listofworks extends Component {
unlimited: 0,
unlimitedtwo: 1,
code_review: false,
boolgalist:false,
columns: [
{
title: '序号',
@ -778,7 +779,7 @@ class Listofworks extends Component {
// console.log(JSON.stringify(result))
let datalist = [];
var game_list = result.data.game_list
var boolgalist=false;
for (var i = 0; i < game_list.length; i++) {
datalist.push({
@ -789,6 +790,10 @@ class Listofworks extends Component {
complete_status: game_list[i].complete_status,
})
if(game_list[i].complete_status === 1){
boolgalist=true;
}
}
// console.log("viewtraining");
// console.log(datalist);
@ -796,7 +801,8 @@ class Listofworks extends Component {
this.setState({
viewtrainingdata: result.data,
visibles: true,
game_list: datalist
game_list: datalist,
boolgalist:boolgalist,
})
}
}).catch((error) => {
@ -1001,7 +1007,7 @@ class Listofworks extends Component {
render() {
// console.log("Listofworks.js000")
let {columns, page, limit, course_groupysls, course_groupyslstwo, unlimited, unlimitedtwo, loadingstate, viewtrainingdata, game_list, data, course_group_info, order, teacherdata, task_status, checkedValuesine, searchtext, teacherlist, visible, visibles, jobsettingsdata} = this.state;
let {columns, page, boolgalist,limit, course_groupysls, course_groupyslstwo, unlimited, unlimitedtwo, loadingstate, viewtrainingdata, game_list, data, course_group_info, order, teacherdata, task_status, checkedValuesine, searchtext, teacherlist, visible, visibles, jobsettingsdata} = this.state;
//
// console.log(teacherdata&&teacherdata.shixun_identifier)
// console.log(course_group_info)
@ -1045,6 +1051,7 @@ class Listofworks extends Component {
viewtrainingdata={viewtrainingdata}
game_list={game_list}
visible={visibles}
boolgalist={boolgalist}
Cancel={() => this.cancelModulationModels()}
/>
@ -1080,12 +1087,12 @@ class Listofworks extends Component {
<span className="color-grey-9 fl ml3 mr3">&gt;</span>
<ActionBtn
className=" btn colorgrey fl hovercolorblue "
to={`/courses/${this.props.match.params.coursesId}/${this.state.shixuntypes}/${jobsettingsdata === undefined ? "" : jobsettingsdata.data.category.category_id}`}>{jobsettingsdata === undefined ? "" : jobsettingsdata.data.category.category_name}</ActionBtn>
to={`/courses/${this.props.match.params.coursesId}/${this.state.shixuntypes}/${jobsettingsdata === undefined ? "" : jobsettingsdata.data.category.category_id===undefined?"":jobsettingsdata.data.category.category_id}`}>{jobsettingsdata === undefined ? "" : jobsettingsdata.data.category.category_name}</ActionBtn>
<span className="color-grey-9 fl ml3 mr3">&gt;</span>
<WordsBtn className="fl">作业详情</WordsBtn>
</p>
</div>
<div className="educontent mb30">
<div className="educontent mb30" style={{width:"1250px"}}>
<p className=" fl color-black summaryname">
{teacherdata === undefined ? "" : teacherdata.homework_name}
</p>
@ -1101,7 +1108,7 @@ class Listofworks extends Component {
</div>
<div className="edu-back-white">
<div className="edu-back-white" style={{width:"1250px"}}>
<div className="stud-class-set bor-bottom-greyE ">
<div className=" clearfix edu-back-white poll_list">
<Link className="active"
@ -1164,7 +1171,7 @@ class Listofworks extends Component {
</CheckboxGroup>
{/*请输入姓名或学号搜索*/}
<div className="fr mr5 search-new" style={{marginBottom: '1px'}}>
<div className="fr mr5 search-newysl" style={{marginBottom: '1px'}}>
<Search
placeholder="请输入姓名或学号搜索"
id="subject_search_input"

@ -688,7 +688,7 @@ class Listofworksstudentone extends Component {
<WordsBtn className="fl">作业详情</WordsBtn>
</p>
</div>
<div className="educontent mb30">
<div className="educontent mb30" style={{width:"1250px"}}>
<p className=" fl color-black summaryname">
{teacherdata === undefined ? "" : teacherdata.homework_name}
</p>
@ -696,11 +696,11 @@ class Listofworksstudentone extends Component {
typelist={teacherdata === undefined ? [""] : teacherdata.homework_status}
/>
<a className="color-grey-9 fr font-16 summaryname ml20 mr20"
href={`/courses/${this.state.props.match.params.coursesId}/${this.state.shixuntypes}/${jobsettingsdata === undefined ? "" :jobsettingsdata.data.category.category_id}`}>返回</a>
href={`/courses/${this.state.props.match.params.coursesId}/${this.state.shixuntypes}/${jobsettingsdata === undefined ? "" :jobsettingsdata.data.category.category_id===undefined?"":jobsettingsdata.data.category.category_id}`}>返回</a>
<p className="color-grey-9 fr font-16"></p>
</div>
<div className="edu-back-white">
<div className="edu-back-white" style={{width:"1250px"}}>
<div className="stud-class-set bor-bottom-greyE ">
<div className=" clearfix edu-back-white poll_list">
<Link className="active"

@ -36,7 +36,7 @@ class TraineetraininginformationModal extends Component {
props: this.props,
userids: this.props.userids,
game_list:this.props.game_list,
gline:0,
boolgalist:this.props.boolgalist,
})
// console.log("TraineetraininginformationModal")
@ -51,17 +51,22 @@ class TraineetraininginformationModal extends Component {
// this.seacthdata();
}
// 设置数据
// seacthdata = () => {
//
// console.log(datalist)
// }
LimitNumber=(txt)=> {
var str = txt;
if(str.length>25){
str = str.substring(0,25)+"......"
}
return str;
}
render() {
const columns = [
var columns;
if(this.props.boolgalist === true) {
columns = [
{
title: '关卡',
dataIndex: 'number',
key: 'number',
width: 92,
align: "center",
render: (text, record) => (
<span>
@ -77,7 +82,24 @@ class TraineetraininginformationModal extends Component {
align: "center",
render: (text, record) => (
<span>
<a style={{"color":'#989898', "text-align": "center"}} >{record.name==='Invalid date'?"--":record.name}</a>
<a style={{
"color": '#989898',
"text-align": "center"
}}>{record.name === 'Invalid date' ? "--" : record.name}</a>
</span>
),
},
{
title: '',
dataIndex: 'complete_status',
key: 'complete_status',
width: 100,
align: "center",
render: (text, record) => (
<span>
{record.complete_status === 2 ? <img src={delay}/> : record.complete_status === 3 ?
<img src={invalid}/> : ""}
</span>
),
},
@ -85,6 +107,7 @@ class TraineetraininginformationModal extends Component {
title: '耗时',
dataIndex: 'stduynumber',
key: 'stduynumber',
width: 92,
align: "center",
render: (text, record) => (
<span>
@ -95,6 +118,7 @@ class TraineetraininginformationModal extends Component {
{
title: '经验值',
key: 'classroom',
width: 92,
dataIndex: 'classroom',
align: "center",
render: (text, record) => (
@ -103,13 +127,14 @@ class TraineetraininginformationModal extends Component {
</span>
),
}
];
const columnss = [
]
}
else {
columns = [
{
title: '关卡',
dataIndex: 'number',
key: 'number',
width: 92,
align: "center",
render: (text, record) => (
<span >
@ -128,25 +153,11 @@ class TraineetraininginformationModal extends Component {
<a style={{"color":'#989898', "text-align": "center"}} >{record.name==='Invalid date'?"--":record.name}</a>
</span>
),
},
{
title: '',
dataIndex: 'complete_status',
key: 'complete_status',
width: 100,
align: "center",
render: (text, record) => (
<span>
{record.complete_status===2?<img src={delay}/>:record.complete_status===3?<img src={invalid}/>:""}
</span>
),
},
{
title: '耗时',
dataIndex: 'stduynumber',
key: 'stduynumber',
width: 92,
align: "center",
render: (text, record) => (
<span>
@ -157,7 +168,6 @@ class TraineetraininginformationModal extends Component {
{
title: '经验值',
key: 'classroom',
width: 92,
dataIndex: 'classroom',
align: "center",
render: (text, record) => (
@ -166,8 +176,8 @@ class TraineetraininginformationModal extends Component {
</span>
),
}
];
]
}
return (
<div>
<Modal
@ -181,7 +191,7 @@ class TraineetraininginformationModal extends Component {
<div style={{width:"100%" }}className="login_register_content" >
<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 style={{"text-align": "left"}}>{this.props.viewtrainingdata === undefined ? "" : this.LimitNumber(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>*/}

@ -2,6 +2,7 @@
.educontent {
margin-bottom: 20px;
}
/* 左侧区域最小高度*/
#forum_index_list {
min-height: 400px;

@ -8,6 +8,11 @@
height: 30px;
margin-bottom: 30px;
margin-right: 35px;
}
.search-newysl {
width:237px!important;
height: 30px;
margin-bottom: 30px;
}
.search-new-input {
padding-left: 16px;

@ -319,7 +319,7 @@ class LoginDialog extends Component {
this.setState({
isRender: false
})
window.location.href="/";
// window.location.href="/";
}
loginEDU=()=>{

@ -32,6 +32,7 @@ class Trialapplication extends Component {
readonlyInput: true,
user_phone_binded: false,
showTrial: false,
user: undefined,
}
//user_phone_binded 判断是否手机号验证
// console.log("Trialapplication");
@ -43,15 +44,32 @@ class Trialapplication extends Component {
}
componentWillReceiveProps(nextProps) {
// console.log("46");
// console.log(nextProps);
// console.log(this.props);
if (nextProps.user != this.props.user) {
// console.log("50");
// console.log(nextProps.user);
if (nextProps.user !== undefined) {
// console.log("53");
// console.log(nextProps.user);
this.setState({
user_phone_binded: nextProps.user.user_phone_binded,
})
}
}
}
//初始化数据
componentDidMount() {
console.log("53");
console.log(this.props.isRenders);
// console.log("53");
//
// console.log(this.props.isRenders);
if (this.props.isRenders != undefined) {
this.setState({
@ -77,21 +95,6 @@ class Trialapplication extends Component {
//TODO 这里如果样式变了会出现css不加载的情况
});
// 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);
this.setState({
user_phone_binded: this.state.props.user_phone_binded,
})
}
} catch (e) {
console.log(e);
}
}
@ -384,9 +387,6 @@ class Trialapplication extends Component {
<style>
{
`
// .dialogBox{
// height: 370px;
// }
.dialogBox2{
height: 420px;
}

@ -170,7 +170,6 @@ class NewHeader extends Component {
submitapplications:false,
isRender:false,
isRenders:false,
user_phone_binded:false,
showTrial:false,
}
// console.log("176")
@ -209,18 +208,18 @@ class NewHeader extends Component {
}
componentDidUpdate = (prevProps) => {
if(prevProps.user!=this.props.user){
// console.log("216")
// console.log(prevProps.user);
// console.log(this.props.user);
if(this.props.user !== undefined){
this.setState({
user_phone_binded :this.props.user.user_phone_binded,
})
}
}
// if(prevProps.user!=this.props.user){
// // console.log("216")
// // console.log(prevProps.user);
// // console.log(this.props.user);
// if(this.props.user !== undefined){
// this.setState({
// user_phone_binded :this.props.user.user_phone_binded,
// })
// }
//
//
// }
}
componentWillReceiveProps(newProps, oldProps) {
this.setState({
@ -581,7 +580,6 @@ submittojoinclass=(value)=>{
user,
isRender,
isRenders,
user_phone_binded,
}=this.state;
/*
用户名称 用户头像url
@ -627,7 +625,7 @@ submittojoinclass=(value)=>{
{/* />*/}
{/* :""*/}
{/*}*/}
<Trialapplication {...this.state} user_phone_binded={user_phone_binded} ></Trialapplication>
<Trialapplication {...this.state} ></Trialapplication>
<div className="educontent clearfix">
{/*<%= link_to image_tag("/images/educoder/logo.png", alt:"高校智能化教学与实训平台", className:"logoimg"), home_path %>*/}
<a href="/">

@ -9,7 +9,7 @@ import classNames from 'classnames';
// import { Rating,Loading} from '@icedesign/base';
import {getImageUrl, toPath} from 'educoder';
import {getImageUrl,setImagesUrl, toPath} from 'educoder';
// import { Pagination,Row,Col } from 'antd';
@ -94,7 +94,7 @@ class ShixunCard extends Component {
item.tag_name === null ? "":
<div className="tag-green">
<span className="tag-name"> {item.tag_name}</span>
<img style={{display:item.tag_name===null?"none":'block',height: '28px'}} src={require(`./shixunCss/tag2.png`)}/>
<img style={{display:'block',height: '28px'}} src={require(`./shixunCss/tag2.png`)}/>
</div>
}
<div className={item.power === false ? "closeSquare" : "none"}>
@ -105,7 +105,7 @@ class ShixunCard extends Component {
<a href={"/shixuns/"+item.identifier+"/challenges"} target="_blank" className="square-img">
{/*<img src={getImageUrl("images/"+item.pic+"?1540534846")}/>*/}
<img src={item.pic}/>
<img src={setImagesUrl(`${item.pic}`)}/>
</a>
<div className="square-main">

@ -6,7 +6,7 @@ import Loadable from 'react-loadable';
import Loading from '../../../Loading';
import NoneData from '../../courses/coursesPublic/NoneData'
import axios from 'axios';
import {getImageUrl} from 'educoder';
import {getImageUrl,setImagesUrl} from 'educoder';
import { TPMIndexHOC } from '../../tpm/TPMIndexHOC';
import { CNotificationHOC } from '../../courses/common/CNotificationHOC'
import "./usersInfo.css"
@ -168,10 +168,10 @@ class InfosShixun extends Component{
return(
<div className="square-Item" onClick={()=>this.turnToCourses(`/shixuns/${item.identifier}/challenges`)}>
{
item.tag && <div className="tag-green"><span className="tag-name">{item.tag}</span><img src={getImageUrl("/images/educoder/tag2.png")}/></div>
item.tag && <div className="tag-green"><span className="tag-name">{item.tag}</span><img className="fl" src={setImagesUrl("images/educoder/tag2.png")}/></div>
}
<a href="javascript:void(0)" className="square-img">
<img alt="Shixun6" src={`${item.image_url}`}/>
<img src={setImagesUrl(`${item.image_url}`)}/>
</a>
<div className="square-main">
<p className="task-hide">

@ -782,3 +782,4 @@ html>body #ajax-indicator { position: fixed; }
.editormd-dialog-footer{
padding: 0px;
}
.educontentysl{width: 1250px;margin:0px auto;box-sizing: border-box}/*中间部分宽度固定为1200*/

Loading…
Cancel
Save