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
|
|
|
};
|