1.0.5 • Published 1 year ago

k-jstoollib v1.0.5

Weekly downloads
-
License
ISC
Repository
-
Last release
1 year ago

k-jstoollib

金融业务工具方法库

目的:开发中常用的工具函数, 轻松提高业务研发效率.。

安装使用

  1. 使用npm安装

npm:

$ npm i k-jstoollib

webpack、RequireJS、SeaJS等

// 完整引入
import jstoollib from 'k-jstoollib'

// 挂载到全局
Vue.prototype.$jstoollib = jstoollib;
// 使用
this.$jstoollib.xxx()

推荐使用方法

你真的不需要完整引入所有函数,所以只引入需要使用的方法即可。

import { xxx } from 'k-jstoollib'

// 使用,直接调用方法
方法名()

API文档

Base

  • getType - 用于获取变量的数据类型
// obj 变量
getType(obj)
  • isString - 是否字符串
// o 变量参数
isString(o)
  • isNumber - 是否数字
// o 变量参数
isNumber(o)
  • isBoolean - 是否Boolean
// o  变量参数
isBoolean(o)
  • isFunction - 是否函数
// o  变量参数
isFunction (o)
  • isNull - 是否为Null
// o  变量参数
isNull (o)
  • isUndefined - 是否为undefined
// o  变量参数
isUndefined (o)

Array

  • arrayToTree - 一维数组转换为树形数据数组格式
/**
 * @param arr 原始数据
 * @param id 唯一标识
 * @param pid 父级唯一标识
 * @param children 子集的key
*/
arrayToTree(arr, id = 'id', pid = 'pid', children = 'children')
  • treeToArray - 将树形数据数组转换为一维数组
/**
 * @param tree 数据
 * @param children 子集的key值
*/
treeToArray(tree, children = 'children')
  • arrayIntersection - 获取两个数组的交集
// arrA, arrB 数组
arrayIntersection(arrA, arrB)
  • arrayUnion - 获取两个数组的并集
// arrA, arrB 数组
arrayUnion(arrA, arrB)
  • arraySubtraction - 获取两个数组的差集
// arrA, arrB 数组
arraySubtraction (arrA, arrB)
  • getAnItemInArray - 获取数组中某一属性的集合
/**
 * 获取数组中该属性的集合
 * @param data 原始数据
 * @param key 要获取的属性key
 * @returns {*}
 */
getAnItemInArray(data, key)
  • getSelectAllItem - 根据选中的数据从原始数组获取对应的其他属性
/**
 * 根据选中的数据从原始数组获取对应的其他属性
 * @param {array} selArr 为选中的数据code
 * @param {array} arr 为下拉框绑定的数据
 * @param {string} code  selArr中的元素 与 arr中对应的属性
 * @param label label没有传,返回选中的数据所有属性数组,传了label,只获取label属性的数组
 * @returns [object]
 */
getSelectAllItem(selArr, arr, code, label) 
  • arrIncludeValue - 数组是否包含某值
/**
 * 数组是否包含某值
 * @param {Array} arr 数组
 * @param value 值,目前只支持 String,Number,Boolean
 */
arrIncludeValue(arr, value)
  • arrRemoveRepeat - 普通数组去重
// arr 数组
arrRemoveRepeat(arr)
  • objArrRemoveRepeat - 对象数组去重
/**
 * 对象数组去重
 * @param array 要去重的数组
 * @param key 要去重的对象属性值
 */
objArrRemoveRepeat (array, key)
  • arrSort- 数组排序
/**
 * 数组排序
 * @param {Array} arr  数组
 * @param {Boolean} ascendFlag   升序,默认为 true
 */
arrSort(arr, ascendFlag = true) 
  • isArrayEqual - 判断两个数组是否相等
// arrA, arrB 数组
isArrayEqual(arrA, arrB) 
  • maxArray - 获取数组中的最大值
// arr 数组
maxArray(arr)
  • minArray - 获取数组中的最小值
// arr 数组
minArray(arr)
  • arrayAverage- 计算数组平均值
// arr 数组
arrayAverage(arr)
  • filterspecifiedVal - 排除多个指定值返回筛选之后的数组
