From f21b010ced7c897a3392a5d6eb33953526fe3a1f Mon Sep 17 00:00:00 2001 From: Dev Date: Thu, 8 Oct 2026 17:09:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B6=88=E6=81=AF=E8=B7=B3=E8=BD=AC=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/miniapp/pages/message/list/index.js | 35 +++++++++++++++++--- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/frontend/miniapp/pages/message/list/index.js b/frontend/miniapp/pages/message/list/index.js index 8e6edf1..f6727dc 100644 --- a/frontend/miniapp/pages/message/list/index.js +++ b/frontend/miniapp/pages/message/list/index.js @@ -9,6 +9,15 @@ const TYPE_TABS = [ { key: '2', label: '需求消息' }, ]; +// tabBar 页面(与 app.json 的 tabBar.list 保持一致): +// navigateTo 无法跳转 tab 页,必须用 switchTab;而 switchTab 不支持带参数 +const TAB_PAGES = [ + 'pages/home/home', + 'pages/goods/list/index', + 'pages/message/list/index', + 'pages/usercenter/index', +]; + Page({ data: { tabs: TYPE_TABS, @@ -118,13 +127,29 @@ Page({ //弹窗确认:有跳转页面则前往,否则仅关闭 onDialogConfirm() { - const jumpPage = this.data.currentMessage?.extra_json?.page || ''; + const jumpPage = String(this.data.currentMessage?.extra_json?.page || '').replace(/^\//, ''); this.setData({ showTextAndTitle: false }); - if (jumpPage) { - wx.navigateTo({ - url: '/' + String(jumpPage).replace(/^\//, '') - }); + if (!jumpPage) { + return; } + const pathname = jumpPage.split('?')[0]; + //tabBar 页只能 switchTab(不支持带参数),其余走 navigateTo + if (TAB_PAGES.indexOf(pathname) !== -1) { + wx.switchTab({ + url: '/' + pathname, + fail: () => { + wx.showToast({ title: '页面跳转失败', icon: 'none' }); + } + }); + return; + } + wx.navigateTo({ + url: '/' + jumpPage, + fail: () => { + //页面路径不存在或超出页面栈时降级提示 + wx.showToast({ title: '页面跳转失败', icon: 'none' }); + } + }); }, onPullDownRefresh() {