EmpTree1.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. Ext.define('erp.view.hr.attendance.EmpTree1',{
  2. extend: 'Ext.tree.Panel',
  3. alias: 'widget.EmpTree1',
  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: 'erpEmpWorkDateModel',
  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. if(res.tree){
  56. var tree = res.tree;
  57. // console.log(Ext.getCmp('tree-panel'));
  58. Ext.getCmp('tree-panel').store.setRootNode({
  59. text: 'root',
  60. id: 'root',
  61. expanded: true,
  62. children: tree
  63. });
  64. } else if(res.exceptionInfo){
  65. showError(res.exceptionInfo);
  66. }
  67. Ext.getCmp('tree-panel').listenerNode();
  68. }
  69. });
  70. },
  71. listenerNode: function(node){
  72. var me = this;
  73. var Node = node || Ext.getCmp('tree-panel').store.tree.root;
  74. Ext.each(Node,function(e){
  75. e.on('beforecollapse',function(p,o){
  76. });
  77. if(e.data['leaf'] == false){
  78. me.listenerNode(e);
  79. }
  80. });
  81. },
  82. openCloseFun: function(){
  83. var o = Ext.getCmp("open");
  84. var c = Ext.getCmp("close");
  85. var tree = Ext.getCmp('tree-panel');
  86. if(o.hidden==false&&c.hidden==true){
  87. tree.expandAll();
  88. o.hide();
  89. c.show();
  90. }else{
  91. tree.collapseAll();
  92. o.show();
  93. c.hide();
  94. }
  95. },
  96. listeners: {//滚动条有时候没反应,添加此监听器
  97. scrollershow: function(scroller) {
  98. if (scroller && scroller.scrollEl) {
  99. scroller.clearManagedListeners();
  100. scroller.mon(scroller.scrollEl, 'scroll', scroller.onElScroll, scroller);
  101. }
  102. },
  103. checkchange:function(){
  104. // console.log(arguments);
  105. }
  106. },
  107. /**
  108. * 找到所有已展开的节点,包括当前被选中的节点
  109. * @param record 当前被选中的节点
  110. */
  111. getExpandedItems: function(record){
  112. console.log(arguments);
  113. var me = this;
  114. me.getRecordParents(record);
  115. if(record.isLeaf()){
  116. me.expandedNodes.push(record);
  117. }
  118. },
  119. getRecordParents: function(record, parent){
  120. var me = this;
  121. if(!parent){
  122. parent = me.store.tree.root;
  123. me.expandedNodes = [];
  124. }
  125. if(parent.childNodes.length > 0){
  126. Ext.each(parent.childNodes, function(){
  127. if(this.isExpanded()){
  128. me.expandedNodes.push(this);
  129. if(this.childNodes.length > 0){
  130. me.getRecordParents(record, this);
  131. }
  132. }
  133. });
  134. }
  135. },
  136. /**
  137. * 取树已经展开的节点
  138. * @param root
  139. * @param nodeArray
  140. * @returns
  141. */
  142. getExpandItem: function(root,nodeArray){
  143. var me = this;
  144. if(!root){
  145. root = this.store.tree.root;
  146. nodeArray = new Array();
  147. }
  148. if(root.childNodes.length > 0){
  149. Ext.each(root.childNodes,function(){
  150. if(this.childNodes.length > 0 ){
  151. nodeArray = me.getExpandItem(this,nodeArray);
  152. }
  153. if(this.isExpanded()){
  154. nodeArray.push(this);
  155. }
  156. });
  157. }
  158. return nodeArray;
  159. }
  160. /* getExpandItem: function(root){
  161. var me = this;
  162. if(!root){
  163. root = this.store.tree.root;
  164. }
  165. var node = null;
  166. if(root.childNodes.length > 0){
  167. Ext.each(root.childNodes, function(){
  168. if(this.isExpanded()){
  169. node = this;
  170. if(this.childNodes.length > 0){
  171. var n = me.getExpandItem(this);
  172. node = n == null ? node : n;
  173. }
  174. }
  175. });
  176. }
  177. console.log(node);
  178. return node;
  179. }*/
  180. });