Files
group_fqcd_jr/app/static/portal/common/formatters.js
T
2026-09-14 01:07:43 +08:00

42 lines
1.3 KiB
JavaScript

export function formatCurrency(value) {
const number = Number(value || 0);
return `¥${number.toLocaleString('zh-CN', { minimumFractionDigits: 2, maximumFractionDigits: 2 })}`;
}
export function formatNumber(value, digits = 2) {
return Number(value || 0).toLocaleString('zh-CN', { minimumFractionDigits: digits, maximumFractionDigits: digits });
}
export function formatPercent(value) {
const number = Number(value || 0);
return `${number > 0 ? '+' : ''}${number.toFixed(2)}%`;
}
export function formatDateTime(value, includeSeconds = false) {
if (!value) return '--';
const date = new Date(value);
if (Number.isNaN(date.getTime())) return String(value);
return new Intl.DateTimeFormat('zh-CN', {
year: 'numeric',
month: '2-digit',
day: '2-digit',
hour: '2-digit',
minute: '2-digit',
...(includeSeconds ? { second: '2-digit' } : {}),
hour12: false,
}).format(date).replaceAll('/', '-');
}
export function valueClass(value) {
const number = Number(value || 0);
if (number > 0) return 'value--positive';
if (number < 0) return 'value--negative';
return 'value--muted';
}
export function escapeHtml(value) {
const node = document.createElement('span');
node.textContent = String(value ?? '');
return node.innerHTML;
}