jquery.combotree.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. /**
  2. * jQuery EasyUI 1.3.6
  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. var _b=$(this).tree("options");
  39. var _c=_b.onCheck;
  40. var _d=_b.onSelect;
  41. _b.onCheck=_b.onSelect=function(){
  42. };
  43. $(_2).combotree("setValues",_9);
  44. _b.onCheck=_c;
  45. _b.onSelect=_d;
  46. _4.onLoadSuccess.call(this,_7,_8);
  47. },onClick:function(_e){
  48. if(_4.multiple){
  49. $(this).tree(_e.checked?"uncheck":"check",_e.target);
  50. }else{
  51. $(_2).combo("hidePanel");
  52. }
  53. _11(_2);
  54. _4.onClick.call(this,_e);
  55. },onCheck:function(_f,_10){
  56. _11(_2);
  57. _4.onCheck.call(this,_f,_10);
  58. }}));
  59. };
  60. function _11(_12){
  61. var _13=$.data(_12,"combotree");
  62. var _14=_13.options;
  63. var _15=_13.tree;
  64. var vv=[],ss=[];
  65. if(_14.multiple){
  66. var _16=_15.tree("getChecked");
  67. for(var i=0;i<_16.length;i++){
  68. vv.push(_16[i].id);
  69. ss.push(_16[i].text);
  70. }
  71. }else{
  72. var _17=_15.tree("getSelected");
  73. if(_17){
  74. vv.push(_17.id);
  75. ss.push(_17.text);
  76. }
  77. }
  78. $(_12).combo("setValues",vv).combo("setText",ss.join(_14.separator));
  79. };
  80. function _18(_19,_1a){
  81. var _1b=$.data(_19,"combotree").options;
  82. var _1c=$.data(_19,"combotree").tree;
  83. _1c.find("span.tree-checkbox").addClass("tree-checkbox0").removeClass("tree-checkbox1 tree-checkbox2");
  84. var vv=[],ss=[];
  85. for(var i=0;i<_1a.length;i++){
  86. var v=_1a[i];
  87. var s=v;
  88. var _1d=_1c.tree("find",v);
  89. if(_1d){
  90. s=_1d.text;
  91. _1c.tree("check",_1d.target);
  92. _1c.tree("select",_1d.target);
  93. }
  94. vv.push(v);
  95. ss.push(s);
  96. }
  97. $(_19).combo("setValues",vv).combo("setText",ss.join(_1b.separator));
  98. };
  99. $.fn.combotree=function(_1e,_1f){
  100. if(typeof _1e=="string"){
  101. var _20=$.fn.combotree.methods[_1e];
  102. if(_20){
  103. return _20(this,_1f);
  104. }else{
  105. return this.combo(_1e,_1f);
  106. }
  107. }
  108. _1e=_1e||{};
  109. return this.each(function(){
  110. var _21=$.data(this,"combotree");
  111. if(_21){
  112. $.extend(_21.options,_1e);
  113. }else{
  114. $.data(this,"combotree",{options:$.extend({},$.fn.combotree.defaults,$.fn.combotree.parseOptions(this),_1e)});
  115. }
  116. _1(this);
  117. });
  118. };
  119. $.fn.combotree.methods={options:function(jq){
  120. var _22=jq.combo("options");
  121. return $.extend($.data(jq[0],"combotree").options,{originalValue:_22.originalValue,disabled:_22.disabled,readonly:_22.readonly});
  122. },tree:function(jq){
  123. return $.data(jq[0],"combotree").tree;
  124. },loadData:function(jq,_23){
  125. return jq.each(function(){
  126. var _24=$.data(this,"combotree").options;
  127. _24.data=_23;
  128. var _25=$.data(this,"combotree").tree;
  129. _25.tree("loadData",_23);
  130. });
  131. },reload:function(jq,url){
  132. return jq.each(function(){
  133. var _26=$.data(this,"combotree").options;
  134. var _27=$.data(this,"combotree").tree;
  135. if(url){
  136. _26.url=url;
  137. }
  138. _27.tree({url:_26.url});
  139. });
  140. },setValues:function(jq,_28){
  141. return jq.each(function(){
  142. _18(this,_28);
  143. });
  144. },setValue:function(jq,_29){
  145. return jq.each(function(){
  146. _18(this,[_29]);
  147. });
  148. },clear:function(jq){
  149. return jq.each(function(){
  150. var _2a=$.data(this,"combotree").tree;
  151. _2a.find("div.tree-node-selected").removeClass("tree-node-selected");
  152. var cc=_2a.tree("getChecked");
  153. for(var i=0;i<cc.length;i++){
  154. _2a.tree("uncheck",cc[i].target);
  155. }
  156. $(this).combo("clear");
  157. });
  158. },reset:function(jq){
  159. return jq.each(function(){
  160. var _2b=$(this).combotree("options");
  161. if(_2b.multiple){
  162. $(this).combotree("setValues",_2b.originalValue);
  163. }else{
  164. $(this).combotree("setValue",_2b.originalValue);
  165. }
  166. });
  167. }};
  168. $.fn.combotree.parseOptions=function(_2c){
  169. return $.extend({},$.fn.combo.parseOptions(_2c),$.fn.tree.parseOptions(_2c));
  170. };
  171. $.fn.combotree.defaults=$.extend({},$.fn.combo.defaults,$.fn.tree.defaults,{editable:false});
  172. })(jQuery);