diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 0c643d15c..0b3e35519 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -35,7 +35,7 @@ class CoursesController < ApplicationController :transfer_to_course_group, :delete_from_course, :export_member_scores_excel, :search_users, :add_students_by_search, :get_historical_courses, :add_teacher_popup, :add_teacher, :export_couser_info, :export_member_act_score, - :update_informs, :new_informs, :delete_informs] + :update_informs, :new_informs, :delete_informs, :switch_to_student] before_action :admin_allowed, only: [:set_invite_code_halt, :set_public_or_private, :change_course_admin, :set_course_group, :create_group_by_importing_file, :update_task_position, :tasks_list] @@ -681,13 +681,19 @@ class CoursesController < ApplicationController course_member = @course.course_members.find_by!(user_id: current_user.id, is_active: 1) tip_exception("切换失败") if course_member.STUDENT? - course_student = CourseMember.find_by!(user_id: current_user.id, role: %i[STUDENT], course_id: @course.id) - course_member.update_attributes(is_active: 0) - course_student.update_attributes(is_active: 1) + course_student = CourseMember.find_by(user_id: current_user.id, role: %i[STUDENT], course_id: @course.id) + course_member.update_attributes!(is_active: 0) + if course_student + course_student.update_attributes!(is_active: 1) + else + # 学生身份不存在则创建 + CourseMember.create!(user_id: current_user.id, role: 4, course_id: @course.id) + CourseAddStudentCreateWorksJob.perform_later(@course.id, [current_user.id]) + end normal_status(0, "切换成功") rescue => e uid_logger_error("switch_to_student error: #{e.message}") - tip_exception("切换失败") + tip_exception(e.message) raise ActiveRecord::Rollback end end @@ -1127,7 +1133,7 @@ class CoursesController < ApplicationController def top_banner @user = current_user - @is_teacher = @user_course_identity < Course::STUDENT + @switch_student = Course::BUSINESS < @user_course_identity && @user_course_identity < Course::STUDENT @is_student = @user_course_identity == Course::STUDENT @course.increment!(:visits) end diff --git a/app/controllers/homework_commons_controller.rb b/app/controllers/homework_commons_controller.rb index bdcc3c96d..60cf2d6c5 100644 --- a/app/controllers/homework_commons_controller.rb +++ b/app/controllers/homework_commons_controller.rb @@ -160,7 +160,8 @@ class HomeworkCommonsController < ApplicationController # 作品状态 0: 未提交, 1 按时提交, 2 延迟提交 if params[:work_status].present? - work_status = params[:work_status].map{|status| status.to_i} + params_work_status = request.get? ? params[:work_status].split(",") : params[:work_status] + work_status = params_work_status.map{|status| status.to_i} all_student_works = @student_works.left_joins(:myshixun) @student_works = all_student_works.where(work_status: work_status) @@ -170,7 +171,8 @@ class HomeworkCommonsController < ApplicationController # 分班情况 unless params[:course_group].blank? - group_user_ids = @course.students.where(course_group_id: params[:course_group]).pluck(:user_id) + group_ids = request.get? ? params[:course_group].split(",") : params[:course_group] + group_user_ids = @course.students.where(course_group_id: group_ids).pluck(:user_id) # 有分组只可能是老师身份查看列表 @student_works = @student_works.where(user_id: group_user_ids) end diff --git a/app/helpers/export_helper.rb b/app/helpers/export_helper.rb index 28bef0a89..534a78dc1 100644 --- a/app/helpers/export_helper.rb +++ b/app/helpers/export_helper.rb @@ -452,7 +452,7 @@ module ExportHelper end end - out_file_name = "作品附件_#{homework_common&.course&.name}_#{homework_common.name}_#{Time.now.strftime('%Y%m%d_%H%M%S')}.zip" + out_file_name = "作品附件_#{homework_common.name}_#{Time.now.strftime('%Y%m%d_%H%M%S')}.zip" out_file_name.gsub!(" ", "-") out_file_name.gsub!("/", "_") out_file = find_or_pack(homework_common, homework_common.user_id, digests.sort){ diff --git a/app/services/admins/save_laboratory_setting_service.rb b/app/services/admins/save_laboratory_setting_service.rb index 00e202cd9..f2a5c151e 100644 --- a/app/services/admins/save_laboratory_setting_service.rb +++ b/app/services/admins/save_laboratory_setting_service.rb @@ -30,7 +30,7 @@ class Admins::SaveLaboratorySettingService < ApplicationService hash = {} hash[:name] = strip nav[:name] hash[:link] = strip nav[:link] - hash[:hidden] = nav[:hidden].to_s == 0 + hash[:hidden] = nav[:hidden].to_s != '0' hash end end diff --git a/app/views/courses/top_banner.json.jbuilder b/app/views/courses/top_banner.json.jbuilder index 877ffcdf1..9a0554585 100644 --- a/app/views/courses/top_banner.json.jbuilder +++ b/app/views/courses/top_banner.json.jbuilder @@ -15,7 +15,7 @@ json.is_admin @user_course_identity < Course::PROFESSOR json.is_public @course.is_public == 1 json.code_halt @course.invite_code_halt == 1 json.invite_code @course.invite_code_halt == 0 ? @course.generate_invite_code : "" -json.switch_to_student switch_student_role(@is_teacher, @course, @user) +json.switch_to_student @switch_student json.switch_to_teacher switch_teacher_role(@is_student, @course, @user) json.switch_to_assistant switch_assistant_role(@is_student, @course, @user) #json.join_course !@user.member_of_course?(@course) diff --git a/public/react/src/modules/courses/Resource/index.js b/public/react/src/modules/courses/Resource/index.js index 03627a59f..d61dec15b 100644 --- a/public/react/src/modules/courses/Resource/index.js +++ b/public/react/src/modules/courses/Resource/index.js @@ -745,6 +745,7 @@ class Fileslists extends Component{ {/*选择资源*/} {shixunmodal&&shixunmodal===true?:""} - + {/*设置资源*/} {Settingtype&&Settingtype===true?{ newcourse_groups.push ({ @@ -96,7 +79,6 @@ class Selectsetting extends Component{ datalist:response.data, description: response.data.description, is_public: response.data.is_public, - unified_setting: response.data.unified_setting, datatime:response.data.publish_time, // is_public:response.data.course_groups, //attachment_histories:response.data.attachment_histories @@ -145,21 +127,6 @@ class Selectsetting extends Component{ this.getalldata() } - } - onChangepublics=(e)=>{ - console.log(e.target.checked) - this.setState({ - is_public:e.target.checked - }) - - } - - onChangesettings=(e)=>{ - console.log(e.target.checked) - this.setState({ - unified_setting:e.target.checked - }) - } settextarea=(e)=>{ @@ -180,13 +147,26 @@ class Selectsetting extends Component{ } savecouseShixunModal=()=>{ - let {fileList,is_public,unified_setting,description,datatime,course_groups}=this.state; + let {fileList,is_public,description,datatime,course_groups}=this.state; let newfileList=[]; for(var list of fileList){ newfileList.push(list.response.id) } + if(this.state.Radiovalue===1){ + if(datatime===undefined||datatime===null||datatime=== ""){ + this.setState({ + Radiovaluetype:true + }) + return + }else{ + this.setState({ + Radiovaluetype:false + }) + } + } + if(description===undefined||description===null){ }else if(description.length>100){ @@ -196,29 +176,6 @@ class Selectsetting extends Component{ return } - // course_groups.forEach((item,key)=>{ - // if(item.course_group_id===undefined||item.publish_time===undefined){ - // this.setState({ - // course_group_publish_timestype:true - // }) - // return - // } - // }) - - // if(unified_setting===false){ - // - // course_groups.forEach((item,key)=>{ - // if(item.course_group_id===undefined){ - // this.setState({ - // course_group_idtypes:true - // }) - // return - // } - // }) - // - // } - - let coursesId=this.props.match.params.coursesId; let attachmentId=this.props.attachmentId; let url="/files/"+this.props.discussMessageid+".json"; @@ -228,7 +185,6 @@ class Selectsetting extends Component{ new_attachment_id:newfileList.length===0?undefined:newfileList, course_second_category_id:this.props.coursesidtype===undefined||this.props.coursesidtype==="node"?0:attachmentId, is_public:is_public, - is_unified_setting:unified_setting, publish_time:unified_setting===true?datatime===undefined?moment(new Date()).format('YYYY-MM-DD HH'):datatime:undefined, description:description, course_group_publish_times:unified_setting===false?course_groups:undefined @@ -244,7 +200,6 @@ class Selectsetting extends Component{ } onChangeTimepublish= (date, dateString) => { - // console.log('startValue', dateString); this.setState({ datatime:handleDateString(dateString), }) @@ -268,31 +223,6 @@ class Selectsetting extends Component{ } } - // onAttachmentRemove = (file) => { - // // confirm({ - // // title: '确定要删除这个附件吗?', - // // okText: '确定', - // // cancelText: '取消', - // // // content: 'Some descriptions', - // // onOk: () => { - // // this.deleteAttachment(file) - // // }, - // // onCancel() { - // // console.log('Cancel'); - // // }, - // // }); - // // return false; - // - // // this.setState({ - // // Modalstype:true, - // // Modalstopval:'确定要删除这个附件吗?', - // // ModalSave: ()=>this.deleteAttachment(file), - // // ModalCancel:this.cancelAttachment - // // }) - // // return false; - // - // this.deleteAttachment(file); - // } onAttachmentRemove = (file) => { @@ -309,14 +239,7 @@ class Selectsetting extends Component{ fileListtype:false, fileList:[] }) - // this.setState((state) => { - // const index = state.fileList.indexOf(file); - // const newFileList = state.fileList.slice(); - // newFileList.splice(index, 1); - // return { - // fileList: newFileList, - // }; - // }); + } } }) @@ -332,63 +255,23 @@ class Selectsetting extends Component{ fileList:[] }) } - // const url = `/attachments/${file.response ? file.response.id : file.uid}.json` - } - onChangeTimepublishs= (date, dateString,key) => { - let {course_groups}=this.state; - let newgroup_publish=course_groups; - for(var i=0; i{ this.setState({ - course_groups:newgroup_publish, - }) - } - - - selectassigngroups=(e,index,key)=>{ - let {course_groups}=this.state; - let newgroup_publish=course_groups; - for(var i=0; i{ - let newlist=this.state.course_groups; - newlist.splice(key,1); - this.setState({ - course_groups:newlist + is_public:e.target.checked }) } - - addgrouppublish=()=>{ - let newlist=this.state.course_groups; - newlist.push( { - course_group_id : undefined, - publish_time :"" - // moment(new Date()).format('YYYY-MM-DD HH:mm') - }) + RadioonChange=(e)=>{ this.setState({ - course_groups:newlist - }) + Radiovalue: e.target.value, + }); } render(){ - let {is_public,unified_setting,course_groups,datatime,description,datalist,course_group_publish_timestype}=this.state; + let {datatime,description,datalist}=this.state; const uploadProps = { width: 600, - // https://github.com/ant-design/ant-design/issues/15505 - // showUploadList={false},然后外部拿到 fileList 数组自行渲染列表。 - // showUploadList: false, action: `${getUrl()}/api/attachments.json`, onChange: this.handleChange, onRemove: this.onAttachmentRemove, @@ -401,9 +284,11 @@ class Selectsetting extends Component{ return isLt150M; }, }; - - - // console.log(this.props.has_course_groups) + const radioStyle = { + display: 'block', + height: '30px', + lineHeight: '30px', + }; return(
*/} - {/*{this.state.fileList.length===0?"":this.state.fileList.map((item,key)=>{*/} - {/*return(*/} - {/*

*/} - {/**/} - {/**/} - {/**/} - {/**/} - {/*{item.name}*/} - {/**/} - {/**/} - {/*{item.response===undefined?"":isNaN(bytesToSize(item.filesize))?"123":bytesToSize(item.filesize)}*/} - {/**/} - {/*this.onAttachmentRemove(item.response===undefined?"":item.response.id&&item.response.id)}>*/} - {/*

*/} - {/*)*/} - {/*})}*/} - {this.state.newfileListtypes===true?

请先上传资源

:""}

