123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346 |
- /**
- * jQuery EasyUI 1.5.2
- *
- * Copyright (c) 2009-2017 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(){
- _20(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=$("<table></table>").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");
- _20(_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);
- _20(_1d,vv,_1e.remainText);
- };
- };
- function nav(_21,dir){
- var _22=$.data(_21,"combogrid");
- var _23=_22.options;
- var _24=_22.grid;
- var _25=_24.datagrid("getRows").length;
- if(!_25){
- return;
- }
- var tr=_23.finder.getTr(_24[0],null,"highlight");
- if(!tr.length){
- tr=_23.finder.getTr(_24[0],null,"selected");
- }
- var _26;
- if(!tr.length){
- _26=(dir=="next"?0:_25-1);
- }else{
- var _26=parseInt(tr.attr("datagrid-row-index"));
- _26+=(dir=="next"?1:-1);
- if(_26<0){
- _26=_25-1;
- }
- if(_26>=_25){
- _26=0;
- }
- }
- _24.datagrid("highlightRow",_26);
- if(_23.selectOnNavigation){
- _22.remainText=false;
- _24.datagrid("selectRow",_26);
- }
- };
- function _20(_27,_28,_29){
- var _2a=$.data(_27,"combogrid");
- var _2b=_2a.options;
- var _2c=_2a.grid;
- var _2d=$(_27).combo("getValues");
- var _2e=$(_27).combo("options");
- var _2f=_2e.onChange;
- _2e.onChange=function(){
- };
- var _30=_2c.datagrid("options");
- var _31=_30.onSelect;
- var _32=_30.onUnselectAll;
- _30.onSelect=_30.onUnselectAll=function(){
- };
- if(!$.isArray(_28)){
- _28=_28.split(_2b.separator);
- }
- if(!_2b.multiple){
- _28=_28.length?[_28[0]]:[""];
- }
- var vv=$.map(_28,function(_33){
- return String(_33);
- });
- vv=$.grep(vv,function(v,_34){
- return _34===$.inArray(v,vv);
- });
- var _35=$.grep(_2c.datagrid("getSelections"),function(row,_36){
- return $.inArray(String(row[_2b.idField]),vv)>=0;
- });
- _2c.datagrid("clearSelections");
- _2c.data("datagrid").selectedRows=_35;
- var ss=[];
- _2b.unselectedValues=[];
- $.map(vv,function(v){
- var _37=_2c.datagrid("getRowIndex",v);
- if(_37>=0){
- _2c.datagrid("selectRow",_37);
- }else{
- _2b.unselectedValues.push(v);
- }
- ss.push(_38(v,_2c.datagrid("getRows"))||_38(v,_35)||_38(v,_2b.mappingRows)||v);
- });
- $(_27).combo("setValues",_2d);
- _2e.onChange=_2f;
- _30.onSelect=_31;
- _30.onUnselectAll=_32;
- if(!_29){
- var s=ss.join(_2b.separator);
- if($(_27).combo("getText")!=s){
- $(_27).combo("setText",s);
- }
- }
- $(_27).combo("setValues",_28);
- function _38(_39,a){
- var _3a=$.easyui.getArrayItem(a,_2b.idField,_39);
- return _3a?_3a[_2b.textField]:undefined;
- };
- };
- function _3b(_3c,q){
- var _3d=$.data(_3c,"combogrid");
- var _3e=_3d.options;
- var _3f=_3d.grid;
- _3d.remainText=true;
- var qq=_3e.multiple?q.split(_3e.separator):[q];
- qq=$.grep(qq,function(q){
- return $.trim(q)!="";
- });
- if(_3e.mode=="remote"){
- _40(qq);
- _3f.datagrid("load",$.extend({},_3e.queryParams,{q:q}));
- }else{
- _3f.datagrid("highlightRow",-1);
- var _41=_3f.datagrid("getRows");
- var vv=[];
- $.map(qq,function(q){
- q=$.trim(q);
- var _42=q;
- _43(_3e.mappingRows,q);
- _43(_3f.datagrid("getSelections"),q);
- var _44=_43(_41,q);
- if(_44>=0){
- if(_3e.reversed){
- _3f.datagrid("highlightRow",_44);
- }
- }else{
- $.map(_41,function(row,i){
- if(_3e.filter.call(_3c,q,row)){
- _3f.datagrid("highlightRow",i);
- }
- });
- }
- });
- _40(vv);
- }
- function _43(_45,q){
- for(var i=0;i<_45.length;i++){
- var row=_45[i];
- if((row[_3e.textField]||"").toLowerCase()==q.toLowerCase()){
- vv.push(row[_3e.idField]);
- return i;
- }
- }
- return -1;
- };
- function _40(vv){
- if(!_3e.reversed){
- _20(_3c,vv,true);
- }
- };
- };
- function _46(_47){
- var _48=$.data(_47,"combogrid");
- var _49=_48.options;
- var _4a=_48.grid;
- var tr=_49.finder.getTr(_4a[0],null,"highlight");
- _48.remainText=false;
- if(tr.length){
- var _4b=parseInt(tr.attr("datagrid-row-index"));
- if(_49.multiple){
- if(tr.hasClass("datagrid-row-selected")){
- _4a.datagrid("unselectRow",_4b);
- }else{
- _4a.datagrid("selectRow",_4b);
- }
- }else{
- _4a.datagrid("selectRow",_4b);
- }
- }
- var vv=[];
- $.map(_4a.datagrid("getSelections"),function(row){
- vv.push(row[_49.idField]);
- });
- $.map(_49.unselectedValues,function(v){
- if($.easyui.indexOfArray(_49.mappingRows,_49.idField,v)>=0){
- $.easyui.addArrayItem(vv,v);
- }
- });
- $(_47).combogrid("setValues",vv);
- if(!_49.multiple){
- $(_47).combogrid("hidePanel");
- }
- };
- $.fn.combogrid=function(_4c,_4d){
- if(typeof _4c=="string"){
- var _4e=$.fn.combogrid.methods[_4c];
- if(_4e){
- return _4e(this,_4d);
- }else{
- return this.combo(_4c,_4d);
- }
- }
- _4c=_4c||{};
- return this.each(function(){
- var _4f=$.data(this,"combogrid");
- if(_4f){
- $.extend(_4f.options,_4c);
- }else{
- _4f=$.data(this,"combogrid",{options:$.extend({},$.fn.combogrid.defaults,$.fn.combogrid.parseOptions(this),_4c)});
- }
- _1(this);
- });
- };
- $.fn.combogrid.methods={options:function(jq){
- var _50=jq.combo("options");
- return $.extend($.data(jq[0],"combogrid").options,{width:_50.width,height:_50.height,originalValue:_50.originalValue,disabled:_50.disabled,readonly:_50.readonly});
- },cloneFrom:function(jq,_51){
- return jq.each(function(){
- $(this).combo("cloneFrom",_51);
- $.data(this,"combogrid",{options:$.extend(true,{cloned:true},$(_51).combogrid("options")),combo:$(this).next(),panel:$(_51).combo("panel"),grid:$(_51).combogrid("grid")});
- });
- },grid:function(jq){
- return $.data(jq[0],"combogrid").grid;
- },setValues:function(jq,_52){
- return jq.each(function(){
- var _53=$(this).combogrid("options");
- if($.isArray(_52)){
- _52=$.map(_52,function(_54){
- if(_54&&typeof _54=="object"){
- $.easyui.addArrayItem(_53.mappingRows,_53.idField,_54);
- return _54[_53.idField];
- }else{
- return _54;
- }
- });
- }
- _20(this,_52);
- });
- },setValue:function(jq,_55){
- return jq.each(function(){
- $(this).combogrid("setValues",$.isArray(_55)?_55:[_55]);
- });
- },clear:function(jq){
- return jq.each(function(){
- $(this).combogrid("setValues",[]);
- });
- },reset:function(jq){
- return jq.each(function(){
- var _56=$(this).combogrid("options");
- if(_56.multiple){
- $(this).combogrid("setValues",_56.originalValue);
- }else{
- $(this).combogrid("setValue",_56.originalValue);
- }
- });
- }};
- $.fn.combogrid.parseOptions=function(_57){
- var t=$(_57);
- return $.extend({},$.fn.combo.parseOptions(_57),$.fn.datagrid.parseOptions(_57),$.parser.parseOptions(_57,["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){
- _46(this);
- },query:function(q,e){
- _3b(this,q);
- }},inputEvents:$.extend({},$.fn.combo.defaults.inputEvents,{blur:function(e){
- var _58=e.data.target;
- var _59=$(_58).combogrid("options");
- if(_59.reversed){
- $(_58).combogrid("setValues",$(_58).combogrid("getValues"));
- }
- }}),filter:function(q,row){
- var _5a=$(this).combogrid("options");
- return (row[_5a.textField]||"").toLowerCase().indexOf(q.toLowerCase())>=0;
- }});
- })(jQuery);
|