From 9c680ea2c5938d26065232d3a658a9a615e1f827 Mon Sep 17 00:00:00 2001 From: zhengyiming <540361168@qq.com> Date: 星期四, 13 三月 2025 16:39:14 +0800 Subject: [PATCH] fix: 修改导航 在路由上强制增加channelId --- apps/taro/src/utils/page.ts | 36 ++++++++++++++++++++++++++++++++++-- 1 files changed, 34 insertions(+), 2 deletions(-) diff --git a/apps/taro/src/utils/page.ts b/apps/taro/src/utils/page.ts index 8670a6f..5906af5 100644 --- a/apps/taro/src/utils/page.ts +++ b/apps/taro/src/utils/page.ts @@ -1,6 +1,8 @@ import { TabBarPageRouter } from '@/constants'; import Taro from '@tarojs/taro'; import { useSystemStoreWithOut } from '@/stores/modules/system'; +import { query2object, object2query } from '@life-payment/utils'; +import { blLifeRecharge } from './blLifeRecharge'; export function goBack(delta = 1) { const pages = Taro.getCurrentPages(); @@ -10,7 +12,7 @@ if (pages.length > 1) { Taro.navigateBack({ delta: delta }); } else { - Taro.switchTab({ + RouteHelper.switchTab({ url: Object.values(TabBarPageRouter)[systemStore.activeTab], }); } @@ -19,7 +21,37 @@ export function goHome() { const systemStore = useSystemStoreWithOut(); systemStore.setTabIndex(0); - Taro.switchTab({ + RouteHelper.switchTab({ url: TabBarPageRouter['Home'], }); } + +export function pathAddExtraParam(path: string, object: Record<string, string | number>) { + console.log('path: ', path, object); + const pathList = path.split('?'); + if (pathList.length > 1) { + const query = query2object(pathList[1]); + for (const key in object) { + query[key] = object[key] as any; + } + return `${pathList[0]}?${object2query(query)}`; + } else { + return `${pathList[0]}?${object2query(object)}`; + } +} + +export class RouteHelper { + static switchTab(option: Taro.switchTab.Option) { + return Taro.switchTab({ + ...option, + url: pathAddExtraParam(option.url, { channelId: blLifeRecharge.accountModel.channlesNum }), + }); + } + + static navigateTo(option: Taro.navigateTo.Option) { + return Taro.navigateTo({ + ...option, + url: pathAddExtraParam(option.url, { channelId: blLifeRecharge.accountModel.channlesNum }), + }); + } +} -- Gitblit v1.9.1