|
|
@@ -81,117 +81,36 @@ Ext.define('school.view.main.Navigation', {
|
|
|
}),
|
|
|
tpl: new Ext.XTemplate('<div class="x-navitem-menu">',
|
|
|
'<div class="nav-menu-body">',
|
|
|
- '<tpl for=".">',
|
|
|
- '<div class="menu">',
|
|
|
- '<div class="menu-title">',
|
|
|
- '<span class="menu-title-text">{text}</span>',
|
|
|
- '</div>',
|
|
|
- '<div class="menu-content">',
|
|
|
- '<tpl for="items">',
|
|
|
- '<div class="menuitem">',
|
|
|
- '<div class="item-text" data-config="{config}" data-id="{id}" data-text="{text}" data-type="query" data-viewType="{viewType}" data-ctype="{ctype}">',
|
|
|
- '{text}',
|
|
|
+ '<div class="menu">',
|
|
|
+ '<div class="menu-content">',
|
|
|
+ '<tpl for=".">',
|
|
|
+ '<div class="menuitem">',
|
|
|
+ '<div class="item-text" data-text="{text}" data-viewType="{viewType}">',
|
|
|
+ '{text}',
|
|
|
+ '</div>',
|
|
|
+ '</div>',
|
|
|
+ '</tpl>',
|
|
|
'</div>',
|
|
|
- '<tpl if="{addType}">',
|
|
|
- '<div class="item-icon" data-id="{id}" data-text="{text}" data-type="form" data-viewType="{addType}">新增</div>',
|
|
|
- '</tpl>',
|
|
|
'</div>',
|
|
|
- '</tpl>',
|
|
|
- '</div>',
|
|
|
'</div>',
|
|
|
- '</tpl>',
|
|
|
- '</div>',
|
|
|
- '</div>'),
|
|
|
+ '</div>'),
|
|
|
trackOver: true,
|
|
|
overItemCls: 'menuitem-over',
|
|
|
selectedItemCls: 'menuitem-selected',
|
|
|
singleSelect: true,
|
|
|
- itemSelector: 'menu',
|
|
|
+ itemSelector: '.menuitem',
|
|
|
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,
|
|
|
- componentType = dataset.ctype || 'Tab';
|
|
|
-
|
|
|
- var tabTitle = text,
|
|
|
- tabId = 'maintab-' + type + '-' + id;
|
|
|
-
|
|
|
- menu.navItem.classList.remove(menu.navView.overItemCls);
|
|
|
- // smartschool.util.BaseUtil.openTab(viewType, tabTitle, tabId,config);
|
|
|
- school.util.BaseUtil['open' + componentType](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,
|
|
|
- componentType = dataset.ctype || 'Tab';
|
|
|
-
|
|
|
- var tabTitle ='新增' + text,
|
|
|
- tabId = viewType + '-add';
|
|
|
-
|
|
|
- menu.navItem.classList.remove(menu.navView.overItemCls);
|
|
|
- // smartschool.util.BaseUtil.openTab(viewType, tabTitle, tabId);
|
|
|
- school.util.BaseUtil['open' + componentType](viewType, tabTitle, tabId);
|
|
|
- menu.hide();
|
|
|
- });
|
|
|
- });
|
|
|
- });
|
|
|
+ boxready: function(view, width, height, eOpts) {
|
|
|
+ me.menuBoxReady(view, width, height, eOpts);
|
|
|
},
|
|
|
+ itemclick: me.menuItemClick
|
|
|
}
|
|
|
});
|
|
|
var menu = Ext.create('Ext.menu.Menu', {
|
|
|
navView: navView,
|
|
|
navItem: navItem,
|
|
|
id: menuId,
|
|
|
- width: window.innerWidth,
|
|
|
+ width: 200,
|
|
|
cls: 'x-nav-menu',
|
|
|
layout: 'fit',
|
|
|
shadow: 'drop',
|
|
|
@@ -216,5 +135,39 @@ Ext.define('school.view.main.Navigation', {
|
|
|
menu.hide();
|
|
|
}
|
|
|
}
|
|
|
+ },
|
|
|
+
|
|
|
+ menuBoxReady: function (view, width, height, eOpts) {
|
|
|
+ var me = this;
|
|
|
+ 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();
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ menuItemClick: function(view, record, item, index, e, eOpts) {
|
|
|
+ var viewType = record.get('view');
|
|
|
+ var tabTitle = record.get('text');
|
|
|
+ var tabId = record.get('id');
|
|
|
+ var config = record.get('config') || [];
|
|
|
+ var menu = view.up('menu');
|
|
|
+ school.util.BaseUtil.openTab(viewType, tabTitle, tabId, config);
|
|
|
+ menu.hide();
|
|
|
}
|
|
|
});
|