UNPKG

project-general-tools

Version:

项目开发通用工具类封装

441 lines (328 loc) 9.98 kB
# customer-display-platform > 文档编写: Mad Dragon <395548460@qq.com> 2020414# tools 工具类 `project-general-tools` 是一款适用于 vue 项目的 通用工具类,包含 log、moment、cookie、Api、localStorage、sessionStorage ... ,以及 一些常用的函数。 ### Api 工具类 (Axios 封装) Function ```js tools.Api.get(url,params).then((res)=>{}).catch(error); tools.Api.post(url,params).then((res)=>{}).catch(error); tools.Api.jsonp(url,params).then((res)=>{}).catch(error); tools.Api.delete(url,params).then((res)=>{}).catch(error); tools.Api.head(url,params).then((res)=>{}).catch(error); tools.Api.options(url,params).then((res)=>{}).catch(error); tools.Api.put(url,params).then((res)=>{}).catch(error); tools.Api.patch(url,params).then((res)=>{}).catch(error); ``` 代码示例: ```js import tools from 'project-general-tools'; const getStat = async () => { try { const data = await tools.Api.get('http://api.bilibili.com/archive_stat/stat', { aid:90822505, type:'json' }); tools.log.info('getStat', data) } catch (e) { tools.log.error('getStat', e) } }; ``` ### 时间格式化工具 (MomentJs) Function ``` // 初始时间 tools.formatInitTime(time = new Date(), norms = 'YYYY-MM-DD') // 时间 加法 tools.formatAddTime(addNum = 1, addNorms = 'days', time = new Date(), norms = 'YYYY-MM-DD') // 时间 减法 tools.formatSubtractTime(addNum = 1, addNorms = 'days', time = new Date(), norms = 'YYYY-MM-DD') // 搜索专用 开始时间 tools.formatStartTime(time = new Date(), norms = 'YYYY-MM-DD') // 搜索专用 结束时间 tools.formatEndTime(time = new Date(), norms = 'YYYY-MM-DD', addNum = 1, addNorms = 'days') // 获得时间差 // 时间格式为 年-月-日 小时:分钟:秒 或者 年/月/日 小时:分钟:秒 // 其中,年月日为全格式,例如 : 2010-10-12 01:00:00 // 返回精度为:秒,分,小时,天 tools.getDateDiff: (startTime, endTime, diffType = 'dhm') ``` 代码示例: ```js import tools from 'project-general-tools'; console.log(tools.formatInitTime()); console.log(tools.formatAddTime(2, 'days')); ``` ### log 日志工具类 (console) Function ```js tools.log.info(title, ...args) tools.log.error(title, ...args) tools.log.debug(title, ...args) tools.log.warn(title, ...args) tools.log.table(title, ...args) // 将日志 存入 localStorage tools.log.setLog(type,title, ...args) ``` 代码示例: ```js import tools from 'project-general-tools'; // log test tools.log.info('测试时间打印', tools.formatInitTime()); tools.log.setLog('error','测试',{key:'vlaue'}) ``` ### cookie Function ```js // 设置cookie tools.cookie.setCookie(name, value, hours, path) // 获取cookie值 tools.cookie.getCookieValue(name) // 删除cookie tools.cookie.deleteCookie(name, path) ``` 代码示例: ```js import tools from 'project-general-tools'; tools.log.info('获取用户ID',tools.cookie.getCookieValue('userId')) ``` ### lStorage 缓存(localStorage) Function ```js // 存储localStorage tools.lStorage.setItem(key, content) // 获取localStorage tools.lStorage.getItem(key) // 删除localStorage tools.lStorage.removeItem(key) // 从localStorage删除所有保存的数据 tools.lStorage.clear() // 获取所有的 缓存数据 tools.lStorage.getAll() // 删除指定 key匹配的数据 tools.lStorage.removeDataFromKey(key) ``` 代码示例: ```js import tools from 'project-general-tools'; tools.log.info('获取所有的 缓存数据',tools.lStorage.getAll()) // 删除指定 key匹配的数据 tools.lStorage.removeDataFromKey('xxb_') ``` ### sStorage 缓存(sessionStorage) Function ```js // 存储sessionStorage tools.sStorage.setItem(key, content) // 获取sessionStorage tools.sStorage.getItem(key) // 删除sessionStorage tools.sStorage.removeItem(key) // 从sessionStorage删除所有保存的数据 tools.sStorage.clear() ``` 代码示例: ```js import tools from 'project-general-tools'; tools.log.info('获取sessionStorage',tools.sStorage.getItem('xxxb_user')) ``` ### fStorage 缓存(localForage) > 改进的离线存储 Function ```js import localforage from 'localforage'; // 创建并返回一个实例 const fStorage = localforage.createInstance({ name:'test' }); // getItem 从仓库中获取 key 对应的值并将结果提供给回调函数。如果 key 不存在,getItem() 将返回 null。 fStorage.getItem('somekey').then(function(value) { // 当离线仓库中的值被载入时,此处代码运行 console.log(value); }).catch(function(err) { // 当出错时,此处代码运行 console.log(err); }); // setItem 将数据保存到离线仓库。你可以存储如下类型的 JavaScript 对象: /* Array ArrayBuffer Blob Float32Array Float64Array Int8Array Int16Array Int32Array Number Object Uint8Array Uint8ClampedArray Uint16Array Uint32Array String */ fStorage.setItem('somekey', 'some value').then(function (value) { // 当值被存储后,可执行其他操作 console.log(value); }).catch(function(err) { // 当出错时,此处代码运行 console.log(err); }); // removeItem 从离线仓库中删除 key 对应的值。 fStorage.removeItem('somekey').then(function() { // 当值被移除后,此处代码运行 console.log('Key is cleared!'); }).catch(function(err) { // 当出错时,此处代码运行 console.log(err); }); // clear 从数据库中删除所有的 key,重置数据库。 fStorage.clear().then(function() { // 当数据库被全部删除后,此处代码运行 console.log('Database is now empty.'); }).catch(function(err) { // 当出错时,此处代码运行 console.log(err); }); // length 获取离线仓库中的 key 的数量(即数据仓库的“长度”)。 fStorage.length().then(function(numberOfKeys) { // 输出数据库的大小 console.log(numberOfKeys); }).catch(function(err) { // 当出错时,此处代码运行 console.log(err); }); // key 根据 key 的索引获取其名 fStorage.key(2).then(function(keyName) { // key 名 console.log(keyName); }).catch(function(err) { // 当出错时,此处代码运行 console.log(err); }); // keys 获取数据仓库中所有的 key。 fStorage.keys().then(function(keys) { // 包含所有 key 名的数组 console.log(keys); }).catch(function(err) { // 当出错时,此处代码运行 console.log(err); }); // iterate 迭代数据仓库中的所有 value/key 键值对。 // 同样的代码,但使用 ES6 Promises fStorage.iterate(function(value, key, iterationNumber) { // 此回调函数将对所有 key/value 键值对运行 console.log([key, value]); }).then(function() { console.log('Iteration has completed'); }).catch(function(err) { // 当出错时,此处代码运行 console.log(err); }); // 提前退出迭代: fStorage.iterate(function(value, key, iterationNumber) { if (iterationNumber < 3) { console.log([key, value]); } else { return [key, value]; } }).then(function(result) { console.log('Iteration has completed, last iterated pair:'); console.log(result); }).catch(function(err) { // 当出错时,此处代码运行 console.log(err); }); // config storeName:数据仓库的名称 version:数据库的版本 description:数据库的描述 fStorage.config({ storeName:'test', version:1, description:'test fStorage', }); ``` 代码示例: ```js import tools from 'project-general-tools'; tools.log.info('获取sessionStorage',tools.sStorage.getItem('xxxb_user')) ``` ### 常用函数 #### getUUID ```js tools.getUUID(len, radix) ``` #### getResult 数组里取指定 key 的value 值 ```js tools.getResult(arr = [], id = '', find = 'id', result = 'value') ``` #### formatPhoneNumber 格式化手机号 隐藏中间数据 ```js tools.formatPhoneNumber(phone) ``` #### numberToPercentage 数字转换成 百分比 ```js tools.numberToPercentage(phone) ``` #### on 绑定事件 on(element, event, handler) ```js tools.on() ``` #### off 解绑事件 off(element, event, handler) ```js tools.off() ``` #### CDN 图片cdn 须在`.env` 文件配置 VUE_APP_CDN ```js tools.CDN() ``` #### url url处理 ```js tools.url.build(url, param) tools.url.getParam(name) tools.url.getParamKeys() tools.url.getParamVals() tools.url.getParamMap() tools.url.paramStringToMap(str) tools.url.mapToParamString(m) ``` #### object object处理 ```js tools.object.isObject(obj) tools.object.isFunction(obj) tools.object.isArray(obj) tools.object.isNull(obj) tools.object.isNotNull(obj) tools.object.length(obj) tools.object.getChildrenPath(obj, c, k) tools.object.merge(t, s, mergeArray = false) tools.object.isObject(obj) ``` #### string string处理 ```js tools.string.trim(str) tools.string.isBlank(str) tools.string.isNotBlank(str) tools.string.isEmpty(str) tools.string.isNotEmpty(str) tools.string.equalsIgnoreCase(a,b) ``` #### list list处理 ```js tools.list.isEmpty(l) tools.list.isNotEmpty(l) tools.list.stringToList(s) tools.list.find(l, k, v, j) tools.list.indexOf(l, k, v, b, j) ``` #### map map处理 ```js tools.map.mapsExtVal(maps,key) tools.map.listToMap(list,key) tools.map.isEqualForString(a,b) tools.map.isEmpty(m) tools.map.isNotEmpty(m) tools.map.isEqual(a, b, isWeak, isString) tools.map.keys(m) tools.map.vals(m) ```