From 302e92d7b5999258a0646baba0acc03ae76a74bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Wed, 10 Jul 2019 10:26:03 +0800 Subject: [PATCH 01/60] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shixunHomework/Listofworksstudentone.js | 12 +++-- .../shixunHomework/Trainingjobsetting.js | 44 +++++++++---------- 2 files changed, 30 insertions(+), 26 deletions(-) diff --git a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js index 99d2e3c0a..33b90083b 100644 --- a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js +++ b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js @@ -550,6 +550,8 @@ class Listofworksstudentone extends Component { } } + // console.log("554"); + // console.log(columns2); this.setState({ @@ -577,7 +579,7 @@ class Listofworksstudentone extends Component { } } - else if(this.props.isNotMember()===true&&item.title==="学号") { + if(this.props.isNotMember()===true&&item.title==="学号") { }else{ arr.push(item); @@ -640,6 +642,8 @@ class Listofworksstudentone extends Component { } // console.log("datalistdatalist文件"); // console.log(datalist); + // console.log("645"); + // console.log(columns2); this.setState({ data: datalist, teacherlist: teacherlist, @@ -835,7 +839,9 @@ class Listofworksstudentone extends Component { } render() { let {visibles, game_list,columns, limit,experience, boolgalist,viewtrainingdata, teacherdata, page, data, jobsettingsdata, styletable, datas, order, loadingstate,computeTimetype} = this.state; - + // console.log(this.state.data); + // console.log("841"); + // console.log(this.state.columns); return ( teacherdata === undefined || teacherdata.student_works === undefined || teacherdata.student_works === null || JSON.stringify(teacherdata.student_works) === "[]" ? // 学生不能查看别人的 @@ -1018,7 +1024,7 @@ class Listofworksstudentone extends Component { } `}
- {data === undefined ? "" : { - // console.log("640"); // console.log(this.state.end_time); - if(e.target.value ==="允许补交"){ + if(e.target.checked ===true){ if(this.state.end_time !== null && this.state.end_time!== undefined){ // console.log(this.state.end_time); // var times = this.state.deadline.format('YYYY-MM-DD HH:mm'); @@ -665,16 +660,19 @@ class Trainingjobsetting extends Component { this.setState({ - allowreplenishment: e.target.value, + allowreplenishment: e.target.checked, latededuction:5, whethertopay:true, }) }else { this.setState({ - allowreplenishment: e.target.value, + allowreplenishment: e.target.checked, latededuction:0, whethertopay:false, + hand__e_tip: "", + hand_flags: false, + handclass:"", }) } @@ -1239,7 +1237,7 @@ class Trainingjobsetting extends Component { this.setState({ publish_time:moment(handleDateString(dateString)) }) - if(this.state.allowreplenishment === "允许补交") { + if(this.state.allowreplenishment === true) { this.setState({ end_time:moment(handleDateString(dateString)).add(1, 'months'), deadline:moment(handleDateString(dateString)).add(1, 'months').format('YYYY-MM-DD HH:mm'), @@ -1303,7 +1301,7 @@ class Trainingjobsetting extends Component { end_time:moment(handleDateString(dateString)) }) // this.onChangedata('end_time', value, dateString); - if(this.state.allowreplenishment === "允许补交"){ + if(this.state.allowreplenishment === true){ this.setState({ deadline:moment(handleDateString(dateString)).format('YYYY-MM-DD HH:mm'), late_time:moment(handleDateString(dateString)).add(2, 'months'), @@ -1580,7 +1578,7 @@ class Trainingjobsetting extends Component { if(moment(this.state.late_time,"YYYY-MM-DD HH:mm")<=moment()){ endtime=false; } - if(this.state.allowreplenishment === "禁止补交"){ + if(this.state.allowreplenishment === false){ whethertopays=false; } this.setState({ @@ -1985,11 +1983,11 @@ class Trainingjobsetting extends Component {
补交设置
- - - 允许补交 (选中,则允许学生延时提交作品) + {/*value={this.state.allowreplenishment}*/} +
+ 开启补交 (选中,则允许学生延时提交作品)
迟交扣分: @@ -2049,8 +2047,8 @@ class Trainingjobsetting extends Component { }

- 禁止补交 - + {/*禁止补交*/} +
{/*评分设置*/} From a43235538258394e8976b925c10ace3b2c23eb0b Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Wed, 10 Jul 2019 11:01:03 +0800 Subject: [PATCH 02/60] resize --- public/react/src/modules/page/MainContent.js | 2 +- public/react/src/modules/page/VNCDisplay.js | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/public/react/src/modules/page/MainContent.js b/public/react/src/modules/page/MainContent.js index c3d6b1384..c03d49351 100644 --- a/public/react/src/modules/page/MainContent.js +++ b/public/react/src/modules/page/MainContent.js @@ -75,7 +75,7 @@ class MainContent extends Component { {/* 左侧任务说明等功能的区域 */} -
+ {showIframeContent && vnc_url &&
}
- 取消 + 取消
diff --git a/public/react/src/modules/courses/shixunHomework/Listofworks.js b/public/react/src/modules/courses/shixunHomework/Listofworks.js index d9abecd72..62583642c 100644 --- a/public/react/src/modules/courses/shixunHomework/Listofworks.js +++ b/public/react/src/modules/courses/shixunHomework/Listofworks.js @@ -596,6 +596,8 @@ class Listofworks extends Component { } componentDidMount() { + console.log("Listofworks"); + console.log("componentDidMount"); var homeworkid = this.props.match.params.homeworkid; // console.log(homeworkid) // this.Gettitleinformation(homeworkid); @@ -655,6 +657,7 @@ class Listofworks extends Component { code_review: result.data.code_review, challenges_count:result.data.challenges_count, }) + this.props.Getdataback(result,result.data); this.seacthdata(result.data,result.data.student_works,result.data.work_efficiency,result.data.course_group_info,1); } } }).catch((error) => { @@ -714,6 +717,7 @@ class Listofworks extends Component { code_review: result.data.code_review, challenges_count:result.data.challenges_count, }) + this.props.Getdataback(result,result.data); this.seacthdata(result.data,result.data.student_works,result.data.work_efficiency,result.data.course_group_info,page); } } @@ -1362,6 +1366,10 @@ class Listofworks extends Component { DownloadMessageval:undefined }) } + + ChangeTab=(e)=>{ + this.props.ChangeTab(e); + } render() { // console.log("Listofworks.js000") @@ -1371,7 +1379,7 @@ class Listofworks extends Component { // console.log(course_group_info) // console.log(JSON.stringify(this.props)); return ( -
+
{visible === true ?
-
-

- {jobsettingsdata === undefined ? "" : jobsettingsdata.data.course_name} - > - {jobsettingsdata === undefined ? "" : jobsettingsdata.data.category.category_name} - > - 作业详情 -

-
-
-

- {teacherdata === undefined ? "" : teacherdata.homework_name} -

- - 返回 - 实训详情 - - -
- 作品列表 - 作业问答 + this.ChangeTab(0)}>作品列表 + this.ChangeTab(1)}>作业问答 {this.props.isAdmin() ? - this.state.code_review === true ||jobsettingsdata === undefined ? [""] : jobsettingsdata.data.homework_status[0]==="未发布"? "" : - 代码查重 : ""} - 设置 + onClick={(e)=>this.ChangeTab(2)}> + 代码查重 : ""} + this.ChangeTab(3)} + >设置 {/*{this.props.isAdmin() ? :""} {this.props.isAdmin() ? teacherdata && teacherdata.end_immediately === true ? - 立即截止 : "" + 立即截止 + : "" : ""} {this.props.isAdmin() ? teacherdata && teacherdata.publish_immediately === true ? - 立即发布 : "" + 立即发布 + : "" : ""} - {/*提交总结*/} - {this.props.isAdmin() ? - this.state.code_review === false ? - "" - : 代码查重 : ""} + teacherdata && teacherdata.code_review === true ? + 代码查重 + : "": ""}
@@ -1754,4 +1733,32 @@ class Listofworks extends Component { } } -export default Listofworks; \ No newline at end of file +export default Listofworks; + +{/*
*/} +{/*

*/} +{/* {jobsettingsdata === undefined ? "" : jobsettingsdata.data.course_name}*/} +{/* >*/} +{/* {jobsettingsdata === undefined ? "" : jobsettingsdata.data.category.category_name}*/} +{/* >*/} +{/* 作业详情*/} +{/*

*/} +{/*
*/} +{/*
*/} +{/*

*/} +{/*{teacherdata === undefined ? "" : teacherdata.homework_name}*/} +{/*

*/} +{/**/} +{/*返回*/} +{/*实训详情*/} + + +{/*
*/} diff --git a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js index 7985293ae..ef3051aaf 100644 --- a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js +++ b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js @@ -177,13 +177,13 @@ class Listofworksstudentone extends Component { className:'font-14', render: (text, record) => ( - {record.submitstate === undefined ? "--" : record.submitstate === "" ? "--" : record.submitstate === null ? "--" : record.submitstate} + {record.submitstate === undefined ? "--" : record.submitstate === "" ? "--" : record.submitstate === null ? "--" : record.submitstate} ), @@ -316,7 +316,8 @@ class Listofworksstudentone extends Component { } componentDidMount() { - + console.log("Listofworksstudentone"); + console.log("componentDidMount"); var homeworkid = this.props.match.params.homeworkid; this.Getalistofworks(homeworkid); let query = this.props.location.pathname; @@ -347,7 +348,9 @@ class Listofworksstudentone extends Component { course_group: "", } axios.post(urll, data).then((result) => { - + if(result === undefined){ + return + } if (result.status === 200) { if(this.props.isNotMember()===false) { this.setState({ @@ -364,7 +367,8 @@ class Listofworksstudentone extends Component { challenges_count: result.data.challenges_count, view_report: result.data.view_report, }) - if (result.data.student_works === undefined || result.data.student_works === null || JSON.stringify(result.data.student_works) === "[]") { + this.props.Getdataback(result,result.data); + if (result.data.student_works === undefined || result.data.student_works === null || JSON.stringify(result.data.student_works) === "[]") { this.seacthdata(result.data); } else { this.seacthdatas(result.data, result.data.student_works); @@ -421,6 +425,7 @@ class Listofworksstudentone extends Component { challenges_count:result.data.challenges_count, view_report:result.data.view_report, }) + this.props.Getdataback(result,result.data); if (result.data.student_works === undefined || result.data.student_works === null || JSON.stringify(result.data.student_works) === "[]") { this.seacthdata(result.data); } else { @@ -785,7 +790,8 @@ class Listofworksstudentone extends Component { challenges_count:result.data.challenges_count, view_report:result.data.view_report, }) - this.seacthdata(result.data); + this.props.Getdataback(result,result.data); + this.seacthdata(result.data); } } }).catch((error) => { @@ -837,6 +843,9 @@ class Listofworksstudentone extends Component { }); } + ChangeTab=(e)=>{ + this.props.ChangeTab(e); + } render() { let {visibles, game_list,columns, limit,experience, boolgalist,viewtrainingdata, teacherdata, page, data, jobsettingsdata, styletable, datas, order, loadingstate,computeTimetype} = this.state; // console.log(this.state.data); @@ -845,7 +854,7 @@ class Listofworksstudentone extends Component { return ( teacherdata === undefined || teacherdata.student_works === undefined || teacherdata.student_works === null || JSON.stringify(teacherdata.student_works) === "[]" ? // 学生不能查看别人的 -
+
- 设置 - {/**/} - {/*查看实训报告*/} - {/**/} + this.ChangeTab(3)} + >设置 - {this.props.isAdmin()?
  • - 导出 - -
  • :""} - {this.props.isAdmin() ? - teacherdata && teacherdata.end_immediately === true ? - 立即截止 - : "" - : ""} - {this.props.isAdmin() ? - teacherdata && teacherdata.publish_immediately === true ? - 立即发布 - : "" - : ""} - {this.props.isAdmin() ? - teacherdata && teacherdata.code_review === true ? - 代码查重 - : "": ""} -
    -
    +// {this.props.isAdmin()?
  • +// 导出 +// +//
  • :""} +// {this.props.isAdmin() ? +// teacherdata && teacherdata.end_immediately === true ? +// 立即截止 +// : "" +// : ""} +// {this.props.isAdmin() ? +// teacherdata && teacherdata.publish_immediately === true ? +// 立即发布 +// : "" +// : ""} +// {this.props.isAdmin() ? +// teacherdata && teacherdata.code_review === true ? +// 代码查重 +// : "": ""} +{/*
    */} +{/*
    */} diff --git a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js index daa36f86f..d93029025 100644 --- a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js +++ b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js @@ -922,32 +922,9 @@ class Listofworksstudentone extends Component { : "" } -
    +
    -
    -
    - this.ChangeTab(0)}>作品列表 - this.ChangeTab(1)}>作业问答 - this.ChangeTab(3)} - >设置 - {this.state.view_report===true? - 查看实训报告 - :""} - {/*查看实训报告*/} - { - teacherdata === undefined ? "" - : teacherdata.commit_des === null || teacherdata.commit_des === undefined ? "" : - {teacherdata.commit_des} - } - {teacherdata === undefined ? "" : } -
    -
    + {computeTimetype===false?
  • @@ -1076,27 +1053,7 @@ class Listofworksstudentone extends Component {
  • -
    -
    - this.ChangeTab(0)}>作品列表 - this.ChangeTab(1)}>作业问答 - this.ChangeTab(3)}>设置 - {this.state.view_report===true? - 查看实训报告 - :""} - { - teacherdata === undefined ? "" - : teacherdata.commit_des === null || teacherdata.commit_des === undefined ? "" : - {teacherdata.commit_des} - } - {teacherdata === undefined ? "" : } -
    -
    + {computeTimetype===false?
  • @@ -1267,4 +1224,49 @@ class Listofworksstudentone extends Component { } } -export default Listofworksstudentone; \ No newline at end of file +export default Listofworksstudentone; +{/*
    */} +{/*
    */} +{/* this.ChangeTab(0)}>作品列表*/} +{/* this.ChangeTab(1)}>作业问答*/} +{/* this.ChangeTab(3)}*/} +{/* >设置*/} +{/* {this.state.view_report===true?*/} +{/* 查看实训报告*/} +{/* :""}*/} +{/* /!*查看实训报告*!/*/} +{/* {*/} +{/* teacherdata === undefined ? ""*/} +{/* : teacherdata.commit_des === null || teacherdata.commit_des === undefined ? "" :*/} +{/* {teacherdata.commit_des}*/} +{/* }*/} +{/* {teacherdata === undefined ? "" : }*/} +{/*
    */} +{/*
    */} +{/*
    */} +{/*
    */} +{/* this.ChangeTab(0)}>作品列表*/} +{/* this.ChangeTab(1)}>作业问答*/} +{/* this.ChangeTab(3)}>设置*/} +{/* {this.state.view_report===true?*/} +{/* 查看实训报告*/} +{/* :""}*/} +{/* {*/} +{/* teacherdata === undefined ? ""*/} +{/* : teacherdata.commit_des === null || teacherdata.commit_des === undefined ? "" :*/} +{/* {teacherdata.commit_des}*/} +{/* }*/} +{/* {teacherdata === undefined ? "" : }*/} +{/*
    */} +{/*
    */} \ No newline at end of file diff --git a/public/react/src/modules/courses/shixunHomework/ShixunHomeworkPage.js b/public/react/src/modules/courses/shixunHomework/ShixunHomeworkPage.js index beba69898..621893141 100644 --- a/public/react/src/modules/courses/shixunHomework/ShixunHomeworkPage.js +++ b/public/react/src/modules/courses/shixunHomework/ShixunHomeworkPage.js @@ -1,6 +1,6 @@ -import React,{ Component } from "react"; -import {Link,NavLink} from 'react-router-dom'; -import { WordsBtn ,ActionBtn} from 'educoder'; +import React, {Component} from "react"; +import {Link, NavLink} from 'react-router-dom'; +import {WordsBtn, ActionBtn} from 'educoder'; import axios from 'axios'; import '../css/members.css'; import "../common/formCommon.css"; @@ -14,39 +14,55 @@ import Trainingjobsetting from './Trainingjobsetting' import Workquestionandanswer from './Workquestionandanswer' import CoursesListType from '../coursesPublic/CoursesListType'; import ShixunStudentWork from "./ShixunStudentWork"; +import Startshixuntask from "../coursesPublic/Startshixuntask"; class ShixunHomeworkPage extends Component { constructor(props) { super(props); - this.state={ - tab:["0"], - jobsettingsdata:undefined, - teacherdata:undefined, + this.state = { + tab: ["0"], + jobsettingsdata: undefined, + teacherdata: undefined, + code_review: false, + view_report: false, } } + //切换tab - ChangeTab=(e)=>{ - console.log(e); + ChangeTab = (e) => { + // console.log(e); this.setState({ - tab:e + tab: e }) + try { + var currenturl = window.location.href; + var newUrl = (currenturl.split("?"))[0]; + window.history.pushState('','',newUrl+'?tab='+e); + }catch (e) { + console.log(e); + console.log("44"); + } + } - Getdataback = (jobsettingsdata,teacherdata)=>{ - this.setState({ - jobsettingsdata:jobsettingsdata, - teacherdata:teacherdata, - }) + Getdataback = (jobsettingsdata, teacherdata) => { + this.setState({ + jobsettingsdata: jobsettingsdata, + teacherdata: teacherdata, + code_review: teacherdata.code_review, + view_report: teacherdata.view_report, + }) } + componentDidMount() { - const query =this.props.location.search; + const query = this.props.location.search; const type = query.split('?tab='); // let sum = [] // sum.push(type[1]) // console.log("componentDidMountcomponentDidMount"); console.log(type); this.setState({ - tab:type[1], + tab: type[1], }) let querys = this.props.location.pathname; const types = querys.split('/'); @@ -57,11 +73,11 @@ class ShixunHomeworkPage extends Component { } render() { - let {tab,jobsettingsdata,teacherdata}=this.state; - const isAdmin =this.props.isAdmin(); + let {tab, jobsettingsdata, teacherdata} = this.state; + const isAdmin = this.props.isAdmin(); return ( -
    -
    +
    +

    @@ -70,20 +86,20 @@ class ShixunHomeworkPage extends Component { > {jobsettingsdata === undefined ? "" : jobsettingsdata.data.category.category_name} + 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} > 作业详情

    -

    +

    {teacherdata === undefined ? "" : teacherdata.homework_name}

    返回 + href={`/courses/${this.props.match.params.coursesId}/${this.state.shixuntypes}/${jobsettingsdata === undefined ? "" : jobsettingsdata.data.category.category_id === undefined ? "" : jobsettingsdata.data.category.category_id}`}>返回 实训详情 @@ -91,21 +107,126 @@ class ShixunHomeworkPage extends Component {
    +
    +
    +
    + this.ChangeTab(0)}>作品列表 + this.ChangeTab(1)}>作业问答 + {this.props.isAdmin() ? + this.state.code_review === true || jobsettingsdata === undefined ? [""] : jobsettingsdata.data.homework_status[0] === "未发布" ? "" : + this.ChangeTab(2)}> + 代码查重 : ""} + {parseInt(tab) === 3? + + :""} + this.ChangeTab(3)} + >设置 + {/*{this.props.isAdmin() ? 导出 : ""}*/} + + {this.props.isAdmin() ? +
  • + 导出 + +
  • : ""} + {this.props.isAdmin() ? + teacherdata && teacherdata.end_immediately === true ? + 立即截止 + : "" + : ""} + {this.props.isAdmin() ? + teacherdata && teacherdata.publish_immediately === true ? + 立即发布 + : "" + : ""} + {this.props.isAdmin() ? + teacherdata && teacherdata.code_review === true ? + 代码查重 + : "" : ""} + {this.state.view_report === true ? + 查看实训报告 + : ""} + { + teacherdata === undefined ? "" + : teacherdata.commit_des === null || teacherdata.commit_des === undefined ? "" : + {teacherdata.commit_des} + } + {teacherdata === undefined ? "" : } +
    +
    +
    + + + { + // 教师列表 + parseInt(tab) === 0 ? (isAdmin === true ? + this.ChangeTab(e)} + Getdataback={(jobsettingsdata, teacherdata) => this.Getdataback(jobsettingsdata, teacherdata)}> : - this.ChangeTab(e)} Getdataback={(jobsettingsdata,teacherdata)=>this.Getdataback(jobsettingsdata,teacherdata)} >) + this.ChangeTab(e)} + Getdataback={(jobsettingsdata, teacherdata) => this.Getdataback(jobsettingsdata, teacherdata)}>) : - parseInt(tab)===1 ?this.ChangeTab(e)} Getdataback={(jobsettingsdata,teacherdata)=>this.Getdataback(jobsettingsdata,teacherdata)} > + parseInt(tab) === 1 ? + this.ChangeTab(e)} + Getdataback={(jobsettingsdata, teacherdata) => this.Getdataback(jobsettingsdata, teacherdata)}> : - parseInt(tab)===2? this.ChangeTab(e)} Getdataback={(jobsettingsdata,teacherdata)=>this.Getdataback(jobsettingsdata,teacherdata)} > + parseInt(tab) === 2 ? + this.ChangeTab(e)} + Getdataback={(jobsettingsdata, teacherdata) => this.Getdataback(jobsettingsdata, teacherdata)}> : - this.ChangeTab(e)} Getdataback={(jobsettingsdata,teacherdata)=>this.Getdataback(jobsettingsdata,teacherdata)} > - } -
    + this.ChangeTab(e)} + Getdataback={(jobsettingsdata, teacherdata) => this.Getdataback(jobsettingsdata, teacherdata)}> + } +
    ) } @@ -135,9 +256,9 @@ export default ShixunHomeworkPage; // // // -{/* */} - - +{/* */ +} -{/**/} \ No newline at end of file +{/**/ +} \ No newline at end of file diff --git a/public/react/src/modules/courses/shixunHomework/ShixunStudentWork.js b/public/react/src/modules/courses/shixunHomework/ShixunStudentWork.js index 5725df969..cbf963457 100644 --- a/public/react/src/modules/courses/shixunHomework/ShixunStudentWork.js +++ b/public/react/src/modules/courses/shixunHomework/ShixunStudentWork.js @@ -625,63 +625,10 @@ class ShixunStudentWork extends Component { starttimes={this.state.starttimes} typs={this.state.typs} /> -
    +
    -
    -
    - this.ChangeTab(0)}>作品列表 - this.ChangeTab(1)}>作业问答 - {this.props.isAdmin()?this.ChangeTab(2)}>代码查重:""} - this.ChangeTab(3)}>设置 - - {this.props.isAdmin() ?
  • - 导出 - -
  • : ""} - {this.props.isAdmin()? - data&&data.end_immediately===true? - 立即截止 - :"": ""} - {this.props.isAdmin()? - data&&data.publish_immediately===true? - 立即发布 : "": ""} - { - jobsettingsdata&& jobsettingsdata.data === undefined ? "" - : jobsettingsdata&& jobsettingsdata.data.commit_des === null || jobsettingsdata&& jobsettingsdata.data.commit_des === undefined ? "" : - { jobsettingsdata&& jobsettingsdata.data.commit_des} - } - { jobsettingsdata&&jobsettingsdata.data === undefined ? "" : } -
    -
    + +// {this.props.isAdmin() ?
  • +// 导出 +// +//
  • : ""} +// {this.props.isAdmin()? +// data&&data.end_immediately===true? +// 立即截止 +// :"": ""} +// {this.props.isAdmin()? +// data&&data.publish_immediately===true? +// 立即发布 : "": ""} +// { +// jobsettingsdata&& jobsettingsdata.data === undefined ? "" +// : jobsettingsdata&& jobsettingsdata.data.commit_des === null || jobsettingsdata&& jobsettingsdata.data.commit_des === undefined ? "" : +// { jobsettingsdata&& jobsettingsdata.data.commit_des} +// } +// { jobsettingsdata&&jobsettingsdata.data === undefined ? "" : } +{/*
    */} +{/*
    */} \ No newline at end of file diff --git a/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js b/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js index a05c5373b..07135d76b 100644 --- a/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js +++ b/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js @@ -1807,87 +1807,17 @@ class Trainingjobsetting extends Component { loadtype={loadtype} modalSave={modalSave} > -
    -
    -
    -
    - this.ChangeTab(0)}>作品列表 - this.ChangeTab(1)}>作业问答 - {this.props.isAdmin()?this.state.code_review===true||jobsettingsdata === undefined ? [""] : jobsettingsdata.data.homework_status[0]==="未发布"?"": this.ChangeTab(2)}>代码查重 : ""} - - this.ChangeTab(3)} - >设置 - - {this.props.isAdmin() ?
  • - 导出 - -
  • : ""} - {this.props.isAdmin() ?jobsettingsdata&&jobsettingsdata.data.end_immediately===true? - 立即截止 - : "": ""} - {this.props.isAdmin() ?jobsettingsdata&&jobsettingsdata.data.publish_immediately===true? - 立即发布: "" : ""} - {this.props.isAdmin()? - jobsettingsdata&&jobsettingsdata.data.code_review===true? - 代码查重: "":""} - { - jobsettingsdata&& jobsettingsdata&&jobsettingsdata.data === undefined ? "" - : jobsettingsdata&& jobsettingsdata.data.commit_des === null || jobsettingsdata&& jobsettingsdata.data.commit_des === undefined ? "" : - { jobsettingsdata&& jobsettingsdata.data.commit_des} - } - { jobsettingsdata&&jobsettingsdata.data === undefined ? "" : } -
    -
    +
    +
    {/*发布设置*/}
    -
    +

    发布设置 { !flagPageEdit && this.props.isAdmin() === true ? - 编辑 + : "" }

    @@ -2233,4 +2163,74 @@ class Trainingjobsetting extends Component { } } -export default Trainingjobsetting; \ No newline at end of file +export default Trainingjobsetting; +//
    +//
    +// this.ChangeTab(0)}>作品列表 +// this.ChangeTab(1)}>作业问答 +// {this.props.isAdmin()?this.state.code_review===true||jobsettingsdata === undefined ? [""] : jobsettingsdata.data.homework_status[0]==="未发布"?"": this.ChangeTab(2)}>代码查重 : ""} +// +// this.ChangeTab(3)} +// >设置 +// +// {this.props.isAdmin() ?
  • +// 导出 +// +//
  • : ""} +// {this.props.isAdmin() ?jobsettingsdata&&jobsettingsdata.data.end_immediately===true? +// 立即截止 +// : "": ""} +// {this.props.isAdmin() ?jobsettingsdata&&jobsettingsdata.data.publish_immediately===true? +// 立即发布: "" : ""} +// {this.props.isAdmin()? +// jobsettingsdata&&jobsettingsdata.data.code_review===true? +// 代码查重: "":""} +// { +// jobsettingsdata&& jobsettingsdata&&jobsettingsdata.data === undefined ? "" +// : jobsettingsdata&& jobsettingsdata.data.commit_des === null || jobsettingsdata&& jobsettingsdata.data.commit_des === undefined ? "" : +// { jobsettingsdata&& jobsettingsdata.data.commit_des} +// } +// { jobsettingsdata&&jobsettingsdata.data === undefined ? "" : } +{/*
    */} +{/*
    */} diff --git a/public/react/src/modules/courses/shixunHomework/Workquestionandanswer.js b/public/react/src/modules/courses/shixunHomework/Workquestionandanswer.js index 0ac01e9dd..9602ad78c 100644 --- a/public/react/src/modules/courses/shixunHomework/Workquestionandanswer.js +++ b/public/react/src/modules/courses/shixunHomework/Workquestionandanswer.js @@ -405,83 +405,12 @@ class Workquestionandanswer extends Component { starttimes={this.state.starttimes} typs={this.state.typs} /> -
    -
    -
    -
    - this.ChangeTab(0)}>作品列表 - - this.ChangeTab(1)}>作业问答 - {this.props.isAdmin() ? - this.state.code_review === true || jobsettingsdata === undefined ? [""] : jobsettingsdata.data.homework_status[0] === "未发布" ? "" : - this.ChangeTab(2)}> - 代码查重 : ""} - - this.ChangeTab(3)} - >设置 - - {this.props.isAdmin() ? -
  • - 导出 - -
  • : ""} - - {this.props.isAdmin() ? jobsettingsdata && jobsettingsdata.data.end_immediately === true ? - 立即截止 - :"" - : ""} - {this.props.isAdmin() ? jobsettingsdata && jobsettingsdata.data.publish_immediately === true ? - 立即发布 - : "" - : ""} - - - {this.props.isAdmin() ? - jobsettingsdata && jobsettingsdata.data.code_review === true ? - 代码查重 - : "" : ""} - { - jobsettingsdata&& jobsettingsdata.data === undefined ? "" - : jobsettingsdata&& jobsettingsdata.data.commit_des === null || jobsettingsdata&& jobsettingsdata.data.commit_des === undefined ? "" : - { jobsettingsdata&& jobsettingsdata.data.commit_des} - } - { jobsettingsdata&&jobsettingsdata.data === undefined ? "" : } -
    -
    +
    +
    + {jobsettingsdata === undefined || jobsettingsdata.data.description === null ? "无" : -
    +
    */} +{/* {this.props.isAdmin() ?*/} +{/*
  • */} +{/* 导出*/} +{/* */} +{/*
  • : ""}*/} + +{/* {this.props.isAdmin() ? jobsettingsdata && jobsettingsdata.data.end_immediately === true ?*/} +{/* 立即截止*/} +{/* :""*/} +{/* : ""}*/} +{/* {this.props.isAdmin() ? jobsettingsdata && jobsettingsdata.data.publish_immediately === true ?*/} +{/* 立即发布*/} +{/* : ""*/} +{/* : ""}*/} + + +{/* {this.props.isAdmin() ?*/} +{/* jobsettingsdata && jobsettingsdata.data.code_review === true ?*/} +{/* 代码查重*/} +{/* : "" : ""}*/} +{/* {*/} +{/* jobsettingsdata&& jobsettingsdata.data === undefined ? ""*/} +{/* : jobsettingsdata&& jobsettingsdata.data.commit_des === null || jobsettingsdata&& jobsettingsdata.data.commit_des === undefined ? "" :*/} +{/* { jobsettingsdata&& jobsettingsdata.data.commit_des}*/} +{/* }*/} +{/* { jobsettingsdata&&jobsettingsdata.data === undefined ? "" : }*/} +{/*
    */} +{/*
    */} \ No newline at end of file From 8ca518c8731a787714e57678f5c519eea137e312 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Fri, 12 Jul 2019 14:29:21 +0800 Subject: [PATCH 25/60] b --- .../react/src/modules/courses/shixunHomework/Listofworks.js | 2 -- .../modules/courses/shixunHomework/Listofworksstudentone.js | 6 ++---- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/public/react/src/modules/courses/shixunHomework/Listofworks.js b/public/react/src/modules/courses/shixunHomework/Listofworks.js index fa7ffe693..92cfa4d8b 100644 --- a/public/react/src/modules/courses/shixunHomework/Listofworks.js +++ b/public/react/src/modules/courses/shixunHomework/Listofworks.js @@ -140,7 +140,6 @@ class Listofworks extends Component { dataIndex: 'classroom', align: 'center', className:'font-14', - width:"260px", render: (text, record) => ( {record.classroom} ) @@ -386,7 +385,6 @@ class Listofworks extends Component { dataIndex: 'classroom', align: 'center', className:'font-14', - width:"260px", render: (text, record) => ( {record.classroom} ) diff --git a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js index d93029025..4cb5aecea 100644 --- a/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js +++ b/public/react/src/modules/courses/shixunHomework/Listofworksstudentone.js @@ -939,8 +939,7 @@ class Listofworksstudentone extends Component {
    @@ -1076,8 +1075,7 @@ class Listofworksstudentone extends Component { {JSON.stringify(datas) !== "[]" ?
    From 9e2fbd39af5c5939724585bd9a3360eb2c4acd73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Fri, 12 Jul 2019 15:33:17 +0800 Subject: [PATCH 26/60] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/react/src/modules/courses/poll/pollStyle.css | 1 + .../src/modules/courses/shixunHomework/CommitSummary.js | 2 +- .../modules/courses/shixunHomework/Trainingjobsetting.js | 7 ++++--- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/public/react/src/modules/courses/poll/pollStyle.css b/public/react/src/modules/courses/poll/pollStyle.css index 624ea6532..1b60b2c7c 100644 --- a/public/react/src/modules/courses/poll/pollStyle.css +++ b/public/react/src/modules/courses/poll/pollStyle.css @@ -38,6 +38,7 @@ .problemShow:last-child{ border-bottom: none; } +.invite-tipysls{position: absolute;top: -8px;right: 140px;color: #fff; box-sizing: border-box;width: 170px;text-align: center;border-radius: 2px;background-color: rgba(5,16,26,0.6)} .yslinvitetip{display: block;border-width: 8px;position: absolute;top: 10px;right: -16px;border-style: dashed solid dashed dashed;border-color: transparent transparent transparent rgba(5,16,26,0.6);font-size: 0;line-height: 0;} .right-black-trangle{border-width: 8px;position: absolute;top: 10px;left: -16px;border-style: dashed solid dashed dashed;border-color: transparent transparent transparent rgba(5,16,26,0.6);font-size: 0;line-height: 0;} .right-black-trangles{border-width: 8px;position: absolute;top: 10px;left: -16px;border-style: dashed solid dashed dashed;border-color: transparent rgba(5,16,26,0.6) transparent transparent;font-size: 0;line-height: 0;} diff --git a/public/react/src/modules/courses/shixunHomework/CommitSummary.js b/public/react/src/modules/courses/shixunHomework/CommitSummary.js index 8e3097497..702546191 100644 --- a/public/react/src/modules/courses/shixunHomework/CommitSummary.js +++ b/public/react/src/modules/courses/shixunHomework/CommitSummary.js @@ -155,7 +155,7 @@ class CommitSummary extends Component{ className="mdInForm"> {getFieldDecorator('description', { rules: [{ - required: true, message: '请输入帖子内容', + required: true, message: '请在此输入总结内容,最多5000个字符', }, { max: 5000, message: '最大限制为5000个字符', }], diff --git a/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js b/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js index 07135d76b..3341889d8 100644 --- a/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js +++ b/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js @@ -2064,9 +2064,8 @@ class Trainingjobsetting extends Component { color:"#666666", }} disabled={!flagPageEdit} className="c_grey mt20 ml30" value={"自定义分值"} style={{"color":"#666666"}}>自定义分值 - this.testscripttip(0)}> {testscripttiptype===true? -
    +

    @@ -2087,7 +2086,9 @@ class Trainingjobsetting extends Component {

    :""} - + + this.testscripttip(0)}> +

    关卡名称(需要学生完成的任务请选中)

    From 1ea06b32406b2bca5358069cc45d838e7b4d1905 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Fri, 12 Jul 2019 15:37:42 +0800 Subject: [PATCH 27/60] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../courses/graduation/tasks/GraduationTaskssettinglist.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js index 9a574b655..bde46ff4b 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTaskssettinglist.js @@ -41,7 +41,7 @@ class GraduationTaskssettinglist extends Component{ cross_comment:null, search:null, order:"updated_at", - b_order:"asc", + b_order:"desc", course_group:undefined, loadingstate:true, operationId:null, From 32ea657e61ce79c0c8531e384eb9472e1ba1001a Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Fri, 12 Jul 2019 15:41:34 +0800 Subject: [PATCH 28/60] width: '600px' --- public/react/src/modules/courses/members/teacherList.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/react/src/modules/courses/members/teacherList.js b/public/react/src/modules/courses/members/teacherList.js index c6453b7e6..d2c495ddd 100644 --- a/public/react/src/modules/courses/members/teacherList.js +++ b/public/react/src/modules/courses/members/teacherList.js @@ -636,7 +636,7 @@ class studentsList extends Component{ } secondRowLeft={ - isAdminOrTeacher ?
    + isAdminOrTeacher ?
    已审批({total_count}) 待审批({apply_size}) From 0354f3eee2b0ee1eb3e9e34fce7f9054ee4de72d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Fri, 12 Jul 2019 15:57:56 +0800 Subject: [PATCH 29/60] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/courses/shixunHomework/Trainingjobsetting.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js b/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js index 3341889d8..2bfe2091e 100644 --- a/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js +++ b/public/react/src/modules/courses/shixunHomework/Trainingjobsetting.js @@ -2087,7 +2087,7 @@ class Trainingjobsetting extends Component { :""} - this.testscripttip(0)}> + this.testscripttip(0)}>

    关卡名称 Date: Fri, 12 Jul 2019 16:05:28 +0800 Subject: [PATCH 30/60] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modules/courses/shixunHomework/Homeworddescription.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/react/src/modules/courses/shixunHomework/Homeworddescription.js b/public/react/src/modules/courses/shixunHomework/Homeworddescription.js index 472d76d2c..df1f33ba8 100644 --- a/public/react/src/modules/courses/shixunHomework/Homeworddescription.js +++ b/public/react/src/modules/courses/shixunHomework/Homeworddescription.js @@ -89,7 +89,7 @@ class Homeworddescription extends Component { {/**/} -

    From b0e3bf1702bebe076dc5ccd9520f7bc250980aff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Fri, 12 Jul 2019 17:07:06 +0800 Subject: [PATCH 31/60] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/react/src/modules/courses/poll/pollStyle.css | 1 + public/react/src/modules/courses/shixunHomework/Listofworks.js | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/public/react/src/modules/courses/poll/pollStyle.css b/public/react/src/modules/courses/poll/pollStyle.css index 1b60b2c7c..360315e03 100644 --- a/public/react/src/modules/courses/poll/pollStyle.css +++ b/public/react/src/modules/courses/poll/pollStyle.css @@ -44,6 +44,7 @@ .right-black-trangles{border-width: 8px;position: absolute;top: 10px;left: -16px;border-style: dashed solid dashed dashed;border-color: transparent rgba(5,16,26,0.6) transparent transparent;font-size: 0;line-height: 0;} .top-black-trangle{border-width: 8px;position: absolute;top: -16px;right: 4px;border-style: dashed solid dashed dashed;border-color: transparent transparent rgba(5,16,26,0.6) transparent;font-size: 0;line-height: 0;} .invite-tipysl{color: #999999; box-sizing: border-box;text-align: center;border-radius: 2px;font-size: 14px} +.edu-position-hideysl li a:hover{ background:#F1F1F1; color:#05101A;} .to-back-left { width: 0; height: 0; diff --git a/public/react/src/modules/courses/shixunHomework/Listofworks.js b/public/react/src/modules/courses/shixunHomework/Listofworks.js index 92cfa4d8b..0892db098 100644 --- a/public/react/src/modules/courses/shixunHomework/Listofworks.js +++ b/public/react/src/modules/courses/shixunHomework/Listofworks.js @@ -1601,7 +1601,7 @@ class Listofworks extends Component { {order === "update_time" ? "时间" : order === "work_score" ? "成绩" : order === "student_id" ? "学号" : ""}排序 -
      +
      • this.funorder("update_time")} data-remote="true" className=" font-12" style={{"text-align": "center "}}>更新时间
      • this.funorder("work_score")} data-remote="true" className=" font-12" style={{"text-align": "center "}}>最终成绩
      • this.funorder("student_id")} data-remote="true" className=" font-12" style={{"text-align": "center "}}>学生学号
      • From 9d86b2a2eb74a8882805278c99c2d7bf73cf32dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Sat, 13 Jul 2019 10:32:04 +0800 Subject: [PATCH 32/60] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/courses/shixunHomework/Listofworks.js | 12 +++++++++++- .../courses/shixunHomework/ShixunHomeworkPage.js | 10 +++++----- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/public/react/src/modules/courses/shixunHomework/Listofworks.js b/public/react/src/modules/courses/shixunHomework/Listofworks.js index 0892db098..d92848219 100644 --- a/public/react/src/modules/courses/shixunHomework/Listofworks.js +++ b/public/react/src/modules/courses/shixunHomework/Listofworks.js @@ -29,6 +29,7 @@ import Associationmodel from '../coursesPublic/Associationmodel'; import '../css/members.css' import '../css/busyWork.css' import '../poll/pollStyle.css' +import './style.css'; import moment from 'moment'; import 'moment/locale/zh-cn'; import {getImageUrl, toPath} from 'educoder'; @@ -1595,13 +1596,22 @@ class Listofworks extends Component {
        {teacherdata === undefined ? "" : teacherdata.student_works.length}个检索结果({teacherdata === undefined ? "" : teacherdata.all_member_count}学生) +
        From 265d2a2004b75915d36cad8646b63e7ad98acd1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Sat, 13 Jul 2019 10:40:30 +0800 Subject: [PATCH 33/60] b --- .../src/modules/courses/shixunHomework/Workquestionandanswer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/react/src/modules/courses/shixunHomework/Workquestionandanswer.js b/public/react/src/modules/courses/shixunHomework/Workquestionandanswer.js index 9602ad78c..a63c25da5 100644 --- a/public/react/src/modules/courses/shixunHomework/Workquestionandanswer.js +++ b/public/react/src/modules/courses/shixunHomework/Workquestionandanswer.js @@ -409,7 +409,7 @@ class Workquestionandanswer extends Component {
        - {jobsettingsdata === undefined || jobsettingsdata.data.description === null ? "无" : + {jobsettingsdata === undefined || jobsettingsdata.data.description === null ?
        "无"
        :
        -
        +
        {/* /!*{}}>
        From 75bb78294a5e76b2521ede973e2b6b67c824cd6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Sat, 13 Jul 2019 15:07:25 +0800 Subject: [PATCH 37/60] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/react/src/AppConfig.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/react/src/AppConfig.js b/public/react/src/AppConfig.js index 335ab80fa..76497748c 100644 --- a/public/react/src/AppConfig.js +++ b/public/react/src/AppConfig.js @@ -145,7 +145,7 @@ export function initAxiosInterceptors(props) { } if (response.data.status === 402) { - locationurl(response.data.url); + locationurl('/account/basic'); } From ea6cfcc03cc2581f3a0d8b51446fc8e3b8a9d09d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Sat, 13 Jul 2019 15:10:17 +0800 Subject: [PATCH 38/60] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/react/src/AppConfig.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/react/src/AppConfig.js b/public/react/src/AppConfig.js index 76497748c..335ab80fa 100644 --- a/public/react/src/AppConfig.js +++ b/public/react/src/AppConfig.js @@ -145,7 +145,7 @@ export function initAxiosInterceptors(props) { } if (response.data.status === 402) { - locationurl('/account/basic'); + locationurl(response.data.url); } From 23dd85b8f6a6d52ae90381cc51f5641725a07a79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com> Date: Sat, 13 Jul 2019 15:31:39 +0800 Subject: [PATCH 39/60] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/react/src/App.js | 2 +- public/react/src/modules/tpm/NewHeader.js | 2 +- public/react/src/modules/user/AccountPage.js | 236 ++++++++--------- .../src/modules/user/account/AccountBasic.js | 238 +++++++++--------- .../src/modules/user/account/AccountNav.js | 136 +++++----- 5 files changed, 307 insertions(+), 307 deletions(-) diff --git a/public/react/src/App.js b/public/react/src/App.js index dfb8c89d0..dbd8e2c4c 100644 --- a/public/react/src/App.js +++ b/public/react/src/App.js @@ -274,7 +274,7 @@ class App extends Component { {/**/} {/*认证*/} - + {/*403*/} diff --git a/public/react/src/modules/tpm/NewHeader.js b/public/react/src/modules/tpm/NewHeader.js index e31603f3c..6890eeb74 100644 --- a/public/react/src/modules/tpm/NewHeader.js +++ b/public/react/src/modules/tpm/NewHeader.js @@ -754,7 +754,7 @@ submittojoinclass=(value)=>{
      • 我的实训
      • 我的实践课程
      • 我的项目
      • -
      • 账号管理
      • +
      • 账号管理
      • {/*
      • this.educoderlogin()} >登入测试接口
      • */} {/*
      • this.trialapplications()} >试用申请
      • */} {/*
      • 兴趣页
      • */} diff --git a/public/react/src/modules/user/AccountPage.js b/public/react/src/modules/user/AccountPage.js index c61eed4c4..87a5b3a9e 100644 --- a/public/react/src/modules/user/AccountPage.js +++ b/public/react/src/modules/user/AccountPage.js @@ -1,118 +1,118 @@ -import React, { Component } from 'react'; - -import { BrowserRouter as Router, Route, Link, Switch } from "react-router-dom"; -import {CNotificationHOC} from '../courses/common/CNotificationHOC' -import Loading from '../../Loading'; - -import Loadable from 'react-loadable'; - -import { TPMIndexHOC } from '../tpm/TPMIndexHOC'; - -import { SnackbarHOC, getImageUrl } from 'educoder'; -import AccountNav from './account/AccountNav' -import axios from 'axios' - -const AccountBasic= Loadable({ - loader: () => import('./account/AccountBasic'), - loading: Loading, -}) -const AccountBasicEdit= Loadable({ - loader: () => import('./account/AccountBasicEdit'), - loading: Loading, -}) - -const AccountCertification= Loadable({ - loader: () => import('./account/AccountCertification'), - loading: Loading, -}) -const AccountSecure= Loadable({ - loader: () => import('./account/AccountSecure'), - loading: Loading, -}) - -class AccountPage extends Component { - constructor (props) { - super(props) - this.state = { - basicInfo:undefined - } - } - - componentDidUpdate =(prevState)=>{ - if(this.props.current_user && this.props.current_user != prevState.current_user){ - this.getBasicInfo(this.props.current_user.login); - } - } - - componentDidMount = () =>{ - if(this.props.current_user){ - this.getBasicInfo(this.props.current_user.login); - } - } - - getBasicInfo=(login)=>{ - let url=`/users/accounts/${login || this.props.current_user.login}.json`; - axios.get(url).then((result)=>{ - if(result.data){ - if(result.data && result.data.base_info_completed == false){ - this.props.history.push(`/account/basic/edit`); - } - this.setState({ - basicInfo: Object.assign({}, {...result.data}, { avatar_url: `${result.data.avatar_url}?t=${new Date().getTime()}`}) - }) - } - }).catch((error)=>{ - console.log(error); - }) - } - render() { - let { basicInfo }=this.state; - const common = { basicInfo, getBasicInfo : this.getBasicInfo } - return ( -
        -
        - - -
        - - () - } - > - () - } - > - - () - } - > - - () - } - > - - () - } - > - -
        -
        -
        - ); - } -} - -export default CNotificationHOC()(SnackbarHOC() ( TPMIndexHOC ( AccountPage ))); +import React, { Component } from 'react'; + +import { BrowserRouter as Router, Route, Link, Switch } from "react-router-dom"; +import {CNotificationHOC} from '../courses/common/CNotificationHOC' +import Loading from '../../Loading'; + +import Loadable from 'react-loadable'; + +import { TPMIndexHOC } from '../tpm/TPMIndexHOC'; + +import { SnackbarHOC, getImageUrl } from 'educoder'; +import AccountNav from './account/AccountNav' +import axios from 'axios' + +const AccountBasic= Loadable({ + loader: () => import('./account/AccountBasic'), + loading: Loading, +}) +const AccountBasicEdit= Loadable({ + loader: () => import('./account/AccountBasicEdit'), + loading: Loading, +}) + +const AccountCertification= Loadable({ + loader: () => import('./account/AccountCertification'), + loading: Loading, +}) +const AccountSecure= Loadable({ + loader: () => import('./account/AccountSecure'), + loading: Loading, +}) + +class AccountPage extends Component { + constructor (props) { + super(props) + this.state = { + basicInfo:undefined + } + } + + componentDidUpdate =(prevState)=>{ + if(this.props.current_user && this.props.current_user != prevState.current_user){ + this.getBasicInfo(this.props.current_user.login); + } + } + + componentDidMount = () =>{ + if(this.props.current_user){ + this.getBasicInfo(this.props.current_user.login); + } + } + + getBasicInfo=(login)=>{ + let url=`/users/accounts/${login || this.props.current_user.login}.json`; + axios.get(url).then((result)=>{ + if(result.data){ + if(result.data && result.data.base_info_completed == false){ + this.props.history.push(`/profile/basic/edit`); + } + this.setState({ + basicInfo: Object.assign({}, {...result.data}, { avatar_url: `${result.data.avatar_url}?t=${new Date().getTime()}`}) + }) + } + }).catch((error)=>{ + console.log(error); + }) + } + render() { + let { basicInfo }=this.state; + const common = { basicInfo, getBasicInfo : this.getBasicInfo } + return ( +
        +
        + + +
        + + () + } + > + () + } + > + + () + } + > + + () + } + > + + () + } + > + +
        +
        +
        + ); + } +} + +export default CNotificationHOC()(SnackbarHOC() ( TPMIndexHOC ( AccountPage ))); diff --git a/public/react/src/modules/user/account/AccountBasic.js b/public/react/src/modules/user/account/AccountBasic.js index 831fd39ca..7eaecc625 100644 --- a/public/react/src/modules/user/account/AccountBasic.js +++ b/public/react/src/modules/user/account/AccountBasic.js @@ -1,119 +1,119 @@ -import React, { Component } from 'react'; - -import { SnackbarHOC, getImageUrl, City } from 'educoder'; -import { Form, Button, Input, Radio, Select, Tooltip, Icon } from 'antd' -import './common.css' - - -const RadioGroup = Radio.Group; -const Option = Select.Option -const radioOptions = [ - { label: '男', value: 'boy' }, - { label: '女', value: 'girl' }, -]; -class AccountBasicEdit extends Component { - constructor(props){ - super(props); - - } - - render() { - const { getFieldDecorator } = this.props.form; - const {basicInfo} =this.props - const showRealName = false; - return ( -
        -
        - -
        -
        基本信息
        - -
        - -
        - - {basicInfo && basicInfo.nickname} - - - - {basicInfo && basicInfo.name} - - - - {basicInfo && basicInfo.gender == 0?"男":"女"} - - - - - {basicInfo && basicInfo.location} {basicInfo && basicInfo.location_city} - - - - {basicInfo && basicInfo.technical_title} - - - - {basicInfo && basicInfo.school_name} - - - - {basicInfo && basicInfo.department_name} - - -
        -
        * 我们确保你所提供的信息均处于严格保密状态,不会泄露
        -
        - ); - } -} -const WrappedAccountBasicEdit = Form.create({ name: 'AccountBasicEdit' })(AccountBasicEdit); - -export default WrappedAccountBasicEdit; +import React, { Component } from 'react'; + +import { SnackbarHOC, getImageUrl, City } from 'educoder'; +import { Form, Button, Input, Radio, Select, Tooltip, Icon } from 'antd' +import './common.css' + + +const RadioGroup = Radio.Group; +const Option = Select.Option +const radioOptions = [ + { label: '男', value: 'boy' }, + { label: '女', value: 'girl' }, +]; +class AccountBasicEdit extends Component { + constructor(props){ + super(props); + + } + + render() { + const { getFieldDecorator } = this.props.form; + const {basicInfo} =this.props + const showRealName = false; + return ( +
        +
        + +
        +
        基本信息
        + +
        + +
        + + {basicInfo && basicInfo.nickname} + + + + {basicInfo && basicInfo.name} + + + + {basicInfo && basicInfo.gender == 0?"男":"女"} + + + + + {basicInfo && basicInfo.location} {basicInfo && basicInfo.location_city} + + + + {basicInfo && basicInfo.technical_title} + + + + {basicInfo && basicInfo.school_name} + + + + {basicInfo && basicInfo.department_name} + + +
        +
        * 我们确保你所提供的信息均处于严格保密状态,不会泄露
        +
        + ); + } +} +const WrappedAccountBasicEdit = Form.create({ name: 'AccountBasicEdit' })(AccountBasicEdit); + +export default WrappedAccountBasicEdit; diff --git a/public/react/src/modules/user/account/AccountNav.js b/public/react/src/modules/user/account/AccountNav.js index 82aefa5d6..9aa29b699 100644 --- a/public/react/src/modules/user/account/AccountNav.js +++ b/public/react/src/modules/user/account/AccountNav.js @@ -1,68 +1,68 @@ -import React, { Component } from 'react'; - -import { SnackbarHOC, getImageUrl } from 'educoder'; -import AccountImg from './AccountImg' -class AccountNav extends Component { - toBasic = () => { - this.props.history.push(`/account/basic`) - } - toCertification = () => { - this.props.history.push(`/account/certification`) - } - toSecure = () => { - this.props.history.push(`/account/secure`) - } - render() { - let { basicInfo } = this.props - console.log(this.props); - const path = window.location.pathname - const isBasic = path.indexOf('basic') != -1 || path == "/account" - const isCertification = path.indexOf('certification') != -1 - const isSecure = path.indexOf('secure') != -1 - return ( -
        - { - basicInfo && - -
        - - {basicInfo.name} - {basicInfo.technical_title} -
        - -
        -
        账号管理
        -
          -
        • - - 基本信息 - { - (basicInfo.authentication == 'uncertified' || basicInfo.authentication == 'applying') && - - } - { - basicInfo.authentication == 'certified' && - - } -
        • -
        • - 认证信息 - { - basicInfo.professional_certification == 'certified' && basicInfo.authentication == 'certified' ? - : - - } -
        • -
        • - 安全设置 -
        • -
        -
        -
        - } -
        - ); - } -} - -export default AccountNav ; +import React, { Component } from 'react'; + +import { SnackbarHOC, getImageUrl } from 'educoder'; +import AccountImg from './AccountImg' +class AccountNav extends Component { + toBasic = () => { + this.props.history.push(`/profile/basic`) + } + toCertification = () => { + this.props.history.push(`/profile/certification`) + } + toSecure = () => { + this.props.history.push(`/profile/secure`) + } + render() { + let { basicInfo } = this.props + console.log(this.props); + const path = window.location.pathname + const isBasic = path.indexOf('basic') != -1 || path == "/profile" + const isCertification = path.indexOf('certification') != -1 + const isSecure = path.indexOf('secure') != -1 + return ( +
        + { + basicInfo && + +
        + + {basicInfo.name} + {basicInfo.technical_title} +
        + +
        +
        账号管理
        +
          +
        • + + 基本信息 + { + (basicInfo.authentication == 'uncertified' || basicInfo.authentication == 'applying') && + + } + { + basicInfo.authentication == 'certified' && + + } +
        • +
        • + 认证信息 + { + basicInfo.professional_certification == 'certified' && basicInfo.authentication == 'certified' ? + : + + } +
        • +
        • + 安全设置 +
        • +
        +
        +
        + } +
        + ); + } +} + +export default AccountNav ; From 4abaf0d19247e262d58bdfdac2d1a6247648737c Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Sat, 13 Jul 2019 16:05:56 +0800 Subject: [PATCH 40/60] init --- .../src/modules/user/account/ChangeHeaderPicModal.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/public/react/src/modules/user/account/ChangeHeaderPicModal.js b/public/react/src/modules/user/account/ChangeHeaderPicModal.js index 997d99357..130a45b68 100644 --- a/public/react/src/modules/user/account/ChangeHeaderPicModal.js +++ b/public/react/src/modules/user/account/ChangeHeaderPicModal.js @@ -2,7 +2,7 @@ import React, { Component } from "react"; import { Modal } from "antd"; import axios from 'axios' import ModalWrapper from "../../courses/common/ModalWrapper" -import { Cropper } from 'educoder' +import { Cropper, getUrl } from 'educoder' const imageId = 'changeHeaderPic' const previewId = 'changeHeader_imagePreview' @@ -120,7 +120,8 @@ class ChangeHeaderPicModal extends Component{ render(){ const { course_lists } = this.state - const { moduleName } = this.props + const { moduleName, current_user } = this.props + const userHeaderImgUrl = `${getUrl()}/images/${current_user.image_url}` return(
        -
        +
        + {userHeaderImgUrl && } +
        头像预览
    -

    © 2019 EduCoder湘ICP备17009477号Trustie   &   IntelliDE inside.

    +

    + © 2019 EduCoder + 湘ICP备17009477号 + + 湘公网安备43019002000962号 + + Trustie   &   IntelliDE inside. 版权所有 湖南智擎科技有限公司 +

    diff --git a/public/react/src/modules/tpm/beian.png b/public/react/src/modules/tpm/beian.png new file mode 100755 index 0000000000000000000000000000000000000000..9f763946dd6606addeab24e40e2369124d53a048 GIT binary patch literal 19256 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 literal 0 HcmV?d00001