diff --git a/public/react/src/modules/courses/Index.js b/public/react/src/modules/courses/Index.js index c33b6a5ce..c385af3b7 100644 --- a/public/react/src/modules/courses/Index.js +++ b/public/react/src/modules/courses/Index.js @@ -452,6 +452,11 @@ class CoursesIndex extends Component{ (props) => () } > + () + } + > {/*课堂讨论*/} () } > + + {/* 普通作业 */} + () + } + > + {/* 分组作业 */} + () + } + > {/* 普通作业 */} - () } > {/* 分组作业 */} - () } diff --git a/public/react/src/modules/courses/Resource/index.js b/public/react/src/modules/courses/Resource/index.js index 2cc5dbafb..1cae3d559 100644 --- a/public/react/src/modules/courses/Resource/index.js +++ b/public/react/src/modules/courses/Resource/index.js @@ -49,8 +49,19 @@ class Fileslists extends Component{ this.seactall(parseInt(this.props.match.params.Id),1) } this.updadatalist(); + on('updateNavSuccess', this.updateNavSuccess) } + updateNavSuccess=()=>{ + this.setState({ + isSpin:true + }) + if(this.props.match.params.main_id){ + this.seactall(); + }else if(this.props.match.params.Id){ + this.seactall(parseInt(this.props.match.params.Id),1) + } + } componentDidUpdate = (prevProps) => { if(prevProps.match.params.main_id != this.props.match.params.main_id){ this.setState({ diff --git a/public/react/src/modules/courses/boards/TopicDetail.js b/public/react/src/modules/courses/boards/TopicDetail.js index 5d4a434a5..0c25910f5 100644 --- a/public/react/src/modules/courses/boards/TopicDetail.js +++ b/public/react/src/modules/courses/boards/TopicDetail.js @@ -413,6 +413,7 @@ class TopicDetail extends Component { // md editor.setValue && editor.setValue('') + const user = this._getUser(); this.setState({ comments: addNewComment(comments, _id, content, user) @@ -423,6 +424,7 @@ class TopicDetail extends Component { memo: newMemo2 }) this.refs.editor.showEditor(); + this.refs.editor.close(); } @@ -661,11 +663,11 @@ class TopicDetail extends Component { {/* onClick={ this.createNewComment } enableReplyTo={true} */} -
+
- 全部回复 - {memo.total_replies_count} + 全部回复 + ({memo.total_replies_count})
{ - const { radioValue } = this.state; + const { radioValue, projects } = this.state; + if (projects.length === 0) { + this.closeConnectionProject() + return; + } + if (!radioValue) { this.props.showNotification('请先在下面的列表中选择项目') return; @@ -115,7 +120,7 @@ class ConnectProject extends Component{ >
{ - projects && projects.length && + projects && !!projects.length &&
{this.setState({keyword: e.target.value})}} diff --git a/public/react/src/modules/courses/busyWork/commonWork.js b/public/react/src/modules/courses/busyWork/commonWork.js index e8afa5329..9f3d8dda0 100644 --- a/public/react/src/modules/courses/busyWork/commonWork.js +++ b/public/react/src/modules/courses/busyWork/commonWork.js @@ -14,7 +14,7 @@ import { WordsBtn } from 'educoder' import Modals from '../../modals/Modals' import NoneData from "../coursesPublic/NoneData" import Titlesearchsection from '../common/titleSearch/TitleSearchSection'; - +import { RouteHOC } from './common' import axios from 'axios'; import _ from 'lodash' @@ -71,6 +71,13 @@ class commonWork extends Component{ sureDelClasses(){ } + componentDidUpdate(prevProps, prevState) { + debugger; + if (prevProps.match.path != this.props.match.path) { + this.componentDidMount() + } + } + componentDidMount(){ this.setState({ @@ -429,4 +436,4 @@ class commonWork extends Component{ ) } } -export default commonWork; \ No newline at end of file +export default RouteHOC() (commonWork); \ No newline at end of file diff --git a/public/react/src/modules/courses/busyWork/reply/CommonWorkAppraiseReply.js b/public/react/src/modules/courses/busyWork/reply/CommonWorkAppraiseReply.js index 7e0c267a4..f267e93e9 100644 --- a/public/react/src/modules/courses/busyWork/reply/CommonWorkAppraiseReply.js +++ b/public/react/src/modules/courses/busyWork/reply/CommonWorkAppraiseReply.js @@ -276,8 +276,8 @@ class CommonWorkAppraiseReply extends Component{ onReply={this.onReply} placeholder={"请在此输入对本作品的评语,最大限制2000个字符"} > }
- -
{/* diff --git a/public/react/src/modules/courses/common/courseMessage.css b/public/react/src/modules/courses/common/courseMessage.css index e521b24f5..a7bbd8f1a 100644 --- a/public/react/src/modules/courses/common/courseMessage.css +++ b/public/react/src/modules/courses/common/courseMessage.css @@ -13,7 +13,8 @@ /* 评论 */ /* 改宽度 */ .course-message .panel-comment_item .comment_orig_content { - width: 1024px; + /* width: 1024px; */ + width: 1046px; } /* 子回复按钮 */ .course-message .reply_to_message a.commentsbtn.task-btn-blue { @@ -34,7 +35,7 @@ } .course-message .comment_item_cont:last-child { /* 作品评阅需要 */ - /* border-bottom: none; */ + border-bottom: none; } .course-message .memoMore { @@ -44,4 +45,8 @@ .course-message .memoMore .writeCommentBtn { right: 35px; top: 2px; - } \ No newline at end of file + } + +.panel-comment_item .comment_content { + margin-top: 4px; +} \ No newline at end of file diff --git a/public/react/src/modules/courses/coursesDetail/CoursesBanner.js b/public/react/src/modules/courses/coursesDetail/CoursesBanner.js index f587697f2..43e44c500 100644 --- a/public/react/src/modules/courses/coursesDetail/CoursesBanner.js +++ b/public/react/src/modules/courses/coursesDetail/CoursesBanner.js @@ -55,12 +55,12 @@ class CoursesBanner extends Component { let courseId = this.props.match.params.coursesId; let url = "/courses/" + courseId + "/top_banner.json" axios.get(url).then((result) => { - let data = result.data; - this.setState({ - coursedata: data - }) - // console.log(data) - + if( result!=undefined){ + let data = result.data; + this.setState({ + coursedata: data + }) + } }) } showeditmenu = () => { diff --git a/public/react/src/modules/courses/coursesPublic/HomeworkModal.js b/public/react/src/modules/courses/coursesPublic/HomeworkModal.js index f448483d2..bc2fb60b5 100644 --- a/public/react/src/modules/courses/coursesPublic/HomeworkModal.js +++ b/public/react/src/modules/courses/coursesPublic/HomeworkModal.js @@ -200,7 +200,7 @@ class HomeworkModal extends Component{ {this.props.modaltype===undefined||this.props.modaltype===2||this.props.modaltype===4 || !course_groups || course_groups.length == 0 || this.props.usingCheckBeforePost ?"":
    { return( -
    -
  • +
    +
  • { + this.reloadList(); + } + reloadList=()=>{ this.setState({ isSpin:true diff --git a/public/react/src/modules/courses/exercise/ExerciseReviewAndAnswer.js b/public/react/src/modules/courses/exercise/ExerciseReviewAndAnswer.js index 58569554f..0893a5e23 100644 --- a/public/react/src/modules/courses/exercise/ExerciseReviewAndAnswer.js +++ b/public/react/src/modules/courses/exercise/ExerciseReviewAndAnswer.js @@ -73,8 +73,9 @@ class ExerciseReviewAndAnswer extends Component{ setScoreReason:undefined, setTip:"", - Id:undefined - + Id:undefined, + // 试卷总分 + exerciseTotalScore:undefined } } componentDidUpdate (prevProps) { @@ -185,7 +186,8 @@ class ExerciseReviewAndAnswer extends Component{ exercise_answer_user:result.data.exercise_answer_user, exercise_questions:result.data.exercise_questions, user_exercise_status:1, - Id:result.data.exercise_answer_user.user_id + Id:result.data.exercise_answer_user.user_id, + exerciseTotalScore:result.data.exercise_answer_user.score }) } }).catch((error)=>{ @@ -207,7 +209,8 @@ class ExerciseReviewAndAnswer extends Component{ exercise_scores:result.data.exercise_scores, exercise_questions:result.data.exercise_questions, user_exercise_status:result.data.exercise.user_exercise_status, - time:result.data.exercise.left_time + time:result.data.exercise.left_time, + exerciseTotalScore:result.data.user_score }) if(result.data.exercise.left_time != null){ this.remainTime(); @@ -490,7 +493,8 @@ class ExerciseReviewAndAnswer extends Component{ modalsBottomval, ModalCancel, ModalSave, - Loadtype + Loadtype, + exerciseTotalScore }=this.state let isAdmin = this.props.isAdmin(); let isStudent =this.props.isStudent(); @@ -579,8 +583,8 @@ class ExerciseReviewAndAnswer extends Component{ exercise_start_at && 开始答题时间:{ exercise_start_at && moment(exercise_start_at).format(format) } } { - exercise_answer_user && !!exercise_answer_user.score && - 总分: { exercise_answer_user.score } + (isAdmin || (isStudent && exercise && exercise.exercise_status == 3)) && exerciseTotalScore && + 总分: { exerciseTotalScore } } { @@ -656,7 +660,7 @@ class ExerciseReviewAndAnswer extends Component{ return(

    - {exercise_questions.q_position}、{type[item.question_type]}({item.question_score}分) + {item.q_position}、{type[item.question_type]}({item.question_score}分) { // 填空(一直都有调分),和简答题调分:老师身份 已经评分的才能出现调分按钮 diff --git a/public/react/src/modules/courses/exercise/question/fillEmpty.js b/public/react/src/modules/courses/exercise/question/fillEmpty.js index 030dec7e8..b5e8d62b5 100644 --- a/public/react/src/modules/courses/exercise/question/fillEmpty.js +++ b/public/react/src/modules/courses/exercise/question/fillEmpty.js @@ -65,7 +65,7 @@ class fillEmpty extends Component{ if(array[i].value ==""){ count++; } } let k = count==array.length ? 0 : 1; - this.props.changeQuestionStatus && this.props.changeQuestionStatus(parseInt(this.props.questionType.question_number)-1,k); + this.props.changeQuestionStatus && this.props.changeQuestionStatus(parseInt(this.props.questionType.q_position)-1,k); } }).catch((error)=>{ console.log(error); @@ -115,11 +115,11 @@ class fillEmpty extends Component{ : this.onOptionContentChange(value, key)} - initValue={item.value} onCMBlur={()=>this.onBlurEmpty(key,questionType.question_number)} + mdID={questionType.question_id +"_"+ key} placeholder={`输入填空${key+1}的答案`} onChange={(value) => this.onOptionContentChange(value, key)} + initValue={item.value} onCMBlur={()=>this.onBlurEmpty(key,questionType.q_position)} > }

    diff --git a/public/react/src/modules/courses/exercise/question/multiple.js b/public/react/src/modules/courses/exercise/question/multiple.js index 5e271b30f..939122a48 100644 --- a/public/react/src/modules/courses/exercise/question/multiple.js +++ b/public/react/src/modules/courses/exercise/question/multiple.js @@ -25,7 +25,7 @@ class Multiple extends Component{ }else{ k=0; } - this.props.changeQuestionStatus && this.props.changeQuestionStatus(parseInt(this.props.questionType.question_number)-1,k); + this.props.changeQuestionStatus && this.props.changeQuestionStatus(parseInt(this.props.questionType.q_position)-1,k); } }).catch((error)=>{ console.log(error); @@ -39,6 +39,7 @@ class Multiple extends Component{ user_exercise_status }=this.props let isStudent =this.props.isStudent(); + console.log(questionType); return(
    diff --git a/public/react/src/modules/courses/exercise/question/shixunAnswer.js b/public/react/src/modules/courses/exercise/question/shixunAnswer.js index 40dc11ed6..0ce4b3084 100644 --- a/public/react/src/modules/courses/exercise/question/shixunAnswer.js +++ b/public/react/src/modules/courses/exercise/question/shixunAnswer.js @@ -269,7 +269,7 @@ class shixunAnswer extends Component{ } { item.operation ? - this.scrollToAnchor(`${index+1}`)}>查看 + this.scrollToAnchor(`${questionType.question_id}${index+1}`)}>查看 : -- } @@ -292,7 +292,7 @@ class shixunAnswer extends Component{ { challenge.map((item,key)=>{ return( -
    +

    diff --git a/public/react/src/modules/courses/exercise/question/simpleAnswer.js b/public/react/src/modules/courses/exercise/question/simpleAnswer.js index d623d8091..773c93708 100644 --- a/public/react/src/modules/courses/exercise/question/simpleAnswer.js +++ b/public/react/src/modules/courses/exercise/question/simpleAnswer.js @@ -30,7 +30,7 @@ class simpleAnswer extends Component{ // simpleValue:undefined // }) let k= simpleAnswer == "" ? 0 :1; - this.props.changeQuestionStatus && this.props.changeQuestionStatus(parseInt(this.props.questionType.question_number)-1,k); + this.props.changeQuestionStatus && this.props.changeQuestionStatus(parseInt(this.props.questionType.q_position)-1,k); } }).catch((error)=>{ console.log(error); diff --git a/public/react/src/modules/courses/poll/Poll.js b/public/react/src/modules/courses/poll/Poll.js index aa01bcf47..9f9291b61 100644 --- a/public/react/src/modules/courses/poll/Poll.js +++ b/public/react/src/modules/courses/poll/Poll.js @@ -1,26 +1,18 @@ import React,{ Component } from "react"; import { Input,Checkbox,Table, Pagination, Modal,Menu, Tooltip ,Spin} from "antd"; -import CourseLayoutcomponent from '../common/CourseLayoutComponent'; +import {WordsBtn, on, off, trigger } from 'educoder'; import HomeworkModal from "../coursesPublic/HomeworkModal"; -import ShixunModal from "../coursesPublic/ShixunModal"; -import PathModal from "../coursesPublic/PathModal"; import AddcoursesNav from "../coursesPublic/AddcoursesNav"; -import ImmediatelyPublish from './pollPublicBtn/ImmediatelyPublish' -import ImmediatelyEnd from './pollPublicBtn/ImmediatelyEnd' -import PollListItem from './PollListItem' -import NoneData from '../coursesPublic/NoneData' -import UseBank from '../busyWork/UseBank' - +import ImmediatelyPublish from './pollPublicBtn/ImmediatelyPublish'; +import ImmediatelyEnd from './pollPublicBtn/ImmediatelyEnd'; +import PollListItem from './PollListItem'; +import NoneData from '../coursesPublic/NoneData'; +import UseBank from '../busyWork/UseBank'; import _ from 'lodash'; - -import '../css/members.css' -import '../css/busyWork.css' - - -import { WordsBtn } from 'educoder' -import Modals from '../../modals/Modals' - -import axios from 'axios' +import '../css/members.css'; +import '../css/busyWork.css'; +import Modals from '../../modals/Modals'; +import axios from 'axios'; const Search = Input.Search; @@ -144,7 +136,16 @@ class Poll extends Component{ }) let{type,StudentList_value,page}=this.state this.InitList(type,StudentList_value,page); + + on('updateNavSuccess', this.updateNavSuccess) } + updateNavSuccess=()=>{ + this.setState({ + isSpin:true + }) + let{type,StudentList_value,page}=this.state + this.InitList(type,StudentList_value,page); + } //切换分页 changePage=(pageNumber)=>{ diff --git a/public/react/src/modules/courses/shixunHomework/shixunHomework.js b/public/react/src/modules/courses/shixunHomework/shixunHomework.js index 1933f1ad7..70acf0f80 100644 --- a/public/react/src/modules/courses/shixunHomework/shixunHomework.js +++ b/public/react/src/modules/courses/shixunHomework/shixunHomework.js @@ -57,29 +57,52 @@ class ShixunHomework extends Component{ isSpin:false } } - + updateNavSuccess=()=>{ + this.setState({ + isSpin:true + }) + if(this.props.match.params.main_id){ + this.setState({ + isSpin:true + }) + this.seactall(); + if(this.props.isAdmin()===true){ + this.updadatalist() + } + + }else if(this.props.match.params.category_id){ + this.setState({ + isSpin:true + }) + this.seactall(parseInt(this.props.match.params.category_id)) + if(this.props.isAdmin()===true){ + this.updadatalist() + } + } + } componentDidMount() { - this.setState({ - isSpin:true - }) - if(this.props.match.params.main_id){ - this.setState({ - isSpin:true - }) - this.seactall(); - if(this.props.isAdmin()===true){ - this.updadatalist() - } - - }else if(this.props.match.params.category_id){ - this.setState({ - isSpin:true - }) - this.seactall(parseInt(this.props.match.params.category_id)) - if(this.props.isAdmin()===true){ - this.updadatalist() - } - } + this.setState({ + isSpin:true + }) + if(this.props.match.params.main_id){ + this.setState({ + isSpin:true + }) + this.seactall(); + if(this.props.isAdmin()===true){ + this.updadatalist() + } + + }else if(this.props.match.params.category_id){ + this.setState({ + isSpin:true + }) + this.seactall(parseInt(this.props.match.params.category_id)) + if(this.props.isAdmin()===true){ + this.updadatalist() + } + } + on('updateNavSuccess', this.updateNavSuccess) } seactall=(id)=>{ this.setState({ diff --git a/public/react/src/modules/forums/MemoDetailMDEditor.js b/public/react/src/modules/forums/MemoDetailMDEditor.js index ebb61b1b7..e1811ed8a 100644 --- a/public/react/src/modules/forums/MemoDetailMDEditor.js +++ b/public/react/src/modules/forums/MemoDetailMDEditor.js @@ -128,7 +128,8 @@ class MemoDetailMDEditor extends Component {