0.0.3-alpha.3 • Published 2 years ago

businesstools v0.0.3-alpha.3

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

前端业务工具包

非常实用的业务工具包,让前端开发更简单、迅速~

  • 代码采用Common.js规范编写。
  • 打包按照ES规范,为了有tree-shaking+编辑器智能提示。
  • 支持npm引入与iife浏览器script引入。

Tips:大多数方法都是采用ES6+实现。为了文件体积没有经过babel转换,该工具包尽量在高版本浏览器上使用

*Tips:V3版本:script引入下,低版本浏览器使用lowerBusinessTools.js(有方法不支持IE8+,也不会支持IE8+)****

使用方式

npm引入方式

npm install businesstools

import {methodName or className} from 'businesstools'

高版本浏览器引入方式

<script src="../dist/businessTools.js"></script>
businessTools.methodName--or className--()

低版本浏览器引入方式

<script src="../dist/lowerBusinessTools.js"></script>
businessTools.methodName--or className--()

版本内容

V1

数组转化为树形结构
/**
 * 数组转化为树形结构
 * @param list 带转换数组
 * @param id id
 * @param pid 关联id
 * @returns {*[]}
 */
const convertListToTree = (List<Object> list, String id = 'id', String  pid = 'pid') => {}
list集合排序、tree结构排序
/**
 * list集合排序、tree结构排序
 * @param list 待处理集合
 * @param sortName 排序字段
 * @param children 递归子元素
 * @param desc 降序
 * @returns {*}
 */
 const sort = (List<Object> list, String sortName = 'sort', String children = 'children',Boolean desc = true) => {}
递归查找节点路径
/**
 * 递归查找节点路径
 * @param tree 待处理集合
 * @param path 路径地址(匹配的节点构成的递归数据)
 * @param callBack 回调函数(主动调用,工具传递当前节点),客户端返回true代表找到节点。
 * @returns {*[]|*}
 */
 const findPath = (List<Object> tree = [],List path = [],Function callBack) => {}
节流
/**
 * 节流
 * @param fn 需要运行的函数
 * @param delay 等待时长
 * @returns {(function(*): void)|*}
 */
const throttle = (Function fn,Integer delay) => {}
防抖
/**
 * 防抖
 * @param fn 需要运行的函数
 * @param delay 等待时长
 * @returns {(function(): void)|*}
 */
 const debounce = (Function fn, Integer delay) => {}
对象拼接到url成最终url
/**
 * 把对象拼接到url中,解析出完整的url字符串。PS:如果url中的参属性在待拼接对象中,拼接对象的属性会替换掉url属性
 * @param url 待拼接url字符串
 * @param obj 待拼接参数对象
 * @returns {`${string}${string}${string}?${string}`}
 */
 const joinObjectToUrl = (String url,Object obj) => {}
对象转化为formData
/**
 * 对象转化为formData
 * @param object 待转换对象
 * @returns {FormData}
 */
 const parseObjectToFormData = (Object object) => {}
转换url参数成对象
/**
 * 转换url参数成对象
 * @param url
 * @returns {{}}
 */
 const parseUrlParamsToObject = (String url) => {}
分片上传
/**
 * 分片上传
 * @param file 文件
 * @param getUploadIdUrl 获取上传id地址 GET请求
 * @param headers 请求头(后续上传与合并都采用这一个请求头,注意做好控制)
 * @param chunkSize 切片大小
 * @param getUploadIdParams 获取上传id额外参数 query参数
 * @param getUploadIdErrorCallback 获取上传id错误处理
 * @param uploadUrl 上传地址(POST请求,formData入参)
 * @param uploadParams 上传请求额外参数,拼接在formData上面
 * @param uploadErrorCallback 上传失败回调
 * @param onProgress 上传进度回调
 * @param mergeUploadUrl 合并地址 POST请求
 * @param mergeUploadParams 合并请求参数  json形式拼接
 * @param mergeUploadErrorCallback 合并请求参数失败回调
 * @param uploadSuccessCallback 上传失败回调
 * @returns {Promise<void>}
 */
 const sliceUpload = async ({
                               MultipartFile file,
                               String getUploadIdUrl,
                               Object headers = {},
                               Long chunkSize = 1024 * 1024 * 3,
                               Object getUploadIdParams = {},
                               Function getUploadIdErrorCallback,
                               String uploadUrl,
                               Object uploadParams = {},
                               Function uploadErrorCallback,
                               Function onProgress,
                               String mergeUploadUrl,
                               Object mergeUploadParams = {},
                               Function mergeUploadErrorCallback,
                               Function uploadSuccessCallback
                           }) => {}

