From 52b9f43ea0e7908193b33229efd0dedb2f89c44b Mon Sep 17 00:00:00 2001 From: RuoYi Date: Wed, 27 Sep 2023 19:29:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9EisScrollToTop=E9=A1=B5?= =?UTF-8?q?=E7=AD=BE=E5=88=87=E6=8D=A2=E6=BB=9A=E5=8A=A8=E5=88=B0=E9=A1=B6?= =?UTF-8?q?=E9=83=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/static/ruoyi/index.js | 36 +++++++++++++------ .../main/resources/static/ruoyi/js/common.js | 20 ++++++++--- .../resources/templates/index-topnav.html | 2 ++ .../src/main/resources/templates/index.html | 2 ++ 4 files changed, 46 insertions(+), 14 deletions(-) diff --git a/ruoyi-admin/src/main/resources/static/ruoyi/index.js b/ruoyi-admin/src/main/resources/static/ruoyi/index.js index b78cd822..b7fb0003 100644 --- a/ruoyi-admin/src/main/resources/static/ruoyi/index.js +++ b/ruoyi-admin/src/main/resources/static/ruoyi/index.js @@ -72,8 +72,16 @@ $(window).bind("load resize", function() { } }); +function openToCurrentTab(obj) { + if (isScrollToTop) { + $(obj).show().siblings('.RuoYi_iframe').hide(); + } else { + $(obj).css({"visibility": "visible", "position": "static"}).siblings('.RuoYi_iframe').css({"visibility": "hidden", "position": "absolute"}); + } +} + function syncMenuTab(dataId) { - if(isLinkage) { + if (isLinkage) { var $dataObj = $('a[href$="' + decodeURI(dataId) + '"]'); if ($dataObj.attr("class") != null && !$dataObj.hasClass("noactive")) { $('.tab-pane li').removeClass("active"); @@ -157,7 +165,7 @@ $(function() { // 显示tab对应的内容区 $('.RuoYi_iframe').each(function() { if ($(this).data('id') == currentId) { - $(this).css({"visibility": "visible", "position": "static"}).siblings('.RuoYi_iframe').css({"visibility": "hidden", "position": "absolute"}); + openToCurrentTab(this); } }); $(element).addClass('active').siblings('.menuTab').removeClass('active'); @@ -289,7 +297,7 @@ $(function() { // 显示tab对应的内容区 $('.mainContent .RuoYi_iframe').each(function() { if ($(this).data('id') == dataUrl) { - $(this).css({"visibility": "visible", "position": "static"}).siblings('.RuoYi_iframe').css({"visibility": "hidden", "position": "absolute"}); + openToCurrentTab(this); return false; } }); @@ -308,8 +316,12 @@ $(function() { // 添加选项卡对应的iframe var str1 = ''; - $('.mainContent').find('iframe.RuoYi_iframe').css({"visibility": "hidden", "position": "absolute"}).parents('.mainContent').append(str1); - + if (isScrollToTop) { + $('.mainContent').find('iframe.RuoYi_iframe').hide().parents('.mainContent').append(str1); + } else { + $('.mainContent').find('iframe.RuoYi_iframe').css({"visibility": "hidden", "position": "absolute"}).parents('.mainContent').append(str1); + } + $.modal.loading("数据加载中,请稍候..."); $('.mainContent iframe:visible').on('load', function() { @@ -351,7 +363,7 @@ $(function() { $('.mainContent .RuoYi_iframe').each(function() { if ($(this).data('id') == activeId) { - $(this).css({"visibility": "visible", "position": "static"}).siblings('.RuoYi_iframe').css({"visibility": "hidden", "position": "absolute"}); + openToCurrentTab(this); return false; } }); @@ -379,7 +391,7 @@ $(function() { $(this).parents('.menuTab').prev('.menuTab:last').addClass('active'); $('.mainContent .RuoYi_iframe').each(function() { if ($(this).data('id') == activeId) { - $(this).css({"visibility": "visible", "position": "static"}).siblings('.RuoYi_iframe').css({"visibility": "hidden", "position": "absolute"}); + openToCurrentTab(this); return false; } }); @@ -399,7 +411,7 @@ $(function() { $('.menuTab[data-id="' + panelUrl + '"]').addClass('active').siblings('.menuTab').removeClass('active'); $('.mainContent .RuoYi_iframe').each(function() { if ($(this).data('id') == panelUrl) { - $(this).css({"visibility": "visible", "position": "static"}).siblings('.RuoYi_iframe').css({"visibility": "hidden", "position": "absolute"}); + openToCurrentTab(this); return false; } }); @@ -441,7 +453,7 @@ $(function() { // 显示tab对应的内容区 $('.mainContent .RuoYi_iframe').each(function() { if ($(this).data('id') == currentId) { - $(this).css({"visibility": "visible", "position": "static"}).siblings('.RuoYi_iframe').css({"visibility": "hidden", "position": "absolute"}); + openToCurrentTab(this); isRefresh = $.common.nullToDefault($(this).data('refresh'), false); return false; } @@ -493,7 +505,11 @@ $(function() { $(this).remove(); }); $('.page-tabs-content').children("[data-id]:first").each(function() { - $('.RuoYi_iframe[data-id="' + $(this).data('id') + '"]').css({"visibility": "visible", "position": "static"}); + if (isScrollToTop) { + $('.RuoYi_iframe[data-id="' + $(this).data('id') + '"]').show(); + } else { + $('.RuoYi_iframe[data-id="' + $(this).data('id') + '"]').css({"visibility": "visible", "position": "static"}); + } $(this).addClass("active"); }); $('.page-tabs-content').css("margin-left", "0"); diff --git a/ruoyi-admin/src/main/resources/static/ruoyi/js/common.js b/ruoyi-admin/src/main/resources/static/ruoyi/js/common.js index ee6830fc..f43d2b38 100644 --- a/ruoyi-admin/src/main/resources/static/ruoyi/js/common.js +++ b/ruoyi-admin/src/main/resources/static/ruoyi/js/common.js @@ -245,7 +245,7 @@ var closeItem = function(dataId){ $('.menuTab[data-id="' + panelUrl + '"]', topWindow).addClass('active').siblings('.menuTab').removeClass('active'); $('.mainContent .RuoYi_iframe', topWindow).each(function() { if ($(this).data('id') == panelUrl) { - $(this).css({"visibility": "visible", "position": "static"}).siblings('.RuoYi_iframe').css({"visibility": "hidden", "position": "absolute"}); + openToCurrentTab(this); return false; } }); @@ -269,13 +269,13 @@ function createMenuItem(dataUrl, menuName, isRefresh) { // 显示tab对应的内容区 $('.mainContent .RuoYi_iframe', topWindow).each(function() { if ($(this).data('id') == dataUrl) { - $(this).css({"visibility": "visible", "position": "static"}).siblings('.RuoYi_iframe').css({"visibility": "hidden", "position": "absolute"}); + openToCurrentTab(this); return false; } }); } if (isRefresh) { - refreshTab(); + refreshTab(); } flag = false; return false; @@ -288,7 +288,11 @@ function createMenuItem(dataUrl, menuName, isRefresh) { // 添加选项卡对应的iframe var str1 = ''; - $('.mainContent', topWindow).find('iframe.RuoYi_iframe').css({"visibility": "hidden", "position": "absolute"}).parents('.mainContent').append(str1); + if (parent.isScrollToTop) { + $('.mainContent', topWindow).find('iframe.RuoYi_iframe').hide().parents('.mainContent').append(str1); + } else { + $('.mainContent', topWindow).find('iframe.RuoYi_iframe').css({"visibility": "hidden", "position": "absolute"}).parents('.mainContent').append(str1); + } window.parent.$.modal.loading("数据加载中,请稍候..."); $('.mainContent iframe:visible', topWindow).on('load', function() { @@ -358,6 +362,14 @@ function activeWindow() { return $('.RuoYi_iframe[data-id="' + currentId + '"]', topWindow)[0].contentWindow; } +function openToCurrentTab(obj) { + if (parent.isScrollToTop) { + $(obj).show().siblings('.RuoYi_iframe').hide(); + } else { + $(obj).css({"visibility": "visible", "position": "static"}).siblings('.RuoYi_iframe').css({"visibility": "hidden", "position": "absolute"}); + } +} + /** 密码规则范围验证 */ function checkpwd(chrtype, password) { if (chrtype == 1) { diff --git a/ruoyi-admin/src/main/resources/templates/index-topnav.html b/ruoyi-admin/src/main/resources/templates/index-topnav.html index 8c764285..813ac278 100644 --- a/ruoyi-admin/src/main/resources/templates/index-topnav.html +++ b/ruoyi-admin/src/main/resources/templates/index-topnav.html @@ -336,6 +336,8 @@ var mode = "history"; var historyPath = storage.get("historyPath"); // 是否页签与菜单联动 var isLinkage = true; +//是否页签切换滚动到顶部 +var isScrollToTop = true; // 本地主题优先,未设置取系统配置 if($.common.isNotEmpty(skin)){ diff --git a/ruoyi-admin/src/main/resources/templates/index.html b/ruoyi-admin/src/main/resources/templates/index.html index ffd01a6b..7f72ea28 100644 --- a/ruoyi-admin/src/main/resources/templates/index.html +++ b/ruoyi-admin/src/main/resources/templates/index.html @@ -281,6 +281,8 @@ var mode = "history"; var historyPath = storage.get("historyPath"); // 是否页签与菜单联动 var isLinkage = true; +// 是否页签切换滚动到顶部 +var isScrollToTop = true; // 本地主题优先,未设置取系统配置 if($.common.isNotEmpty(skin)){