/**
 * 排除多个指定值返回筛选之后的数组
 * @param arr 原数据数组
 * @param excludeValues  包含指定值的数组
 * @returns {*}
 */
filterspecifiedVal(arr, excludeValues)
  • findIndexInArr - 返回数组中指定元素的下标
/**
 * 返回数组中指定元素的下标
 * @param {Array }arr 数组
 * @param data 要判断的数据
 * @param code 对象数组需要传要查找数据对应的key值
 */
findIndexInArr (arr, data, code) 
  • getObjectByOnlyCode, // 根据唯一标识获取所属对象
/**
 * 根据唯一标识获取所属对象
 * @param nodes 原始数据
 * @param code 唯一标识
 * @param {string} codeName 唯一标识的keyName
 * @returns {*|{}}
 */
getObjectByOnlyCode(nodes, code, codeName = 'value')
  • modifyKeyValue - 遍历树-修改树内指定节点kv
/**
 * @param objAry 数据
 * @param key 键值
 * @param newkey 新键值
 */
modifyKeyValue(objAry, key, newkey)

Cookie

String

  • cutString - 截取指定字节的字符串
/**
 * 截取指定字节的字符串
 * @param str 要截取的字符穿
 * @param len 要截取的长度,根据字节计算
 * @param suffix 截取前len个后,其余的字符的替换字符,一般用“…”, 非必传
 * @returns {*}
 */
cutString(str,len,suffix)
  • substring - 截取指定长度的字符串
/**
 *  截取指定长度的字符串
 * @param str 字符串
 * @param start 起始索引
 * @param length 截取长度
 * @returns {string}
 */
subString(str, start, length) 
  • beforeStrSub - 截取指定字符之前的字符串
/**
 * @param str
 * @param char
 */
beforeStrSub(str, char)
  • afterStrSub - 截取指定字符之后的字符串
/**
 * @param str
 * @param char
 */
afterStrSub(str, char)
  • transFormat - 可以替换任意数字和符号
/**
 * 可以替换任意数字和符号
 * @param {string} str 表示将要替换的字符串
 * @param {string} l 表示将要替换的字符
 * @param {string} r 表示被替换的字符
 */
transFormat (str, l, r) 
  • insertStr - 在字符串指定位置插入字符
/**
 * @param character 原字符串
 * @param site 要插入的字符的位置
 * @param newStr 想要插入的字符
 */
insertStr(character, site, newStr)
  • keyCharacterMap - 字符串反转处理分割
/**
 * 字符串反转处理分割
 * @param str 原字符串
 * @param under 根据什么字符处理
 * @param event 使用什么字符把处理结果分割
 */
keyCharacterMap (str,under,event)
  • judgeStrHave - 查找指定的字符或者字符串是否存在
/**
 * str 将要查找的字符串
 * queryStr 在字符串中查找的字符或字符串片段
 * 如果在字符串中有这个字符或者字符串,返回1,否则返回-1
 */
judgeStrHave(str,queryStr)
  • strOmit - 字符串按照长度显示省略号
/**
 * 字符串省略,超出部分显示 ’...‘
 * @param {*} str 字符串
 * @param {*} n 保留字符0到n
 */
strOmit(str, n)

Function

  • debounce - 用于防抖动,防止函数在短时间内连续多次调用
/**
 * 用于防抖动,防止函数在短时间内连续多次调用。
 * @param func
 * @param wait 时间
 * @returns {(function(): void)|*}
 */
debounce(func, wait)
  • throttle - 用于节流,防止函数在短时间内频繁调用
/**
 * 用于节流,防止函数在短时间内频繁调用
 * @param func
 * @param wait
 * @returns {(function(): void)|*}
 */
throttle(func, wait)
  • delay- 延时执行
  • randomInt - 用于生成指定范围内的随机整数
// min max 生成指定随机数的范围
randomInt(min, max)
  • randomStr - 生成指定个数的随机字符串
// n  字符串长度, str: 组成字符串单词
randomStr(n, str)
  • randomHexColorCode - 随机十六禁止颜色
randomHexColorCode()

Date

  • formatDate - 格式化日期:yyyy-MM-dd
formatDate(date)
  • formatOtherDate - 根据需要的格式 转换日期格式
