修复小区背景颜色,巡检点顺序一致,投诉处理按钮
This commit is contained in:
@@ -83,6 +83,14 @@ export function convertToChineseCapital(num: number | string): string {
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 标准化为Big实例,空/undefined/null转0
|
||||
* @param num 数字 | 数字字符串
|
||||
*/
|
||||
function toBig(num: string | number | undefined | null): Big {
|
||||
if (num === null || num === undefined || num === '') return new Big(0);
|
||||
return new Big(num);
|
||||
}
|
||||
/**
|
||||
* 金额加法
|
||||
* @param a 数值
|
||||
@@ -93,56 +101,46 @@ export function moneyAdd(a: number | string = 0, b: number | string = 0): string
|
||||
return new Big(a).plus(b).toFixed(2);
|
||||
}
|
||||
|
||||
// 金额减法
|
||||
export function sub(a, b) {
|
||||
let r1, r2;
|
||||
try {
|
||||
r1 = a.toString().split('.')[1].length;
|
||||
} catch (e) {
|
||||
r1 = 0;
|
||||
}
|
||||
try {
|
||||
r2 = b.toString().split('.')[1].length;
|
||||
} catch (e) {
|
||||
r2 = 0;
|
||||
}
|
||||
const m = Math.pow(10, Math.max(r1, r2));
|
||||
return (a * m - b * m) / m;
|
||||
/**
|
||||
* 减法 a - b
|
||||
*/
|
||||
export function sub(a: string | number, b: string | number): number {
|
||||
return Number(toBig(a).minus(toBig(b)));
|
||||
}
|
||||
|
||||
// 金额乘法
|
||||
export function mul(a, b) {
|
||||
let m = 0;
|
||||
const s1 = a.toString(),
|
||||
s2 = b.toString();
|
||||
try {
|
||||
m += s1.split('.')[1].length;
|
||||
} catch (e) {}
|
||||
try {
|
||||
m += s2.split('.')[1].length;
|
||||
} catch (e) {}
|
||||
return (Number(s1.replace('.', '')) * Number(s2.replace('.', ''))) / Math.pow(10, m);
|
||||
/**
|
||||
* 乘法 a * b
|
||||
*/
|
||||
export function mul(a: string | number, b: string | number): number {
|
||||
return Number(toBig(a).times(toBig(b)));
|
||||
}
|
||||
|
||||
// 金额除法
|
||||
export function div(a, b) {
|
||||
let t1 = 0,
|
||||
t2 = 0;
|
||||
try {
|
||||
t1 = a.toString().split('.')[1].length;
|
||||
} catch (e) {}
|
||||
try {
|
||||
t2 = b.toString().split('.')[1].length;
|
||||
} catch (e) {}
|
||||
const x = Number(a.toString().replace('.', ''));
|
||||
const y = Number(b.toString().replace('.', ''));
|
||||
return (x / y) * Math.pow(10, t2 - t1);
|
||||
/**
|
||||
* 除法 a / b
|
||||
* @throws 除数为0抛异常,业务try catch捕获
|
||||
*/
|
||||
export function div(a: string | number, b: string | number): number {
|
||||
const bigB = toBig(b);
|
||||
if (bigB.eq(0)) throw new Error('除数不能为0');
|
||||
return Number(toBig(a).div(bigB));
|
||||
}
|
||||
|
||||
// 保留2位小数(金额专用)
|
||||
export function toFixed2(val) {
|
||||
return Number(val).toFixed(2);
|
||||
}
|
||||
// 判断 a 和 b 是否数值相等
|
||||
export function eq(a: string | number, b: string | number): boolean {
|
||||
return toBig(a).eq(toBig(b));
|
||||
}
|
||||
/**
|
||||
* 金额保留指定位小数(四舍五入,默认2位)
|
||||
* @param num 计算结果
|
||||
* @param digit 保留位数
|
||||
*/
|
||||
export function toFixedMoney(num: string | number, digit = 2): number {
|
||||
return Number(toBig(num).toFixed(digit, Big.roundHalfUp));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 智能金额格式化(带单位:元/万元/亿元)
|
||||
|
||||
Reference in New Issue
Block a user