1.2.1 • Published 20 days ago

infogo-tree v1.2.1

Weekly downloads
-
License
MIT
Repository
-
Last release
20 days ago

infogo-tree

在线 demo

安装

yarn 安装方式

yarn add infogo-tree

npm 安装方式

npm install infogo-tree

样式引入

直接引入 css

@import 'infogo-tree/dist/ctree.css';

引入 less 以便于变量覆盖

@import 'infogo-tree/src/styles/index.less';

CTree API

CTree Props

属性说明类型默认值
value选中的值,可用 v-model ;单选为字符串或数字,多选为 separator 分隔的字符串或数组,优先多选string \| number \| Array<string \| number>
data传入的树数据。数据量大时,不建议通过 props 传入数据,建议用 setData 方法代替object[][]
unloadDataList供未加载且选中节点查询 title 字段值用的列表,格式与 data 一致即可object[][]
showUnloadCheckedNodes过滤已选时是否在列表后面展示未加载的已选节点booleantrue
emptyText数据为空时显示的文本string'暂无数据'
titleField节点标题字段string'title'
keyField节点唯一标识字段string'id'
childStr子数据标识字段string'children'
disabledFn禁用拓展方法string(node): boolean => {}
separator多选模式下 value 分隔符function','
replenishSelect是否需要补全未渲染节点(初始化时,常用于补全子节点)booleanfalse
checkable是否可多选booleanfalse
selectable是否可单选booleanfalse
filteredNodeCheckable是否可勾选被过滤节点booleanfalse
cascade父子节点是否关联booleantrue
enableLeafOnly是否只启用子节点,当 多选且父子不关联单选 时有效booleanfalse
cascadeLoose不严格的父子关联,父选中,子全选,子全选,父不选中,当 多选且父子关联时有效booleanfalse
disableAll是否禁用所有节点booleanfalse
defaultExpandAll是否默认展开所有节点booleanfalse[]
expandedKeys展开的节点 key ,组件内部将会响应此 Prop 的变化Array<string \| number>[]
draggable是否可拖拽booleanfalse
droppable是否可放置booleanfalse
beforeDropMethod在放置节点之前执行的方法,返回 true 允许放置, false 可阻止放置(dragKey: string \| number, dropKey: string \| number, hoverPart: 'before' \| 'body' \| 'after') => boolean() => true
ignoreMode忽略模式,指定 getCheckedNodes, getCheckedKeysv-model 默认要忽略的部分'none' \| 'parents' \| 'children''none'
autoLoad异步加载初始化时是否自动加载根节点booleantrue
load异步加载方法(node: null \| TreeNode, resolve: Function, reject: Function) => any
render节点渲染 render 函数(h: CreateElement, node: TreeNode) => VNode
filterMethod节点过滤方法(keyword: string, node: TreeNode) => boolean
expandOnFilter 2.1.0过滤时是否展开所有可见节点booleantrue
unselectOnClick 2.1.0点击已选中节点是否取消选中booleantrue
loading是否显示 loading 图标booleanfalse
nodeClassName节点根元素的 class ,传入函数以对每个节点定制 classstring \| object \| Array<string \| object> \| (node: TreeNode) => string \| object \| Array<string \| object>
nodeMinHeight根据节点最小高度计算数据总高度number30
nodeIndent子节点缩进number20
renderNodeAmount渲染节点数量,可见节点数大于此值且高度超过(容器可视高度能容纳节点数 + bufferNodeAmount)则不会渲染所有可见节点number100
bufferNodeAmount当滚动到视野外的节点个数大于此值时刷新渲染节点number20

CTree Events

注:从 2.0.8 起,事件中返回的节点信息都是包括 _parentchildren 的完整节点信息(拖拽事件的 dataTransfer 除外)。

事件名说明返回值
input选中节点改变时触发选中的节点
expand展开/折叠时触发节点信息
check勾选时触发(多选)被勾选的节点信息
uncheck取消勾选时触发(多选)被取消勾选的节点信息
checked-change勾选/取消勾选时触发(多选)所有被勾选节点(数组)
select选中时触发(单选)被选中的节点信息
unselect取消选中时触发(单选)被取消选中的节点信息
selected-change选中/取消选中时触发(单选)被选中节点
click点击节点时触发节点信息
node-dblclick双击节点时触发节点信息
node-right-click右击节点时触发节点信息
node-dragstart开始拖拽节点时触发节点信息, 拖拽事件对象
node-dragenterdragenter 时触发节点信息 , 拖拽事件对象, 事件触发的节点部位 'before' \| 'body' \| 'after'
node-dragoverdragover 时触发节点信息 , 拖拽事件对象, 事件触发的节点部位 'before' \| 'body' \| 'after'
node-dragleavedragleave 时触发节点信息 , 拖拽事件对象, 事件触发的节点部位 'before' \| 'body' \| 'after'
node-drop放置节点时触发结束拖拽时最后进入的节点信息 , 拖拽事件对象, 被拖拽节点的放置位置 'before' \| 'body' \| 'after', 被拖拽节点的信息

