/** * 建制数据格式化工具类 */ export class InstitutionalDataFormatter { /** * 格式化金额 * @param {number} amount 金额 * @returns {string} 格式化后的金额字符串 */ static formatAmount(amount) { if (!amount) return '不详' if (amount >= 100000000) { return `${(amount / 100000000).toFixed(1)}亿` } else if (amount >= 10000) { return `${(amount / 10000).toFixed(1)}万` } else { return `${amount.toLocaleString()}` } } /** * 格式化左上角内容 * @param {string} year 年份 * @param {string} projectName 项目名称 * @returns {string} 格式化后的内容 */ static formatTopLeft(year, projectName) { if (!year || !projectName) return '暂无数据' return `${year}年 ${projectName}` } /** * 获取状态文本 * @param {string} state 状态码 * @returns {string} 状态文本 */ static getStatusText(state) { switch (state) { case '1': return '规划' case '2': return '进行中' case '3': return '已完成' case '4': return '已取消' default: return '未知状态' } } /** * 转换后端数据为前端格式 * @param {Array} rows 后端数据 * @returns {Array} 转换后的数据 */ static transformData(rows) { return rows.map(item => ({ topLeft: InstitutionalDataFormatter.formatTopLeft(item.startYear, item.proName), topRight: InstitutionalDataFormatter.getStatusText(item.state), bottomLeft: `建造金额:${InstitutionalDataFormatter.formatAmount(item.totalAmount)}`, bottomRight: `捐赠人数:${item.donorCount}人` })) } }