--- title: TreeSelect 树形选择器 description: type: 0 group: null menuName: TreeSelect 树形选择器 icon: order: 60 --- ## 基本使用 ```schema: scope="body" { "type": "form", "api": "/api/mock2/form/saveForm", "body": [ { "type": "tree-select", "name": "tree", "label": "Tree", "searchable": true, "options": [ { "label": "Folder A", "value": 1, "children": [ { "label": "file A", "value": 2 }, { "label": "file B", "value": 3 } ] }, { "label": "file C", "value": 4 }, { "label": "file D", "value": 5 }, { "label": "Folder E", "children": [ { "label": "Folder G", "children": [ { "label": "file H", "value": 6 }, { "label": "file I", "value": 7 } ] } ] } ] } ] } ``` ## 仅展示选中节点文本信息 设置`hideNodePathLabel: true`,可以隐藏选择框中已选择节点的祖先节点(ancestor)的`labelField`字段值,仅展示当前选中节点的`labelField`字段值。 ```schema: scope="body" { "type": "form", "api": "/api/mock2/form/saveForm", "body": [ { "type": "tree-select", "name": "tree1", "label": "展示已选择节点的祖先节点的文本信息", "value": "1,6,7", "multiple": true, "options": [ { "label": "Folder A", "value": 1, "children": [ { "label": "file A", "value": 2 }, { "label": "file B", "value": 3 } ] }, { "label": "file C", "value": 4 }, { "label": "file D", "value": 5 }, { "label": "Folder E", "children": [ { "label": "Folder G", "children": [ { "label": "file H", "value": 6 }, { "label": "file I", "value": 7 } ] } ] } ] }, { "type": "divider" }, { "type": "tree-select", "name": "tree2", "label": "仅展示已选择节点的文本信息", "value": "1,6,7", "multiple": true, "hideNodePathLabel": true, "options": [ { "label": "Folder A", "value": 1, "children": [ { "label": "file A", "value": 2 }, { "label": "file B", "value": 3 } ] }, { "label": "file C", "value": 4 }, { "label": "file D", "value": 5 }, { "label": "Folder E", "children": [ { "label": "Folder G", "children": [ { "label": "file H", "value": 6 }, { "label": "file I", "value": 7 } ] } ] } ] } ] } ``` ## 只允许选择叶子节点 > 1.8.0 及以上版本 在单选时,可通过 `onlyLeaf` 可以配置只允许选择叶子节点 ```schema: scope="body" { "type": "form", "api": "/api/mock2/form/saveForm", "body": [ { "type": "tree-select", "name": "tree", "label": "Tree", "onlyLeaf": true, "searchable": true, "options": [ { "label": "Folder A", "value": 1, "children": [ { "label": "file A", "value": 2 }, { "label": "file B", "value": 3 } ] }, { "label": "file C", "value": 4 }, { "label": "file D", "value": 5 }, { "label": "Folder E", "value": "61", "children": [ { "label": "Folder G", "value": "62", "children": [ { "label": "file H", "value": 6 }, { "label": "file I", "value": 7 } ] } ] } ] } ] } ``` ## 如何让某些节点无法点? 只需要对应的节点没有 value 就行,比如下面例子的目录节点都无法点,只能点文件节点 ```schema: scope="body" { "type": "form", "api": "/api/mock2/form/saveForm", "body": [ { "type": "tree-select", "name": "tree", "label": "Tree", "searchable": true, "options": [ { "label": "Folder A", "children": [ { "label": "file A", "value": 2 }, { "label": "file B", "value": 3 } ] }, { "label": "Folder E", "children": [ { "label": "Folder G", "children": [ { "label": "file H", "value": 6 }, { "label": "file I", "value": 7 } ] } ] } ] } ] } ``` ## 搜索选项 > `2.7.1` 及以上版本 配置`autoComplete`接口可以实现从远程数据搜索目标结果,搜索的关键字段为`term`,注意搜索的逻辑需要在服务端实现。 ```schema: scope="body" { "type":"form", "api":"/api/mock2/form/saveForm", "body":[ { "type":"tree-select", "name":"tree", "label":"Tree", "autoComplete":"/api/mock2/tree/search?term=$term", "source":"/api/mock2/tree/search" } ] } ``` ## 自定义选项渲染 > `2.8.0` 及以上版本 使用`menuTpl`属性,自定义下拉选项的渲染内容。 ```schema: scope="body" { "type": "form", "api": "/api/mock2/form/saveForm", "body": [ { "type": "tree-select", "name": "tree", "label": "Tree", "menuTpl": "