新增顶部菜单自动折叠到更多下拉菜单

This commit is contained in:
thinkgem
2022-05-17 12:02:00 +08:00
parent 13a38aea97
commit 6443d6b409
2 changed files with 17 additions and 111 deletions

View File

@@ -3,44 +3,7 @@
<div class="pull-left image">
<img data-href="${ctx}/sys/user/info" data-title="${text('个人中心')}" class="img-circle pointer"
src="${@user.getAvatarUrl().replaceFirst('/ctxPath', ctxPath)}">
<script>
$(function(){
if ($(window).width() <= 767){
$('body').append('<div class="btn btn-default full-screen-menu"><i class="fa fa-bars"></i></div>');
}
$('.full-screen-menu,.user-panel .img-circle').click(function(){
if (!$('.main-header').is(':hidden')){
$('.main-header').slideUp(100, function(){
if (($(window).width() > 767 && !$('body').hasClass('sidebar-collapse'))
|| $('body').hasClass('sidebar-open')){
$('[data-toggle="push-menu"]').click();
}
});
}else{
$('.main-header').slideDown(100, function(){
setTimeout(function(){
if (${@Global.getConfig('sys.index.sidebarStyle', '1') != '2'}){
$('[data-toggle="push-menu"]').click();
}
},100);
});
}
setTimeout(function(){
$('#tabpanel').tabPanel('resize');
},500);
});
$('#leftMenu').on('click', '.addTabPage', function (e) {
if ($(window).width() <= 767 && $('body').hasClass('sidebar-open')){
var href = $(this).data('href');
if (href != '' && href != 'blank'){
if ($(window).width() <= 767){
$('.full-screen-menu').click();
}
}
}
});
})
</script>
<script src="${ctxStatic}/modules/sys/leftMenu.js"></script>
</div>
<div class="pull-left info">
<p>${user.userName}</p>
@@ -69,8 +32,8 @@
<% if(@Global.getConfig('sys.index.menuStyle', '1') == '1'){ %>
<ul class="sidebar-menu">
<%
var p = {parentCode: '0'};
menu.tree(p); print(p.html);
var p = {parentCode: '0'};
menu.tree(p); print(p.html);
%>
</ul>
<% } %>

View File

@@ -21,78 +21,21 @@
</ul>
</div>
<% if(@Global.getConfig('sys.index.menuStyle', '1') == '2'){ %>
<div class="navbar-custom-menu pull-left">
<ul class="nav navbar-nav" id="topMenu">
<%
var p = {parentCode: '0', children: false};
menu.tree(p); print(p.html);
%>
<div class="navbar-custom-menu pull-left" id="topMenu">
<ul class="nav navbar-nav">
<li class="treeview dropdown" id="topMenuMore" style="position:relative;">
<a href="javascript:" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown">
<i class="fa fa-fw icon-options"></i></span>
</a>
<ul class="treeview-menu dropdown-menu" style="left:0;">
<%
var p = {parentCode: '0', children: false};
menu.tree(p); print(p.html);
%>
</ul>
</li>
</ul>
<script>
$(function(){
$('#topMenu').on('click', '.addTabPage', function (e) {
$('#topMenu li').removeClass('active');
$(this).closest('li').addClass('active');
var code = $(this).data("code");
js.cookie('currentMenuCode', code); // 保存当前菜单ID
if ($("#leftMenu-" + code).length > 0){
$("#leftMenu > ul").hide();
$("#leftMenu-" + code).show();
refreshSidebar(code);
}else{
js.ajaxSubmit('${ctx}/index/menuTree?parentCode=' + code
+ '&t=' + new Date().getTime(), function(data){
if (data && data.indexOf('"result":"login"') == -1){
$("#leftMenu > ul").hide();
$("#leftMenu").append(data);
// 如果是初次加载,则选中上次打开的菜单
if($('.sidebar-menu').length == 1){
$(window).trigger("hashchange");
}
refreshSidebar(code);
}else{
location = '${ctx}/login';
}
}, 'html');
}
});
var refreshSidebar = function(code){
if(js.trim($("#leftMenu-" + code).text()) == ''){
$('.main-sidebar,.logo small,.tabpanel_tab_content').hide();
$('.content-wrapper').css("cssText","margin-left:0!important;");
if (window.initMenu && $(window).width() <= 767 && $('body').hasClass('sidebar-open')){
$('[data-toggle="push-menu"]').click();
}
}else{
$('.main-sidebar,.logo small,.tabpanel_tab_content').show();
$('.content-wrapper').css('margin-left', '');
if (window.initMenu && $(window).width() <= 767 && !$('body').hasClass('sidebar-open')){
$('[data-toggle="push-menu"]').click();
}
var li = $("#leftMenu-" + code + " > li");
if (!li.hasClass('menu-open')){
li = li.eq(0).find('> a');
if (li.data('href') == 'blank'){
li.click();
}
}
}
$('#leftMenu').triggerHandler('initd');
window.initMenu = true;
$(window).resize();
}
// 激活存储的顶部当前菜单项
var currentMenuCode = js.cookie('currentMenuCode'), currentMenu;
if (currentMenuCode && currentMenuCode != ''){
currentMenu = $("#topMenu .addTabPage[data-code="+currentMenuCode+"]");
}
if (currentMenu && currentMenu.length > 0 && window.location.hash != ''){
currentMenu.click();
}else{
$("#topMenu .addTabPage:first").click();
}
});
</script>
<script src="${ctxStatic}/modules/sys/topMenu.js"></script>
</div>
<% } %>
</nav>