// formateType: yy-mm-dd、yymmdd 等
formatOtherDate(dateS, formateType)
  • getPreDate - 获取T-1的日期
getPreDate()
  • getTheDatesOfWeek - 获取输入日期所在周的开始日期和结束日期
/*
* 获取输入日期所在周的开始日期和结束日期
* @param date 需要判断的日期,不传默认查询当天
*/
getTheDatesOfWeek(date) 
  • getMonthEndDay - 当前月份的最后一天
getMonthEndDay()
  • getNowDayOfWeek - 获取输入的日期对应的星期
/**
 * 获取输入的日期对应的星期
 * @param data String  不传默认查当天
 */
getNowDayOfWeek(data)
  • getDaysBetween - 判断输入的两个 日期间隔几天
/**
 * 判断输入的两个 日期间隔几天
 * @param startDate  开始日期 yyyy-MM-dd
 * @param enDate  结束日期 yyyy-MM-dd
 * @returns {number} 两日期相差的天数
 */
getDaysBetween (startDate, enDate)
  • getWeekOnMonth - 获取输入的日期属于当月的第几周
/**
 * 获取输入的日期属于当月的第几周
 * @param date 输入的日期 不传默认查当天
 */
getWeekOnMonth(date)
  • getWeekNumOnYear - 获取输入的日期属于当年的第几周
/**
 * 获取输入的日期属于当年的第几周
 * @param date 不传默认查当天
 * @returns {number}
 */
getWeekNumOnYear(date)
  • getWeekRange - 获取某个日期所在周的日期范围
/**
 * 获取某个日期所在周的日期范围
 * @param d 注意日期格式 不传查当天
 * @returns {Date[]}
 */
getWeekRange(d)
  • getDayNumOfYear - 获取某个日期是当年中的第几天
/**
 * 获取某个日期是当年中的第几天
 * @param val
 * @returns {number}  必传
 */
getDayNumOfYear(val)
  • getMonthRange - 获取某个日期所在月的日期范围
/**
 * 获取某个日期所在月的日期范围
 * @param d 注意日期格式 不传查当天
 * @returns {Date[]}
 */
getMonthRange(d)
  • getQuarterRange - 获取某个日期所在季度的日期范围
/**
 * 获取某个日期所在季度的日期范围
 * @param d  日期为 yy-mm-nn
 * @returns {Date[]}
 */
getQuarterRange(d)
  • pickerOptionslimit - element 日期选择组件 限制日期选择
/*
* element 日期选择组件 限制日期选择
* @param type: 1=> T-1
* @param type: 2=>T
* @param type:3=>当前month
*/
pickerOptionslimit(type)
  • getNDaysAroundDate - 获取指定时间N天前/后的日期
/**
 * @param date 日期,不传查当天
 * @param n 默认为0
 */
getNDaysAroundDate(date, n)
  • isLeapYear - 判断是否为闰年
// year 年
isLeapYear(year)
  • getHoursBetweenDates - 获取两个日期之间的小时数
// date1 date2  两个日期
getHoursBetweenDates(date1, date2)
  • isDateInRange - 判断一个日期是否在指定日期范围内
/**
 * 判断一个日期是否在指定日期范围内
 * @param date 输入的日期
 * @param start 日期范围的开始日期
 * @param end 日期范围的结束日期
 * @returns {boolean}
 */
isDateInRange(date, start, end)
  • isWeekday - 判断某个日期是否为工作日
// date 日期
isWeekday(date)
  • getNextWeekday - 计算某个日期的下一个工作日
/**
 * 计算某个日期的下一个工作日(周一至周五)
 * @param date
 * @returns {Date}
 */
getNextWeekday(date)
  • getlastFirday - 获取相对于今天,上周五的日期
getlastFirday()
  • getLastYearYesterDay - 相对于今天t-1日,获取N年前的日期
// 获取n年前的t-1 日
getLastYearYesterDay(yearNum = 1) 
  • getDatesNDaysAgo - 根据当前日期,获取n天前的日期
/**
 * 根据当前日期,获取n天前的日期
 * @param n
 * @returns {Date}
 */
getDatesNDaysAgo(n)
  • getLastYearEndDate - 获取去年年末日期
