import { getDicts } from '@/api/system/dict/data';
import { useDictStore } from '@/store/modules/dict';
/**
 * 获取字典数据
 */
export const useDict = (...args) => {
  const res = ref({});
  return (() => {
    args.forEach(async (dictType) => {
      res.value[dictType] = [];
      const dicts = useDictStore().getDict(dictType);
      if (dicts) {
        res.value[dictType] = dicts;
      } else {
        await 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 res.value;
  })();
};

export const getDictLabel = (dictData, value, label = 'label', key = 'value') => {
  if (dictData instanceof Array) {
    for (let i = 0; i < dictData.length; i++) {
      if (dictData[i][key] === value) {
        return dictData[i][label];
      }
    }
    return value;
  } else {
    return value;
  }
};
