feat(utils): 添加数字格式化工具函数并应用至多个组件

添加 formatDecimal 函数用于格式化小数显示,去除末尾无效0和孤立小数点
在库存管理、采购、出入库等模块中应用该格式化函数,统一数字显示格式
调整仪表盘统计数据的精度显示为整数
优化采购截止日期的显示逻辑,增加状态判断和剩余天数计算
This commit is contained in:
砂糖
2026-01-31 14:39:53 +08:00
parent 42f6f83c3a
commit b4beb49f91
11 changed files with 175 additions and 30 deletions

View File

@@ -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(/\.$/, '');
}