旭捷内部项目管理系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

234 lines
5.4 KiB

10 months ago
  1. /**
  2. * jQuery EasyUI 1.5.1
  3. *
  4. * Copyright (c) 2009-2016 www.jeasyui.com. All rights reserved.
  5. *
  6. * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php
  7. * To use it on other terms please contact us: 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($.extend({},_4,{onShowPanel:function(){
  17. if(_4.editable){
  18. _5.tree("doFilter","");
  19. }
  20. _4.onShowPanel.call(this);
  21. }}));
  22. var _6=$(_2).combo("panel");
  23. if(!_5){
  24. _5=$("<ul></ul>").appendTo(_6);
  25. _3.tree=_5;
  26. }
  27. _5.tree($.extend({},_4,{checkbox:_4.multiple,onLoadSuccess:function(_7,_8){
  28. var _9=$(_2).combotree("getValues");
  29. if(_4.multiple){
  30. $.map(_5.tree("getChecked"),function(_a){
  31. $.easyui.addArrayItem(_9,_a.id);
  32. });
  33. }
  34. _15(_2,_9,_3.remainText);
  35. _4.onLoadSuccess.call(this,_7,_8);
  36. },onClick:function(_b){
  37. if(_4.multiple){
  38. $(this).tree(_b.checked?"uncheck":"check",_b.target);
  39. }else{
  40. $(_2).combo("hidePanel");
  41. }
  42. _3.remainText=false;
  43. _e(_2);
  44. _4.onClick.call(this,_b);
  45. },onCheck:function(_c,_d){
  46. _3.remainText=false;
  47. _e(_2);
  48. _4.onCheck.call(this,_c,_d);
  49. }}));
  50. };
  51. function _e(_f){
  52. var _10=$.data(_f,"combotree");
  53. var _11=_10.options;
  54. var _12=_10.tree;
  55. var vv=[];
  56. if(_11.multiple){
  57. vv=$.map(_12.tree("getChecked"),function(_13){
  58. return _13.id;
  59. });
  60. }else{
  61. var _14=_12.tree("getSelected");
  62. if(_14){
  63. vv.push(_14.id);
  64. }
  65. }
  66. vv=vv.concat(_11.unselectedValues);
  67. _15(_f,vv,_10.remainText);
  68. };
  69. function _15(_16,_17,_18){
  70. var _19=$.data(_16,"combotree");
  71. var _1a=_19.options;
  72. var _1b=_19.tree;
  73. var _1c=_1b.tree("options");
  74. var _1d=_1c.onBeforeCheck;
  75. var _1e=_1c.onCheck;
  76. var _1f=_1c.onSelect;
  77. _1c.onBeforeCheck=_1c.onCheck=_1c.onSelect=function(){
  78. };
  79. if(!$.isArray(_17)){
  80. _17=_17.split(_1a.separator);
  81. }
  82. if(!_1a.multiple){
  83. _17=_17.length?[_17[0]]:[""];
  84. }
  85. var vv=$.map(_17,function(_20){
  86. return String(_20);
  87. });
  88. _1b.find("div.tree-node-selected").removeClass("tree-node-selected");
  89. $.map(_1b.tree("getChecked"),function(_21){
  90. if($.inArray(String(_21.id),vv)==-1){
  91. _1b.tree("uncheck",_21.target);
  92. }
  93. });
  94. var ss=[];
  95. _1a.unselectedValues=[];
  96. $.map(vv,function(v){
  97. var _22=_1b.tree("find",v);
  98. if(_22){
  99. _1b.tree("check",_22.target).tree("select",_22.target);
  100. ss.push(_22.text);
  101. }else{
  102. ss.push(_23(v,_1a.mappingRows)||v);
  103. _1a.unselectedValues.push(v);
  104. }
  105. });
  106. if(_1a.multiple){
  107. $.map(_1b.tree("getChecked"),function(_24){
  108. var id=String(_24.id);
  109. if($.inArray(id,vv)==-1){
  110. vv.push(id);
  111. ss.push(_24.text);
  112. }
  113. });
  114. }
  115. _1c.onBeforeCheck=_1d;
  116. _1c.onCheck=_1e;
  117. _1c.onSelect=_1f;
  118. if(!_18){
  119. var s=ss.join(_1a.separator);
  120. if($(_16).combo("getText")!=s){
  121. $(_16).combo("setText",s);
  122. }
  123. }
  124. $(_16).combo("setValues",vv);
  125. function _23(_25,a){
  126. var _26=$.easyui.getArrayItem(a,"id",_25);
  127. return _26?_26.text:undefined;
  128. };
  129. };
  130. function _27(_28,q){
  131. var _29=$.data(_28,"combotree");
  132. var _2a=_29.options;
  133. var _2b=_29.tree;
  134. _29.remainText=true;
  135. _2b.tree("doFilter",_2a.multiple?q.split(_2a.separator):q);
  136. };
  137. function _2c(_2d){
  138. var _2e=$.data(_2d,"combotree");
  139. _2e.remainText=false;
  140. $(_2d).combotree("setValues",$(_2d).combotree("getValues"));
  141. $(_2d).combotree("hidePanel");
  142. };
  143. $.fn.combotree=function(_2f,_30){
  144. if(typeof _2f=="string"){
  145. var _31=$.fn.combotree.methods[_2f];
  146. if(_31){
  147. return _31(this,_30);
  148. }else{
  149. return this.combo(_2f,_30);
  150. }
  151. }
  152. _2f=_2f||{};
  153. return this.each(function(){
  154. var _32=$.data(this,"combotree");
  155. if(_32){
  156. $.extend(_32.options,_2f);
  157. }else{
  158. $.data(this,"combotree",{options:$.extend({},$.fn.combotree.defaults,$.fn.combotree.parseOptions(this),_2f)});
  159. }
  160. _1(this);
  161. });
  162. };
  163. $.fn.combotree.methods={options:function(jq){
  164. var _33=jq.combo("options");
  165. return $.extend($.data(jq[0],"combotree").options,{width:_33.width,height:_33.height,originalValue:_33.originalValue,disabled:_33.disabled,readonly:_33.readonly});
  166. },clone:function(jq,_34){
  167. var t=jq.combo("clone",_34);
  168. t.data("combotree",{options:$.extend(true,{},jq.combotree("options")),tree:jq.combotree("tree")});
  169. return t;
  170. },tree:function(jq){
  171. return $.data(jq[0],"combotree").tree;
  172. },loadData:function(jq,_35){
  173. return jq.each(function(){
  174. var _36=$.data(this,"combotree").options;
  175. _36.data=_35;
  176. var _37=$.data(this,"combotree").tree;
  177. _37.tree("loadData",_35);
  178. });
  179. },reload:function(jq,url){
  180. return jq.each(function(){
  181. var _38=$.data(this,"combotree").options;
  182. var _39=$.data(this,"combotree").tree;
  183. if(url){
  184. _38.url=url;
  185. }
  186. _39.tree({url:_38.url});
  187. });
  188. },setValues:function(jq,_3a){
  189. return jq.each(function(){
  190. var _3b=$(this).combotree("options");
  191. if($.isArray(_3a)){
  192. _3a=$.map(_3a,function(_3c){
  193. if(_3c&&typeof _3c=="object"){
  194. $.easyui.addArrayItem(_3b.mappingRows,"id",_3c);
  195. return _3c.id;
  196. }else{
  197. return _3c;
  198. }
  199. });
  200. }
  201. _15(this,_3a);
  202. });
  203. },setValue:function(jq,_3d){
  204. return jq.each(function(){
  205. $(this).combotree("setValues",$.isArray(_3d)?_3d:[_3d]);
  206. });
  207. },clear:function(jq){
  208. return jq.each(function(){
  209. $(this).combotree("setValues",[]);
  210. });
  211. },reset:function(jq){
  212. return jq.each(function(){
  213. var _3e=$(this).combotree("options");
  214. if(_3e.multiple){
  215. $(this).combotree("setValues",_3e.originalValue);
  216. }else{
  217. $(this).combotree("setValue",_3e.originalValue);
  218. }
  219. });
  220. }};
  221. $.fn.combotree.parseOptions=function(_3f){
  222. return $.extend({},$.fn.combo.parseOptions(_3f),$.fn.tree.parseOptions(_3f));
  223. };
  224. $.fn.combotree.defaults=$.extend({},$.fn.combo.defaults,$.fn.tree.defaults,{editable:false,unselectedValues:[],mappingRows:[],keyHandler:{up:function(e){
  225. },down:function(e){
  226. },left:function(e){
  227. },right:function(e){
  228. },enter:function(e){
  229. _2c(this);
  230. },query:function(q,e){
  231. _27(this,q);
  232. }}});
  233. })(jQuery);