//  工具函数，仅供考试对比模拟数据的改变，对接后端接口时，按照需求合理修改并使用即可

/**
     * @function 获取随机数
     * @param {*} min 
     * @param {*} max
     * @returns 返回指定范围的随机数
     */
export function getRandomNumber(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
}



/**
     * @function 改变表格mockData中的表格中的列值，仅供参考
     * @param {*} data  表格模拟数据
     * @returns 处理后的表格数据
     */
export function updateNumValues(data) {
    if (Array.isArray(data)) {
        data.forEach(item => updateNumValues(item));
    } else if (typeof data === 'object' && data !== null) {
        if (data.hasOwnProperty('num')) {
            data.num = getRandomNumber(200, 3000);
        }
        if (data.hasOwnProperty('mock') && data.mock.hasOwnProperty('num2')) {
            data.mock.num2 = getRandomNumber(200, 3000);
        }
        if (data.hasOwnProperty('mock') && data.mock.hasOwnProperty('numPeople')) {
            data.mock.numPeople = getRandomNumber(10, 100);
        }
        if (data.hasOwnProperty('mock') && data.mock.hasOwnProperty('increase')) {
            data.mock.increase = `${getRandomNumber(1, 100)}%`;
        }
        if (data.hasOwnProperty('children')) {
            updateNumValues(data.children);
        }
        return data;
    }
}


/**
    * @function 递归给每个元素添加mock属性
    * @param {Array} data 
    */
export function addMockProperty(data) {
    // 遍历数组中的每个对象
    data.forEach(item => {
        // 为当前对象添加 mock 属性
        item.mock = {
            num2: Math.floor(Math.random() * 6001),
            numPeople: Math.floor(Math.random() * 100 - 50),
            increase: Math.floor(Math.random() * 10),
            rank: Math.floor(Math.random() * 10) + 1
        };

        // 如果当前对象有子节点，递归处理子节点
        if (item.children && item.children.length > 0) {
            addMockProperty(item.children);
        }
    });
    return data;
}