2019-09-06 23:53:10 +08:00

6 lines
25 KiB
JavaScript
Executable File

!function(c){var b=function(f,d){this._id=(((1+Math.random())*65536)|0).toString(16);this._loadCount=0;this.opts=d;this._initLayout(c(f));this._initHead();this._initOptions();this._initEvents();this._setColsWidth();if(this.opts.fullWidthRows){this._fullWidthRows()}for(var e=0;e<this.opts.plugins.length;e++){var h=this.opts.plugins[e];h.init(c.extend(f,this))}if(d.autoLoad){var g=this;this.opts=d;setTimeout(function(){if(d.url){g.load()}else{g.load(d.items)}},0)}};var a=function(){var d=!!window.ActiveXObject;var h=d&&!!window.atob;var e=d&&document.addEventListener&&!window.atob;var f=d&&document.querySelector&&!document.addEventListener;var g=d&&window.XMLHttpRequest&&!document.querySelector;var i=d&&!window.XMLHttpRequest;return{isIE:d,isIE6:i,isIE7:g,isIE8:f,isIE9:e,isIE10:h}}();b.prototype={_initLayout:function(g){var h=this.opts;var f=g.parent();var e=g.index();var j=['<div class="mmGrid">',"<style></style>",'<div class="mmg-headWrapper">','<table class="mmg-head" cellspacing="0"></table>',"</div>",'<div class="mmg-colResizePointer"></div>','<div class="mmg-colResizePointer-before"></div>','<div class="mmg-backboard">','<a class="mmg-btnBackboardUp"></a>',"</div>",'<div class="mmg-bodyWrapper"></div>','<a class="mmg-btnBackboardDn"></a>','<div class="mmg-message">'+this.opts.noDataText+"</div>",'<div class="mmg-mask mmg-transparent"></div>','<div class="mmg-loading">','<div class="mmg-loadingImg"></div>','<div class="mmg-loadingText">'+this.opts.loadingText+"</div>","</div>","</div>"];if(a.isIE7||a.isIE6){g.prop("cellspacing",0)}var d=c(j.join(""));this.$mmGrid=d;this.$style=d.find("style");this.$headWrapper=d.find(".mmg-headWrapper");this.$head=d.find(".mmg-head");this.$backboard=d.find(".mmg-backboard");this.$bodyWrapper=d.find(".mmg-bodyWrapper");this.$body=g.removeAttr("style").addClass("mmg-body");this._insertEmptyRow();this.$body.appendTo(this.$bodyWrapper);if(e===0||f.children().length==0){f.prepend(this.$mmGrid)}else{f.children().eq(e-1).after(this.$mmGrid)}if(a.isIE6&&(!h.width||h.width==="auto")){d.width("100%");d.width(d.width()-(d.outerWidth(true)-d.width()))}else{d.width(h.width)}if(a.isIE6&&(!h.height||h.height==="auto")){d.height("100%");d.height(d.height()-(d.outerHeight(true)-d.height()))}else{d.height(h.height)}if(h.checkCol){var i=h.multiSelect?'<input type="checkbox" class="checkAll" >':'<input type="checkbox" disabled="disabled" class="checkAll">';h.cols.unshift({title:i,width:20,align:"center",lockWidth:true,checkCol:true,renderer:function(){return'<input type="checkbox" class="mmg-check">'}})}if(h.indexCol){h.cols.unshift({title:"#",width:h.indexColWidth,align:"center",lockWidth:true,indexCol:true,renderer:function(l,k,m){return'<label class="mmg-index">'+(m+1)+"</label>"}})}},_expandCols:function(g){var f=[];if(!g){return f}for(var e=0;e<g.length;e++){var d=g[e];if(d.cols){f.push(d);f.push.apply(f,this._expandCols(d.cols))}else{f.push(d)}}return f},_leafCols:function(){var g=this.opts;var f=[];var h=this._expandCols(g.cols);for(var e=0;e<h.length;e++){var d=h[e];if(!d.cols){f.push(d)}}return f},_expandThs:function(){return this.$head.find("th").sort(function(e,d){return parseInt(c(e).data("colindex"))-parseInt(c(d).data("colindex"))})},_leafThs:function(){return this.$head.find("th").filter(function(){return !c.data(this,"col").cols}).sort(function(e,d){return parseInt(c(e).data("colindex"))-parseInt(c(d).data("colindex"))})},_colsWithTitleDeep:function(h,d){var g=[];if(!h){return g}for(var f=0;f<h.length;f++){var e=h[f];if(d===1){g.push(e)}else{g.push.apply(g,this._colsWithTitleDeep(e.cols,d-1))}}return g},_titleDeep:function(g){var d=1;for(var f=0;f<g.length;f++){var e=g[f];if(e.cols){var h=1+this._titleDeep(e.cols);if(d<h){d=h}}}return d},_titleHtml:function(e,h){var f=this.opts;var g=[];if(!e.cols){g.push('<th class="');var d=c.inArray(e,this._expandCols(f.cols));g.push(this._genColClass(d));g.push(' " ');g.push(' rowspan="');g.push(h);g.push('" colspan="');g.push(1);g.push('" data-colIndex="');g.push(d);g.push('" >');g.push('<div class="mmg-titleWrapper" >');g.push('<span class="mmg-title ');if(e.sortable){g.push("mmg-canSort ")}g.push('">');if(e.titleHtml){g.push(e.titleHtml)}else{g.push(e.title)}g.push('</span><div class="mmg-sort"></div>');if(!e.lockWidth){g.push('<div class="mmg-colResize"></div>')}g.push("</div></th>")}else{var i=e.cols.length;c.each(e.cols,function(j,k){if(k.hidden){i--}});if(i===0){e.hidden=true}g.push('<th class="');var d=c.inArray(e,this._expandCols(f.cols));g.push(this._genColClass(d));g.push(' mmg-groupCol" ');g.push(' rowspan="');g.push(h-1);g.push('" colspan="');g.push(i);g.push('" data-colIndex="');g.push(d);g.push('" >');g.push('<div class="mmg-titleWrapper" >');g.push('<span class="mmg-title ');if(e.sortable){g.push("mmg-canSort ")}g.push('">');if(e.titleHtml){g.push(e.titleHtml)}else{g.push(e.title)}g.push('</span><div class="mmg-sort"></div>');g.push("</div></th>")}return g.join("")},_initHead:function(){var i=this;var d=this.opts;var j=this.$head;
if(d.cols){var h=["<thead>"];var r=i._titleDeep(d.cols);for(var o=1;o<=r;o++){var l=i._colsWithTitleDeep(d.cols,o);h.push("<tr>");for(var n=0;n<l.length;n++){var g=l[n];h.push(this._titleHtml(g,r-o+1))}h.push("</tr>")}h.push("</thead>");j.html(h.join(""))}var k=this._expandThs();var f=this._expandCols(d.cols);c.each(k,function(s){if(!f[s].width){f[s].width=100}c.data(this,"col-width",f[s].width);c.data(this,"col",f[s])});var p=this.$mmGrid;var m=this.$headWrapper;var e=this.$bodyWrapper;if(d.height!=="auto"){e.height(p.height()-m.outerHeight(true))}if(d.sortName){for(var n=0;n<f.length;n++){var g=f[n];if(g.sortName===d.sortName||g.name===d.sortName){var q=k.eq(n);c.data(q.find(".mmg-title")[0],"sortStatus",d.sortStatus);q.find(".mmg-sort").addClass("mmg-"+d.sortStatus)}}}},_initOptions:function(){var g=this.opts;var d=this.$mmGrid;var i=this.$headWrapper;var h=this.$backboard;d.find("a.mmg-btnBackboardDn").css({"top":i.outerHeight(true)}).slideUp("fast");var j=this._leafCols();if(j){var k=["<h1>显示列</h1>"];for(var f=0;f<j.length;f++){k.push("<label ");if(j[f].checkCol||j[f].indexCol){k.push('style="display:none;" ')}var e=j[f];k.push('><input type="checkbox" ');if(!e.hidden){k.push('checked="checked"')}if(e.lockDisplay){k.push(' disabled="disabled"')}k.push("/><span>");if(e.title){k.push(e.title)}else{k.push("未命名")}k.push("</span></label>")}h.append(c(k.join("")))}},_initEvents:function(){var i=this;var d=this.opts;var n=this.$mmGrid;var m=this.$headWrapper;var j=this.$head;var f=this.$bodyWrapper;var h=this.$body;var o=this.$backboard;var k=this._expandThs();var e=this._expandCols(d.cols);var g=this._leafCols();if(d.width==="auto"||d.height==="auto"||(typeof d.width==="string"&&d.width.indexOf("%")===d.width.length-1)||typeof d.height==="string"&&d.height.indexOf("%")===d.height.length-1){c(window).on("resize",function(){i.resize()})}f.on("scroll",function(){j.css("left",-c(this).scrollLeft())});var l=n.find("a.mmg-btnBackboardDn").on("click",function(){var p=n.height()-m.outerHeight(true);if(d.height==="auto"&&d.backboardMinHeight!=="auto"&&p<d.backboardMinHeight){p=d.backboardMinHeight}o.height(p);if(d.height==="auto"){n.height(m.outerHeight(true)+o.outerHeight(true))}o.slideDown();l.slideUp("fast");i._hideMessage()});h.on("mouseenter",function(){l.slideUp("fast")});n.on("mouseleave",function(){l.slideUp("fast")});m.on("mouseenter",function(){if(o.is(":hidden")&&d.showBackboard){l.slideDown("fast")}});n.find("a.mmg-btnBackboardUp").on("click",function(){o.slideUp().queue(function(p){if(!i.rowsLength()||(i.rowsLength()===1&&h.find("tr.emptyRow").length===1)){i._showNoData()}if(d.height==="auto"){n.height("auto")}p()})});o.on("click",":checkbox",function(){var s=o.find("label").index(c(this).parent());var u=1;if(d.checkCol){u=u+1}if(d.indexCol){u=u+1}if(o.find("label :checked").length<u){this.checked=true;return}var q=g[s];if(this.checked){q.hidden=false}else{q.hidden=true}var t=j.find("th");for(var v=t.length-1;v>=0;v--){var x=t.eq(v);var w=x.data("col");if(w.cols){var r=true;var p=0;c.each(w.cols,function(y,z){if(!z.hidden){r=false;p++}});if(p!==0){x.prop("colspan",p)}w.hidden=r}}i._setColsWidth();o.height(n.height()-m.outerHeight(true));if(d.height!=="auto"){f.height(n.height()-m.outerHeight(true))}n.find("a.mmg-btnBackboardDn").css({"top":m.outerHeight(true)})});j.on("click",".mmg-title",function(){var s=c(this);var p=k.find(".mmg-title");var q=s.parent().parent().data("col");if(!q.sortable){return}var r=c.data(this,"sortStatus")==="asc"?"desc":"asc";c.each(p,function(){c.removeData(this,"sortStatus")});k.find(".mmg-sort").removeClass("mmg-asc").removeClass("mmg-desc");c.data(this,"sortStatus",r);s.siblings(".mmg-sort").addClass("mmg-"+r);if(d.url&&d.remoteSort){i.load()}else{i._nativeSorter(c.inArray(q,g),r);i._setStyle()}}).on("mousedown",".mmg-colResize",function(s){var q=c(this);var u=s.pageX;var p=n.find(".mmg-colResizePointer").css("left",s.pageX-m.offset().left).show();var t=j.position().left;var r=n.find(".mmg-colResizePointer-before").css("left",q.parent().parent().position().left+t).show();document.selection&&document.selection.empty&&(document.selection.empty(),1)||window.getSelection&&window.getSelection().removeAllRanges();document.body.onselectstart=function(){return false};m.css("-moz-user-select","none");n.on("mousemove",function(v){p.css("left",v.pageX-m.offset().left)}).on("mouseup",function(x){var w=q.parent().parent();var v=w.width()+x.pageX-u;c.data(w[0],"col-width",v);i._setColsWidth();m.mouseleave()}).on("mouseleave",function(){n.off("mouseup").off("mouseleave").off("mousemove");p.hide();r.hide();document.body.onselectstart=function(){return true};m.css("-moz-user-select","text")})});var h=this.$body;h.on("click","td",function(r){var q=c(this);var p=jQuery.Event("cellSelected");p.target=r.target;i.$body.triggerHandler(p,[c.data(q.parent()[0],"item"),q.parent().index(),q.index()]);if(p.isPropagationStopped()){return}if(!q.parent().hasClass("selected")){i.select(q.parent().index())}else{i.deselect(q.parent().index())
}});h.on("click","tr > td .mmg-check",function(q){q.stopPropagation();var p=c(this);if(this.checked){i.select(c(p.parents("tr")[0]).index())}else{i.deselect(c(p.parents("tr")[0]).index())}});if(d.checkCol){j.find("th .checkAll").on("click",function(){if(this.checked){i.select("all")}else{i.deselect("all")}})}if(a.isIE6){h.on("mouseenter","tr",function(){c(this).toggleClass("hover")}).on("mouseleave","tr",function(){c(this).toggleClass("hover")})}},_rowHtml:function(l,j){var d=this.opts;var e=this._expandCols(d.cols);var g=this._leafCols();if(c.isPlainObject(l)){var h=[];h.push("<tr>");for(var k=0;k<g.length;k++){var f=g[k];h.push('<td class="');var i=c.inArray(f,e);h.push(this._genColClass(i));if(d.nowrap){h.push(" nowrap")}h.push('"><span class="');if(d.nowrap){h.push("nowrap")}h.push('">');if(f.renderer){h.push(f.renderer(l[f.name],l,j))}else{h.push(l[f.name])}h.push("</span></td>")}h.push("</tr>");return h.join("")}},_populate:function(e){var g=this.opts;var i=this.$body;this._hideMessage();if(e&&e.length!==0&&g.cols){var h=[];h.push("<tbody>");for(var j=0;j<e.length;j++){var f=e[j];h.push(this._rowHtml(f,j))}h.push("</tbody>");i.empty().html(h.join(""));var d=i.find("tr");for(var j=0;j<e.length;j++){c.data(d.eq(j)[0],"item",e[j])}}else{this._insertEmptyRow();this._showNoData()}this._setStyle();if(g.fullWidthRows&&this._loadCount<=1){this._fullWidthRows()}},_insertEmptyRow:function(){var d=this.$body;d.empty().html('<tbody><tr class="emptyRow"><td style="border: 0px;background: none;">&nbsp;</td></tr></tbody>')},_removeEmptyRow:function(){var d=this.$body;d.find("tr.emptyRow").remove()},_genColClass:function(d){return"mmg"+this._id+"-col"+d},_setStyle:function(){var d=this.$head;var e=this._expandThs();var f=this.$body;var h=this._leafCols();e.eq(0).addClass("first");e.eq(-1).addClass("last");f.find("tr,td").removeClass("even").removeClass("colSelected").removeClass("colSelectedEven");f.find("tr:odd").addClass("even");var g=c.inArray(d.find(".mmg-title").filter(function(){return c.data(this,"sortStatus")==="asc"||c(this).data("sortStatus")==="desc"}).parent().parent().data("col"),h);f.find("tr > td:nth-child("+(g+1)+")").addClass("colSelected").filter(":odd").addClass("colSelectedEven");this._resizeHeight()},_setColsWidth:function(){var d=this.opts;var e=this.$style;var n=this.$head;var h=this.$bodyWrapper;var m=this.$body;var o=this._expandThs();var i=this._expandCols(d.cols);var j=h.scrollTop();var l=n.position().left;h.width(9999);m.width("auto");var f=[];for(var q=0;q<o.length;q++){var r=o.eq(q);f.push(".mmGrid ."+this._genColClass(q)+" {");var g=c.data(r[0],"col-width");f.push("width: "+g+"px;");f.push("max-width: "+g+"px;");var k=i[q];if(k.align){f.push("text-align: "+k.align+";")}if(k.hidden){f.push("display: none; ")}f.push(" }")}m.detach();try{e.text(f.join(""))}catch(p){e[0].styleSheet.cssText=f.join("")}m.width(n.width()-2);h.width("100%");h.append(m);h.scrollLeft(-l);if(h.scrollLeft()===0){n.css("left",0)}h.scrollTop(j)},_fullWidthRows:function(){var e=this.opts;var h=this.$bodyWrapper;var t=this.$mmGrid;var p=this.$head;var o=h.width()-h[0].clientWidth;if(o&&a.isIE){o=o+1}var g=t.width()-p.width()-o;if(g<-20){return}var d=[];var q=this._leafThs();var s=this._leafCols();for(var n=0;n<s.length;n++){var j=s[n];var u=q.eq(n);if(!j.lockWidth&&u.is(":visible")){d.push(u)}}var k=Math.floor(g/d.length);var r=0;for(var n=0;n<d.length;n++){var u=d[n];var m=c.data(u[0],"col-width")+k;c.data(u[0],"col-width",m);var l=c.data(d[r][0],"col-width");if(l<m){r=n}}var f=g-k*d.length;var l=c.data(d[r][0],"col-width");c.data(d[r][0],"col-width",l+f);this._setColsWidth()},_showLoading:function(){var d=this.$mmGrid;d.find(".mmg-mask").show();var e=d.find(".mmg-loading");e.css({"left":(d.width()-e.width())/2,"top":(d.height()-e.height())/2}).show()},_hideLoading:function(){var d=this.$mmGrid;d.find(".mmg-mask").hide();d.find(".mmg-loading").hide()},_showNoData:function(){this._showMessage(this.opts.noDataText)},_showLoadError:function(){this._showMessage(this.opts.loadErrorText)},_showMessage:function(g){var d=this.$mmGrid;var f=this.$headWrapper;var e=d.find(".mmg-message");e.css({"left":(d.width()-e.width())/2,"top":(d.height()+f.height()-e.height())/2}).text(g).show()},_hideMessage:function(){var d=this.$mmGrid;d.find(".mmg-message").hide()},_nativeSorter:function(e,f){var g=this._leafCols();var d=g[e];this.$body.find("tr > td:nth-child("+(e+1)+")").sortElements(function(j,i){var k=c.text(c(j));var h=c.text(c(i));if(d.type==="number"){k=parseFloat(k);h=parseFloat(h)}else{return f==="desc"?-k.localeCompare(h):k.localeCompare(h)}return k>h?(f==="desc"?-1:1):(f==="desc"?1:-1)},function(){return this.parentNode})},_refreshSortStatus:function(){var e=this.$head.find("th");var d=-1;var f="";e.find(".mmg-title").each(function(h,i){var g=c.data(i,"sortStatus");if(g){d=h;f=g}});var f=f==="desc"?"asc":"desc";if(d>=0){e.eq(d).find(".mmg-title").data("sortStatus",f).click()}},_loadAjax:function(o){var n=this;var d=this.opts;
var j={};if(c.isFunction(d.params)){var f=d.params();if(!f){return}j=c.extend(j,f)}else{if(c.isPlainObject(d.params)){if(o){d.params=c.extend(j,o)}j=c.extend(j,d.params)}}if(d.remoteSort){var r="";var h="";var e=this.$head.find(".mmg-title");for(var s=0;s<e.length;s++){var k=c.data(e[s],"sortStatus");if(k){var g=e.eq(s).parent().parent().data("col");r=g.sortName?g.sortName:g.name;h=k}}if(r){j.sort=r+"."+h}}var q={};for(var l=0;l<this.opts.plugins.length;l++){var m=this.opts.plugins[l];c.extend(q,m.params())}j=c.extend(j,q);j=c.extend(j,o);n._showLoading();c.ajax({type:d.method,url:d.url,data:j,dataType:"json",cache:d.cache}).done(function(p){try{var i=p;if(c.isArray(p[d.root])){i=p[d.root]}n._populate(i);n._hideLoading();if(!d.remoteSort){n._refreshSortStatus()}if(p&&c.isArray(p[d.root])){p=c.extend(o,p)}n.$body.triggerHandler("loadSuccess",p)}catch(t){n._hideLoading();n._showLoadError();throw t}}).fail(function(i){n._hideLoading();n._showLoadError();n.$body.triggerHandler("loadError",i)})},_loadNative:function(d){this._populate(d);this._refreshSortStatus();this.$body.triggerHandler("loadSuccess",d)},load:function(d){try{var h="gzshangtao";var f=this.opts;this._hideMessage();this._loadCount=this._loadCount+1;if(c.isArray(d)){this._loadNative(d)}else{if(f.url){this._loadAjax(d)}else{if(f.items){this._loadNative(f.items)}else{this._loadNative([])}}}}catch(g){this._showLoadError();throw g}},resize:function(g){if(g&&g.width){this.opts.width=g.width}if(g&&g.height){this.opts.height=g.height}var h=this.opts;var d=this.$mmGrid;var i=this.$headWrapper;var k=this.$bodyWrapper;if(a.isIE6&&(!h.width||h.width==="auto")){d.width("100%");d.width(d.width()-(d.outerWidth(true)-d.width()))}else{d.width(h.width)}if(h.height!=="auto"){if(a.isIE6&&(!h.height||h.height==="auto")){d.height("100%");d.height(d.height()-(d.outerHeight(true)-d.height()))}else{d.height(h.height)}k.height(d.height()-i.outerHeight(true))}var f=d.find(".mmg-message");if(f.is(":visible")){f.css({"left":(d.width()-f.width())/2,"top":(d.height()+i.height()-f.height())/2})}var j=d.find(".mmg-mask");if(j.is(":visible")){j.width(d.width()).height(d.height());var e=d.find(".mmg-loading");e.css({"left":(d.width()-e.width())/2,"top":(d.height()-e.height())/2})}k.trigger("scroll");this._resizeHeight()},_resizeHeight:function(){var d=this.opts;var f=this.$bodyWrapper;var e=this.$body;if(d.height==="auto"&&a.isIE7){f.height("auto");if(f.width()<e.width()){f.height(f.height()+f.height()-f[0].clientHeight+1)}}},select:function(e){var h=this.opts;var i=this.$body;var d=this.$head;if(typeof e==="number"){var g=i.find("tr").eq(e);if(!h.multiSelect){i.find("tr.selected").removeClass("selected");if(h.checkCol){i.find("tr > td").find(".mmg-check").prop("checked","")}}if(!g.hasClass("selected")){g.addClass("selected");if(h.checkCol){g.find("td .mmg-check").prop("checked","checked")}}}else{if(typeof e==="function"){c.each(i.find("tr"),function(j){if(e(c.data(this,"item"),j)){var k=c(this);if(!k.hasClass("selected")){k.addClass("selected");if(h.checkCol){k.find("td .mmg-check").prop("checked","checked")}}}})}else{if(e===undefined||(typeof e==="string"&&e==="all")){i.find("tr.selected").removeClass("selected");i.find("tr").addClass("selected");i.find("tr > td").find(".mmg-check").prop("checked","checked")}else{return}}}if(h.checkCol){var f=i.find("tr > td").find(".mmg-check");if(f.length===f.filter(":checked").length){d.find("th .checkAll").prop("checked","checked")}}},deselect:function(e){var f=this.opts;var g=this.$body;var d=this.$head;if(typeof e==="number"){g.find("tr").eq(e).removeClass("selected");if(f.checkCol){g.find("tr").eq(e).find("td .mmg-check").prop("checked","")}}else{if(typeof e==="function"){c.each(g.find("tr"),function(h){if(e(c.data(this,"item"),h)){c(this).removeClass("selected");if(f.checkCol){c(this).find("td .mmg-check").prop("checked","")}}})}else{if(e===undefined||(typeof e==="string"&&e==="all")){g.find("tr.selected").removeClass("selected");if(f.checkCol){g.find("tr > td").find(".mmg-check").prop("checked","")}}else{return}}}d.find("th .checkAll").prop("checked","")},selectedRows:function(){var e=this.$body;var d=[];c.each(e.find("tr.selected"),function(f,g){d.push(c.data(this,"item"))});return d},selectedRowsIndex:function(){var f=this.$body;var d=this.$body.find("tr");var e=[];c.each(f.find("tr.selected"),function(g){e.push(d.index(this))});return e},rows:function(){var e=this.$body;var d=[];c.each(e.find("tr"),function(){d.push(c.data(this,"item"))});return d},row:function(d){var f=this.$body;if(d!==undefined&&d>=0){var e=f.find("tr").eq(d);if(e.length!==0){return c.data(e[0],"item")}}},rowsLength:function(){var e=this.$body;var d=e.find("tr").length;if(d===1&&e.find("tr.emptyRow").length===1){return 0}return d},addRow:function(h,e){var d=this.$body.find("tbody");if(c.isArray(h)){for(var f=h.length-1;f>=0;f--){this.addRow(h[f],e)}return}if(!c.isPlainObject(h)){return}this._hideMessage();this._removeEmptyRow();var g;if(e===undefined||e<0){g=c(this._rowHtml(h,this.rowsLength()));
d.append(g)}else{g=c(this._rowHtml(h,e));if(e===0){d.prepend(g)}else{var j=d.find("tr").eq(e-1);if(j.length===0){d.append(g)}else{j.after(c(g))}}}g.data("item",h);this._setStyle();this.$body.triggerHandler("rowInserted",[h,e])},updateRow:function(i,e){var h=this.opts;var d=this.$body.find("tbody");if(!c.isPlainObject(i)){return}var j=this.row(e);var g=d.find("tr").eq(e);var f=g.find("td:first :checkbox").is(":checked");g.html(this._rowHtml(i,e).slice(4,-5));if(h.checkCol){g.find("td:first :checkbox").prop("checked",f)}g.data("item",i);this._setStyle();this.$body.triggerHandler("rowUpdated",[j,i,e])},removeRow:function(f){var j=this;var d=j.$body.find("tbody");if(c.isArray(f)){for(var g=f.length-1;g>=0;g--){j.removeRow(f[g])}return}if(f===undefined){var e=d.find("tr");for(var g=e.length-1;g>=0;g--){j.removeRow(g)}}else{var h=j.row(f);d.find("tr").eq(f).remove();this.$body.triggerHandler("rowRemoved",[h,f])}this._setStyle();if(this.rowsLength()===0){this._showNoData();this._insertEmptyRow()}}};c.fn.mmGrid=function(){if(arguments.length===0||typeof arguments[0]==="object"){var g=arguments[0],h=this.data("mmGrid"),e=c.extend(true,{},c.fn.mmGrid.defaults,g);if(!h){h=new b(this,e);this.data("mmGrid",h)}return c.extend(true,this,h)}if(typeof arguments[0]==="string"){var h=this.data("mmGrid");var f=h[arguments[0]];if(f){var d=Array.prototype.slice.call(arguments);return f.apply(h,d.slice(1))}}};c.fn.mmGrid.defaults={width:"auto",height:"280px",cols:[],url:false,params:{},method:"POST",cache:false,root:"items",items:[],autoLoad:true,remoteSort:false,sortName:"",sortStatus:"asc",loadingText:"正在载入...",noDataText:"没有数据",loadErrorText:"数据加载出现异常",multiSelect:false,checkCol:false,indexCol:false,indexColWidth:40,fullWidthRows:false,nowrap:false,showBackboard:true,backboardMinHeight:125,plugins:[]};c.fn.mmGrid.Constructor=b;c.fn.sortElements=(function(){var d=[].sort;return function(f,g){g=g||function(){return this};var e=this.map(function(){var i=g.call(this),h=i.parentNode,j=h.insertBefore(document.createTextNode(""),i.nextSibling);return function(){if(h===this){throw new Error("You can't sort elements if any one is a descendant of another.")}h.insertBefore(this,j);h.removeChild(j)}});return d.call(this,f).each(function(h){e[h].call(g.call(this))})}})()}(window.jQuery);!function(a){var b=function(d,c){this.$el=a(d);this.opts=c};b.prototype={_initLayout:function(){var e=this;var c=this.$el;var d=this.opts;c.addClass("mmPaginator");var g=['<div class="totalCountLabel"></div>','<ul class="pageList"></ul>','<div class="limit"><select></select></div>'];c.append(a(g.join("")));this.$totalCountLabel=c.find(".totalCountLabel");this.$pageList=c.find(".pageList");this.$limitList=c.find(".limit select");var f=this.$limitList;a.each(d.limitList,function(){var h=a("<option></option>").prop("value",this).text(e.formatString(d.limitLabel,[this]));f.append(h)});f.on("change",function(){c.data("page",1);e.$mmGrid.load()})},_plain:function(k,m,e){var h=this;var o=this.$el;var n=this.$pageList;var g=m%e===0?parseInt(m/e):parseInt(m/e)+1;g=g?g:0;if(g===0){k=1}else{if(k>g){k=g}else{if(k<1&&g!=0){k=1}}}var c=a('<li class="prev"><a>«</a></li>');if(k<=1){c.addClass("disable")}else{c.find("a").on("click",function(){o.data("page",k-1);h.$mmGrid.load()})}n.append(c);var j=[1];if(k>4){j.push("...")}for(var f=0;f<5;f++){var l=k-2+f;if(l>1&&l<=g-1){j.push(l)}}if(k+1<g-1){j.push("...")}if(g>1){j.push(g)}a.each(j,function(i,p){var q=a("<li><a></a></li>");if(p==="..."){q.addClass("").html("...")}else{if(p===k){q.addClass("active").find("a").text(p)}else{q.find("a").text(p).prop("title","第"+p+"页").on("click",function(r){o.data("page",p);h.$mmGrid.load()})}}n.append(q)});var d=a('<li class="next"><a title="下一页">»</a></li>');if(k>=g){d.addClass("disable")}else{d.find("a").on("click",function(){o.data("page",k+1);h.$mmGrid.load()})}n.append(d)},_search:function(e,d,c){},load:function(i){var e=this.$el;var h=this.$limitList;var f=this.opts;if(!i){i={}}var g=i[f.pageParamName];if(g===undefined||g===null){g=e.data("page")}e.data("page",g);var d=i[f.totalCountName];if(d===undefined){d=0}e.data("totalCount",d);var c=i[f.limitParamName];if(!c){c=h.val()}this.$limitList.val(c);this.$totalCountLabel.html(this.formatString(f.totalCountLabel,[d]));this.$pageList.empty();this._plain(g,d,this.$limitList.val())},formatString:function(d,c){return d.replace(/{(\d+)}/g,function(e,f){return typeof c[f]!="undefined"?c[f]:e})},params:function(){var d=this.opts;var c=this.$el;var e=this.$limitList;var f={};f[d.pageParamName]=c.data("page");f[d.limitParamName]=e.val();return f},init:function(c){var f=this;var e=f.opts;this.$mmGrid=c;this._initLayout();this.$mmGrid.on("loadSuccess",function(i,h){f.load(h)});var g={};g[e.totalCountName]=0;g[e.pageParamName]=e.page;g[e.limitParamName]=e.limit;this.load(g);if(c.opts.indexCol){var d=c.opts.cols[0];d.renderer=function(j,h,k){var i=f.params();return'<label class="mmg-index">'+(k+1+((i[e.pageParamName]-1)*i[e.limitParamName]))+"</label>"
}}}};a.fn.mmPaginator=function(){if(arguments.length===0||typeof arguments[0]==="object"){var f=arguments[0],g=this.data("mmPaginator"),d=a.extend(true,{},a.fn.mmPaginator.defaults,f);if(!g){g=new b(this[0],d);this.data("mmPaginator",g)}return a.extend(true,this,g)}if(typeof arguments[0]==="string"){var g=this.data("mmPaginator");var e=g[arguments[0]];if(e){var c=Array.prototype.slice.call(arguments);return e.apply(g,c.slice(1))}}};a.fn.mmPaginator.defaults={style:"plain",totalCountName:"totalCount",page:1,pageParamName:"page",limitParamName:"limit",limitLabel:"每页{0}条",totalCountLabel:"共<span>{0}</span>条记录",limit:undefined,limitList:[20,30,40,50]};a.fn.mmPaginator.Constructor=b}(window.jQuery);