DocCaTreeGrid2.js 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. /**
  2. * ERP项目gridpanel样式5:documentCatalog专用treegrid
  3. */
  4. Ext.define('erp.view.core.grid.DocCaTreeGrid2',{
  5. extend: 'Ext.tree.Panel',
  6. alias: 'widget.erpDocCaTreeGrid2',
  7. BaseUtil: Ext.create('erp.util.BaseUtil'),
  8. region: 'south',
  9. layout : 'fit',
  10. id: 'treegrid',
  11. emptyText : $I18N.common.grid.emptyText,
  12. useArrows: true,
  13. rootVisible: false,
  14. singleExpand: true,
  15. expandedNodes: [],
  16. store: Ext.create('Ext.data.TreeStore', {
  17. fields: fields,
  18. root : {
  19. text: 'root',
  20. id: 'root',
  21. expanded: true
  22. }
  23. }),
  24. columns: columns,
  25. plugins: Ext.create('Ext.grid.plugin.CellEditing', {
  26. clicksToEdit: 1
  27. }),
  28. tbar: [
  29. // {
  30. // iconCls: 'tree-add',
  31. // text: '确定',
  32. // handler: function(){
  33. // var url = '';
  34. // Ext.each(Ext.getCmp('treegrid').expandedNodes, function(){
  35. // if(this.data['dc_isfile'] == 'F'){
  36. // url += '/' + this.data['qtip'];
  37. // }
  38. // });
  39. // trigger.setValue(url);
  40. // trigger.fireEvent('aftertrigger', trigger);
  41. // parent.Ext.getCmp('dbwin').close();
  42. // }
  43. // },
  44. {
  45. xtype: 'tbtext',
  46. height: "15",
  47. id: 'path',
  48. style: 'background: #C6d1c5'
  49. }],
  50. bodyStyle:'background-color:#f1f1f1;',
  51. initComponent : function(){
  52. Ext.override(Ext.data.AbstractStore,{
  53. indexOf: Ext.emptyFn
  54. });
  55. this.callParent(arguments);
  56. this.getTreeGridNode({parentId: 0});
  57. },
  58. listeners: {//滚动条有时候没反应,添加此监听器
  59. scrollershow: function(scroller) {
  60. if (scroller && scroller.scrollEl) {
  61. scroller.clearManagedListeners();
  62. scroller.mon(scroller.scrollEl, 'scroll', scroller.onElScroll, scroller);
  63. }
  64. }
  65. },
  66. getTreeGridNode: function(param){
  67. var me = this;
  68. var activeTab = me.getActiveTab();
  69. activeTab.setLoading(true);
  70. Ext.Ajax.request({//拿到tree数据
  71. url : basePath + 'common/lazyDocumentTree.action',
  72. params: param,
  73. callback : function(options,success,response){
  74. var res = new Ext.decode(response.responseText);
  75. activeTab.setLoading(false);
  76. if(res.tree){
  77. var tree = res.tree;
  78. Ext.each(tree, function(t){
  79. t.dc_id = t.id;
  80. t.dc_parentid = t.parentId;
  81. t.dc_displayname = t.text;
  82. t.dc_isfile = t.leaf ? 'T' : 'F';
  83. // t.dc_tabtitle = t.text;
  84. // t.dc_url = t.url;
  85. // t.dc_deleteable = t.deleteable ? 'T' : 'F';
  86. t.dc_updatetime = t.updatetime;
  87. // t.dc_filesize = t.filesize;
  88. t.dc_version = t.version;
  89. t.dc_creator = t.creator;
  90. t.dc_creator_id = t.creator_id;
  91. });
  92. me.store.setRootNode({
  93. text: 'root',
  94. id: 'root',
  95. expanded: true,
  96. children: tree
  97. });
  98. Ext.each(me.store.tree.root.childNodes, function(){
  99. this.dirty = false;
  100. });
  101. } else if(res.exceptionInfo){
  102. showError(res.exceptionInfo);
  103. }
  104. }
  105. });
  106. },
  107. getExpandItem: function(root){
  108. var me = this;
  109. if(!root){
  110. root = this.store.tree.root;
  111. }
  112. var node = null;
  113. if(root.childNodes.length > 0){
  114. Ext.each(root.childNodes, function(){
  115. if(this.isExpanded()){
  116. node = this;
  117. if(this.childNodes.length > 0){
  118. var n = me.getExpandItem(this);
  119. node = n == null ? node : n;
  120. }
  121. }
  122. });
  123. }
  124. return node;
  125. },
  126. // getExpandNode: function(root){
  127. // var treegrid = Ext.getCmp('treegrid');
  128. // var items = treegrid.selModel.selected.items;
  129. // var road = '';
  130. // Ext.each(items,function(){
  131. // road += this.data['dc_id'];
  132. // });
  133. // return road;
  134. // },
  135. getActiveTab: function(){
  136. var tab = null;
  137. if(Ext.getCmp("content-panel")){
  138. tab = Ext.getCmp("content-panel").getActiveTab();
  139. }
  140. if(!tab){
  141. var win = parent.Ext.ComponentQuery.query('window');
  142. if(win.length > 0){
  143. tab = win[win.length-1];
  144. }
  145. }
  146. if(!tab && parent.Ext.getCmp("content-panel"))
  147. tab = parent.Ext.getCmp("content-panel").getActiveTab();
  148. if(!tab && parent.parent.Ext.getCmp("content-panel"))
  149. tab = parent.parent.Ext.getCmp("content-panel").getActiveTab();
  150. return tab;
  151. },
  152. getExpandedItems: function(record){
  153. var me = this;
  154. me.getRecordParents();
  155. if(record.isExpanded() || record.data['leaf']){
  156. } else {
  157. me.expandedNodes.push(record);
  158. }
  159. },
  160. getRecordParents: function(parent){
  161. var me = this;
  162. if(!parent){
  163. parent = me.store.tree.root;
  164. me.expandedNodes = [];
  165. }
  166. if(parent.childNodes.length > 0){
  167. Ext.each(parent.childNodes, function(){
  168. if(this.isExpanded()){
  169. me.expandedNodes.push(this);
  170. if(this.childNodes.length > 0){
  171. me.getRecordParents(this);
  172. }
  173. }
  174. });
  175. }
  176. }
  177. });