28 lines
864 B
TypeScript
Raw Normal View History

2023-04-02 01:01:56 +08:00
import { getDicts } from '@/api/system/dict/data';
import { useDictStore } from '@/store/modules/dict';
/**
*
*/
export const useDict = (...args: string[]): { [key: string]: DictDataOption[] } => {
2023-04-03 00:05:09 +08:00
const res = ref<{
[key: string]: DictDataOption[];
}>({});
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): DictDataOption => ({ label: p.dictLabel, value: p.dictValue, elTagType: p.listClass, elTagClass: p.cssClass })
);
useDictStore().setDict(dictType, res.value[dictType]);
});
}
});
return res.value;
})();
2023-04-02 01:01:56 +08:00
};