4.5.10 • Published 27 days ago

@hi-ui/tree v4.5.10

Weekly downloads
-
License
MIT
Repository
github
Last release
27 days ago

Tree 树形控件

具备展示多层级数据结构特征的组件

何时使用

多层级数据结构

需要明确的展示层级结构

对多层级结构节点进行操作

使用示例

Props

参数说明类型可选值默认值
data展示数据DataItem []--
checkable节点前添加 Checkbox 复选框(暂不支持与 draggable 和 editable 同时使用)booleantrue | falsefalse
editable节点右键可编辑(添加同级节点、添加子节点、编辑节点、删除节点)booleantrue | falsefalse
draggable节点可拖拽booleantrue | falsefalse
searchable节点可搜索booleantrue | falsefalse
selectable节点是否可选中booleantrue | falsetrue
onLoadChildren点击异步加载子项(treeNode: TreeNode) => LoadChildren--
defaultExpandAll是否默认展开所有树节点booleantrue | falsefalse
defaultSelectedId默认选中的节点string--
selectedId选中的节点string--
defaultCheckedIds默认选中的复选框的节点string[]--
checkedIds选中的复选框的节点string[]--
defaultExpandedIds默认展开的节点string[]--
expandedIds展开的节点string[]--
openIcon表示展开的图标stringIcon 图标名称-
closeIcon表示闭合的图标stringIcon 图标名称-
apperance树形控件的展现形态string'default' | 'line' | 'folder''default'
contextMenu自定义右键菜单,参考 示例页面底部自定义右键菜单使用说明ContextMenuOption[] | (item: DataItem, level: number) => ContextMenuOption[][]

Events

名称说明类型参数返回值
onExpand节点被点击(展开/收起)时触发(expandedNode: TreeNode, expanded: boolean, expandIds: string[] ) => voidexpandedNode: 点击的树节点 expanded: 点击的节点展开状态 expandIds: 当前展开的树节点 ID 集合-
onCheck点击节点多选框触发(checked: boolean, checkedIds: string[], checkedNode: TreeNode) => voidchecked: 点击节点是否被勾选checkedIds: 选中/半选节点数据;{checkedIds: array, semiCheckedIds: array} checkedNode: 操作的节点对象-
onSelect点击节点时触发(selectedNode: TreeNode) => voidselectedNode: 选中的树节点-
onDragStart节点开始拖拽时触发(dragNode: TreeNode) => voiddragNode: 拖拽的节点对象-
onDrop节点放开时触发(dragNode: TreeNode, dropNode: TreeNode, data: DataStatus, level: Level) => booleandragNode: 拖拽的节点对象 dropNode: 目标节点对象data:当前结构数据 DataStatus level:当前级别数据-
onDropEnd节点拖拽成功时触发(dragNode: TreeNode, dropNode: TreeNode) => voiddragNode: 拖拽的节点对象 dropNode: 目标节点对象-
onBeforeDelete节点删除前触发,返回 false 则节点删除失败,不会触发 onDelete(deletedNode: TreeNode, data: DataStatus, level: number) => booleandeletedNode: 要删除的节点对象 data:当前结构数据 DataStatus level:当前级别数据boolean: 返回 false 将阻止删除
onDelete节点删除后触发(deletedNode: TreeNode, data: TreeNode[]) => voiddeletedNode: 删除的节点对象 data: 删除后的节点数据集合-
onBeforeSave节点保存新增、编辑状态时触发(savedNode: TreeNode, data: DataStatus, level: number) => booleansavedNode: 要保存的数据对象 data:当前结构数据 DataStatus level:当前级别数据boolean: 返回 false 则保存新增、编辑失败,不会触发 onSave
onSave节点保存新增、编辑状态后触发(savedNode: TreeNode, data: TreeNode[]) => voidsavedNode: 保存的数据对象 data: 保存后的节点数据集合-

Type

LoadChildren

