HrOrgStrTree.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. Ext.define('erp.view.common.TreepanelDbfind.HrOrgStrTree',{
  2. extend: 'Ext.tree.Panel',
  3. alias: 'widget.hrOrgStrDbfindTree',
  4. id: 'tree-panel',
  5. border : false,
  6. enableDD : false,
  7. split: true,
  8. width : '100%',
  9. height: '100%',
  10. singleExpand: true,
  11. expandedNodes: [],
  12. /*listeners:{
  13. selectionchange: function(view, record, item, index, e) {
  14. console.log(record);
  15. var value = record.data;
  16. }
  17. },*/
  18. toggleCollapse: function() {
  19. if (this.collapsed) {
  20. this.expand(this.animCollapse);
  21. } else {
  22. this.title = $I18N.common.main.navigation;
  23. this.collapse(this.collapseDirection, this.animCollapse);
  24. }
  25. return this;
  26. },
  27. rootVisible: false,
  28. containerScroll : true,
  29. autoScroll: false,
  30. useArrows: true,
  31. store: Ext.create('Ext.data.TreeStore', {
  32. root : {
  33. text: 'root',
  34. id: 'root',
  35. expanded: true
  36. }
  37. }),
  38. bodyStyle:'background-color:#f1f1f1;',
  39. initComponent : function(){
  40. this.getTreeRootNode(0);
  41. this.callParent(arguments);
  42. },
  43. getTreeRootNode: function(parentid){
  44. Ext.Ajax.request({//拿到tree数据
  45. url : basePath + 'hr/employee/getAllHrOrgsTree.action',
  46. params: {
  47. //parentid: parentid
  48. },
  49. callback : function(options,success,response){
  50. var res = new Ext.decode(response.responseText);
  51. if(res.tree){
  52. var tree = res.tree;
  53. //console.log(Ext.getCmp('tree-panel'));
  54. Ext.getCmp('tree-panel').store.setRootNode({
  55. text: 'root',
  56. id: 'root',
  57. expanded: true,
  58. children: tree
  59. });
  60. } else if(res.exceptionInfo){
  61. showError(res.exceptionInfo);
  62. }
  63. Ext.getCmp('tree-panel').listenerNode();
  64. }
  65. });
  66. },
  67. listenerNode: function(node){
  68. var me = this;
  69. var Node = node || Ext.getCmp('tree-panel').store.tree.root;
  70. Ext.each(Node,function(e){
  71. e.on('beforecollapse',function(p,o){
  72. });
  73. if(e.data['leaf'] == false){
  74. me.listenerNode(e);
  75. }
  76. });
  77. },
  78. openCloseFun: function(){
  79. var o = Ext.getCmp("open");
  80. var c = Ext.getCmp("close");
  81. var tree = Ext.getCmp('tree-panel');
  82. if(o.hidden==false&&c.hidden==true){
  83. tree.expandAll();
  84. o.hide();
  85. c.show();
  86. }else{
  87. tree.collapseAll();
  88. o.show();
  89. c.hide();
  90. }
  91. },
  92. listeners: {//滚动条有时候没反应,添加此监听器
  93. scrollershow: function(scroller) {
  94. if (scroller && scroller.scrollEl) {
  95. scroller.clearManagedListeners();
  96. scroller.mon(scroller.scrollEl, 'scroll',
  97. scroller.onElScroll, scroller);
  98. }
  99. },
  100. /*//单选
  101. checkchange: function(node,checked){
  102. var tree = Ext.getCmp('tree-panel');
  103. var checkedList=tree.getChecked();
  104. Ext.each(checkedList,function(tr,index){
  105. tr.set('checked',false);
  106. });
  107. node.set('checked',true);
  108. }*/
  109. },
  110. /**
  111. * 找到所有已展开的节点,包括当前被选中的节点
  112. * @param record 当前被选中的节点
  113. */
  114. getExpandedItems: function(record){
  115. var me = this;
  116. me.getRecordParents(record);
  117. if(record.isLeaf()){
  118. me.expandedNodes.push(record);
  119. }
  120. },
  121. getRecordParents: function(record, parent){
  122. var me = this;
  123. if(!parent){
  124. parent = me.store.tree.root;
  125. me.expandedNodes = [];
  126. }
  127. if(parent.childNodes.length > 0){
  128. Ext.each(parent.childNodes, function(){
  129. if(this.isExpanded()){
  130. me.expandedNodes.push(this);
  131. if(this.childNodes.length > 0){
  132. me.getRecordParents(record, this);
  133. }
  134. }
  135. });
  136. }
  137. },
  138. getExpandItem: function(root){
  139. var me = this;
  140. if(!root){
  141. root = this.store.tree.root;
  142. }
  143. var node = null;
  144. if(root.childNodes.length > 0){
  145. Ext.each(root.childNodes, function(){
  146. if(this.isExpanded()){
  147. node = this;
  148. if(this.childNodes.length > 0){
  149. var n = me.getExpandItem(this);
  150. node = n == null ? node : n;
  151. }
  152. }
  153. });
  154. }
  155. return node;
  156. }
  157. });