fix(路由): 修复订单列表页面,验证登录页面,而没办法后退

This commit is contained in:
2026-01-07 14:02:03 +08:00
parent 8df59abd03
commit 90820ade30
3 changed files with 20 additions and 19 deletions

View File

@@ -112,14 +112,14 @@ export default {
/** /**
* 页面跳转 * 页面跳转
* @param {string} to 跳转链接 /pages/idnex/index * @param {string} to 跳转链接 /pages/idnex/index
* @param {Object} param 参数 {key : value, ...} * @param {Object} param 参数 {key : value, ...}, 默认{}
* @param {string} mode 模式 * @param {string} mode 模式 navigateTo、redirectTo、reLaunch、tabbar, 默认navigateTo
*/ */
redirectTo(to, param, mode) { redirectTo(to, param = {}, mode = 'navigateTo') {
let url = to; let url = to;
// 替换url中的前缀 // 替换url中的前缀
console.log('redirectTo', to, param, mode); console.log('页面跳转 redirectTo', to, param, mode);
url = adaptSubpackageUrl(url); url = adaptSubpackageUrl(url);
console.log('adaptSubpackageUrl', url); console.log('adaptSubpackageUrl', url);
@@ -146,26 +146,26 @@ export default {
// 如果url不包含tabBarList中的路径根据mode判断跳转方式 // 如果url不包含tabBarList中的路径根据mode判断跳转方式
switch (mode) { switch (mode) {
case 'tabbar': case 'tabbar':
// 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。 // 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。重置页面栈,仅保留 tabBar 页面
uni.switchTab({ uni.switchTab({
url url
}); });
break; break;
case 'redirectTo': case 'redirectTo':
// 关闭当前页面,跳转到应用内的某个页面。 // 关闭当前页面,跳转到应用内的某个页面。替换栈顶页面长度不变上限10层
uni.redirectTo({ uni.redirectTo({
url url
}); });
break; break;
case 'reLaunch': case 'reLaunch':
// 关闭所有页面,打开到应用内的某个页面。 // 关闭所有页面,打开到应用内的某个页面。清空栈后打开新页面,长度=1
uni.reLaunch({ uni.reLaunch({
url url
}); });
break; break;
default: default:
// 保留当前页面,跳转到应用内的某个页面 // 保留当前页面,跳转到应用内的某个页面,新增页面到栈顶,长度+1上限10层
console.log('保留当前页面,跳转到应用内的某个页面', url); console.log('保留当前页面,navigateTo跳转到应用内的某个页面', url);
uni.navigateTo({ uni.navigateTo({
url url
}); });

View File

@@ -254,7 +254,7 @@ export default {
}, },
// 打开弹窗 // 打开弹窗
open(url) { open(url, mode) {
if (url) this.url = url; if (url) this.url = url;
// #ifdef MP // #ifdef MP
this.getCode(authData => { this.getCode(authData => {
@@ -270,24 +270,24 @@ export default {
else this.getCode(); else this.getCode();
} else if (this.$util.isWeiXin()) { } else if (this.$util.isWeiXin()) {
// 微信浏览器环境,显示登录页面 // 微信浏览器环境,显示登录页面
this.toLogin(); this.toLogin(mode);
} else { } else {
// 其他浏览器环境,显示登录页面 // 其他浏览器环境,显示登录页面
this.toLogin(); this.toLogin(mode);
} }
// #endif // #endif
// #ifndef MP || H5 // #ifndef MP || H5
this.toLogin(); this.toLogin(mode);
// #endif // #endif
}, },
// 跳转去登录页 // 跳转去登录页
toLogin() { toLogin(mode) {
if (this.url) this.$util.redirectTo('/pages_tool/login/login', { if (this.url) this.$util.redirectTo('/pages_tool/login/login', {
back: encodeURIComponent(this.url) back: encodeURIComponent(this.url)
}); }, mode);
else this.$util.redirectTo('/pages_tool/login/login'); else this.$util.redirectTo('/pages_tool/login/login', {}, mode);
}, },
// 取消完善信息 // 取消完善信息

View File

@@ -156,11 +156,12 @@
<ns-payment ref="choosePaymentPopup"></ns-payment> <ns-payment ref="choosePaymentPopup"></ns-payment>
<ns-payment ref="choosePaymentMergePopup"></ns-payment> <ns-payment ref="choosePaymentMergePopup"></ns-payment>
<ns-login ref="login"></ns-login>
<loading-cover ref="loadingCover"></loading-cover>
<!-- #ifdef MP --> <!-- #ifdef MP -->
</mescroll-uni> </mescroll-uni>
<!-- #endif --> <!-- #endif -->
<ns-login ref="login"></ns-login>
<loading-cover ref="loadingCover"></loading-cover>
</view> </view>
</template> </template>
@@ -207,7 +208,7 @@ export default {
if (this.$refs.mescroll) this.$refs.mescroll.refresh(); if (this.$refs.mescroll) this.$refs.mescroll.refresh();
} else { } else {
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.login.open('/pages_order/list?status=' + this.orderStatus); this.$refs?.login?.open('/pages_order/list?status=' + this.orderStatus, 'redirectTo');
}) })
} }
}, },