dev_sync_trustie
cxt 5 years ago
parent 0ccbcda3a4
commit 280b1e6362

@ -9,7 +9,7 @@ $(document).on('turbolinks:load', function(){
}; };
var timeOptions = { var timeOptions = {
autoclose: true, // autoclose: true,
language: 'zh-CN', language: 'zh-CN',
format: 'yyyy-mm-dd hh:ii:ss', format: 'yyyy-mm-dd hh:ii:ss',
minuteStep: 30 minuteStep: 30
@ -24,17 +24,20 @@ $(document).on('turbolinks:load', function(){
}); });
}; };
// var defineTimeRangeSelect = function (element) { var defineTimeRangeSelect = function (element) {
// var options = $.extend({inputs: $(element).find('.start-date, .end-date')}, timeOptions); // var options = $.extend({inputs: $(element).find('.start-date, .end-date')}, timeOptions);
// $(element).datetimepicker(options); $(".start-date").datetimepicker(timeOptions);
//
// $(element).find('.start-date').datetimepicker().on('changeDate', function (e) { $(element).find('.start-date').datetimepicker().on('changeDate', function (e) {
// $(element).find('.end-date').datetimepicker('setStartDate', e.date); $(element).find('.end-date').datetimepicker('setStartDate', e.date);
// }); });
// }; };
$(".competition-start-end-date .start-date").datetimepicker();
$(".competition-start-end-date .end-date").datetimepicker();
defineDateRangeSelect('.teaching-mode-date'); defineDateRangeSelect('.teaching-mode-date');
defineDateRangeSelect('.competition-start-end-date'); // defineTimeRangeSelect('.competition-start-end-date');
var $basicForm = $('form.basic-setting-form'); var $basicForm = $('form.basic-setting-form');
@ -133,8 +136,8 @@ $(function () {
//链接 //链接
$("#linkForm").on("click",".add_linkBtn",function () { $(".nav-setting-form").on("click",".add_linkBtn",function () {
var length=$("#linkForm").find(".linkFormItem").length + 1; var length=$(".nav-setting-form").find(".linkFormItem").length + 1;
var html='<div class="row mt-2 lineFromItem">\n' + var html='<div class="row mt-2 lineFromItem">\n' +
' <div class="col-1 text-right">\n' + ' <div class="col-1 text-right">\n' +
' <label class="checkbox checkbox-primary mt-1">\n' + ' <label class="checkbox checkbox-primary mt-1">\n' +
@ -147,12 +150,13 @@ $(function () {
' <div class="col-md-3 mt-1"><input type="text" name="link_info_'+length+'" class="form-control"></div>\n' + ' <div class="col-md-3 mt-1"><input type="text" name="link_info_'+length+'" class="form-control"></div>\n' +
' <button class="mt-1 btn btn-primary waves-effect waves-light btn-xs setBtn_s add_linkBtn">+</button>\n' + ' <button class="mt-1 btn btn-primary waves-effect waves-light btn-xs setBtn_s add_linkBtn">+</button>\n' +
' <button class="mt-1 btn btn-icon waves-effect btn-default waves-light setBtn_s ml10 del_linkBtn">×</button>\n' + ' <button class="mt-1 btn btn-icon waves-effect btn-default waves-light setBtn_s ml10 del_linkBtn">×</button>\n' +
' </div>' ' </div>';
$("#linkForm").append(html) $(this).parents(".lineFromItem").insertAfter(html);
}) });
$("#linkForm").on("click",".del_linkBtn",function () {
$(".nav-setting-form").on("click",".del_linkBtn",function () {
$(this).parents(".lineFromItem").remove(); $(this).parents(".lineFromItem").remove();
}) });
//有关报名要求 //有关报名要求
$("#addRequireBtn").on("click",function () { $("#addRequireBtn").on("click",function () {
@ -192,9 +196,18 @@ $(function () {
' </div>\n' + ' </div>\n' +
' </div>'; ' </div>';
$("#requireForm").append(html); $("#requireForm").append(html);
}) });
$("#requireForm").on("click",".delRequrieBtn",function () { $("#requireForm").on("click",".delRequrieBtn",function () {
$(this).parents(".requireForm_item").remove(); $(this).parents(".requireForm_item").remove();
});
$('.competition-staff-settings').on('click', '.mutiple-limited-radio', function(){
var radio = $(this);
if (radio.is(':checked')) {
radio.parent().parent().siblings().find('.mutiple-limited-radio').attr('checked', false)
} else {
radio.parent().parent().siblings().find('.mutiple-limited-radio').attr('checked', true)
}
}) })
}) });

@ -24,6 +24,6 @@ class Admins::CompetitionSettingsController < Admins::BaseController
end end
def nav_form_params def nav_form_params
params.permit(:enroll_end_time, competition_staffs: %i[category minimum maximum mutiple_limited], nav_module: %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
end end

@ -13,7 +13,7 @@ class Admins::CompetitionNavSettingService < ApplicationService
# hidden_module_type = competition.all_module_types - params[:module_type] # hidden_module_type = competition.all_module_types - params[:module_type]
# competition.competition_modules.where(module_type: hidden_module_type).update_all(hidden: 1) # competition.competition_modules.where(module_type: hidden_module_type).update_all(hidden: 1)
params[:nav_module].each do |nav| params[:navbar].each do |nav|
module_type = nav["module_type"] module_type = nav["module_type"]
if competition.all_module_types.include?(module_type) if competition.all_module_types.include?(module_type)
com_module = competition.competition_modules.find_by(module_type: module_type) com_module = competition.competition_modules.find_by(module_type: module_type)
@ -23,6 +23,7 @@ class Admins::CompetitionNavSettingService < ApplicationService
com_module.update_attributes!(hidden: nav["hidden"] ? 0 : 1, position: nav["position"], name: nav["name"], url: nav["url"]) com_module.update_attributes!(hidden: nav["hidden"] ? 0 : 1, position: nav["position"], name: nav["name"], url: nav["url"])
end end
competition.update_attributes!(enroll_end_time: params[:enroll_end_time])
if params[:competition_staffs].present? if params[:competition_staffs].present?
competition.competition_staffs.delete_all competition.competition_staffs.delete_all
params[:competition_staffs].each_with_index do |staff_params, index| params[:competition_staffs].each_with_index do |staff_params, index|

@ -35,8 +35,8 @@
起止时间 起止时间
</div> </div>
<div class="col-5 competition-start-end-date d-flex"> <div class="col-5 competition-start-end-date d-flex">
<%= text_field_tag :start_time, @competition.start_time&.strftime('%Y-%m-%d'), autocomplete: 'off', class: 'form-control start-date mx-0 mr-2', placeholder: '竞赛开始时间' %> <%= text_field_tag :start_time, @competition.start_time&.strftime('%Y-%m-%d %H:%M:%S'), autocomplete: 'off', class: 'form-control start-date mx-0 mr-2', placeholder: '竞赛开始时间' %>
<%= text_field_tag :end_time, @competition.end_time&.strftime('%Y-%m-%d'), autocomplete: 'off', class: 'form-control end-date mx-0', placeholder: '竞赛截止时间' %> <%= text_field_tag :end_time, @competition.end_time&.strftime('%Y-%m-%d %H:%M:%S'), autocomplete: 'off', class: 'form-control end-date mx-0', placeholder: '竞赛截止时间' %>
</div> </div>
</div> </div>
@ -151,134 +151,161 @@
<span class="flex-1">导航设置</span> <span class="flex-1">导航设置</span>
</div> </div>
<div class="card-body row"> <div class="card-body row">
<div class="container competition-mode-container"> <%= form_tag(nav_setting_admins_competition_competition_settings_path(@competition), method: :post, class: 'nav-setting-form flex-1', remote: true) do %>
<% @competition.competition_modules.each do |com_module| %> <div class="container competition-mode-container">
<% case com_module.module_type %> <% @competition.competition_modules.each do |com_module| %>
<% case com_module.module_type %>
<% when 'home' %> <% when 'home' %>
<div id="MD_typeFrom"> <div id="MD_typeFrom">
<div class="row MD_type"> <div class="row MD_type">
<div class="col-1 text-right">
<label class="checkbox checkbox-primary mt-1">
<%= check_box_tag('navbar[][hidden]', 0, !com_module.hidden, id: nil, class: 'font-16') %>
</label>
</div>
<div class="col-md-4">
<%= 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"> <div class="col-1 text-right">
<label class="checkbox checkbox-primary mt-1"> <label class="checkbox checkbox-primary mt-1">
<%= check_box_tag('navbar[][hidden]', 0, !com_module.hidden, id: nil, class: 'font-16') %> <%= check_box_tag('navbar[][hidden]', 0, !com_module.hidden, id: nil, class: 'font-16') %>
</label> </label>
</div> </div>
<div class="col-md-4"> <div class="col-md-8 color-blue mt-1">
<%= 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]"> <input type="hidden" value="<%= com_module.module_type %>" name="navbar[][module_type]">
<input type="hidden" value="报名" name="navbar[][name]">
报名
</div> </div>
<div class="col-md-1"> </div>
<%= text_field_tag('navbar[][position]', com_module.position, id: nil, class: 'form-control', placeholder: '位置') %> <div class="row mt-2 align-items-center">
<div class="col-1 text-right">&nbsp;&nbsp;</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'), autocomplete: 'off', class: 'form-control enroll_end_time', placeholder: '报名截止时间' %>
</div>
</div>
<div class="row mt-2">
<div class="col-1 text-right">&nbsp;&nbsp;</div>
<div class="col-1 text-left mt-1">
报名要求
</div>
<div class="col-md-3">
<button class="btn btn-primary waves-effect waves-light btn-xs setBtn_s" id="addRequireBtn">+</button>
</div> </div>
</div> </div>
</div>
<% end %>
<% end %>
<div class="row mt-2">
<div class="col-1 text-right">
<label class="checkbox checkbox-primary mt-1">
<input id="checkbox2" type="checkbox">
<label for="checkbox2">&nbsp;</label>
</label>
</div>
<div class="col-md-8 color-blue mt-1">
报名
</div>
</div>
<div class="row mt-2">
<div class="col-1 text-right">&nbsp;&nbsp;</div>
<div class="col-1 text-left" style="max-width: 120px;flex: 0 0 120px;">
报名截止时间
</div>
<div class="col-md-3"><input type="text" class="form-control" /></div>
</div>
<div class="row mt-2">
<div class="col-1 text-right">&nbsp;&nbsp;</div>
<div class="col-1 text-left mt-1">
报名要求
</div>
<div class="col-md-3">
<button class="btn btn-primary waves-effect waves-light btn-xs setBtn_s" id="addRequireBtn">+</button>
</div>
</div>
<div id="requireForm"> <div id="requireForm" class="competition-staff-settings">
<div class="row mt-2 mb-4 requireForm_item"> <% @competition.competition_staffs.each do |staff| %>
<div class="col-1 text-right">&nbsp;&nbsp;</div> <div class="row mt-2 mb-4 requireForm_item">
<div class="col-1 text-left mt-1"> <div class="col-1 text-right">&nbsp;&nbsp;</div>
<input type="text" class="form-control" name="min_1" /> <div class="col-1 text-left mt-1">
</div> <input type="text" class="form-control" name="competition_staffs[][minimum]" value="<%= staff.minimum %>" />
<span class="mt-2">~</span> </div>
<div class="col-1 mt-1"> <span class="mt-2">~</span>
<input type="text" class="form-control" name="max_1" /> <div class="col-1 mt-1">
</div> <input type="text" class="form-control"name="competition_staffs[][maximum]" value="<%= staff.maximum %>" />
<span class="mt-2">人</span> </div>
<div class="col-2 mt-1"> <span class="mt-2">人</span>
<select class="form-control" name="choice_1" > <div class="col-2 mt-1">
<option>不限</option> <select class="form-control" name="competition_staffs[][category]">
<option>教师</option> <option value="all" <%= staff.category == "all" ? "selected='selected'" : "" %>>不限</option>
<option>学生</option> <option value="teacher" <%= staff.category == "teacher" ? "selected='selected'" : "" %>>教师</option>
<option>专业人士</option> <option value="student" <%= staff.category == "student" ? "selected='selected'" : "" %>>学生</option>
</select> <option value="profession" <%= staff.category == "profession" ? "selected='selected'" : "" %>>专业人士</option>
</div> </select>
<div class="col-2 mt-1"> </div>
<label class="radio checkbox-primary mt-1" value="require_1_1"> <div class="col-2 mt-1">
<input id="require_1_1" name="require_1" type="radio"> <label class="radio checkbox-primary mt-1" value="require_1_1">
<label for="require_1_1">可多次报名</label> <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> <label for="require_1_<%= staff.id %>">可多次报名</label>
</div> </label>
<div class="col-2 mt-1"> </div>
<label class="radio checkbox-primary mt-1" value="require_1_2"> <div class="col-2 mt-1">
<input id="require_1_2" name="require_1" type="radio"> <label class="radio checkbox-primary mt-1" value="require_1_2">
<label for="require_1_2">不可多次报名</label> <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> <label for="require_2_<%= staff.id %>">不可多次报名</label>
</div> </label>
</div> <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>
</div> <% when 'inform', 'chart', 'resource' %>
<div class="row mt-2 new_module_div">
<div class="col-1 text-right">
<label class="checkbox checkbox-primary mt-1">
<%= check_box_tag('navbar[][hidden]', 0, !com_module.hidden, id: nil, class: 'font-16') %>
</label>
</div>
<div class="col-md-label mt-2">
<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>
<button class="mt-1 btn btn-primary waves-effect waves-light btn-xs setBtn_s add_linkBtn">+</button>
<% 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">
<%= check_box_tag('navbar[][hidden]', 0, !com_module.hidden, id: nil, class: 'font-16') %>
</label>
</div>
<div class="col-md-label mt-1">
<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>
<button class="mt-1 btn btn-primary waves-effect waves-light btn-xs setBtn_s add_linkBtn">+</button>
<button class="mt-1 btn btn-icon waves-effect btn-default waves-light setBtn_s ml10 del_linkBtn">×</button>
</div>
<% end %>
<% end %>
<!-- <div class="row mt-2">-->
<!-- <div class="col-1 text-right">-->
<!-- <label class="checkbox checkbox-primary mt-1">-->
<!-- <input id="checkbox2" type="checkbox">-->
<!-- <label for="checkbox2">&nbsp;</label>-->
<!-- </label>-->
<!-- </div>-->
<!-- <div class="col-md-label mt-2">获奖证书</div>-->
<!-- </div>-->
<div class="row mt-2"> <div class="row mt-2 mb-4">
<div class="col-1 text-right">
<label class="checkbox checkbox-primary mt-1">
<input id="checkbox2" type="checkbox">
<label for="checkbox2">&nbsp;</label>
</label>
</div>
<div class="col-md-label mt-2">排行榜</div>
<div class="col-md-1 mt-1"><input type="text" class="form-control"></div>
</div>
<div id="linkForm">
<div class="row mt-2 linkFormItem">
<div class="col-1 text-right"> <div class="col-1 text-right">
<label class="checkbox checkbox-primary mt-1">
<input id="link_1" type="checkbox" name="link_1" />
<label for="link_1">&nbsp;</label>
</label>
</div> </div>
<div class="col-md-label mt-2">资料下载</div> <div class="col-md-label mt-2"><%= javascript_void_link '保存', class: 'btn btn-primary submit-btn' %></div>
<div class="col-md-1 mt-1"><input type="text" name="link_index_1" class="form-control"></div>
<div class="col-md-3 mt-1"><input type="text" name="link_info_1" class="form-control"></div>
<button class="mt-1 btn btn-primary waves-effect waves-light btn-xs setBtn_s add_linkBtn">+</button>
</div>
</div>
<div class="row mt-2">
<div class="col-1 text-right">
<label class="checkbox checkbox-primary mt-1">
<input id="checkbox2" type="checkbox">
<label for="checkbox2">&nbsp;</label>
</label>
</div> </div>
<div class="col-md-label mt-2">获奖证书</div>
</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> </div>
</div> </div>

@ -1,5 +1,6 @@
json.count @all_count json.count @all_count
json.personal @personal json.personal @personal
json.competition_name @competition.name
json.competition_teams do json.competition_teams do
json.array! @all_teams&.each do |team| json.array! @all_teams&.each do |team|
json.extract! team, :id, :name, :invite_code json.extract! team, :id, :name, :invite_code

@ -1025,6 +1025,7 @@ Rails.application.routes.draw do
resources :competition_settings, only: [:index] do resources :competition_settings, only: [:index] do
post :basic_setting, on: :collection post :basic_setting, on: :collection
post :nav_setting, on: :collection
end end
resources :enroll_lists, only: [:index] do resources :enroll_lists, only: [:index] do

@ -16,7 +16,7 @@ class MigrateCompetitionModuleType < ActiveRecord::Migration[5.2]
mod_type = "manual" mod_type = "manual"
when '排行榜' when '排行榜'
mod_type = "chart" mod_type = "chart"
when '资料下载 ' when '资料下载'
mod_type = "resource" mod_type = "resource"
else else
mod_type = "md" mod_type = "md"

@ -0,0 +1,26 @@
class MigrateComModuleResource < ActiveRecord::Migration[5.2]
def change
Competition.all.each do |competition|
competition.competition_modules.each do |com_module|
mod_type = ""
case com_module.name.strip
when '首页'
mod_type = "home"
when '报名'
mod_type = "enroll"
when '通知公告'
mod_type = "inform"
when '参赛手册'
mod_type = "manual"
when '排行榜'
mod_type = "chart"
when '资料下载'
mod_type = "resource"
else
mod_type = "md"
end
com_module.update_attributes!(module_type: mod_type)
end
end
end
end
Loading…
Cancel
Save