import React, { useState, useEffect } from 'react'; import { connect } from 'react-redux'; import { Input, Tree } from 'antd' import Module from '../../public/module' import { getBusTierList } from '../../../actions/example' import './style.less' const Left = (props) => { const [treeData, setTreeData] = useState([]) const [treeDataList, setTreeDataList] = useState([]) const [expandedKeys, setExpandedKeys] = useState([]); const [searchValue, setSearchValue] = useState(''); const [autoExpandParent, setAutoExpandParent] = useState(true); const onExpand = (newExpandedKeys) => { setExpandedKeys(newExpandedKeys); setAutoExpandParent(false); }; useEffect(() => { const { dispatch } = props dispatch(getBusTierList()) }, []) const { busTier } = props const style = { height: "97%", marginTop: "3%" } const onChange = (e) => { const { value } = e.target; let titles = [] const newExpandedKeys = treeDataList.filter(e => e.title != null && e.title.match(value)) newExpandedKeys.forEach(e => { titles.push(e.title) }) setExpandedKeys(titles); setSearchValue(value); setAutoExpandParent(true); }; const loop = (treeData) => treeData.map((item) => { // console.log(item,'===> item -----'); const index = item.title != null && item.title.indexOf(searchValue); const beforeStr = item.title != null && item.title.substr(0, index); const afterStr = item.title != null && item.title.substr(index + searchValue.length); const title = index > -1 ? ( {beforeStr} {searchValue} {afterStr} ) : ( {item.title} ); if (item.children && item.children.length > 0) { const children = loop(item.children); return { ...item, title: index > -1 || children.length ? title : null, children: children.length ? children : undefined }; } return index > -1 ? { ...item, title } : { ...item, title: null }; }) .filter((item) => !!item.title); useEffect(() => { let busTierList = [] let busTierOpen = [] let dataList = [] let busTierNewList = [] // Math.ceil(Math.random() * 100); // if (busTier && busTier.data && busTier.data.length > 0) { // busTierNewList.push(busTier && busTier.data && busTier.data[0]) // } // if (busTierNewList.length > 0) { // } busTier && busTier.data && busTier.data.forEach((e, index) => { if (index == 0) { busTierOpen.push(e.name) } busTierList.push({ key: e.name, title: e.name, children: e.child.map(s => { return { key: s.name == '--' || s.name == null ? Math.ceil(Math.random() * 100) : s.name, title: s.name, children: s.child.map(i => { return { key: i.name == '--' || i.name == null ? Math.ceil(Math.random() * 100) : i.name, title: i.name, children: i.child.map(x => { return { key: x.name == '--' || x.name == null ? Math.ceil(Math.random() * 100) : x.name, title: x.name == null ? '--' : x.name, } }) } }) } }) }) }) busTier && busTier.data && busTier.data.forEach(e => { e.child.forEach(i => { i.child.forEach(s => { s.child.forEach(x => { dataList.push({ key: x.name, title: x.name }) }) }) }) }) setTreeData(busTierList) setExpandedKeys(busTierOpen) setTreeDataList(dataList) }, [busTier]) return (