diff --git a/app/controllers/admins/competition_settings_controller.rb b/app/controllers/admins/competition_settings_controller.rb index d062e4c46..b2e1dba26 100644 --- a/app/controllers/admins/competition_settings_controller.rb +++ b/app/controllers/admins/competition_settings_controller.rb @@ -20,10 +20,14 @@ class Admins::CompetitionSettingsController < Admins::BaseController end def basic_form_params - params.permit(:identifier, :name, :sub_title, :sponsor_schools, :region_schools, :start_time, :end_time, :mode, :identifier, :bonus, :awards_count, :description, :course_id, :teach_start_time, :teach_end_time) + params.permit(:identifier, :name, :sub_title, :start_time, :end_time, :mode, + :identifier, :bonus, :awards_count, :description, :course_id, :teach_start_time, + :teach_end_time, sponsor_schools: [], region_schools: []) end def nav_form_params - params.permit(:enroll_end_time, competition_staffs: %i[category minimum maximum mutiple_limited], navbar: %i[module_type name hidden position url]) + params.permit(:enroll_end_time, + competition_staffs: %i[category minimum maximum mutiple_limited], + navbar: %i[module_type name hidden position url]) end end \ No newline at end of file diff --git a/app/services/admins/competition_basic_setting_service.rb b/app/services/admins/competition_basic_setting_service.rb index dc3a9cdc5..fa8264f36 100644 --- a/app/services/admins/competition_basic_setting_service.rb +++ b/app/services/admins/competition_basic_setting_service.rb @@ -35,16 +35,18 @@ class Admins::CompetitionBasicSettingService < ApplicationService end # 主办方设置 - new_school_ids = (params[:sponsor_schools] || []) - competition.sponsor_schools.pluck(:school_id) - delete_school_ids = competition.sponsor_schools.pluck(:school_id) - (params[:sponsor_schools] || []) + params[:sponsor_schools] = Array.wrap(params[:sponsor_schools]).map(&:to_i) + new_school_ids = params[:sponsor_schools] - competition.sponsor_schools.pluck(:school_id) + delete_school_ids = competition.sponsor_schools.pluck(:school_id) - params[:sponsor_schools] new_school_ids.each do |school_id| CompetitionSchool.create!(competition_id: competition.id, school_id: school_id, source: 'sponsor') end competition.sponsor_schools.where(school_id: delete_school_ids).destroy_all # 开放范围设置 - new_region_school_ids = (params[:region_schools] || []) - competition.region_schools.pluck(:school_id) - delete_region_school_ids = competition.region_schools.pluck(:school_id) - (params[:region_schools] || []) + params[:region_schools] = Array.wrap(params[:region_schools]).map(&:to_i) + new_region_school_ids = params[:region_schools] - competition.region_schools.pluck(:school_id) + delete_region_school_ids = competition.region_schools.pluck(:school_id) - params[:region_schools] new_region_school_ids.each do |school_id| CompetitionSchool.create!(competition_id: competition.id, school_id: school_id, source: 'region') end diff --git a/app/services/competitions/join_team_service.rb b/app/services/competitions/join_team_service.rb index daaca30d1..f22382150 100644 --- a/app/services/competitions/join_team_service.rb +++ b/app/services/competitions/join_team_service.rb @@ -32,6 +32,6 @@ class Competitions::JoinTeamService < ApplicationService raise Error, '该战队队员人数已满' if !is_teacher && team.members.count == competition.member_staff.maximum role = is_teacher ? 3 : 2 - team.team_members.create!(competition_id: competition.id, user_id: user, role: role, is_teacher: is_teacher) + team.team_members.create!(competition_id: competition.id, user_id: user.id, role: role, is_teacher: is_teacher) end end \ No newline at end of file diff --git a/app/views/admins/competition_settings/index.html.erb b/app/views/admins/competition_settings/index.html.erb index 537291149..8f72ed5e8 100644 --- a/app/views/admins/competition_settings/index.html.erb +++ b/app/views/admins/competition_settings/index.html.erb @@ -98,7 +98,8 @@ 主办方
- <%= select_tag :sponsor_schools, options_for_select([], @competition.sponsor_schools), class: 'form-control sponsor-select' %> + <% sponsor_data = @competition.sponsor_schools.map { |s| [s.school.name, s.school.id] } %> + <%= select_tag :sponsor_schools, options_for_select(sponsor_data, @competition.sponsor_schools.map(&:school_id)), class: 'form-control sponsor-select', multiple: true %>
@@ -107,7 +108,8 @@ 开放范围
- <%= select_tag :region_schools, options_for_select([], @competition.region_schools), class: 'form-control allow-school-select' %> + <% region_data = @competition.region_schools.map { |s| [s.school.name, s.school.id] } %> + <%= select_tag :region_schools, options_for_select(region_data, @competition.region_schools.map(&:school_id)), class: 'form-control allow-school-select', multiple: true %>
diff --git a/public/images/educoder/competitions/courses.jpg b/public/images/educoder/competitions/courses.jpg index 9447b74be..cebcd4355 100644 Binary files a/public/images/educoder/competitions/courses.jpg and b/public/images/educoder/competitions/courses.jpg differ diff --git a/public/images/educoder/competitions/mainbanner.jpg b/public/images/educoder/competitions/mainbanner.jpg new file mode 100644 index 000000000..e78f0f189 Binary files /dev/null and b/public/images/educoder/competitions/mainbanner.jpg differ diff --git a/public/react/src/modules/competitions/Competitimain/CompetitionsIndex.js b/public/react/src/modules/competitions/Competitimain/CompetitionsIndex.js index 2009588b4..185934659 100644 --- a/public/react/src/modules/competitions/Competitimain/CompetitionsIndex.js +++ b/public/react/src/modules/competitions/Competitimain/CompetitionsIndex.js @@ -174,10 +174,10 @@ class CompetitionsIndex extends Component{ } > this.setcompetitonurl(item.competition_status==="ended"?null:item.competition_status==="nearly_published"? this.props.current_user&&this.props.current_user.business===true?`/newcompetitions/${item.identifier}/common_header`:this.props.current_user&&this.props.current_user.admin===true?`/newcompetitions/${item.identifier}/common_header`:null:item.competition_status==="progressing"?`/newcompetitions/${item.identifier}/common_header`:null)} + onClick={()=>this.setcompetitonurl(item.competition_status==="ended"?`/newcompetitions/${item.identifier}/common_header`:item.competition_status==="nearly_published"? this.props.current_user&&this.props.current_user.business===true?`/newcompetitions/${item.identifier}/common_header`:this.props.current_user&&this.props.current_user.admin===true?`/newcompetitions/${item.identifier}/common_header`:null:item.competition_status==="progressing"?`/newcompetitions/${item.identifier}/common_header`:null)} >{item.name}{item.sub_title===null?"":{ item.sub_title }} diff --git a/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.css b/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.css index 129ee4e00..fb23f3b22 100644 --- a/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.css +++ b/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.css @@ -164,7 +164,7 @@ .CompetitionMenu{ width: 145px; - background: transparent; + background: #fff; border: 1px solid rgba(239,239,239,1); padding-top: 20px; padding-bottom: 40px !important; @@ -336,4 +336,16 @@ .relative{position: relative;} -.relative:hover .CompetitionsListzhezhao{ display: block;} \ No newline at end of file +.relative:hover .CompetitionsListzhezhao{ display: block;} + +.image_urlbox{ + width: 705px; + height: 400px; +} + +.CompetitionContents{ + background: #fff; + padding: 40px; + box-shadow: 3px 2px 12px 2px rgba(0,0,0,0.05); + border: 1px solid rgba(239,239,239,1); +} \ No newline at end of file diff --git a/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.js b/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.js index b34eee4ea..61f99d921 100644 --- a/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.js +++ b/public/react/src/modules/competitions/Competitioncommon/CompetitionCommon.js @@ -144,7 +144,11 @@ class CompetitionCommon extends Component{ console.log(error) }) }else{ - this.props.history.replace(module_url); + if(module_url.substring(0,7)=='http://'||module_url.substring(0,8)=='https://') { + window.location.href= module_url + }else{ + window.location.href="https://"+module_url; + } return } @@ -228,7 +232,7 @@ class CompetitionCommon extends Component{ - + @@ -303,17 +307,20 @@ class CompetitionCommon extends Component{ this.getrightdatas(e)}> {data&&data.competition_modules.map((item,key)=>{ - return( - - {item.has_url===false?this.getrightdata(item.id,item.module_type,item.module_url,item.has_url)} - >{item.name}:this.getrightdata(item.id,item.module_type)} - >{item.name}} - - ) + if(item.module_type!="enroll"){ + return( + + {/*{item.has_url===false?this.getrightdata(item.id,item.module_type,item.module_url,item.has_url)}*/} + {/*>{item.name}:this.getrightdata(item.id,item.module_type)}*/} + {/*>{item.name}}*/} + {item.name} + + ) + } })} diff --git a/public/react/src/modules/competitions/Competitioncommon/CompetitionContents.js b/public/react/src/modules/competitions/Competitioncommon/CompetitionContents.js index 13ca99453..3cb82115c 100644 --- a/public/react/src/modules/competitions/Competitioncommon/CompetitionContents.js +++ b/public/react/src/modules/competitions/Competitioncommon/CompetitionContents.js @@ -29,7 +29,7 @@ class CompetitionContents extends Component{ {this.props.current_user&&this.props.current_user.admin===true||this.props.current_user&&this.props.current_user.business===true?this.props.Competitionedittype===false?:"":""} -
+
diff --git a/public/react/src/modules/competitions/Competitioncommon/CompetitionContentsChart.js b/public/react/src/modules/competitions/Competitioncommon/CompetitionContentsChart.js index 923ddced8..334dc78e8 100644 --- a/public/react/src/modules/competitions/Competitioncommon/CompetitionContentsChart.js +++ b/public/react/src/modules/competitions/Competitioncommon/CompetitionContentsChart.js @@ -38,7 +38,10 @@ class CompetitionContents extends Component{ title: 'userimg', dataIndex: 'userimg', key: 'userimg', - render: text => , + render: (text, record) =>( + + + ), }, { title: 'username',