export const wrapTreeNode = (data: any) => {
    const wrapData: any = data.map((item: any) => {
        const node = { ...item.node };

        if (item.children && item.children.length > 0) {
            node.children = wrapTreeNode(item.children);
        }
        return node
    });
    return wrapData;
}

// 若有小数保留两位小数 没有小数不保留
export const formatNumber = (num: number) => {
    // 判断是否是小数
    if (num % 1 !== 0) {
        return num.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 });
    } else {
        return num.toLocaleString(); // 使用千分号，不保留小数位
    }
}

export const formatNumberData = (value: number): string => {
    if (isNaN(value)) return "";  // 如果输入值不是数字，返回空字符串
    // 判断是否有小数
    const isInteger = value % 1 === 0;
    // 添加千分号
    let formattedValue = value.toLocaleString('en-US');
    // 如果有小数，保留两位小数
    if (!isInteger) {
        formattedValue = parseFloat(value.toFixed(2)).toLocaleString('en-US');
    }
    return formattedValue;
};

// 把可能是带千分号的数字 变为数字
export const parseThousandSeparatedNumber = (str: string) => {
    if (!str) return 0; // 如果字符串为空，返回0
    const cleaned = str.replace(/,/g, ""); // 移除千分号
    return parseFloat(cleaned); // 转换为数字
};

// 截取小数点2位  输出带千分号的 
export const formatNumberTo = (num: number) => {
    // 判断是否是数字
    if (isNaN(num) || num === 0) {
        return "0.00";
    }

    // 限制小数点后最多两位
    let number: any = num.toFixed(2);

    // 添加千分位
    const [integer, decimal] = number.split('.');

    const formattedInteger = integer.replace(/\B(?=(\d{3})+(?!\d))/g, ','); // 添加千分位

    // 返回带千分位和保留两位小数的数字
    return `${formattedInteger}.${decimal}`;
}