lk-tools-lib
前端开发工具方法集合库,整合了项目中常用的工具方法
Installation
# with npm
npm install -S lk-tools-lib
# with yarn
yarn add -S lk-tools-lib
declaration
所有方法都经过测试
其中带序号的功能标题:
红颜色代表可以点击跳转到单元测试文件,可以更清晰地看到函数使用方法和传参形式
灰色代表没有写单元测试,但也在项目上经过测试通过,可以放心使用。
Documentation
图片
1、批量压缩图片
/**
* @param {files} 文件数组对象
* @param {ratio} 压缩参数 一般在0~1之间
* @returns {files} -> promise对象 使用.then可以获取压缩后的文件数组对象
*/
import { zipImage } from 'lk-tools-lib'
zipImage(files, ratio)
2、file转base64
/**
* @param {file} 文件对象
* @returns {string} -> promise对象 使用.then可以获取base64格式
*/
import { filleToBase64 } from 'lk-tools-lib'
filleToBase64(file)
3、base64转file
/**
* @param {dataurl} 文件base64格式
* @param {filename} 文件名
* @returns {file} -> promise对象 使用.then可以获取 将base64转为file的文件对象
*/
import { base64ToFile } from 'lk-tools-lib'
base64ToFile(dataurl, filename)
4、压缩base64格式的图片
/**
* @param {base64} 文件base64格式
* @param {ratio} 图片压缩比例 0~1之间 一般0.6附近是合理值
* @returns {string} -> 压缩后的base64格式
*/
import { dealImage } from 'lk-tools-lib'
dealImage(base64, ratio)
工具
5、遍历对象 接收回调函数
/**
* @param {obj} 需要循环遍历的对象
* @param {fn} 回调函数
* @returns {boolen}
*/
import { forEach } from 'lk-tools-lib'
forEach(obj,fn)
6、merge,多对象合并
/**
* @param {obj} 需要合并的对象
* @returns {obj} 例如: merge({a:1},{b:2}) return {a:1,b:2}
*/
import { merge } from 'lk-tools-lib'
merge(/*obj1,obj2,....*/)
7、数组对象去重
/**
* @param {arr} 需要去重的数组对象
* @param {key} 根据哪个键来去重
* @returns {boolen}
*/
import { derepeatArray } from 'lk-tools-lib'
derepeatArray(arr,key)
8、防抖
/**
* @param {fn} 函数方法
* @param {wait} 防抖时间
* @param {immediate} 是否立即执行fn
* @returns {Function}
*/
import { debounce } from 'lk-tools-lib'
debounce(fn,wait,immediate)
9、节流
/**
* @param {fn} 函数方法
* @param {wait} 节流时间
* @returns {Function}
*/
import { throttle } from 'lk-tools-lib'
throttle(fn,wait)
10、localstorage存储数据
/**
* @param {name} 存储的建
* @param {content} 存储的值
*/
import { setStore } from 'lk-tools-lib'
setStore(name,content)
11、手机号脱敏 手机号码为隐藏中间4位数
/**
* @param {value} 手机号
* @return { string} 如:formatPhone(13716073435) return 137****3435
*/
import { formatPhone } from 'lk-tools-lib'
formatPhone(value)
12、获取uuid
/**
* @return { string}
*/
import { uuid } from 'lk-tools-lib'
uuid()
13、获取范围内的随机数
/**
* @param {start}
* @param {end}
* @return { number} 例如 getRandomNumber(1,10) return 1
*/
import { getRandomNumber } from 'lk-tools-lib'
getRandomNumber(start,end)
14、全屏
/**
* 开启全屏
*/
import { launchFullscreen } from 'lk-tools-lib'
launchFullscreen()
15、取消全屏
/**
* 关闭全屏
*/
import { exitFullscreen } from 'lk-tools-lib'
exitFullscreen()
16、滚动到顶部
/**
* 滚动到页面顶部
*/
import { scrollToTop } from 'lk-tools-lib'
scrollToTop()
17、滚顶到指定元素
/**
* 滚动到指定元素位置
* 例如 smoothScroll('#id')
*/
import { smoothScroll } from 'lk-tools-lib'
smoothScroll(domId)
18、劫持粘贴板
/**
* @params {value} 需要传到粘贴板里的值
*/
import { copyTextToClipboard } from 'lk-tools-lib'
copyTextToClipboard(domId)
19、获取字节长度
/**
* 获取字节长度
* @params {value}
*/
import { getByteLength } from 'lk-tools-lib'
getByteLength(value)
20、将json转url
/**
* @params {data} object对象
*/
import { parseObject2Url } from 'lk-tools-lib'
parseObject2Url(data)
21、设置cookie
/**
* @params {cname} 键
* @params {cvalue} 键值
* @params {exdays} 有效的天数
*/
import { setCookie } from 'lk-tools-lib'
setCookie(cname, cvalue, exdays)
22、得到cookie的值
/**
* @params {cname} 键
*/
import { getCookie } from 'lk-tools-lib'
getCookie(data)
23、删除指定cookie的值
/**
* @params {cname} 键
*/
import { removeCookie } from 'lk-tools-lib'
removeCookie(cname)
24、删除全部的cookie值
import { clearCookie } from 'lk-tools-lib'
clearCookie()
媒体文件
25、获取视频的时长,封面和宽高
/**
* @param {fileObj}
* @return {Promise}
*/
import { getVideosDuration } from 'lk-tools-lib'
getVideosDuration(file)
26、将base64下载为文件
/**
* @param {dataUrl} base64格式
* @param {filename} 文件名
* @return file
*/
import { downloadBase64File } from 'lk-tools-lib'
downloadBase64File(dataUrl, filename)
27、根据id导出表格数据为excel
/**
* @param {id} table的表格id
* @return file
*/
import { exportExcel } from 'lk-tools-lib'
exportExcel(id)
日期
28、获取某年是多少天
/**
* 获取某年有多少天
* @param {time} 这一年里任意的时间戳
* @returns {number} 例如:getYearOfDays(1661421621720) return 365
*/
import { getYearOfDays } from 'lk-tools-lib'
getYearOfDays(1661421621720)
29、时间戳格式化
/**
* 时间格式化。
* @param {time}
* @param {string} option
* @returns {string}
* 如:formatTime(new Date(1661421621720)) -> 2022-08-25 18:00:21
* formatTime(new Date(1661421621720),"{y}-{m}-{d}") -> 2022-08-25
* formatTime(new Date(1661421621720),"{y}-{m}-{d} 星期{a}") -> 2022-08-25 星期四
*
*/
import { parseTime } from 'lk-tools-lib'
parseTime(time,cFormat)
30、获取某年的某月共多少天
/**
* @param {timeStamp} timeStamp 当月的时间戳
* @returns {Number}
*/
import { getMonthDays } from 'lk-tools-lib'
getMonthDays()
31、获取某一天(年月日)是星期几
/**
* @param {timeStamp} 时间戳
* @returns {string}
*/
import { getDayWeekday } from 'lk-tools-lib'
getDayWeekday(timeStamp)
32、获取某一天所在一周的日期集合
/**
* @param {Object} date日期
* @returns {Array} 一周的日期
*/
import { getWeekDatesForDate } from 'lk-tools-lib'
getWeekDatesForDate(date)
33、获取某一天所在周的日期
/**
* @param {timeStamp} 时间戳
* @returns {string}
*/
import { getWeekDatesForYMD } from 'lk-tools-lib'
getWeekDatesForYMD(timeStamp)
34、获取 开始日期 之后 第n周 的 日期
/**
* @param {start} 开始日期
* @param {diff} n
* @returns {string}
*/
import { getDatesAfterWeeks } from 'lk-tools-lib'
getDatesAfterWeeks(start, diff)
35、判断某日期是否是今天
/**
* @param {date} Date对象
* @returns {string}
*/
import { isToday } from 'lk-tools-lib'
isToday(date)
36、获取 某年某月某日 是在 那一月 的第几周
/**
* @param {time} 时间戳
* @returns {string}
*/
import { getMonthWeek } from 'lk-tools-lib'
getMonthWeek(time)
37、获取今天是星期几
/**
* @returns {string}
*/
import { getCurrentWeekday } from 'lk-tools-lib'
getCurrentWeekday()
38、获取今天的 年月日
/**
* @returns {object} 如:{year: 2022, month: 8, day:22}
*/
import { getCurrentYearMonthDay } from 'lk-tools-lib'
getCurrentYearMonthDay()
39、指定日期是星期几
/**
* @param {string} 例如'2022-12-12'
* @returns {string}
*/
import { getWeekValue } from 'lk-tools-lib'
getWeekValue(dateString)
40、获取两个日期相差的天数
/**
* @param {startDate} 如'2022-08-26'
* @param {enDate} 如'2022-08-28
* @returns {number} getDaysBetween(2022-08-26', 2022-08-28') -> 2
*/
import { getDaysBetween } from 'lk-tools-lib'
getDaysBetween(startDate, enDate)
41、秒数转时分秒
/**
* @param {timeValue} 秒数 如: 3500
* @returns {string} 例如: formatHMS(3500) -> '58分钟20秒'
*/
import { formatHMS } from 'lk-tools-lib'
formatHMS(timeValue)
42、生日对应多少月
/**
* @param {timeStamp} 出生时间戳
* @returns {number} 例如: calAgeOfMonth(1577836800000) -> 31
*/
import { calAgeOfMonth } from 'lk-tools-lib'
calAgeOfMonth(timeStamp)
43、根据id获取年龄
/**
* @param {identityCard} 身份证号
* @returns {number} 例如: getAge(372901199806025978) -> 24
*/
import { getAge } from 'lk-tools-lib'
getAge(identityCard)
44、根据身份证获取生日
/**
* @param {identityCard} 身份证号
* @returns {number} 例如: getBirthByIdCard(372901199806025978) -> '1998-06-02'
*/
import { getBirthByIdCard } from 'lk-tools-lib'
getBirthByIdCard(id)
45、获取两出生日期相差多少
/**
* @param {startTime} 时间戳
* @param {endTime} 时间戳
* @returns {number}
*/
import { getAgeDistance } from 'lk-tools-lib'
getAgeDistance(startTime, endTime)
46、指定日期 以后 几天 的年月日
/**
* @param {timestamp} 时间戳
* @param {addDay} 天数
* @returns {string}
*/
import { getCurDateAdd } from 'lk-tools-lib'
getCurDateAdd(timestamp, addDay)
校验
47、判断是否为null或者为undefined或者空格字符串
/**
* @param {value}
* @returns {boolen}
*/
import { isNullOrEmpty } from 'lk-tools-lib'
isNullOrEmpty(value)
48、是否手机号
/**
* @param {value}
* @returns {boolen}
*/
import { isMobile } from 'lk-tools-lib'
isMobile(value)
48、是否email
/**
* @param {value}
* @returns {boolen}
*/
import { isEmail } from 'lk-tools-lib'
isEmail(value)
49、是否合法邮政编码
/**
* @param {value}
* @returns {boolen}
*/
import { zipCode } from 'lk-tools-lib'
zipCode(value)
50、是否合法身份证号
/**
* @param {value}
* @returns {boolen}
*/
import { isIdCard } from 'lk-tools-lib'
isIdCard(value)
51、是否合法银行卡号
/**
* @param {value}
* @returns {boolen}
*/
import { isBankCard } from 'lk-tools-lib'
isBankCard(value)
52、是否全数字
/**
* @param {value}
* @returns {boolen}
*/
import { isNum } from 'lk-tools-lib'
isNum(value)
53、是否为合法url
/**
* @param {value}
* @returns {boolen}
*/
import { checkUrl } from 'lk-tools-lib'
checkUrl(url)
54、处理金额,补全小数点后两位
/**
* @param {value}
* @returns {boolen}
*/
import { formatMoney } from 'lk-tools-lib'
formatMoney(value)
55、判断是否为数组
/**
* @param {value}
* @returns {boolen}
*/
import { isArray } from 'lk-tools-lib'
isArray(value)
56、判断是否为对象
/**
* @param {value}
* @returns {boolen}
*/
import { isObject } from 'lk-tools-lib'
isObject(value)
57、判断是否为日期对象
/**
* @param {value}
* @returns {boolen}
*/
import { isDate } from 'lk-tools-lib'
isDate(value)
58、判断是否为非空数组
/**
* @param {value}
* @returns {boolen}
*/
import { isNotEmptyArray } from 'lk-tools-lib'
isNotEmptyArray(value)
59、判断是否为合法的图片来源
/**
* @param {value}
* @returns {boolen}
*/
import { isSrc } from 'lk-tools-lib'
isSrc(url)
60、判断是否是PC环境
/**
* @param {value}
* @returns {boolen}
*/
import { isPC } from 'lk-tools-lib'
isPC()
61、判断是否安卓环境
/**
* @returns {boolen}
*/
import { isAndroid } from 'lk-tools-lib'
isAndroid
62、判断是否iphone异形屏
/**
* @returns {boolen}
*/
import { isIosX } from 'lk-tools-lib'
isIosX