参数说明类型可选值默认值
method异步请求的方法string'get' | 'post''get'
url异步请求的 urlstring--
headers异步请求的请求头TreeNode--
datapost 请求时的请求体object--
params异步请求时的 url 参数object--
transformResponse对异步请求结果进行加工处理的函数,返回结果用于生成子节点项(response: object) => TreeNode[]--

TreeNode

参数说明类型可选值默认值
id树节点唯一 idstring--
title树节点标题string | ReactNode--
disabled是否禁用节点booleantrue | falsefalse
children该节点的子节点TreeNode[]--
isLeaf是否为叶子节点booleantrue | false-
selectable节点是否可选中booleantrue | falsetrue

Level

参数说明类型可选值默认值
before拖拽前在树中的层级number--
after拖拽后在树中的层级number--

DataStatus

参数说明类型可选值默认值
before更新前整个树的数据结构[]TreeNode--
after更新后整个树的数据结构[]TreeNode--

ContextMenuOption

参数说明类型可选值默认值
type菜单执行的功能stringeditNode: 编辑当前节点 addChildNode: 添加子节点 addSiblingNode: 添加同级节点 deleteNode: 删除当前节点-
title菜单标题string | ReactNode--
onClick点击菜单项时的回调( item: DataItem, node: TreeNode) => void--

自定义右键菜单使用说明

contextMenu 参数:

  • type: editNode / addChildNode / addSiblingNode / deleteNode
  • title: 自定义 Title / 行为默认 Title
  • onClick: (item: 当前节点数据, node: 当前节点) => {

    如需调用组件提供的 新增同级节点 / 新增子节点 / 编辑当前节点/ 删除当前节点

    需调用 node.addSiblingNode/ addChildNode/ editNode / deleteNode

    }

CHANGELOG

