1.0.4 • Published 1 month ago
@web-xhh/web-utils v1.0.4
Description
web前端通用工具方法
Install
npm i @web-xhh/web-utils -S
Usage
按需导入
例如:
import { trimFn } from '@web-xhh/web-utils'
API
throttle
/**
* @description 节流(支持设置立即执行)
* @param {function} fn 执行的函数
* @param {number} wait 执行间隔时长,默认1s
* @param {boolean} immediate 是否立即执行函数
* @returns {function}
*/
debounce
/**
* @description 防抖(支持设置立即执行)
* @param {function} fn 执行的函数
* @param {number} wait 执行间隔时长,默认1s
* @param {boolean} immediate 是否立即执行函数
* @returns {function}
*/
deepClone
/**
* @description 深拷贝
* @param {object} obj 原对象
* @returns {object} 深拷贝的新对象
*/
deepMerge
/**
* @description JS对象深度合并
* @param {object} target 需要拷贝的对象
* @param {object} source 拷贝的来源对象
* @returns {object|boolean} 深度合并后的对象或者false(入参有不是对象)
*/
equals
/**
* @description 判断是否全等
* @param a 变量a
* @param b 变量b
* @returns {boolean}
*/
uniqueList
/**
* @description 数组去重
* @param {array} 原数组
* @returns {array} 去重后的数组
*/
twoDecimalfn
/**
* @description 保留2位小数(金额等)
* @param {number|string} value
* @returns {string}
*/
setThousandsSeparator
/**
* @description 实现千位分隔符
* @param {number|string} num 数字
* @param {boolean} needPoint 是否需要保留2位小数
* @returns {string}
*/
digitUppercase
/**
* @description 数字转化为大写金额
* @param {number|string}
* @returns {string}
*/
priceFormat
/**
* @description 数字格式化
* @param {number|string} number 要格式化的数字
* @param {number} decimals 保留几位小数,默认 0
* @param {string} decimalPoint 小数点符号,默认 .
* @param {string} thousandsSeparator 千分位符号,默认 ,
* @returns {string} 格式化后的数字
*/
numberMul
/**
* @description 小数点相乘算法(精度问题)
* @param {number|string} arg1
* @param {number|string} arg2
* @returns {number}
*/
addNum
/**
* @description 小数点相加
* @param {number|string} arg1
* @param {number|string} arg2
* @returns {number}
*/
minusNum
/**
* @description 小数点相减
* @param {number|string} arg1
* @param {number|string} arg2
* @returns {number}
*/
handleToFixed
/**
* @description toFixed()保留指定小数位
* @param {number} number 需要转化的数字
* @param {number} d 小数点保留位数
* @returns {string}
*/
randomNum
/**
* @description 生成指定范围随机数
* @param {number} min
* @param {number} max
* @returns {number} 随机数
*/
getRandomColor
/**
* @description 随机颜色生成
* @returns {string}
*/
intersectionArray
/**
* @description 多数组取交集
* @param {array} a 数组 例如:[1,2,3,4]
* @param {array} arr 剩余数组
* @returns {array} 交集
*/
indexOfMax
/**
* @description 查找数组中最大值的索引
* @param {array} arr 数组
* @returns {number} 最大值的索引
*/
indexOfMin
/**
* @description 查找数组中最小值的索引
* @param {array} arr 数组
* @returns {number} 最小值的索引
*/
transBinary
/**
* @description 将10进制转换成n进制
* @param {number} num 数字
* @returns {number} n进制,默认10
*/
getStrCount
/**
* @description 查找字符串中出现最多的字符和个数
* @param {string} str
* @returns {object}
*/
getKebabCase
/**
* @description 驼峰命名转换成短横线命名
* @param {string} str
* @returns {string}
*/
getCamelCase
/**
* @description 短横线命名转换成驼峰命名
* @param {string} str
* @returns {string}
*/
toCDB
/**
* @description 全角转换为半角
* @param {string} str
* @returns {string}
*/
toDBC
/**
* @description 半角转换为全角
* @param {string} str
* @returns {string}
*/
getUrlParams
/**
* @description 获取url参数值
* @param {string} name key值
* @returns {string}
*/
paramsToObj
/**
* @description url解析成键值对
* @param {string} url
* @returns {object}
*/
queryParams
/**
* @description 对象转url参数
* @param {object} data 对象
* @param {Boolean} isPrefix 是否自动加上"?",默认true
* @param {string} arrayFormat 规则 indices|brackets|repeat|comma
* @returns {string}
*/
getObjectURL
/**
* @description 创建 Blob URL
* @param file 对象
* @returns {string}
*/
base64ToFile
/**
* @description 将base64 的图片转换成file对象上传
* @param {string} data 图片地址
* @returns file类型的文件
*/
getUserAgent
/**
* @description 判断浏览器环境
* @returns {object}
*/
getStyle
/**
* @description 获取元素样式
* @param {object} obj dom对象
* @param {string} attr 属性
* @returns {string} 属性值
*/
isLeapYear
/**
* @description 判断闰年
* @param {string} year 年
* @returns {boolean}
*/
formatDate
/**
* @description 格式化日期
* @param {string|date|number} date 日期
* @param {string} format 需要转化的格式('yyyy-MM-dd hh:mm:ss.S 第q季度 ww)
* @returns {string} 格式化后的日期
*/
formatPastTime
/**
* @description 将时间转换为 刚刚、几秒前、几分钟前、几小时前、几天前、几月前、几年前或按传入格式显示
* @param {object} date 传入日期
* @param {Boolean} type 默认"default",大于等于一天可选值 -|/|.|年月日|月日|年
* @param {string} padZero 显示日期时是否补0,默认true
* @returns {string}
*/
diffDays
/**
* @description 两个日期相差多少天
* @param {string} date
* @param {string} otherDate
* @returns {number}
*/
addDays
/**
* @description 加减 N 天
* @param {string} date 原日期
* @param {string|number} value 加减的天数
* @returns {string} 新日期
*/
getThisWeek
/**
* @description 获取本周日期
* @param {string} type 1 本周开始日期到结束日期, 2 本周开始日期到今天
* @returns {array} [t1, t2]
*/
getLastWeek
/**
* @description 获取上周开始日期到结束日期
* @returns {array} [t1, t2]
*/
getThisMonth
/**
* @description 获取本月日期
* @param {string} type 1 本月开始日期到结束日期, 2 本月开始日期到今天
* @returns {array} [t1, t2]
*/
getLastMonth
/**
* @description 获取上月开始日期到结束日期
* @returns {array} [t1, t2]
*/
getProperty
/**
* @description 获取某个对象下的属性,用于通过类似'a.b.c'的形式去获取一个对象的的属性的形式
* @param {object} obj 对象
* @param {string} key 需要获取的属性字段
* @returns {*}
*/
setProperty
/**
* @description 设置对象的属性值,例如'a.b.c'的形式进行设置
* @param {object} obj 对象
* @param {string} key 需要设置的属性
* @param {string} value 设置的值
*/
isEmail
/**
* @description 验证电子邮箱格式
* @param {string} value 电子邮箱
* @returns {boolean}
*/
isMobile
/**
* @description 验证用户手机格式
* @param {string} value 手机号码
* @returns {boolean}
*/
isLandlinePhone
/**
* @description 是否是固定电话
* @param {string} value 电话
* @returns {boolean}
*/
isUrl
/**
* @description 验证URL格式
* @param {string} value URL
* @returns {boolean}
*/
isWeixin
/**
* @description 是否是微信浏览器
* @returns {boolean}
*/
isSafari
/**
* @description 是否是Safari浏览器
* @returns {boolean}
*/
trimFn
/**
* @description 去除空格
* @param {string} str 需要去除空格的字符串
* @param {string} pos both|left|right|all 默认both
* @returns {string} 去除空格后的字符串
*/
isChinese
/**
* @description 是否是中文
* @param {string} value
* @returns {boolean}
*/
isPromise
/**
* @description 是否是promise对象
* @param {object} value
* @returns {boolean}
*/
padZero
/**
* @description 补零操作(比如日期的月或日)
* @param {string|number} value 需要补零的变量
* @param {number} len (补零后的)总长度,默认2
* @param {string|number} zero 0 默认是补0
* @returns {string}
*/
isIDCard
/**
* @description 身份证号验证
* @param {string} 身份证号
* @returns {boolean}
*/
getTouchDirection
/**
* @description 获取手指滑动方向
* @param {number} startx
* @param {number} starty
* @param {number} endx
* @param {number} endy
* @returns {number} 0 未滑动,1 向上,2 向下,3 向左,4 向右
*/
handleExportFile
/**
* @description 处理后端返回的文件流(接口请求设置 responseType: 'blob')
* @param {object} res 接口返回的文件流
* @param {string} fileNameValue 获取文件名,默认 filename= 截取
*/
toPageTop
/**
* @description 回到页面顶部
*/
isDarkMode
/**
* @description 是否是黑暗应用模式
* @returns {boolean}
*/
scrollToView
/**
* @description 元素滚动到可视区
* @param {object} element dom
* @param {string} behavior auto|smooth 默认 smooth
* @param {string} block start|center|end|nearest 默认 start
* @param {string} inline start|center|end|nearest 默认 nearest
*/
toggleFullScreen
/**
* @description 全屏切换
*/