EmpTree3.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. Ext.define('erp.view.hr.attendance.EmpTree3', {
  2. extend : 'Ext.tree.Panel',
  3. alias : 'widget.EmpTree3',
  4. id : 'tree-panel',
  5. border : false,
  6. width : '100%',
  7. height : '100%',
  8. expandedNodes : [],
  9. title : "<font color=#a1a1a1; size=2>设置员工默认班次</font>",
  10. rootVisible : false,
  11. // singleExpand : false,
  12. animate : true,
  13. collapsible : true,
  14. autoScroll : false,
  15. useArrows : true,
  16. store : Ext.create('Ext.data.TreeStore', {
  17. root : {
  18. text : 'root',
  19. id : 'root',
  20. expanded : true
  21. }
  22. }),
  23. dockedItems: [{
  24. id : 'toolbar',
  25. xtype: 'erpEmpToolbar3',
  26. dock: 'right',
  27. displayInfo: true
  28. }],
  29. bodyStyle : 'background-color:#f1f1f1;',
  30. initComponent : function() {
  31. this.getTreeRootNode(0);
  32. this.callParent(arguments);
  33. },
  34. getTreeRootNode : function(parentid) {
  35. Ext.Ajax.request({// 拿到tree数据
  36. url : basePath + 'hr/attendance/getAllHrOrgsTreeWDM.action',
  37. params : {
  38. caller:caller
  39. },
  40. callback : function(options, success, response) {
  41. var res = new Ext.decode(response.responseText);
  42. if (res.tree) {
  43. var tree = res.tree;
  44. Ext.getCmp('tree-panel').store.setRootNode({
  45. text : 'root',
  46. id : 'root',
  47. expanded : true,
  48. children : tree
  49. });
  50. } else if (res.exceptionInfo) {
  51. showError(res.exceptionInfo);
  52. }
  53. Ext.getCmp('tree-panel').listenerNode();
  54. }
  55. });
  56. },
  57. listenerNode : function(node) {
  58. var me = this;
  59. var n = node || Ext.getCmp('tree-panel').store.tree.root;
  60. Ext.each(n, function(e) {
  61. e.on('beforecollapse', function(p, o) {
  62. });
  63. if (e.data['leaf'] == false) {
  64. me.listenerNode(e);
  65. }
  66. });
  67. },
  68. openCloseFun : function() {
  69. var o = Ext.getCmp("open");
  70. var c = Ext.getCmp("close");
  71. var tree = Ext.getCmp('tree-panel');
  72. if (o.hidden == false && c.hidden == true) {
  73. tree.expandAll();
  74. o.hide();
  75. c.show();
  76. } else {
  77. tree.collapseAll();
  78. o.show();
  79. c.hide();
  80. }
  81. },
  82. listeners : {// 滚动条有时候没反应,添加此监听器
  83. scrollershow : function(scroller) {
  84. if (scroller && scroller.scrollEl) {
  85. scroller.clearManagedListeners();
  86. scroller.mon(scroller.scrollEl, 'scroll', scroller.onElScroll, scroller);
  87. }
  88. }
  89. },
  90. /**
  91. * 找到所有已展开的节点,包括当前被选中的节点
  92. *
  93. * @param record
  94. * 当前被选中的节点
  95. */
  96. getExpandedItems : function(record) {
  97. var me = this;
  98. me.getRecordParents(record);
  99. if (record.isLeaf()) {
  100. me.expandedNodes.push(record);
  101. }
  102. },
  103. getRecordParents : function(record, parent) {
  104. var me = this;
  105. if (!parent) {
  106. parent = me.store.tree.root;
  107. me.expandedNodes = [];
  108. }
  109. if (parent.childNodes.length > 0) {
  110. Ext.each(parent.childNodes, function() {
  111. if (this.isExpanded()) {
  112. me.expandedNodes.push(this);
  113. if (this.childNodes.length > 0) {
  114. me.getRecordParents(record, this);
  115. }
  116. }
  117. });
  118. }
  119. }/*,
  120. getExpandItem : function(root) {
  121. var me = this;
  122. if (!root) {
  123. root = this.store.tree.root;
  124. }
  125. var node = null;
  126. if (root.childNodes.length > 0) {
  127. Ext.each(root.childNodes, function() {
  128. if (this.isExpanded()) {
  129. node = this;
  130. if (this.childNodes.length > 0) {
  131. var n = me.getExpandItem(this);
  132. node = n == null ? node : n;
  133. }
  134. }
  135. });
  136. }
  137. return node;
  138. }*/
  139. });