import useDictStore from '@/store/modules/dict';
import { getDicts } from '@/api/main/main';

/**
 * 获取字典数据
 */
export function useDict(...args) {
    const res = ref({});
    return (() => {
        args.forEach((dictType, index) => {
            res.value[dictType] = [];
            const dicts = useDictStore().getDict(dictType);
            if (dicts) {
                res.value[dictType] = dicts;
            } else {
                getDicts(dictType).then((resp) => {
                    res.value[dictType] = resp.data.map((p) => ({
                        label: p.dictLabel,
                        value: p.dictValue,
                        elTagType: p.listClass,
                        elTagClass: p.cssClass,
                    }));
                    useDictStore().setDict(dictType, res.value[dictType]);
                });
            }
        });
        return toRefs(res.value);
    })();
}

export const dicColor = (dicType, value, colorType = 'color', isDefault = false) => {
    const dict = useDictStore().getDict(dicType);
    if (dict) {
        const item = dict.find((p) => p.value === value);
        if (item && item.elTagType) {
            return colorType === 'color' ? colors[item.elTagType] : item.elTagType;
        }
    }
    if (isDefault) return colorType === 'color' ? '#409EFF' : 'default';
    return '';
};