0.0.14 • Published 4 years ago
fengche-utils v0.0.14
fengche-utils
枫车前端工具库
安装说明
npm install fengche-utils --save-dev
使用说明
/* 方式一 */
import fcutils from 'fengche-utils';
/* 方式二 */
import {localStorage, tools} from 'fengche-utils';
/* Vue挂载的方式 */
Vue.prototype.$localStorage= fcutils.localStorage;
Vue.prototype.$tools = fcutils.tools;
🚀 API 文档
1.localStorage
get: 获取 localstorage
set: 设置 localstorage
delete: 删除 localstorage
import { localStorage } from 'fengche-utils';
localStorage.get('token');
localStorage.set('token','32sfdff232');
localStorage.delete('token');
2.sessionStorage
get: 获取 sessionStorage
set: 设置 sessionStorage
delete: 删除 sessionStorage
import { sessionStorage } from 'fengche-utils';
3.storageTime
import { storageTime } from 'fengche-utils'
storageTime.get(key)
storageTime.save(key, value, time)
storageTime.remove(key)
storageTime.clear()
storageTime.on(key, fn) // 订阅某一个键的到期信息
storageTime.off(key, true) // 取消订阅某一个键的到期信息
storageTime.session.get(key)
storageTime.session.save(key, value)
storageTime.session.remove(key)
storageTime.session.clear()
参数:
key: 存储的键
value: 存储的值
time: 过期时间(ms), 不传代表永久存储, time不允许设为0
4.date
- formatPassTime:格式化现在的已过时间
date.formatPassTime (1586840260500)
- formatTime:格式化时间戳
import { date } from 'fengche-utils';
date.formatTime (new Date()) // 默认格式 'yyyy-MM-dd hh:mm:ss'
date.formatTime (new Date(),'yyyy:MM:dd') // 自定义格式 'yyyy.MM.dd'
5.tools
常用函数工具库(防抖、节流、正则类型检测、深浅拷贝等)
- debounce :防抖
import { tools } from 'fengche-utils';
methods:{
sumbit: tools.debounce(function(){
// todo
},500),
}
throttle : 节流
strTrimLeftOrRight : 去掉字符左右空格
tools.strTrimLeftOrRight(' str ')
- arrOrderAscend : 数组排序(升序降序)
tools.arrOrderAscend([3, 1, 2], false))
- arrObjSum : 数组对象指定key求和
const arr = [{age: 4}, {age: 2}];
tools.arrObjSum(arr, 'age') => 6
- sortObj : 数组对象根据某字段排序
const arr = [{age: 4}, {age: 2}]
arr.sort(tools.sortObj("age", 'desc'))
- formatPhone : 将手机号中间部分替换为星号
tools.formatPhone('15900000000') => 159****0000
- checkReg :类型检测
支持类型有phone(手机号码)、email(邮箱)、url(网址)、number(数字)、carNum(车牌号)、hasCn(是否包含中文)
tools.checkReg('15900000000','phone') //检测手机
tools.checkReg('820289461@qq.com','email') //检测邮箱
deepCopy :深拷贝
formatPhone : 将手机号中间部分替换为星号
tools.formatePhone('15900000000');
- xss : 转义html(防XSS攻击)
tools.xss('<div>')
- httpsRedirect :http跳转https
tools.httpsRedirect()
- 获取url地址参数
tools.getUrlParams('id')
6.ua
常用判断当前运行环境
import { ua } from 'fengche-utils';
ua.info => {
engine: "webkit"
engineVs: "604.1.38"
platform: "mobile"
shell: "wechat"
shellVs: "7.0.4"
supporter: "safari"
supporterVs: "11.0"
system: "ios"
systemVs: "11.0"
}
ua.isWx => true
ua.isQQ => false
ua.isPc => false
ua.isMobile => true
ua.isAndroid => false
ua.isIos => true
ua.isIphoneX => true // 判断是否刘海屏
7.calculate
加减乘除的精度计算 解决0.1 + 0.2 = 0.30000000001 的问题
import { calculate } from 'fengche-utils';
calculate.plus(0.1, 0.2) = 0.3 // 加法
calculate.minus(0.2, 0.1) = 0.1 // 减法
calculate.divide(0.2, 0.1) = 0.1 // 除法
calculate.times(0.3, 0.3) = 0.09 // 乘法
7.file
文件转换
import { file } from 'fengche-utils';
/* file转base64(可限制格式,大小,错误提示) */
file.fileToBase64String(file, 'jpg', 20 * 1024, '文件格式不正确', '文件大小超出限制')
/* 获取文件大小 */
file.formatFileSize(10234) // 10MB
/* base64转file */
file.base64ToFile('base64', 'fileName')
/* base64转blob */
file.base64ToBlob('base64')
/* blob转file */
file.blobToFile(blob, 'fileName')
/* file转base64(无限制) */
file.fileToBase64(file)
7.countDown
countDown 倒计时
import { countDown } from 'fengche-utils';
this.countDown = countDown.getInstance()
this.countDown.start(Number(timestamp), (status, data) => { })
/* beforeDestroyed 离开页面执行 */
this.timerManager.end()
8.sentry
公共报错模块
import { sentry } from 'fengche-utils';
const option = {dsn://xxxx@sentry.carisok.com/2}
const Sentry = sentry.getInstance(Vue, option);
Vue.prototype.$sentry = sentry;
/* 主动上报 */
this.$sentry.log('test');
- 待开发公共方法 判断是否在app嵌套运行 ajax 公共方法