import { getDicts } from '@/api/system/dict/data';
import { useDictStore } from '@/store/modules/dict';
import { TUIChatService } from '@tencentcloud/chat-uikit-engine';
import { IChatResponese } from '@/TUIKit/interface';
/**
 * 获取字典数据
 */
export const useDict = (...args: string[]): { [key: string]: DictDataOption[] } => {
  const res = ref<{
    [key: string]: DictDataOption[];
  }>({});

  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): DictDataOption => ({ label: p.dictLabel, value: p.dictValue, elTagType: p.listClass, elTagClass: p.cssClass })
        );
        useDictStore().setDict(dictType, res.value[dictType]);
      });
    }
  });
  return res.value;
};

// 根据key获取指定枚举值
export const getDictionaryByKey = (args: string): DictDataOption[] => {
  return new Promise((resolve, reject) => {
    const dicts = useDictStore().getDict(args);
    if (dicts) {
      resolve(dicts);
    } else {
      getDicts(args).then((resp) => {
        const resDic = resp.data.map(
          (p): DictDataOption => ({ label: p.dictLabel, value: p.dictValue, elTagType: p.listClass, elTagClass: p.cssClass })
        );
        useDictStore().setDict(args, resDic);
        resolve(resDic);
      });
    }
  });
};
