$3
> 介绍了整个工具包的使用及包含的功能
!
Alt text (完善后将上传到 github)
#### 安装说明
``
npm install js-utils-zhql
`
`
1.npm install XXX -s
npm install XXX -s 相当于 npm install -S 相当于 npm install --save
这样安装是局部安装的,会写进package.json文件中的dependencie里。
dependencies: 表示生产环境下的依赖管理;
说白了你安装一个库如果是用来构建你的项目的,比如echarts、element-ui,是实际在项目中起作用,就可以使用 -s 来安装。
2.npm install XXX -d
npm install XXX -d 相当于 npm install -D 相当于 npm install --save-dev
这样安装是局部安装的,会写进package.json文件中的devDependencies 里。
devDependencies :表示开发环境下的依赖管理;
如果你安装的库是用来打包的、解析代码的,比如webpack、babel,就可以用 -d 来安装,项目上线了,这些库就没用了,不然留这些库给用户自己来打包和解析代码嘛。
3.npm install XXX -g
npm install XXX -g 表示全局安装,安装一次过后,你就可以在其他直接用啦。
4.npm install XXX
npm install XXX 什么都不加的时候
npm5开始通过npm install 什么都不加 和 npm install --save一样,都是局部安装并会把模块自动写入package.json中的dependencies里。
`
#### 使用说明
`
//方式一:
import jsUtils from 'js-utils-zhql';
// 方式二
import { httpAxios, dataStorage, baseTools, sm4 } from 'js-utils-zhql';
// 挂载的方式
Vue.prototype.$axios = jsUtils.httpAxios;
Vue.prototype.$dataStorage= jsUtils.dataStorage;
Vue.prototype.$baseTools = jsUtils.baseTools;
`
🚀 API 文档
$3
- getSessionStorage: 获取 session
- setSessionStorage: 设置 session
- deleteSessionStorage: 删除 session
`
import { dataStorage } from 'js-utils-zhql';
dataStorage.getSessionStorage('token');
dataStorage.setSessionStorage('token','32sfdff232');
dataStorage.deleteSessionStorage('token');
`
- getLocalStorage: 获取 localStorage
- setLocalStorage: 设置 localStorage
- deleteLocalStorage: 删除 localStorage
`
import { dataStorage } from 'js-utils-zhql';
dataStorage.getLocalStorage('token');
dataStorage.setLocalStorage('token','32sfdff232');
dataStorage.deleteLocalStorage('token');
`
$3
- formatPassTime:格式化现在的已过时间
`
dateFormat.formatPassTime (1586840260500) // 2年前
`
- formatTime:格式化时间戳
`
import { dateFormat } from 'js-utils-zhql';
dateFormat.formatTime (new Date()) // 默认格式 'yyyy-MM-dd hh:mm:ss'
dateFormat.formatTime (new Date(),'yyyy:MM:dd') // 自定义格式 'yyyy.MM.dd'
`
$3
> 基于 axios 做二次封装
- init: axios 初始化配置 option
- get:get 请求方式
- post:post 请求方式
`
import { httpAxios } from 'js-utils-zhql';
const option = {
url: process.env.VUE_APP_URL , // 根据不同环节配置初始化baseUrl
}
httpAxios.init(option);
export const getList = async (params = {}) => httpAxios.get(/user/list
, { params });
`
$3
> 常用函数工具库(防抖、节流、数据类型检测、深浅拷贝,数据脱敏等等,详见js库)
- getDateType :数据类型检测
`
import { baseTools } from 'js-utils-zhql';
baseTools.getDateType({}) //Object
baseTools.getDateType([]) //Array
`
- firstUpperCase :头字母大写
`
import { baseTools } from 'js-utils-zhql';
baseTools.firstUpperCase('string') //String
`
- getRandomNumber :获取两个数字之间的随机数
`
import { baseTools } from 'js-utils-zhql';
baseTools.getRandomNumber(10,20) //10到20之间的随机数
`
- descCompare :排序函数升序
`
import { baseTools } from 'js-utils-zhql';
arr.sort(baseTools.compare(prop))
`
- debounce :防抖
`
import { baseTools } from 'js-utils-zhql';
methods:{
sumbit: baseTools.debounce(function(){
// todo
},500),
}
`
- throttle : 节流
`
import { baseTools } from 'js-utils-zhql';
methods:{
sumbit: baseTools.throttle(function(){
// todo
},500),
}
`
$3
> 表单输入数据验证 (返回Boolean)
- checkType :类型检测
> 支持类型有 ip、phone(手机号码)、email(邮箱)、IDCard(身份证)、url(网址)、number(数字)等
`
import { inputValidate } from 'js-utils-zhql';
inputValidate.checkType('15919542299','phone') //检测手机
inputValidate.checkType('shuxin_liu@kingdee.com','email') //检测邮箱
`
- checkIDCard :身份证验证
`
import { inputValidate } from 'js-utils-zhql';
inputValidate.checkIDCard('15919542299') //检测身份证
`
- CheckSocialCreditCode :统一信用代码校验
`
import { inputValidate } from 'js-utils-zhql';
inputValidate.CheckSocialCreditCode('15919542299') //检测统一信用代码
`
- filterSpecialStr : 过滤特殊字符后的字符串
`
import { inputValidate } from 'js-utils-zhql';
inputValidate.filterSpecialStr('1591%|+{}9542299') //返回去掉特殊字符的字符串
`
$3
> sm4加密
`
import {sm4} from 'js-utils-zhql';
sm4(key).encrypt(this.idCard) //key密钥,加密
sm4(key).decrypt(res) //key密钥,解密
Vue.prototype.$sm4 = sm4;
this.$sm4.encrypt(this.idCard)
this.$sm4.decrypt(res)
`
$3
> 捕获异常信息
- 初始化
`
import { sentry } from 'js-utils-zhql';
const option = {dsn:http://753ce3bf82e94ab0aa7b5e62fae16d3c@sentry.*.com:9000/2}
const Sentry = sentry.getInstance(Vue, option);
Vue.prototype.$sentry = sentry;
`
- 主动上报
`
this.$sentry.log('test');
``