jquery.treegrid.js 33 KB

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