refactor(tab): 优化标签页管理和首页加载逻辑

- 移除首页菜单的关闭按钮,防止意外关闭首页标签
- 重构标签页创建流程,分离iframe和标签的添加逻辑
- 调整标签页激活后的滚动定位时机
- 清理模板中的多余注释和无用代码
- 统一国际化字符串,移除中文硬编码
- 简化首页iframe的初始渲染逻辑
3.4.0-release
xuxueli 2 months ago
parent 6d1fc0a12e
commit 044ed7c4e3

@ -120,6 +120,8 @@
let $firstMenuItem = $(".J_menuItem:first");
if ($firstMenuItem.length > 0) {
$firstMenuItem.click();
// 首页菜单特殊逻辑,不允许关闭
$('.J_menuTab[data-id="' + $firstMenuItem.attr('href') + '"] i').remove();
}
// 2、URL匹配到菜单初始化
@ -188,14 +190,20 @@
return false;
}
// 3、Tab不存在创新新Tab
// 3、Tab不存在初始化新Tab + IFrame
// build Tab (other tab no-active)
$('.J_menuTab').removeClass('active');
var tabStr = '<a href="javascript:;" class="active J_menuTab" data-id="' + tabSrc + '" title="'+ tabName +'" >' + tabNameShow + ' <i class="fa fa-times-circle"></i></a>';
// build IFrame (other ifame hide)
var iframeStr = '<iframe class="J_iframe" width="100%" height="100%" src="' + tabSrc + '" frameborder="0" data-id="' + tabSrc + '" seamless></iframe>';
$('.J_mainContent').find('iframe.J_iframe').hide().parents('.J_mainContent').append(iframeStr);
// 4、添加Tab + IFrame
// append iframe
$('.J_mainContent').find('iframe.J_iframe').hide();
$('.J_mainContent').append(iframeStr);
// append tab
$('.J_menuTabs .page-tabs-content').append(tabStr);
// 添加遮罩层
NProgress.inc(0.2);
@ -216,8 +224,7 @@
console.error('iframe load error, src = ' + $(this).attr('src'));
});
// 添加Tab切换Tab
$('.J_menuTabs .page-tabs-content').append(tabStr);
// 5、滚动到已激活的Tab
scrollToTab($('.J_menuTab.active'));
return false;
}

@ -49,8 +49,8 @@
<a href="javascript:" style="height: 30px;padding: 3px 25px;color: #777;" ><i class="fa fa-sign-out"></i> ${I18n.logout_btn}</a>
</li>
</ul>
</li>
</li>
</ul>
</div>
@ -72,7 +72,7 @@
<#macro renderMenu resourceList >
<#list resourceList as resource>
<#if resource.type ==0>
<#-- catalog -->
<#-- catalog -->
<li class="treeview" style="height: auto;" >
<a href="javascript:void(0);">
<i class="fa ${resource.icon}"></i>
@ -88,13 +88,7 @@
</ul>
</li>
<#elseif resource.type ==1>
<#-- mainMenu -->
<#if !(mainMenu?exists) >
<#assign mainMenu = resource />
<#elseif resource.order lt mainMenu.order >
<#assign mainMenu = resource />
</#if>
<#-- menu -->
<#-- menu -->
<li class="nav-click">
<#-- url -->
<#assign resourceUrl = request.contextPath + resource.url />
@ -125,10 +119,8 @@
<!-- Tab -->
<nav class="page-tabs J_menuTabs">
<div class="page-tabs-content">
<#-- mainPage -->
<#if mainMenu?exists >
<a href="javascript:;" class="active J_menuTab noactive" data-id="${request.contextPath}${mainMenu.url}">${mainMenu.name}</a>
</#if>
<#-- Tab content -->
<#-- <a href="javascript:;" class="active J_menuTab" data-id="' + tabSrc + '" title="'+ tabName +'" >' + tabNameShow + ' <i class="fa fa-times-circle"></i></a> -->
</div>
</nav>
@ -150,8 +142,8 @@
</div>
<!-- Iframe Content -->
<div class="J_mainContent" id="content-main" >
<!-- Iframe -->
<iframe class="J_iframe" width="100%" height="100%" src="${request.contextPath}${mainMenu.url}" frameborder="0" data-id="${request.contextPath}${mainMenu.url}" seamless></iframe>
<!-- Iframe content -->
<#-- <iframe class="J_iframe" width="100%" height="100%" src="' + tabSrc + '" frameborder="0" data-id="' + tabSrc + '" seamless></iframe> -->
</div>
</div>

Loading…
Cancel
Save