|                                                                                                                                                                                                                                                    |  | /** * 将数据转换为数组格式 * @param {any} data - 需要转换的数据 * @returns {Array} 转换后的数组 */function toArray(data) {	if (!data) return []	if (data instanceof Array){		return data	} else {		return [data]	}}
/** * 生成UUID * @returns {string} 生成的UUID字符串 */function generateUUID() {  return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function(c) {    var r = Math.random() * 16 | 0,        v = c == 'x' ? r : (r & 0x3 | 0x8);    return v.toString(16);  });}
/** * 生成随机颜色 * @returns {string} 生成的十六进制颜色值 */function generateRandomColor() {  const letters = '0123456789ABCDEF';  let color = '#';  for (let i = 0; i < 6; i++) {    color += letters[Math.floor(Math.random() * 16)];  }  return color;}
/** * 生成浅色系的随机颜色 * @returns {string} 生成的RGB格式颜色值 */function generateLightRandomColor() {  const min = 150;   const range = 105;  const r = Math.floor(Math.random() * range + min);  const g = Math.floor(Math.random() * range + min);  const b = Math.floor(Math.random() * range + min);  const color = 'rgb(' + r + ',' + g + ',' + b + ')';  return color;}
/** * 表单数据验证 * @param {Object} data - 需要验证的表单数据 * @param {Object} msg - 验证失败时的提示信息 * @returns {boolean} 验证结果,true表示验证失败,false表示验证通过 */function verificationAll(data, msg){		if (!msg){		console.log(msg);		return false	}		if (!data){		uni.showToast({			title: '表单数据未填写',			icon: "none"		})	}		for (let key in msg) {	    if (!data[key]) {			uni.showToast({				title: msg[key],				icon: "none"			})			return true	    }	}	return false}
/** * 验证手机号是否合法 * @param {string} phone - 需要验证的手机号 * @returns {boolean} 验证结果,true表示合法,false表示不合法 */function verificationPhone(phone){	if(!/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(phone)){		return false	}	return true}
//获取url中参数的方法
/** * 获取URL中指定参数的值 * @param {string} name - 参数名称 * @returns {string} 参数值,如果不存在则返回空字符串 */export function getHrefParams(name) {	var url = window.location.href;	try {		var cs = url.split('?')[1]; //获取?之后的参数字符串
		var cs_arr = cs.split('&'); //参数字符串分割为数组
		for (var i = 0; i < cs_arr.length; i++) { //遍历数组,拿到json对象
			if (cs_arr[i].split('=')[0] == name) {				return cs_arr[i].split('=')[1];			}		}		return "";	} catch {		return "";	}}
/** * 深度合并两个对象,相同属性b会覆盖a * @param {Object} a - 目标对象 * @param {Object} b - 源对象 * @returns {Object} 合并后的新对象 */export function deepMergeObject(a, b){	let data = JSON.parse(JSON.stringify(a))	function mergeObject(obj1, obj2){		for(let key in obj2){			if(typeof obj1[key] == 'object'){				obj1[key] = mergeObject(obj1[key], obj2[key])			}else{				obj1[key] = obj2[key]			}		}		return obj1	}	return mergeObject(data, b)}
/** * 复制文本到剪贴板 * @param {string} content - 要复制的内容 */export function copyText(content) {	uni.setClipboardData({		data: content,		success: () => {			uni.showToast({				title: '复制成功',				icon: 'none'			})		}	})}
/** * 将字符串中的文本格式化为HTML * @param {string} str - 需要格式化的字符串 * @returns {string} 格式化后的HTML字符串 */export function stringFormatHtml(str){	return str && str.replace(/\n/gi, '<br>')	.replace(/ /gi, ' ')}
/** * 处理页面导航参数 * @param {string|Object} url - 页面路径或导航参数对象 * @returns {Object} 处理后的导航参数对象 */function params(url){	if(typeof url == 'object'){		return url	}		let data = {		url	}		if(!data.url.includes('/pages')){		data.url = '/pages' + data.url	}		return data}
/** * 页面导航方法 * @param {...any} args - 导航参数 */export function navigateTo(...args){	uni.navigateTo(params(...args))}
/** * 返回上一页 * @param {number} num - 返回的页面数,默认为-1 */export function navigateBack(num = -1){	uni.navigateBack(num)}
/** * 重定向到指定页面 * @param {...any} args - 导航参数 */export function redirectTo(...args){	uni.redirectTo(params(...args))}
/** * 登录跳转函数,防止短时间内多次调用 * @returns {Function} 节流处理后的登录跳转函数 */export const toLogin = function(){	let time = 0	return () => {		if(new Date().getTime() - time < 1000){			return		}		time = new Date().getTime()		uni.navigateTo({			url: '/pages_order/auth/wxLogin'		})	}}()
export default {	toArray,	generateUUID,	verificationAll,	generateRandomColor,	generateLightRandomColor,	verificationPhone,	getHrefParams,	deepMergeObject,	navigateTo,	navigateBack,	redirectTo,	copyText,	stringFormatHtml,	toLogin}
 |