2.0.3 • Published 2 years ago

xxy-qinshihuang v2.0.3

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

安装

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)
2.0.3

2 years ago

1.0.10

3 years ago

1.0.9

3 years ago

1.0.8

3 years ago

2.0.1

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago