diff --git a/public/react/src/modules/courses/coursesDetail/CoursesBanner.js b/public/react/src/modules/courses/coursesDetail/CoursesBanner.js
index 98c56ff37..f54c99978 100644
--- a/public/react/src/modules/courses/coursesDetail/CoursesBanner.js
+++ b/public/react/src/modules/courses/coursesDetail/CoursesBanner.js
@@ -130,16 +130,17 @@ class CoursesBanner extends Component {
axios.get(url,{params:
dataqueryss
}).then((result) => {
- if(result.data.status===-2){
- // this.setState({
- // AccountProfiletype:true,
- // content:result.data.message,
- // okText:"立即认证",
- // cannelText:"稍后认证",
- // okHref:`/account/certification`,
- // Accounturltype:true
- // })
- }else{
+ try {
+ if(result.data.status===-2){
+ // this.setState({
+ // AccountProfiletype:true,
+ // content:result.data.message,
+ // okText:"立即认证",
+ // cannelText:"稍后认证",
+ // okHref:`/account/certification`,
+ // Accounturltype:true
+ // })
+ }else{
if( result!=undefined){
let data = result.data;
this.setState({
@@ -150,8 +151,12 @@ class CoursesBanner extends Component {
}else{
this.onloadupdatabanner()
}
+ }
+ }catch (e) {
+
}
+
})
};
foo=(url)=> {
diff --git a/public/react/src/modules/courses/coursesPublic/ModulationModal_exercise.js b/public/react/src/modules/courses/coursesPublic/ModulationModal_exercise.js
index 7c6e6cf6e..4950d10d0 100644
--- a/public/react/src/modules/courses/coursesPublic/ModulationModal_exercise.js
+++ b/public/react/src/modules/courses/coursesPublic/ModulationModal_exercise.js
@@ -42,8 +42,8 @@ class ModulationModal_exercise extends Component {
}
componentDidMount = () => {
- console.log("ModulationModal_exercise");
- console.log(this.props);
+ // console.log("ModulationModal_exercise");
+ // console.log(this.props);
this.setState({
subjective_score: this.props.subjective_score,
objective_score: this.props.objective_score,
diff --git a/public/react/src/modules/courses/exercise/ExerciseListItem.js b/public/react/src/modules/courses/exercise/ExerciseListItem.js
index 52f05bb6d..a4bdc5c29 100644
--- a/public/react/src/modules/courses/exercise/ExerciseListItem.js
+++ b/public/react/src/modules/courses/exercise/ExerciseListItem.js
@@ -75,9 +75,10 @@ class ExerciseListItem extends Component{
let{item,checkBox,index}=this.props;
let {coursesId,Id}=this.props.match.params
const IsAdmin =this.props.isAdmin();
- const IsStudent =this.props.isStudent();
+ const isAssistant=this.props.isAssistant();
+
+ const IsStudent =this.props.isStudent();
- // console.log(this.props.current_user.user_id)
return(
window.$(`.exerciseitem${index} input`).click() }>
{
@@ -189,8 +190,31 @@ class ExerciseListItem extends Component{
{ IsAdmin &&
}
diff --git a/public/react/src/modules/courses/exercise/Exercisesetting.js b/public/react/src/modules/courses/exercise/Exercisesetting.js
index 0e613a554..2a43f42fb 100644
--- a/public/react/src/modules/courses/exercise/Exercisesetting.js
+++ b/public/react/src/modules/courses/exercise/Exercisesetting.js
@@ -75,10 +75,11 @@ class Exercisesetting extends Component{
limit:10,
searchtext:"",
order: "end_at",
+ assistant_auth:false
}
- console.log("Exercisesetting");
- console.log("69");
- console.log(props);
+ // console.log("Exercisesetting");
+ // console.log("69");
+ // console.log(props);
}
_getRequestParams() {
const { order, exercise_group_id,searchtext, page ,limit} = this.state
@@ -92,6 +93,12 @@ class Exercisesetting extends Component{
}
//加载
componentDidMount=()=>{
+ this.setState({
+ assistant_auth:this.props.assistant_auth,
+ })
+
+
+
this.getSettingInfo();
// window.addEventListener('click', this.handleClick);
@@ -108,11 +115,34 @@ class Exercisesetting extends Component{
if(this.props.isAdmin() === false){
this.cancelEdit()
}
+
+ try {
+ //是否为助教
+ if(this.props.isAssistant()===true){
+ //如果是助教是否有权限
+ if(this.props.assistant_auth===true){
+ this.setState({
+ flagPageEdit:true
+ })
+ }else{
+ this.setState({
+ flagPageEdit:false
+ })
+ }
+ }
+ }catch (e) {
+
+ }
}
componentDidUpdate = (prevProps) => {
if(prevProps.Commonheadofthetestpaper!= this.props.Commonheadofthetestpaper){
this.editSetting()
}
+ if(prevProps.assistant_auth!= this.props.assistant_auth){
+ this.setState({
+ assistant_auth:this.props.assistant_auth,
+ })
+ }
}
_getRequestParams() {
@@ -348,10 +378,16 @@ class Exercisesetting extends Component{
this.commitSetting((result)=>{
console.log(result)
- if(result.status==200){
+ if(result.status===200){
this.props.showNotification(`${result.data.message}`);
this.getSettingInfo(1);
this.cancelEdit();
+ try {
+ this.props.assistantauthoritys(this.state.assistant_auth);
+
+ }catch (e) {
+
+ }
}
})
}
@@ -371,6 +407,12 @@ class Exercisesetting extends Component{
this.props.showNotification(`${result.data.message}`);
this.cancelEdit();
this.getSettingInfo(1);
+ try {
+ this.props.assistantauthoritys(this.state.assistant_auth);
+
+ }catch (e) {
+
+ }
}
});
@@ -386,11 +428,12 @@ class Exercisesetting extends Component{
publish_time:this.state.publish_time,
end_time:this.state.end_time,
show_statistic:this.state.show_statistic,
- choice_random:this.state.choice_random,
+ choice_random:this.state.choice_random,
score_open:this.state.score_open,
answer_open:this.state.answer_open,
question_random:this.state.question_random,
time:this.state.time,
+ assistant_auth:this.state.assistant_auth,
}
}else{
let list=this.state.rules;
@@ -403,7 +446,6 @@ class Exercisesetting extends Component{
}
lists.push(newlist)
})
-
params={
unified_setting:this.state.unified_setting,
show_statistic:this.state.show_statistic,
@@ -413,6 +455,7 @@ class Exercisesetting extends Component{
answer_open:this.state.answer_open,
publish_time_groups:lists,
time:this.state.time,
+ assistant_auth:this.state.assistant_auth,
}
}
axios.post((url),params).then((result)=>{
@@ -491,6 +534,12 @@ class Exercisesetting extends Component{
})
}
+ assistantauthority=(e)=>{
+ this.setState({
+ assistant_auth:e.target.checked
+ })
+ }
+
onChangeTimepublish=(date, dateString)=>{
if(date===null){
this.setState({
@@ -555,9 +604,33 @@ class Exercisesetting extends Component{
modalSave:this.cancelBox
})
}else{
- this.setState({
- flagPageEdit:true
- })
+ if(this.props.isAdmin()===true){
+ try {
+ //是否为助教
+ if(this.props.isAssistant()===true){
+ //如果是助教是否有权限
+ if(this.props.assistant_auth===true){
+ this.setState({
+ flagPageEdit:true
+ })
+ }else{
+ this.setState({
+ flagPageEdit:false
+ })
+ }
+ }else{
+ //是老师
+ this.setState({
+ flagPageEdit:true
+ })
+ }
+ }catch (e) {
+ this.setState({
+ flagPageEdit:true
+ })
+ }
+ }
+
}
}
//取消编辑
@@ -608,7 +681,9 @@ class Exercisesetting extends Component{
// console.log("asdasdasda");
// console.log(this.props);
// console.log(this.props.Commonheadofthetestpaper);
- return(
+
+
+ return(
发布设置
{
!flagPageEdit&&this.props.isAdmin()===true ?
-
- 编辑设置
- {/**/}
- {/**/}
- {/**/}
-
- :""
+ (
+ this.props.isAssistant()===true?
+ (
+ this.props.assistant_auth===true?
+
+ 编辑设置
+
+ :
+ ""
+ )
+ :
+
+ 编辑设置
+
+ )
+ :""
}
@@ -769,7 +853,7 @@ class Exercisesetting extends Component{
-
公开设置
+
属性设置
@@ -790,7 +874,7 @@ class Exercisesetting extends Component{
(选中,则在试卷截止时间之后,已提交答题的学生可以查看试卷题目的答案,否则不能查看)
-
+
{getFieldDecorator('show_statistic')
(
@@ -799,6 +883,15 @@ class Exercisesetting extends Component{
(选中,则在试卷截止时间之后,已提交答题的学生可以查看答题统计,否则不能查看)
+
+
+ {getFieldDecorator('assistantauthority')
+ (
+ 助教权限
+ )}
+
+
(勾选则允许助教查看答案)
+
@@ -808,7 +901,10 @@ class Exercisesetting extends Component{
:""
+
+
+
+ :""
}
@@ -820,70 +916,3 @@ const WrappedExercisesetting = Form.create({ name: 'exercisesetting' })(Exercise
export default WrappedExercisesetting;
-// //提交form表单
-// handleSubmit = (e) => {
-//
-// let{unified_setting,answer_open}=this.state;
-// e.preventDefault();
-// let exercise_id=this.props.match.params.Id;
-//
-// this.props.form.validateFieldsAndScroll((err, values) => {
-// debugger
-// if(!err){
-// // 第一次进行问卷设置或者勾选了统一设置
-// if(unified_setting==true){
-// if(this.state.p_flag == false && this.state.e_flag == true){
-// // 选择了发布时间但截至时间没有选择
-// this.setState({
-// modalsType:true,
-// modalsTopval:"请选择截止时间",
-// loadtype:true,
-// modalSave:this.cancelBox
-// })
-// return;
-// }else if(this.state.p_flag == true && this.state.e_flag == true){
-// // 如果两个时间都没有填写则弹出立即发布弹框
-// let{publish_time,end_time}=this.state
-// if(publish_time==undefined && end_time ==undefined){
-//
-// }else{
-// // 否则就是选择的时间错误
-// this.setState({
-// modalsType:true,
-// modalsTopval:"请选择正确的发布时间和截止时间",
-// loadtype:true,
-// modalSave:this.cancelBox
-// })
-// }
-// return;
-// }
-// }
-//
-// let url=`/exercises/${exercise_id}/commit_setting.json`;
-// let params=[];
-// if(values.unitSet){
-// params={
-// unified_setting:values.unitSet,
-// publish_time:this.state.publish_time,
-// end_time:this.state.end_time,
-// show_result:values.public,
-// un_anonymous:values.real
-// }
-// }else{
-// params={
-// unified_setting:values.unitSet,
-// show_result:values.public,
-// un_anonymous:values.real,
-// publish_time_groups:this.state.rules
-// }
-// }
-// axios.post((url),{params}).then((result)=>{
-// if(result.status==200){
-// this.props.showNotification(`${result.data.message}`);
-// }
-// }).catch((error)=>{
-// console.log(error);
-// })
-// }
-// })
-// }
diff --git a/public/react/src/modules/courses/exercise/Studentshavecompletedthelist.js b/public/react/src/modules/courses/exercise/Studentshavecompletedthelist.js
index 9c6e8a87b..12e3f4235 100644
--- a/public/react/src/modules/courses/exercise/Studentshavecompletedthelist.js
+++ b/public/react/src/modules/courses/exercise/Studentshavecompletedthelist.js
@@ -1158,8 +1158,24 @@ class Studentshavecompletedthelist extends Component {
{
record.submitstate === "未提交"||record.commit_method===5?
- this.Adjustment(record.user_id)}>评阅
+ (//是否助教
+ this.props.isAssistant()&&this.props.isAssistant()===true?
+ (//助教是否有权限
+ this.props.assistant_auth&&this.props.assistant_auth===true?
+ (//是否截止
+ this.props.Commonheadofthetestpaper && this.props.Commonheadofthetestpaper.exercise_status===3?
+ this.Adjustment(record.user_id)}>评阅
+ :
+ --
+ )
+ :
+ --
+ )
+ :
+ this.Adjustment(record.user_id)}>评阅
+ )
:record.submitstate === "已提交"?
--
}
-
+
)
},
],
@@ -1376,8 +1392,24 @@ class Studentshavecompletedthelist extends Component {
{
record.submitstate === "未提交"||record.commit_method===5?
- this.Adjustment(record.user_id)}>评阅
+ (//是否助教
+ this.props.isAssistant()&&this.props.isAssistant()===true?
+ (//助教是否有权限
+ this.props.assistant_auth&&this.props.assistant_auth===true?
+ (//是否截止
+ this.props.Commonheadofthetestpaper && this.props.Commonheadofthetestpaper.exercise_status===3?
+ this.Adjustment(record.user_id)}>评阅
+ :
+ --
+ )
+ :
+ --
+ )
+ :
+ this.Adjustment(record.user_id)}>评阅
+ )
:record.submitstate === "已提交"?
--
}
-
+
)
},
],//columnsystwo 也会被columnsys当作参数接收
@@ -2772,8 +2804,16 @@ class Studentshavecompletedthelist extends Component {
}
// 调分
Adjustment = (e) => {
- console.log("Adjustment");
- console.log(e);
+ // console.log("Adjustment");
+ // console.log(e);
+ if(this.state.objective_score===0&&this.state.subjective_score===0){
+ this.props.showNotification('试卷题型分被限制为0分,不能调分,请点击编辑试卷修改题型分数');
+
+ return
+ }
+
+
+
this.setState({
testpapergradingboll: true,
exeuserid: e,
@@ -2828,8 +2868,8 @@ class Studentshavecompletedthelist extends Component {
// //console.log("this.props.Commonheadofthetestpaper.exercise_status");
// //console.log(this.props.Commonheadofthetestpaper&&this.props.Commonheadofthetestpaper.exercise_status);
// //console.log(exercise_status);
- console.log("Studentshavecompletedthelis123123t");
- console.log(columnss);
+ // console.log("Studentshavecompletedthelis123123t");
+ // console.log(columnss);
return (
isAdmin === true ?
(
diff --git a/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js b/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js
index ce63ca526..88d1755f0 100644
--- a/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js
+++ b/public/react/src/modules/courses/exercise/Testpapersettinghomepage.js
@@ -35,6 +35,7 @@ class Testpapersettinghomepage extends Component{
DownloadMessageval:undefined,
donwloading:false,
exercise_status:3,
+ assistant_auth:false, //设置助教
}
}
//切换tab
@@ -72,6 +73,7 @@ class Testpapersettinghomepage extends Component{
Commonheadofthetestpaper:response.data,
current_status:response.data.user_permission.current_status,
exercise_status:response.data.exercise_status,
+ assistant_auth:response.data.assistant_auth,
})
// console.log(JSON.stringify(response.data.show_statistic));
@@ -85,6 +87,12 @@ class Testpapersettinghomepage extends Component{
}
+ assistantauthoritys=(bool)=>{
+ this.setState({
+ assistant_auth:bool,
+ })
+ }
+
Ecerciseacallagain=()=>{
this.setState({
visible:true
@@ -287,9 +295,11 @@ class Testpapersettinghomepage extends Component{
this.props.history.goBack()
}
render(){
- let {tab,visible,Commonheadofthetestpaper,exercise_status}=this.state;
+ let {tab,visible,Commonheadofthetestpaper,exercise_status,assistant_auth}=this.state;
const isAdmin =this.props.isAdmin();
- const isStudent = this.props.isStudent();
+ const isAssistant=this.props.isAssistant();
+
+ const isStudent = this.props.isStudent();
// TODO
//console.log(Commonheadofthetestpaper.exercise_status);
@@ -353,7 +363,26 @@ class Testpapersettinghomepage extends Component{
- {this.props.isAdmin()===true?
+ {isAssistant===true?
+ (
+ assistant_auth===true?
+
+ :
+
+ )
+ :
+ this.props.isAdmin()===true?
diff --git a/public/react/src/modules/tpm/TPMIndexHOC.js b/public/react/src/modules/tpm/TPMIndexHOC.js
index 27ed40437..1731a55fa 100644
--- a/public/react/src/modules/tpm/TPMIndexHOC.js
+++ b/public/react/src/modules/tpm/TPMIndexHOC.js
@@ -276,6 +276,10 @@ export function TPMIndexHOC(WrappedComponent) {
isAdminOrTeacher = () => {
return this.state.coursedata&&this.state.coursedata.course_identity < 4
}
+ // 助教===4
+ isAssistant=()=>{
+ return this.state.coursedata&&this.state.coursedata.course_identity ===4
+ }
// 超管、运维、课堂管理、老师、助教0-4
isAdmin = () => {
return this.state.coursedata&&this.state.coursedata.course_identity < 5
@@ -711,6 +715,7 @@ export function TPMIndexHOC(WrappedComponent) {
isAdmin: this.isAdmin,
isAdminOrTeacher: this.isAdminOrTeacher,
+ isAssistant:this.isAssistant,
isStudent: this.isStudent,
isAdminOrStudent: this.isAdminOrStudent,
isNotMember: this.isNotMember,