c-tools-js
    TypeScript icon, indicating that this package has built-in type declarations

    2.1.5 • Public • Published

    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
    
    /**
     * 邮箱
     * 例如: 90203918@qq.com, nbilly@126.com, 汉字@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 
    

    Keywords

    none

    Install

    npm i c-tools-js

    DownloadsWeekly Downloads

    0

    Version

    2.1.5

    License

    ISC

    Unpacked Size

    131 MB

    Total Files

    42

    Last publish

    Collaborators

    • lizhenchao