@@ -647,21 +501,6 @@ class Selectsetting extends Component{ margin-top:10px; } `} - - {/*

*/} - {/**/} - {/*勾选后所有用户可见,否则仅课堂成员可见*/} - {/**/} - {/*
*/} - {/*{this.props.has_course_groups&&this.props.has_course_groups===true?:""}*/} - {this.state.course_groupss&&this.state.course_groupss.length>0? - 统一设置(选中则所有分班使用相同的发布设置,否则各个单独设置) - :""} - - - - {/*this.props.has_course_groups&&this.props.has_course_groups===true?:""*/} -
- {unified_setting===false? - this.state.course_groups&&this.state.course_groups.map((item,key)=>{ - return( -
- - - - - - this.onChangeTimepublishs(e,index,key)} - // onChange={ this.onChangeTimepublish } - disabledTime={disabledDateTime} - disabledDate={disabledDate} - /> - - {key!=0?this.deletegrouppublish(key)}>:""} - {key===course_groups.length-1?:""} -
- ) - }):""} -
- + {this.props.course_is_public===true?
+ 公开: + 选中,所有用户可见,否则课堂成员可见 + +
:""}

- {unified_setting===true? -

- - - -

:""} - {/*{this.state.course_group_idtypes===true?

请选择分班

:""}*/} - - {/*{course_group_publish_timestype===true?

请填写完整

:""}*/} + +
+ 发布设置: + + + 立即发布 + + + 延迟发布 + + + (按照设置的时间定时发布) + +
+ {this.state.descriptiontypes===true?

描述不能超过最大限制:100个字符

:""} + {this.state.Radiovaluetype===true?

发布时间不能为空

:""}
diff --git a/public/react/src/modules/courses/coursesPublic/sendResource.js b/public/react/src/modules/courses/coursesPublic/sendResource.js index fbc2ebeb2..bf810a140 100644 --- a/public/react/src/modules/courses/coursesPublic/sendResource.js +++ b/public/react/src/modules/courses/coursesPublic/sendResource.js @@ -1,5 +1,5 @@ import React,{ Component } from "react"; -import { Modal,Checkbox,Upload,Button,Icon,message,DatePicker,Select,Tooltip} from "antd"; +import { Modal,Checkbox,Upload,Button,Icon,message,DatePicker,Select,Tooltip,Radio} from "antd"; import axios from 'axios'; import Modals from '../../modals/Modals'; import {getUrl,handleDateString,bytesToSize,appendFileSizeToUploadFileAll} from 'educoder'; @@ -40,7 +40,6 @@ class Sendresource extends Component{ ModalSave:"", fileListtype:false, loadtype:false, - is_unified_setting:true, is_public:false, datatime:undefined, // moment(new Date()).format('YYYY-MM-DD HH:mm:ss'), @@ -50,7 +49,9 @@ class Sendresource extends Component{ publish_time :"" }], course_groups:undefined, - course_groups_count:undefined + course_groups_count:undefined, + Radiovalue:0, + Radiovaluetype:false } } @@ -101,37 +102,6 @@ class Sendresource extends Component{ } } - // onAttachmentRemove = (file) => { - // - // this.setState({ - // fileListtype:false, - // }) - // // confirm({ - // // title: '确定要删除这个附件吗?', - // // okText: '确定', - // // cancelText: '取消', - // // // content: 'Some descriptions', - // // onOk: () => { - // // this.deleteAttachment(file) - // // }, - // // onCancel() { - // // console.log('Cancel'); - // // }, - // // }); - // // return false; - // - // // this.setState({ - // // Modalstype:true, - // // Modalstopval:'确定要删除这个附件吗?', - // // ModalSave: ()=>this.deleteAttachment(file), - // // ModalCancel:this.cancelAttachment - // // }) - // // return false; - // - // this.deleteAttachment(file); - // } - - onAttachmentRemove = (file) => { if(!file.percent || file.percent == 100){ const url = `/attachments/${file.response ? file.response.id : file.uid}.json` @@ -174,8 +144,7 @@ class Sendresource extends Component{ } Saves=()=>{ - let id=this.props.categoryid; - let {fileList,description,is_public,is_unified_setting,datatime,course_group_publish_times} =this.state; + let {fileList,description,is_public,datatime,Radiovalue} =this.state; let newfileList=[]; for(var list of fileList){ @@ -188,17 +157,19 @@ class Sendresource extends Component{ }) return } - // if(is_unified_setting===false){ - // course_group_publish_times.forEach((item,key)=>{ - // if(item.course_group_id===undefined||item.publish_time===undefined){ - // this.setState({ - // course_group_publish_timestype:true - // }) - // return - // } - // }) - // - // } + + if(this.state.Radiovalue===1){ + if(datatime===undefined||datatime===null||datatime=== ""){ + this.setState({ + Radiovaluetype:true + }) + return + }else{ + this.setState({ + Radiovaluetype:false + }) + } + } @@ -222,22 +193,14 @@ class Sendresource extends Component{ course_second_category_id:this.props.coursesidtype===undefined||this.props.coursesidtype==="node"?0:attachmentId, attachment_ids:newfileList, is_public:is_public, - is_unified_setting:is_unified_setting, - publish_time:is_unified_setting===true?datatime===undefined? moment(new Date()).format('YYYY-MM-DD HH:mm'):datatime:undefined, + publish_time:Radiovalue===1?datatime===undefined? undefined:datatime:undefined, description:description, - course_group_publish_times:is_unified_setting===false?course_group_publish_times:undefined + delay_publish:Radiovalue, }).then((result)=>{ if(result.data.status===0){ - // this.setState({ - // Modalstype:true, - // Modalstopval:result.data.message, - // ModalSave:this.ModalCancelModalCancel, - // loadtype:true - // }) this.ModalCancelModalCancel(); this.props.updataleftNavfun(); - // this.props.showNotification(result.data.message); this.props.showNotification("上传资源成功"); this.props.setupdate(this.props.attachmentId) } @@ -253,14 +216,6 @@ class Sendresource extends Component{ }) } - onChangesetting=(e)=>{ - - this.setState({ - is_unified_setting:e.target.checked - }) - - } - onChangepublic=(e)=>{ this.setState({ @@ -289,50 +244,15 @@ class Sendresource extends Component{ } - selectassigngroups=(e,index,key)=>{ - let {course_group_publish_times}=this.state; - let newgroup_publish=course_group_publish_times; - for(var i=0; i{ this.setState({ - course_group_publish_times:newgroup_publish, - }) + Radiovalue: e.target.value, + }); } - - deletegrouppublish=(key)=>{ - let newlist=this.state.course_group_publish_times; - newlist.splice(key,1); - this.setState({ - course_group_publish_times:newlist - }) - } - - addgrouppublish=()=>{ - let newlist=this.state.course_group_publish_times; - newlist.push( { - course_group_id : undefined, - publish_time :undefined - }) - this.setState({ - course_group_publish_times:newlist - }) - } - render(){ - let {settextarea,newfileListtype,descriptiontype, - course_group_publish_timestype, - Modalstopval, - ModalCancel, - ModalSave, - loadtype, - is_unified_setting, + let { newfileListtype,descriptiontype, is_public, datatime, - course_group_publish_times, - course_groups }=this.state; const uploadProps = { @@ -350,7 +270,11 @@ class Sendresource extends Component{ return isLt150M; }, }; - + const radioStyle = { + display: 'block', + height: '30px', + lineHeight: '30px', + }; return(
{/*提示*/} @@ -389,6 +313,7 @@ class Sendresource extends Component{ margin-right: 5px; } .ant-upload-list-item:hover .ant-upload-list-item-info{ + padding: 0 12px 0 0px; background-color:#fff; } .upload_1 .ant-upload-list { @@ -437,42 +362,12 @@ class Sendresource extends Component{ - (单个文件最大150M) + (单个文件最大150M) :""}

- {/**/} - {/*{this.state.fileList.length===0?"":this.state.fileList.map((item,key)=>{*/} - {/*debugger*/} - {/*return(*/} - {/*

*/} - {/**/} - {/**/} - {/**/} - {/**/} - {/*{item.name}*/} - {/**/} - {/**/} - {/*{item.response===undefined?"":isNaN(bytesToSize(item.filesize))?"":bytesToSize(item.filesize)}*/} - {/**/} - {/*this.onAttachmentRemove(item.response===undefined?"":item.response.id&&item.response.id)}>*/} - {/*

*/} - {/*)*/} - {/*})}*/} + {newfileListtype===true&&this.state.fileListtype===false?

请先上传资源

:""} @@ -484,13 +379,12 @@ class Sendresource extends Component{ } `} - {/*
*/} - {/*勾选后所有用户可见,否则仅课堂成员可见*/} - {/**/} + {this.props.course_is_public===true?
+ 公开: + 选中,所有用户可见,否则课堂成员可见 + +
:""} - {this.state.course_groups_count&&this.state.course_groups_count>0? - 统一设置(选中则所有分班使用相同的发布设置,否则各个单独设置) - :""} -
- {is_unified_setting===false? - course_group_publish_times.map((item,key)=>{ - return( -
- - - - this.onChangeTimepublish(e,index,key,2)} - // onChange={ this.onChangeTimepublish } - disabledTime={disabledDateTime} - disabledDate={disabledDate} - /> - {key!=0?this.deletegrouppublish(key)}>:""} - {key===course_group_publish_times.length-1&&key:""} -
- ) - }) - - :""} -
-

