修复小区背景颜色,巡检点顺序一致,投诉处理按钮

This commit is contained in:
Zy
2026-07-16 11:06:26 +08:00
parent 4efb535730
commit 725bdfa3fe
56 changed files with 1034 additions and 468 deletions

View File

@@ -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));
}
/**
* 智能金额格式化(带单位:元/万元/亿元)