参数变更类型变更内容解决的问题
propNamefeature | deprecated | update变更了什么之前是什么样子,解决什么问题
----------------
onExpandupdate定义 (expandedNode: TreeNode, expanded: boolean, expandIds: string[] ) => void -> (expandedIds: React.ReactText[], node: TreeNodeEventData, expanded: boolean) => void参数变更,统一第一个参数为 id 数据
onLoadChildrenupdate定义 (treeNode: TreeNode) => LoadChildren -> (node: TreeNodeEventData) => void | Promise\<TreeDataItem[] | void>参数统一支持状态注入
onDragStartupdate定义 (dragNode: TreeNode) => void -> (dragNode: TreeNodeEventData) => void参数统一支持状态注入
onDragEndfeature-拖拽结束时触发
onDragLeavefeature-节点 drag leaver 时调用
onDragOverfeature-节点 drag over 时调用
onDropupdate定义 (dragNode: TreeNode, dropNode: TreeNode, data: DataStatus, level: Level) => boolean -> (dragNode: TreeNodeEventData, dropNode: TreeNodeEventData, dataStatus: DataStatus, level: Level) => boolean | Promise\<boolean>1. 参数统一支持状态注入; 2. 支持 Promise 返回
onDropEndupdate定义 (dragNode: TreeNode, dropNode: TreeNode) => void -> (dragNode: TreeNodeEventData, dropNode: TreeNodeEventData) => void参数统一支持状态注入
onSelectupdate定义 (selectedNode: TreeNode) => void -> (selectedId: React.ReactText | null, selectedNode: TreeNodeEventData | null) => void1. 参数变更,统一第一个参数为 id 数据,2. 支持反选
onCheckupdate定义 (checked: boolean, checkedIds: string[], checkedNode: TreeNode) => void -> (checkedIds: React.ReactText[], node: TreeNodeEventData, checked: boolean, semiCheckedIds: React.ReactText[]) => void参数变更,统一第一个参数为 id 数据;2. 参数结构设计和其它 onCheck 一致;3. 参数统一支持状态注入
checkedIdsupdate类型 string => string | number对于 id 值的控制,均使用 React.ReactText(即 string 和 number 都支持)
defaultCheckedIdsupdate类型 string => string | number对于 id 值的控制,均使用 React.ReactText(即 string 和 number 都支持)
selectedIdupdate类型 string => string | number对于 id 值的控制,均使用 React.ReactText(即 string 和 number 都支持)
defaultSelectedIdupdate类型 string => string | number对于 id 值的控制,均使用 React.ReactText(即 string 和 number 都支持)
expandedIdsupdate类型 string => string | number对于 id 值的控制,均使用 React.ReactText(即 string 和 number 都支持)
defaultExpandedIdsupdate类型 string => string | number对于 id 值的控制,均使用 React.ReactText(即 string 和 number 都支持)
virtualfeature-支持虚拟列表
heightfeature-支持虚拟列表
itemHeightfeature-支持虚拟列表
showLinefeature-交互更新,连接线开关控制
expandedIconupdate字段: openIcon -> expandIcon,类型:string-> React.ReactNode关键词命名
collapsedIconupdate字段: closeIcon -> collapsedIcon,类型:string-> React.ReactNode语义化命名
leafIconfeature-叶子节点 icon
titleRenderfeature-统一支持自定义渲染每一项
onContextMenufeature-节点编辑操作交互更新,废弃右键
contextMenudeprecated-节点编辑操作交互更新,废弃右键
menuOptionsfeature类型和 contextMenu 一致节点编辑操作交互更新,废弃右键
onBeforeSaveupdate定义 (savedNode: TreeNode, data: DataStatus, level: number) => boolean -> (savedNode: FlattedTreeNodeData, data: TreeDataStatus, level: number) => boolean |Promise1. 参数统一支持状态注入 2. 支持返回 Promise
onSaveupdate定义 (savedNode: TreeNode, data: TreeNode[]) => void -> (savedNode: FlattedTreeNodeData, data: TreeDataItem[]) => void1. 参数统一支持状态注入 2. 支持返回 Promise
onBeforeDeleteupdate定义 (savedNode: TreeNode, data: DataStatus, level: number) => boolean -> (savedNode: FlattedTreeNodeData, data: TreeDataStatus, level: number) => boolean |Promise1. 参数统一支持状态注入 2. 支持返回 Promise
onDeleteupdate定义 (savedNode: TreeNode, data: TreeNode[]) => void -> (savedNode: FlattedTreeNodeData, data: TreeDataItem[]) => void1. 参数统一支持状态注入 2. 支持返回 Promise
editPlaceholderfeature-强化支持编辑输入框自定义 placeholder
onSearchfeature-强化支持搜索框 change 时回调

编辑功能使用方式变更 EditableTree = useTreeAction(Tree) 搜索功能使用方式变更 SearchableTree = useTreeSearch(Tree)

4.5.10

27 days ago

4.5.10-alpha.0

1 month ago

4.5.9

4 months ago

4.5.9-alpha.1

4 months ago

4.5.9-alpha.0

5 months ago

4.5.8

6 months ago

4.5.7

6 months ago

4.5.4

7 months ago

4.5.3

7 months ago

4.5.6

6 months ago

4.5.5

6 months ago

4.5.0

8 months ago

4.5.2

8 months ago

4.5.1

8 months ago

4.4.0

11 months ago

4.3.0

11 months ago

4.2.1

1 year ago

4.2.0

1 year ago

4.1.2

1 year ago

4.1.0

1 year ago

4.1.1

1 year ago

4.0.9

2 years ago

4.0.8

2 years ago

4.0.5

2 years ago

4.0.4

2 years ago

4.0.7

2 years ago

4.0.6

2 years ago

4.0.3

2 years ago

4.0.1

2 years ago

4.0.0

2 years ago

4.0.2

2 years ago

4.0.0-beta.43

2 years ago

4.0.0-beta.40

2 years ago

4.0.0-beta.42

