74 lines
1.8 KiB
JavaScript
74 lines
1.8 KiB
JavaScript
|
Tool = {
|
||
|
/**
|
||
|
* 空校验 null或""都返回true
|
||
|
*/
|
||
|
isEmpty: (obj) => {
|
||
|
if ((typeof obj === 'string')) {
|
||
|
return !obj || obj.replace(/\s+/g, "") === ""
|
||
|
} else {
|
||
|
return (!obj || JSON.stringify(obj) === "{}" || obj.length === 0);
|
||
|
}
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* 非空校验
|
||
|
*/
|
||
|
isNotEmpty: (obj) => {
|
||
|
return !Tool.isEmpty(obj);
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* 对象复制
|
||
|
* @param obj
|
||
|
*/
|
||
|
copy: (obj) => {
|
||
|
if (Tool.isNotEmpty(obj)) {
|
||
|
return JSON.parse(JSON.stringify(obj));
|
||
|
}
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* 使用递归将数组转为树形结构
|
||
|
* 父ID属性为parent
|
||
|
*/
|
||
|
array2Tree: (array, parentId) => {
|
||
|
if (Tool.isEmpty(array)) {
|
||
|
return [];
|
||
|
}
|
||
|
|
||
|
const result = [];
|
||
|
for (let i = 0; i < array.length; i++) {
|
||
|
const c = array[i];
|
||
|
// console.log(Number(c.parent), Number(parentId));
|
||
|
if (Number(c.parent) === Number(parentId)) {
|
||
|
result.push(c);
|
||
|
|
||
|
// 递归查看当前节点对应的子节点
|
||
|
const children = Tool.array2Tree(array, c.id);
|
||
|
if (Tool.isNotEmpty(children)) {
|
||
|
c.children = children;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
return result;
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* 随机生成[len]长度的[radix]进制数
|
||
|
* @param len
|
||
|
* @param radix 默认62
|
||
|
* @returns {string}
|
||
|
*/
|
||
|
uuid: (len, radix = 62) => {
|
||
|
const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
|
||
|
const uuid = [];
|
||
|
radix = radix || chars.length;
|
||
|
|
||
|
for (let i = 0; i < len; i++) {
|
||
|
uuid[i] = chars[0 | Math.random() * radix];
|
||
|
}
|
||
|
|
||
|
return uuid.join('');
|
||
|
}
|
||
|
};
|