# 功能/函数类工具
- makePrivacyToMobile 给手机号码增加隐私星号
- debounce 截流函数柯里化
- getInfoByIDcard 通过身份证号码获取相关信息
- formatChatTimeFromStamp 根据时间戳计算时间文字规则
- clockLocalStorage 可设置储存时间的localStorage
utils.makePrivacyToMobile(mobile)
给手机号码增加隐私星号
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
mobile | string | 是 |
示例
utils.makePrivacyToMobile('15611119152') // 156****9152
utils.debounce(func, delay)
截流函数柯里化
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
func | Function | 是 | 截流函数 | |
delay | Number | 否 | 500 | 延时 |
示例
JQ/javascript:
<input type="text" id="text"/>
$('#text').on('input propertychange', utils.debounce((e) => {
console.log($('#text').val())
}, 1000))
// 1s响应一次值改变
VUE:
<template>
<div class="search-box">
<i class="iconfont icon-sousuo"></i>
<input ref="query" class="box" v-model="query" :placeholder="placeholder"/>
<i @click="clear" v-show="query" class="iconfont icon-shanchu"></i>
</div>
</template>
<script type="text/ecmascript-6">
import { debounce } from 'COMMON/js/utils';
export default {
props: {
placeholder: {
type: String,
default: '搜索',
},
},
data() {
return {
query: '',
};
},
created() {
/*
* 监控query值并暴露给父组件,发生变化即派发事件给父级
* */
this.$watch('query', debounce((newQuery) => {
this.$emit('query', newQuery);
}, 200));
},
methods: {
/*
* 清空search
* */
clear() {
this.query = '';
},
setQuery(query) {
this.query = query;
},
blur() {
this.$refs.query.blur();
},
},
};
</script>
utils.getInfoByIDcard(IDCard)
通过身份证号码获取相关信息
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
IDCard | String | 是 | 身份证号码 |
PS:必须传String
示例
utils.getInfoByIDcard('110101199003076931')
{
"birthYear":"1990",
"birthMonth":"03",
"birthDay":"07",
"fullBirth":"1990-03-07",
"fullBirthText":"1990年03月07日",
"sex":"男",
"age":30
}
utils.formatChatTimeFromStamp(options?)
根据时间戳计算时间文字规则
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
options | Object | String | Number | 是 | 当前时间戳 | 可以为时间戳,支持string格式,也可以为options对象 |
options参数
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
stamp | Number | String | 是 | 无 | 内容时间戳 |
serviceStamp | Number | String | 否 | "-" | 服务端当前时间时间戳 |
separator | String | 否 | "-" | 分隔符 |
numbersModel | Number | 否 | 1 | 年月日-时分秒单双位数显示 1单双 2双双 3单单 4双单 |
PS:必须传String
示例
utils.formatChatTimeFromStamp() // 当前时间文字
utils.formatChatTimeFromStamp(1585065599000) // 星期二 下午 23:59
utils.formatChatTimeFromStamp({ // 昨天 下午 23:59
stamp: 1585238399000,
serviceStamp: 1585324799000,
separator: '/',
numbersModel: 1,
})
utils.clockLocalStorage(key, val, time?)
可设置储存时间的localStorage,总容量5M。存入缓存,支持字符串类型、json对象的存储。页面关闭后依然有效 ie7+以及以上有效。
setItem(key, val, time?)
设置储存localStorage
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
key | String | 是 | key值 | |
val | String | Object | Array | 是 | 储存值 | |
time | Number | 否 | 储存时长 |
getItem(key)
获取储存值
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
key | String | 是 | key值 |
remove(key)
删除某个储存值
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
key | String | 是 | key值 |
clear
清除所有储存值
示例
utils.clockLocalStorage.setItem('aaa', { a: 1 })
utils.clockLocalStorage.setItem('bbb', 222, 10)
setTimeout(() => {
// utils.clockLocalStorage.remove('aaa')
// utils.clockLocalStorage.clear()
}, 5000)
setTimeout(() => {
console.log(utils.clockLocalStorage.getItem('aaa'))
console.log(utils.clockLocalStorage.getItem('bbb'))
}, 10000)