/** * EasyUI for jQuery 1.9.14 * * Copyright (c) 2009-2021 www.jeasyui.com. All rights reserved. * * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php * To use it on other terms please contact us: info@jeasyui.com * */ (function($){ var _1; $(document)._unbind(".propertygrid")._bind("mousedown.propertygrid",function(e){ var p=$(e.target).closest("div.datagrid-view,div.combo-panel"); if(p.length){ return; } _2(_1); _1=undefined; }); function _3(_4){ var _5=$.data(_4,"propertygrid"); var _6=$.data(_4,"propertygrid").options; $(_4).datagrid($.extend({},_6,{cls:"propertygrid",view:(_6.showGroup?_6.groupView:_6.view),onBeforeEdit:function(_7,_8){ if(_6.onBeforeEdit.call(_4,_7,_8)==false){ return false; } var dg=$(this); var _8=dg.datagrid("getRows")[_7]; var _9=dg.datagrid("getColumnOption","value"); _9.editor=_8.editor; },onClickCell:function(_a,_b,_c){ if(_1!=this){ _2(_1); _1=this; } if(_6.editIndex!=_a){ _2(_1); $(this).datagrid("beginEdit",_a); var ed=$(this).datagrid("getEditor",{index:_a,field:_b}); if(!ed){ ed=$(this).datagrid("getEditor",{index:_a,field:"value"}); } if(ed){ var t=$(ed.target); var _d=t.data("textbox")?t.textbox("textbox"):t; _d.focus(); _6.editIndex=_a; } } _6.onClickCell.call(_4,_a,_b,_c); },loadFilter:function(_e){ _2(this); return _6.loadFilter.call(this,_e); }})); }; function _2(_f){ var t=$(_f); if(!t.length){ return; } var _10=$.data(_f,"propertygrid").options; _10.finder.getTr(_f,null,"editing").each(function(){ var _11=parseInt($(this).attr("datagrid-row-index")); if(t.datagrid("validateRow",_11)){ t.datagrid("endEdit",_11); }else{ t.datagrid("cancelEdit",_11); } }); _10.editIndex=undefined; }; $.fn.propertygrid=function(_12,_13){ if(typeof _12=="string"){ var _14=$.fn.propertygrid.methods[_12]; if(_14){ return _14(this,_13); }else{ return this.datagrid(_12,_13); } } _12=_12||{}; return this.each(function(){ var _15=$.data(this,"propertygrid"); if(_15){ $.extend(_15.options,_12); }else{ var _16=$.extend({},$.fn.propertygrid.defaults,$.fn.propertygrid.parseOptions(this),_12); _16.frozenColumns=$.extend(true,[],_16.frozenColumns); _16.columns=$.extend(true,[],_16.columns); $.data(this,"propertygrid",{options:_16}); } _3(this); }); }; $.fn.propertygrid.methods={options:function(jq){ return $.data(jq[0],"propertygrid").options; }}; $.fn.propertygrid.parseOptions=function(_17){ return $.extend({},$.fn.datagrid.parseOptions(_17),$.parser.parseOptions(_17,[{showGroup:"boolean"}])); }; var _18=$.extend({},$.fn.datagrid.defaults.view,{render:function(_19,_1a,_1b){ var _1c=[]; var _1d=this.groups; for(var i=0;i<_1d.length;i++){ _1c.push(this.renderGroup.call(this,_19,i,_1d[i],_1b)); } $(_1a).html(_1c.join("")); },renderGroup:function(_1e,_1f,_20,_21){ var _22=$.data(_1e,"datagrid"); var _23=_22.options; var _24=$(_1e).datagrid("getColumnFields",_21); var _25=_23.frozenColumns&&_23.frozenColumns.length; if(_21){ if(!(_23.rownumbers||_25)){ return ""; } } var _26=[]; var css=_23.groupStyler.call(_1e,_20.value,_20.rows); var cs=_27(css,"datagrid-group"); _26.push("
"); if((_21&&(_23.rownumbers||_23.frozenColumns.length))||(!_21&&!(_23.rownumbers||_23.frozenColumns.length))){ _26.push(""); _26.push(" "); _26.push(""); } if((_21&&_25)||(!_21)){ _26.push(""); _26.push(_23.groupFormatter.call(_1e,_20.value,_20.rows)); _26.push(""); } _26.push("
"); _26.push(""); var _28=_20.startIndex; for(var j=0;j<_20.rows.length;j++){ var css=_23.rowStyler?_23.rowStyler.call(_1e,_28,_20.rows[j]):""; var _29=""; var _2a=""; if(typeof css=="string"){ _2a=css; }else{ if(css){ _29=css["class"]||""; _2a=css["style"]||""; } } var cls="class=\"datagrid-row "+(_28%2&&_23.striped?"datagrid-row-alt ":" ")+_29+"\""; var _2b=_2a?"style=\""+_2a+"\"":""; var _2c=_22.rowIdPrefix+"-"+(_21?1:2)+"-"+_28; _26.push(""); _26.push(this.renderRow.call(this,_1e,_24,_21,_28,_20.rows[j])); _26.push(""); _28++; } _26.push("
"); return _26.join(""); function _27(css,cls){ var _2d=""; var _2e=""; if(typeof css=="string"){ _2e=css; }else{ if(css){ _2d=css["class"]||""; _2e=css["style"]||""; } } return "class=\""+cls+(_2d?" "+_2d:"")+"\" "+"style=\""+_2e+"\""; }; },bindEvents:function(_2f){ var _30=$.data(_2f,"datagrid"); var dc=_30.dc; var _31=dc.body1.add(dc.body2); var _32=($.data(_31[0],"events")||$._data(_31[0],"events")).click[0].handler; _31._unbind("click")._bind("click",function(e){ var tt=$(e.target); var _33=tt.closest("span.datagrid-row-expander"); if(_33.length){ var _34=_33.closest("div.datagrid-group").attr("group-index"); if(_33.hasClass("datagrid-row-collapse")){ $(_2f).datagrid("collapseGroup",_34); }else{ $(_2f).datagrid("expandGroup",_34); } }else{ _32(e); } e.stopPropagation(); }); },onBeforeRender:function(_35,_36){ var _37=$.data(_35,"datagrid"); var _38=_37.options; _39(); var _3a=[]; for(var i=0;i<_36.length;i++){ var row=_36[i]; var _3b=_3c(row[_38.groupField]); if(!_3b){ _3b={value:row[_38.groupField],rows:[row]}; _3a.push(_3b); }else{ _3b.rows.push(row); } } var _3d=0; var _3e=[]; for(var i=0;i<_3a.length;i++){ var _3b=_3a[i]; _3b.startIndex=_3d; _3d+=_3b.rows.length; _3e=_3e.concat(_3b.rows); } _37.data.rows=_3e; this.groups=_3a; var _3f=this; setTimeout(function(){ _3f.bindEvents(_35); },0); function _3c(_40){ for(var i=0;i<_3a.length;i++){ var _41=_3a[i]; if(_41.value==_40){ return _41; } } return null; }; function _39(){ if(!$("#datagrid-group-style").length){ $("head").append(""); } }; },onAfterRender:function(_42){ $.fn.datagrid.defaults.view.onAfterRender.call(this,_42); var _43=this; var _44=$.data(_42,"datagrid"); var _45=_44.options; if(!_44.onResizeColumn){ _44.onResizeColumn=_45.onResizeColumn; } if(!_44.onResize){ _44.onResize=_45.onResize; } _45.onResizeColumn=function(_46,_47){ _43.resizeGroup(_42); _44.onResizeColumn.call(_42,_46,_47); }; _45.onResize=function(_48,_49){ _43.resizeGroup(_42); _44.onResize.call($(_42).datagrid("getPanel")[0],_48,_49); }; _43.resizeGroup(_42); }}); $.extend($.fn.datagrid.methods,{groups:function(jq){ return jq.datagrid("options").view.groups; },expandGroup:function(jq,_4a){ return jq.each(function(){ var _4b=$(this).datagrid("options"); var _4c=$.data(this,"datagrid").dc.view; var _4d=_4c.find(_4a!=undefined?"div.datagrid-group[group-index=\""+_4a+"\"]":"div.datagrid-group"); var _4e=_4d.find("span.datagrid-row-expander"); if(_4e.hasClass("datagrid-row-expand")){ _4e.removeClass("datagrid-row-expand").addClass("datagrid-row-collapse"); _4d.next("table").show(); } $(this).datagrid("fixRowHeight"); if(_4b.onExpandGroup){ _4b.onExpandGroup.call(this,_4a); } }); },collapseGroup:function(jq,_4f){ return jq.each(function(){ var _50=$(this).datagrid("options"); var _51=$.data(this,"datagrid").dc.view; var _52=_51.find(_4f!=undefined?"div.datagrid-group[group-index=\""+_4f+"\"]":"div.datagrid-group"); var _53=_52.find("span.datagrid-row-expander"); if(_53.hasClass("datagrid-row-collapse")){ _53.removeClass("datagrid-row-collapse").addClass("datagrid-row-expand"); _52.next("table").hide(); } $(this).datagrid("fixRowHeight"); if(_50.onCollapseGroup){ _50.onCollapseGroup.call(this,_4f); } }); },scrollToGroup:function(jq,_54){ return jq.each(function(){ var _55=$.data(this,"datagrid"); var dc=_55.dc; var _56=dc.body2.children("div.datagrid-group[group-index=\""+_54+"\"]"); if(_56.length){ var _57=_56.outerHeight(); var _58=dc.view2.children("div.datagrid-header")._outerHeight(); var _59=dc.body2.outerHeight(true)-dc.body2.outerHeight(); var top=_56.position().top-_58-_59; if(top<0){ dc.body2.scrollTop(dc.body2.scrollTop()+top); }else{ if(top+_57>dc.body2.height()-18){ dc.body2.scrollTop(dc.body2.scrollTop()+top+_57-dc.body2.height()+18); } } } }); }}); $.extend(_18,{refreshGroupTitle:function(_5a,_5b){ var _5c=$.data(_5a,"datagrid"); var _5d=_5c.options; var dc=_5c.dc; var _5e=this.groups[_5b]; var _5f=dc.body1.add(dc.body2).children("div.datagrid-group[group-index="+_5b+"]").find("span.datagrid-group-title"); _5f.html(_5d.groupFormatter.call(_5a,_5e.value,_5e.rows)); },resizeGroup:function(_60,_61){ var _62=$.data(_60,"datagrid"); var dc=_62.dc; var ht=dc.header2.find("table"); var fr=ht.find("tr.datagrid-filter-row").hide(); var ww=dc.body2.children("table.datagrid-btable:first").width(); if(_61==undefined){ var _63=dc.body2.children("div.datagrid-group"); }else{ var _63=dc.body2.children("div.datagrid-group[group-index="+_61+"]"); } _63._outerWidth(ww); var _64=_62.options; if(_64.frozenColumns&&_64.frozenColumns.length){ var _65=dc.view1.width()-_64.expanderWidth; var _66=dc.view1.css("direction").toLowerCase()=="rtl"; _63.find(".datagrid-group-title").css(_66?"right":"left",-_65+"px"); } if(fr.length){ if(_64.showFilterBar){ fr.show(); } } },insertRow:function(_67,_68,row){ var _69=$.data(_67,"datagrid"); var _6a=_69.options; var dc=_69.dc; var _6b=null; var _6c; if(!_69.data.rows.length){ $(_67).datagrid("loadData",[row]); return; } for(var i=0;i_6b.startIndex+_6b.rows.length){ _68=_6b.startIndex+_6b.rows.length; } } $.fn.datagrid.defaults.view.insertRow.call(this,_67,_68,row); if(_68>=_6b.startIndex+_6b.rows.length){ _6d(_68,true); _6d(_68,false); } _6b.rows.splice(_68-_6b.startIndex,0,row); }else{ _6b={value:row[_6a.groupField],rows:[row],startIndex:_69.data.rows.length}; _6c=this.groups.length; dc.body1.append(this.renderGroup.call(this,_67,_6c,_6b,true)); dc.body2.append(this.renderGroup.call(this,_67,_6c,_6b,false)); this.groups.push(_6b); _69.data.rows.push(row); } this.setGroupIndex(_67); this.refreshGroupTitle(_67,_6c); this.resizeGroup(_67); function _6d(_6e,_6f){ var _70=_6f?1:2; var _71=_6a.finder.getTr(_67,_6e-1,"body",_70); var tr=_6a.finder.getTr(_67,_6e,"body",_70); tr.insertAfter(_71); }; },updateRow:function(_72,_73,row){ var _74=$.data(_72,"datagrid").options; $.fn.datagrid.defaults.view.updateRow.call(this,_72,_73,row); var tb=_74.finder.getTr(_72,_73,"body",2).closest("table.datagrid-btable"); var _75=parseInt(tb.prev().attr("group-index")); this.refreshGroupTitle(_72,_75); },deleteRow:function(_76,_77){ var _78=$.data(_76,"datagrid"); var _79=_78.options; var dc=_78.dc; var _7a=dc.body1.add(dc.body2); var tb=_79.finder.getTr(_76,_77,"body",2).closest("table.datagrid-btable"); var _7b=parseInt(tb.prev().attr("group-index")); $.fn.datagrid.defaults.view.deleteRow.call(this,_76,_77); var _7c=this.groups[_7b]; if(_7c.rows.length>1){ _7c.rows.splice(_77-_7c.startIndex,1); this.refreshGroupTitle(_76,_7b); }else{ _7a.children("div.datagrid-group[group-index="+_7b+"]").remove(); for(var i=_7b+1;i