1.0.3 • Published 4 years ago

custom-ctree v1.0.3

Weekly downloads
1
License
MIT
Repository
-
Last release
4 years ago

CTree 2.x

安装

yarn 安装方式

yarn add @wsfe/ctree

npm 安装方式

npm install @wsfe/ctree

样式引入

直接引入 css

@import '~@wsfe/ctree/dist/ctree.css';

引入 less 以便于变量覆盖

@import '~@wsfe/ctree/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'
separator多选模式下 value 分隔符string','
checkable是否可多选booleanfalse
selectable是否可单选booleanfalse
filteredNodeCheckable是否可勾选被过滤节点booleanfalse
cascade父子节点是否关联booleantrue
enableLeafOnly是否只启用子节点,当 多选且父子不关联单选 时有效booleanfalse
disableAll是否禁用所有节点booleanfalse
defaultExpandAll是否默认展开所有节点booleanfalse
defaultExpandedKeys Deprecated默认展开的节点 keyArray<string \| number>[]
expandedKeys 2.2.0展开的节点 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
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
clearable允许清空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 无效