From 171c6cfca316d69d05dd68bb8180e4d8f38b3ef3 Mon Sep 17 00:00:00 2001 From: augushong Date: Sat, 23 Aug 2025 12:34:26 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=85=B3=E9=97=ADtab=E6=97=B6=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E8=BF=94=E5=9B=9E=E4=B8=8A=E4=B8=80=E4=B8=AA=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugs/lay-module/layuimini/miniTab.js | 50 ++++++++++++++++--- 1 file changed, 42 insertions(+), 8 deletions(-) diff --git a/public/static/plugs/lay-module/layuimini/miniTab.js b/public/static/plugs/lay-module/layuimini/miniTab.js index 38dd3e8..03cf06b 100644 --- a/public/static/plugs/lay-module/layuimini/miniTab.js +++ b/public/static/plugs/lay-module/layuimini/miniTab.js @@ -21,6 +21,7 @@ miniTab.listen(options); miniTab.listenRoll(); miniTab.listenSwitch(options); + miniTab.listenClose(options); miniTab.listenHash(options); }, @@ -203,7 +204,7 @@ } } } - + return menu; }, @@ -288,15 +289,13 @@ if (!checkTab) { if (!title) { - title = ua.getMenuTitleByTabId(tabId, tabId) + title = ua.getMenuTitleByTabId(tabId, tabId); } - console.log(prefixTitle); - - if(prefixTitle == 1) { + + if (prefixTitle == 1) { let prefixTabTitle = ua.getMenuTitleByTabId(ua.getCurrentPageId()); - console.log(prefixTabTitle); - - if(prefixTabTitle){ + + if (prefixTabTitle) { title = prefixTabTitle + '-' + title; } } @@ -339,6 +338,7 @@ var closeType = $(this).attr('layuimini-tab-close'); $('.layuimini-tab .layui-tab-title li').each(function () { var tabId = $(this).attr('lay-id'); + var id = $(this).attr('id'); var isCurrent = $(this).hasClass('layui-this'); if (id !== 'layuiminiHomeTabId' && id !== 'layuiminiHomeTabIdMobile') { @@ -411,6 +411,40 @@ }); }, + /** + * 监听tab关闭 + * @param options + */ + listenClose: function (options) { + element.on('tabDelete(' + options.filter + ')', function (data) { + var tabId = data.id; + // 如果tabId有backTagId + if (tabId && tabId.indexOf('backTagId=') !== -1) { + // 提取backTagId的值 + var urlParams = new URLSearchParams(tabId.split('?')[1]); + var backTagId = urlParams.get('backTagId'); + + if (backTagId) { + // 切换到backTagId对应的tab + var checkTab = miniTab.check(backTagId, true); + + if (!checkTab) { + title = ua.getMenuTitleByTabId(backTagId, backTagId); + + miniTab.create({ + tabId: backTagId, + href: backTagId, + title: title, + isIframe: true, + maxTabNum: options.maxTabNum, + }); + } + + element.tabChange('layuiminiTab', backTagId); + } + } + }); + }, /** * 监听tab切换 * @param options