20260827173205

This commit is contained in:
oneao committed 2026-08-27 17:32:05 +08:00
1 parent 60cacfa8fb
commit 3824af0f12
38 files changed
+2398 -3552

No files matched your search

@@ -0,0 +1,48 @@
import dayjs from 'dayjs'
/**
* 按 displayFormat 将原始值格式化为展示字符串,供数据层预格式化使用。
* 展示值直接写入行数据,表格走原生文本渲染,无 customCell 运行时开销。
* @param {*} value - 原始值
* @param {string|Function} format - 'money' | 'number' | 'percent' | 'date' | 'datetime' | 'time' | 自定义函数
* @returns {string} 格式化后的文本
*/
export function formatCellValue(value, format) {
if (value === null || value === undefined || value === '') return ''
if (typeof format === 'function') return String(format(value))
switch (format) {
case 'money': {
const num = Number(value)
if (!Number.isFinite(num)) return String(value)
return (
'¥' +
num.toLocaleString('zh-CN', {
minimumFractionDigits: 2,
maximumFractionDigits: 2,
})
)
}
case 'number': {
const num = Number(value)
if (!Number.isFinite(num)) return String(value)
return num.toLocaleString('zh-CN', {
minimumFractionDigits: 0,
maximumFractionDigits: 0,
})
}
case 'percent': {
const num = Number(value)
if (!Number.isFinite(num)) return String(value)
return (num * 100).toFixed(1) + '%'
}
case 'date':
return dayjs(value).format('YYYY-MM-DD')
case 'datetime':
return dayjs(value).format('YYYY-MM-DD HH:mm:ss')
case 'time':
return dayjs(value).format('HH:mm:ss')
default:
return String(value)
}
}