前端项目实战叁佰肆拾壹react-admin和material ui-rc-tree demo

import { Paper } from '@mui/material';
import Tree from 'rc-tree';
import 'rc-tree/assets/index.css';
import React, { Key, useEffect, useState } from 'react';
import { Outlet } from 'react-router-dom';
import UseGetTree from '../../components/usegettree/usegettree';
const PlantModel = () => {
return(
<div style = {{display: 'flex', flexDirection: 'row', width: '100%'}}>
<div style = {{width: '200px', marginRight: '10px'}}>
<PlantTree />
</div>
<div>
<Outlet/>
</div>
</div>
)
}
interface ITreeData extends Record<string, any> {
key: string;
title: string;
children?: ITreeData[];
}
const PlantTree = () => {
const [treeData, setTreeData] = useState<ITreeData[]>([]);
const [keys, setKeys] = useState<Key[]>([]);
const {data} = UseGetTree('t_lps_plant', 't_lps_line');
useEffect(() => {
if(data !== undefined) {
console.log('raw data is: ', data);
let temp: ITreeData[] = [{key: '0', title: '工厂管理', children: new Array<ITreeData>()}];
//向从数据库查询到的数据中添加Tree结构所需要的字段,key使用id,title使用name;
data.forEach(it => {
it['key'] = `${it.id}`;
it['title'] = it.name;
it.children && it.children.forEach((item: any)=>{
item['key'] = `${it.id}-${item.id}`;
item['title'] = item.name
})
});
temp[0].children = data;
setTreeData(temp);
}
}, [data]);
const handleTreeItemSelect = (keys: Key[]) => {
setKeys(keys);
const key = keys[0];
if(key === '0') {
}
}
return(
<Paper sx = {{height: '100vh'}}>
<Tree
treeData={treeData}
selectable = {true}
selectedKeys={keys}
onSelect={handleTreeItemSelect}
/>
</Paper>
)
}
export default PlantModel;

posted @   前端导师歌谣  阅读(8)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示