jquery.treegrid.js 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353
  1. /**
  2. * EasyUI for jQuery 1.6.10
  3. *
  4. * Copyright (c) 2009-2018 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,"treegrid");
  13. var _4=_3.options;
  14. $(_2).datagrid($.extend({},_4,{url:null,data:null,loader:function(){
  15. return false;
  16. },onBeforeLoad:function(){
  17. return false;
  18. },onLoadSuccess:function(){
  19. },onResizeColumn:function(_5,_6){
  20. _16(_2);
  21. _4.onResizeColumn.call(_2,_5,_6);
  22. },onBeforeSortColumn:function(_7,_8){
  23. if(_4.onBeforeSortColumn.call(_2,_7,_8)==false){
  24. return false;
  25. }
  26. },onSortColumn:function(_9,_a){
  27. _4.sortName=_9;
  28. _4.sortOrder=_a;
  29. if(_4.remoteSort){
  30. _15(_2);
  31. }else{
  32. var _b=$(_2).treegrid("getData");
  33. _56(_2,null,_b);
  34. }
  35. _4.onSortColumn.call(_2,_9,_a);
  36. },onClickCell:function(_c,_d){
  37. _4.onClickCell.call(_2,_d,_37(_2,_c));
  38. },onDblClickCell:function(_e,_f){
  39. _4.onDblClickCell.call(_2,_f,_37(_2,_e));
  40. },onRowContextMenu:function(e,_10){
  41. _4.onContextMenu.call(_2,e,_37(_2,_10));
  42. }}));
  43. var _11=$.data(_2,"datagrid").options;
  44. _4.columns=_11.columns;
  45. _4.frozenColumns=_11.frozenColumns;
  46. _3.dc=$.data(_2,"datagrid").dc;
  47. if(_4.pagination){
  48. var _12=$(_2).datagrid("getPager");
  49. _12.pagination({pageNumber:_4.pageNumber,pageSize:_4.pageSize,pageList:_4.pageList,onSelectPage:function(_13,_14){
  50. _4.pageNumber=_13;
  51. _4.pageSize=_14;
  52. _15(_2);
  53. }});
  54. _4.pageSize=_12.pagination("options").pageSize;
  55. }
  56. };
  57. function _16(_17,_18){
  58. var _19=$.data(_17,"datagrid").options;
  59. var dc=$.data(_17,"datagrid").dc;
  60. if(!dc.body1.is(":empty")&&(!_19.nowrap||_19.autoRowHeight)){
  61. if(_18!=undefined){
  62. var _1a=_1b(_17,_18);
  63. for(var i=0;i<_1a.length;i++){
  64. _1c(_1a[i][_19.idField]);
  65. }
  66. }
  67. }
  68. $(_17).datagrid("fixRowHeight",_18);
  69. function _1c(_1d){
  70. var tr1=_19.finder.getTr(_17,_1d,"body",1);
  71. var tr2=_19.finder.getTr(_17,_1d,"body",2);
  72. tr1.css("height","");
  73. tr2.css("height","");
  74. var _1e=Math.max(tr1.height(),tr2.height());
  75. tr1.css("height",_1e);
  76. tr2.css("height",_1e);
  77. };
  78. };
  79. function _1f(_20){
  80. var dc=$.data(_20,"datagrid").dc;
  81. var _21=$.data(_20,"treegrid").options;
  82. if(!_21.rownumbers){
  83. return;
  84. }
  85. dc.body1.find("div.datagrid-cell-rownumber").each(function(i){
  86. $(this).html(i+1);
  87. });
  88. };
  89. function _22(_23){
  90. return function(e){
  91. $.fn.datagrid.defaults.rowEvents[_23?"mouseover":"mouseout"](e);
  92. var tt=$(e.target);
  93. var fn=_23?"addClass":"removeClass";
  94. if(tt.hasClass("tree-hit")){
  95. tt.hasClass("tree-expanded")?tt[fn]("tree-expanded-hover"):tt[fn]("tree-collapsed-hover");
  96. }
  97. };
  98. };
  99. function _24(e){
  100. var tt=$(e.target);
  101. var tr=tt.closest("tr.datagrid-row");
  102. if(!tr.length||!tr.parent().length){
  103. return;
  104. }
  105. var _25=tr.attr("node-id");
  106. var _26=_27(tr);
  107. if(tt.hasClass("tree-hit")){
  108. _28(_26,_25);
  109. }else{
  110. if(tt.hasClass("tree-checkbox")){
  111. _29(_26,_25);
  112. }else{
  113. var _2a=$(_26).datagrid("options");
  114. if(!tt.parent().hasClass("datagrid-cell-check")&&!_2a.singleSelect&&e.shiftKey){
  115. var _2b=$(_26).treegrid("getChildren");
  116. var _2c=$.easyui.indexOfArray(_2b,_2a.idField,_2a.lastSelectedIndex);
  117. var _2d=$.easyui.indexOfArray(_2b,_2a.idField,_25);
  118. var _2e=Math.min(Math.max(_2c,0),_2d);
  119. var to=Math.max(_2c,_2d);
  120. var row=_2b[_2d];
  121. var td=tt.closest("td[field]",tr);
  122. if(td.length){
  123. var _2f=td.attr("field");
  124. _2a.onClickCell.call(_26,_25,_2f,row[_2f]);
  125. }
  126. $(_26).treegrid("clearSelections");
  127. for(var i=_2e;i<=to;i++){
  128. $(_26).treegrid("selectRow",_2b[i][_2a.idField]);
  129. }
  130. _2a.onClickRow.call(_26,row);
  131. }else{
  132. $.fn.datagrid.defaults.rowEvents.click(e);
  133. }
  134. }
  135. }
  136. };
  137. function _27(t){
  138. return $(t).closest("div.datagrid-view").children(".datagrid-f")[0];
  139. };
  140. function _29(_30,_31,_32,_33){
  141. var _34=$.data(_30,"treegrid");
  142. var _35=_34.checkedRows;
  143. var _36=_34.options;
  144. if(!_36.checkbox){
  145. return;
  146. }
  147. var row=_37(_30,_31);
  148. if(!row.checkState){
  149. return;
  150. }
  151. var tr=_36.finder.getTr(_30,_31);
  152. var ck=tr.find(".tree-checkbox");
  153. if(_32==undefined){
  154. if(ck.hasClass("tree-checkbox1")){
  155. _32=false;
  156. }else{
  157. if(ck.hasClass("tree-checkbox0")){
  158. _32=true;
  159. }else{
  160. if(row._checked==undefined){
  161. row._checked=ck.hasClass("tree-checkbox1");
  162. }
  163. _32=!row._checked;
  164. }
  165. }
  166. }
  167. row._checked=_32;
  168. if(_32){
  169. if(ck.hasClass("tree-checkbox1")){
  170. return;
  171. }
  172. }else{
  173. if(ck.hasClass("tree-checkbox0")){
  174. return;
  175. }
  176. }
  177. if(!_33){
  178. if(_36.onBeforeCheckNode.call(_30,row,_32)==false){
  179. return;
  180. }
  181. }
  182. if(_36.cascadeCheck){
  183. _38(_30,row,_32);
  184. _39(_30,row);
  185. }else{
  186. _3a(_30,row,_32?"1":"0");
  187. }
  188. if(!_33){
  189. _36.onCheckNode.call(_30,row,_32);
  190. }
  191. };
  192. function _3a(_3b,row,_3c){
  193. var _3d=$.data(_3b,"treegrid");
  194. var _3e=_3d.checkedRows;
  195. var _3f=_3d.options;
  196. if(!row.checkState||_3c==undefined){
  197. return;
  198. }
  199. var tr=_3f.finder.getTr(_3b,row[_3f.idField]);
  200. var ck=tr.find(".tree-checkbox");
  201. if(!ck.length){
  202. return;
  203. }
  204. row.checkState=["unchecked","checked","indeterminate"][_3c];
  205. row.checked=(row.checkState=="checked");
  206. ck.removeClass("tree-checkbox0 tree-checkbox1 tree-checkbox2");
  207. ck.addClass("tree-checkbox"+_3c);
  208. if(_3c==0){
  209. $.easyui.removeArrayItem(_3e,_3f.idField,row[_3f.idField]);
  210. }else{
  211. $.easyui.addArrayItem(_3e,_3f.idField,row);
  212. }
  213. };
  214. function _38(_40,row,_41){
  215. var _42=_41?1:0;
  216. _3a(_40,row,_42);
  217. $.easyui.forEach(row.children||[],true,function(r){
  218. _3a(_40,r,_42);
  219. });
  220. };
  221. function _39(_43,row){
  222. var _44=$.data(_43,"treegrid").options;
  223. var _45=_46(_43,row[_44.idField]);
  224. if(_45){
  225. _3a(_43,_45,_47(_45));
  226. _39(_43,_45);
  227. }
  228. };
  229. function _47(row){
  230. var len=0;
  231. var c0=0;
  232. var c1=0;
  233. $.easyui.forEach(row.children||[],false,function(r){
  234. if(r.checkState){
  235. len++;
  236. if(r.checkState=="checked"){
  237. c1++;
  238. }else{
  239. if(r.checkState=="unchecked"){
  240. c0++;
  241. }
  242. }
  243. }
  244. });
  245. if(len==0){
  246. return undefined;
  247. }
  248. var _48=0;
  249. if(c0==len){
  250. _48=0;
  251. }else{
  252. if(c1==len){
  253. _48=1;
  254. }else{
  255. _48=2;
  256. }
  257. }
  258. return _48;
  259. };
  260. function _49(_4a,_4b){
  261. var _4c=$.data(_4a,"treegrid").options;
  262. if(!_4c.checkbox){
  263. return;
  264. }
  265. var row=_37(_4a,_4b);
  266. var tr=_4c.finder.getTr(_4a,_4b);
  267. var ck=tr.find(".tree-checkbox");
  268. if(_4c.view.hasCheckbox(_4a,row)){
  269. if(!ck.length){
  270. row.checkState=row.checkState||"unchecked";
  271. $("<span class=\"tree-checkbox\"></span>").insertBefore(tr.find(".tree-title"));
  272. }
  273. if(row.checkState=="checked"){
  274. _29(_4a,_4b,true,true);
  275. }else{
  276. if(row.checkState=="unchecked"){
  277. _29(_4a,_4b,false,true);
  278. }else{
  279. var _4d=_47(row);
  280. if(_4d===0){
  281. _29(_4a,_4b,false,true);
  282. }else{
  283. if(_4d===1){
  284. _29(_4a,_4b,true,true);
  285. }
  286. }
  287. }
  288. }
  289. }else{
  290. ck.remove();
  291. row.checkState=undefined;
  292. row.checked=undefined;
  293. _39(_4a,row);
  294. }
  295. };
  296. function _4e(_4f,_50){
  297. var _51=$.data(_4f,"treegrid").options;
  298. var tr1=_51.finder.getTr(_4f,_50,"body",1);
  299. var tr2=_51.finder.getTr(_4f,_50,"body",2);
  300. var _52=$(_4f).datagrid("getColumnFields",true).length+(_51.rownumbers?1:0);
  301. var _53=$(_4f).datagrid("getColumnFields",false).length;
  302. _54(tr1,_52);
  303. _54(tr2,_53);
  304. function _54(tr,_55){
  305. $("<tr class=\"treegrid-tr-tree\">"+"<td style=\"border:0px\" colspan=\""+_55+"\">"+"<div></div>"+"</td>"+"</tr>").insertAfter(tr);
  306. };
  307. };
  308. function _56(_57,_58,_59,_5a,_5b){
  309. var _5c=$.data(_57,"treegrid");
  310. var _5d=_5c.options;
  311. var dc=_5c.dc;
  312. _59=_5d.loadFilter.call(_57,_59,_58);
  313. var _5e=_37(_57,_58);
  314. if(_5e){
  315. var _5f=_5d.finder.getTr(_57,_58,"body",1);
  316. var _60=_5d.finder.getTr(_57,_58,"body",2);
  317. var cc1=_5f.next("tr.treegrid-tr-tree").children("td").children("div");
  318. var cc2=_60.next("tr.treegrid-tr-tree").children("td").children("div");
  319. if(!_5a){
  320. _5e.children=[];
  321. }
  322. }else{
  323. var cc1=dc.body1;
  324. var cc2=dc.body2;
  325. if(!_5a){
  326. _5c.data=[];
  327. }
  328. }
  329. if(!_5a){
  330. cc1.empty();
  331. cc2.empty();
  332. }
  333. if(_5d.view.onBeforeRender){
  334. _5d.view.onBeforeRender.call(_5d.view,_57,_58,_59);
  335. }
  336. _5d.view.render.call(_5d.view,_57,cc1,true);
  337. _5d.view.render.call(_5d.view,_57,cc2,false);
  338. if(_5d.showFooter){
  339. _5d.view.renderFooter.call(_5d.view,_57,dc.footer1,true);
  340. _5d.view.renderFooter.call(_5d.view,_57,dc.footer2,false);
  341. }
  342. if(_5d.view.onAfterRender){
  343. _5d.view.onAfterRender.call(_5d.view,_57);
  344. }
  345. if(!_58&&_5d.pagination){
  346. var _61=$.data(_57,"treegrid").total;
  347. var _62=$(_57).datagrid("getPager");
  348. if(_62.pagination("options").total!=_61){
  349. _62.pagination({total:_61});
  350. }
  351. }
  352. _16(_57);
  353. _1f(_57);
  354. $(_57).treegrid("showLines");
  355. $(_57).treegrid("setSelectionState");
  356. $(_57).treegrid("autoSizeColumn");
  357. if(!_5b){
  358. _5d.onLoadSuccess.call(_57,_5e,_59);
  359. }
  360. };
  361. function _15(_63,_64,_65,_66,_67){
  362. var _68=$.data(_63,"treegrid").options;
  363. var _69=$(_63).datagrid("getPanel").find("div.datagrid-body");
  364. if(_64==undefined&&_68.queryParams){
  365. _68.queryParams.id=undefined;
  366. }
  367. if(_65){
  368. _68.queryParams=_65;
  369. }
  370. var _6a=$.extend({},_68.queryParams);
  371. if(_68.pagination){
  372. $.extend(_6a,{page:_68.pageNumber,rows:_68.pageSize});
  373. }
  374. if(_68.sortName){
  375. $.extend(_6a,{sort:_68.sortName,order:_68.sortOrder});
  376. }
  377. var row=_37(_63,_64);
  378. if(_68.onBeforeLoad.call(_63,row,_6a)==false){
  379. return;
  380. }
  381. var _6b=_69.find("tr[node-id=\""+_64+"\"] span.tree-folder");
  382. _6b.addClass("tree-loading");
  383. $(_63).treegrid("loading");
  384. var _6c=_68.loader.call(_63,_6a,function(_6d){
  385. _6b.removeClass("tree-loading");
  386. $(_63).treegrid("loaded");
  387. _56(_63,_64,_6d,_66);
  388. if(_67){
  389. _67();
  390. }
  391. },function(){
  392. _6b.removeClass("tree-loading");
  393. $(_63).treegrid("loaded");
  394. _68.onLoadError.apply(_63,arguments);
  395. if(_67){
  396. _67();
  397. }
  398. });
  399. if(_6c==false){
  400. _6b.removeClass("tree-loading");
  401. $(_63).treegrid("loaded");
  402. }
  403. };
  404. function _6e(_6f){
  405. var _70=_71(_6f);
  406. return _70.length?_70[0]:null;
  407. };
  408. function _71(_72){
  409. return $.data(_72,"treegrid").data;
  410. };
  411. function _46(_73,_74){
  412. var row=_37(_73,_74);
  413. if(row._parentId){
  414. return _37(_73,row._parentId);
  415. }else{
  416. return null;
  417. }
  418. };
  419. function _1b(_75,_76){
  420. var _77=$.data(_75,"treegrid").data;
  421. if(_76){
  422. var _78=_37(_75,_76);
  423. _77=_78?(_78.children||[]):[];
  424. }
  425. var _79=[];
  426. $.easyui.forEach(_77,true,function(_7a){
  427. _79.push(_7a);
  428. });
  429. return _79;
  430. };
  431. function _7b(_7c,_7d){
  432. var _7e=$.data(_7c,"treegrid").options;
  433. var tr=_7e.finder.getTr(_7c,_7d);
  434. var _7f=tr.children("td[field=\""+_7e.treeField+"\"]");
  435. return _7f.find("span.tree-indent,span.tree-hit").length;
  436. };
  437. function _37(_80,_81){
  438. var _82=$.data(_80,"treegrid");
  439. var _83=_82.options;
  440. var _84=null;
  441. $.easyui.forEach(_82.data,true,function(_85){
  442. if(_85[_83.idField]==_81){
  443. _84=_85;
  444. return false;
  445. }
  446. });
  447. return _84;
  448. };
  449. function _86(_87,_88){
  450. var _89=$.data(_87,"treegrid").options;
  451. var row=_37(_87,_88);
  452. var tr=_89.finder.getTr(_87,_88);
  453. var hit=tr.find("span.tree-hit");
  454. if(hit.length==0){
  455. return;
  456. }
  457. if(hit.hasClass("tree-collapsed")){
  458. return;
  459. }
  460. if(_89.onBeforeCollapse.call(_87,row)==false){
  461. return;
  462. }
  463. hit.removeClass("tree-expanded tree-expanded-hover").addClass("tree-collapsed");
  464. hit.next().removeClass("tree-folder-open");
  465. row.state="closed";
  466. tr=tr.next("tr.treegrid-tr-tree");
  467. var cc=tr.children("td").children("div");
  468. if(_89.animate){
  469. cc.slideUp("normal",function(){
  470. $(_87).treegrid("autoSizeColumn");
  471. _16(_87,_88);
  472. _89.onCollapse.call(_87,row);
  473. });
  474. }else{
  475. cc.hide();
  476. $(_87).treegrid("autoSizeColumn");
  477. _16(_87,_88);
  478. _89.onCollapse.call(_87,row);
  479. }
  480. };
  481. function _8a(_8b,_8c){
  482. var _8d=$.data(_8b,"treegrid").options;
  483. var tr=_8d.finder.getTr(_8b,_8c);
  484. var hit=tr.find("span.tree-hit");
  485. var row=_37(_8b,_8c);
  486. if(hit.length==0){
  487. return;
  488. }
  489. if(hit.hasClass("tree-expanded")){
  490. return;
  491. }
  492. if(_8d.onBeforeExpand.call(_8b,row)==false){
  493. return;
  494. }
  495. hit.removeClass("tree-collapsed tree-collapsed-hover").addClass("tree-expanded");
  496. hit.next().addClass("tree-folder-open");
  497. var _8e=tr.next("tr.treegrid-tr-tree");
  498. if(_8e.length){
  499. var cc=_8e.children("td").children("div");
  500. _8f(cc);
  501. }else{
  502. _4e(_8b,row[_8d.idField]);
  503. var _8e=tr.next("tr.treegrid-tr-tree");
  504. var cc=_8e.children("td").children("div");
  505. cc.hide();
  506. var _90=$.extend({},_8d.queryParams||{});
  507. _90.id=row[_8d.idField];
  508. _15(_8b,row[_8d.idField],_90,true,function(){
  509. if(cc.is(":empty")){
  510. _8e.remove();
  511. }else{
  512. _8f(cc);
  513. }
  514. });
  515. }
  516. function _8f(cc){
  517. row.state="open";
  518. if(_8d.animate){
  519. cc.slideDown("normal",function(){
  520. $(_8b).treegrid("autoSizeColumn");
  521. _16(_8b,_8c);
  522. _8d.onExpand.call(_8b,row);
  523. });
  524. }else{
  525. cc.show();
  526. $(_8b).treegrid("autoSizeColumn");
  527. _16(_8b,_8c);
  528. _8d.onExpand.call(_8b,row);
  529. }
  530. };
  531. };
  532. function _28(_91,_92){
  533. var _93=$.data(_91,"treegrid").options;
  534. var tr=_93.finder.getTr(_91,_92);
  535. var hit=tr.find("span.tree-hit");
  536. if(hit.hasClass("tree-expanded")){
  537. _86(_91,_92);
  538. }else{
  539. _8a(_91,_92);
  540. }
  541. };
  542. function _94(_95,_96){
  543. var _97=$.data(_95,"treegrid").options;
  544. var _98=_1b(_95,_96);
  545. if(_96){
  546. _98.unshift(_37(_95,_96));
  547. }
  548. for(var i=0;i<_98.length;i++){
  549. _86(_95,_98[i][_97.idField]);
  550. }
  551. };
  552. function _99(_9a,_9b){
  553. var _9c=$.data(_9a,"treegrid").options;
  554. var _9d=_1b(_9a,_9b);
  555. if(_9b){
  556. _9d.unshift(_37(_9a,_9b));
  557. }
  558. for(var i=0;i<_9d.length;i++){
  559. _8a(_9a,_9d[i][_9c.idField]);
  560. }
  561. };
  562. function _9e(_9f,_a0){
  563. var _a1=$.data(_9f,"treegrid").options;
  564. var ids=[];
  565. var p=_46(_9f,_a0);
  566. while(p){
  567. var id=p[_a1.idField];
  568. ids.unshift(id);
  569. p=_46(_9f,id);
  570. }
  571. for(var i=0;i<ids.length;i++){
  572. _8a(_9f,ids[i]);
  573. }
  574. };
  575. function _a2(_a3,_a4){
  576. var _a5=$.data(_a3,"treegrid");
  577. var _a6=_a5.options;
  578. if(_a4.parent){
  579. var tr=_a6.finder.getTr(_a3,_a4.parent);
  580. if(tr.next("tr.treegrid-tr-tree").length==0){
  581. _4e(_a3,_a4.parent);
  582. }
  583. var _a7=tr.children("td[field=\""+_a6.treeField+"\"]").children("div.datagrid-cell");
  584. var _a8=_a7.children("span.tree-icon");
  585. if(_a8.hasClass("tree-file")){
  586. _a8.removeClass("tree-file").addClass("tree-folder tree-folder-open");
  587. var hit=$("<span class=\"tree-hit tree-expanded\"></span>").insertBefore(_a8);
  588. if(hit.prev().length){
  589. hit.prev().remove();
  590. }
  591. }
  592. }
  593. _56(_a3,_a4.parent,_a4.data,_a5.data.length>0,true);
  594. };
  595. function _a9(_aa,_ab){
  596. var ref=_ab.before||_ab.after;
  597. var _ac=$.data(_aa,"treegrid").options;
  598. var _ad=_46(_aa,ref);
  599. _a2(_aa,{parent:(_ad?_ad[_ac.idField]:null),data:[_ab.data]});
  600. var _ae=_ad?_ad.children:$(_aa).treegrid("getRoots");
  601. for(var i=0;i<_ae.length;i++){
  602. if(_ae[i][_ac.idField]==ref){
  603. var _af=_ae[_ae.length-1];
  604. _ae.splice(_ab.before?i:(i+1),0,_af);
  605. _ae.splice(_ae.length-1,1);
  606. break;
  607. }
  608. }
  609. _b0(true);
  610. _b0(false);
  611. _1f(_aa);
  612. $(_aa).treegrid("showLines");
  613. function _b0(_b1){
  614. var _b2=_b1?1:2;
  615. var tr=_ac.finder.getTr(_aa,_ab.data[_ac.idField],"body",_b2);
  616. var _b3=tr.closest("table.datagrid-btable");
  617. tr=tr.parent().children();
  618. var _b4=_ac.finder.getTr(_aa,ref,"body",_b2);
  619. if(_ab.before){
  620. tr.insertBefore(_b4);
  621. }else{
  622. var sub=_b4.next("tr.treegrid-tr-tree");
  623. tr.insertAfter(sub.length?sub:_b4);
  624. }
  625. _b3.remove();
  626. };
  627. };
  628. function _b5(_b6,_b7){
  629. var _b8=$.data(_b6,"treegrid");
  630. var _b9=_b8.options;
  631. var _ba=_46(_b6,_b7);
  632. $(_b6).datagrid("deleteRow",_b7);
  633. $.easyui.removeArrayItem(_b8.checkedRows,_b9.idField,_b7);
  634. _1f(_b6);
  635. if(_ba){
  636. _49(_b6,_ba[_b9.idField]);
  637. }
  638. _b8.total-=1;
  639. $(_b6).datagrid("getPager").pagination("refresh",{total:_b8.total});
  640. $(_b6).treegrid("showLines");
  641. };
  642. function _bb(_bc){
  643. var t=$(_bc);
  644. var _bd=t.treegrid("options");
  645. if(_bd.lines){
  646. t.treegrid("getPanel").addClass("tree-lines");
  647. }else{
  648. t.treegrid("getPanel").removeClass("tree-lines");
  649. return;
  650. }
  651. t.treegrid("getPanel").find("span.tree-indent").removeClass("tree-line tree-join tree-joinbottom");
  652. t.treegrid("getPanel").find("div.datagrid-cell").removeClass("tree-node-last tree-root-first tree-root-one");
  653. var _be=t.treegrid("getRoots");
  654. if(_be.length>1){
  655. _bf(_be[0]).addClass("tree-root-first");
  656. }else{
  657. if(_be.length==1){
  658. _bf(_be[0]).addClass("tree-root-one");
  659. }
  660. }
  661. _c0(_be);
  662. _c1(_be);
  663. function _c0(_c2){
  664. $.map(_c2,function(_c3){
  665. if(_c3.children&&_c3.children.length){
  666. _c0(_c3.children);
  667. }else{
  668. var _c4=_bf(_c3);
  669. _c4.find(".tree-icon").prev().addClass("tree-join");
  670. }
  671. });
  672. if(_c2.length){
  673. var _c5=_bf(_c2[_c2.length-1]);
  674. _c5.addClass("tree-node-last");
  675. _c5.find(".tree-join").removeClass("tree-join").addClass("tree-joinbottom");
  676. }
  677. };
  678. function _c1(_c6){
  679. $.map(_c6,function(_c7){
  680. if(_c7.children&&_c7.children.length){
  681. _c1(_c7.children);
  682. }
  683. });
  684. for(var i=0;i<_c6.length-1;i++){
  685. var _c8=_c6[i];
  686. var _c9=t.treegrid("getLevel",_c8[_bd.idField]);
  687. var tr=_bd.finder.getTr(_bc,_c8[_bd.idField]);
  688. var cc=tr.next().find("tr.datagrid-row td[field=\""+_bd.treeField+"\"] div.datagrid-cell");
  689. cc.find("span:eq("+(_c9-1)+")").addClass("tree-line");
  690. }
  691. };
  692. function _bf(_ca){
  693. var tr=_bd.finder.getTr(_bc,_ca[_bd.idField]);
  694. var _cb=tr.find("td[field=\""+_bd.treeField+"\"] div.datagrid-cell");
  695. return _cb;
  696. };
  697. };
  698. $.fn.treegrid=function(_cc,_cd){
  699. if(typeof _cc=="string"){
  700. var _ce=$.fn.treegrid.methods[_cc];
  701. if(_ce){
  702. return _ce(this,_cd);
  703. }else{
  704. return this.datagrid(_cc,_cd);
  705. }
  706. }
  707. _cc=_cc||{};
  708. return this.each(function(){
  709. var _cf=$.data(this,"treegrid");
  710. if(_cf){
  711. $.extend(_cf.options,_cc);
  712. }else{
  713. _cf=$.data(this,"treegrid",{options:$.extend({},$.fn.treegrid.defaults,$.fn.treegrid.parseOptions(this),_cc),data:[],checkedRows:[],tmpIds:[]});
  714. }
  715. _1(this);
  716. if(_cf.options.data){
  717. $(this).treegrid("loadData",_cf.options.data);
  718. }
  719. _15(this);
  720. });
  721. };
  722. $.fn.treegrid.methods={options:function(jq){
  723. return $.data(jq[0],"treegrid").options;
  724. },resize:function(jq,_d0){
  725. return jq.each(function(){
  726. $(this).datagrid("resize",_d0);
  727. });
  728. },fixRowHeight:function(jq,_d1){
  729. return jq.each(function(){
  730. _16(this,_d1);
  731. });
  732. },loadData:function(jq,_d2){
  733. return jq.each(function(){
  734. _56(this,_d2.parent,_d2);
  735. });
  736. },load:function(jq,_d3){
  737. return jq.each(function(){
  738. $(this).treegrid("options").pageNumber=1;
  739. $(this).treegrid("getPager").pagination({pageNumber:1});
  740. $(this).treegrid("reload",_d3);
  741. });
  742. },reload:function(jq,id){
  743. return jq.each(function(){
  744. var _d4=$(this).treegrid("options");
  745. var _d5={};
  746. if(typeof id=="object"){
  747. _d5=id;
  748. }else{
  749. _d5=$.extend({},_d4.queryParams);
  750. _d5.id=id;
  751. }
  752. if(_d5.id){
  753. var _d6=$(this).treegrid("find",_d5.id);
  754. if(_d6.children){
  755. _d6.children.splice(0,_d6.children.length);
  756. }
  757. _d4.queryParams=_d5;
  758. var tr=_d4.finder.getTr(this,_d5.id);
  759. tr.next("tr.treegrid-tr-tree").remove();
  760. tr.find("span.tree-hit").removeClass("tree-expanded tree-expanded-hover").addClass("tree-collapsed");
  761. _8a(this,_d5.id);
  762. }else{
  763. _15(this,null,_d5);
  764. }
  765. });
  766. },reloadFooter:function(jq,_d7){
  767. return jq.each(function(){
  768. var _d8=$.data(this,"treegrid").options;
  769. var dc=$.data(this,"datagrid").dc;
  770. if(_d7){
  771. $.data(this,"treegrid").footer=_d7;
  772. }
  773. if(_d8.showFooter){
  774. _d8.view.renderFooter.call(_d8.view,this,dc.footer1,true);
  775. _d8.view.renderFooter.call(_d8.view,this,dc.footer2,false);
  776. if(_d8.view.onAfterRender){
  777. _d8.view.onAfterRender.call(_d8.view,this);
  778. }
  779. $(this).treegrid("fixRowHeight");
  780. }
  781. });
  782. },getData:function(jq){
  783. return $.data(jq[0],"treegrid").data;
  784. },getFooterRows:function(jq){
  785. return $.data(jq[0],"treegrid").footer;
  786. },getRoot:function(jq){
  787. return _6e(jq[0]);
  788. },getRoots:function(jq){
  789. return _71(jq[0]);
  790. },getParent:function(jq,id){
  791. return _46(jq[0],id);
  792. },getChildren:function(jq,id){
  793. return _1b(jq[0],id);
  794. },getLevel:function(jq,id){
  795. return _7b(jq[0],id);
  796. },find:function(jq,id){
  797. return _37(jq[0],id);
  798. },isLeaf:function(jq,id){
  799. var _d9=$.data(jq[0],"treegrid").options;
  800. var tr=_d9.finder.getTr(jq[0],id);
  801. var hit=tr.find("span.tree-hit");
  802. return hit.length==0;
  803. },select:function(jq,id){
  804. return jq.each(function(){
  805. $(this).datagrid("selectRow",id);
  806. });
  807. },unselect:function(jq,id){
  808. return jq.each(function(){
  809. $(this).datagrid("unselectRow",id);
  810. });
  811. },collapse:function(jq,id){
  812. return jq.each(function(){
  813. _86(this,id);
  814. });
  815. },expand:function(jq,id){
  816. return jq.each(function(){
  817. _8a(this,id);
  818. });
  819. },toggle:function(jq,id){
  820. return jq.each(function(){
  821. _28(this,id);
  822. });
  823. },collapseAll:function(jq,id){
  824. return jq.each(function(){
  825. _94(this,id);
  826. });
  827. },expandAll:function(jq,id){
  828. return jq.each(function(){
  829. _99(this,id);
  830. });
  831. },expandTo:function(jq,id){
  832. return jq.each(function(){
  833. _9e(this,id);
  834. });
  835. },append:function(jq,_da){
  836. return jq.each(function(){
  837. _a2(this,_da);
  838. });
  839. },insert:function(jq,_db){
  840. return jq.each(function(){
  841. _a9(this,_db);
  842. });
  843. },remove:function(jq,id){
  844. return jq.each(function(){
  845. _b5(this,id);
  846. });
  847. },pop:function(jq,id){
  848. var row=jq.treegrid("find",id);
  849. jq.treegrid("remove",id);
  850. return row;
  851. },refresh:function(jq,id){
  852. return jq.each(function(){
  853. var _dc=$.data(this,"treegrid").options;
  854. _dc.view.refreshRow.call(_dc.view,this,id);
  855. });
  856. },update:function(jq,_dd){
  857. return jq.each(function(){
  858. var _de=$.data(this,"treegrid").options;
  859. var row=_dd.row;
  860. _de.view.updateRow.call(_de.view,this,_dd.id,row);
  861. if(row.checked!=undefined){
  862. row=_37(this,_dd.id);
  863. $.extend(row,{checkState:row.checked?"checked":(row.checked===false?"unchecked":undefined)});
  864. _49(this,_dd.id);
  865. }
  866. });
  867. },beginEdit:function(jq,id){
  868. return jq.each(function(){
  869. $(this).datagrid("beginEdit",id);
  870. $(this).treegrid("fixRowHeight",id);
  871. });
  872. },endEdit:function(jq,id){
  873. return jq.each(function(){
  874. $(this).datagrid("endEdit",id);
  875. });
  876. },cancelEdit:function(jq,id){
  877. return jq.each(function(){
  878. $(this).datagrid("cancelEdit",id);
  879. });
  880. },showLines:function(jq){
  881. return jq.each(function(){
  882. _bb(this);
  883. });
  884. },setSelectionState:function(jq){
  885. return jq.each(function(){
  886. $(this).datagrid("setSelectionState");
  887. var _df=$(this).data("treegrid");
  888. for(var i=0;i<_df.tmpIds.length;i++){
  889. _29(this,_df.tmpIds[i],true,true);
  890. }
  891. _df.tmpIds=[];
  892. });
  893. },getCheckedNodes:function(jq,_e0){
  894. _e0=_e0||"checked";
  895. var _e1=[];
  896. $.easyui.forEach(jq.data("treegrid").checkedRows,false,function(row){
  897. if(row.checkState==_e0){
  898. _e1.push(row);
  899. }
  900. });
  901. return _e1;
  902. },checkNode:function(jq,id){
  903. return jq.each(function(){
  904. _29(this,id,true);
  905. });
  906. },uncheckNode:function(jq,id){
  907. return jq.each(function(){
  908. _29(this,id,false);
  909. });
  910. },clearChecked:function(jq){
  911. return jq.each(function(){
  912. var _e2=this;
  913. var _e3=$(_e2).treegrid("options");
  914. $(_e2).datagrid("clearChecked");
  915. $.map($(_e2).treegrid("getCheckedNodes"),function(row){
  916. _29(_e2,row[_e3.idField],false,true);
  917. });
  918. });
  919. }};
  920. $.fn.treegrid.parseOptions=function(_e4){
  921. return $.extend({},$.fn.datagrid.parseOptions(_e4),$.parser.parseOptions(_e4,["treeField",{checkbox:"boolean",cascadeCheck:"boolean",onlyLeafCheck:"boolean"},{animate:"boolean"}]));
  922. };
  923. var _e5=$.extend({},$.fn.datagrid.defaults.view,{render:function(_e6,_e7,_e8){
  924. var _e9=$.data(_e6,"treegrid").options;
  925. var _ea=$(_e6).datagrid("getColumnFields",_e8);
  926. var _eb=$.data(_e6,"datagrid").rowIdPrefix;
  927. if(_e8){
  928. if(!(_e9.rownumbers||(_e9.frozenColumns&&_e9.frozenColumns.length))){
  929. return;
  930. }
  931. }
  932. var _ec=this;
  933. if(this.treeNodes&&this.treeNodes.length){
  934. var _ed=_ee.call(this,_e8,this.treeLevel,this.treeNodes);
  935. $(_e7).append(_ed.join(""));
  936. }
  937. function _ee(_ef,_f0,_f1){
  938. var _f2=$(_e6).treegrid("getParent",_f1[0][_e9.idField]);
  939. var _f3=(_f2?_f2.children.length:$(_e6).treegrid("getRoots").length)-_f1.length;
  940. var _f4=["<table class=\"datagrid-btable\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tbody>"];
  941. for(var i=0;i<_f1.length;i++){
  942. var row=_f1[i];
  943. if(row.state!="open"&&row.state!="closed"){
  944. row.state="open";
  945. }
  946. var css=_e9.rowStyler?_e9.rowStyler.call(_e6,row):"";
  947. var cs=this.getStyleValue(css);
  948. var cls="class=\"datagrid-row "+(_f3++%2&&_e9.striped?"datagrid-row-alt ":" ")+cs.c+"\"";
  949. var _f5=cs.s?"style=\""+cs.s+"\"":"";
  950. var _f6=_eb+"-"+(_ef?1:2)+"-"+row[_e9.idField];
  951. _f4.push("<tr id=\""+_f6+"\" node-id=\""+row[_e9.idField]+"\" "+cls+" "+_f5+">");
  952. _f4=_f4.concat(_ec.renderRow.call(_ec,_e6,_ea,_ef,_f0,row));
  953. _f4.push("</tr>");
  954. if(row.children&&row.children.length){
  955. var tt=_ee.call(this,_ef,_f0+1,row.children);
  956. var v=row.state=="closed"?"none":"block";
  957. _f4.push("<tr class=\"treegrid-tr-tree\"><td style=\"border:0px\" colspan="+(_ea.length+(_e9.rownumbers?1:0))+"><div style=\"display:"+v+"\">");
  958. _f4=_f4.concat(tt);
  959. _f4.push("</div></td></tr>");
  960. }
  961. }
  962. _f4.push("</tbody></table>");
  963. return _f4;
  964. };
  965. },renderFooter:function(_f7,_f8,_f9){
  966. var _fa=$.data(_f7,"treegrid").options;
  967. var _fb=$.data(_f7,"treegrid").footer||[];
  968. var _fc=$(_f7).datagrid("getColumnFields",_f9);
  969. var _fd=["<table class=\"datagrid-ftable\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tbody>"];
  970. for(var i=0;i<_fb.length;i++){
  971. var row=_fb[i];
  972. row[_fa.idField]=row[_fa.idField]||("foot-row-id"+i);
  973. _fd.push("<tr class=\"datagrid-row\" node-id=\""+row[_fa.idField]+"\">");
  974. _fd.push(this.renderRow.call(this,_f7,_fc,_f9,0,row));
  975. _fd.push("</tr>");
  976. }
  977. _fd.push("</tbody></table>");
  978. $(_f8).html(_fd.join(""));
  979. },renderRow:function(_fe,_ff,_100,_101,row){
  980. var _102=$.data(_fe,"treegrid");
  981. var opts=_102.options;
  982. var cc=[];
  983. if(_100&&opts.rownumbers){
  984. cc.push("<td class=\"datagrid-td-rownumber\"><div class=\"datagrid-cell-rownumber\">0</div></td>");
  985. }
  986. for(var i=0;i<_ff.length;i++){
  987. var _103=_ff[i];
  988. var col=$(_fe).datagrid("getColumnOption",_103);
  989. if(col){
  990. var css=col.styler?(col.styler(row[_103],row)||""):"";
  991. var cs=this.getStyleValue(css);
  992. var cls=cs.c?"class=\""+cs.c+"\"":"";
  993. var _104=col.hidden?"style=\"display:none;"+cs.s+"\"":(cs.s?"style=\""+cs.s+"\"":"");
  994. cc.push("<td field=\""+_103+"\" "+cls+" "+_104+">");
  995. var _104="";
  996. if(!col.checkbox){
  997. if(col.align){
  998. _104+="text-align:"+col.align+";";
  999. }
  1000. if(!opts.nowrap){
  1001. _104+="white-space:normal;height:auto;";
  1002. }else{
  1003. if(opts.autoRowHeight){
  1004. _104+="height:auto;";
  1005. }
  1006. }
  1007. }
  1008. cc.push("<div style=\""+_104+"\" ");
  1009. if(col.checkbox){
  1010. cc.push("class=\"datagrid-cell-check ");
  1011. }else{
  1012. cc.push("class=\"datagrid-cell "+col.cellClass);
  1013. }
  1014. if(_103==opts.treeField){
  1015. cc.push(" tree-node");
  1016. }
  1017. cc.push("\">");
  1018. if(col.checkbox){
  1019. if(row.checked){
  1020. cc.push("<input type=\"checkbox\" checked=\"checked\"");
  1021. }else{
  1022. cc.push("<input type=\"checkbox\"");
  1023. }
  1024. cc.push(" name=\""+_103+"\" value=\""+(row[_103]!=undefined?row[_103]:"")+"\">");
  1025. }else{
  1026. var val=null;
  1027. if(col.formatter){
  1028. val=col.formatter(row[_103],row);
  1029. }else{
  1030. val=row[_103];
  1031. }
  1032. if(_103==opts.treeField){
  1033. for(var j=0;j<_101;j++){
  1034. cc.push("<span class=\"tree-indent\"></span>");
  1035. }
  1036. if(row.state=="closed"){
  1037. cc.push("<span class=\"tree-hit tree-collapsed\"></span>");
  1038. cc.push("<span class=\"tree-icon tree-folder "+(row.iconCls?row.iconCls:"")+"\"></span>");
  1039. }else{
  1040. if(row.children&&row.children.length){
  1041. cc.push("<span class=\"tree-hit tree-expanded\"></span>");
  1042. cc.push("<span class=\"tree-icon tree-folder tree-folder-open "+(row.iconCls?row.iconCls:"")+"\"></span>");
  1043. }else{
  1044. cc.push("<span class=\"tree-indent\"></span>");
  1045. cc.push("<span class=\"tree-icon tree-file "+(row.iconCls?row.iconCls:"")+"\"></span>");
  1046. }
  1047. }
  1048. if(this.hasCheckbox(_fe,row)){
  1049. var flag=0;
  1050. var crow=$.easyui.getArrayItem(_102.checkedRows,opts.idField,row[opts.idField]);
  1051. if(crow){
  1052. flag=crow.checkState=="checked"?1:2;
  1053. row.checkState=crow.checkState;
  1054. row.checked=crow.checked;
  1055. $.easyui.addArrayItem(_102.checkedRows,opts.idField,row);
  1056. }else{
  1057. var prow=$.easyui.getArrayItem(_102.checkedRows,opts.idField,row._parentId);
  1058. if(prow&&prow.checkState=="checked"&&opts.cascadeCheck){
  1059. flag=1;
  1060. row.checked=true;
  1061. $.easyui.addArrayItem(_102.checkedRows,opts.idField,row);
  1062. }else{
  1063. if(row.checked){
  1064. $.easyui.addArrayItem(_102.tmpIds,row[opts.idField]);
  1065. }
  1066. }
  1067. row.checkState=flag?"checked":"unchecked";
  1068. }
  1069. cc.push("<span class=\"tree-checkbox tree-checkbox"+flag+"\"></span>");
  1070. }else{
  1071. row.checkState=undefined;
  1072. row.checked=undefined;
  1073. }
  1074. cc.push("<span class=\"tree-title\">"+val+"</span>");
  1075. }else{
  1076. cc.push(val);
  1077. }
  1078. }
  1079. cc.push("</div>");
  1080. cc.push("</td>");
  1081. }
  1082. }
  1083. return cc.join("");
  1084. },hasCheckbox:function(_105,row){
  1085. var opts=$.data(_105,"treegrid").options;
  1086. if(opts.checkbox){
  1087. if($.isFunction(opts.checkbox)){
  1088. if(opts.checkbox.call(_105,row)){
  1089. return true;
  1090. }else{
  1091. return false;
  1092. }
  1093. }else{
  1094. if(opts.onlyLeafCheck){
  1095. if(row.state=="open"&&!(row.children&&row.children.length)){
  1096. return true;
  1097. }
  1098. }else{
  1099. return true;
  1100. }
  1101. }
  1102. }
  1103. return false;
  1104. },refreshRow:function(_106,id){
  1105. this.updateRow.call(this,_106,id,{});
  1106. },updateRow:function(_107,id,row){
  1107. var opts=$.data(_107,"treegrid").options;
  1108. var _108=$(_107).treegrid("find",id);
  1109. $.extend(_108,row);
  1110. var _109=$(_107).treegrid("getLevel",id)-1;
  1111. var _10a=opts.rowStyler?opts.rowStyler.call(_107,_108):"";
  1112. var _10b=$.data(_107,"datagrid").rowIdPrefix;
  1113. var _10c=_108[opts.idField];
  1114. function _10d(_10e){
  1115. var _10f=$(_107).treegrid("getColumnFields",_10e);
  1116. var tr=opts.finder.getTr(_107,id,"body",(_10e?1:2));
  1117. var _110=tr.find("div.datagrid-cell-rownumber").html();
  1118. var _111=tr.find("div.datagrid-cell-check input[type=checkbox]").is(":checked");
  1119. tr.html(this.renderRow(_107,_10f,_10e,_109,_108));
  1120. tr.attr("style",_10a||"");
  1121. tr.find("div.datagrid-cell-rownumber").html(_110);
  1122. if(_111){
  1123. tr.find("div.datagrid-cell-check input[type=checkbox]")._propAttr("checked",true);
  1124. }
  1125. if(_10c!=id){
  1126. tr.attr("id",_10b+"-"+(_10e?1:2)+"-"+_10c);
  1127. tr.attr("node-id",_10c);
  1128. }
  1129. };
  1130. _10d.call(this,true);
  1131. _10d.call(this,false);
  1132. $(_107).treegrid("fixRowHeight",id);
  1133. },deleteRow:function(_112,id){
  1134. var opts=$.data(_112,"treegrid").options;
  1135. var tr=opts.finder.getTr(_112,id);
  1136. tr.next("tr.treegrid-tr-tree").remove();
  1137. tr.remove();
  1138. var _113=del(id);
  1139. if(_113){
  1140. if(_113.children.length==0){
  1141. tr=opts.finder.getTr(_112,_113[opts.idField]);
  1142. tr.next("tr.treegrid-tr-tree").remove();
  1143. var cell=tr.children("td[field=\""+opts.treeField+"\"]").children("div.datagrid-cell");
  1144. cell.find(".tree-icon").removeClass("tree-folder").addClass("tree-file");
  1145. cell.find(".tree-hit").remove();
  1146. $("<span class=\"tree-indent\"></span>").prependTo(cell);
  1147. }
  1148. }
  1149. this.setEmptyMsg(_112);
  1150. function del(id){
  1151. var cc;
  1152. var _114=$(_112).treegrid("getParent",id);
  1153. if(_114){
  1154. cc=_114.children;
  1155. }else{
  1156. cc=$(_112).treegrid("getData");
  1157. }
  1158. for(var i=0;i<cc.length;i++){
  1159. if(cc[i][opts.idField]==id){
  1160. cc.splice(i,1);
  1161. break;
  1162. }
  1163. }
  1164. return _114;
  1165. };
  1166. },onBeforeRender:function(_115,_116,data){
  1167. if($.isArray(_116)){
  1168. data={total:_116.length,rows:_116};
  1169. _116=null;
  1170. }
  1171. if(!data){
  1172. return false;
  1173. }
  1174. var _117=$.data(_115,"treegrid");
  1175. var opts=_117.options;
  1176. if(data.length==undefined){
  1177. if(data.footer){
  1178. _117.footer=data.footer;
  1179. }
  1180. if(data.total){
  1181. _117.total=data.total;
  1182. }
  1183. data=this.transfer(_115,_116,data.rows);
  1184. }else{
  1185. function _118(_119,_11a){
  1186. for(var i=0;i<_119.length;i++){
  1187. var row=_119[i];
  1188. row._parentId=_11a;
  1189. if(row.children&&row.children.length){
  1190. _118(row.children,row[opts.idField]);
  1191. }
  1192. }
  1193. };
  1194. _118(data,_116);
  1195. }
  1196. this.sort(_115,data);
  1197. this.treeNodes=data;
  1198. this.treeLevel=$(_115).treegrid("getLevel",_116);
  1199. var node=_37(_115,_116);
  1200. if(node){
  1201. if(node.children){
  1202. node.children=node.children.concat(data);
  1203. }else{
  1204. node.children=data;
  1205. }
  1206. }else{
  1207. _117.data=_117.data.concat(data);
  1208. }
  1209. },sort:function(_11b,data){
  1210. var opts=$.data(_11b,"treegrid").options;
  1211. if(!opts.remoteSort&&opts.sortName){
  1212. var _11c=opts.sortName.split(",");
  1213. var _11d=opts.sortOrder.split(",");
  1214. _11e(data);
  1215. }
  1216. function _11e(rows){
  1217. rows.sort(function(r1,r2){
  1218. var r=0;
  1219. for(var i=0;i<_11c.length;i++){
  1220. var sn=_11c[i];
  1221. var so=_11d[i];
  1222. var col=$(_11b).treegrid("getColumnOption",sn);
  1223. var _11f=col.sorter||function(a,b){
  1224. return a==b?0:(a>b?1:-1);
  1225. };
  1226. r=_11f(r1[sn],r2[sn])*(so=="asc"?1:-1);
  1227. if(r!=0){
  1228. return r;
  1229. }
  1230. }
  1231. return r;
  1232. });
  1233. for(var i=0;i<rows.length;i++){
  1234. var _120=rows[i].children;
  1235. if(_120&&_120.length){
  1236. _11e(_120);
  1237. }
  1238. }
  1239. };
  1240. },transfer:function(_121,_122,data){
  1241. var opts=$.data(_121,"treegrid").options;
  1242. var rows=$.extend([],data);
  1243. var _123=_124(_122,rows);
  1244. var toDo=$.extend([],_123);
  1245. while(toDo.length){
  1246. var node=toDo.shift();
  1247. var _125=_124(node[opts.idField],rows);
  1248. if(_125.length){
  1249. if(node.children){
  1250. node.children=node.children.concat(_125);
  1251. }else{
  1252. node.children=_125;
  1253. }
  1254. toDo=toDo.concat(_125);
  1255. }
  1256. }
  1257. return _123;
  1258. function _124(_126,rows){
  1259. var rr=[];
  1260. for(var i=0;i<rows.length;i++){
  1261. var row=rows[i];
  1262. if(row._parentId==_126){
  1263. rr.push(row);
  1264. rows.splice(i,1);
  1265. i--;
  1266. }
  1267. }
  1268. return rr;
  1269. };
  1270. }});
  1271. $.fn.treegrid.defaults=$.extend({},$.fn.datagrid.defaults,{treeField:null,checkbox:false,cascadeCheck:true,onlyLeafCheck:false,lines:false,animate:false,singleSelect:true,view:_e5,rowEvents:$.extend({},$.fn.datagrid.defaults.rowEvents,{mouseover:_22(true),mouseout:_22(false),click:_24}),loader:function(_127,_128,_129){
  1272. var opts=$(this).treegrid("options");
  1273. if(!opts.url){
  1274. return false;
  1275. }
  1276. $.ajax({type:opts.method,url:opts.url,data:_127,dataType:"json",success:function(data){
  1277. _128(data);
  1278. },error:function(){
  1279. _129.apply(this,arguments);
  1280. }});
  1281. },loadFilter:function(data,_12a){
  1282. return data;
  1283. },finder:{getTr:function(_12b,id,type,_12c){
  1284. type=type||"body";
  1285. _12c=_12c||0;
  1286. var dc=$.data(_12b,"datagrid").dc;
  1287. if(_12c==0){
  1288. var opts=$.data(_12b,"treegrid").options;
  1289. var tr1=opts.finder.getTr(_12b,id,type,1);
  1290. var tr2=opts.finder.getTr(_12b,id,type,2);
  1291. return tr1.add(tr2);
  1292. }else{
  1293. if(type=="body"){
  1294. var tr=$("#"+$.data(_12b,"datagrid").rowIdPrefix+"-"+_12c+"-"+id);
  1295. if(!tr.length){
  1296. tr=(_12c==1?dc.body1:dc.body2).find("tr[node-id=\""+id+"\"]");
  1297. }
  1298. return tr;
  1299. }else{
  1300. if(type=="footer"){
  1301. return (_12c==1?dc.footer1:dc.footer2).find("tr[node-id=\""+id+"\"]");
  1302. }else{
  1303. if(type=="selected"){
  1304. return (_12c==1?dc.body1:dc.body2).find("tr.datagrid-row-selected");
  1305. }else{
  1306. if(type=="highlight"){
  1307. return (_12c==1?dc.body1:dc.body2).find("tr.datagrid-row-over");
  1308. }else{
  1309. if(type=="checked"){
  1310. return (_12c==1?dc.body1:dc.body2).find("tr.datagrid-row-checked");
  1311. }else{
  1312. if(type=="last"){
  1313. return (_12c==1?dc.body1:dc.body2).find("tr:last[node-id]");
  1314. }else{
  1315. if(type=="allbody"){
  1316. return (_12c==1?dc.body1:dc.body2).find("tr[node-id]");
  1317. }else{
  1318. if(type=="allfooter"){
  1319. return (_12c==1?dc.footer1:dc.footer2).find("tr[node-id]");
  1320. }
  1321. }
  1322. }
  1323. }
  1324. }
  1325. }
  1326. }
  1327. }
  1328. }
  1329. },getRow:function(_12d,p){
  1330. var id=(typeof p=="object")?p.attr("node-id"):p;
  1331. return $(_12d).treegrid("find",id);
  1332. },getRows:function(_12e){
  1333. return $(_12e).treegrid("getChildren");
  1334. }},onBeforeLoad:function(row,_12f){
  1335. },onLoadSuccess:function(row,data){
  1336. },onLoadError:function(){
  1337. },onBeforeCollapse:function(row){
  1338. },onCollapse:function(row){
  1339. },onBeforeExpand:function(row){
  1340. },onExpand:function(row){
  1341. },onClickRow:function(row){
  1342. },onDblClickRow:function(row){
  1343. },onClickCell:function(_130,row){
  1344. },onDblClickCell:function(_131,row){
  1345. },onContextMenu:function(e,row){
  1346. },onBeforeEdit:function(row){
  1347. },onAfterEdit:function(row,_132){
  1348. },onCancelEdit:function(row){
  1349. },onBeforeCheckNode:function(row,_133){
  1350. },onCheckNode:function(row,_134){
  1351. }});
  1352. })(jQuery);