zy-react-library/src/components/SelectTree/Dictionary/index.js

52 lines
1.4 KiB
JavaScript
Raw Normal View History

2026-01-06 15:24:18 +08:00
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 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(() => {
2026-02-06 15:52:51 +08:00
getData();
}, [dictValue]);
return (
<BasicSelectTree treeData={treeData} nameKey={nameKey} idKey={idKey} {...restProps} />
);
}
DictionarySelectTree.displayName = "DictionarySelectTree";
export default DictionarySelectTree;