123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278 |
- define(['jquery'], function($) {
- $(document).on('change', 'table tfoot [type="checkbox"]', function(e) {
- e && e.preventDefault();
- var $table = $(e.target).closest('table'),
- $checked = $(e.target).is(':checked');
- $('thead [type="checkbox"]', $table).prop('checked', $checked);
- $('.page-table-header input[type="checkbox"]').prop('checked', $checked);
- $('tbody [type="checkbox"]', $table).prop('checked', $checked)
- });
- $(document).on('change', 'table thead [type="checkbox"]', function(e) {
- e && e.preventDefault();
- var $table = $(e.target).closest('table'),
- $checked = $(e.target).is(':checked');
- $('.page-table-header input[type="checkbox"]').prop('checked', $checked);
- $('tbody [type="checkbox"]:not(:disabled)', $table).prop('checked', $checked);
- $('tfoot [type="checkbox"]', $table).prop('checked', $checked)
- });
- $(document).on('change', '.page-table-header input[type="checkbox"]', function(e) {
- e && e.preventDefault();
- var $table = $(e.target).parent().next('table'),
- $checked = $(e.target).is(':checked');
- $('thead [type="checkbox"]', $table).prop('checked', $checked);
- $('tfoot [type="checkbox"]', $table).prop('checked', $checked);
- $('tbody [type="checkbox"]', $table).prop('checked', $checked)
- });
- var table_search = $('form.table-search');
- if (table_search.length > 0) {
- $('.daterange-time').addClass('btn-sm')
- }
- var div = $(".table-responsive"),
- checkboxs = $('tbody tr td:first-child [type="checkbox"]', div),
- batch = $('[data-toggle^="batch"]'),
- trigger = $('[data-trigger="batch"]');
- if (div.length > 0) {
- $('[data-toggle="ajaxDisplayorder"]').click(function() {
- var $this = $(this),
- href = $this.data("href"),
- html = $this.val() || $this.html(),
- buttontype = $this.val() ? 'input' : 'button';
- var postdata = {},
- selecteds = all_selects();
- postdata.displayorder = (function() {
- var displayorders = [];
- $.each(selecteds, function(i) {
- displayorders.push({
- id: this,
- displayorder: $(":input[name='displayorder[" + this + "]']").val()
- })
- });
- return displayorders
- })();
- $this.attr('disabled', true), buttontype == 'button' ? $this.html('<i class="fa fa-spinner fa-spin"></i> ' + tip.lang.processing) : $this.val(tip.lang.processing);
- $.post(href, postdata).done(function(data) {
- data = eval("(" + data + ")");
- if (data.status == 1) {
- tip.msgbox.suc(data.result.message || tip.lang.success);
- $this.removeAttr('disabled'), buttontype == 'button' ? $this.html(html) : $this.val(html)
- } else {
- buttontype == 'button' ? $this.html(html) : $this.val(html);
- $this.removeAttr('disabled'), tip.msgbox.err(data.result.message || tip.lang.error)
- }
- }).fail(function() {
- $this.removeAttr('disabled'), buttontype == 'button' ? $this.html(html) : $this.val(html), tip.msgbox.err(tip.lang.exception)
- })
- });
- checkboxs.click(function() {
- var $this = $(this);
- if ($this[0].checked) {
- $this.closest('tr').find('td').css('background', '#f7fbff')
- } else {
- $this.closest('tr').find('td').css('background', 'none')
- }
- });
- var all_selects = function() {
- var vals = checkboxs.map(function() {
- return $(this).val()
- }).get();
- return vals
- };
- var get_selecteds = function() {
- var selected_checkboxs = $('tbody tr td:first-child [type="checkbox"]:checked', div);
- selecteds = selected_checkboxs.map(function() {
- return $(this).val()
- }).get();
- return selecteds
- };
- var selecteds = get_selecteds();
- if (selecteds.length <= 0) {
- batch.attr("disabled", "disabled")
- }
- batch.on("click", function() {
- var $this = $(this),
- href = $this.data("href"),
- html = $this.val() || $this.html(),
- buttontype = $this.val() ? 'input' : 'button';
- if ($this.data('toggle') == 'batch-level' || $this.data('toggle') == 'batch-group') {
- return
- }
- $this.attr("disabled", "disabled");
- var chks = $('tbody tr td:first-child [type="checkbox"]:checked', div);
- var selecteds = get_selecteds();
- var submit = function() {
- buttontype == 'button' ? $this.html('<i class="fa fa-spinner fa-spin"></i> ' + tip.lang.processing) : $this.val(tip.lang.processing);
- $.post(href, {
- ids: selecteds
- }).done(function(data) {
- data = eval("(" + data + ")");
- if (data.status == 1) {
- if ($this.data('toggle') == 'batch-remove') {
- var deferred = $.Deferred(),
- removeHandler = function(def) {
- var c = 0;
- return chks.parents("tr").fadeOut(function() {
- $(this).remove(), c++, chks.length == c && def.resolve()
- }), def
- };
- $.when(removeHandler(deferred)).done(function() {
- batch.attr("disabled", 0 == $('tbody tr td:first-child [type="checkbox"]:checked', div).length), 0 == $("table tbody tr", div).length && window.location.reload()
- })
- } else {
- batch.attr("disabled", 0 == $('table tbody tr td:first-child [type="checkbox"]:checked', div).length);
- tip.msgbox.suc(data.result.message || tip.lang.success, data.result.url)
- }
- buttontype == 'button' ? $this.html(html) : $this.val(html)
- } else {
- buttontype == 'button' ? $this.html(html) : $this.val(html);
- tip.msgbox.err(data.result.message || tip.lang.error)
- }
- }).fail(function() {
- buttontype == 'button' ? $this.html(html) : $this.val(html), tip.msgbox.err(tip.lang.exception)
- })
- };
- if ($this.data('confirm')) {
- tip.confirm($this.data('confirm'), submit, function() {
- $this.removeAttr("disabled", "disabled")
- })
- } else {
- submit()
- }
- }), trigger.on("click", function() {
- var ids = all_selects();
- $(this).data("set", {
- ids: ids.join(',')
- })
- }), $(document).on("change", '.page-table-header input[type="checkbox"]', function(e) {
- e && e.preventDefault();
- var t = $(e.target).parent().next("table"),
- checked = $(e.target).is(":checked");
- $('.page-table-header input[type="checkbox"]', t).prop("checked", checked), batch.add(trigger).attr("disabled", !checked);
- $('tbody tr td:first-child [type="checkbox"]', t).each(function() {
- var $this = $(this);
- if (checked) {
- $this.closest('tr').find('td').css('background', '#f7fbff')
- } else {
- $this.closest('tr').find('td').css('background', 'none')
- }
- })
- }), $(document).on("change", '.table-responsive tfoot td:first [type="checkbox"]', function(e) {
- e && e.preventDefault();
- var t = $(e.target).closest("table"),
- checked = $(e.target).is(":checked");
- $('.page-table-header input[type="checkbox"]', t).prop("checked", checked), batch.add(trigger).attr("disabled", !checked);
- $('tbody tr td:first-child [type="checkbox"]', t).each(function() {
- var $this = $(this);
- if (checked) {
- $this.closest('tr').find('td').css('background', '#f7fbff')
- } else {
- $this.closest('tr').find('td').css('background', 'none')
- }
- })
- }), $(document).on("change", '.table-responsive thead th:first [type="checkbox"]', function(e) {
- e && e.preventDefault();
- var t = $(e.target).closest("table"),
- checked = $(e.target).is(":checked");
- $('.page-table-header input[type="checkbox"]', t).prop("checked", checked), batch.add(trigger).attr("disabled", !checked);
- $('tbody tr td:first-child [type="checkbox"]', t).each(function() {
- var $this = $(this);
- if (checked) {
- $this.closest('tr').find('td').css('background', '#f7fbff')
- } else {
- $this.closest('tr').find('td').css('background', 'none')
- }
- })
- }), $(document).on("change", '.table-responsive tbody td:first-child [type="checkbox"]', function(e) {
- e && e.preventDefault();
- var t = $(e.target).closest("table"),
- checked = $(e.target).is(":checked"),
- chk = $('tbody tr td:first-child [type="checkbox"]:checked', t);
- $('.page-table-header input[type="checkbox"]').prop("checked", checked && chk.length == checkboxs.length);
- $('tfoot td:first [type="checkbox"]', t).prop("checked", checked && chk.length == checkboxs.length);
- $('thead th:first [type="checkbox"]', t).prop("checked", checked && chk.length == checkboxs.length);
- if (chk.length > 0) {
- batch.add(trigger).removeAttr("disabled")
- } else {
- batch.add(trigger).attr("disabled", "disabled")
- }
- }), $(document).on("click", '.table-responsive tbody [data-toggle="ajaxRemove"]', function(e) {
- e.preventDefault();
- var obj = $(this),
- url = obj.attr('href') || obj.data('href') || obj.data('url'),
- confirm = obj.data('msg') || obj.data('confirm');
- var submit = function() {
- obj.html('<i class="fa fa-spinner fa-spin"></i> ' + tip.lang.processing);
- $.post(url).done(function(data) {
- data = eval("(" + data + ")");
- if (data.status == 1) {
- var tr = obj.parents("tr");
- tr.css({
- "background-color": "#dff0d8"
- }).find("td").css({
- "background-color": "#dff0d8"
- }), tr.fadeOut(function() {
- tr.remove(), 0 == $(obj.closest('tbody')).find('tr').length && window.location.reload()
- })
- } else {
- obj.button('reset'), tip.msgbox.err(data.result.message || tip.lang.error, data.result.url)
- }
- }).fail(function() {
- obj.button('reset');
- tip.msgbox.err(tip.lang.exception)
- })
- };
- if (confirm) {
- tip.confirm(confirm, submit, function() {
- obj.removeAttr("disabled", "disabled")
- })
- } else {
- submit()
- }
- })
- } else {
- batch.attr("disabled", "disabled")
- }
- }), $(document).on("click.dropdown-menu", ".dropdown-select > li > a", function(e) {
- e.preventDefault();
- var target = $(e.target);
- if (!target.is('a')) {
- target = target.closest('a')
- }
- var menu = target.closest('.dropdown-menu'),
- label = menu.parent().find('.dropdown-label');
- var input = target.find('input'),
- checked = input.is(':checked');
- if (!input.is(':disabled') && input.attr('type') == 'radio' && checked) {
- menu.find('li').removeClass('active')
- }
- target.parent().removeClass('active');
- if (!checked) {
- target.parent().addClass('active')
- }
- input.prop('checked', !input.prop('checked'));
- var textchange = label.data('change') == 'true' || label.data('change') === undefined;
- if (textchange) {
- var checkedinput = menu.find('li > a >input:checked');
- if (checkedinput.length > 0) {
- var texts = [];
- checkedinput.each(function() {
- var text = $(this).parent().text();
- if (text) {
- texts.push($.trim(text))
- }
- });
- if (texts.length < 6) {
- texts = texts.join(", ")
- } else {
- texts = " 选中" + texts.length + "项"
- }
- label.html(texts)
- } else {
- label.html(label.data('placeholder'))
- }
- }
- input.trigger('change', [input.val()]);
- var change = menu.data('change') || '';
- if (change == 'submit') {
- menu.closest('form').submit()
- }
- });
|