|
|
<%
|
|
|
define_admin_breadcrumbs do
|
|
|
add_admin_breadcrumb('竞赛列表', admins_competitions_path)
|
|
|
add_admin_breadcrumb(@competition.name)
|
|
|
end
|
|
|
%>
|
|
|
|
|
|
<div class="card mb-5">
|
|
|
<div class="card-header d-flex justify-content-between align-items-center">
|
|
|
<span class="flex-1">基础设置</span>
|
|
|
</div>
|
|
|
<div class="card-body row">
|
|
|
<%= form_tag(basic_setting_admins_competition_competition_settings_path(@competition), method: :post, class: 'basic-setting-form flex-1', remote: true) do %>
|
|
|
<div class="container competition-mode-container">
|
|
|
<div class="row align-items-center mb-1">
|
|
|
<div class="col-1 text-right">
|
|
|
主标题
|
|
|
</div>
|
|
|
<div class="col-5 text-left">
|
|
|
<%= text_field_tag(:name, @competition.name, autocomplete: 'off', class: 'form-control', placeholder: '竞赛标题') %>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="row align-items-center mb-1">
|
|
|
<div class="col-1 text-right">
|
|
|
副标题
|
|
|
</div>
|
|
|
<div class="col-5 text-left">
|
|
|
<%= text_field_tag(:sub_title, @competition.sub_title, autocomplete: 'off', class: 'form-control', placeholder: '竞赛副标题') %>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="row align-items-center mb-1">
|
|
|
<div class="col-1 text-right">
|
|
|
起止时间
|
|
|
</div>
|
|
|
<div class="col-5 competition-start-end-date d-flex">
|
|
|
<%= text_field_tag :start_time, @competition.start_time&.strftime('%Y-%m-%d %H:%M'), autocomplete: 'off', class: 'form-control start-date mx-0 mr-2', placeholder: '竞赛开始时间' %>
|
|
|
<%= text_field_tag :end_time, @competition.end_time&.strftime('%Y-%m-%d %H:%M'), autocomplete: 'off', class: 'form-control end-date mx-0', placeholder: '竞赛截止时间' %>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="row align-items-center mb-1">
|
|
|
<div class="col-1 text-right">
|
|
|
竞赛模式
|
|
|
</div>
|
|
|
<div class="col-5 text-left">
|
|
|
<%= radio_button_tag(:mode, 1, @competition.mode == 1, class: 'form-radio-input') %>
|
|
|
<label class="form-radio-label mb-0" for="mode_1">实训模式(参赛者报名参赛,挑战实训,系统评审)</label>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="row align-items-center mb-1">
|
|
|
<div class="col-1 text-right">
|
|
|
</div>
|
|
|
<div class="col-5 text-left">
|
|
|
<%= radio_button_tag(:mode, 2, @competition.mode == 2, class: 'form-radio-input') %>
|
|
|
<label class="form-radio-label mb-0" for="mode_2">课堂模式(参赛者加入课堂,提交作品,评委评审)</label>
|
|
|
</div>
|
|
|
<div class="col-6">
|
|
|
<%= text_field_tag(:course_id, @competition.competition_mode_setting&.course_id, autocomplete: 'off', class: 'form-control', placeholder: '课堂id') %>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="row align-items-center mb-1">
|
|
|
<div class="col-1 text-right">
|
|
|
</div>
|
|
|
<div class="col-5 text-left">
|
|
|
<%= radio_button_tag(:mode, 3, @competition.mode == 3, class: 'form-radio-input') %>
|
|
|
<label class="form-radio-label mb-0" for="mode_3">教学模式(参赛者报名参赛,统计战队课堂和实训数据)</label>
|
|
|
</div>
|
|
|
<div class="col-6 teaching-mode-date d-flex">
|
|
|
<%= text_field_tag :teach_start_time, @competition.competition_mode_setting&.start_time, autocomplete: 'off', class: 'form-control start-date mx-0 mr-2', placeholder: '统计数据的开始时间' %>
|
|
|
<%= text_field_tag :teach_end_time, @competition.competition_mode_setting&.end_time, autocomplete: 'off', class: 'form-control end-date mx-0', placeholder: '统计数据的结束时间' %>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="row align-items-center mb-2">
|
|
|
<div class="col-1 text-right">
|
|
|
</div>
|
|
|
<div class="col-5 text-left">
|
|
|
<%= radio_button_tag(:mode, 4, @competition.mode == 4, class: 'form-radio-input') %>
|
|
|
<label class="form-radio-label mb-0" for="mode_4">托管模式(参赛者报名参赛,在其他平台完成任务)</label>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="row align-items-center mb-2">
|
|
|
<div class="col-1 text-right">
|
|
|
URL
|
|
|
</div>
|
|
|
<div class="col-5 text-left mode-input">
|
|
|
<%= text_field_tag(:identifier, @competition.identifier, autocomplete: 'off', class: 'form-control', placeholder: '请输入url赛事网址') %>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="row align-items-center d-flex mb-2">
|
|
|
<div class="col-1 text-right">
|
|
|
管理员
|
|
|
</div>
|
|
|
<div class="col-5 text-left sponsorPanel">
|
|
|
<% manager_data = @competition.managers.map { |u| [u.name, u.id] } %>
|
|
|
<%= select_tag :manager_ids, options_for_select(manager_data, @competition.managers.map(&:id)), class: 'form-control manager-select', multiple: true %>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="row align-items-center d-flex mb-2">
|
|
|
<div class="col-1 text-right">
|
|
|
主办方
|
|
|
</div>
|
|
|
<div class="col-5 text-left sponsorPanel">
|
|
|
<% 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 %>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="row align-items-center d-flex mb-2">
|
|
|
<div class="col-1 text-right">
|
|
|
开放范围
|
|
|
</div>
|
|
|
<div class="col-5 text-left sponsorPanel">
|
|
|
<% 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 %>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="row align-items-center mb-2">
|
|
|
<div class="col-1 text-right">
|
|
|
奖金
|
|
|
</div>
|
|
|
<div class="col-5 text-left input-group">
|
|
|
<div class="input-group-prepend">
|
|
|
<div class="input-group-text">¥</div>
|
|
|
</div>
|
|
|
<%= number_field_tag(:bonus, @competition.bonus, autocomplete: 'off', step: 1, min: 0, class: 'form-control', placeholder: '请输入总奖金额') %>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="row align-items-center mb-2">
|
|
|
<div class="col-1 text-right">
|
|
|
奖项数
|
|
|
</div>
|
|
|
<div class="col-5 text-left">
|
|
|
<%= number_field_tag(:awards_count, @competition.awards_count, autocomplete: 'off', step: 1, min: 0, class: 'form-control', placeholder: '请输入奖项数') %>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="row des-row align-items-center mb-2">
|
|
|
<div class="col-1 text-right">
|
|
|
描述
|
|
|
</div>
|
|
|
<div class="col-11 text-left">
|
|
|
<%= text_area_tag(:description, @competition.description, class: 'form-control', placeholder: '请输入赛事简介') %>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="error my-2 danger text-danger"></div>
|
|
|
|
|
|
<div class="row des-row align-items-center mb-2">
|
|
|
<div class="col-1 text-right">
|
|
|
</div>
|
|
|
<div class="col-5 text-left">
|
|
|
<%= javascript_void_link '保存', class: 'btn btn-primary submit-btn' %>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<% end %>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="card mb-5">
|
|
|
<div class="card-header d-flex justify-content-between align-items-center">
|
|
|
<span class="flex-1">导航设置</span>
|
|
|
</div>
|
|
|
<div class="card-body row">
|
|
|
<%= form_tag(nav_setting_admins_competition_competition_settings_path(@competition), method: :post, class: 'nav-setting-form flex-1', remote: true) do %>
|
|
|
<div class="container competition-mode-container">
|
|
|
<% @competition.competition_modules.each do |com_module| %>
|
|
|
<% case com_module.module_type %>
|
|
|
<% when 'home' %>
|
|
|
<div class="mt-3" id="MD_typeFrom">
|
|
|
<div class="row MD_type">
|
|
|
<div class="col-1 text-right">
|
|
|
<label class="checkbox checkbox-primary mt-1">
|
|
|
<input type="checkbox" name="navbar[][hidden]" value="0" hidden class="font-16" checked="checked">
|
|
|
<input type="checkbox" disabled="disabled" class="font-16" checked="checked">
|
|
|
</label>
|
|
|
</div>
|
|
|
<div class="col-md-4">
|
|
|
<input type="hidden" value="<%= com_module.id %>" name="navbar[][module_id]">
|
|
|
<%= text_field_tag('navbar[][name]', com_module.name, id: nil, class: 'form-control', placeholder: '首页') %>
|
|
|
<input type="hidden" value="<%= com_module.module_type %>" name="navbar[][module_type]">
|
|
|
</div>
|
|
|
<div class="col-md-1">
|
|
|
<%= text_field_tag('navbar[][position]', com_module.position, id: nil, class: 'form-control', placeholder: '位置') %>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<% when 'enroll' %>
|
|
|
<div class="row mt-2">
|
|
|
<div class="col-1 text-right">
|
|
|
<label class="checkbox checkbox-primary mt-1">
|
|
|
<input type="checkbox" name="navbar[][hidden]" value="<%= com_module.hidden ? 1 : 0 %>" hidden class="font-16" checked="checked">
|
|
|
<%= check_box_tag('', 0, !com_module.hidden, id: nil, class: 'font-16 module_hidden') %>
|
|
|
</label>
|
|
|
</div>
|
|
|
<div class="col-md-8 color-blue mt-1">
|
|
|
<input type="hidden" value="<%= com_module.id %>" name="navbar[][module_id]">
|
|
|
<input type="hidden" value="<%= com_module.module_type %>" name="navbar[][module_type]">
|
|
|
<input type="hidden" value="报名" name="navbar[][name]">
|
|
|
报名
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="row mt-2 align-items-center">
|
|
|
<div class="col-1 text-right"> </div>
|
|
|
<div class="col-1 text-left" style="max-width: 120px;flex: 0 0 120px;">
|
|
|
报名截止时间
|
|
|
</div>
|
|
|
<div class="col-md-3">
|
|
|
<%= text_field_tag :enroll_end_time, @competition.enroll_end_time&.strftime('%Y-%m-%d %H:%M'), autocomplete: 'off', class: 'form-control enroll_end_time', placeholder: '报名截止时间' %>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="row mt-2">
|
|
|
<div class="col-1 text-right"> </div>
|
|
|
<div class="col-1 text-left mt-1">
|
|
|
报名要求
|
|
|
</div>
|
|
|
<div class="col-md-3">
|
|
|
<%= javascript_void_link '+', class: 'btn btn-primary waves-effect waves-light btn-xs setBtn_s addRequireBtn' %>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div id="requireForm" class="competition-staff-settings">
|
|
|
<% @competition.competition_staffs.each do |staff| %>
|
|
|
<div class="row mt-2 mb-4 requireForm_item">
|
|
|
<div class="col-1 text-right"> </div>
|
|
|
<div class="col-1 text-left mt-1">
|
|
|
<input type="text" class="form-control" name="competition_staffs[][minimum]" value="<%= staff.minimum %>" />
|
|
|
</div>
|
|
|
<span class="mt-2">~</span>
|
|
|
<div class="col-1 mt-1">
|
|
|
<input type="text" class="form-control" name="competition_staffs[][maximum]" value="<%= staff.maximum %>" />
|
|
|
</div>
|
|
|
<span class="mt-2">人</span>
|
|
|
<div class="col-2 mt-1">
|
|
|
<select class="form-control" name="competition_staffs[][category]">
|
|
|
<option value="student" <%= staff.category == "student" ? "selected='selected'" : "" %>>学生</option>
|
|
|
<option value="teacher" <%= staff.category == "teacher" ? "selected='selected'" : "" %>>教师</option>
|
|
|
</select>
|
|
|
</div>
|
|
|
<div class="col-2 mt-1">
|
|
|
<label class="radio checkbox-primary mt-1" value="require_1_1">
|
|
|
<input id="require_1_<%= staff.id %>" <%= staff.mutiple_limited? ? '' : 'checked="checked"' %> class="mutiple-limited-radio" value="false" name="competition_staffs[][mutiple_limited]" type="checkbox">
|
|
|
<label for="require_1_<%= staff.id %>">可多次报名</label>
|
|
|
</label>
|
|
|
</div>
|
|
|
<div class="col-2 mt-1">
|
|
|
<label class="radio checkbox-primary mt-1" value="require_1_2">
|
|
|
<input id="require_2_<%= staff.id %>" <%= staff.mutiple_limited? ? 'checked="checked"' : '' %> class="mutiple-limited-radio" value="true" name="competition_staffs[][mutiple_limited]" type="checkbox">
|
|
|
<label for="require_2_<%= staff.id %>">不可多次报名</label>
|
|
|
</label>
|
|
|
<a href="javascript:void(0)" class="ml20 delRequrieBtn">
|
|
|
<i class="fa fa-times-circle font-20 color-grey-c"></i>
|
|
|
</a>
|
|
|
</div>
|
|
|
</div>
|
|
|
<% end %>
|
|
|
</div>
|
|
|
|
|
|
<% when 'inform', 'chart', 'resource', 'certificate' %>
|
|
|
<div class="row mt-2 new_module_div linkFormItem">
|
|
|
<div class="col-1 text-right">
|
|
|
<label class="checkbox checkbox-primary mt-1">
|
|
|
<input type="checkbox" name="navbar[][hidden]" value="<%= com_module.hidden ? 1 : 0 %>" hidden class="font-16" checked="checked">
|
|
|
<%= check_box_tag('', 0, !com_module.hidden, id: nil, class: 'font-16 module_hidden') %>
|
|
|
</label>
|
|
|
</div>
|
|
|
<div class="col-md-label mt-2">
|
|
|
<input type="hidden" value="<%= com_module.id %>" name="navbar[][module_id]">
|
|
|
<input type="hidden" value="<%= com_module.module_type %>" name="navbar[][module_type]">
|
|
|
<input type="hidden" value="<%= com_module.name %>" name="navbar[][name]">
|
|
|
<%= com_module.name %>
|
|
|
</div>
|
|
|
<div class="col-md-1 mt-1">
|
|
|
<%= text_field_tag('navbar[][position]', com_module.position, id: nil, class: 'form-control', placeholder: '位置') %>
|
|
|
</div>
|
|
|
<% if com_module.module_type == "resource" %>
|
|
|
<div class="col-md-3 mt-1">
|
|
|
<%= text_field_tag('navbar[][url]', com_module.url, id: nil, class: 'form-control', placeholder: '请输入资料下载地址') %>
|
|
|
</div>
|
|
|
<%= javascript_void_link '+', class: 'mt-1 btn btn-primary waves-effect waves-light btn-xs setBtn_s add_linkBtn' %>
|
|
|
<% end %>
|
|
|
</div>
|
|
|
<% else %>
|
|
|
<div class="row mt-2 align-items-center linkFormItem">
|
|
|
<div class="col-1 text-right">
|
|
|
<label class="checkbox checkbox-primary mt-1">
|
|
|
<input type="checkbox" name="navbar[][hidden]" value="<%= com_module.hidden ? 1 : 0 %>" hidden class="font-16" checked="checked">
|
|
|
<%= check_box_tag('', 0, !com_module.hidden, id: nil, class: 'font-16 module_hidden') %>
|
|
|
</label>
|
|
|
</div>
|
|
|
<div class="col-md-label mt-1">
|
|
|
<input type="hidden" value="<%= com_module.id %>" name="navbar[][module_id]">
|
|
|
<input type="hidden" value="<%= com_module.module_type %>" name="navbar[][module_type]">
|
|
|
<%= text_field_tag('navbar[][name]', com_module.name, id: nil, class: 'form-control', placeholder: '请输入模块名称') %>
|
|
|
</div>
|
|
|
<div class="col-md-1 mt-1">
|
|
|
<%= text_field_tag('navbar[][position]', com_module.position, id: nil, class: 'form-control', placeholder: '位置') %>
|
|
|
</div>
|
|
|
<div class="col-md-3 mt-1">
|
|
|
<%= text_field_tag('navbar[][url]', com_module.url, id: nil, class: 'form-control', placeholder: '请输入资料下载地址') %>
|
|
|
</div>
|
|
|
<%= javascript_void_link '+', class: 'mt-1 btn btn-primary waves-effect waves-light btn-xs setBtn_s add_linkBtn' %>
|
|
|
<%= javascript_void_link '×', class: 'mt-1 btn btn-icon waves-effect btn-default waves-light setBtn_s ml10 del_linkBtn' %>
|
|
|
</div>
|
|
|
<% end %>
|
|
|
<% end %>
|
|
|
|
|
|
<div class="error my-2 danger text-danger"></div>
|
|
|
|
|
|
<div class="row mt-2 mb-4">
|
|
|
<div class="col-1 text-right">
|
|
|
</div>
|
|
|
<div class="col-md-label mt-2"><%= javascript_void_link '保存', class: 'btn btn-primary submit-btn' %></div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<% end %>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<%# if @competition.mode == 1 %>
|
|
|
<div class="card mb-5 competition-chart-stages">
|
|
|
<div class="card-header d-flex justify-content-between align-items-center">
|
|
|
<span>排行榜设置</span>
|
|
|
<i class="fa fa-question-circle font-14" data-toggle="tooltip" data-html="true" data-placement="top" title="温馨提示:<br/>
|
|
|
需要参赛选手完成几个实训,请相应的创建几个阶段;<br/>
|
|
|
若多个实训只需要参赛选手选择完成1个,请将其配置在同一个阶段;<br/>
|
|
|
一个阶段多个实训时,请注意实训关卡数及各关卡的经验值设置保持相同;<br/>
|
|
|
同阶段的各个实训,请保持相同的成绩来源;<br/>
|
|
|
每阶段每个实训关卡的得分,将按照组内成员最高得分计算,总分为各阶段得分加和。"></i>
|
|
|
<a href="javascript:void(0)" class="btn btn-primary btn-custom waves-effect add-new-tab waves-light ml20" data-competition-id="<%= @competition.id %>">+ 新增tab</a>
|
|
|
|
|
|
<span class="flex-1 text-right color-orange">实训ID填写示例:实训地址为https://www.educoder.net/shixuns/u5plmgka/challenges,则填写“u5plmgka”</span>
|
|
|
</div>
|
|
|
|
|
|
<div class="card-body">
|
|
|
<div id="large_panel" class="large_panel competition-chart-setting">
|
|
|
<% if @competition.competition_stages.count > 0 %>
|
|
|
<% @competition.competition_stages.includes(competition_stage_sections: :competition_entries).each_with_index do |stage, index| %>
|
|
|
<%= form_tag(admins_competition_competition_stage_path(competition_id: @competition.id, id: stage.id), method: :put, class: 'stage-update-form flex-1', remote: true) do %>
|
|
|
<div class="large_panel_part" attr_line="<%= index + 1 %>">
|
|
|
<div class="row d-flex">
|
|
|
<span class="col-1 mt-2">tab标题</span>
|
|
|
<div class="col-2 no_padding">
|
|
|
<input type="text" class="form-control" name="stage_name" value="<%= stage.name %>" />
|
|
|
</div>
|
|
|
<span class="col-1 text-right mt-2 no_padding">总排行榜占比:</span>
|
|
|
<div class="col-1 no_padding">
|
|
|
<input type="number" class="form-control" name="score_rate" value="<%= (stage.score_rate * 100).to_i %>"/>
|
|
|
</div><span class=" mt-2">%</span>
|
|
|
<div class="flex-1">
|
|
|
<a href="javascript:void(0)" class="btn btn-outline-primary export-action ml20 add-task-sub">新增子阶段</a>
|
|
|
<% if stage.max_end_time && stage.max_end_time > Time.now %>
|
|
|
<%= agree_link '发送短信提醒', send_message_admins_competition_competition_stage_path(@competition, stage, element: ".send-message-#{stage.id}"),
|
|
|
class: 'btn btn-outline-primary ml20', 'data-confirm': '确认执行发送短信操作?' %>
|
|
|
<% end %>
|
|
|
<% if stage.max_end_time && stage.max_end_time < Time.now && Time.now < Time.at(stage.max_end_time.to_i + 30*24*3600) %>
|
|
|
<%= agree_link '计算成绩', calculate_stage_score_admins_competition_competition_stage_path(@competition, stage, element: ".calculate-score-#{stage.id}"),
|
|
|
class: 'btn btn-outline-primary ml20', 'data-confirm': '确认执行计算成绩操作?' %>
|
|
|
<% end %>
|
|
|
</div>
|
|
|
<%= delete_link '删除', admins_competition_competition_stage_path(competition_id: @competition.id, id: stage.id), class: 'btn btn-default delete-stage ml20' %>
|
|
|
<a href="javascript:void(0)" class="btn btn-outline-primary export-action update-stage ml20">保存</a>
|
|
|
</div>
|
|
|
|
|
|
<div id="small_panel_<%= index + 1 %>" class="small_panel">
|
|
|
<% stage.competition_stage_sections.each_with_index do |section, j| %>
|
|
|
<div class="row d-flex small_panel_item" attr_line="sub_<%= index %>_<%= j %>" count="<%= j + 1 %>">
|
|
|
<span class="mt-2 subName mr10">第<%= j + 1 %>阶段</span>
|
|
|
<div class="flex-1">
|
|
|
<div class="row">
|
|
|
<div class="row col-6">
|
|
|
<span class="ml20 mt-2 mr10">有效时间:</span>
|
|
|
<div class="col-4 no_padding">
|
|
|
<%= text_field_tag 'stage[][start_time]', section.start_time&.strftime('%Y-%m-%d %H:%M'), autocomplete: 'off', class: 'section-start-time form-control', placeholder: '有效开始时间' %>
|
|
|
</div>
|
|
|
<span class="mt-2">~</span>
|
|
|
<div class="col-4 no_padding">
|
|
|
<%= text_field_tag 'stage[][end_time]', section.end_time&.strftime('%Y-%m-%d %H:%M'), autocomplete: 'off', class: 'section-end-time form-control', placeholder: '有效结束时间' %>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="row col-3">
|
|
|
<span class="col-4 text-right mt-2 no_padding mr10">总任务数:</span>
|
|
|
<div class="col-6 no_padding">
|
|
|
<input type="number" class="form-control task_all" value="<%= section.entry %>" onchange="change_total(this)" name="stage[][entry]"/>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="row col-3">
|
|
|
<span class="col-4 text-right mt-2 no_padding mr10">成绩来源:</span>
|
|
|
<div class="col-6 no_padding">
|
|
|
<select class="form-control" name="stage[][score_source]">
|
|
|
<option value="0" <%= section.score_source == 0 ? "selected='selected'" : "" %>>经验值</option>
|
|
|
<option value="1" <%= section.score_source == 1 ? "selected='selected'" : "" %>>预测准确率</option>
|
|
|
</select>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="row mt-2" id="task_Input_sub_<%= index %>_<%= j %>">
|
|
|
<% section.competition_entries.each_with_index do |entry, z| %>
|
|
|
<div class="col-4 row task_Input_div">
|
|
|
<span class="col-4 text-right mt-3 no_padding mr10">任务<%= z+1 %></span>
|
|
|
<div class="col-6 no_padding">
|
|
|
<input type="text" class="form-control mt-2" value="<%= entry.shixun_identifier %>" name="stage[][identifiers][]" placeholder="请填写实训ID">
|
|
|
</div>
|
|
|
</div>
|
|
|
<% end %>
|
|
|
</div>
|
|
|
</div>
|
|
|
<span>
|
|
|
<a href="javascript:void(0)" class="btn btn-default ml20 small_panel_item_del">删除</a>
|
|
|
</span>
|
|
|
</div>
|
|
|
<% end %>
|
|
|
</div>
|
|
|
<div class="error my-2 danger text-danger"></div>
|
|
|
</div>
|
|
|
<% end %>
|
|
|
<% end %>
|
|
|
<% else %>
|
|
|
<%= form_tag(admins_competition_competition_stages_path(competition_id: @competition.id), method: :post, class: 'stage-update-form new-stage-form flex-1', remote: true) do %>
|
|
|
<div class="large_panel_part" attr_line="1">
|
|
|
<div class="row d-flex">
|
|
|
<span class="col-1 mt-2">tab标题</span>
|
|
|
<div class="col-2 no_padding">
|
|
|
<input type="text" class="form-control" name="stage_name"/>
|
|
|
</div>
|
|
|
<span class="col-1 text-right mt-2 no_padding">总排行榜占比:</span>
|
|
|
<div class="col-1 no_padding">
|
|
|
<input type="number" class="form-control" name="score_rate" value="100"/>
|
|
|
</div><span class=" mt-2">%</span>
|
|
|
<div class="flex-1">
|
|
|
<a href="javascript:void(0)"class="btn btn-outline-primary export-action ml20 add-task-sub">新增子阶段</a>
|
|
|
</div>
|
|
|
<a href="javascript:void(0)" class="btn btn-default ml20" onclick="Del_tab(this)">删除</a>
|
|
|
<a href="javascript:void(0)" class="btn btn-outline-primary update-stage export-action ml20">保存</a>
|
|
|
</div>
|
|
|
<div id="small_panel_1" class="small_panel">
|
|
|
<div class="row d-flex small_panel_item" attr_line="sub_new_new" count="1">
|
|
|
<span class="mt-2 subName mr10">第1阶段</span>
|
|
|
<div class="flex-1">
|
|
|
<div class="row">
|
|
|
<div class="row col-6">
|
|
|
<span class="mt-2 ml20 mr10">有效时间:</span>
|
|
|
<div class="col-4 no_padding">
|
|
|
<%= text_field_tag 'stage[][start_time]', '', autocomplete: 'off', class: 'section-start-time form-control', placeholder: '有效开始时间' %>
|
|
|
</div>
|
|
|
<span class="mt-2">~</span>
|
|
|
<div class="col-4 no_padding">
|
|
|
<%= text_field_tag 'stage[][end_time]', '', autocomplete: 'off', class: 'section-end-time form-control', placeholder: '有效结束时间' %>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="row col-3">
|
|
|
<span class="col-4 text-right mt-2 no_padding mr10">总任务数:</span>
|
|
|
<div class="col-6 no_padding">
|
|
|
<input type="number" class="form-control task_all" onchange="change_total(this)" value="3" name="stage[][entry]"/>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="row col-3">
|
|
|
<span class="col-4 text-right mt-2 no_padding mr10">成绩来源:</span>
|
|
|
<div class="col-6 no_padding">
|
|
|
<select class="form-control" name="stage[][score_source]">
|
|
|
<option value="0">经验值</option>
|
|
|
<option value="1">预测准确率</option>
|
|
|
</select>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="row mt-2" id="task_Input_sub_new_new">
|
|
|
<div class="col-4 row task_Input_div">
|
|
|
<span class="col-4 text-right mt-3 no_padding mr10">任务1</span>
|
|
|
<div class="col-6 no_padding">
|
|
|
<input type="text" class="form-control mt-2" name="stage[][identifiers][]" placeholder="请填写实训ID">
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="col-4 row task_Input_div">
|
|
|
<span class="col-4 text-right mt-3 no_padding mr10">任务2</span>
|
|
|
<div class="col-6 no_padding">
|
|
|
<input type="text" class="form-control mt-2" name="stage[][identifiers][]" placeholder="请填写实训ID">
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="col-4 row task_Input_div">
|
|
|
<span class="col-4 text-right mt-3 no_padding mr10">任务3</span>
|
|
|
<div class="col-6 no_padding">
|
|
|
<input type="text" class="form-control mt-2" name="stage[][identifiers][]" placeholder="请填写实训ID">
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<span>
|
|
|
<a href="javascript:void(0)" class="btn btn-default ml20 small_panel_item_del">删除</a>
|
|
|
</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<% end %>
|
|
|
<% end %>
|
|
|
<div class="error my-2 danger text-danger"></div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="card mb-5" id="competition-prize-card" data-id="<%= @competition.id %>">
|
|
|
<div class="card-header d-flex justify-content-between align-items-center">
|
|
|
<span class="flex-1">奖项配置</span>
|
|
|
|
|
|
<% unless @competition.competition_prize_users.exists? %>
|
|
|
<%= link_to '新增奖项', new_admins_competition_competition_prize_path(@competition), remote: true, class: 'btn btn-primary btn-sm add-competition-prize-btn' %>
|
|
|
<% end %>
|
|
|
|
|
|
<% if @competition.finished? && !@competition.competition_prize_users.exists? %>
|
|
|
<%= javascript_void_link '生成获奖记录', class: 'btn btn-primary btn-sm ml-2 generate-prize-user-action' %>
|
|
|
<% end %>
|
|
|
</div>
|
|
|
<div class="card-body row pt-0">
|
|
|
<table class="table text-center competition-prize-table">
|
|
|
<thead>
|
|
|
<th width="8%">序号</th>
|
|
|
<th width="10%">奖项名称</th>
|
|
|
<th width="10%">数量</th>
|
|
|
<th width="10%">奖励类型</th>
|
|
|
<th width="16%">队员个人证书模板</th>
|
|
|
<th width="16%">团队证书模板</th>
|
|
|
<th width="16%">指导老师证书模板</th>
|
|
|
<th width="14%">操作</th>
|
|
|
</thead>
|
|
|
<tbody>
|
|
|
<%= render 'admins/competition_settings/shared/competition_prizes', competition: @competition %>
|
|
|
</tbody>
|
|
|
</table>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div style="margin-bottom: 8.5rem;"></div>
|
|
|
<%# end %>
|
|
|
|
|
|
<%= render partial: 'admins/shared/modal/upload_file_modal', locals: { title: '上传证书模板', accept: 'image/*' } %> |