select-table.js 4.7 KB

12
  1. !function(e){var t={};function n(l){if(t[l])return t[l].exports;var i=t[l]={i:l,l:!1,exports:{}};return e[l].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=e,n.c=t,n.d=function(e,t,l){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:l})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var l=Object.create(null);if(n.r(l),Object.defineProperty(l,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(l,i,function(t){return e[t]}.bind(null,i));return l},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=12)}({12:function(e,t,n){e.exports=n(13)},13:function(e,t){!function(e){function t(e){e=$.extend({dialog:null,container:null,input:null,button:".submit-btn",cancel:".cancel-btn",table:".async-table",multiple:!1,max:0,values:[],lang:{exceed_max_item:Dcat.lang.exceed_max_item||"已超出最大可选择的数量"}},e);var t=this,n=e.values;for(var l in t.options=e,t.$input=$(e.input),t.labels={},n)t.labels[n[l].id]=n[l].label;return t.resetSelected(),$(document).on("dialog:shown",e.dialog,(function(){t.$dialog=$(e.dialog),t.$button=t.$dialog.find(e.button),t.$cancel=t.$dialog.find(e.cancel),t.$button.on("click",(function(){var e=t.getSelectedRows();t.setKeys(e[1]),t.render(e[0]),t.$dialog.trigger("dialog:close")})),t.$cancel.on("click",(function(){t.$dialog.trigger("dialog:close")})),t._bind()})),t.render(n),t}t.prototype={_bind:function(){var e=this,t=e.options;e.$dialog.find(t.table).on("table:loaded",(function(){var n=e.getCheckbox();t.multiple||$(this).find(".checkbox-grid-header").remove(),e.resetSelected(),n.on("change",(function(){var l=$(this).data("id"),i=$(this).data("label");if(this.checked){if(t.multiple||(e.selected={}),e.selected[l]={id:l,label:i},t.max&&e.getSelectedRows()[0].length>t.max)return $(this).prop("checked",!1),delete e.selected[l],Dcat.warning(e.options.lang.exceed_max_item)}else delete e.selected[l];t.multiple||this.checked&&n.each((function(){$(this).data("id")!=l&&($(this).prop("checked",!1),$(this).parents("tr").css("background-color",""))}))})),n.each((function(){var t=$(this),n=t.data("id");for(var l in e.labels[n]=t.data("label"),e.selected)n!=l||t.prop("checked",!0).trigger("change");t.trigger("change")}))}))},resetSelected:function(){var e=this.getKeys();for(var t in this.selected=[],e)this.selected[e[t]]={id:e[t],label:this.labels[e[t]]}},getCheckbox:function(){return this.$dialog.find('.checkbox-grid-column input[type="checkbox"]')},getSelectedRows:function(){var e=[],t=[];for(var n in this.selected)this.selected[n]&&(t.push(n),e.push(this.selected[n]));return[e,t]},render:function(e){var t=this.options,n=$(t.container),l=n.find(".default-text"),i=n.find(".option");return e&&e.length?(l.addClass("d-none"),i.removeClass("d-none"),t.multiple?function(e,t,n){var l=[],i=$(n.container),o=i.find(".default-text"),a=i.find(".option");i.hasClass("select2")||i.addClass("select2 select2-container select2-container--default select2-container--below");for(var c in i.removeClass("form-control"),e)l.push('<li class="select2-selection__choice" >\n '.concat(e[c].label,' <span data-id="').concat(e[c].id,'" class="select2-selection__choice__remove remove " role="presentation"> ×</span>\n</li>'));l.unshift('<span class="select2-selection__clear remove-all">×</span>'),l='<span class="select2-selection select2-selection--multiple">\n <ul class="select2-selection__rendered">'.concat(l.join(""),"</ul>\n </span>");var s=$(l);function r(){a.html(""),o.removeClass("d-none"),a.addClass("d-none"),i.addClass("form-control"),t.setKeys([])}a.html(s),s.find(".remove").on("click",(function(){var e=$(this);t.deleteKey(e.data("id")),e.parent().remove(),t.getKeys().length||r()})),s.find(".remove-all").on("click",r)}(e,this,t):function(e,t,n){var l=$(n.container),i=l.find(".default-text"),o=l.find(".option"),a=$("<div class='pull-right ' style='font-weight:bold;cursor:pointer'>×</div>");o.text(e[0].label),o.append(a),a.on("click",(function(){t.setKeys([]),i.removeClass("d-none"),o.addClass("d-none")}))}(e,this,t)):(l.removeClass("d-none"),i.addClass("d-none"),void(t.multiple&&n.addClass("form-control")))},setKeys:function(e){this.$input.val(e.length?e.join(","):"")},deleteKey:function(e){var t=this.getKeys(),n=[];for(var l in t)t[l]!=e&&n.push(t[l]);this.setKeys(n)},getKeys:function(){var e=this.$input.val();return e?String(e).split(","):[]}},Dcat.grid.SelectTable=function(e){return new t(e)}}(window)}});
  2. //# sourceMappingURL=select-table.js.map