var currentItem;
Ext.define('Admin.view.main.MainTabView',{
extend: 'Ext.tab.Panel',
xtype: 'maintabview',
id: 'maintabview',
items: [],
plugins: Ext.create('Ext.ux.TabCloseMenu', {
closeTabText : '关闭当前',
closeOthersTabsText : '关闭其他',
closeAllTabsText : '关闭所有',
//addToHeader: '快捷菜单',
extraItemsHead : [
{
text: '快捷菜单',
handler : function(menu,item){
//alert("添加快捷菜单 "+ item.getId()+" "+item.getItemId()+" "+item.getXType());//+" "+item.getTitle());
// text#id形式
var textId = currentItem.getItemId();
var vs = textId.split("#");
var headerBar = Ext.getCmp("headerBar");
var geRenCenter,newItems = new Array();
var firstNode = null;
var isExist = false;
//不存在则添加
headerBar.items.each(function(value,index){
if(headerBar.items.length > 6 && index == headerBar.items.length-2){
firstNode = value;
//console.log(firstNode);
//firstNode.destroy();
}else if(value.text == vs[0]){
isExist = true;
}
});
//headerBar.suspendLayout = true;
if(firstNode)
firstNode.destroy();
if(!isExist){
var page = {
iconCls: vs[2],
cls: 'headerStyle',
text: vs[0],
id: vs[1],
tooltip: vs[0],
iconAlign: 'top',
handler: 'onHeaderMenuClick'
};
headerBar.insert(3,page);
//console.log("add a new item");
}
//headerBar.suspendLayout = false;
headerBar.updateLayout(true);
//将当前的快捷按钮LocalStorage存储
var itemsBak = [];
headerBar.items.each(function(value,index){
if(index > 2 && index < headerBar.items.length-1){
itemsBak.push({'iconCls':value.iconCls,'text':value.text,'id':value.id});
}
});
window.localStorage.setItem("headerBarValue",JSON.stringify(itemsBak));
console.log('快捷方式本地化存储: '+JSON.stringify(itemsBak));
}
}
],
extraItemsTail : ['-', {
text : '可关闭',
checked : true,
hideOnClick : true,
handler : function(item) {
currentItem.tab.setClosable(item.checked);
}
}],
listeners : {
aftermenu : function() {
//currentItem = null;
// var count=0;
// tabPanel.items.each(function(p){
if(!p.closable)
// count++;
// });
//
// if(count==0){
//
// document.getElementById('mapcontentframe').src=pathName+'/map/bin-debug/index.html';
// Ext.getCmp('mapContentPanel').show();
// Ext.getCmp('tabpanelContent').hide();
// }
},
beforemenu : function(menu, item) {
var menuitem = menu.child('*[text="可关闭"]');
currentItem = item;
menuitem.setChecked(item.closable);
}
}
})
});
【Extjs6】给tabpanel添加右键菜单
最新推荐文章于 2017-12-18 19:34:01 发布