ptool
TypeScript icon, indicating that this package has built-in type declarations

2.0.16 • Public • Published

文档编写: Mad Dragon 395548460@qq.com 2020年4月14日

tools 工具类

ptool(project-general-tools) 是一款适用于 vue 项目的 通用工具类,包含 log、moment、cookie、Api、localStorage、sessionStorage ... ,以及 一些常用的函数。

Api 工具类 (Axios 封装)

Function

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);

代码示例:

import tools from 'ptool';

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')

代码示例:

import tools from 'ptool';

console.log(tools.formatInitTime());

console.log(tools.formatAddTime(2, 'days'));

log 日志工具类 (console)

Function

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)

代码示例:

import tools from 'ptool';

// log test
tools.log.info('测试时间打印', tools.formatInitTime());

tools.log.setLog('error','测试',{key:'vlaue'})

cookie

Function

// 设置cookie
tools.cookie.setCookie(name, value, hours, path)

// 获取cookie值
tools.cookie.getCookieValue(name)

// 删除cookie
tools.cookie.deleteCookie(name, path)

代码示例:

import tools from 'ptool';

tools.log.info('获取用户ID',tools.cookie.getCookieValue('userId'))

lStorage 缓存(localStorage)

Function

// 存储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)

代码示例:

import tools from 'ptool';

tools.log.info('获取所有的 缓存数据',tools.lStorage.getAll())

//  删除指定 key匹配的数据
tools.lStorage.removeDataFromKey('xxb_')

sStorage 缓存(sessionStorage)

Function

// 存储sessionStorage
tools.sStorage.setItem(key, content)

// 获取sessionStorage
tools.sStorage.getItem(key)

// 删除sessionStorage
tools.sStorage.removeItem(key)

// 从sessionStorage删除所有保存的数据
tools.sStorage.clear()

代码示例:

import tools from 'ptool';

tools.log.info('获取sessionStorage',tools.sStorage.getItem('xxxb_user'))

fStorage 缓存(localForage)

改进的离线存储

Function

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',
});

代码示例:

import tools from 'ptool';

tools.log.info('获取sessionStorage',tools.sStorage.getItem('xxxb_user'))

常用函数

getUUID

tools.getUUID(len, radix)

getResult 数组里取指定 key 的value 值

tools.getResult(arr = [], id = '', find = 'id', result = 'value')

formatPhoneNumber 格式化手机号 隐藏中间数据

tools.formatPhoneNumber(phone)

numberToPercentage 数字转换成 百分比

tools.numberToPercentage(phone)

on 绑定事件 on(element, event, handler)

tools.on()

off 解绑事件 off(element, event, handler)

tools.off()

CDN 图片cdn

须在.env 文件配置 VUE_APP_CDN

tools.CDN()

url url处理

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处理

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处理

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处理

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处理

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)

Package Sidebar

Install

npm i ptool

Weekly Downloads

2

Version

2.0.16

License

MIT

Unpacked Size

140 kB

Total Files

37

Last publish

Collaborators

  • maddragon