## 树选择组件

## 代码演示

```tsx
import React, {useCallback, useState} from 'react'
import { TreeSelect } from 'ui-component-5e';
import {treeSelectArr,treeSelectUser} from './mockData'

const ETreeSelect: React.FC = () => {
  const [selectKey, setSelectKey] = useState([])
  const [selectMultiKey, setSelectMultiKey] = useState([])
  const onSelect = (selected: boolean, value: number) => {
    setSelectKey([value])
  }
  const onMultiSelect = (selected: boolean, value: number) => {
    setSelectMultiKey(preState =>
      selected ? preState.concat(value) : preState.filter(id => id !== value)
    )
  }
  return (
    <div className="stories-box">
      普通单选树选择器
      <TreeSelect
        data={treeSelectArr}
        // levelPadding={100}
        onSelect={onSelect}
        selected={selectKey}
      />
      <br />
      普通多选树选择器
      <TreeSelect data={treeSelectUser} multi onSelect={onMultiSelect} selected={selectMultiKey} />
    </div>
  )
}
export default () => (<ETreeSelect />);
```

***
## API 
Tree props

|   参数   |  说明   |  类型    |  默认值  |
|  ----   |  ----   |  ----   |  ----   |
|  data  |  treeNodes 数据(value 在整个树范围内唯一)  |  array<{value, title, children,departInfoList}>  |  -  |
|  multi  |  支持点选多个节点  |  boolean  |  false  |
|  selected  |  选中的树节点数组  |  number[ ]  |  [ ]  |
|  onSelect  |  点击选中的回调  |  (selected: boolean, value: number)=> void   |  -  |
|  levelPadding  |  层级节点外边距  |  number  |  24  |

TreeData

|   属性   |  说明   |  类型    |  默认值  |
|  ----   |  ----   |  ----   |  ----   |
|  value  |  节点key |  number  |  -  |
|  title  |  节点渲染  |  string ｜ ReactNode  |  -  |
|  children  |  子节点数据  |  {value: number,title: string ｜ ReactNode}[ ]  |  [ ]  |
|  departInfoList  |  节点其他信息数据  |  {value: number,title: string ｜ ReactNode}[ ]   |  [ ]  |




