$(document).on('turbolinks:load', function(){ if ($('body.admins-school-statistics-index-page').length > 0) { var searchForm = $(".school-statistic-list-form .search-form"); var growFormUrl = searchForm.data('grow-form-url'); var contrastFormUrl = searchForm.data('contrast-form-url'); var dataTypeInput = searchForm.find("input[name='data_type']"); var keywordInput = searchForm.find("input[name='keyword']"); var contrastBtn = searchForm.find(".contrast-btn"); var growBtn = searchForm.find(".grow-btn"); var contrastDateContainer = searchForm.find('.contrast-date-container'); var growDateContainer = searchForm.find('.grow-date-container'); // 数据对比日期输入框 var beginDateInput = searchForm.find("input[name='begin_date']"); var endDateInput = searchForm.find("input[name='end_date']"); var otherBeginDateInput = searchForm.find("input[name='other_begin_date']"); var otherEndDateInput = searchForm.find("input[name='other_end_date']"); // 新增数据日期输入框 var growBeginDateInput = searchForm.find("input[name='grow_begin_date']"); var growEndDateInput = searchForm.find("input[name='grow_end_date']"); // 数据展示切换: 数据对比、新增数据 searchForm.on('click', ".contrast-btn", function(){ if(contrastBtn.hasClass("active")) { return } changeDataType("contrast"); submitForm(); }); searchForm.on('click', ".grow-btn", function(){ if(growBtn.hasClass("active")) { return } changeDataType("grow"); submitForm(); }); // 搜索按钮 searchForm.on('click', ".search-btn", function(){ console.log('submit'); submitForm(); }); $('.school-statistic-list-container').on('change', '.contrast-column-select', function() { searchForm.find("input[name='contrast_column']").val($('.contrast-column-select').val()); submitForm(); }); var submitForm = function(){ if(!validateFrom()) { return } var form = searchForm; var url = dataTypeInput.val() == "contrast" ? contrastFormUrl : growFormUrl; $.ajax({ url: url, data: form.serialize(), dataType: "script" }) }; var validateFrom = function(){ if (dataTypeInput.val() != "contrast") { return true; } // 全部为空时,需要展示空数据页 if (beginDateInput.val() == "" && endDateInput.val() == "" && otherBeginDateInput.val() == "" && otherBeginDateInput.val() == "") { return true; } if (beginDateInput.val() != "" && endDateInput.val() != "" && otherBeginDateInput.val() != "" && otherBeginDateInput.val() != "") { return true; } return false; }; var changeDataType = function(dataType){ if (dataTypeInput.val() == dataType) { return } if (dataType == "contrast") { contrastBtn.addClass("active"); growBtn.removeClass("active"); dataTypeInput.val('contrast'); growDateContainer.hide(); contrastDateContainer.show(); clearGrowDateInput(); } else { contrastBtn.removeClass("active"); growBtn.addClass("active"); dataTypeInput.val('grow'); growDateContainer.show(); contrastDateContainer.hide(); clearContrastDateInput(); } }; var clearGrowDateInput = function() { searchForm.find("input[name='grow_begin_date']").val(''); searchForm.find("input[name='grow_end_date']").val(''); searchForm.find("input[name='grow_date_input']").val(''); }; var clearContrastDateInput = function(){ searchForm.find("input[name='begin_date']").val(''); searchForm.find("input[name='end_date']").val(''); searchForm.find("input[name='other_begin_date']").val(''); searchForm.find("input[name='other_end_date']").val(''); searchForm.find("input[name='date_input']").val(''); searchForm.find("input[name='other_date_input']").val(''); }; var baseOptions = { autoclose: true, language: 'zh-CN', format: 'yyyy-mm-dd', startDate: '2017-04-01', endDate: '-1d' } var defineDateRangeSelect = function(element){ var options = $.extend({inputs: $(element).find('.start-date, .end-date')}, baseOptions); $(element).datepicker(options); $(element).find('.start-date').datepicker().on('changeDate', function(e){ $(element).find('.end-date').datepicker('setStartDate', e.date); }) }; defineDateRangeSelect('.grow-date-input-daterange'); defineDateRangeSelect('.date-input-daterange'); defineDateRangeSelect('.other-date-input-daterange'); } })