- {is_unified_setting===true?

- - this.onChangeTimepublish(e,index,undefined,1)} - disabledTime={disabledDateTime} - disabledDate={disabledDate} - /> - -

:""} + +
+ 发布设置: + + + 立即发布 + + + 延迟发布 + this.onChangeTimepublish(e,index,undefined,1)} + disabledTime={disabledDateTime} + disabledDate={disabledDate} + disabled={this.state.Radiovalue===1?false:true} + /> + + (按照设置的时间定时发布) + +
+ {/*{course_group_publish_timestype===true?

请填写完整

:""}*/} {descriptiontype===true?

请输入资源描述,最大限制100个字符

:""} + {this.state.Radiovaluetype===true?

发布时间不能为空

:""}
{this.props.Cancelname} this.Saves()}>{this.props.Savesname} diff --git a/public/react/src/modules/courses/members/CourseGroupList.js b/public/react/src/modules/courses/members/CourseGroupList.js index ec0b23fb3..664e0d95a 100644 --- a/public/react/src/modules/courses/members/CourseGroupList.js +++ b/public/react/src/modules/courses/members/CourseGroupList.js @@ -152,7 +152,7 @@ function CourseGroupList(props) { } { // pageType !== TYPE_STUDENTS && - !isCourseEnd && isAdmin && isParent && addDir()}>新建分班 } + !isCourseEnd && isAdmin && addDir()}>新建分班 } {/* { isAdmin && !isParent && course_group_id != 0 && deleteDir()}>删除分班 } */} {/* { diff --git a/public/react/src/modules/courses/members/CourseGroupListTable.js b/public/react/src/modules/courses/members/CourseGroupListTable.js index 84edb2fc5..1560183f5 100644 --- a/public/react/src/modules/courses/members/CourseGroupListTable.js +++ b/public/react/src/modules/courses/members/CourseGroupListTable.js @@ -28,7 +28,6 @@ function CourseGroupListTable(props) { } course_groups.forEach((record) => { const id = record.id - debugger; let _clipboard = new ClipboardJS(`.copyBtn_${id}`); _clipboard.on('success', (e) => { props.showNotification('复制成功') @@ -142,7 +141,7 @@ function CourseGroupListTable(props) { return columns } - const addToDir = async (record) => { + const doAddToDir = async (record) => { const courseId = props.match.params.coursesId const url = `/courses/${courseId}/join_course_group.json` const course_group_id = record.id @@ -151,11 +150,27 @@ function CourseGroupListTable(props) { course_group_id }) if (response && response.data.status == 0) { - props.showNotification('加入成功') + props.showNotification(`已加入分班:${record.name}`) props.updataleftNavfun() props.onOperationSuccess && props.onOperationSuccess() } } + const addToDir = (record) => { + props.confirm({ + + content: `是否确认加入分班: ${record.name}?`, + + okText: '确认', + cancelText: '取消', + + onOk: () => { + doAddToDir(record) + }, + onCancel() { + console.log('Cancel'); + }, + }); + } function onDelete(record) { props.confirm({ @@ -198,7 +213,7 @@ function CourseGroupListTable(props) { const dataSource = course_groups.map(item => { return { ...item, - subStringOfMember_manager : item.member_manager.length > 92 + subStringOfMember_manager : (item.member_manager && item.member_manager.length > 92) ? item.member_manager.substring(0, 92) + '...' : null } }) diff --git a/public/react/src/modules/courses/members/studentsList.js b/public/react/src/modules/courses/members/studentsList.js index 9acc4c0bf..38a89584d 100644 --- a/public/react/src/modules/courses/members/studentsList.js +++ b/public/react/src/modules/courses/members/studentsList.js @@ -130,7 +130,7 @@ const buildColumns = (that,isParent) => { } const isAdmin = that.props.isAdmin() if (isAdmin) { - columns.unshift({ + !that.isStudentPage && columns.unshift({ title: '', dataIndex: 'check', key: 'check', @@ -547,7 +547,7 @@ class studentsList extends Component{ addDir = () => { trigger('groupAdd', this.props.coursesids) } - addToDir = async () => { + doAddToDir = async () => { const courseId = this.props.match.params.coursesId const url = `/courses/${courseId}/join_course_group.json` const course_group_id = this.props.match.params.course_group_id @@ -556,11 +556,27 @@ class studentsList extends Component{ course_group_id }) if (response && response.data.status == 0) { - this.props.showNotification('加入成功') + this.props.showNotification(`已加入分班:${this.state.course_group_name}`) this.props.updataleftNavfun() this.fetchAll() } } + addToDir = (record) => { + this.props.confirm({ + + content: `是否确认加入分班: ${this.state.course_group_name}?`, + + okText: '确认', + cancelText: '取消', + + onOk: () => { + this.doAddToDir() + }, + onCancel() { + console.log('Cancel'); + }, + }); + } renameDir = () => { const course_group_id = this.props.match.params.course_group_id trigger('groupRename', { id: parseInt(course_group_id), name: this.state.course_group_name}) @@ -670,7 +686,8 @@ class studentsList extends Component{ } else { pageType = TYPE_COURSE_GOURP_CHILD } - + const isStudentPage = pageType == TYPE_STUDENTS + this.isStudentPage = isStudentPage return( @@ -708,23 +725,24 @@ class studentsList extends Component{ searchPlaceholder={ '请输入姓名、学号进行搜索' } firstRowRight={ - { + {/* { // pageType !== TYPE_STUDENTS && - isSuperAdmin && + !isStudentPage && isSuperAdmin && this.refs['createGroupByImportModal'].setVisible(true)}>导入创建分班 - } + } */} + { - // pageType !== TYPE_STUDENTS && - !isCourseEnd && isAdmin && isParent && this.addDir()}>添加分班 } + !isStudentPage && isAdmin && !isParent && course_group_id != 0 && this.deleteDir()}>删除分班 } { - isStudent && !isParent && course_group_id != 0 && this.addToDir()}>加入分班 } + !isStudentPage && isAdmin && !isParent && course_group_id != 0 && this.renameDir()}>分班重命名 } { - isAdmin && !isParent && course_group_id != 0 && this.deleteDir()}>删除分班 } + !isStudentPage && !isCourseEnd && isAdmin && isParent && this.addDir()}>新建分班 } + { - isAdmin && !isParent && course_group_id != 0 && this.renameDir()}>分班重命名 } + !isStudentPage && isStudent && !isParent && course_group_id != 0 && this.addToDir()}>加入分班 }