EmpTree2.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. Ext.define('erp.view.hr.attendance.EmpTree2',{
  2. extend: 'Ext.tree.Panel',
  3. alias: 'widget.EmpTree2',
  4. id: 'tree-panel',
  5. border : false,
  6. enableDD : false,
  7. split: true,
  8. width : '100%',
  9. height: '100%',
  10. expandedNodes: [],
  11. title: "<font color=#a1a1a1; size=2>人员列表</font>",
  12. toggleCollapse: function() {
  13. if (this.collapsed) {
  14. this.expand(this.animCollapse);
  15. } else {
  16. this.title = '班次查询';
  17. this.collapse(this.collapseDirection, this.animCollapse);
  18. }
  19. return this;
  20. },
  21. rootVisible: false,
  22. // singleExpand: true,
  23. animate: true,
  24. containerScroll : true,
  25. collapsible : true,
  26. autoScroll: true,
  27. useArrows: true,
  28. store: Ext.create('Ext.data.TreeStore', {
  29. root : {
  30. text: 'root',
  31. id: 'root',
  32. expanded: true
  33. }
  34. }),
  35. // dockedItems: [{
  36. // id : 'toolbar',
  37. // xtype: 'erpEmpToolbar3',
  38. // dock: 'right',
  39. // displayInfo: true
  40. // }],
  41. bodyStyle:'background-color:#f1f1f1;',
  42. initComponent : function(){
  43. this.getTreeRootNode(0);
  44. this.callParent(arguments);
  45. },
  46. getTreeRootNode: function(parentid){
  47. Ext.Ajax.request({//拿到tree数据
  48. url : basePath + 'hr/attendance/getAllHrOrgsTreeWDM.action',
  49. params: {
  50. caller:caller
  51. //parentid: parentid
  52. },
  53. callback : function(options,success,response){
  54. var res = new Ext.decode(response.responseText);
  55. console.log(res);
  56. if(res.tree){
  57. var tree = res.tree;
  58. // console.log(Ext.getCmp('tree-panel'));
  59. // console.log(Ext.getCmp('tree-panel'));
  60. Ext.getCmp('tree-panel').store.setRootNode({
  61. text: 'root',
  62. id: 'root',
  63. expanded: true,
  64. children: tree
  65. });
  66. } else if(res.exceptionInfo){
  67. showError(res.exceptionInfo);
  68. }
  69. Ext.getCmp('tree-panel').listenerNode();
  70. }
  71. });
  72. },
  73. listenerNode: function(node){
  74. var me = this;
  75. var Node = node || Ext.getCmp('tree-panel').store.tree.root;
  76. Ext.each(Node,function(e){
  77. e.on('beforecollapse',function(p,o){
  78. });
  79. if(e.data['leaf'] == false){
  80. me.listenerNode(e);
  81. }
  82. });
  83. },
  84. openCloseFun: function(){
  85. var o = Ext.getCmp("open");
  86. var c = Ext.getCmp("close");
  87. var tree = Ext.getCmp('tree-panel');
  88. if(o.hidden==false&&c.hidden==true){
  89. tree.expandAll();
  90. o.hide();
  91. c.show();
  92. }else{
  93. tree.collapseAll();
  94. o.show();
  95. c.hide();
  96. }
  97. },
  98. listeners: {//滚动条有时候没反应,添加此监听器
  99. scrollershow: function(scroller) {
  100. if (scroller && scroller.scrollEl) {
  101. scroller.clearManagedListeners();
  102. scroller.mon(scroller.scrollEl, 'scroll', scroller.onElScroll, scroller);
  103. }
  104. },
  105. checkchange:function(){
  106. // console.log(arguments);
  107. }
  108. },
  109. /**
  110. * 找到所有已展开的节点,包括当前被选中的节点
  111. * @param record 当前被选中的节点
  112. */
  113. getExpandedItems: function(record){
  114. console.log(arguments);
  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. /**
  139. * 取树已经展开的节点
  140. * @param root
  141. * @param nodeArray
  142. * @returns
  143. */
  144. getExpandItem: function(root,nodeArray){
  145. var me = this;
  146. if(!root){
  147. root = this.store.tree.root;
  148. nodeArray = new Array();
  149. }
  150. if(root.childNodes.length > 0){
  151. Ext.each(root.childNodes,function(){
  152. if(this.childNodes.length > 0 ){
  153. nodeArray = me.getExpandItem(this,nodeArray);
  154. }
  155. if(this.isExpanded()){
  156. nodeArray.push(this);
  157. }
  158. });
  159. }
  160. return nodeArray;
  161. }
  162. /* getExpandItem: function(root){
  163. var me = this;
  164. if(!root){
  165. root = this.store.tree.root;
  166. }
  167. var node = null;
  168. if(root.childNodes.length > 0){
  169. Ext.each(root.childNodes, function(){
  170. if(this.isExpanded()){
  171. node = this;
  172. if(this.childNodes.length > 0){
  173. var n = me.getExpandItem(this);
  174. node = n == null ? node : n;
  175. }
  176. }
  177. });
  178. }
  179. console.log(node);
  180. return node;
  181. }*/
  182. });