rs-commonjs
v1.4.4
Published
项目中常用的方法
Downloads
13
Readme
rs-common 公共方法
uuid 通用唯一识别码
/**
* 通用唯一识别码
* @rerurns string
*/
getuuid();
seStorage 设置本地存储
/**
* 设置本地存储
* @param {*} name 存储字段
* @param {*} content 存储内容
* @param {*} storage 存储位置 sessionStorage / localStorage, 默认 sessionStorage
*/
seStorage(name, content, (storage = "sessionStorage"));
| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | ------- | -------------- | ----------------------------- | -------- | -------- | | name | | | true | 存储字段 | | content | | | true | 存储内容 | | storage | sessionStorage | sessionStorage / localStorage | false | 存储位置 |
getStorage 获取本地存储
/**
* 获取本地存储
* @param {*} name 存储字段
* @param {*} storage 存储位置 sessionStorage / localStorage, 默认 sessionStorage
* @returns string | object | array
*/
getStorage(name, (storage = "sessionStorage"));
| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | ------- | -------------- | ----------------------------- | -------- | -------- | | name | | | true | 存储字段 | | storage | sessionStorage | sessionStorage / localStorage | false | 存储位置 |
removeStorage 删除本地存储
/**
* 删除本地存储
* @param {*} name 存储字段
* @param {*} storage 存储位置 sessionStorage / localStorage, 默认 sessionStorage
*/
removeStorage(name, (storage = "sessionStorage"));
| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | ------- | -------------- | ----------------------------- | -------- | -------- | | name | | | true | 存储字段 | | storage | sessionStorage | sessionStorage / localStorage | false | 存储位置 |
formatTime 日期格式化
/**
* 日期格式化
* @param {*} date 日期类型 Date | string | null | undefined | number
* @param {*} format 日期格式 默认 yyyy-MM-dd HH:mm:ss
* @returns 格式化后的日期字符串
*/
formatTime(date, (format = "yyyy-MM-dd HH:mm:ss"));
| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | ------ | ------------------- | ----------------------------------------- | -------- | -------- | | date | | Date / string / null / undefined / number | true | 日期类型 | | format | yyyy-MM-dd HH:mm:ss | | false | 日期格式 |
formatTimeByStr 将字符串转成日期格式
/**
* @description: 将字符串转成日期格式
* @param dateStr 日期字符串 如20220321 -> 2022-03-21
* @param format 日期格式 默认 yyyy-MM-dd格式 (yyyy-MM-dd HH:mm:ss)
* @returns 格式化后的日期字符串
*/
formatTimeByStr(dateStr, (format = "yyyy-MM-dd"));
| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | ------- | ---------- | ----------------------------------------- | -------- | ---------- | | dateStr | | Date / string / null / undefined / number | true | 日期字符串 | | format | yyyy-MM-dd | yyyy-MM-dd HH:mm:ss | false | 日期格式 |
beforeTime 获取之前的日期
/**
* 获取之前的日期
* @param {*} date 日期类型 Date | string | null | undefined | number
* @param {number} num 小时数
* @param {string} type 类型, hour/day/month/year
* @param {string} format 日期格式
* @returns 前几小时的完整日期
*/
beforeTime(date, num, type, format?);
| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | ------ | ------ | ----------------------------------------- | -------- | ------------------------------------------ | | date | | Date / string / null / undefined / number | true | 日期类型 | | num | | number | true | 数量 | | type | day | hour/day/month/year | true | 处理类型,day - 前几天,hour - 前几小时... | | format | | yyyy-MM-dd HH:mm:ss | false | 日期格式,不传则默认返回 Date 格式的数据 |
deepCopy 深拷贝复杂类型变量
/**
* 深拷贝复杂类型变量
* @param {object} target 复杂类型数据 object
* @returns 新的复杂数据
*/
deepCopy(target);
| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | ------ | ------ | ------ | -------- | -------- | | target | | | true | 目标数据 |
mergeObjAttr 合并对象
/**
* 合并对象
* @param {*} origin 原始对象
* @param {*} target 目标对象,需要被合并的对象
* @param {*} rtNewObj 是否返回一个新对象,默认为false
* @param {*} level 当前遍历层级,属于内部参数,调用时不必传入
* @returns
*/
mergeObjAttr(origin, target, (rtNewObj = false), (level = 1));
| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | -------- | ------ | ------ | -------- | ------------------------------------------ | | origin | | | true | 原始对象 | | target | | | true | 目标对象,需要被合并的对象 | | rtNewObj | false | | false | 是否返回一个新对象,默认为 false | | level | 1 | | false | 当前遍历层级,属于内部参数,调用时不必传入 |
mergeArray 合并数组
/**
* 合并数组
* 这个合并数组并不是一般的合并,它跟普通的合并区别在于如果大家都是对象则合并属性,参考mergeObjAttr方法
* @param origin: 原始数组
* @param target: 目标数组
* @param rtNewArray: 是否返回一个新数组,默认为false
* @param level: 当前遍历层级,属于内部参数,调用时不必传入
*/
mergeArray(origin, target, (rtNewArray = false), (level = 1));
| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | ---------- | ------ | ------ | -------- | ------------------------------------------ | | origin | | | true | 原始数组 | | target | | | true | 目标数组,需要被合并的对象 | | rtNewArray | false | | false | 是否返回一个新数组,默认为 false | | level | 1 | | false | 当前遍历层级,属于内部参数,调用时不必传入 |
getDataType 获取数据类型
/**
* 获取数据类型
* @param {*} data 数据
* @param {boolean} isStatic 是否严格, 默认false, 即在object下, 只区分array, 不做Date等的区分
* @returns 返回数据类型 object/array/string/....
*/
getDataType(data);
| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | -------- | ------ | ------- | -------- | ------------------------------------------------------------------------------------- | | data | | any | true | 目标数据 | | isStatic | false | boolean | false | 是否返回严格的数据类型,默认 false, 即在 object 下, 只区分 array, 不做 Date 等的区分 |
cleanData 规范字典数据
/**
* 规范字典数据
* @param {*} dic {Object} key对象 如{value:"code",label:"name"} 即code->value name->label,意思是将原数据中code字段的数据赋值给value字段
* @param {*} data {Array} 需处理的数据
* @param {*} keep {Array} 是否保留原数据的其他字段
* @param {*} childrenName {Object} 子数据的key值替换 如{'children':'childs'} 将原数据中的childs转成children
* @returns array
*/
cleanData(data, dic, (keep = false), (childrenName = { children: "children" }));
| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | ------------ | -------------------------------- | ------ | -------- | ------------------------ | | data | [] | | true | 需处理的数据 | | dic | {value: dataKey, label: dataKey} | | true | key 对象 | | keep | false | | false | 是否保留原数据的其他字段 | | childrenName | {'children': dataKey} | | false | 子数据的 key 值替换 |
flatData 扁平化数组对象数据
/**
* 扁平化数组对象数据, 将树结构 -》 列表数据
* @param {Array} data 需处理的数据
* @param {Object} dic key对象 如{resule:"code",label:"name"} 即code->value name->label 为{}则不存在转化字段
* @param {String} childName 子集的集合字段
* @returns array 一维数组
*/
flatData(data, (dic = {}), (childName = "children"));
| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | --------- | -------- | ------------------------- | -------- | -------------- | | data | [] | | true | 需处理的数据 | | dic | {} | {resultKey: dataKey, ...} | false | key 对象 | | childName | children | | false | 子集的集合字段 |
arrToObj 将数组转成对象
/**
* @param {*} data 数组数据
* @param {*} dataKey 以数组中哪一个字段的数据作为对象的key
* @param {Object} dic key对象 如{resultKey: dataKey,...} 为{}则不存在转化字段
* @returns object
*/
arrToObj(data, (dic = {}), (childName = "children"));
| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | ------- | ------ | ------------------------ | -------- | -------------------------------------- | | data | [] | | true | 数组数据 | | dataKey | | data 里面任意的 key | true | 以数组中哪一个字段的数据作为对象的 key | | dic | {} | {resultKey: dataKey,...} | false | 转化字段配置, 为{}则不存在转化字段 |
listToTree 把列表数据转换成树结构, 列表数据必须有父节点标识
/**
* 把列表数据转换成树结构, 列表数据必须有父节点标识
* @param {*} data 列表数据
* @param {*} parentId 父节点的唯一标识数据
* @param {*} dic {id: dataKey, parentId: dataKey2,...}
* @param {*} level
* @returns array
*/
listToTree(data, (parentId = null), dic, (level = 0));
| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | -------- | -------------------------------- | ------ | -------- | ------------ | | data | [] | | true | 需处理的数据 | | parentId | | | true | 父节点的 id | | dic | {id: dataKey, parentId: dataKey} | | true | key 对象 | | level | {value: dataKey, label: dataKey} | | true | 层级 |
cleanDataByChart 处理 echarts 的数据
/**
* 处理echarts的数据
* @param {*} data object/array
* @param {*} dic {resultKey1: dataKey1, resultKey2: {value: dataKey2, ...}}
* @returns {object}
*/
cleanDataByChart(data, dic);
| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | ---- | ---------------------------------------------------------- | ------------ | -------- | ------------ | | data | [] | array/object | true | 需处理的数据 | | dic | {resultKey1: dataKey1, resultKey2: {value: dataKey2, ...}} | | true | key 对象 |
dealWithData 处理判空数据
/**
* 处理判空数据
* @param {number | null | undefined | string} data 数据
* @param {string} unit 单位
* @param {object} base {
* emptyArr: [], - 判空的集合,不传则默认为[null, undefined]
* abs: false, - 是否取绝对值
* subValue: "-", - 数据为空时替代的文本, 不传则默认为 '-'
* subUnit: '', - 数据为空时替代的单位,不传则使用unit
* fn: null - 在判断emptyArr之后判断的方法
* }
* @returns {string|*}
*/
dealWithData(data, unit, base);
| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | ---- | ------ | ---------------------------------------------------------------------- | -------- | -------------- | | data | | number / null / undefined /string | true | 需处理的数据 | | unit | | | false | 单位, 默认为'' | | base | | { emptyArr: [], abs: false, subValue: "-", subUnit: '', fn: () => '' } | false | 配置 |
formatNumber 格式化数字
/**
* 格式化数字
* @param {number | null | undefined | string} data 数据
* @param {number} fixedNum 保留的小数位数,默认不处理
* @param {string} unit 单位
* @returns {string|*}
*/
formatNumber(num, fixedNum, unit);
| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | -------- | ------ | --------------------------------- | -------- | -------------------------- | | data | | number / null / undefined /string | true | 需处理的数据 | | fixedNum | | | false | 保留的小数位数,默认不处理 | | unit | '' | | false | 单位 |
inRange 判断数据是否在区间中
/**
* 判断数据是否在区间中
* @param {number} number 目标数据
* @param {string} range 比较范围 []/[)/()/(]
* @param {string} compareType 判断类型 取值: in - 区间内 out - 区间外
*
* @returns boolean
*/
inRange(number, range, (compareType = "in"));
| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | ----------- | ------ | ----------------------------------- | -------- | --------------------------------- | | number | | number / null / undefined /string | true | 目标数据 | | range | | '[0,10]'/'[0,10)'/'(0,10)'/'(0,10]' | true | 比较范围 | | compareType | in | in/out | false | 判断类型 in - 区间内 out - 区间外 |
equals 判断数据是否相等
/**
* 判断数据是否相等
* @param {*} data1 数据1
* @param {*} data2 数据2
* @param {*} compare 比较的基准 ==/===
* @returns boolean
*/
equals(data1, data2, (compare = "=="));
| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | ------- | ------ | ------------------------------------------ | -------- | ---------- | | data1 | | number / null / undefined /string / object | true | 数据 1 | | data2 | | number / null / undefined /string / object | true | 数据 2 | | compare | == | == / === | false | 比较的基准 |
downloadFile 导出文件
/**
* 导出文件
* @param blob 文件|blob类型
* @param downloadName 导出的文件名称
* @param type 文件扩展名 | 默认xls
* @param defDate 文件名后面是否要加上日期 | 默认true
*/
downloadFile(blob, downloadName, (type = "xls"), (defDate = true));
| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | ------------ | ------ | ------ | -------- | ------------------------ | | blob | | blob | true | 文件二进制流 | | downloadName | | string | true | 导出的文件名称 | | type | xls | | false | 文件扩展名 | | defDate | true | | false | 文件名后面是否要加上日期 |
filterAsyncRoutes 获取权限路由
/**
* 获取权限路由
* @param routes 本地配置的路由资源
* @param resource 后端返回的权限资源
* @returns {[]}
*/
filterAsyncRoutes(routes, resource);
| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | -------- | ------ | ------ | -------- | ------------------ | | routes | [] | | true | 本地配置的路由资源 | | resource | [] | | true | 后端返回的权限资源 |
getRealApi 获取目标 api
/**
* 获取api
* @param {*} apiStr api组装的字符串
* @param {*} apis api集合
*/
getRealApi(apiStr, apis);
| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | ------ | ----------------- | ------ | -------- | ---------------- | | apiStr | 'xxx.xxxx' | string | true | api 组装的字符串 | | apis | {xxx: {xxxx: ''}} | object | true | api 集合 |
debounce 防抖
/** 防抖函数
* @param {Function} func
* @param {number} wait
* @param {boolean} immediate
* @param {object} context
* @return {Function} 事件处理函数
*/
debounce(fn, delay, immediate, context);
| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | --------- | -------- | -------- | -------- | ------------ | | fn | () => {} | function | true | 执行的方法 | | delay | 1000 | number | true | 延时时间 | | immediate | false | boolean | false | 是否立即执行 | | context | this | | | 上下文对象 |
throttle 节流函数
/** 防抖函数
* @param {Function} func
* @param {number} wait
* @param {boolean} immediate
* @param {object} context
* @return {Function} 事件处理函数
*/
throttle(fn, (delay = 200), (immediate = false), (context = this));
| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | --------- | -------- | -------- | -------- | ------------ | | fn | () => {} | function | true | 执行的方法 | | delay | 1000 | number | true | 延时时间 | | immediate | false | boolean | false | 是否立即执行 | | context | this | | | 上下文对象 |
initPromise 设置微任务事件
/** 设置微任务事件
* @param {Function} callback
*/
initPromise(callback);
| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | -------- | -------- | -------- | -------- | ---------- | | callback | () => {} | function | true | 执行的方法 |