新增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