import { request } from "@cqsjjb/jjb-common-lib/http.js"; import { useEffect, useState } from "react"; import { DICTIONARY_APP_KEY_ENUM } from "../../../enum/dictionary"; import { executeWithCache } from "../../../utils"; import BasicSelectTree from "../Basic"; /** * 数据字典下拉树组件 */ function DictionarySelectTree(props) { const { appKey = DICTIONARY_APP_KEY_ENUM.DEFAULT, dictValue = "", nameKey = "dictLabel", idKey = "dictValue", ...restProps } = props; const [treeData, setTreeData] = useState([]); const getData = async () => { if (!Object.values(DICTIONARY_APP_KEY_ENUM).includes(appKey)) { console.error(`【DictionarySelectTree】 传入的 appKey 不在 DICTIONARY_APP_KEY_ENUM 中,当前传入的 appKey 是 ${appKey}`); return; } if (!dictValue) { console.error(`【DictionarySelectTree】 缺少 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; }, setTreeData); }; useEffect(() => { getData(); }, [dictValue]); return ( ); } DictionarySelectTree.displayName = "DictionarySelectTree"; export default DictionarySelectTree;