2021-08-18 17:57:33 +08:00
|
|
|
/**
|
|
|
|
|
* 格式化字节单位
|
|
|
|
|
* @param size byte size
|
|
|
|
|
* @returns
|
|
|
|
|
*/
|
|
|
|
|
export function formatByteSize(size: any) {
|
|
|
|
|
const value = Number(size);
|
2022-02-14 14:58:25 +08:00
|
|
|
if (size && !isNaN(value)) {
|
|
|
|
|
const units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB', 'BB'];
|
|
|
|
|
let index = 0;
|
|
|
|
|
let k = value;
|
|
|
|
|
if (value >= 1024) {
|
|
|
|
|
while (k > 1024) {
|
|
|
|
|
k = k / 1024;
|
|
|
|
|
index++;
|
2021-08-18 17:57:33 +08:00
|
|
|
}
|
|
|
|
|
}
|
2022-02-14 14:58:25 +08:00
|
|
|
return `${k.toFixed(2)}${units[index]}`;
|
|
|
|
|
}
|
|
|
|
|
return '-';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 格式化json字符串
|
|
|
|
|
* @param txt json字符串
|
|
|
|
|
* @param compress 是否压缩
|
|
|
|
|
* @returns 格式化后的字符串
|
|
|
|
|
*/
|
|
|
|
|
export function formatJsonString(txt: string, compress: boolean) {
|
|
|
|
|
var indentChar = ' ';
|
|
|
|
|
if (/^\s*$/.test(txt)) {
|
|
|
|
|
console.log('数据为空,无法格式化! ');
|
|
|
|
|
return txt;
|
|
|
|
|
}
|
|
|
|
|
try {
|
|
|
|
|
var data = JSON.parse(txt);
|
|
|
|
|
} catch (e: any) {
|
|
|
|
|
console.log('数据源语法错误,格式化失败! 错误信息: ' + e.description, 'err');
|
|
|
|
|
return txt;
|
|
|
|
|
}
|
|
|
|
|
var draw: any = [],
|
|
|
|
|
line = compress ? '' : '\n',
|
|
|
|
|
// eslint-disable-next-line no-unused-vars
|
|
|
|
|
nodeCount: number = 0,
|
|
|
|
|
// eslint-disable-next-line no-unused-vars
|
|
|
|
|
maxDepth: number = 0;
|
|
|
|
|
|
|
|
|
|
var notify = function (name: any, value: any, isLast: any, indent: any, formObj: any) {
|
|
|
|
|
nodeCount++; /*节点计数*/
|
|
|
|
|
for (var i = 0, tab = ''; i < indent; i++) tab += indentChar; /* 缩进HTML */
|
|
|
|
|
tab = compress ? '' : tab; /*压缩模式忽略缩进*/
|
|
|
|
|
maxDepth = ++indent; /*缩进递增并记录*/
|
|
|
|
|
if (value && value.constructor == Array) {
|
|
|
|
|
/*处理数组*/
|
|
|
|
|
draw.push(tab + (formObj ? '"' + name + '": ' : '') + '[' + line); /*缩进'[' 然后换行*/
|
|
|
|
|
for (var i = 0; i < value.length; i++) notify(i, value[i], i == value.length - 1, indent, false);
|
|
|
|
|
draw.push(tab + ']' + (isLast ? line : ',' + line)); /*缩进']'换行,若非尾元素则添加逗号*/
|
|
|
|
|
} else if (value && typeof value == 'object') {
|
|
|
|
|
/*处理对象*/
|
|
|
|
|
draw.push(tab + (formObj ? '"' + name + '": ' : '') + '{' + line); /*缩进'{' 然后换行*/
|
|
|
|
|
var len = 0,
|
|
|
|
|
i = 0;
|
|
|
|
|
for (var key in value) len++;
|
|
|
|
|
for (var key in value) notify(key, value[key], ++i == len, indent, true);
|
|
|
|
|
draw.push(tab + '}' + (isLast ? line : ',' + line)); /*缩进'}'换行,若非尾元素则添加逗号*/
|
|
|
|
|
} else {
|
|
|
|
|
if (typeof value == 'string') value = '"' + value + '"';
|
|
|
|
|
draw.push(tab + (formObj ? '"' + name + '": ' : '') + value + (isLast ? '' : ',') + line);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
var isLast = true,
|
|
|
|
|
indent = 0;
|
|
|
|
|
notify('', data, isLast, indent, false);
|
|
|
|
|
return draw.join('');
|
2021-08-18 17:57:33 +08:00
|
|
|
}
|