c-tools-js
v2.1.5
Published
工具类
Downloads
284
Readme
assets
苹方字体
c-tools-js/assets/font/apple
scss
c-tools-js/assets/scss/comm.scss 公共样式
c-tools-js/assets/scss/phone.scss 手机样式
css
c-tools-js/assets/css/comm.css 公共样式
c-tools-js/assets/css/phone.css 手机样式
echarts
chinajs 中国地图 解决文字重叠问题
import Vue from 'vue'
import * as echarts from 'echarts'
import 'c-tools-js/assets/echarts/map-chinajs'
Vue.prototype.$echarts = echarts
Color
/**
* rgb 转 hex
* @param {String} rgb 颜色 rgb(255,255,255)
* @return hex
*/
RgbToHex
/**
* hex 转 rgb 例如:'#23ff45'
* @param {String} hex 颜色
* @param {Boolean} str 是否字符串, true为数组
* @return string
*/
HexToRgb
/**
* 生成随机十六进制颜色
* @return hex
*/
RandomHex
/**
* 生成随机RGB颜色
* @return string
*/
RandomRGB
/**
* 求两个颜色之间的渐变值
* @param {string} startColor 开始的颜色
* @param {string} endColor 结束的颜色
* @param {number} step 颜色等分的份额
* */
ColorGradient
/**
* JS颜色十六进制转换为rgb或rgba,返回的格式为 rgba(255,255,255,0.5)字符串
* @param {String} color 十六进制的色值
* @param {Number} alpha rgba的透明度,默认0.3
*/
ColorToRgba
Cookie
/**
* 获取cookie
* @param {String} name cookie名
*/
GetCookie
/**
* 清除全部Cookie
*/
ClearCookies
Date
/**
* 查找日期位于一年中的第几天
* @param {Date} date new Date()
* dayOfYear(new Date())
* Result: 272
*/
DayOfYear
Is
/**
* 是否IE
*/
IsIE
/**
* 是否Edge
*/
IsEdge
/**
* 是否火狐
*/
IsFirefox
/**
* 对象是否相等
* @param {Object} a
* @param {Object} b
* @returns {Boolean}
*/
ObjectEquals
/**
* 数组是否相等
* @param {Array} arrayA
* @param {Array} arrayB
* @returns {Boolean}
*/
ArrayEquals
/**
* 数组/对象 是否相等
* @param {Array | Object} value1
* @param {Array | Object} value2
* @returns {Boolean}
*/
IsEqual
/**
* 是否为空
* @param {String} val
* @returns {Boolean}
*/
isEmpty
Number
/**
* Comma用于分割数字,默认为3位分割,一般用于格式化金额
* @param {Number} source 数字
* @param {Int} length 分割位, 默认为3位
* Comma(21342132) // 21,342,132
* Comma(21342132, 4) // 2134,2132
* Comma(21342132.234) // 21,342,132.234
*/
Comma
/**
* Pad用于按照位数补0
* @param {Number} source 数字
* @param {Int} length 补充位, 默认为2位
* Pad(1) // 01
* Pad(234, 4) // 0234
*/
Pad
/**
* Random用于生成两个整数范围内的随机整数
* @param {Int} min 最小
* @param {Int} max 最大
*/
Random
Object
/**
* 检查是否对象数组
* @param {Array|Object} data
* @return Boolean
*/
IsArrayObject
/**
* 检查是否对象
* @param {Array|Object} data
* @return Boolean
*/
IsObject
/**
* 检查是否函数
* @param {Array|Object} data
* @return Boolean
*/
IsFunction
/**
* 检查是否数组
* @param {Array|Object} data
* @return Boolean
*/
IsArray
/**
* 检查是否字符串
* @param {Array|Object} data
* @return Boolean
*/
IsString
/**
* 拷贝
* @param {Array | Object} obj
* @returns obj
*/
Clone
/**
* 使用递归的方式实现数组、对象的深拷贝
* @param {Array | Object} obj
* @returns obj
*/
DeepClone
/**
* JS对象深度合并
* @param {Object} target 当前对象
* @param {Object} source 合并对象
* @returns obj
*/
DeepMerge
/**
* 删除空的参数(常用于post请求)
* @param {*} obj
* @return obj
*/
DeleteNullObj
Random
/**
* 打乱数组
* @param {Array} arr 数组
* shuffleArray([1, 2, 3, 4])
* Result: [ 1, 4, 3, 2 ]
*/
ShuffleArray
RegExp
/**
* 验证手机号码
* @param {Number, String} str
*/
RegExpChinaMobile
/**
* 火车车次
* @param {Number, String} str
* 例如: G1868, D102, D9, Z5, Z24, Z17
*/
RegExpTrainNumber
/**
* 身份证号, 支持1/2代(15位/18位数字)
* 例如: 622223199912051311, 12345619991205131x, 123456991010193
*/
RegExpIDCard
/**
* 香港身份证
* @param {Number, String} str
* 例如: K034169(1)
*/
RegExpHKIDCard
/**
* 澳门身份证
* 例如: 5686611(1)
*/
RegExpMacaoIDCard
/**
* 台湾身份证
* 例如: U193683453
*/
RegExpTaiwanIDCard
/**
* 护照(包含香港、澳门)
* 例如: s28233515, 141234567, 159203084, MA1234567, K25345719
*/
RegExpPassport
/**
* 邮政编码(中国)
* 例如: 734500, 100101
*/
RegExpPostalCode
/**
* 密码强度校验,最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符
* 例如: Kd@curry666
*/
RegExpPassword
/**
* 用户名校验,4到16位(字母,数字,下划线,减号)
* 例如: xiaohua_qq
*/
RegExpUserName
/**
* 必须带端口号的网址(或ip)
* 例如: https://www.qq.com:8080, 127.0.0.1:5050, baidu.com:8001, http://192.168.1.1:9090 , 反例: 192.168.1.1, https://www.jd.com
*/
RegExpAddressOrIp
/**
* 网址(url,支持端口和"?+参数"和"#+参数)
* 例如: www.qq.com, https://baidu.com, 360.com:8080/vue/#/a=1&b=2
*/
RegExpAddress
/**
* 统一社会信用代码
* 例如: 91230184MA1BUFLT44, 92371000MA3MXH0E3W
*/
RegExpSocialCredit
/**
* 视频(video)链接地址
* 例如: http://www.abc.com/video/wc.avi
* 格式:swf|avi|flv|mpg|rm|mov|wav|asf|3gp|mkv|rmvb|mp4
*/
RegExpVideo
/**
* 图片(image)链接地址
* 例如: https://www.abc.com/logo.png
* 格式:gif|png|jpg|jpeg|webp|svg|psd|bmp|tif
*/
RegExpImage
/**
* 数字/货币金额(支持负数、千分位分隔符)
* 例如: 100, -0.99, 3, 234.32, -1, 900, 235.09, 12,345,678.90
*/
RegExpCurrency
/**
* 邮箱
* 例如: [email protected], [email protected], 汉字@qq.com
*/
RegExpEmail
/**
* ip-v4[:端口]
* 例如: 172.16.0.0, 172.16.0.0:8080, 127.0.0.0, 127.0.0.0:998
*/
RegExpIPv4
/**
* ip-v6[:端口]
* 例如: 2031:0000:130f:0000:0000:09c0:876a:130b, [2031:0000:130f:0000:0000:09c0:876a:130b]:8080
*/
RegExpIPv6
String
/**
* 英文字符串首字母大写
* @param {String} str 英文字符串
* @return str
*/
Capitalize
/**
* 去除空格
* @param {String} string 字符串
* @param {String} pos 可选(both:两端, left:左端, right:右端, all:全部)
* @return str
*/
Trim
/**
* json对象转url参数: {aaa: 1} => a=1
* @param {*} obj 转化对象
* @param {*} encode 是否需要encode
* @return str
*/
Query2String
/**
* url参数转json对象: a=1 => {aaa: 1}
* @param {*} str 转化字符串
* @param {*} decode 是否需要decode
* @return obj
*/
String2Query
/**
* 以json的格式获取当前url上的参:
* http://www.taobao.com?a=1 => {a: 1}
* @return obj
*/
GetLocationQuery
/**
* 本算法来源于简书开源代码,详见:https://www.jianshu.com/p/fdbf293d0a85
* 全局唯一标识符(uuid,Globally Unique Identifier),也称作 uuid(Universally Unique IDentifier)
* 一般用于多个组件之间,给它一个唯一的标识符,或者v-for循环的时候,如果使用数组的index可能会导致更新列表出现问题
* 最可能的情况是左滑删除item或者对某条信息流"不喜欢"并去掉它的时候,会导致组件内的数据可能出现错乱
* v-for的时候,推荐使用后端返回的id而不是循环的index
* @param {Number} len uuid的长度
* @param {Boolean} firstU 将返回的首字母置为"u"
* @param {Nubmer} radix 生成uuid的基数(意味着返回的字符串都是这个基数),2-二进制,8-八进制,10-十进制,16-十六进制
*/
Guid
Timer
/**
* 防抖原理:一定时间内,只有最后一次操作,再过wait毫秒后才执行函数
* @param {Function} func 要执行的回调函数
* @param {Number} wait 延时的时间
* @param {Boolean} immediate 是否立即执行
* @return null
*/
Debounce
/**
* 节流原理:在一定时间内,只能触发一次
* @param {Function} func 要执行的回调函数
* @param {Number} wait 延时的时间
* @param {Boolean} immediate 是否立即执行
* @return null
*/
Throttle
Tree
/**
* 递归 -> children 数组小于1 设置为 undefined
* @param {Array} data 递归数组
* @param {String} children 递归字段键
* @returns data
*/
SetTreeChildrenBlankToUndefined
/**
* 递归修改键
* @param {Array} data 递归数组
* @param {Array} changeKey 递归修改名 [{ from: val, to: val }, { from: val, to: val }]
* @param {Array} children 递归数组名
* @returns data
*/
ChangeTreeDataName
/**
* 递归排序
* @param {Array} data 递归数组
* @param {String} children 递归字段键
* @param {String} sort 排序字段键
* @returns data
*/
SortTreeData
/**
* 根据子级id递归寻找所有父级
* @param {array} list 寻找数组
* @param {id} id id
* @param {string} checkId 递归id字段名 默认id
* @param {string} checkChildren 递归children字段名 默认children
*/
FindTreeParentId
/**
* 根据数组遍历所有id
* @param {array} list 寻找数组
* @param {string} checkId 需要遍历的字段
* @param {string} checkChildren 需要遍历的children键
*/
FindTreeAllId