feat(utils): 添加数字格式化工具函数并应用至多个组件
添加 formatDecimal 函数用于格式化小数显示,去除末尾无效0和孤立小数点 在库存管理、采购、出入库等模块中应用该格式化函数,统一数字显示格式 调整仪表盘统计数据的精度显示为整数 优化采购截止日期的显示逻辑,增加状态判断和剩余天数计算
This commit is contained in:
@@ -226,3 +226,21 @@ export function getNormalPath(p) {
|
||||
export function blobValidate(data) {
|
||||
return data.type !== 'application/json'
|
||||
}
|
||||
|
||||
/**
|
||||
* 格式化小数(兼容数字/字符串输入),去除末尾所有0,末尾仅余小数点则去除
|
||||
* @param {number|string} num - 输入值(数字/合法数字字符串,如123.4500、"99.000"、"66")
|
||||
* @returns {string} 格式化后的字符串,非法输入返回空字符串
|
||||
*/
|
||||
export function formatDecimal(num) {
|
||||
// 1. 统一转字符串并去除首尾空格,兼容带空格的输入
|
||||
const str = String(num).trim();
|
||||
// 2. 合法性校验:仅匹配 正负整数/小数(拒绝非数字、科学计数法等非法输入)
|
||||
const validReg = /^-?\d+(\.\d+)?$/;
|
||||
if (!validReg.test(str)) {
|
||||
return ''; // 非法输入返回空字符串,也可根据需求改为抛出错误
|
||||
}
|
||||
// 3. 核心格式化:先去末尾0,再处理末尾孤立的小数点
|
||||
// 正则1:匹配小数点后有效数字+末尾0,保留有效数字(去0);正则2:去掉末尾仅存的小数点
|
||||
return str.replace(/(\.\d*?)0*$/, '$1').replace(/\.$/, '');
|
||||
}
|
||||
Reference in New Issue
Block a user