优化页面栈

This commit is contained in:
francis_fh
2025-12-05 16:29:47 +08:00
parent 27b2b721d3
commit 85a6066494
3 changed files with 122 additions and 39 deletions

View File

@@ -69,9 +69,28 @@ export const navTo = function(url, {
const userStore = useUserStore(); const userStore = useUserStore();
if (needLogin && !userStore.hasLogin) { if (needLogin && !userStore.hasLogin) {
uni.navigateTo({ const pages = getCurrentPages();
url: '/pages/complete-info/complete-info' if (pages.length >= 10) {
uni.redirectTo({
url: '/pages/complete-info/complete-info',
fail: (err) => {
console.error('页面跳转失败:', err);
}
}); });
} else {
uni.navigateTo({
url: '/pages/complete-info/complete-info',
fail: (err) => {
console.error('页面跳转失败:', err);
uni.redirectTo({
url: '/pages/complete-info/complete-info',
fail: (err2) => {
console.error('redirectTo也失败:', err2);
}
});
}
});
}
return; return;
} }
@@ -86,9 +105,30 @@ export const navTo = function(url, {
currentPage.__onBackCallback__ = onBack; currentPage.__onBackCallback__ = onBack;
} }
uni.navigateTo({ const pages = getCurrentPages();
url: finalUrl if (pages.length >= 10) {
// 页面栈已满使用redirectTo替代
uni.redirectTo({
url: finalUrl,
fail: (err) => {
console.error('页面跳转失败:', err);
}
}); });
} else {
uni.navigateTo({
url: finalUrl,
fail: (err) => {
console.error('页面跳转失败:', err);
// 失败后尝试redirectTo
uni.redirectTo({
url: finalUrl,
fail: (err2) => {
console.error('redirectTo也失败:', err2);
}
});
}
});
}
}; };
export const navBack = function({ export const navBack = function({

View File

@@ -72,9 +72,32 @@ export function navigateToLoginPage(options = {}) {
? `?${new URLSearchParams(params).toString()}` ? `?${new URLSearchParams(params).toString()}`
: ''; : '';
uni.navigateTo({ const finalUrl = `${loginPage}${queryString}`;
url: `${loginPage}${queryString}` const pages = getCurrentPages();
if (pages.length >= 10) {
// 页面栈已满使用redirectTo替代
uni.redirectTo({
url: finalUrl,
fail: (err) => {
console.error('页面跳转失败:', err);
}
}); });
} else {
uni.navigateTo({
url: finalUrl,
fail: (err) => {
console.error('页面跳转失败:', err);
// 失败后尝试redirectTo
uni.redirectTo({
url: finalUrl,
fail: (err2) => {
console.error('redirectTo也失败:', err2);
}
});
}
});
}
} }
} }

View File

@@ -217,10 +217,30 @@ export function myRequest(url, data = {}, method = 'GET', port = 9100, headers =
} }
// 处理业务错误 // 处理业务错误
if (resData.data?.code === 401 || resData.data?.code === 402) { if (resData.data?.code === 401 || resData.data?.code === 402) {
const pages = getCurrentPages();
if (pages.length >= 10) {
// 页面栈已满使用redirectTo替代
uni.redirectTo({
url:'/packageB/login?flag=nw',
fail: (err) => {
console.error('页面跳转失败:', err);
}
});
} else {
uni.navigateTo({ uni.navigateTo({
url:'/packageB/login?flag=nw' url:'/packageB/login?flag=nw',
}) fail: (err) => {
// navTo('/packageB/login?flag=nw'); console.error('页面跳转失败:', err);
// 失败后尝试redirectTo
uni.redirectTo({
url:'/packageB/login?flag=nw',
fail: (err2) => {
console.error('redirectTo也失败:', err2);
}
});
}
});
}
useUserStore().logOut() useUserStore().logOut()
} }