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();
|
|
const systemStore = useSystemStoreWithOut();
|
|
if (pages.length > 1) {
|
Taro.navigateBack({ delta: delta });
|
} else {
|
Taro.switchTab({
|
url: Object.values(TabBarPageRouter)[systemStore.activeTab],
|
});
|
}
|
}
|
|
export function goHome() {
|
const systemStore = useSystemStoreWithOut();
|
systemStore.setTabIndex(0);
|
Taro.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) {
|
Taro.navigateTo({
|
...option,
|
url: pathAddExtraParam(option.url, { channelId: blLifeRecharge.accountModel.channlesNum }),
|
});
|
}
|
}
|