jquery.combotree.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. /**
  2. * jQuery EasyUI 1.4.1
  3. *
  4. * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved.
  5. *
  6. * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt
  7. * To use it on other terms please contact us at info@jeasyui.com
  8. *
  9. */
  10. (function($){
  11. function _1(_2){
  12. var _3=$.data(_2,"combotree");
  13. var _4=_3.options;
  14. var _5=_3.tree;
  15. $(_2).addClass("combotree-f");
  16. $(_2).combo(_4);
  17. var _6=$(_2).combo("panel");
  18. if(!_5){
  19. _5=$("<ul></ul>").appendTo(_6);
  20. $.data(_2,"combotree").tree=_5;
  21. }
  22. _5.tree($.extend({},_4,{checkbox:_4.multiple,onLoadSuccess:function(_7,_8){
  23. var _9=$(_2).combotree("getValues");
  24. if(_4.multiple){
  25. var _a=_5.tree("getChecked");
  26. for(var i=0;i<_a.length;i++){
  27. var id=_a[i].id;
  28. (function(){
  29. for(var i=0;i<_9.length;i++){
  30. if(id==_9[i]){
  31. return;
  32. }
  33. }
  34. _9.push(id);
  35. })();
  36. }
  37. }
  38. $(_2).combotree("setValues",_9);
  39. _4.onLoadSuccess.call(this,_7,_8);
  40. },onClick:function(_b){
  41. if(_4.multiple){
  42. $(this).tree(_b.checked?"uncheck":"check",_b.target);
  43. }else{
  44. $(_2).combo("hidePanel");
  45. }
  46. _e(_2);
  47. _4.onClick.call(this,_b);
  48. },onCheck:function(_c,_d){
  49. _e(_2);
  50. _4.onCheck.call(this,_c,_d);
  51. }}));
  52. };
  53. function _e(_f){
  54. var _10=$.data(_f,"combotree");
  55. var _11=_10.options;
  56. var _12=_10.tree;
  57. var vv=[],ss=[];
  58. if(_11.multiple){
  59. var _13=_12.tree("getChecked");
  60. for(var i=0;i<_13.length;i++){
  61. vv.push(_13[i].id);
  62. ss.push(_13[i].text);
  63. }
  64. }else{
  65. var _14=_12.tree("getSelected");
  66. if(_14){
  67. vv.push(_14.id);
  68. ss.push(_14.text);
  69. }
  70. }
  71. $(_f).combo("setValues",vv).combo("setText",ss.join(_11.separator));
  72. };
  73. function _15(_16,_17){
  74. var _18=$.data(_16,"combotree");
  75. var _19=_18.options;
  76. var _1a=_18.tree;
  77. var _1b=_1a.tree("options");
  78. var _1c=_1b.onCheck;
  79. var _1d=_1b.onSelect;
  80. _1b.onCheck=_1b.onSelect=function(){
  81. };
  82. _1a.find("span.tree-checkbox").addClass("tree-checkbox0").removeClass("tree-checkbox1 tree-checkbox2");
  83. if(!$.isArray(_17)){
  84. _17=_17.split(_19.separator);
  85. }
  86. for(var i=0;i<_17.length;i++){
  87. var _1e=_1a.tree("find",_17[i]);
  88. if(_1e){
  89. _1a.tree("check",_1e.target);
  90. _1a.tree("select",_1e.target);
  91. }
  92. }
  93. _1b.onCheck=_1c;
  94. _1b.onSelect=_1d;
  95. _e(_16);
  96. };
  97. $.fn.combotree=function(_1f,_20){
  98. if(typeof _1f=="string"){
  99. var _21=$.fn.combotree.methods[_1f];
  100. if(_21){
  101. return _21(this,_20);
  102. }else{
  103. return this.combo(_1f,_20);
  104. }
  105. }
  106. _1f=_1f||{};
  107. return this.each(function(){
  108. var _22=$.data(this,"combotree");
  109. if(_22){
  110. $.extend(_22.options,_1f);
  111. }else{
  112. $.data(this,"combotree",{options:$.extend({},$.fn.combotree.defaults,$.fn.combotree.parseOptions(this),_1f)});
  113. }
  114. _1(this);
  115. });
  116. };
  117. $.fn.combotree.methods={options:function(jq){
  118. var _23=jq.combo("options");
  119. return $.extend($.data(jq[0],"combotree").options,{width:_23.width,height:_23.height,originalValue:_23.originalValue,disabled:_23.disabled,readonly:_23.readonly});
  120. },clone:function(jq,_24){
  121. var t=jq.combo("clone",_24);
  122. t.data("combotree",{options:$.extend(true,{},jq.combotree("options")),tree:jq.combotree("tree")});
  123. return t;
  124. },tree:function(jq){
  125. return $.data(jq[0],"combotree").tree;
  126. },loadData:function(jq,_25){
  127. return jq.each(function(){
  128. var _26=$.data(this,"combotree").options;
  129. _26.data=_25;
  130. var _27=$.data(this,"combotree").tree;
  131. _27.tree("loadData",_25);
  132. });
  133. },reload:function(jq,url){
  134. return jq.each(function(){
  135. var _28=$.data(this,"combotree").options;
  136. var _29=$.data(this,"combotree").tree;
  137. if(url){
  138. _28.url=url;
  139. }
  140. _29.tree({url:_28.url});
  141. });
  142. },setValues:function(jq,_2a){
  143. return jq.each(function(){
  144. _15(this,_2a);
  145. });
  146. },setValue:function(jq,_2b){
  147. return jq.each(function(){
  148. _15(this,[_2b]);
  149. });
  150. },clear:function(jq){
  151. return jq.each(function(){
  152. var _2c=$.data(this,"combotree").tree;
  153. _2c.find("div.tree-node-selected").removeClass("tree-node-selected");
  154. var cc=_2c.tree("getChecked");
  155. for(var i=0;i<cc.length;i++){
  156. _2c.tree("uncheck",cc[i].target);
  157. }
  158. $(this).combo("clear");
  159. });
  160. },reset:function(jq){
  161. return jq.each(function(){
  162. var _2d=$(this).combotree("options");
  163. if(_2d.multiple){
  164. $(this).combotree("setValues",_2d.originalValue);
  165. }else{
  166. $(this).combotree("setValue",_2d.originalValue);
  167. }
  168. });
  169. }};
  170. $.fn.combotree.parseOptions=function(_2e){
  171. return $.extend({},$.fn.combo.parseOptions(_2e),$.fn.tree.parseOptions(_2e));
  172. };
  173. $.fn.combotree.defaults=$.extend({},$.fn.combo.defaults,$.fn.tree.defaults,{editable:false});
  174. })(jQuery);