/**
|
* 状态翻译工具
|
* 用于翻译调解状态、格式化时间和成功率
|
*/
|
|
/**
|
* 翻译调解状态
|
* @param {number|string} state - 调解状态值
|
* @returns {string} 中文状态描述
|
*/
|
export const translateMediationState = (state) => {
|
const stateMap = {
|
0: '待调解',
|
1: '调解中',
|
2: '调解成功',
|
3: '调解失败',
|
4: '人工接管'
|
};
|
|
return stateMap[state] || '未知状态';
|
};
|
|
/**
|
* 格式化持续时间为"X小时前更新"格式
|
* @param {string} duration - 持续时间字符串(如"5天17小时19分钟")
|
* @returns {string} 格式化后的时间描述
|
*/
|
export const formatDuration = (duration) => {
|
if (!duration) return '暂无更新';
|
|
// 提取小时数
|
const hourMatch = duration.match(/(\d+)小时/);
|
if (hourMatch) {
|
return `${hourMatch[1]}小时前更新`;
|
}
|
|
// 提取天数
|
const dayMatch = duration.match(/(\d+)天/);
|
if (dayMatch) {
|
const days = parseInt(dayMatch[1]);
|
const hours = days * 24;
|
return `${hours}小时前更新`;
|
}
|
|
// 提取分钟数
|
const minuteMatch = duration.match(/(\d+)分钟/);
|
if (minuteMatch) {
|
return `${minuteMatch[1]}分钟前更新`;
|
}
|
|
return `${duration}前更新`;
|
};
|
|
/**
|
* 格式化成功率为百分比
|
* @param {string|number} successRate - 成功率(如"0.68"或"68")
|
* @returns {string} 格式化后的百分比(如"68%")
|
*/
|
export const formatSuccessRate = (successRate) => {
|
if (!successRate && successRate !== 0) return '0%';
|
|
const rate = parseFloat(successRate);
|
|
// 如果是小数(0-1之间),转换为百分比
|
if (rate >= 0 && rate <= 1) {
|
return `${Math.round(rate * 100)}%`;
|
}
|
|
// 如果已经是百分比数值,直接返回
|
return `${Math.round(rate)}%`;
|
};
|
|
/**
|
* 格式化轮次显示
|
* @param {number|string} count - 轮次数
|
* @returns {string} 格式化后的轮次(如"第6轮")
|
*/
|
export const formatRoundCount = (count) => {
|
if (!count && count !== 0) return '第0轮';
|
return `第${count}轮`;
|
};
|