枚举值转列表
const = transfer(arr, value, {
Multiple = '',
splitLab = ',',
label = 'label',
val = 'value',
noMatchTip = ''
} = {}) {
if (!arr) {
return '';
}
if (!value && String(value) !== '0') {
return ''
}
if (Multiple && value.indexOf(`${splitLab}`) > -1) {
let valueArr = value.split(`${splitLab}`);
let str = '';
valueArr.forEach(item => {
let arrItem = arr.find(itemChild => {
return itemChild[val] == item;
});
str += (arrItem ? arrItem[label] : noMatchTip) + ',';
});
return str.substr(0, str.length - 1);
} else {
let item = arr.find(item => {
return item[val] === value;
});
return item ? item[label] : noMatchTip;
}
}
树形数据扁平化
const getJsonTree = function(data, options, pidvalue = null) {
var result = [], temp;
var {pid, id} = options;
for (var i = 0; i < data.length; i++) {
if (data[i][pid] == pidvalue) {
var obj = data[i];
temp = getJsonTree(data, options, data[i][id]);
if (temp.length > 0) {
obj.children = temp;
}
result.push(obj);
}
}
return result;
}
金额千分位
function NumFormat(num) {
var f_x = parseFloat(num);
if (isNaN(f_x)) {
return 0;
}
var f_x = Math.round(num * 100) / 100;
var s_x = f_x.toString();
var pos_decimal = s_x.indexOf('.');
if (pos_decimal < 0) {
pos_decimal = s_x.length;
s_x += '.';
}
while (s_x.length <= pos_decimal + 2) {
s_x += '0';
}
return (s_x + '').replace(/(\d{1,3})(?=(\d{3})+(?:$|\.))/g, '$1,');
}
文件转换base64
function fileBase(file, name) {
return new Promise((resolve, reject) => {
let fileReader = new FileReader()
fileReader.onload = (function () {
resolve(this.result) // 返回
})()
fileReader.readAsDataURL(file)
})
}
数组去重
function unique(arr, key) {
const map = new Map()
return arr.filter((item) => !map.has(item[key] + '') && map.set(item[key] + '', 1))
}
值非空判断
const isEmpty = x => x === undefined || x === null
const isEmptyInclude0 = x => x === undefined || x === null || x === 0