DocCaTreeGrid2.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  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. // console.log(this);
  36. // if(this.data['dc_isfile'] == 'F'){
  37. // url += '/' + this.data['qtip'];
  38. // }
  39. // });
  40. // trigger.setValue(url);
  41. // trigger.fireEvent('aftertrigger', trigger);
  42. // parent.Ext.getCmp('dbwin').close();
  43. // }
  44. // },
  45. {
  46. xtype: 'tbtext',
  47. height: "15",
  48. id: 'path',
  49. style: 'background: #C6d1c5'
  50. }],
  51. bodyStyle:'background-color:#f1f1f1;',
  52. initComponent : function(){
  53. Ext.override(Ext.data.AbstractStore,{
  54. indexOf: Ext.emptyFn
  55. });
  56. // console.log(columns);
  57. this.callParent(arguments);
  58. this.getTreeGridNode({parentId: 0});
  59. },
  60. listeners: {//滚动条有时候没反应,添加此监听器
  61. scrollershow: function(scroller) {
  62. if (scroller && scroller.scrollEl) {
  63. scroller.clearManagedListeners();
  64. scroller.mon(scroller.scrollEl, 'scroll', scroller.onElScroll, scroller);
  65. }
  66. }
  67. },
  68. getTreeGridNode: function(param){
  69. var me = this;
  70. var activeTab = me.getActiveTab();
  71. activeTab.setLoading(true);
  72. Ext.Ajax.request({//拿到tree数据
  73. url : basePath + 'common/lazyDocumentTree.action',
  74. params: param,
  75. callback : function(options,success,response){
  76. var res = new Ext.decode(response.responseText);
  77. activeTab.setLoading(false);
  78. if(res.tree){
  79. var tree = res.tree;
  80. Ext.each(tree, function(t){
  81. t.dc_id = t.id;
  82. t.dc_parentid = t.parentId;
  83. t.dc_displayname = t.text;
  84. t.dc_isfile = t.leaf ? 'T' : 'F';
  85. // t.dc_tabtitle = t.text;
  86. // t.dc_url = t.url;
  87. // t.dc_deleteable = t.deleteable ? 'T' : 'F';
  88. t.dc_updatetime = t.updatetime;
  89. // t.dc_filesize = t.filesize;
  90. t.dc_version = t.version;
  91. t.dc_creator = t.creator;
  92. t.dc_creator_id = t.creator_id;
  93. });
  94. me.store.setRootNode({
  95. text: 'root',
  96. id: 'root',
  97. expanded: true,
  98. children: tree
  99. });
  100. Ext.each(me.store.tree.root.childNodes, function(){
  101. this.dirty = false;
  102. });
  103. } else if(res.exceptionInfo){
  104. showError(res.exceptionInfo);
  105. }
  106. }
  107. });
  108. },
  109. getExpandItem: function(root){
  110. var me = this;
  111. if(!root){
  112. root = this.store.tree.root;
  113. }
  114. var node = null;
  115. if(root.childNodes.length > 0){
  116. Ext.each(root.childNodes, function(){
  117. if(this.isExpanded()){
  118. node = this;
  119. if(this.childNodes.length > 0){
  120. var n = me.getExpandItem(this);
  121. node = n == null ? node : n;
  122. }
  123. }
  124. });
  125. }
  126. return node;
  127. },
  128. // getExpandNode: function(root){
  129. // var treegrid = Ext.getCmp('treegrid');
  130. // var items = treegrid.selModel.selected.items;
  131. // var road = '';
  132. // Ext.each(items,function(){
  133. //// console.log(items.length);
  134. // road += this.data['dc_id'];
  135. // });
  136. // return road;
  137. // },
  138. getActiveTab: function(){
  139. var tab = null;
  140. if(Ext.getCmp("content-panel")){
  141. tab = Ext.getCmp("content-panel").getActiveTab();
  142. }
  143. if(!tab){
  144. var win = parent.Ext.ComponentQuery.query('window');
  145. if(win.length > 0){
  146. tab = win[win.length-1];
  147. }
  148. }
  149. if(!tab && parent.Ext.getCmp("content-panel"))
  150. tab = parent.Ext.getCmp("content-panel").getActiveTab();
  151. if(!tab && parent.parent.Ext.getCmp("content-panel"))
  152. tab = parent.parent.Ext.getCmp("content-panel").getActiveTab();
  153. return tab;
  154. },
  155. getExpandedItems: function(record){
  156. var me = this;
  157. me.getRecordParents();
  158. if(record.isExpanded() || record.data['leaf']){
  159. } else {
  160. me.expandedNodes.push(record);
  161. }
  162. },
  163. getRecordParents: function(parent){
  164. var me = this;
  165. if(!parent){
  166. parent = me.store.tree.root;
  167. me.expandedNodes = [];
  168. }
  169. if(parent.childNodes.length > 0){
  170. Ext.each(parent.childNodes, function(){
  171. if(this.isExpanded()){
  172. me.expandedNodes.push(this);
  173. if(this.childNodes.length > 0){
  174. me.getRecordParents(this);
  175. }
  176. }
  177. });
  178. }
  179. }
  180. });