blob: d1a085cf67d3bdea6a4d0ab6dc401093088f5d52 [file] [log] [blame]
import React, { useState, useEffect } from 'react';
import { Tree, message } from 'antd';
import { getDeptTree } from '@/services/system/user';
const { DirectoryTree } = Tree;
/* *
*
* @author whiteshader@163.com
* @datetime 2023/02/06
*
* */
export type TreeProps = {
onSelect: (values: any) => Promise<void>;
};
const DeptTree: React.FC<TreeProps> = (props) => {
const [treeData, setTreeData] = useState<any>([]);
const [expandedKeys, setExpandedKeys] = useState<React.Key[]>([]);
const [autoExpandParent, setAutoExpandParent] = useState<boolean>(true);
const fetchDeptList = async () => {
const hide = message.loading('正在查询');
try {
await getDeptTree({}).then((res: any) => {
const exKeys = [];
exKeys.push('1');
setTreeData(res);
exKeys.push(res[0].children[0].id);
setExpandedKeys(exKeys);
props.onSelect(res[0].children[0]);
});
hide();
return true;
} catch (error) {
hide();
return false;
}
};
useEffect(() => {
fetchDeptList();
}, []);
const onSelect = (keys: React.Key[], info: any) => {
props.onSelect(info.node);
};
const onExpand = (expandedKeysValue: React.Key[]) => {
setExpandedKeys(expandedKeysValue);
setAutoExpandParent(false);
};
return (
<DirectoryTree
// multiple
defaultExpandAll
onExpand={onExpand}
expandedKeys={expandedKeys}
autoExpandParent={autoExpandParent}
onSelect={onSelect}
treeData={treeData}
/>
);
};
export default DeptTree;