/**
 * 跳转非tabbar页面
 * @param url 路径
 * @param param 参数对象
 * @param timeout 延时时间，默认0
 * @param type default普通跳转 redirect关闭当前页面跳转  reLaunch关闭所有页面跳转 默认default
 */

export const jump = (url, param, timeout = 0, type = 'default') => {
	setTimeout(() => {
		if (param) {
			url = `${url}?detail=${encodeURIComponent(JSON.stringify(param)?.replace(/%/g, '%25'))}`
		}
		if (type === 'default') {
			uni.navigateTo({ url })
		} else if (type === 'redirect') {
			uni.redirectTo({ url })
		} else {
			uni.reLaunch({ url })
		}
	}, timeout)
}

/**
 * 跳转到tabbar页面
 * @param url 路径
 * @param timeout 延时时间，默认0
 */

export const jumpToTabbar = (url, timeout = 0) => {
	setTimeout(() => {
		uni.switchTab({ url })
	}, timeout)
}

/**
 * 关闭当前页面，返回上一级或者多级页面
 * @param delta 级数，默认1
 */

export const goBack = (delta = 1) => {
	uni.navigateBack({ delta })
}

/**
 * 获取跳转参数
 * @param loadParam
 * @return {{}|any}
 */

export const getJumpParam = (loadParam) => {
	if (typeof loadParam === 'object' && loadParam?.detail) {
		return JSON.parse(decodeURIComponent(loadParam.detail))
	}
	return {}
}
