From 95194585d2ce64e98a868a7488401b3f73d0a888 Mon Sep 17 00:00:00 2001 From: ZF sun <34314687@qq.com> Date: Sat, 27 Jun 2026 13:46:29 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=BB=9F=E4=B8=80=E6=9B=BF?= =?UTF-8?q?=E6=8D=A2=E5=B0=8F=E7=A8=8B=E5=BA=8F=E4=BA=8B=E4=BB=B6=E7=BB=91?= =?UTF-8?q?=E5=AE=9A=E4=B8=BA@tap=E5=B9=B6=E4=BC=98=E5=8C=96=E8=B7=B3?= =?UTF-8?q?=E8=BD=AC=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 全局替换@click为@tap以适配uni-app事件规范 2. 优化toLogin方法的路由获取逻辑,增加空值判断 3. 重构redirectTo跳转逻辑,统一tab页跳转使用reLaunch确保页面栈正确 --- common/js/util.js | 12 +++++++--- components/ns-login/ns-login.vue | 34 +++++++++++++-------------- pages/index/index.vue | 4 ++-- pages_tool/member/balance.vue | 2 +- pages_tool/member/index.vue | 14 +++++------ pages_tool/member/point.vue | 2 +- pages_tool/member/public/js/common.js | 4 +++- 7 files changed, 40 insertions(+), 32 deletions(-) diff --git a/common/js/util.js b/common/js/util.js index b37e28b..c67729b 100644 --- a/common/js/util.js +++ b/common/js/util.js @@ -477,8 +477,13 @@ export default { for (let i = 0; i < systemTabBarList.length; i++) { const tabBarUrl = systemTabBarList[i]; if (url.indexOf(tabBarUrl) == 0) { - // 首页特殊处理,采用switchTab, 其他页面采用redirectTo, 不能返回,不能退回 - (tabBarUrl == INDEX_PAGE_URL ? uni.switchTab : uni.redirectTo)({ url }); + // 首页使用switchTab(pages.json中注册的tabBar页面),其他tab页面使用reLaunch + // reLaunch关闭所有页面再打开目标页,确保页面栈与浏览器历史一致,避免返回按钮异常 + if (tabBarUrl == INDEX_PAGE_URL) { + uni.switchTab({ url }); + } else { + uni.reLaunch({ url }); + } return; } } @@ -499,7 +504,8 @@ export default { if (isDiyTabRoot) { const adaptedUrl = adaptSubpackageUrl(cleanUrl); const inSystemTabBar = systemTabBarList.some(sysUrl => adaptedUrl === sysUrl || cleanUrl === sysUrl); - const navApi = inSystemTabBar ? uni.switchTab : uni.redirectTo; + // 首页用switchTab,其他DIY tab根页用reLaunch确保页面栈干净 + const navApi = inSystemTabBar ? (adaptedUrl === INDEX_PAGE_URL ? uni.switchTab : uni.reLaunch) : uni.reLaunch; navApi({ url, fail: (err) => { diff --git a/components/ns-login/ns-login.vue b/components/ns-login/ns-login.vue index e50a286..da40ebb 100644 --- a/components/ns-login/ns-login.vue +++ b/components/ns-login/ns-login.vue @@ -9,7 +9,7 @@ {{ $lang('components.ns-login.bindMobileTitle') }} {{ $lang('components.ns-login.bindMobileTip') }} - + {{ $lang('components.ns-login.mobileLabel') }} @@ -18,16 +18,16 @@ {{ $lang('components.ns-login.captchaLabel') }} - + {{ $lang('components.ns-login.dynacodeLabel') }} - {{ dynacodeData.codeText }} - + {{ dynacodeData.codeText }} + - + @@ -37,21 +37,21 @@ {{ $lang('components.ns-login.getServicesTip') }} - + - - {{ $lang('components.ns-login.agree') }} - {{ $lang('components.ns-login.privacyPolicy') }} - {{ $lang('components.ns-login.userServiceAgreement') }} - + @tap="isAgree = !isAgree"> + + {{ $lang('components.ns-login.agree') }} + {{ $lang('components.ns-login.privacyPolicy') }} + {{ $lang('components.ns-login.userServiceAgreement') }} + @@ -62,12 +62,12 @@ - - {{ $lang('components.ns-login.notNow') }} @@ -115,7 +115,7 @@ {{ $lang('components.ns-login.getMobile') }} - + diff --git a/pages/index/index.vue b/pages/index/index.vue index 27f511d..48930e7 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -52,12 +52,12 @@ - - + diff --git a/pages_tool/member/balance.vue b/pages_tool/member/balance.vue index 082922f..a4f5325 100644 --- a/pages_tool/member/balance.vue +++ b/pages_tool/member/balance.vue @@ -6,7 +6,7 @@ 'height': menuButtonBounding.height + 'px' }"> - + {{ $lang('member.balance.navbarTitle') }} diff --git a/pages_tool/member/index.vue b/pages_tool/member/index.vue index 0eccc33..f2b075a 100644 --- a/pages_tool/member/index.vue +++ b/pages_tool/member/index.vue @@ -20,18 +20,18 @@ - {{ + {{ $lang('privacyPolicy') }} - {{ + {{ $lang('registrationAgreement') }} {{ $lang('cancellation') }} + @tap="cancellation">{{ $lang('cancellation') }} {{ $lang('logout') }} + @tap="logout">{{ $lang('logout') }} @@ -41,9 +41,9 @@ + @tap="uniPopupWindowFn()" mode="aspectFit" show-menu-by-longpress/> - + @@ -58,7 +58,7 @@ - 我知道了 + 我知道了 diff --git a/pages_tool/member/point.vue b/pages_tool/member/point.vue index 27fa403..a7126d9 100644 --- a/pages_tool/member/point.vue +++ b/pages_tool/member/point.vue @@ -7,7 +7,7 @@ }" > - + {{ $lang('member.point.title') }} diff --git a/pages_tool/member/public/js/common.js b/pages_tool/member/public/js/common.js index eb43c40..a5f4df1 100644 --- a/pages_tool/member/public/js/common.js +++ b/pages_tool/member/public/js/common.js @@ -2,7 +2,9 @@ export default { methods: { // 跳转至登录页 toLogin(url) { - this.$refs.login.open(url ?? this.$util.getCurrentRoute()); + const currentRoute = this.$util.getCurrentRoute(); + const backUrl = url ?? (currentRoute && currentRoute.path ? currentRoute.path : ''); + this.$refs.login.open(backUrl); } } } \ No newline at end of file