41 lines
1.1 KiB
JavaScript
41 lines
1.1 KiB
JavaScript
import { request } from "@cqsjjb/jjb-common-lib/http";
|
|
import { useEffect, useState } from "react";
|
|
import { DICTIONARY_APP_KEY_ENUM } from "../../../enum/dictionary";
|
|
import BasicCascader 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))
|
|
throw new Error("传入的 appKey 不在 DICTIONARY_APP_KEY_ENUM 中");
|
|
|
|
setTreeData([]);
|
|
const { data } = await request("/config/dict-trees/list/by/dictValues", "get", { appKey, dictValue });
|
|
setTreeData(data);
|
|
};
|
|
|
|
useEffect(() => {
|
|
dictValue && getData();
|
|
}, [dictValue]);
|
|
|
|
return (
|
|
<BasicCascader data={treeData} nameKey={nameKey} idKey={idKey} {...restProps} />
|
|
);
|
|
}
|
|
|
|
DictionarySelectTree.displayName = "DictionarySelectTree";
|
|
|
|
export default DictionarySelectTree;
|