import { Tree } from "antd"; import { useState, useEffect } from "react"; import { adminRole } from "../../api/index"; interface Option { key: string | number; title: any; children: any[]; } interface PropInterface { refresh: boolean; roleDelSuccess: boolean; type: string; text: string; onUpdate: (keys: any, title: any, isSuper: boolean) => void; } export const TreeAdminroles = (props: PropInterface) => { const [treeData, setTreeData] = useState([]); const [loading, setLoading] = useState(true); const [selectKey, setSelectKey] = useState([]); const [superId, setSuperId] = useState(0); useEffect(() => { onSelect([], ""); }, [props.roleDelSuccess]); useEffect(() => { adminRole.adminRoleList().then((res: any) => { let adminrole = res.data; let superId = 0; if (adminrole.length > 0) { const new_arr: Option[] = []; for (let i = 0; i < adminrole.length; i++) { new_arr.push({ title: adminrole[i].name, key: adminrole[i].id, children: [], }); if (adminrole[i].slug === "super-role") { superId = adminrole[i].id; } } setTreeData(new_arr); } setSuperId(superId); }); }, [props.refresh]); const onSelect = (selectedKeys: any, info: any) => { let label = "全部" + props.text; if (info) { label = info.node.title; } let isSuper = false; if (selectedKeys[0] === superId && superId !== 0) { isSuper = true; } props.onUpdate(selectedKeys, label, isSuper); setSelectKey(selectedKeys); }; return (
{ onSelect([], ""); }} >
全部{props.text}
} />
); };