/** 数据列表组件 date:2020-05-04 License By http://easyweb.vip */ layui.define(["laytpl","laypage","form"],function(f){var g=layui.jquery;var j=layui.laytpl;var e=layui.laypage;var b=layui.form;var k="DataGrid";var a="ew-datagrid-loading";var m="ew-datagrid-item";var d="ew-loading",n="ew-more-end";var i={limit:10,layout:["prev","page","next","skip","count","limit"]};var h={first:true,curr:1,limit:10,text:"加载更多",loadingText:"加载中...",noMoreText:"没有更多数据了~",errorText:"加载失败,请重试"};var o=function(p){this.options=g.extend(true,{method:"GET",request:{pageName:"page",limitName:"limit"},useAdmin:false,showError:function(q){g(this.elem).empty()},showEmpty:function(q){g(this.elem).empty()},showLoading:function(){g(this.elem).addClass(a)},hideLoading:function(){g(this.elem).removeClass(a)}},p);if(p.page){this.options.page=g.extend({},i,p.page===true?{}:p.page)}if(p.loadMore){this.options.loadMore=g.extend({},h,p.loadMore===true?{}:p.loadMore)}if(typeof this.options.data==="string"){this.options.url=this.options.data;this.options.data=undefined}this.init();this.bindEvents()};o.prototype.init=function(){var s=this;var q=this.options;var r=this.getComponents();if("static"===r.$elem.css("position")){r.$elem.css("position","relative")}if(q.checkAllElem){var p=r.$checkAll.find('input[lay-filter="'+r.checkAllFilter+'"]');p.next(".layui-form-checkbox").remove();p.remove();r.$checkAll.append([''].join(""));if(!r.$checkAll.hasClass("layui-form")){r.$checkAll.addClass("layui-form")}if(!r.$checkAll.attr("lay-filter")){r.$checkAll.attr("lay-filter",q.checkAllElem.substring(1))}b.render("checkbox",r.$checkAll.attr("lay-filter"))}if(q.url){q.reqData=function(t,u){if(!q.where){q.where={}}q.where[q.request.pageName]=t.page;q.where[q.request.limitName]=t.limit;(q.useAdmin?layui.admin:g).ajax({url:q.url,data:q.contentType&&q.contentType.indexOf("application/json")===0?JSON.stringify(q.where):q.where,headers:q.headers,type:q.method,dataType:"json",contentType:q.contentType,success:function(v){u(q.parseData?q.parseData(v):v)},error:function(v){u({code:v.status,msg:v.statusText,xhr:v})}})}}else{if(q.data){q.reqData=undefined;if(q.loadMore){s.renderLoadMore();s.changeLoadMore(2);s.renderBody(q.data,0,false,true);q.done&&q.done(q.data,1,q.data.length)}else{if(q.page){q.page.count=q.data.length;q.page.jump=function(w,x){q.showLoading();var y=(w.curr-1)*q.page.limit;var u=y+q.page.limit;if(u>q.data.length){u=q.data.length}var t=[];for(var v=y;v0?w:s.parentsUntil("."+m).last().parent()}var t=s.data("index");var v={elem:s,data:r.getData(t),index:t,del:function(){r.del(t)},update:function(x,y){r.update(t,x,y)}};return g.extend(v,u)};q.$elem.off("click.item").on("click.item",">."+m,function(){layui.event.call(this,k,"item("+q.filter+")",p.call(this,{}))});q.$elem.off("dblclick.itemDouble").on("click.itemDouble",">."+m,function(){layui.event.call(this,k,"itemDouble("+q.filter+")",p.call(this,{}))});q.$elem.off("click.tool").on("click.tool","[lay-event]",function(t){layui.stope(t);var s=g(this);layui.event.call(this,k,"tool("+q.filter+")",p.call(this,{event:s.attr("lay-event")}))});b.on("radio("+q.radioFilter+")",function(s){var t=r.getData(s.value);t.LAY_CHECKED=true;layui.event.call(this,k,"checkbox("+q.filter+")",{checked:true,data:t})});b.on("checkbox("+q.checkboxFilter+")",function(t){var s=t.elem.checked;var u=r.getData(t.value);u.LAY_CHECKED=s;r.checkChooseAllCB();layui.event.call(this,k,"checkbox("+q.filter+")",{checked:s,data:u})});b.on("checkbox("+q.checkAllFilter+")",function(v){var u=v.elem.checked;var w=g(v.elem);var t=w.next(".layui-form-checkbox");if(!r.options.data||r.options.data.length<=0){w.prop("checked",false);t.removeClass("layui-form-checked");return}q.$elem.find('input[name="'+q.checkboxFilter+'"]').each(function(){var x=g(this);x.prop("checked",u);var y=x.next(".layui-form-checkbox");if(u){y.addClass("layui-form-checked")}else{y.removeClass("layui-form-checked")}});for(var s=0;s'].join("");w.LAY_RADIO_ELEM=[''].join("");if(v.templetHtml===undefined){return console.error("DataGrid Error: Template ["+x.templet+"] not found")}j(v.templetHtml).render(w,function(y){u.push(y)})}if(q){if(!p){x.data=x.data.concat(s)}v.$elem.append(u.join(""))}else{if(!p){x.data=s}v.$elem.html(u.join(""))}this.initChildren(r);b.render("checkbox",v.filter);b.render("radio",v.filter);this.checkChooseAllCB()};o.prototype.initChildren=function(p){if(!p||!(this.options.page&&this.options.page.data)){p=0}this.getComponents().$elem.children().each(function(q){var r=g(this);r.attr("data-index",q);r.attr("data-number",q+p+1);r.addClass(m)})};o.prototype.renderPage=function(){var p=this.options;var q=this.getComponents();q.$elem.next(".ew-datagrid-page,.ew-datagrid-loadmore").remove();p.page.elem="ew-datagrid-page-"+p.elem.substring(1);q.$elem.after('
');e.render(p.page)};o.prototype.renderLoadMore=function(){var p=this.options;var q=this.getComponents();q.$elem.next(".ew-datagrid-page,.ew-datagrid-loadmore").remove();p.loadMore.elem="ew-datagrid-page-"+p.elem.substring(1);q.$elem.after(['
',"
",' ',' '," ",' ',p.loadMore.text,"","
","
"].join(""));return q.$elem.next()};o.prototype.changeLoadMore=function(s){var p=this.options;var r=this.getComponents();var q=r.$loadMore.find(".ew-loadmore-text");r.$loadMore.removeClass(d+" "+n);if(s===0){q.html(p.loadMore.text)}else{if(s===1){q.html(p.loadMore.loadingText);r.$loadMore.addClass(d)}else{if(s===2){q.html(p.loadMore.noMoreText);r.$loadMore.addClass(n)}else{q.html(p.loadMore.errorText)}}}};o.prototype.update=function(r,p,s){var v=this;var u=this.getComponents();var q=u.$elem.children('[data-index="'+r+'"]');var t=q.data("number");if(t-r!==1){g.extend(true,this.options.data[t-1],p)}else{g.extend(true,this.options.data[r],p)}if(2===s){return}j(u.templetHtml).render(v.getData(r),function(w){if(s===1){return q.html(g(w).html())}q.before(w).remove();v.initChildren(t-r-1)})};o.prototype.del=function(q){var s=this.getComponents();var p=s.$elem.children('[data-index="'+q+'"]');var r=p.data("number");p.remove();if(r-q!==1){this.options.data.splice(r-1,1)}else{this.options.data.splice(q,1)}this.initChildren(r-q-1)};o.prototype.getData=function(q){if(q===undefined){return this.options.data}var s=this.getComponents();var p=s.$elem.children('[data-index="'+q+'"]');var r=p.data("number");if(r-q!==1){return this.options.data[r-1]}return this.options.data[q]};o.prototype.checkStatus=function(){var t=this;var s=this.getComponents();var r=s.checkboxFilter;var v=s.radioFilter;var u=[];var p=s.$elem.find('input[name="'+v+'"]');if(p.length>0){var q=p.filter(":checked").val();if(q!==undefined){var w=t.getData(q);if(w){u.push(w)}}}else{s.$elem.find('input[name="'+r+'"]:checked').each(function(){var x=g(this).val();if(x!==undefined){var y=t.getData(x);if(y){u.push(y)}}})}return u};o.prototype.checkChooseAllCB=function(){var s=this.getComponents();var q=s.$checkAll.find('input[lay-filter="'+s.checkAllFilter+'"]');var p=this.options.data.length!==0;for(var r=0;r0){r.attr("id",s+"-tpl");u.after(r);var q=c(u.attr("lay-data"));q.elem="#"+s;q.templet="#"+s+"-tpl";l.render(q)}}catch(t){console.error(t)}})};l.autoRender();g("head").append(['"].join(""));f("dataGrid",l)});