From c71e1a99648ba274731bc4ec142b6c7ab0b5f4e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com> Date: Mon, 9 Sep 2019 19:27:53 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=84=E9=98=85=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../courses/coursesPublic/AppraiseModal.js | 36 ++-- .../shixunHomework/ShixunWorkReport.js | 191 +++++++++++------- .../shixunHomework/ShowAppraiseList.js | 172 ++++++++++++++++ .../OfficialAcademicTranscript.js | 2 +- 4 files changed, 315 insertions(+), 86 deletions(-) create mode 100644 public/react/src/modules/courses/shixunHomework/ShowAppraiseList.js diff --git a/public/react/src/modules/courses/coursesPublic/AppraiseModal.js b/public/react/src/modules/courses/coursesPublic/AppraiseModal.js index 1a8c6cc75..9d1efa5b0 100644 --- a/public/react/src/modules/courses/coursesPublic/AppraiseModal.js +++ b/public/react/src/modules/courses/coursesPublic/AppraiseModal.js @@ -10,7 +10,6 @@ class AppraiseModal extends Component{ group_ids:[], fileList:[], Inputsval:undefined, - valuetype:0, textareavaltype:false, comment:undefined, hidden_comment:undefined @@ -18,11 +17,23 @@ class AppraiseModal extends Component{ } componentDidMount() { - - this.setState({ - valuetype:this.props.work_type===undefined?0:this.props.work_type, - textareaval:this.props.work_comment, - }) + let{data,work_comment,work_comment_hidden}=this.props; + + if(this.props.showAppraisetype==="child"){ + data.stage_list.map((item,key)=>{ + if(this.props.challenge_id===item.challenge_id){ + this.setState({ + comment:item.challenge_comment, + hidden_comment:item.challenge_comment_hidden, + }) + } + }) + }else{ + this.setState({ + comment:work_comment, + hidden_comment:work_comment_hidden, + }) + } } @@ -38,11 +49,10 @@ class AppraiseModal extends Component{ }) } Saves=()=>{ - let{textareaval,valuetype,comment,hidden_comment}=this.state; + let{comment,hidden_comment}=this.state; let commenttype=comment===undefined||comment===null||comment===""; let hidden_commenttype=hidden_comment===undefined||hidden_comment===null||hidden_comment===""; - if(commenttype===true&&hidden_commenttype===true){ this.setState({ textareavaltype:true @@ -50,20 +60,20 @@ class AppraiseModal extends Component{ return } - //comment 是 text 可见的评阅内容 // hidden_comment 是 text 不可见的评阅内容 // challenge_id 否 int 关卡id(关卡评阅才需传关卡id) - + let challenge_id=this.props.showAppraisetype==="child"?this.props.challenge_id:undefined let url=`/student_works/${this.props.match.params.homeworkid}/shixun_work_comment.json` axios.post(url, { - comment:textareaval, - hidden_comment:valuetype + comment:comment, + hidden_comment:hidden_comment, + challenge_id:challenge_id }).then((response) => { if(response.data.status===0){ this.props.showNotification(response.data.message) - this.props.showCancel(textareaval,valuetype) + this.props.showCancel(comment,hidden_comment,challenge_id) }else{ this.props.showNotification(response.data.message) } diff --git a/public/react/src/modules/courses/shixunHomework/ShixunWorkReport.js b/public/react/src/modules/courses/shixunHomework/ShixunWorkReport.js index 31e749867..374aef8d4 100644 --- a/public/react/src/modules/courses/shixunHomework/ShixunWorkReport.js +++ b/public/react/src/modules/courses/shixunHomework/ShixunWorkReport.js @@ -11,6 +11,7 @@ import Coursesshixundetails from './shixunreport/Coursesshixundetails'; import Shixunechart from './shixunreport/Shixunechart'; import DownloadMessageysl from "../../modals/DownloadMessageysl" import AppraiseModal from "../coursesPublic/AppraiseModal"; +import ShowAppraiseList from './ShowAppraiseList'; import {UnControlled as CodeMirror} from 'react-codemirror2'; import 'codemirror/mode/cmake/cmake'; import 'codemirror/mode/xml/xml'; @@ -34,9 +35,8 @@ class ShixunWorkReport extends Component { DownloadMessageval:undefined, isspinning:false, showAppraiseModaltype:false, - work_comment_hidden:false, - showAppraiseModalsshow:true, - work_comment:null + work_comment_hidden:undefined, + work_comment:undefined, } } @@ -102,7 +102,7 @@ class ShixunWorkReport extends Component { let homeworkid=this.props.match.params.homeworkid; let url = `/student_works/${homeworkid}/shixun_work_report.json` axios.get(url).then((result) => { - if (result.data.status === 403||result.data.status === 401||result.data.status === 407||result.data.status === 408||result.data.status === 409) { + if (result.data.status === 403 || result.data.status === 401 || result.data.status === 407 || result.data.status === 408|| result.data.status === 409 || result.data.status === 500) { }else{ this.setState({ @@ -155,76 +155,138 @@ class ShixunWorkReport extends Component { }) } - showAppraiseModal=(type,id)=>{ + showAppraiseModal=(type,id,show,hidden)=>{ + let{data}=this.state; + debugger if(type==="child"){ + data.stage_list.forEach((item,key)=>{ + if(item.challenge_id===id){ + item.challenge_comment=show; + item.challenge_comment_hidden=hidden; + } + }) this.setState({ + showAppraiseModaltype:true, showAppraisetype:type, - challenge_id:id + challenge_id:id, + data:data }) }else{ this.setState({ + showAppraiseModaltype:true, showAppraisetype:type, - challenge_id:undefined + challenge_id:undefined, + work_comment:show, + work_comment_hidden:hidden }) } - - let{work_comment,work_comment_hidden}=this.state; - this.setState({ - showAppraiseModaltype:true, - work_comment_hidden:work_comment===null||work_comment===undefined?this.state.work_type?true:false:work_comment_hidden, - }) } hideAppraiseModal=()=>{ - let{work_comment,work_comment_hidden}=this.state; this.setState({ showAppraiseModaltype:false, - work_comment_hidden:work_comment===null||work_comment===undefined?this.state.work_type===1?true:false:work_comment_hidden, }) } - showAppraiseModals=(list,type)=>{ + showAppraiseModals=(show,hidden,id)=>{ + + let{data,showAppraisetype}=this.state; + + debugger + if(showAppraisetype==="child"){ + data.stage_list.forEach((item,key)=>{ + if(item.challenge_id===id){ + item.challenge_comment=show; + item.challenge_comment_hidden=hidden; + } + }) + this.setState({ + showAppraiseModaltype:false, + data:data + }) + }else{ + this.setState({ + showAppraiseModaltype:false, + work_comment:show, + work_comment_hidden:hidden + }) + } - this.setState({ - showAppraiseModaltype:false, - work_comment_hidden:type===0?false:true, - work_comment:list, - work_type:type, - showAppraiseModals:true, - showAppraiseModalsshow:true, - }) } - isdeleteModal=()=>{ + isdeleteModal=(comment_id,visible_comment)=>{ this.setState({ modalsType: true, modalsTopval:"是否确认删除?", - modalSave: ()=>this.isdeleteModals(), - modalCancel:()=>this.hideisdeleteModal(), + modalSave: ()=>this.isdeleteModals(comment_id,visible_comment), + modalCancel:()=>this.hideisdeleteModals(), }) } - hideisdeleteModal=()=>{ + hideisdeleteModals=()=>{ this.setState({ - modalsType: false, + modalsType:false, modalsTopval:"是否确认删除?", - modalSave: ()=>this.isdeleteModals(), - modalCancel:()=>this.hideisdeleteModal(), + modalSave: "", + modalCancel:"", }) } - isdeleteModals=()=>{ + + hideisdeleteModal=(comment_id,visible_comment)=>{ + + + let{data,work_comment,work_comment_hidden,showAppraisetype}=this.state; + if(showAppraisetype==="child"){ + data.stage_list.forEach((item,key)=>{ + if(item.comment_id===comment_id){ + if(visible_comment===true){ + item.challenge_comment=null; + }else{ + item.challenge_comment_hidden=null; + } + } + }) + this.setState({ + modalsType:false, + modalsTopval:"是否确认删除?", + modalSave: "", + modalCancel:"", + data:data + }) + }else{ + if(visible_comment===true){ + this.setState({ + modalsType:false, + modalsTopval:"是否确认删除?", + modalSave: "", + modalCancel:"", + work_comment:visible_comment===true?null:work_comment, + }) + }else{ + this.setState({ + modalsType:false, + modalsTopval:"是否确认删除?", + modalSave: "", + modalCancel:"", + work_comment_hidden:visible_comment===false?null:work_comment_hidden + }) + } + + } + + } + + isdeleteModals=(comment_id,visible_comment)=>{ let url =`/student_works/${this.props.match.params.homeworkid}/destroy_work_comment.json` - axios.delete(url).then((response) => { + axios.delete(url, { data: { + comment_id:comment_id, + visible_comment:visible_comment + }}).then((response) => { // const { status } = response.data; if(response.data.status===0){ this.props.showNotification(response.data.message) - this.setState({ - showAppraiseModalsshow:false, - work_comment_hidden:false, - work_comment:undefined, - work_type:0, - }) - this.hideisdeleteModal() + + this.hideisdeleteModal(comment_id,visible_comment) }else{ this.props.showNotification(response.data.message) } @@ -234,7 +296,7 @@ class ShixunWorkReport extends Component { }); } render() { - let{data,showAppraiseModaltype,work_comment_hidden,showAppraiseModalsshow,work_comment} =this.state; + let{data,showAppraiseModaltype,work_comment_hidden,work_comment} =this.state; let category_id=data===undefined?"":data.category===null?"":data.category.category_id; let homework_common_id=data===undefined?"":data.homework_common_id; @@ -243,7 +305,9 @@ class ShixunWorkReport extends Component { // let showAppraiseModals=this.props&&this.props.isAdminOrTeacher()===true?work_comment===null||work_comment===undefined?false:true:work_comment===null||work_comment===undefined?false:true; let showAppraiseModals=work_comment===null||work_comment===undefined?false:true; - console.log(showAppraiseModals) + console.log(data) + console.log(work_comment_hidden) + console.log(work_comment) return ( data===undefined?"": @@ -262,10 +326,12 @@ class ShixunWorkReport extends Component { {...this.state} visible={showAppraiseModaltype} Cancel={()=>this.hideAppraiseModal()} - showCancel={(list,type)=>this.showAppraiseModals(list,type)} + showCancel={(show,hidden,id)=>this.showAppraiseModals(show,hidden,id)} work_comment={this.state.work_comment} work_type={work_comment===null||work_comment===undefined?this.state.work_type:work_comment_hidden===true?1:0} />:""} + +
@@ -303,9 +369,11 @@ class ShixunWorkReport extends Component { {/*>评阅 : ""}*/} {this.props.isAdmin() ?this.showAppraiseModal("main")} + onClick={()=>this.showAppraiseModal("main",undefined,work_comment,work_comment_hidden)} >评阅:""}
+ + {/*{work_comment===null||work_comment===undefined?"评阅":"编辑评阅"}*/} + {data===undefined?"":work_comment===undefined||work_comment===null||work_comment===""?"": +
+
+ +
+ 总体评阅评阅内容 + + {this.props&&this.props.isAdminOrTeacher()===true?this.props.isdeleteModal(data.comment_id,true)} + >删除:""} + + {this.props&&this.props.isAdminOrTeacher()===true?this.props.showAppraiseModal("main",undefined,work_comment,work_comment_hidden)} + >编辑:""} + +
+ +
+
+
+
+
+
+
+ +
+
} + + + + {data===undefined?"":work_comment_hidden===undefined||work_comment_hidden===null||work_comment_hidden===""?"":this.props&&this.props.isAdminOrTeacher()===true? +
+
+ +
+ 总体评阅评阅内容(仅对课堂老师可见) + + {this.props&&this.props.isAdminOrTeacher()===true?this.props.isdeleteModal(data.comment_id,false)} + >删除:""} + + {this.props&&this.props.isAdminOrTeacher()===true?this.props.showAppraiseModal("main",undefined,work_comment,work_comment_hidden)} + >编辑:""} + +
+ +
+
+
+
+
+
+
+ +
+
:""} + + + + {data===undefined?"":data.stage_list.map((item,key)=>{ + let challenge_comment_hidden=item.challenge_comment_hidden===undefined||item.challenge_comment_hidden===null||item.challenge_comment_hidden===""; + let challenge_comment=item.challenge_comment===undefined||item.challenge_comment===null||item.challenge_comment===""; + return( +
+ {challenge_comment===false?
+
+ +
+ 第{key+1}关评阅内容 + {this.props&&this.props.isAdminOrTeacher()===true?this.props.isdeleteModal(item.comment_id,true)} + >删除:""} + + {this.props&&this.props.isAdminOrTeacher()===true?this.props.showAppraiseModal("child",item.challenge_id,item.challenge_comment,item.challenge_comment_hidden)} + >编辑:""} +
+
+
+
+
+
+
+
+ +
+
:""} + + + {challenge_comment_hidden===false&&this.props&&this.props.isAdminOrTeacher()===true?
+
+
+ 第{key+1}关评阅内容(仅对课堂老师可见) + + {this.props&&this.props.isAdminOrTeacher()===true?this.props.isdeleteModal(item.comment_id,false)} + >删除:""} + + {this.props&&this.props.isAdminOrTeacher()===true?this.props.showAppraiseModal("child",item.challenge_id,item.challenge_comment,item.challenge_comment_hidden)} + >编辑:""} +
+
+
+
+
+
+
+
+ +
+
:""} + +
) + }) + } + + +
+ ) + } +} +export default ShowAppraiseList; + diff --git a/public/react/src/modules/courses/shixunHomework/shixunreport/OfficialAcademicTranscript.js b/public/react/src/modules/courses/shixunHomework/shixunreport/OfficialAcademicTranscript.js index fe88ef87d..0cb75dee3 100644 --- a/public/react/src/modules/courses/shixunHomework/shixunreport/OfficialAcademicTranscript.js +++ b/public/react/src/modules/courses/shixunHomework/shixunreport/OfficialAcademicTranscript.js @@ -207,7 +207,7 @@ class OfficialAcademicTranscript extends Component { render: (text, record) => ( - {console.log(record)} + this.props.showAppraiseModal("child",record.challenge_id.id,record.challenge_comment,record.challenge_comment_hidden)}