//获取url后面拼接的参数 export const getQueryString = (name) => { let urlStr = window.location.href.split('?')[1] const urlSearchParams = new URLSearchParams(urlStr) const result = Object.fromEntries(urlSearchParams.entries()) return name ? result[name] : result } //是否iOS设备 export const isIOS = () => userAgent.indexOf('iPhone') > -1 || userAgent.indexOf('iPad') > -1; //是否Android设备 export const isAndroid = () => userAgent.indexOf('Android') > -1; export const deepClone = (source) => { if (!source && typeof source !== "object") { return source; } const targetObj = source.constructor === Array ? [] : {}; Object.keys(source).forEach((keys) => { if (source[keys] && typeof source[keys] === "object") { (targetObj)[keys] = deepClone(source[keys]); } else { (targetObj)[keys] = source[keys]; } }); return targetObj; } /** * @description 生成唯一 uuid * @returns {String} */ export function generateUUID() { let uuid = ""; for (let i = 0; i < 32; i++) { let random = (Math.random() * 16) | 0; if (i === 8 || i === 12 || i === 16 || i === 20) uuid += "-"; uuid += (i === 12 ? 4 : i === 16 ? (random & 3) | 8 : random).toString(16); } return uuid; } export function getQueryParams(url) { // 若未传入URL,则使用当前页面URL const targetUrl = url || window.location.href; // 用于存储查询参数的对象 const queryParams = {}; // 查找URL中问号的位置 const queryStart = targetUrl.indexOf('?'); // 如果URL中不存在问号,说明没有查询参数 if (queryStart === -1) { return queryParams; } // 提取查询字符串部分(不包含问号) const queryString = targetUrl.substring(queryStart + 1); // 查找查询字符串中哈希符号的位置 const hashIndex = queryString.indexOf('#'); // 移除哈希符号及其后面的内容 const cleanQuery = hashIndex !== -1 ? queryString.substring(0, hashIndex) : queryString; // 如果查询字符串为空,直接返回空对象 if (!cleanQuery) { return queryParams; } // 按"&"分割查询字符串为参数数组 const params = cleanQuery.split('&'); // 遍历参数数组 for (const param of params) { // 按"="分割每个参数为键值对 const [key, value] = param.split('='); if (key) { // 对键和值进行URL解码 const decodedKey = decodeURIComponent(key); const decodedValue = value !== undefined ? decodeURIComponent(value) : ''; // 处理重复参数名的情况,将其值存储为数组 if (queryParams.hasOwnProperty(decodedKey)) { if (!Array.isArray(queryParams[decodedKey])) { queryParams[decodedKey] = [queryParams[decodedKey]]; } queryParams[decodedKey].push(decodedValue); } else { queryParams[decodedKey] = decodedValue; } } } return queryParams; }