2.0.3 • Published 2 years ago
xxy-qinshihuang v2.0.3
安装
npm install xxy-qinshihuang --save
使用方法
// 全量引入
import qinshihuang from 'xxy-qinshihuang'
// 部分引入
import { tools,validate,timeTools } from 'xxy-qinshihuang'
tools 工具类
目录
- 一位数组转二维数组
- 两个数计算百分比
- 获取数组交集
- 获取对象数组交集并更新原数组
- A数组中选中的多个元素添加到B新数组中
- 字符串空格去除与替换
- 根据身份证号,获取生日、性别、年龄、地址码
- 函数防抖
- 函数节流
- 字典数据转义
- number类型数据加、减、乘、除运算
- 深度拷贝
- 手机号脱敏
- 身份证号脱敏
- 格式化数字,比如数字千分位
- 获取url上的参数
oneChunkTwo 一位数组转二维数组
/**
* 一位数组转二维数组
* @param {Array} sourceArr 数据源
* @param {number} copies 切割长度
* @returns {Array} 二维数组
*/
qinshihuang.tools.oneChunkTwo(sourceArr,copies)
percentage 两个数计算百分比
/**
* 计算百分比
* @param {number} num 分子
* @param {number} total 分母
* @returns {number} 返回数百分比
*/
qinshihuang.tools.percentage(num,total)
intersection 获取非对象数组交集
/**
* 获取非对象数组交集
* @param {Array} list 字符串数组
* @param {Array} args 字符串数组
* @returns {Array} 交集数组
*/
qinshihuang.tools.intersection(list,args)
mergeList 获取对象数组交集并更新
/**
* 获取对象数组交集并更新
* @param {Array} dealData 需要处理数组,对象数组
* @param {String} f 对比字段
* @param {Array} sourceData 展示的源数据数组
* @returns {Array} 把两个数组的交集部分替换到源数据对应位置上
*/
qinshihuang.tools.mergeList(dealData, 'id', sourceData)
mergeNewList 多选框选中的元素数组添加到新数组中
/**
* 多选框选中的元素数组添加到新数组中
* @param {Array} dealData 用户页面显示的数组
* @param {String} f 对比字段
* @param {Array} selectionData 用户选中的元素数组
* @returns {Array} 用户页面显示的新数组
*/
qinshihuang.tools.mergeNewList(dealData, 'id', selectionData)
trimStart 字符串空格去除与替换
/**
* 字符串空格去除与替换
* @param {String} str 需要处理字符串
* @returns {String}
*/
qinshihuang.tools.trimStart(str)
idCardNo 根据身份证号,获取生日、性别、年龄、地址码
/**
* 根据身份证号,获取生日、性别、年龄、地址码
* @param {String} val 身份证号
* @return {Object} {birthday: 生日, birthday: 生日, sexName: 性别, sexCode: 性别码, age: 年龄, areaCode: 地址码}
*/
qinshihuang.tools.idCardNo(val)
debounce 函数防抖 防抖:避免用户在较短时间内进行过快点击, 只有任务触发的间隔超过指定间隔的时候,任务才会执行
/**
* 防抖:避免用户在较短时间内进行过快点击, 只有任务触发的间隔超过指定间隔的时候,任务才会执行
* @param {Function} fn 要处理函数
* @param {Number} interval 防抖的延时
* @return {Function}
*/
qinshihuang.tools.debounce(fn, interval)
throttle 函数节流 节流:指定时间间隔内只会执行一次任务,不会重复提交,主要走接口的按钮都要节流
/**
* 节流:指定时间间隔内只会执行一次任务,不会重复提交,主要走接口的按钮都要节流
* @param {Function} fn 要处理函数
* @param {Number} interval 节流的延时
* @return {Function}
*/
qinshihuang.tools.throttle(fn, interval)
dictTransfer 字典数据转义
/**
* 场景:pc端列表发布类型显示为name,但是后端传递数据是code
* 目标字段 item.name
* 字典数组
* {
name: '平台',
code: 0
},
{
name: '机构',
code: 1
}
* 字典数据转义
* @param {String | Number} targetValue 需要转义的目标字段
* @param {Array} List 需要转义的字典数组
* @return {String | Number} 返回转义后的数据
*/
qinshihuang.tools.dictTransfer(targetValue, list, 'code', 'name')
numAdd 加法运算,避免带有小数点的数据相加后产生精度损失。
/**
* 场景:商品金额交易会产生意想不到的结果哦 例如 0.2+0.4 = 0.6 ?
* 避免数据相加小数点后产生多位数和计算精度损失
* @param {Number} num1
* @param {Number} num2
* @return {Number}
*/
qinshihuang.tools.numAdd(num1, num2)
numSub 减法运算,避免带有小数点的数据相减后产生精度损失。
/**
* 避免数据相加小数点后产生多位数和计算精度损失
* @param {Number} num1
* @param {Number} num2
* @return {Number}
*/
qinshihuang.tools.numSub(num1, num2)
numMulti 乘法运算,避免带有小数点的数据相乘后产生精度损失。
/**
* 避免数据相加小数点后产生多位数和计算精度损失
* @param {Number} num1
* @param {Number} num2
* @return {Number}
*/
qinshihuang.tools.numMulti(num1, num2)
numDiv 除法运算,避免带有小数点的数据相法后产生精度损失。
/**
* 避免数据相加小数点后产生多位数和计算精度损失
* @param {Number} num1
* @param {Number} num2
* @return {Number}
*/
qinshihuang.tools.numDiv(num1, num2)
deepCopy 深度拷贝
/**
* 为什么不用 JSON.parse(JSON.stringify(...)) 的方式实现?
* JSON.parse 方式无法拷贝函数
* @param {Object} data 要拷贝的对象
* @returns {Object} 拷贝出的新对象
*/
qinshihuang.tools.deepCopy(data)
desensitizationPhone 手机号脱敏
/**
* @param {String} phone
* @return {String}
*/
qinshihuang.tools.desensitizationPhone(phone)
desensitizationIdCard 身份证号脱敏
/**
*
* 身份证号脱敏
* @param {String} string
* @return {String} 123****1234
*/
qinshihuang.tools.desensitizationIdCard(data)
formatNumber 格式化数字,比如数字千分位
/**
* @param {String|Number} number 要格式化的数字
* @param {Number} position 每隔几位数进行分割 默认3
* @param {Number} decimal 要保留的小数位 默认2
* @param {String} symbol 用来分割的符号,默认,
* @return {String} 1,234,567.00
*/
qinshihuang.tools.formatNumber(number)
formatNumber 格式化数字,比如数字千分位
/**
* 获取url上的参数
* @param {String} url url
* @param {String} key 要获取的key,不传返回对象
* @return {String | Object}
*/
qinshihuang.tools.getUrlParam(url,key)
timeTools 时间格式化工具
- 格式化时间函数
- 秒数转时间字符串
- 时间字符串转秒数
- 秒数转天、小时、分
- 获得某年某月天数
dateFtt 格式化时间函数
/**
* 格式化时间函数
* @param {String} fmt yyyy-MM-dd hh:mm:ss 格式化类型
* @param {String|Date} date 时间字符串或date对象
* @return {String} 2017-12-09 12:22:03
*/
qinshihuang.timeTools.dateFtt(fmt, date)
secToTime 秒数转时间字符串
/**
* @param {Number} time 秒数 如:86400
* @return {String} 格式化后的时分秒,如:'24:00:00'
*/
qinshihuang.timeTools.secToTime(time)
timeToSec 时间字符串转为秒
/**
* @param {Number} time 秒数 如:86400
* @return {String} 格式化后的时分秒,如:'24:00:00'
*/
qinshihuang.timeTools.timeToSec(time)
timeToStr 秒数转为秒、分、时、天
/**
* 秒数转分、时、天
* @param {*} time 86400
* @returns 24小时
*/
qinshihuang.timeTools.timeToStr(time)
getMonthDays 获得某年某月天数
/**
* @params year 年
* @params month 月份
* @returns 31
*/
qinshihuang.timeTools.getMonthDays(year,month)
validate 校验类
目录
- 身份证号是否合法
- 手机号是否合法
- 是否都是中文
- 邮政编码是否合法
- 内容是否是email地址
- 内容是否是IP
- 内容是否是URL地址
- 内容是否是合法的护照号码(包含香港、澳门)
- 内容是否是合法的银行卡号
- 验证指定的内容是否是金额
idCard 验证身份证号是否合法
/**
* @param {String} idCard
* @return {Boolean}
*/
qinshihuang.validate.idCard(idCard)
phone 验证手机号是否合法
/**
* @param {String} phone
* @return {Boolean}
*/
qinshihuang.validate.phone(phone)
chinese 验证指定的内容是否都是中文
/**
* @param {String} str
* @return {Boolean}
*/
qinshihuang.validate.chinese(str)
postalCode 验证邮政编码是否合法
/**
* @param {String} str
* @return {Boolean}
*/
qinshihuang.validate.postalCode(str)
email 验证指定的内容是否是email地址
/**
* @param {String} str
* @return {Boolean}
*/
qinshihuang.validate.email(str)
url 验证指定的内容是否是URL地址
/**
* @param {String} str
* @return {Boolean}
*/
qinshihuang.validate.url(str)
ip 验证指定的内容是否是IP
/**
* @param {String} str
* @return {Boolean}
*/
qinshihuang.validate.ip(str)
emoji 验证指定的内容是否包含emoji表情符
/**
* @param {String} str
* @return {Boolean}
*/
qinshihuang.validate.emoji(str)
bankCard 验证指定的内容是否是合法的银行卡号
/**
* @param {String} str
* @return {Boolean}
*/
qinshihuang.validate.bankCard(str)
passport 验证指定的内容是否是合法的护照号码(包含香港、澳门)
/**
* @param {String} str
* @return {Boolean}
*/
qinshihuang.validate.passport(str)
relAmtCheck 验证指定的内容是否是金额
/**
* @param {String} str 整数或者小数(小数前十位、后2位)
* @return {Boolean}
*/
qinshihuang.validate.relAmtCheck(str)