',
'
',
'',
'',
''),
trackOver: true,
overItemCls: 'x-navitem-over',
selectedItemCls: 'x-navitem-selected',
singleSelect: true,
itemSelector: '.x-navitem',
listeners: {
itemmouseenter: function(navView, record, navItem, index, e, eOpts) {
window.clearTimeout(me.Timer);
me.Timer = setTimeout(function() {
me.showNavMenu(navView, record, navItem, index, e, eOpts);
}, 80);
},
itemmouseleave: function(view, record, item, index, e, eOpts) {
window.clearTimeout(me.Timer);
me.hideNavMenu(view, record, item, index, e, eOpts);
},
itemClick: function(navView, record, navItem, index, e, eOpts) {
window.clearTimeout(me.Timer);
me.Timer = setTimeout(function() {
me.showNavMenu(navView, record, navItem, index, e, eOpts);
}, 20);
},
scope: me
}
});
Ext.apply(me, {
items: [view]
});
me.view = view;
me.callParent();
},
// clickNavMenu: function (view, record, item, index, e, eOpts) {
// var me = this;
// this.showNavMenu(view, record, item, index, e, eOpts);
// },
showNavMenu: function (navView, record, navItem, index, e, eOpts) {
var me = this,
recData = record.data,
d = recData.items || [],
menuItems = JSON.parse( JSON.stringify( d ) ),
itemBox = navItem.getBoundingClientRect(),
pos = [itemBox.left + itemBox.width, itemBox.top],
id = recData.id,
menuId = 'navMenu-' + id,
menu = Ext.getCmp(menuId);
//获取b2b权限
var enableB2B = me.ownerCt.ownerCt.getViewModel().get('enableB2B');
if(enableB2B==null||enableB2B==0||enableB2B=='0'){
Ext.each(menuItems,function(item,index){
if(item.items.length>0){
var l = item.items.length;
for(var i = 0;i
'),
trackOver: true,
overItemCls: 'menuitem-over',
selectedItemCls: 'menuitem-selected',
singleSelect: true,
itemSelector: 'menu',
listeners: {
boxready: function (view, width, height, eOpts) {
var menu = view.up('menu'),
menuView = view.el.dom.getElementsByClassName('x-navitem-menu')[0],
menuBox = menuView.getBoundingClientRect(),
menuViewWidth = menuBox.width + me.menuPadding * 2,
menuViewHeight = menuBox.height + me.menuPadding * 2,
menuItem = menuView.getElementsByClassName('menuitem');
menu.setWidth(menuViewWidth);
menu.setHeight(menuViewHeight);
menu.updateLayout();
view.el.dom.addEventListener('mouseenter', function (e) {
menu.show();
menu.navItem.classList.add(menu.navView.overItemCls);
});
view.el.dom.addEventListener('mouseleave', function (e) {
menu.navItem.classList.remove(menu.navView.overItemCls);
menu.hide();
// var ex = e.clientX,
// ey = e.clientY,
// box = menuView.getBoundingClientRect(),
// navItem = menu.navItem,
// navBox = navItem.getBoundingClientRect();
// if ((ex <= box.left && (ey <= (navBox.top - 5) || ey >= (navBox.top + navBox.height))) || ey <= (box.top - 5) || ex >= (box.left + box.width + 5) || ey >= (box.top + box.height + 5)) {
// menu.navItem.classList.remove(menu.navView.overItemCls);
// menu.hide();
// }
});
Ext.Array.each(menuItem, function (mi) {
var menuItemText = mi.getElementsByClassName('item-text');
var menuItemIcon = mi.getElementsByClassName('item-icon');
Ext.Array.each(menuItemText, function (item) {
item.addEventListener('click', function (e) {
var target = e.target,
dataset = target.dataset,
viewType = dataset.viewtype,
type = dataset.type,
text = dataset.text,
config = dataset.config,
id = dataset.id;
var tabTitle = text,
tabId = 'maintab-' + type + '-' + id;
menu.navItem.classList.remove(menu.navView.overItemCls);
saas.util.BaseUtil.openTab(viewType, tabTitle, tabId,config);
menu.hide();
});
});
Ext.Array.each(menuItemIcon, function (item) {
item.addEventListener('click', function (e) {
var target = e.target,
dataset = target.dataset,
viewType = dataset.viewtype,
type = dataset.type,
text = dataset.text,
id = dataset.id;
var tabTitle ='新增' + text,
tabId = viewType + '-add';
menu.navItem.classList.remove(menu.navView.overItemCls);
saas.util.BaseUtil.openTab(viewType, tabTitle, tabId);
menu.hide();
});
});
});
},
}
});
var menu = Ext.create('Ext.menu.Menu', {
navView: navView,
navItem: navItem,
id: menuId,
width: window.innerWidth,
cls: 'x-nav-menu',
layout: 'fit',
shadow: 'drop',
bodyPadding: me.menuPadding,
items: [view]
});
}
menu.showAt(pos);
},
hideNavMenu: function (view, record, item, index, e, eOpts) {
var recData = record.data,
id = recData.id,
menuId = 'navMenu-' + id,
menu = Ext.getCmp(menuId),
cx, cy, itemBox;
if (menu) {
cx = e.browserEvent.clientX,
cy = e.browserEvent.clientY,
itemBox = item.getBoundingClientRect();
if (cx <= itemBox.left || cy <= itemBox.top || (cy >= (itemBox.top + itemBox.height) && cx <= (itemBox.left + itemBox.width - 10))) {
menu.hide();
}
}
}
});