* fix UI for show/hidden submenu item.

This commit is contained in:
Catouse
2018-06-25 17:34:51 +08:00
parent b4d7c681b3
commit c7fdbddfc0
2 changed files with 27 additions and 6 deletions
+3 -2
View File
@@ -9,6 +9,7 @@
#navbar .nav > li > a {padding: 10px 15px; border-radius: 3px;}
#mainMenu > .nav {display: inline-block;}
#menuEditor .nav > li > a {cursor: move;}
#menuEditor .nav > li > a .item-hidden-icon {display: none; margin-left: 3px;}
#menuEditor .nav > li.menu-hidden > a .item-hidden-icon {display: inline-block;}
#menuEditor li > a .item-hidden-icon {display: none; margin-left: 3px;}
#menuEditor .dropdown-menu > li > a .item-hidden-icon {margin-left: 10px;}
#menuEditor li.menu-hidden > a .item-hidden-icon {display: inline-block;}
#menuEditor .nav > li.menu-hidden > a {opacity: .7; border: 1px dashed #ddd; background: rgba(0,0,0,.1); margin: 0 2px;}
+24 -4
View File
@@ -49,12 +49,19 @@ $(function()
var $dropmenu = $a.find('.dropdown-menu').empty();
if ($dropmenu.length && item.subMenu)
{
$.each(item.subMenu, function(index, subItem)
$.each(item.subMenu, function(subIdx, subItem)
{
subItem.order = subIdx + 1;
var $subA = $('<a href="#"/>').append(subItem.text);
$subA.data('menu', subItem).append('<i class="item-hidden-icon icon icon-eye-off"></i>');
$('<li/>').attr('data-id', subItem.name).toggleClass('right', subItem.float === 'right').toggleClass('menu-hidden', !!subItem.hidden).append($subA).appendTo($dropmenu);
});
var $aInner = $a.children('a');
if ($aInner.length)
{
$aInner.replaceWith($('<span>' + $aInner.text() + ' <span class="caret"></span></span>'));
$a.addClass('dropdown-hover');
}
}
if(!$dropmenu.children().length) $dropmenu.remove();
});
@@ -116,13 +123,25 @@ $(function()
var formatMenuConfig = function(items)
{
return $.map(items, function(item)
var dataList = [];
$.each(items, function(idx, item)
{
var data = {name: item.name, order: parseInt(item.order)};
if(item.hidden) data.hidden = true;
if(item.float) data.float = item.float;
return data;
dataList.push(data);
if (item.subMenu)
{
$.each(item.subMenu, function(sIdx, subItem)
{
var subData = {name: subItem.name, order: parseInt(subItem.order)};
if(subItem.hidden) subData.hidden = true;
if(subItem.float) subData.float = subItem.float;
dataList.push(subData);
});
}
});
return dataList;
};
$menuEditor.on('mouseenter', '.nav > li:not(.drag-shadow) > a', function()
@@ -195,7 +214,7 @@ $(function()
}
}
}
}).on('click', '.nav>li>a,.dropdown-menu>li>a', function()
}).on('click', '.nav>li>a,.dropdown-menu>li>a', function(e)
{
var $a = $(this);
var item = $a.data('menu');
@@ -211,6 +230,7 @@ $(function()
}
$a.parent().toggleClass('menu-hidden', item.hidden);
updateConfig($menu);
e.stopPropagation();
});
$('#saveMenuBtn').click(function()