Merge branch 'dev/1.0' of https://git.aigc-quickapp.com/Uniapp/lucky_shop into dev/1.0
This commit is contained in:
@@ -636,30 +636,35 @@ export default {
|
||||
const diyTabBar = store.state.tabBarList;
|
||||
if (diyTabBar && diyTabBar.list && Array.isArray(diyTabBar.list)) {
|
||||
const cleanUrl = url.split('?')[0];
|
||||
const isDiyTabRoot = diyTabBar.list.some(item => {
|
||||
if (!item || !item.link || !item.link.wap_url) return false;
|
||||
const normalizedTab = adaptSubpackageUrl(item.link.wap_url.startsWith('/') ? item.link.wap_url : '/' + item.link.wap_url).split('?')[0];
|
||||
const normalizedUrl = adaptSubpackageUrl(cleanUrl.startsWith('/') ? cleanUrl : '/' + cleanUrl).split('?')[0];
|
||||
return normalizedTab === normalizedUrl;
|
||||
});
|
||||
if (isDiyTabRoot) {
|
||||
const adaptedUrl = adaptSubpackageUrl(cleanUrl);
|
||||
const inSystemTabBar = systemTabBarList.some(sysUrl => adaptedUrl === sysUrl || cleanUrl === sysUrl);
|
||||
// 首页用switchTab,其他DIY tab根页用reLaunch确保页面栈干净
|
||||
let navApi = inSystemTabBar ? (adaptedUrl === INDEX_PAGE_URL ? uni.switchTab : uni.reLaunch) : uni.reLaunch;
|
||||
|
||||
// 鸿蒙元服务环境下 uni.switchTab 有兼容性问题, 全部使用 reLaunch
|
||||
// #ifdef MP-HARMONY
|
||||
navApi = uni.reLaunch;
|
||||
// #endif
|
||||
|
||||
navApi({
|
||||
url,
|
||||
fail: (err) => {
|
||||
console.error('[navigate] tabBar 跳转失败:', cleanUrl, err);
|
||||
}
|
||||
// 检查目标页面是否在排除列表中(如 VR、webview 等特殊页面)
|
||||
// 如果在排除列表中,不应该被当作 DIY tabBar 根页处理
|
||||
const isExcludedPage = NO_TAB_PAGES.has(cleanUrl);
|
||||
if (!isExcludedPage) {
|
||||
const isDiyTabRoot = diyTabBar.list.some(item => {
|
||||
if (!item || !item.link || !item.link.wap_url) return false;
|
||||
const normalizedTab = adaptSubpackageUrl(item.link.wap_url.startsWith('/') ? item.link.wap_url : '/' + item.link.wap_url).split('?')[0];
|
||||
const normalizedUrl = adaptSubpackageUrl(cleanUrl.startsWith('/') ? cleanUrl : '/' + cleanUrl).split('?')[0];
|
||||
return normalizedTab === normalizedUrl;
|
||||
});
|
||||
return;
|
||||
if (isDiyTabRoot) {
|
||||
const adaptedUrl = adaptSubpackageUrl(cleanUrl);
|
||||
const inSystemTabBar = systemTabBarList.some(sysUrl => adaptedUrl === sysUrl || cleanUrl === sysUrl);
|
||||
// 首页用switchTab,其他DIY tab根页用reLaunch确保页面栈干净
|
||||
let navApi = inSystemTabBar ? (adaptedUrl === INDEX_PAGE_URL ? uni.switchTab : uni.reLaunch) : uni.reLaunch;
|
||||
|
||||
// 鸿蒙元服务环境下 uni.switchTab 有兼容性问题, 全部使用 reLaunch
|
||||
// #ifdef MP-HARMONY
|
||||
navApi = uni.reLaunch;
|
||||
// #endif
|
||||
|
||||
navApi({
|
||||
url,
|
||||
fail: (err) => {
|
||||
console.error('[navigate] tabBar 跳转失败:', cleanUrl, err);
|
||||
}
|
||||
});
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user