Refactor code structure and remove redundant changes

This commit is contained in:
wangqiao
2025-08-15 16:45:15 +08:00
commit 99df1d1f81
220 changed files with 33086 additions and 0 deletions

98
utils/utils.ts Normal file
View File

@ -0,0 +1,98 @@
import Decimal from 'decimal.js'
/**
* 加法计算
* @param param1 当前值number或string
* @param param2 当前值number或string
* @param num 保留小数位数默认小数2位
* @param mode 舍入模式1 向上取2 向下取3 四舍五入默认3
* @returns 返回处理后的数据
*/
export function accAdd(param1: number | string, param2: number | string, num = 2, mode = 3) {
if (param1 === null || param1 === undefined || param1 === '') return param1
if (param2 === null || param2 === undefined || param2 === '') return param2
const temp = new Decimal(param1).add(new Decimal(param2))
if (mode === 1) return temp.toFixed(num, Decimal.ROUND_UP)
else if (mode === 2) return temp.toFixed(num, Decimal.ROUND_DOWN)
else return temp.toFixed(num, Decimal.ROUND_HALF_UP)
}
/**
* 减法计算
* @param param1 当前值number或string
* @param param2 当前值number或string
* @param num 保留小数位数默认小数2位
* @param mode 舍入模式1 向上取2 向下取3 四舍五入默认3
* @returns 返回处理后的数据
*/
export function accSub(param1: number | string, param2: number | string, num = 2, mode = 3) {
if (param1 === null || param1 === undefined || param1 === '') return param1
if (param2 === null || param2 === undefined || param2 === '') return param2
const temp = new Decimal(param1).sub(new Decimal(param2))
if (mode === 1) return temp.toFixed(num, Decimal.ROUND_UP)
else if (mode === 2) return temp.toFixed(num, Decimal.ROUND_DOWN)
else return temp.toFixed(num, Decimal.ROUND_HALF_UP)
}
/**
* 乘法计算
* @param param1 当前值number或string
* @param param2 当前值number或string
* @param num 保留小数位数默认小数2位
* @param mode 舍入模式1 向上取2 向下取3 四舍五入默认3
* @returns 返回处理后的数据
*/
export function accMul(param1: number | string, param2: number | string, num = 2, mode = 3) {
if (param1 === null || param1 === undefined || param1 === '') return param1
if (param2 === null || param2 === undefined || param2 === '') return param2
const temp = new Decimal(param1).mul(new Decimal(param2))
if (mode === 1) return temp.toFixed(num, Decimal.ROUND_UP)
else if (mode === 2) return temp.toFixed(num, Decimal.ROUND_DOWN)
else return temp.toFixed(num, Decimal.ROUND_HALF_UP)
}
/**
* 除法计算
* @param param1 当前值number或string
* @param param2 当前值number或string
* @param num 保留小数位数默认小数2位
* @param mode 舍入模式1 向上取2 向下取3 四舍五入默认3
* @returns 返回处理后的数据
*/
export function accDiv(param1: number | string, param2: number | string, num = 2, mode = 3) {
if (param1 === null || param1 === undefined || param1 === '') return param1
if (param2 === null || param2 === undefined || param2 === '' || param2.toString() === '0') return param2
const temp = new Decimal(param1).div(new Decimal(param2))
if (mode === 1) return temp.toFixed(num, Decimal.ROUND_UP)
else if (mode === 2) return temp.toFixed(num, Decimal.ROUND_DOWN)
else return temp.toFixed(num, Decimal.ROUND_HALF_UP)
}
/**
* 数字格式化千分位显示
* @param decimals 保留小数位数, 传-1则表示 原数字有小数则保留两位小数,原数字没小数则为整数
* @returns 返回处理后的数据字符串
*/
export const formatNumber = (value?: number, decimals = 0) => {
if (!value) return 0
if (decimals === -1) {
decimals = value % 1 === 0 ? 0 : 2
}
return new Intl.NumberFormat('zh-CN', {
minimumFractionDigits: decimals,
maximumFractionDigits: decimals,
}).format(value)
}
/***
* 下载文件
* @param url 文件地址
* @param filename 文件名
*/
export const downloadFile = (url: string, filename: string) => {
const a = document.createElement('a')
a.href = url
a.download = filename || 'download' // 设置下载的文件名
document.body.appendChild(a)
a.click()
document.body.removeChild(a)
}