V2

正则表达式Pattern class
名称类别描述备注
Email属性邮箱正则
QQ属性QQ正则
Phone属性手机正则
PositiveInteger属性正整数正则
IdCard属性身份证号正则(忽略末尾X)
验证邮箱
/**
 * 验证邮箱
 * @param str 待验证内容
 * @param emailPattern 正则表达式
 * @returns {boolean}
 */
const verifyEmail = (String str,Pattern emailPattern = Pattern.Email) => {}
验证QQ
/**
 * 验证QQ
 * @param str 待验证内容
 * @param QQPattern 正则表达式
 * @returns {boolean}
 */
const verifyQQ = (String str, Pattern QQPattern = Pattern.QQ) => {}
验证手机号
/**
 * 验证手机号
 * @param str 待验证内容
 * @param phonePattern 正则表达式
 * @returns {boolean}
 */
const verifyPhone = (String str, Pattern phonePattern = Pattern.Phone) => {}
验证正整数
/**
 * 验证正整数
 * @param str 待验证内容
 * @param idNumberPattern 正则表达式
 * @returns {boolean}
 */
const verifyPositiveInteger = (String str,Pattern positiveIntegerPattern = Pattern.PositiveInteger) => {}
验证身份证号
/**
 * 验证身份证号 x结尾的不区分大小写
 * @param str 待验证内容
 * @param idNumberPattern 正则表达式
 * @returns {boolean}
 */
const verifyIdCard = (String str,Pattern idNumberPattern = Pattern.IdCard) => {}
判断是否为空
/**
 * 判断是否为空
 * @param data
 * @returns {boolean}
 */
 const isEmpty = (Object data) => {}
判断是否不为空
/**
 * 判断是否不为空
 * @param data
 * @returns {boolean}
 */
const isNotEmpty = (Object data) => {}
判断是否是数组
/**
 * 判断是否是数组
 * @param data
 * @returns {boolean}
 */
const isArray = (Object data) => {}
Tip:在V1的基础上,更改判断针对树形结构方法入参为isArray方法

v3

list去重
/**
 * list去重
 * @param list 待处理集合
 * @param split 多个字段参与一起去重的时候的分隔符
 * @param args 字段属性-支持传递多个字段,默认按照,拼接一起去重
 * @returns {*[]|*}
 */
const reduceList = (List<Object> list, char split = ',', ...args) => {}
过滤list、tree节点
/**
 * 根据自定义条件过滤list集合或tree结构
 * @param list 待处理集合
 * @param callback 回调函数(主动调用,工具传递当前节点),客户端返回true代表找到节点。
 * @param children 递归节点名称
 * @returns {*[]}
 */
const filter = (List<Object> list,Function callback, String children = 'children') => {}
递归遍历list、tree
/**
 * 根据自定义条件对list每个元素执行一次操作,不会影响原有数据源
 * @param list 待处理集合
 * @param callback 回调函数(主动调用,工具传递当前节点)
 * @param children 递归节点名称
 * @returns {*[]}
 */
const operateList = (List<Object> list,Function callback, String children = 'children') => {}
修复内容:
  1. 修复数组转换树形结构引用导致数据错误问题,支持自定义节点字段

    /**
     * 数组转化为树形结构
     * @param list 带转换数组
     * @param id id
     * @param pid 关联id
     * @param children 递归节点名称
     * @returns {*[]}
     */
    const convertListToTree = (List<Object> list, String id = 'id', String pid = 'pid', String children = 'children') => {}
  2. 修复sort排序缺少参数、引用导致数据错误问题。

  3. 修复递归查找节点路径不好调用问题,新增递归字段。

    /**
     * 递归查找节点路径
     * @param list 待处理集合
     * @param callBack 回调函数(主动调用,工具传递当前节点),客户端返回true代表找到节点。
     * @param children 递归节点名称
     * @returns {*[]|*}
     */
    const findPath = (List<Object> list, Function callback, String children = 'children') => {}
  4. 增加支持IE8+。