单应用项目,可以创建很多独立工具类页面 ,不用登录 初始化的页面
zhangchen
2025-07-28 7fd770011e638950ef61edab1a8da176f45da77b
src/utils/utils.ts
@@ -8,4 +8,44 @@
  if (!el) return 0
  const rect = el.getBoundingClientRect()
  return window.innerHeight - rect.top
}
}
/**
 * 将字符串转为数字
 * @param value
 * @returns
 */
export function tryConvertToInt(value: string): string | number {
  const num = Number(value);
  // 判断是否是有效数字且是整数(小数部分为 0)
  if (!isNaN(num) && Number.isInteger(num)) {
    return num;
  }
  // 判断是否是有效数字且小数部分为 0(例如 "1.0")
  if (!isNaN(num) && Number(value).toString().endsWith('.0')) {
    return parseInt(value, 10);
  }
  return value;
}
/**
 * 深拷贝
 * @param obj
 * @returns
 */
export function deepClone<T>(obj: T): T {
  if (obj === null || typeof obj !== "object") return obj;
  if (Array.isArray(obj)) {
    return obj.map(item => deepClone(item)) as unknown as T;
  }
  const result: any = {};
  for (const key in obj) {
    if (Object.prototype.hasOwnProperty.call(obj, key)) {
      result[key] = deepClone(obj[key]);
    }
  }
  return result;
}