diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 12109478e..14276b4dd 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -1204,8 +1204,8 @@ class CoursesController < ApplicationController def validate_start_end_date prev_course = @subject.courses.where("id < #{@course.id}").last next_course = @subject.courses.where("id > #{@course.id}").first - tip_exception("开始时间和结束时间不能与其他期开课时间重叠") if prev_course && params[:start_date] <= strf_date(prev_course.end_date) - tip_exception("开始时间和结束时间不能与其他期开课时间重叠") if next_course && params[:end_date] >= strf_date(next_course.start_date) + tip_exception("开始时间不能与往期开课时间重叠") if prev_course && params[:start_date] <= strf_date(prev_course.end_date) + tip_exception("结束时间不能与后期开课时间重叠") if next_course && params[:end_date] >= strf_date(next_course.start_date) end # 超级管理员和课堂管理员的权限判断 diff --git a/public/react/src/App.js b/public/react/src/App.js index 9621fdc18..ab3ebb02d 100644 --- a/public/react/src/App.js +++ b/public/react/src/App.js @@ -19,7 +19,6 @@ import Trialapplicationysl from './modules/login/Trialapplicationysl'; import Trialapplicationreview from './modules/user/Trialapplicationreview'; import Addcourses from "./modules/courses/coursesPublic/Addcourses"; import AccountProfile from "./modules/user/AccountProfile"; -import Certifiedprofessional from "./modules/modals/Certifiedprofessional" import Trialapplication from './modules/login/Trialapplication' import NotFoundPage from './NotFoundPage' @@ -306,7 +305,7 @@ class App extends Component { - + {/**/} diff --git a/public/react/src/modules/courses/busyWork/CommonWorkDetailIndex.js b/public/react/src/modules/courses/busyWork/CommonWorkDetailIndex.js index 8c77aaab2..65cda33a9 100644 --- a/public/react/src/modules/courses/busyWork/CommonWorkDetailIndex.js +++ b/public/react/src/modules/courses/busyWork/CommonWorkDetailIndex.js @@ -307,11 +307,15 @@ class CommonWorkDetailIndex extends Component{ onClick={() => this.setState({moduleName: '参考答案'})} className={`${childModuleName == '参考答案' ? 'active' : '' } `} to={`/courses/${courseId}/${moduleEngName}/${workId}/answer`}>参考答案} + + {this.props.isAdmin() ? this.setState({moduleName: '设置'})} className={`${childModuleName == '设置' ? 'active' : '' } `} style={{paddingLeft:'38px'}} - to={`/courses/${courseId}/${moduleEngName}/${workId}/setting`}>设置 + to={`/courses/${courseId}/${moduleEngName}/${workId}/setting`}>设置: + "" + } {/* { this.props.tabRightComponents } */} diff --git a/public/react/src/modules/courses/busyWork/common/WorkDetailPageHeader.js b/public/react/src/modules/courses/busyWork/common/WorkDetailPageHeader.js index 56460a44a..a092c5066 100644 --- a/public/react/src/modules/courses/busyWork/common/WorkDetailPageHeader.js +++ b/public/react/src/modules/courses/busyWork/common/WorkDetailPageHeader.js @@ -144,10 +144,13 @@ class WorkDetailPageHeader extends Component{ {view_answer == true && 参考答案} + {this.props.isAdmin()? 设置 + to={`/courses/${courseId}/${moduleEngName}/${workId}/setting`}>设置: + "" + } { this.props.tabRightComponents } diff --git a/public/react/src/modules/courses/coursesDetail/CoursesBanner.js b/public/react/src/modules/courses/coursesDetail/CoursesBanner.js index 8947cf718..efc30ee2e 100644 --- a/public/react/src/modules/courses/coursesDetail/CoursesBanner.js +++ b/public/react/src/modules/courses/coursesDetail/CoursesBanner.js @@ -12,6 +12,7 @@ import Guide from './CoursesGuide'; import AddStudentModal from '../members/modal/AddStudentModal' import AddTeacherModal from '../members/modal/AddTeacherModal' import Jointheclass from '../../modals/Jointheclass' +import Certifiedprofessional from "../../modals/Certifiedprofessional"; // 点击按钮复制功能 // function jsCopy(){ // var e = document.getElementById("copy_invite_code"); @@ -48,6 +49,8 @@ class CoursesBanner extends Component { is_guide:false, excellent:false,//是否是精品课堂 yslJointhe:false, + mydisplay:false + } } componentDidMount() { @@ -58,9 +61,22 @@ class CoursesBanner extends Component { componentWillUnmount() { off('updatabanner', this.updatabanner) } - - onloadupdatabanner=()=>{ + HideAddcoursestypess=(i)=>{ + console.log("调用了"); + this.setState({ + Addcoursestypes:false, + mydisplay:true, + occupation:i, + }) + }; + ModalCancelsy=()=>{ + this.setState({ + mydisplay:false, + }) + }; + + onloadupdatabanner=()=>{ this.updatabanner() } updatabanner=()=>{ @@ -413,7 +429,9 @@ class CoursesBanner extends Component { {Addcoursestypes === true ? this.tojoinclass(2)} + HideAddcoursestypess={(i)=>this.HideAddcoursestypess(i)} /> : ""} + - {excellent===false? + {/*{excellent===false?*/} + {/* :*/} + {/*
*/} + {/* */} + {/* /!*coursedata.course_identity === 6 是非课堂成员*!/*/} + {/* {coursedata.course_identity === 6&&coursedata.educoder_teacher===false?*/} + {/* this.myyslgradin()}>加入课堂: ""}*/} + + {/* {coursedata.course_identity === 6&&coursedata.educoder_teacher===true?*/} + {/* this.myyslgradin()}>加入课堂: ""}*/} + + {/* /!*{this.props.isStudent()? this.exitclass()}*!/*/} + {/* /!*> 退出课堂 :""}*!/*/} + {/*
*/} + + {/*}*/}
{coursedata.switch_to_student === true ? 退出课堂 :""}
- : -
- - {/*coursedata.course_identity === 6 是非课堂成员*/} - {coursedata.course_identity === 6&&coursedata.educoder_teacher===false? - this.myyslgradin()}>加入课堂: ""} - - {coursedata.course_identity === 6&&coursedata.educoder_teacher===true? - this.myyslgradin()}>加入课堂: ""} - - {/*{this.props.isStudent()? this.exitclass()}*/} - {/*> 退出课堂 :""}*/} -
- } :""} + {this.props.isAdmin() ? this.ChangeTab(3)} - >设置 + >设置:""} {/*{this.props.isAdmin() ? { - if (response != undefined) - if (response && response.data.status === -1) { - if(response.data.message==="该课堂要求成员完成实名认证"){ - this.setState({ - mydisplay:true, - occupation:1, - }) - - }else if(response.data.message==="该课堂要求成员完成职业认证"){ - this.setState({ - mydisplay:true, - occupation:2, - }) - }else if(response.data.message==="该课堂要求成员完成实名和职业认证"){ - this.setState({ - mydisplay:true, - occupation:3, - }) - } - } - return response; - }, (error) => { - //TODO 这里如果样式变了会出现css不加载的情况 - - }); + // axios.interceptors.response.use((response) => { + // if (response != undefined) + // if (response && response.data.status === -1) { + // + // } + // return response; + // }, (error) => { + // //TODO 这里如果样式变了会出现css不加载的情况 + // + // }); } modalCancel=()=>{ - this.setState({ - mydisplay:false, - }) + this.props.ModalCancelsy(); }; setDownload=()=>{ @@ -63,7 +45,7 @@ class Certifiedprofessional extends Component { render() { // console.log("加入金品课堂2"); // console.log(this.props); - let{occupation} =this.state; + let{occupation} =this.props; return( diff --git a/public/react/src/modules/page/Index.js b/public/react/src/modules/page/Index.js index 3a273e0d6..c695a0022 100644 --- a/public/react/src/modules/page/Index.js +++ b/public/react/src/modules/page/Index.js @@ -243,6 +243,7 @@ class Index extends Component { time_limit={context.time_limit + 5} + real_time_limit={context.time_limit} resetTestSetsExpandedArray={context.resetTestSetsExpandedArray} onRunCodeTestFinish={context.onRunCodeTestFinish} diff --git a/public/react/src/modules/page/main/ActionView.js b/public/react/src/modules/page/main/ActionView.js index 0a1faa7ea..1a887fa75 100644 --- a/public/react/src/modules/page/main/ActionView.js +++ b/public/react/src/modules/page/main/ActionView.js @@ -66,7 +66,7 @@ class ActionView extends Component { /*耗时:0 天 3 小时 11 分钟 57 秒 */ render() { const { onRunCodeTest, onShowPrevStage, onShowNextStage, gameBuilding - , game, classes, st, shixun, record, challenge, time_limit } = this.props; + , game, classes, st, shixun, record, challenge, time_limit, real_time_limit } = this.props; return (
{!!time_limit && - {`本关最大执行时间:${time_limit}秒`}} + {`本关最大执行时间:${real_time_limit}秒`}} {!gameBuilding && record ? { record } 秒 diff --git a/public/react/src/modules/tpm/NewHeader.js b/public/react/src/modules/tpm/NewHeader.js index dff749515..66a120716 100644 --- a/public/react/src/modules/tpm/NewHeader.js +++ b/public/react/src/modules/tpm/NewHeader.js @@ -3,6 +3,7 @@ import { BrowserRouter as Router, Route, Link } from "react-router-dom"; import { Redirect } from 'react-router'; import AccountProfile from"../user/AccountProfile"; import PropTypes from 'prop-types'; +import Certifiedprofessional from "../../modules/modals/Certifiedprofessional" // import searchImg from '../../../../images/educoder/icon/search.svg' @@ -62,7 +63,9 @@ class NewHeader extends Component { isRender:false, showSearchOpentype:false, showTrial:false, - setevaluatinghides:false + setevaluatinghides:false, + occupation:0, + mydisplay:false } // console.log("176") // console.log(props); @@ -95,7 +98,29 @@ class NewHeader extends Component { //获取游览器地址 window.sessionStorage.setItem("yslgeturls",JSON.stringify(window.location.href)) - + // axios.interceptors.response.use((response) => { + // if (response != undefined) + // if (response && response.data.status === -1) { + // if (response.data.message === "该课堂要求成员完成实名认证") { + // + // } else if (response.data.message === "该课堂要求成员完成职业认证") { + // console.log("该课堂要求成员完成职业认证"); + // this.HideAddcoursestypess(2); + // + // + // + // return + // } else if (response.data.message === "该课堂要求成员完成实名和职业认证") { + // console.log("该课堂要求成员完成实名和职业认证"); + // this.HideAddcoursestypess(3); + // return + // + // } + // } + // return response; + // }, (error) => { + // + // }); } componentDidUpdate = (prevProps) => { @@ -326,7 +351,20 @@ class NewHeader extends Component { this.setState({ Addcoursestypes:false }) - } + }; + HideAddcoursestypess=(i)=>{ + console.log("调用了"); + this.setState({ + Addcoursestypes:false, + mydisplay:true, + occupation:i, + }) + }; + ModalCancelsy=()=>{ + this.setState({ + mydisplay:false, + }) + }; hidetojoinclass=()=>{ @@ -880,7 +918,10 @@ submittojoinclass=(value)=>{ {Addcoursestypes===true?this.HideAddcoursestypess(i)} />:""} + + {/* /courses/join_course_multi_role */}