feat: 关闭tab时自动返回上一个页面

This commit is contained in:
augushong
2025-08-23 12:34:26 +08:00
parent 892fd2b712
commit 171c6cfca3

View File

@@ -21,6 +21,7 @@
miniTab.listen(options); miniTab.listen(options);
miniTab.listenRoll(); miniTab.listenRoll();
miniTab.listenSwitch(options); miniTab.listenSwitch(options);
miniTab.listenClose(options);
miniTab.listenHash(options); miniTab.listenHash(options);
}, },
@@ -203,7 +204,7 @@
} }
} }
} }
return menu; return menu;
}, },
@@ -288,15 +289,13 @@
if (!checkTab) { if (!checkTab) {
if (!title) { 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()); let prefixTabTitle = ua.getMenuTitleByTabId(ua.getCurrentPageId());
console.log(prefixTabTitle);
if (prefixTabTitle) {
if(prefixTabTitle){
title = prefixTabTitle + '-' + title; title = prefixTabTitle + '-' + title;
} }
} }
@@ -339,6 +338,7 @@
var closeType = $(this).attr('layuimini-tab-close'); var closeType = $(this).attr('layuimini-tab-close');
$('.layuimini-tab .layui-tab-title li').each(function () { $('.layuimini-tab .layui-tab-title li').each(function () {
var tabId = $(this).attr('lay-id'); var tabId = $(this).attr('lay-id');
var id = $(this).attr('id'); var id = $(this).attr('id');
var isCurrent = $(this).hasClass('layui-this'); var isCurrent = $(this).hasClass('layui-this');
if (id !== 'layuiminiHomeTabId' && id !== 'layuiminiHomeTabIdMobile') { 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切换 * 监听tab切换
* @param options * @param options