# Utils 工具类
概述
Utils 工具类,常用的数据处理工具。
# 支持平台
App-vue | App-Nvue | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 | H5 | PC | 快手小程序 | 钉钉小程序 |
---|---|---|---|---|---|---|---|---|---|---|
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
# 引入
在页面中script标签内顶部引入
import utils from '@/components/firstui/fui-utils';
1
# 代码演示
部分示例演示,完整使用请参考示例程序以及文档API。
英文首字母大写
通过 titleCase
方法将英文首字母换成大写,val = English。
const text = 'english';
const val = utils.titleCase(text);
1
2
2
压缩连续的字母字符串
通过 compressLetter
方法压缩连续的字母字符串,val = 2a3bc9d。
const text = 'aabbbcddddddddd';
const val = utils.compressLetter(text);
1
2
2
等待多少毫秒再执行,同步阻塞
通过 sleep
方法同步延迟1000ms再执行提示信息。
utils.sleep(1000)
this.fui.toast('1000ms后执行!')
1
2
2
格式化手机号码
通过 numberFormatter
方法格式化手机号码,val = 157****0012。
const text = '15715600012';
const val = utils.numberFormatter(text);
1
2
2
格式化金额,保留两位小数
通过 moneyFormatter
方法格式化金额,val = 2,021.00。
const text = '2021';
const val = utils.moneyFormatter(text);
1
2
2
# Methods
参数传入顺序从上到下依次传入。
方法名 | 说明 | 传入参数 |
---|---|---|
titleCase | 英文首字母大写 | {String} value 需要处理的英文字符串 |
compressLetter | 把连续出现多次的字母字符串进行压缩 | {String} value 需要压缩的字符串 {Boolean} ignoreCase 是否忽略大小写 |
sleep | 等待多少毫秒再执行,同步阻塞 | {String} millisecond 毫秒 |
trim | 去左右空格 | {String} value 需要处理的字符串 |
trimAll | 去所有空格 | {String} value 需要处理的字符串 |
replaceAll | 替换所有相同字符串 | {String} text 需要处理的字符串 {String} repstr 被替换的字符 {String} newstr 替换后的字符 |
numberFormatter | 格式化手机号码 | {String} num 手机号码 |
moneyFormatter | 金额格式化,保留两位小数 | {String,Number} money 金额值 |
dateFormatter | 日期时间格式化(参数详细说明如下方所示) | {String ,Date } date 日期 {String} format 格式化字符串 {Number} type 日期的格式类型 {Boolean} isMs 时间戳精度是否为毫秒 |
rgbToHex | RGB颜色转十六进制颜色 | {Number} r {Number} g {Number} b |
hexToRGB | 十六进制颜色转RGB颜色 | {String} hex 颜色值,如:#333333 |
unique | 唯一标识,随机数 | {Number} n 随机数位数 |
getUUID | 获取uuid | - |
distinctArray | 简单的数组合并去重 | {Array} arr1 数组1 {Array} arr2 数组2 |
getDateTimeSlot | 获取日期时间段 | {Number} type 1-今天 2-昨天 3-本周 4-本月 5-本年 |
getUrlParam | 获取Url参数,返回一个对象 | {String} url url地址 |
debounce | 函数防抖:短时间内多次触发同一事件,只执行最后一次,或者只执行最开始的一次,中间的不执行。 | {Function} func 目标函数 {Number} wait 延迟执行毫秒数 {Boolean} immediate true-立即执行 false-延迟执行 |
throttle | 函数节流:指连续触发事件,但是在 n 秒内只执行一次函数。即 2n 秒内执行 2 次... 。会稀释函数的执行频率。 | {Function} func 函数 {Number} wait 延迟执行毫秒数 {Number} type 1-在时间段开始的时候触发 2-在时间段结束的时候触发 |
formatTimeAgo V2.1.0+ | 日期时间格式化为多久之前,如:1分钟前(参数详细说明如下方说明) | {String ,Date} date 日期 {Number} type 日期的格式类型 {Boolean} isMs 时间戳精度是否为毫秒 {String} suffix 后缀文本 {Number} endUnit 转化截止单位 {Number} seconds 多少秒之前显示为刚刚 {Boolean} fixedDay 是否需要天的固定文本 |
getRandomHexColor V2.3.0+ | 获取随机颜色 | - |
convertCurrency V2.3.0+ | 人名币转大写 | {Number,String} money 金额 |
dateFormatter(日期时间格式化)方法参数详细说明
type
值不同,date
格式也不同。
/**
* @desc 日期时间格式化
* @param {String | Date} date 需要格式化的日期
* @param {String} format 格式化字符串(y-m-d h:i:s)
* format的格式可由(y m d h i s)组合,如:y-m,y-m-d,y年m月,h:i,y-m-d h:i 等
* @param {Number} type 日期类型 1~4
* 1-date的格式类型:日期字符串(2017/12/04 12:12:12)
* 2-date的格式类型:时间戳(1603676514690)
* 3-date的格式类型:日期字符串,无连接符(20171204121212)
* 4-date的格式类型:new Date()时间格式(Thu Oct 01 2020 00:00:00 GMT+0800 (中国标准时间))
* @param {Boolean} isMs 时间戳精度是否为毫秒,默认为true(当精度为秒时传false),type=2时有效
**/
dateFormatter(date, format, type = 1, isMs = true)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
formatTimeAgo(日期时间格式化为多久之前)方法参数详细说明 V2.1.0+
其中date
、type
、 isMs
参数同上方 dateFormatter
方法一致。
/**
* @desc 日期时间格式化为多久之前 如:1分钟前
* @param {String | Date} date 需要格式化的日期
* @param {Number} type 日期类型 1~4
* 1-date的格式类型:日期字符串(2017/12/04 12:12:12)
* 2-date的格式类型:时间戳(1603676514690)
* 3-date的格式类型:日期字符串,无连接符(20171204121212)
* 4-date的格式类型:new Date()时间格式(Thu Oct 01 2020 00:00:00 GMT+0800 (中国标准时间))
* @param {Boolean} isMs 时间戳精度是否为毫秒,默认为true(当精度为秒时传false),type=2时有效
* @param {String} suffix 后缀,如:30小时+ 后缀。[刚刚、昨天、前天 等为固定文本,后缀无效]
* @param {Number} endUnit 转化截止单位,1-秒 2-分钟 3-小时 4-天 5-月 6-年,如传3(小时),则天,月,年不做转化直接返回空
* @param {Number} seconds 多少秒之前显示为刚刚,不可超过60
* @param {Boolean} fixedDay 是否需要天的固定文本,如昨天、前天
**/
formatTimeAgo(date, type = 1, isMs = true, suffix = '前', endUnit = 6, seconds = 10, fixedDay = true)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22