/** * 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($){ function _1(_2){ var _3=$.data(_2,"combogrid"); var _4=_3.options; var _5=_3.grid; $(_2).addClass("combogrid-f").combo($.extend({},_4,{onShowPanel:function(){ _22(this,$(this).combogrid("getValues"),true); var p=$(this).combogrid("panel"); var _6=p.outerHeight()-p.height(); var _7=p._size("minHeight"); var _8=p._size("maxHeight"); var dg=$(this).combogrid("grid"); dg.datagrid("resize",{width:"100%",height:(isNaN(parseInt(_4.panelHeight))?"auto":"100%"),minHeight:(_7?_7-_6:""),maxHeight:(_8?_8-_6:"")}); var _9=dg.datagrid("getSelected"); if(_9){ dg.datagrid("scrollTo",dg.datagrid("getRowIndex",_9)); } _4.onShowPanel.call(this); }})); var _a=$(_2).combo("panel"); if(!_5){ _5=$("
").appendTo(_a); _3.grid=_5; } _5.datagrid($.extend({},_4,{border:false,singleSelect:(!_4.multiple),onLoadSuccess:_b,onClickRow:_c,onSelect:_d("onSelect"),onUnselect:_d("onUnselect"),onSelectAll:_d("onSelectAll"),onUnselectAll:_d("onUnselectAll")})); function _e(dg){ return $(dg).closest(".combo-panel").panel("options").comboTarget||_2; }; function _b(_f){ var _10=_e(this); var _11=$(_10).data("combogrid"); var _12=_11.options; var _13=$(_10).combo("getValues"); _22(_10,_13,_11.remainText); _12.onLoadSuccess.call(this,_f); }; function _c(_14,row){ var _15=_e(this); var _16=$(_15).data("combogrid"); var _17=_16.options; _16.remainText=false; _18.call(this); if(!_17.multiple){ $(_15).combo("hidePanel"); } _17.onClickRow.call(this,_14,row); }; function _d(_19){ return function(_1a,row){ var _1b=_e(this); var _1c=$(_1b).combogrid("options"); if(_19=="onUnselectAll"){ if(_1c.multiple){ _18.call(this); } }else{ _18.call(this); } _1c[_19].call(this,_1a,row); }; }; function _18(){ var dg=$(this); var _1d=_e(dg); var _1e=$(_1d).data("combogrid"); var _1f=_1e.options; var vv=$.map(dg.datagrid("getSelections"),function(row){ return row[_1f.idField]; }); vv=vv.concat(_1f.unselectedValues); var _20=dg.data("datagrid").dc.body2; var _21=_20.scrollTop(); _22(_1d,vv,_1e.remainText); _20.scrollTop(_21); }; }; function nav(_23,dir){ var _24=$.data(_23,"combogrid"); var _25=_24.options; var _26=_24.grid; var _27=_26.datagrid("getRows").length; if(!_27){ return; } var tr=_25.finder.getTr(_26[0],null,"highlight"); if(!tr.length){ tr=_25.finder.getTr(_26[0],null,"selected"); } var _28; if(!tr.length){ _28=(dir=="next"?0:_27-1); }else{ var _28=parseInt(tr.attr("datagrid-row-index")); _28+=(dir=="next"?1:-1); if(_28<0){ _28=_27-1; } if(_28>=_27){ _28=0; } } _26.datagrid("highlightRow",_28); if(_25.selectOnNavigation){ _24.remainText=false; _26.datagrid("selectRow",_28); } }; function _22(_29,_2a,_2b){ var _2c=$.data(_29,"combogrid"); var _2d=_2c.options; var _2e=_2c.grid; var _2f=$(_29).combo("getValues"); var _30=$(_29).combo("options"); var _31=_30.onChange; _30.onChange=function(){ }; var _32=_2e.datagrid("options"); var _33=_32.onSelect; var _34=_32.onUnselectAll; _32.onSelect=_32.onUnselectAll=function(){ }; if(!$.isArray(_2a)){ _2a=_2a.split(_2d.separator); } if(!_2d.multiple){ _2a=_2a.length?[_2a[0]]:[""]; } var vv=$.map(_2a,function(_35){ return String(_35); }); vv=$.grep(vv,function(v,_36){ return _36===$.inArray(v,vv); }); var _37=$.grep(_2e.datagrid("getSelections"),function(row,_38){ return $.inArray(String(row[_2d.idField]),vv)>=0; }); _2e.datagrid("clearSelections"); _2e.data("datagrid").selectedRows=_37; var ss=[]; _2d.unselectedValues=[]; $.map(vv,function(v){ var _39=_2e.datagrid("getRowIndex",v); if(_39>=0){ _2e.datagrid("selectRow",_39); }else{ if($.easyui.indexOfArray(_37,_2d.idField,v)==-1){ _2d.unselectedValues.push(v); } } ss.push(_3a(v,_2e.datagrid("getRows"))||_3a(v,_37)||_3a(v,_2d.mappingRows)||v); }); $(_29).combo("setValues",_2f); _30.onChange=_31; _32.onSelect=_33; _32.onUnselectAll=_34; if(!_2b){ var s=ss.join(_2d.separator); if($(_29).combo("getText")!=s){ $(_29).combo("setText",s); } } $(_29).combo("setValues",_2a); function _3a(_3b,a){ var _3c=$.easyui.getArrayItem(a,_2d.idField,_3b); return _3c?_3c[_2d.textField]:undefined; }; }; function _3d(_3e,q){ var _3f=$.data(_3e,"combogrid"); var _40=_3f.options; var _41=_3f.grid; _3f.remainText=true; var qq=_40.multiple?q.split(_40.separator):[q]; qq=$.grep(qq,function(q){ return $.trim(q)!=""; }); if(_40.mode=="remote"){ _42(qq); _41.datagrid("load",$.extend({},_40.queryParams,{q:q})); }else{ _41.datagrid("highlightRow",-1); var _43=_41.datagrid("getRows"); var vv=[]; $.map(qq,function(q){ q=$.trim(q); var _44=q; _45(_40.mappingRows,q); _45(_41.datagrid("getSelections"),q); var _46=_45(_43,q); if(_46>=0){ if(_40.reversed){ _41.datagrid("highlightRow",_46); } }else{ $.map(_43,function(row,i){ if(_40.filter.call(_3e,q,row)){ _41.datagrid("highlightRow",i); } }); } }); _42(vv); } function _45(_47,q){ for(var i=0;i<_47.length;i++){ var row=_47[i]; if((row[_40.textField]||"").toLowerCase()==q.toLowerCase()){ vv.push(row[_40.idField]); return i; } } return -1; }; function _42(vv){ if(!_40.reversed){ _22(_3e,vv,true); } }; }; function _48(_49){ var _4a=$.data(_49,"combogrid"); var _4b=_4a.options; var _4c=_4a.grid; var tr=_4b.finder.getTr(_4c[0],null,"highlight"); _4a.remainText=false; if(tr.length){ var _4d=parseInt(tr.attr("datagrid-row-index")); if(_4b.multiple){ if(tr.hasClass("datagrid-row-selected")){ _4c.datagrid("unselectRow",_4d); }else{ _4c.datagrid("selectRow",_4d); } }else{ _4c.datagrid("selectRow",_4d); } } var vv=[]; $.map(_4c.datagrid("getSelections"),function(row){ vv.push(row[_4b.idField]); }); $.map(_4b.unselectedValues,function(v){ if($.easyui.indexOfArray(_4b.mappingRows,_4b.idField,v)>=0){ $.easyui.addArrayItem(vv,v); } }); $(_49).combogrid("setValues",vv); if(!_4b.multiple){ $(_49).combogrid("hidePanel"); } }; $.fn.combogrid=function(_4e,_4f){ if(typeof _4e=="string"){ var _50=$.fn.combogrid.methods[_4e]; if(_50){ return _50(this,_4f); }else{ return this.combo(_4e,_4f); } } _4e=_4e||{}; return this.each(function(){ var _51=$.data(this,"combogrid"); if(_51){ $.extend(_51.options,_4e); }else{ _51=$.data(this,"combogrid",{options:$.extend({},$.fn.combogrid.defaults,$.fn.combogrid.parseOptions(this),_4e)}); } _1(this); }); }; $.fn.combogrid.methods={options:function(jq){ var _52=jq.combo("options"); return $.extend($.data(jq[0],"combogrid").options,{width:_52.width,height:_52.height,originalValue:_52.originalValue,disabled:_52.disabled,readonly:_52.readonly}); },cloneFrom:function(jq,_53){ return jq.each(function(){ $(this).combo("cloneFrom",_53); $.data(this,"combogrid",{options:$.extend(true,{cloned:true},$(_53).combogrid("options")),combo:$(this).next(),panel:$(_53).combo("panel"),grid:$(_53).combogrid("grid")}); }); },grid:function(jq){ return $.data(jq[0],"combogrid").grid; },setValues:function(jq,_54){ return jq.each(function(){ var _55=$(this).combogrid("options"); if($.isArray(_54)){ _54=$.map(_54,function(_56){ if(_56&&typeof _56=="object"){ $.easyui.addArrayItem(_55.mappingRows,_55.idField,_56); return _56[_55.idField]; }else{ return _56; } }); } _22(this,_54); }); },setValue:function(jq,_57){ return jq.each(function(){ $(this).combogrid("setValues",$.isArray(_57)?_57:[_57]); }); },clear:function(jq){ return jq.each(function(){ $(this).combogrid("setValues",[]); }); },reset:function(jq){ return jq.each(function(){ var _58=$(this).combogrid("options"); if(_58.multiple){ $(this).combogrid("setValues",_58.originalValue); }else{ $(this).combogrid("setValue",_58.originalValue); } }); }}; $.fn.combogrid.parseOptions=function(_59){ var t=$(_59); return $.extend({},$.fn.combo.parseOptions(_59),$.fn.datagrid.parseOptions(_59),$.parser.parseOptions(_59,["idField","textField","mode"])); }; $.fn.combogrid.defaults=$.extend({},$.fn.combo.defaults,$.fn.datagrid.defaults,{loadMsg:null,idField:null,textField:null,unselectedValues:[],mappingRows:[],mode:"local",keyHandler:{up:function(e){ nav(this,"prev"); e.preventDefault(); },down:function(e){ nav(this,"next"); e.preventDefault(); },left:function(e){ },right:function(e){ },enter:function(e){ _48(this); },query:function(q,e){ _3d(this,q); }},inputEvents:$.extend({},$.fn.combo.defaults.inputEvents,{blur:function(e){ $.fn.combo.defaults.inputEvents.blur(e); var _5a=e.data.target; var _5b=$(_5a).combogrid("options"); if(_5b.reversed){ $(_5a).combogrid("setValues",$(_5a).combogrid("getValues")); } }}),panelEvents:{mousedown:function(e){ }},filter:function(q,row){ var _5c=$(this).combogrid("options"); return (row[_5c.textField]||"").toLowerCase().indexOf(q.toLowerCase())>=0; }}); })(jQuery);