getLastYearEndDate()
  • getDaysByTheMonth - 判断输入的月份当月共多少天
/**
 * 判断输入的月份当月共多少天
 * @param {string} year 年份
 * @param {string} month 月份
 */
getDaysByTheMonth(year, month)
  • getRecentMonth - 获取最近N月的日期
// n {number} 数值
getRecentDay(n)
  • getRecentDay - 获取最近N天的日期
// n {number} 数值
getRecentMonth(n)

Object

Regexp

  • isPhoneNumber - 判断是否为有效的手机号码
/**
 * @param phone
 * @returns {boolean}
 */
isPhoneNumber(phone)
  • isEmail - 判断是否为有效的邮箱地址
/**
 * @param email
 * @returns {boolean}
 */
isEmail(email)
  • isUrl - 判断是否为有效的 URL 地址
/**
 * @param url
 * @returns {boolean}
 */
isUrl(url)
  • isIDCard - 判断是否为有效的身份证号码
/**
 * @param idCard
 * @returns {boolean}
 */
isIDCard(idCard)
  • isDate - 判断是否为有效的日期格式
/**
 * 判断是否为有效的日期格式:  yy-mm-dd
 * @param dateString
 * @returns {boolean}
 */
isDate(dateString)
  • isIP - 判断是否为有效的 IP 地址
/**
 *  判断是否为有效的 IP 地址:
 * @param ipAddress
 * @returns {boolean}
 */
isIP(ipAddress)
  • checkLetter - 判断是否是字母
/**
 *  判断是否是字母
 * @param {string} data
 */
checkLetter(data)
  • ischinese - 校验是否中文组成
/**
 * @param str
 * @returns {boolean}
 */
ischinese(str)

FormatDisplay

  • _toLittleCamel - 字符串:'-'连接命名转换成小驼峰命名
/**
 * 字符串:'-'连接命名转换成小驼峰命名
 * @param str
 * @returns {string|*}
 */
 _toLittleCamel(str)
  • _toBigCamel - 字符串:'-'连接命名转换成大驼峰命名
/**
 * 字符串:'-'连接命名转换成大驼峰命名
 * @param str
 * @returns {string|*}
 * @private
 */
_toBigCamel(str)
  • camelTo_ - 字符串:驼峰命名转换成'-'连接命名 /**
  • 字符串:驼峰命名转换成'-'连接命名
  • @param str
  • @returns {string}
  • @private */
camelTo_(str)
  • strTrim - 去除字符串中的空格
/**
 * JS去除字符串中的空格
 * @param str
 * @param type 1-所有空格 2-前后空格 3-前空格 4-后空格  默认2
 * @returns {string}
 */
strTrim(str, type)
  • formatMobile - 手机号格式化显示
/**
 * 手机号格式化显示
 * @param mobile String
 * @returns {string}
 */
formatMobile(mobile)
  • keepDecimalNoRound - 保留n位小数,不够补0, 不四舍五入
/**
 * 将number保留bitNum位小数,不够补0, 非四舍五入
 * @param number 数据
 * @param bit 小数点位数 默认保留两位小数
 * @returns {string|number}  返回值为 String,可使用parseFloat转换为Number
 */
keepDecimalNoRound(number, bit)
  • keepDecimalround - 保留n位小数,不够补0, 四舍五入
/**
 * 将value保留bit位小数,不够补0, 四舍五入
 * @param number 数据
 * @param bit 小数点位数
 * @returns {string} 返回的结果为字符串 可使用parseFloat转换为Number
 */
keepDecimalround(number, bit) 
  • titleCaseStr - 字符串首字母大写
/**
 * 字符串首字母大写
 * @param {string} 参数为字符串 解构为数组
 * @returns {string}
 */
titleCaseStr(str)
  • titleLowercaseStr - 字符串首字母小写
/**
 * 首字母小写
 * @param {string}参数为字符串 解构为数组
 * @returns {string}
 */
titleLowercaseStr(str)
  • capitalizeEveryWord - 字符串由空格间隔的每个单词首字母大写
/**
 * 字符串由空格间隔的每个单词首字母大写
 * @param str
 */
capitalizeEveryWord(str)
  • toPoint - 百分数转小数
