You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
1.8 KiB
75 lines
1.8 KiB
var Util = {
|
|
/**
|
|
* 对 数组 某个字段 求和
|
|
* @param {Array} list
|
|
* @param {string} field
|
|
*/
|
|
countField: function (list, field) {
|
|
if (list == null) {
|
|
return 0;
|
|
}
|
|
var sum = 0;
|
|
for (var i = 0; i < list.length; i++) {
|
|
sum += list[i][field];
|
|
}
|
|
return sum;
|
|
},
|
|
/**
|
|
* 计算百分比
|
|
* @param {any} value
|
|
* @param {any} total
|
|
* @param {number} fractionDigits 保留小数点位数,默认为 0
|
|
*/
|
|
calcRate: function (value, total, fractionDigits) {
|
|
if (value == 0 && total == 0) {
|
|
// 都是 0 , 返回 0
|
|
return 0;
|
|
}
|
|
if (!total) {
|
|
return 100;
|
|
}
|
|
fractionDigits = fractionDigits || 0;
|
|
var rate = value / total;
|
|
rate = rate * 100;
|
|
rate = rate.toFixed(fractionDigits);
|
|
return rate;
|
|
},
|
|
// 函数防抖
|
|
debounce: function (fn, delay) {
|
|
var tiemr = null;
|
|
return function () {
|
|
if (timer) {
|
|
clearTimeout(timer);
|
|
}
|
|
timer = setTimeout(fn, delay);
|
|
};
|
|
},
|
|
/**
|
|
* 返回日期 : 例如 202010 -> 2020年10月 (最多精确到 小时 2020年10月1日14点)
|
|
* @param {string} formatTime
|
|
*/
|
|
prettyDate: function (formatTime) {
|
|
var s = '';
|
|
var arr = ['年', '月', '日', '点'];
|
|
var result = [];
|
|
|
|
var i = 0;
|
|
while (formatTime) {
|
|
|
|
var size = 2;
|
|
if (i === 0) {
|
|
size = 4;
|
|
}
|
|
var s1 = formatTime.substr(0, size);
|
|
|
|
result.push(s1.replace(/^0+/, ''), arr[i]);
|
|
|
|
formatTime = formatTime.substring(size);
|
|
|
|
i++;
|
|
}
|
|
|
|
s = result.join('');
|
|
return s;
|
|
}
|
|
}; |