4.6.2 • Published 8 months ago

@hi-ui/tree v4.6.2

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months 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.6.3-alpha.0

8 months ago

4.6.2

8 months ago

4.6.2-alpha.1

8 months ago

4.6.2-alpha.0

8 months ago

4.6.0-alpha.0

10 months ago

4.5.11

11 months ago

4.6.1

9 months ago

4.6.0

10 months ago

4.5.10

1 year ago

4.5.10-alpha.0

1 year ago

4.5.9

1 year ago

4.5.9-alpha.1

1 year ago

4.5.9-alpha.0

1 year ago

4.5.8

2 years ago

4.5.7

2 years ago

4.5.4

2 years ago

4.5.3

2 years ago

4.5.6

2 years ago

4.5.5

2 years ago

4.5.0

2 years ago

4.5.2

2 years ago

4.5.1

2 years ago

4.4.0

2 years ago

4.3.0

2 years ago

4.2.1

2 years ago

4.2.0

2 years ago

4.1.2

2 years ago

4.1.0

3 years ago

4.1.1

2 years ago

4.0.9

3 years ago

4.0.8

3 years ago

4.0.5

3 years ago

4.0.4

3 years ago

4.0.7

3 years ago

4.0.6

3 years ago

4.0.3

3 years ago

4.0.1

3 years ago

4.0.0

3 years ago

4.0.2

3 years ago

4.0.0-beta.43

3 years ago

4.0.0-beta.40

3 years ago

4.0.0-beta.42

3 years ago

4.0.0-beta.41

3 years ago

4.0.0-beta.39

3 years ago

4.0.0-beta.38

3 years ago

4.0.0-beta.29

3 years ago

4.0.0-beta.37

3 years ago

4.0.0-beta.36

3 years ago

4.0.0-beta.33

3 years ago

4.0.0-beta.32

3 years ago

4.0.0-beta.35

3 years ago

4.0.0-beta.34

3 years ago

4.0.0-beta.31

3 years ago

4.0.0-beta.30

3 years ago

4.0.0-beta.26

3 years ago

4.0.0-beta.25

3 years ago

4.0.0-beta.28

3 years ago

4.0.0-beta.27

3 years ago

4.0.0-beta.22

3 years ago

4.0.0-beta.21

3 years ago

4.0.0-beta.24

3 years ago

4.0.0-beta.23

3 years ago

4.0.0-beta.20

3 years ago

4.0.0-beta.17

3 years ago

4.0.0-beta.19

3 years ago

4.0.0-beta.18

3 years ago

4.0.0-beta.15

3 years ago

4.0.0-beta.14

3 years ago

4.0.0-beta.16

3 years ago

4.0.0-beta.11

3 years ago

4.0.0-beta.10

3 years ago

4.0.0-beta.13

3 years ago

4.0.0-beta.12

3 years ago

4.0.0-alpha.49

3 years ago

4.0.0-alpha.48

3 years ago

4.0.0-alpha.47

3 years ago

4.0.0-alpha.42

3 years ago

4.0.0-alpha.41

3 years ago

4.0.0-alpha.40

3 years ago

4.0.0-alpha.46

3 years ago

4.0.0-alpha.45

3 years ago

4.0.0-alpha.44

3 years ago

4.0.0-alpha.43

3 years ago

4.0.0-alpha.39

3 years ago

4.0.0-alpha.38

3 years ago

4.0.0-alpha.37

3 years ago

4.0.0-alpha.36

3 years ago

4.0.0-alpha.31

3 years ago

4.0.0-alpha.30

3 years ago

4.0.0-alpha.35

3 years ago

4.0.0-alpha.34

3 years ago

4.0.0-alpha.33

3 years ago

4.0.0-alpha.32

3 years ago

4.0.0-beta.8

3 years ago

4.0.0-beta.7

3 years ago

4.0.0-beta.6

3 years ago

4.0.0-beta.5

3 years ago

4.0.0-beta.4

3 years ago

4.0.0-beta.3

3 years ago

4.0.0-beta.2

3 years ago

4.0.0-beta.1

3 years ago

4.0.0-beta.0

3 years ago

4.0.0-alpha.27

3 years ago

4.0.0-alpha.26

3 years ago

4.0.0-alpha.25

3 years ago

4.0.0-alpha.29

3 years ago

4.0.0-alpha.24

3 years ago

4.0.0-alpha.23

3 years ago

4.0.0-beta.9

3 years ago

4.0.0-alpha.20

4 years ago

4.0.0-alpha.21

3 years ago

4.0.0-alpha.17

4 years ago

4.0.0-alpha.16

4 years ago

4.0.0-alpha.19

4 years ago

4.0.0-alpha.18

4 years ago

4.0.0-alpha.15

4 years ago

4.0.0-alpha.14

4 years ago

4.0.0-alpha.13

4 years ago

4.0.0-alpha.12

4 years ago

4.0.0-alpha.11

4 years ago

4.0.0-alpha.9

4 years ago

4.0.0-alpha.8

4 years ago

4.0.0-alpha.7

4 years ago

4.0.0-alpha.6

4 years ago

4.0.0-alpha.5

4 years ago

4.0.0-alpha.4

4 years ago

4.0.0-alpha.3

4 years ago

4.0.0-alpha.1

4 years ago

4.0.0-alpha.2

4 years ago

4.0.0-alpha.0

4 years ago