CTree Methods

方法说明参数返回值
setData使用此方法重置树数据,可避免大量数据被 vue 监听data: object[]: 同 data Propvoid
setChecked设置多选选中/取消选中key: string \| number: 节点 keyvalue: boolean: 是否选中void
setCheckedKeys批量设置选中/取消选中keys: Array<string \| number>: 节点 keyvalue: boolean: 是否选中void
checkAll设置所有数据全选void
clearChecked清空选中void
setSelected设置单选选中/取消选中key: string \| number: 节点 keyvalue: boolean: 是否选中void
setExpand设置展开/折叠key: string \| number: 节点 keyvalue: boolean: 是否展开expandParent: boolean = true: 如果是展开是否同时展开父节点 2.0.6void
setExpandKeys批量展开/折叠keys: Array<string \| number>: 节点 keyvalue: boolean: 是否展开void
setExpandAll设置全部展开/折叠value: boolean: 是否展开void
getCheckedNodes获取多选选中节点ignoreMode: 'none' \| 'parents' \| 'children': 需要忽略的部分,默认为 ignoreMode PropTreeNode[]
getCheckedKeys获取多选选中节点 keyignoreMode: 'none' \| 'parents' \| 'children': 需要忽略的部分,默认为 ignoreMode PropArray<string \| number>
getIndeterminateNodes获取半选状态的节点TreeNode[]
getSelectedNode获取单选选中节点TreeNode \| null
getSelectedKey获取单选选中节点 keyTreeNode \| null
getExpandNodes获取展开的节点TreeNode[]
getExpandKeys获取展开的节点 keyTreeNode[]
getCurrentVisibleNodes获取当前可见的节点TreeNode[]
getNode根据 key 获取节点key: string \| number: 节点 keyTreeNode \| null
getTreeData获取树形结构的节点数据TreeNode[]
getFlatData获取扁平化后的节点数据TreeNode[]
getNodesCount获取节点总数量number
insertBefore在参照节点前插入一个节点insertedNode: 节点 key 或者单个节点数据referenceKey: string \| number: 参照节点 keyTreeNode \| null 返回插入的节点
insertAfter在参照节点后插入一个节点insertedNode: 节点 key 或者单个节点数据referenceKey: string \| number: 参照节点 keyTreeNode \| null 返回插入的节点
append在父节点第一层子节点的末尾插入一个节点insertedNode: 节点 key 或者单个节点数据parentKey: string \| number: 父节点 keyTreeNode \| null 返回插入的节点
prepend在父节点第一层子节点的开头插入一个节点insertedNode: 节点 key 或者单个节点数据parentKey: string \| number: 父节点 keyTreeNode \| null 返回插入的节点
remove删除节点removedKey: string \| number: 要删除的节点 keyTreeNode \| null 返回删除的节点
filter过滤节点keyword: string: 过滤关键词filterMethod: (keyword: string, node: TreeNode) => boolean: 过滤方法,默认为 filterMethod Prop ,如果没有传 filterMethod Prop 则为搜索 title 字段的一个内置方法void
showCheckedNodes展示已选节点showUnloadCheckedNodes: boolean: 是否显示未加载的选中节点,默认为 Prop 传入的值void
loadRootNodes从远程加载根节点Promise<void>
scrollTo滚动到指定节点位置key: string \| number: 节点 keyverticalPosition: 'top' \| 'center' \| 'bottom' \| number: 滚动的垂直位置void

CTree Slots

名称说明
empty暂无数据
loading加载中显示的图标

CTree Data Fields

注:以 '_' 开头的字段最好不要覆盖,以免影响内部处理逻辑

字段说明
id默认以 'id' 作为 key 字段,也可以通过 keyField Prop 指定其他字段作为 key 字段
title默认显示的名称,可通过 titleField Prop 指定其他字段作为 title 字段
checked多选模式下是否勾选
selected单选模式下是否选中
indeterminate多选模式下是否半选状态
disabled是否禁用
expand父节点有效,节点展开状态
visible是否可见
_filterVisible过滤后是否可见,如果为 false 则在其他可见情况下也是不可见的
_parent父节点
children子节点数组
isLeaf标记节点是否为叶子节点
_level节点层级,默认从 0 开始
_loading节点是否正在加载
_loaded节点是否已经加载过,异步加载下有效

CTreeSearch API

