/**
 * 参数处理
 * @param params 参数
 */
export function tansParams (params) {
	let result = ''
	for (const propName of Object.keys(params)) {
		const value = params[propName]
		var part = encodeURIComponent(propName) + "="
		if (value !== null && value !== "" && typeof (value) !== "undefined") {
			if (typeof value === 'object') {
				for (const key of Object.keys(value)) {
					if (value[key] !== null && value[key] !== "" && typeof (value[key]) !== 'undefined') {
						let params = propName + '[' + key + ']'
						var subPart = encodeURIComponent(params) + "="
						result += subPart + encodeURIComponent(value[key]) + "&"
					}
				}
			} else {
				result += part + encodeURIComponent(value) + "&"
			}
		}
	}
	return result
}

/**
 * 参数处理，避免小程序跳转10层后无法跳转
 * @param url 
 */
export function navigateBackTo (url) {
	const backUrl = url.slice(1);
	const pages = getCurrentPages();
	const num = pages.length; // 当前页面栈总数
	const index = pages.findIndex(item => item.route === backUrl);
	const backnum = num - index - 1;
	uni.navigateBack({ delta: backnum });
}

/**
 * @description 版本号对比
 * @param version1, 最新版本
 * @param version2, 当前版本
 * @returns 如果 version1 > version2 返回 1，如果 version1 < version2 返回 -1， 除此之外返回 0
 */
export function versionCompare (version1, version2) {
	let arr1 = version1.split(".");
	let arr2 = version2.split(".");
	let length = Math.max(arr1.length, arr2.length);
	for (let i = 0; i < length; i++) {
		const n1 = Number(arr1[i] || 0)
		const n2 = Number(arr2[i] || 0)
		// version1 > version2 返回1，如果 version1 < version2 返回-1，不然返回0
		if (n1 > n2) return 1
		if (n1 < n2) return -1
	}
	return 0
}