TabPanel.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. Ext.define('erp.view.common.sysinit.TabPanel',{
  2. extend: 'Ext.tab.Panel',
  3. alias: 'widget.sysTabPanel',
  4. id:'content-panel',
  5. region: 'center',
  6. defaults: {
  7. //autoScroll:true,
  8. //cls: 'my-panel'
  9. },
  10. activeTab: 0,
  11. border: false,
  12. animScroll:true,
  13. layoutOnTabChange : true,
  14. resizeTabs:true,
  15. enableTabScroll : true,
  16. deferredRender : false,
  17. items: [{
  18. xtype: 'panel',
  19. id: 'HomePage',
  20. title:'账套信息',
  21. /* iconCls : 'x-tree-icon-tab-main',*/
  22. closable: false,
  23. firstGrid:null,
  24. html : '<iframe id="iframe_homePage" src="' + basePath + 'jsps/common/syshome.jsp" height="100%" width="100%" frameborder="0" style="border-width: 0px;"></iframe>'
  25. }] ,
  26. plain: true,
  27. plugins:Ext.create('Ext.ux.TabCloseMenu', {
  28. extraItemsTail: [
  29. '-',
  30. {
  31. text: 'Closable',
  32. checked: true,
  33. hideOnClick: true,
  34. handler: function (item) {
  35. currentItem.tab.setClosable(item.checked);
  36. }
  37. },
  38. '-',
  39. {
  40. text: 'Enabled',
  41. checked: true,
  42. hideOnClick: true,
  43. handler: function(item) {
  44. currentItem.tab.setDisabled(!item.checked);
  45. }
  46. }
  47. ],
  48. listeners: {
  49. beforemenu: function (menu, item) {
  50. var enabled = menu.child('[text="Enabled"]');
  51. menu.child('[text="Closable"]').setChecked(item.closable);
  52. if (item.tab.active) {
  53. enabled.disable();
  54. } else {
  55. enabled.enable();
  56. enabled.setChecked(!item.tab.isDisabled());
  57. }
  58. currentItem = item;
  59. }
  60. }
  61. }),
  62. initComponent : function(){
  63. this.callParent(arguments);
  64. },
  65. listeners: {
  66. add: function(t, p) {
  67. t.lastActiveTab = t.activeTab;
  68. p.on('activate', function(){
  69. if(p.body) {
  70. var iframe = p.getEl().down('iframe').dom;
  71. var win = iframe.contentWindow;
  72. if(win == null || win.Ext === undefined) {
  73. return;
  74. }
  75. if(contains(iframe.src, 'common/datalist.jsp', false)) {//列表
  76. var grid = win.Ext.getCmp("grid");
  77. if(grid){
  78. grid.lastSelected = grid.selModel.getSelection();//记录当前选中的record
  79. grid.getColumnsAndStore();
  80. }
  81. } else if(contains(iframe.src, 'common/editDatalist.jsp', false)) {//列表
  82. var grid = win.Ext.getCmp("grid");
  83. if(grid){
  84. grid.lastSelected = grid.selModel.getSelection();//记录当前选中的record
  85. grid.getColumnsAndStore();
  86. }
  87. } else if(contains(iframe.src, 'common/batchDeal.jsp', false)) {//批量处理
  88. var form = win.Ext.getCmp("dealform");
  89. if(form){
  90. form.onQuery(true);
  91. }
  92. } else if(contains(iframe.src, 'common/query.jsp', false)) {//查询
  93. var form = win.Ext.getCmp("queryform");
  94. if(form){
  95. form.onQuery();
  96. }
  97. } else if(contains(iframe.src, 'common/jprocessDeal.jsp', false)) {//流程界面
  98. var iframe = win.Ext.get('iframe_maindetail');
  99. if(iframe){
  100. }
  101. } else {
  102. var form = win.Ext.getCmp("form");
  103. if(form) {
  104. var uu = form.uulistener, //active时刷新Header的uu连接
  105. tp = t.ownerCt.down('erpHeader');
  106. if(uu && uu.length > 0) {
  107. tp.refreshUU(p, form, uu);
  108. }
  109. }
  110. }
  111. }
  112. });
  113. },
  114. beforeremove: function(t, p) {
  115. if(p.body) {
  116. var iframe = p.getEl().down('iframe').dom;
  117. var win = iframe.contentWindow;
  118. if(win == null || win.Ext === undefined) {
  119. return;
  120. }
  121. var form = win.Ext.getCmp("form");
  122. if(form) {
  123. var uu = form.uulistener,
  124. tp = t.ownerCt.down('erpHeader');
  125. if(uu && uu.length > 0) {
  126. tp.removeUU(p);
  127. }
  128. }
  129. }
  130. if (t.lastActiveTab && t.lastActiveTab.id != p.id) {
  131. Ext.defer(function(){
  132. t.setActiveTab(t.lastActiveTab);
  133. }, 100);
  134. }
  135. }
  136. }
  137. });