CTreeSearch Props

注:可在 CTreeSearch 上直接使用 CTree 的所有 Props

属性说明类型默认值
searchPlaceholder搜索输入框的 placeholderstring'搜索关键字'
showCheckAll是否显示全选复选框booleantrue
isTree数据是否是树形booleantrue
showCheckedButton是否显示已选按钮booleantrue
checkedButtonText已选按钮文字string'已选'
showFooter是否显示底部信息booleantrue
searchMethod 2.0.2如果传入此 Prop ,触发 search 事件后将会执行此方法,否则会执行组件内置的搜索方法(keyword: string) => void \| Promise<void>
searchLength触发搜索的字符长度number1
searchDisabled禁用搜索功能booleanfalse
searchRemote是否远程搜索,传入 searchMethod 时无效booleanfalse
searchDebounceTime搜索防抖时间,单位为毫秒number300

CTreeSearch Events

注:可在 CTreeSearch 上直接监听 CTree 的所有 Events

事件名说明返回值
search执行搜索操作时触发搜索的关键字

CTreeSearch Methods

注:可在 CTreeSearch 上直接调用 CTree 的所有 Methods

方法说明参数返回值
clearKeyword清空关键字void
getKeyword获取搜索关键字string
search执行搜索keyword: string: 搜索的关键字,默认为内部 this.keywordPromise<void>

CTreeSearch Slots

注:可在 CTreeSearch 上直接传入 CTree 的所有 Slots

名称说明
search-input搜索输入框,可通过此 slot 自行封装树搜索组件的行为
actions操作按钮,可在搜索输入框后加入更多操作按钮
footer底部信息

CTreeDrop API

CTreeDrop Props

注:可在 CTreeDrop 上直接使用 CTreeCTreeSearch 的所有 Props

属性说明类型默认值
dropHeight下拉内容高度number300
dropPlaceholder展示输入框 placeholderstring
dropDisabled是否禁用booleanfalse
isTree数据是否是树形booleantrue
clearable允许清空booleanfalse
collapseTags多选标签是否合并booleantrue
showTagClose多选标签是否可以删除booleanfalse
placement下拉弹出框位置,注意!!不支持自动识别方向'bottom-start' \| 'bottom-end' \| 'bottom' \| 'top-start' \| 'top-end' \| 'top''bottom-start'
transfer将下拉 DOM 转移到 body 中booleanfalse
dropdownClassName在下拉框容器上额外添加的 classstring \| string[]
dropdownMinWidth 2.0.1下拉框容器最小宽度,未指定则默认为展示输入框宽度。 适合 transfer 为 false 时使用number
dropdownWidthFixed 2.0.5固定下拉框容器宽度,当内容超出最小宽度不会伸长,而是出现横向滚动条booleanfalse

CTreeDrop Events

注:可在 CTreeDrop 上直接监听 CTreeCTreeSearch 的所有 Events

事件名说明返回值
dropdown-visible-change下拉框出现或消失时触发下拉框是否可见
clear点击清空按钮时触发

CTreeDrop Methods

注:可在 CTreeDrop 上直接调用 CTreeCTreeSearch 的所有 Methods

CTreeDrop Slots

注:可在 CTreeDrop 上直接传入 CTreeCTreeSearch 的所有 Slots

名称说明
默认展示输入框
display展示输入框的展示文字,如果有默认 slot 则此 slot 无效
clear替换清空图标,如果有默认 slot 则此 slot 无效

默认 slot 与 display slot 的 Slot Props 2.3.0

/** 展示 slot 的 props */
slotProps: {
  /** 多选选中的节点 */
  checkedNodes: [] as TreeNode[],

  /** 多选选中的节点 key */
  checkedKeys: [] as Array<string | number>,

  /** 单选选中的节点 */
  selectedNode: null as TreeNode | null,

  /** 单选选中的节点 key */
  selectedKey: null as string | number | null,
},

注意checkedNodesselectedNode 只包含已加载的节点,如果设置了选中的值(比如设置了 value Prop),但没有设置树的数据,则这两个字段内容将为空;而 checkedKeysselectedKey 则会包含未加载的选中节点 key 。

1.2.1

20 days ago

1.1.9

21 days ago

1.1.8

3 months ago

1.1.7

4 months ago

1.1.6

4 months ago

1.1.5

5 months ago

1.1.4

5 months ago

1.1.3

8 months ago

1.1.1

11 months ago

1.0.2

12 months ago

1.1.0

11 months ago

1.0.9

11 months ago

1.0.8

11 months ago

1.0.6

11 months ago

1.0.5

11 months ago

1.0.4

11 months ago

1.1.2

10 months ago

1.0.3

11 months ago

1.0.1

12 months ago