# TreeSelect 树选择

树型选择控件

## 代码演示

{{demo}}

## API
|         属性          |                说明                |                    类型                    | 是否必须  |   默认值   |
| :-----------------: | :------------------------------: | :--------------------------------------: | :---: | :-----: |
| name | container 数据模型Key | string | true | - |
| options | 选项列表 | TreeNodeConfig[] | true | - |
| allowClear | 显示清除按钮 | boolean | false | false |
| defaultValue | 初始值 | string[] | false | [] |
| disabled | 是否禁用 | boolean | false | false | 
| dropdownMatchSelectWidth | 下拉菜单和选择器同宽 | boolean | false | true |
| dropdownStyle | 下拉菜单的样式 | CSSProperties | false | {} | 
| labelInValue | 是否把每个选项的 label 包装到 value 中 | boolean | false | false |
| multiple | 是否多选 | boolean | false | false |
| placeholder | 输入框默认文字 | string | false | - |
| searchPlaceholder | 搜索框默认文字 | string | false | - |
| showCheckedStrategy | 定义选中项回填的方式， SHOW_ALL: 显示所有选中节点(包括父节点)， SHOW_PARENT: 只显示父节点(当父节点下所有子节点都选中时). SHOW_CHILD: 只显示子节点. (默认) | string | false |  SHOW_CHILD |
| showSearch | 是否显示搜索框 | boolean | false | false |
| size | 选择框大小 |  'default','large','small' | false | default |
| treeCheckable | checkbox多选 | boolean | false | false|
| treeDefaultExpandAll | 默认展开所有的节点 | boolean | false | false |
| treeDefaultExpandedKeys | 默认展开的节点 | string[] | false | [] |


单个选项的数据结构：

```typescript
export class TreeNodeConfig {
    /**
     * 标题
     */
    title: string;

    /**
     * 节点的值
     */
    key: string;

    /**
     * 是否是子节点
     */
    isLeaf?: boolean;

    /**
     * 禁掉 checkbox
     */
    disableCheckbox?: boolean;

    /**
     * 禁用
     */
    disabled?: boolean;

    /**
     * 设置节点是否可被选中
     */
    selectable?: boolean;

    /**
     * 子节点
     */
    children?: TreeNodeConfig[];
}
```

## 事件

| 事件名称        | 触发条件   | 参数   |
| ----------- | ------ | ---- |
| onChange| 当选项改变| {value: string[]}|
| onSelect |当节点被改变| {value: string, checked: boolean} |

可以用onSelect来获取树的节点是否被选中