2 years ago

4.0.0-beta.41

2 years ago

4.0.0-beta.39

2 years ago

4.0.0-beta.38

2 years ago

4.0.0-beta.29

2 years ago

4.0.0-beta.37

2 years ago

4.0.0-beta.36

2 years ago

4.0.0-beta.33

2 years ago

4.0.0-beta.32

2 years ago

4.0.0-beta.35

2 years ago

4.0.0-beta.34

2 years ago

4.0.0-beta.31

2 years ago

4.0.0-beta.30

2 years ago

4.0.0-beta.26

2 years ago

4.0.0-beta.25

2 years ago

4.0.0-beta.28

2 years ago

4.0.0-beta.27

2 years ago

4.0.0-beta.22

2 years ago

4.0.0-beta.21

2 years ago

4.0.0-beta.24

2 years ago

4.0.0-beta.23

2 years ago

4.0.0-beta.20

2 years ago

4.0.0-beta.17

2 years ago

4.0.0-beta.19

2 years ago

4.0.0-beta.18

2 years ago

4.0.0-beta.15

2 years ago

4.0.0-beta.14

2 years ago

4.0.0-beta.16

2 years ago

4.0.0-beta.11

2 years ago

4.0.0-beta.10

2 years ago

4.0.0-beta.13

2 years ago

4.0.0-beta.12

2 years ago

4.0.0-alpha.49

2 years ago

4.0.0-alpha.48

2 years ago

4.0.0-alpha.47

2 years ago

4.0.0-alpha.42

2 years ago

4.0.0-alpha.41

2 years ago

4.0.0-alpha.40

2 years ago

4.0.0-alpha.46

2 years ago

4.0.0-alpha.45

2 years ago

4.0.0-alpha.44

2 years ago

4.0.0-alpha.43

2 years ago

4.0.0-alpha.39

2 years ago

4.0.0-alpha.38

2 years ago

4.0.0-alpha.37

2 years ago

4.0.0-alpha.36

2 years ago

4.0.0-alpha.31

2 years ago

4.0.0-alpha.30

2 years ago

4.0.0-alpha.35

2 years ago

4.0.0-alpha.34

2 years ago

4.0.0-alpha.33

2 years ago

4.0.0-alpha.32

2 years ago

4.0.0-beta.8

2 years ago

4.0.0-beta.7

2 years ago

4.0.0-beta.6

2 years ago

4.0.0-beta.5

2 years ago

4.0.0-beta.4

2 years ago

4.0.0-beta.3

2 years ago

4.0.0-beta.2

2 years ago

4.0.0-beta.1

2 years ago

4.0.0-beta.0

2 years ago

4.0.0-alpha.27

2 years ago

4.0.0-alpha.26

2 years ago

4.0.0-alpha.25

2 years ago

4.0.0-alpha.29

2 years ago

4.0.0-alpha.24

2 years ago

4.0.0-alpha.23

2 years ago

4.0.0-beta.9

2 years ago

4.0.0-alpha.20

2 years ago

4.0.0-alpha.21

2 years ago

4.0.0-alpha.17

2 years ago

4.0.0-alpha.16

2 years ago

4.0.0-alpha.19

2 years ago

4.0.0-alpha.18

2 years ago

4.0.0-alpha.15

3 years ago

4.0.0-alpha.14

3 years ago

4.0.0-alpha.13

3 years ago

4.0.0-alpha.12

3 years ago

4.0.0-alpha.11

3 years ago

4.0.0-alpha.9

3 years ago

4.0.0-alpha.8

3 years ago

4.0.0-alpha.7

3 years ago

4.0.0-alpha.6

3 years ago

4.0.0-alpha.5

3 years ago

4.0.0-alpha.4

3 years ago

4.0.0-alpha.3

3 years ago

4.0.0-alpha.1

3 years ago

4.0.0-alpha.2

3 years ago

4.0.0-alpha.0

3 years ago