| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328 |
- /**
- * EasyUI for jQuery 1.9.4
- *
- * Copyright (c) 2009-2020 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,"combotreegrid");
- var _4=_3.options;
- $(_2).addClass("combotreegrid-f").combo($.extend({},_4,{onShowPanel:function(){
- var p=$(this).combotreegrid("panel");
- var _5=p.outerHeight()-p.height();
- var _6=p._size("minHeight");
- var _7=p._size("maxHeight");
- var dg=$(this).combotreegrid("grid");
- dg.treegrid("resize",{width:"100%",height:(isNaN(parseInt(_4.panelHeight))?"auto":"100%"),minHeight:(_6?_6-_5:""),maxHeight:(_7?_7-_5:"")});
- var _8=dg.treegrid("getSelected");
- if(_8){
- dg.treegrid("scrollTo",_8[_4.idField]);
- }
- _4.onShowPanel.call(this);
- }}));
- if(!_3.grid){
- var _9=$(_2).combo("panel");
- _3.grid=$("<table></table>").appendTo(_9);
- }
- _3.grid.treegrid($.extend({},_4,{border:false,checkbox:_4.multiple,onLoadSuccess:function(_a,_b){
- var _c=$(_2).combotreegrid("getValues");
- if(_4.multiple){
- $.map($(this).treegrid("getCheckedNodes"),function(_d){
- $.easyui.addArrayItem(_c,_d[_4.idField]);
- });
- }
- _16(_2,_c);
- _4.onLoadSuccess.call(this,_a,_b);
- _3.remainText=false;
- },onClickRow:function(_e){
- if(_4.multiple){
- $(this).treegrid(_e.checked?"uncheckNode":"checkNode",_e[_4.idField]);
- $(this).treegrid("unselect",_e[_4.idField]);
- }else{
- $(_2).combo("hidePanel");
- }
- _11(_2);
- _4.onClickRow.call(this,_e);
- },onCheckNode:function(_f,_10){
- _11(_2);
- _4.onCheckNode.call(this,_f,_10);
- }}));
- };
- function _11(_12){
- var _13=$.data(_12,"combotreegrid");
- var _14=_13.options;
- var _15=_13.grid;
- var vv=[];
- if(_14.multiple){
- vv=$.map(_15.treegrid("getCheckedNodes"),function(row){
- return row[_14.idField];
- });
- }else{
- var row=_15.treegrid("getSelected");
- if(row){
- vv.push(row[_14.idField]);
- }
- }
- vv=vv.concat(_14.unselectedValues);
- _16(_12,vv);
- };
- function _16(_17,_18){
- var _19=$.data(_17,"combotreegrid");
- var _1a=_19.options;
- var _1b=_19.grid;
- var _1c=_1b.datagrid("options");
- var _1d=_1c.onBeforeCheck;
- var _1e=_1c.onCheck;
- var _1f=_1c.onBeforeSelect;
- var _20=_1c.onSelect;
- _1c.onBeforeCheck=_1c.onCheck=_1c.onBeforeSelect=_1c.onSelect=function(){
- };
- if(!$.isArray(_18)){
- _18=_18.split(_1a.separator);
- }
- if(!_1a.multiple){
- _18=_18.length?[_18[0]]:[""];
- }
- var vv=$.map(_18,function(_21){
- return String(_21);
- });
- vv=$.grep(vv,function(v,_22){
- return _22===$.inArray(v,vv);
- });
- var _23=_1b.treegrid("getSelected");
- if(_23){
- _1b.treegrid("unselect",_23[_1a.idField]);
- }
- $.map(_1b.treegrid("getCheckedNodes"),function(row){
- if($.inArray(String(row[_1a.idField]),vv)==-1){
- _1b.treegrid("uncheckNode",row[_1a.idField]);
- }
- });
- var ss=[];
- _1a.unselectedValues=[];
- $.map(vv,function(v){
- var row=_1b.treegrid("find",v);
- if(row){
- if(_1a.multiple){
- _1b.treegrid("checkNode",v);
- }else{
- _1b.treegrid("select",v);
- }
- ss.push(_24(row));
- }else{
- ss.push(_25(v,_1a.mappingRows)||v);
- _1a.unselectedValues.push(v);
- }
- });
- if(_1a.multiple){
- $.map(_1b.treegrid("getCheckedNodes"),function(row){
- var id=String(row[_1a.idField]);
- if($.inArray(id,vv)==-1){
- vv.push(id);
- ss.push(_24(row));
- }
- });
- }
- _1c.onBeforeCheck=_1d;
- _1c.onCheck=_1e;
- _1c.onBeforeSelect=_1f;
- _1c.onSelect=_20;
- if(!_19.remainText){
- var s=ss.join(_1a.separator);
- if($(_17).combo("getText")!=s){
- $(_17).combo("setText",s);
- }
- }
- $(_17).combo("setValues",vv);
- function _25(_26,a){
- var _27=$.easyui.getArrayItem(a,_1a.idField,_26);
- return _27?_24(_27):undefined;
- };
- function _24(row){
- return row[_1a.textField||""]||row[_1a.treeField];
- };
- };
- function _28(_29,q){
- var _2a=$.data(_29,"combotreegrid");
- var _2b=_2a.options;
- var _2c=_2a.grid;
- _2a.remainText=true;
- var qq=_2b.multiple?q.split(_2b.separator):[q];
- qq=$.grep(qq,function(q){
- return $.trim(q)!="";
- });
- _2c.treegrid("clearSelections").treegrid("clearChecked").treegrid("highlightRow",-1);
- if(_2b.mode=="remote"){
- _2d(qq);
- _2c.treegrid("load",$.extend({},_2b.queryParams,{q:q}));
- }else{
- if(q){
- var _2e=_2c.treegrid("getData");
- var vv=[];
- $.map(qq,function(q){
- q=$.trim(q);
- if(q){
- var v=undefined;
- $.easyui.forEach(_2e,true,function(row){
- if(q.toLowerCase()==String(row[_2b.treeField]).toLowerCase()){
- v=row[_2b.idField];
- return false;
- }else{
- if(_2b.filter.call(_29,q,row)){
- _2c.treegrid("expandTo",row[_2b.idField]);
- _2c.treegrid("highlightRow",row[_2b.idField]);
- return false;
- }
- }
- });
- if(v==undefined){
- $.easyui.forEach(_2b.mappingRows,false,function(row){
- if(q.toLowerCase()==String(row[_2b.treeField])){
- v=row[_2b.idField];
- return false;
- }
- });
- }
- if(v!=undefined){
- vv.push(v);
- }else{
- vv.push(q);
- }
- }
- });
- _2d(vv);
- _2a.remainText=false;
- }
- }
- function _2d(vv){
- if(!_2b.reversed){
- $(_29).combotreegrid("setValues",vv);
- }
- };
- };
- function _2f(_30){
- var _31=$.data(_30,"combotreegrid");
- var _32=_31.options;
- var _33=_31.grid;
- var tr=_32.finder.getTr(_33[0],null,"highlight");
- _31.remainText=false;
- if(tr.length){
- var id=tr.attr("node-id");
- if(_32.multiple){
- if(tr.hasClass("datagrid-row-selected")){
- _33.treegrid("uncheckNode",id);
- }else{
- _33.treegrid("checkNode",id);
- }
- }else{
- _33.treegrid("selectRow",id);
- }
- }
- var vv=[];
- if(_32.multiple){
- $.map(_33.treegrid("getCheckedNodes"),function(row){
- vv.push(row[_32.idField]);
- });
- }else{
- var row=_33.treegrid("getSelected");
- if(row){
- vv.push(row[_32.idField]);
- }
- }
- $.map(_32.unselectedValues,function(v){
- if($.easyui.indexOfArray(_32.mappingRows,_32.idField,v)>=0){
- $.easyui.addArrayItem(vv,v);
- }
- });
- $(_30).combotreegrid("setValues",vv);
- if(!_32.multiple){
- $(_30).combotreegrid("hidePanel");
- }
- };
- $.fn.combotreegrid=function(_34,_35){
- if(typeof _34=="string"){
- var _36=$.fn.combotreegrid.methods[_34];
- if(_36){
- return _36(this,_35);
- }else{
- return this.combo(_34,_35);
- }
- }
- _34=_34||{};
- return this.each(function(){
- var _37=$.data(this,"combotreegrid");
- if(_37){
- $.extend(_37.options,_34);
- }else{
- _37=$.data(this,"combotreegrid",{options:$.extend({},$.fn.combotreegrid.defaults,$.fn.combotreegrid.parseOptions(this),_34)});
- }
- _1(this);
- });
- };
- $.fn.combotreegrid.methods={options:function(jq){
- var _38=jq.combo("options");
- return $.extend($.data(jq[0],"combotreegrid").options,{width:_38.width,height:_38.height,originalValue:_38.originalValue,disabled:_38.disabled,readonly:_38.readonly});
- },grid:function(jq){
- return $.data(jq[0],"combotreegrid").grid;
- },setValues:function(jq,_39){
- return jq.each(function(){
- var _3a=$(this).combotreegrid("options");
- if($.isArray(_39)){
- _39=$.map(_39,function(_3b){
- if(_3b&&typeof _3b=="object"){
- $.easyui.addArrayItem(_3a.mappingRows,_3a.idField,_3b);
- return _3b[_3a.idField];
- }else{
- return _3b;
- }
- });
- }
- _16(this,_39);
- });
- },setValue:function(jq,_3c){
- return jq.each(function(){
- $(this).combotreegrid("setValues",$.isArray(_3c)?_3c:[_3c]);
- });
- },clear:function(jq){
- return jq.each(function(){
- $(this).combotreegrid("setValues",[]);
- });
- },reset:function(jq){
- return jq.each(function(){
- var _3d=$(this).combotreegrid("options");
- if(_3d.multiple){
- $(this).combotreegrid("setValues",_3d.originalValue);
- }else{
- $(this).combotreegrid("setValue",_3d.originalValue);
- }
- });
- }};
- $.fn.combotreegrid.parseOptions=function(_3e){
- var t=$(_3e);
- return $.extend({},$.fn.combo.parseOptions(_3e),$.fn.treegrid.parseOptions(_3e),$.parser.parseOptions(_3e,["mode",{limitToGrid:"boolean"}]));
- };
- $.fn.combotreegrid.defaults=$.extend({},$.fn.combo.defaults,$.fn.treegrid.defaults,{editable:false,singleSelect:true,limitToGrid:false,unselectedValues:[],mappingRows:[],mode:"local",textField:null,keyHandler:{up:function(e){
- },down:function(e){
- },left:function(e){
- },right:function(e){
- },enter:function(e){
- _2f(this);
- },query:function(q,e){
- _28(this,q);
- }},inputEvents:$.extend({},$.fn.combo.defaults.inputEvents,{blur:function(e){
- $.fn.combo.defaults.inputEvents.blur(e);
- var _3f=e.data.target;
- var _40=$(_3f).combotreegrid("options");
- if(_40.limitToGrid){
- _2f(_3f);
- }
- }}),filter:function(q,row){
- var _41=$(this).combotreegrid("options");
- return (row[_41.treeField]||"").toLowerCase().indexOf(q.toLowerCase())>=0;
- }});
- })(jQuery);
|