TreePanel.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. Ext.define('erp.view.common.main.TreePanel',{
  2. extend: 'Ext.tree.Panel',
  3. alias: 'widget.erpTreePanel',
  4. id: 'tree-panel',
  5. region: 'west',
  6. width : '20%',
  7. margins : '0 0 -1 1',
  8. border : false,
  9. enableDD : false,
  10. split: true,
  11. title: $I18N.common.main.navigation,
  12. toggleCollapse: function() {
  13. if (this.collapsed) {
  14. this.expand(this.animCollapse);
  15. } else {
  16. this.title = $I18N.common.main.navigation;
  17. this.collapse(this.collapseDirection, this.animCollapse);
  18. }
  19. return this;
  20. },
  21. singleExpand: true,
  22. rootVisible: false,
  23. containerScroll : true,
  24. collapsible : true,
  25. autoScroll: false,
  26. useArrows: true,
  27. bodyStyle:'background-color:#f1f1f1;',
  28. store:'TreeStore',
  29. hideHeaders: true,
  30. columnLines:false,
  31. initComponent : function(){
  32. var me=this;
  33. me.columns =[{
  34. xtype: 'treecolumn',
  35. dataIndex: 'text',
  36. flex: 1
  37. },{
  38. xtype: 'actioncolumn',
  39. width: 24,
  40. //tooltip: '新增',
  41. icon: (window.basePath || '') + 'resource/images/tree/add2.png',
  42. iconCls: 'x-hidden',
  43. renderer :function(val, meta, record){
  44. meta.tdCls = record.get('cls');
  45. if(record.get('addurl')!=null)
  46. meta.tdAttr = record.get('leaf')?'data-qtip="新增'+record.get('text')+'"':'data-qtip="查看导航图"';
  47. },
  48. handler: Ext.bind(me.handleAddClick, me)
  49. }];
  50. this.getTreeRootNode(0);//页面加载时,只将parentId = 0的节点加载进来
  51. this.callParent(arguments);
  52. me.addEvents('addclick');
  53. },
  54. getTreeRootNode: function(parentId){
  55. var condition = this.baseCondition;
  56. Ext.Ajax.request({//拿到tree数据
  57. url : basePath + 'common/lazyTree.action',
  58. params: {
  59. parentId: parentId,
  60. condition: condition
  61. },
  62. callback : function(options,success,response){
  63. var res = new Ext.decode(response.responseText);
  64. if(res.tree){
  65. var tree = res.tree;
  66. Ext.getCmp('tree-panel').store.setRootNode({
  67. text: 'root',
  68. id: 'root',
  69. expanded: true,
  70. children: tree
  71. });
  72. } else if(res.exceptionInfo){
  73. showError(res.exceptionInfo);
  74. }
  75. }
  76. });
  77. },
  78. tbar:{
  79. xtype: 'erpTreeToolbar'
  80. },
  81. openCloseFun: function(){
  82. var o = Ext.getCmp("open");
  83. var c = Ext.getCmp("close");
  84. var tree = Ext.getCmp('tree-panel');
  85. if(o.hidden==false&&c.hidden==true){
  86. tree.expandAll();
  87. o.hide();
  88. c.show();
  89. }else{
  90. tree.collapseAll();
  91. o.show();
  92. c.hide();
  93. }
  94. },
  95. listeners: {//滚动条有时候没反应,添加此监听器
  96. scrollershow: function(scroller) {
  97. if (scroller && scroller.scrollEl) {
  98. scroller.clearManagedListeners();
  99. scroller.mon(scroller.scrollEl, 'scroll', scroller.onElScroll, scroller);
  100. }
  101. }
  102. },
  103. handleAddClick: function(gridView, rowIndex, colIndex, column, e) {
  104. this.fireEvent('addclick', gridView, rowIndex, colIndex, column, e);
  105. }
  106. });