// import React, { useState } from "react"; // import { Tree, Icon, Card } from "antd"; // import { nanoid } from "nanoid";//生成唯一id // import { duration } from "moment"; // import TreeTitle from './TreeTitle' // const { TreeNode } = Tree; // //树形数据 // const treeData = [ // { // value: "0", // defaultValue: "0", // key: "0", // parentKey: '0', // isEditable: false, // children: [ // { // value: "0", // key: "0-1", // defaultValue: "0-1", // isEditable: false, // }, // ], // }, // ]; // const expandedKeyArr = ["0"]; // export default function TreeDemo() { // const [data, setData] = useState(treeData);//获取值,及时更新被修改的值。变量 // const [expandedKeys, setExpandedKeys] = useState(expandedKeyArr);//状态 // // const onExpand = (expandedKeys) => { // // //记录折叠的key值 // // setExpandedKeys(expandedKeys); // // }; // //开始渲染树形节点 data拿到数据 // const renderTreeNodes = (data) => { // //遍历项目 // let nodeArr = data.map((item) => { // const Title = ( // onAdd(item.key)} // onDelete={() => onDelete(item.key)} // onChange={(val) => onChange(val, item.key)} // /> // ); // if (item.children) { // return ( // // {/* 渲染 */} // {renderTreeNodes(item.children)} // // ); // } // //返回他的标题,和key值 // return ; // }); // //返回节点 // return nodeArr; // } // //新增 // const onAdd = (key) => { // if (expandedKeys.indexOf(key) === -1) { // expandedKeyArr.push(key); // } // setExpandedKeys(expandedKeyArr.slice()); // addNode(key, treeData);//添加节点 树形 // //useState里数据务必为immutable (不可赋值的对象),所以必须加上slice()返回一个新的数组对象 // setData(treeData.slice());//添加子项 // }; // //编辑 // //拿到key treeData数据--setData设置数据---slice删除数据中已返回的元素 [aa,bb,cc,dd,ee]--slice(2)输出[cc,dd,ee] // const onEdit = (key) => { // editNode(key, treeData); // setData(treeData.slice()); // }; // const editNode = (key, data) => // data.forEach((item) => { // if (item.key === key) { // //编辑状态 true // item.isEditable = true; // } else { // //编辑状态 false // item.isEditable = false; // } // item.value = item.defaultValue; // 当某节点处于编辑状态,并改变数据,点击编辑其他节点时,此节点变成不可编辑状态,value 需要回退到 defaultvalue // //当某子项处于编辑状态,改变数据,点击其他时候,此项变成不可编辑 // if (item.children) { // editNode(key, item.children); // //编辑子节点 // } // }); // const addNode = (key, data) => // data.forEach((item) => { // if (item.key === key) {//如果拿到的key相同则判断子项 // if (item.children) { // item.children.push({ // value: "default",//创建新的子项默认值 // key: nanoid(), // 这个 key 应该是唯一的 // }); // } else { // item.children = []; // item.children.push({ // value: "default", // key: nanoid(), // }); // } // return; // } // if (item.children) { // addNode(key, item.children); // } // }); // const onChange = (val, key) => { // changeNode(key, val, treeData); // setData(treeData.slice()); // }; // const changeNode = (key, value, data) => // data.forEach((item) => { // if (item.key === key) {//新增子项内容赋值 // item.value = value; // } // if (item.children) { // changeNode(key, value, item.children);//子项 // } // }); // //确认保存节点 // const saveNode = (key, data) => // data.forEach((item) => { // if (item.key === key) { // item.defaultValue = item.value;//item.value内容赋值给defaultValue // } // //子项保存不能编辑 // if (item.children) { // saveNode(key, item.children); // } // //项目是否能编辑 // item.isEditable = false; // }); // //取消确认 // const closeNode = (key, defaultValue, data) => // data.forEach((item) => { // item.isEditable = false; // if (item.key === key) { // item.value = defaultValue; // } // if (item.children) { // closeNode(key, defaultValue, item.children); // } // }); // // slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。 // const onDelete = (key) => { // deleteNode(key, treeData); // setData(treeData.slice()); // }; // //删除节点 // const deleteNode = (key, data) => // //拿到每个key数据, 如果要删除的key相同,则删除,并返回。如果不同判断子项 // data.forEach((item, index) => { // if (item.key === key) { // data.splice(index, 1);//从某个位置开始删除元素 // return; // } else { // if (item.children) { // deleteNode(key, item.children); // } // } // }); // return ( //
// // } // expandedKeys={expandedKeys} // // onExpand={onExpand} // > // {renderTreeNodes(data)} // // //
// ); // } import { Row, Col, Card, Tree, DatePicker, Form, Input, InputNumber, Radio, Button } from 'antd' import { title } from 'echarts/lib/theme/dark'; import React, { useEffect, useState, useCallback,useRef } from 'react'; import TreedataFrom from './form'; const { TreeNode,DirectoryTree } = Tree; // const [treeData, settreeData] = useState([]) const treeData = [ { title: '分厂厂长管理', key: '0-0', children: [ { title: '刘厂长', key: '0-0-0-1' }, { title: '王副厂长', key: '0-0-0-2' }, ], }, { title: '分厂员工管理', key: '0-0-1', children: [ { title: '王王王', key: '0-0-1-0' }, { title: '张张张', key: '0-0-1-1' }, { title: '刘刘刘', key: '0-0-1-2' }, ], }, ]; class Demo extends React.Component { state = { expandedKeys: ['0-0', '0-0-1'], autoExpandParent: false, checkedKeys: ['0-0-1'], selectedKeys: [], }; onExpand = expandedKeys => { //自动展开 console.log('onExpand', expandedKeys); // 如果没有将 autoExpandParent 设置为 false,如果子项展开,父项不能折叠。 // 或者,您可以删除所有扩展的子键。 this.setState({ expandedKeys, autoExpandParent: false, }); }; onCheck = checkedKeys => { //单击复选框 console.log('onCheck', checkedKeys); this.setState({ checkedKeys }); }; onSelect = (selectedKeys, info) => { //单击姓名 for (let i = 0; i < selectedKeys.length; i++) { const element = selectedKeys[i]; console.log(element); } console.log('onSelect',info); this.setState({ selectedKeys }); }; renderTreeNodes = data => data.map(item => { if (item.children) { return ( {this.renderTreeNodes(item.children)} ); } return ; }); render() { return ( {this.renderTreeNodes(treeData)} ); } } export default Demo