/**
 * 百分数转小数
 * @param {string} percent  百分数
 * @param {number} places 小数保留几位小数 默认保留两位小数
 * @returns {number}
 */
 toPoint(percent, places)
  • toPercent - 小数转百分数
/**
 * 小数转百分数
 * @param {number} point 小数
 * @param {number} places 百分数保留几位小数 默认不保留小数
 * @returns {string}
 */
toPercent(point, places)

金额转换

  • moneyFormat - 金额千分位转换
/**
 * 金额千分位转换
 * @param {Number} number:要格式化的数字
 * @param {number} decimals:保留几位小数
 * @param {string} dec_point:小数点符号
 * @param {string} thousands_sep:千分位符号
 */
moneyFormat(number, decimals, dec_point, thousands_sep)
  • convertCurrency - 大写金额转换
/**
 *
 * @param money 金额
 * @returns {string} 返回字符串大写金额
 */
convertCurrency(money)
  • delThousands - 金额去除千分位
/**
 * @description 去除千分位
 *@param{Object}num
 */
 delThousands(num)
  • toCurrency - 简单的货币单位转换
/**
 * 简单的货币单位转换
 * @param n 金额
 * @param curr 单位
 * @param LanguageFormat 语言
 * @returns {string}
 */
 例如:
 /*
toCurrency(123456.789, 'EUR'); // €123,456.79
toCurrency(123456.789, 'USD', 'en-us'); // $123,456.79
toCurrency(123456.789, 'USD', 'fa'); // ۱۲۳٬۴۵۶٫۷۹
toCurrency(322342436423.2435, 'JPY'); // ¥322,342,436,423
*/
toCurrency = (n, curr)
  • unitConversion - 单位转换方法
/**
 * @description: 单位转换方法
 * @param {*} moneyV       金额
 * @param {*} thousandthV  是否需要千分位转换,默认为 true
 * @param {*} unitV        单位长度,如果传入该参数,则不会根据金额长度计算单位长度,而是直接使用传入的单位长度作为单位长度
 * @param {*} fixedV       小数位数,数组,长度为 5,分别对应元、万元、亿元、万亿元、千万亿的小数位数,默认为 [2, 2, 4, 4, 4]
 * @param {*} unitNameV    单位名称,数组,长度为 5,分别对应元、万元、亿元、万亿元、千万亿的单位名称,默认为 ['元', '万元', '亿元', '万亿元', '千万亿']
 * @return {*} String
 */

/**
 *  * 使用示例:
 * utils.unitConversion(123456789.123456789) => 12,3456.7891万元
 * utils.unitConversion(12345678912345.6789) => 123,4567.8912亿元
 * utils.unitConversion(123456789123456789.123456789) => 123,4567.8912万亿元
 *
 * object 参数使用示例:
 * utils.unitConversion({
 *  money: 123456789.123456789,
 *  thousandth: true,
 *  unit: 4,
 *  fixed: [2, 2, 4, 4, 4],
 *  unitName: ['元', '万元', '亿元', '万亿元', '千万亿']
 * }) => 12,3456.7891万元
 */
unitConversion(moneyV, thousandthV, unitV, fixedV, unitNameV) 

浮点数运算

  • floatPointAdd - 浮点数运算 加法

  • floatPointSub - 浮点数运算 减法

  • floatPointMul - 浮点数运算 乘法
  • floatPointAddDiv - 浮点数运算 除法 用来得到精确的除法结果

base64

// 1.加密
// var str = '124中文内容';
// var base = new Base64();
// var result = base.encode(str);
// //document.write(result);

// //2.解密
// var result2 = base.decode(result);
// document.write(result2);

浏览器操作

  • scrollToTop - 滚动到页面顶部
scrollToTop ()
  • scrollToBottom - 滚动到页面底部
scrollToBottom ()
  • toFullScreen - 打开浏览器全屏
toFullScreen () 
  • exitFullscreen - 退出浏览器全屏
exitFullscreen()
  • openWindow - 打开浏览器小窗口
/**
 * @param url 浏览器地址
 * @param title 打开的地址标题
 * @param w 窗口宽
 * @param h 窗口高
 */
openWindow (url, title, w, h)

echatrs 图表

  • downChartPng - echarts图片导出
1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago