import { getDictDataApi } from "@/api/common";
/**
 * 根据类型获取EUM数据。
 * 该函数用于根据给定的类型从本地存储或服务器获取EUM数据。如果数据已在本地存储中，则直接返回；
 * 否则，从服务器获取数据，并将其存储在本地，然后返回。
 *
 * @param {string} type - 数据的类型。用于指定要获取的EUM数据的类型。
 * @returns {Promise} - 返回一个Promise对象，该对象在数据获取成功后解析为相应的数据。
 */
export const getEumData = type => {
    const storage = getStorageSync(type);
    return new Promise(resolve => {
        // if (storage) {
        //     resolve(storage);
        // } else {
        getDictDataApi([type]).then(res => {
            const data = res.data[type];
            setStorageSync(type, data);
            resolve(data);
        });
        // }
    });
};
export const getEnumText = async (type, code) => {
    const eumData = await getEumData(type);
    return eumData.find(item => item.code == code)?.text || "无";
};

export const getEnumText2 = async (type, codes) => {
    const eumData = await getEumData(type);
    // 使用 Array.prototype.map 和 .filter 方法来获取所有匹配项的 text
    const texts = eumData
        .filter(item => codes.includes(item.code))
        .map(item => item.text);

    // 将获取到的 text 数组合并成一个字符串，用 "|" 分割
    return texts.join('|') || "无";
};
/**
 * 将数据存储在本地存储空间中。
 * @param {string} key 要存储的数据的关键字，用于检索数据。
 * @param {*} data 要存储的具体数据，可以是各种数据类型。
 */
export const setStorageSync = (key, data) => {
    uni.setStorageSync(key, data);
};
export const getStorageSync = key => uni.getStorageSync(key);

// 路由跳转
export const navigateTo = url => {
    if (!url) return;
    uni.navigateTo({
        url: url
    });
};
