import { request } from "@cqsjjb/jjb-common-lib/http.js"; import { useEffect, useState } from "react"; import { DICTIONARY_APP_KEY_ENUM } from "zy-react-data/enum/dictionary"; import { executeWithCache } from "../../../utils"; import BasicSelect from "../Basic"; /** * 数据字典下拉组件 */ function DictionarySelect(props) { const { appKey = DICTIONARY_APP_KEY_ENUM.DEFAULT, dictValue = "", nameKey = "dictLabel", idKey = "dictValue", ...restProps } = props; const [data, setData] = useState([]); const getData = async () => { if (!Object.values(DICTIONARY_APP_KEY_ENUM).includes(appKey)) { console.error(`【DictionarySelect】 传入的 appKey 不在 DICTIONARY_APP_KEY_ENUM 中,当前传入的 appKey 是 ${appKey}`); return; } if (!dictValue) { console.error(`【DictionarySelect】 缺少 dictValue 参数`); return; } const cacheKey = { appKey, dictValue }; await executeWithCache(cacheKey, async () => { const { data } = await request("/config/dict-trees/list/by/dictValues", "get", { appKey, dictValue }); return data; }, setData); }; useEffect(() => { getData(); }, [dictValue]); return ( ); } DictionarySelect.displayName = "DictionarySelect"; export default DictionarySelect;