新增HiddenLevelSelectTree
parent
5ba65e615b
commit
fbd203ee33
|
|
@ -0,0 +1,21 @@
|
||||||
|
import type { FC } from "react";
|
||||||
|
import type { BasicSelectTreeProps } from "../../Basic";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 组件属性
|
||||||
|
*/
|
||||||
|
export interface HiddenLevelSelectTreeProps extends Omit<BasicSelectTreeProps, "treeData" | "nameKey" | "idKey" | "childrenKey" | "level"> {
|
||||||
|
/** 是否显示忽略隐患,默认 true */
|
||||||
|
isShowNeglect?: boolean;
|
||||||
|
/** 是否显示较大隐患,默认 true */
|
||||||
|
isShowLarger?: boolean;
|
||||||
|
/** 是否显示重大隐患,默认 true */
|
||||||
|
isShowMajor?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 隐患级别下拉树组件(港务局版本)
|
||||||
|
*/
|
||||||
|
declare const HiddenLevelSelectTree: FC<HiddenLevelSelectTreeProps>;
|
||||||
|
|
||||||
|
export default HiddenLevelSelectTree;
|
||||||
|
|
@ -0,0 +1,72 @@
|
||||||
|
import { request } from "@cqsjjb/jjb-common-lib/http";
|
||||||
|
import { useEffect, useState } from "react";
|
||||||
|
import { DICTIONARY_APP_KEY_ENUM } from "../../../../enum/dictionary";
|
||||||
|
import BasicSelectTree from "../../Basic";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 隐患级别下拉树组件(港务局版本)
|
||||||
|
*/
|
||||||
|
function HiddenLevelSelectTree(props) {
|
||||||
|
const {
|
||||||
|
isShowNeglect = true,
|
||||||
|
isShowLarger = true,
|
||||||
|
isShowMajor = true,
|
||||||
|
...restProps
|
||||||
|
} = props;
|
||||||
|
|
||||||
|
const [treeData, setTreeData] = useState([]);
|
||||||
|
|
||||||
|
// 过滤隐患级别的树数据
|
||||||
|
const filterTreeData = (treeData) => {
|
||||||
|
// 隐患级别的特定ID
|
||||||
|
const HIDDEN_LEVEL_IDS = {
|
||||||
|
neglect: "hiddenLevel1001", // 忽略隐患
|
||||||
|
larger: "jdyh001", // 较大隐患
|
||||||
|
major: "hiddenLevel0002", // 重大隐患
|
||||||
|
};
|
||||||
|
|
||||||
|
// 递归过滤树数据
|
||||||
|
const filterTree = (nodes) => {
|
||||||
|
if (!nodes || !Array.isArray(nodes))
|
||||||
|
return [];
|
||||||
|
|
||||||
|
return nodes.filter((node) => {
|
||||||
|
// 根据不同的ID和对应的props来决定是否显示
|
||||||
|
if (node.dictValue === HIDDEN_LEVEL_IDS.neglect)
|
||||||
|
return isShowNeglect;
|
||||||
|
if (node.dictValue === HIDDEN_LEVEL_IDS.larger)
|
||||||
|
return isShowLarger;
|
||||||
|
if (node.dictValue === HIDDEN_LEVEL_IDS.major)
|
||||||
|
return isShowMajor;
|
||||||
|
|
||||||
|
// 如果有子节点,递归过滤子节点
|
||||||
|
if (node.children && node.children.length > 0)
|
||||||
|
node.children = filterTree(node.children);
|
||||||
|
|
||||||
|
// 默认显示其他节点
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
return filterTree(treeData);
|
||||||
|
};
|
||||||
|
|
||||||
|
const getData = async () => {
|
||||||
|
setTreeData([]);
|
||||||
|
const { data } = await request("/config/dict-trees/list/by/dictValues", "get", { appKey: DICTIONARY_APP_KEY_ENUM.GWJ, dictValue: "hiddenLevel" });
|
||||||
|
const filterData = filterTreeData(data);
|
||||||
|
setTreeData(filterData);
|
||||||
|
};
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
getData();
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<BasicSelectTree treeData={treeData} nameKey="dictLabel" idKey="dictValue" {...restProps} />
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
HiddenLevelSelectTree.displayName = "HiddenLevelSelectTree";
|
||||||
|
|
||||||
|
export default HiddenLevelSelectTree;
|
||||||
Loading…
Reference in New Issue