eletree2
v2.3.3
Published
Tree component based on virtual dom
Downloads
2
Readme
eleTree2.0在线文档
[补充] 在原项目的基础上添加了以下功能
- 在expandOnClickNode: false的情况下,点击展开箭头触发dropdown事件
- 在.eleTree-dropdown元素中,存在eleTree-dropdown-hide(即在叶子节点展开箭头隐藏,但dom元素还是存在)时,点击该元素不触发事件
说明
- 基于虚拟dom重写eleTree插件
- 移除layui和jquery,完全基于snabbdom,渲染性能大大优化
- es6加webpack打包,支持import导入,layui导入和CDN直接引入的方式
- 功能包括自定义图标,单选,多选,右键菜单,复制粘贴,懒加载,拖拽,搜索等
本地开发测试
git clone https://github.com/hsiangleev/eleTree.git
cd eleTree
npm install
# 浏览器访问 http://localhost:3000
npm run start
# 生成
npm run build
# vuepress文档在线查看(浏览器访问http://localhost:3001)
npm run docs:start
安装
npm install eletree -D
CDN引入
<!-- js文件 -->
<script src="//unpkg.com/eletree/dist/eleTree.js"></script>
<!-- 加载字体文件样式 -->
<link rel="stylesheet" href="//unpkg.com/eletree/dist/css/icon.css"></script>
<!-- 使用图片地址 -->
<!-- imgUrl: "//unpkg.com/eletree/dist/images/" -->
快速开始
<div class="eletree"></div>
var el = eleTree({
el: '.eletree',
url: '/eleTree/json/1.json',
highlightCurrent: true,
showCheckbox: true
})
el.getChecked()
el.on("checkbox", function(data) {
console.log(data)
})
api文档
options属性
基础属性
| 参数 | 说明 | 类型 | 可选值 | 默认值 | |---------- |-------------- |---------- |-------------------------------- |-------- | | el | dom选择器 | string | — | — | | data | 静态数据 | array | — | — | | emptText | 当数据为空时显示的内容 | string | — | 暂无数据 | | highlightCurrent | 是否高亮当前选中节点 | boolean | — | false | | defaultExpandAll | 是否默认展开所有节点 | boolean | — | false | | autoExpandParent | 展开子节点的时候是否自动展开父节点 | boolean | — | false | | expandOnClickNode | 是否在点击文本的时候展开或者收缩节点,如果为 false,则只有点箭头图标的时候才会展开或者收缩节点 | boolean | — | true | | checkOnClickNode | 复选框是否在点击文本的时候选中节点 | boolean | — | false | | radioOnClickNode | 单选框是否在点击文本的时候选中节点 | boolean | — | false | | defaultExpandedKeys | 默认展开的节点的 key 的数组 | array | — | — | | showCheckbox | 是否显示checkbox | boolean | — | false | | checkStrictly | 在显示复选框的情况下,是否严格的遵循父子不互相关联的做法 | boolean | — | false | | isDefaultChangePstatus | 在显示复选框并且父子关联的情况下,初始数据是否只是子节点影响父节点,默认false,即父子关联 | boolean | — | false | | defaultCheckedKeys | 默认勾选的节点的 key 的数组 | array | — | — | | accordion | 是否每次只打开一个同级树节点展开(手风琴效果) | boolean | — | false | | indent | 相邻级节点间的水平缩进,单位为像素 | number | — | 16 | | showLine | 是否显示虚线 | boolean | — | true | | imgUrl | 图片所在的文件夹路径 | string | — | ./images/ | | icon | 使用自定义图标或图片 | object | fold,leaf,checkFull,checkHalf,checkNone,dropdownOff,dropdownOn,loading,radioCheck,radioCheckNone | 每个属性默认值均为空字符串 | | done | 树渲染完成之后的回调,参数为data数据 | function | — | — | | lazy | 开启懒加载 | boolean | — | false | | rightMenuList | 开启右键菜单 | array | "copy", "paste", "paste_before", "paste_after", "cut_paste", "edit", "remove", "add_child", "add_before", "add_after" | [] | | showRadio | 是否显示radio | boolean | — | false | | radioType | 单选范围(是同一级还是整体只能选择一个) | string | level/all | level | | defaultRadioCheckedKeys | radio默认选中项 | array | — | — | | defaultPid | 当使用pid格式的数据时,第一层数据的默认值 | string/number | — | '' | | draggable | 是否开启拖拽节点功能 | boolean | — | false | | customText | 节点文本自定义函数;| function | — | — |
异步属性
| 参数 | 说明 | 类型 | 可选值 | 默认值 | |---------- |-------------- |---------- |-------------------------------- |-------- | | url | 异步接口地址 | string | — | — | | method | 接口http请求类型 | string | get,post | get | | where | 接口的其它参数 | object | — | — | | headers | 接口的请求头 | object | — | — | | response | dom选择器 | string | — | — | | request | dom选择器 | string | — | — |
方法
| 方法名 | 说明 | 参数 | |---------- |-------------- |---------- | | on | 事件回调 | (type, callback)1.事件名,2.触发事件时的回调函数; | | getChecked | 获取复选框选中的节点信息 | (leafOnly, includeHalfChecked)1.是否只选中叶子节点,默认false,2.是否包括半选节点,默认false | | setChecked | 设置复选框选中的节点 | (checkArr, isUnCheckAll)1.设置选中项数组,2.是否先清空原有的选中项,默认true | | unChecked | 取消复选框选中的节点 | (unCheckArr)1.取消选中的节点数组;不传参数则默认清空所有选中项; | | setAllChecked | checkbox选中所有节点,除了禁用的节点 | — | | reverseChecked | checkbox反选所有节点,除了禁用的节点 | — | | getRadioChecked | 获取单选框选中的节点信息 | — | | setRadioChecked | 设置单选框选中的节点 | (checkArr, isUnCheckAll)1.设置选中项数组,2.是否先清空原有的选中项,默认true | | unRadioChecked | 取消单选框选中的节点 | (unCheckArr)1.取消选中的节点数组;不传参数则默认清空所有选中项 | | expandAll | 展开所有节点 | — | | unExpandAll | 合并所有节点 | — | | append | 添加子节点(有两种格式) | A. (id, array/object)1.查找需要添加的节点id,2.添加的子节点数据数组;id传null或空字符串则会添加到根节点B. (array/object)只传一个array/object参数则代表传入的为pid格式的数据,即在节点pid下添加子节点 | | updateKeySelf | 更新当前节点数据或移动某些节点(有两种格式) | A. (id, object)1.查找需要修改的节点id,2.需要修改的数据B. (array/object)只传一个array/object参数则代表传入的为pid格式的数据,即修改id的数据,如果pid改变,则代表移动节点 | | remove | 删除节点数据 | (removeArr)1.需要删除的节点id数组(可以移除多个节点) | | edit | 编辑节点 | (id, nodeType)1.需要编辑的节点id, 2. 当前编辑的节点类型,对应触发的回调事件名称,可选值(edit/add_child/add_before/add_after) | | insert | 在某个节点前后插入数据 | (id, array/object, type)1.查找需要添加的节点id,2.需要添加节点数据数组,3.类型,在当前节点前插入还是节点后插入,可选参数('before','after'),默认节点前 | | reload | 重新渲染树节点 | (options)1.传入object,参数初始参数一致 | | search | 搜索树节点 | (value, callback)1.需要搜索的文本信息,2. 传入的搜索条件,函数返回值为true则显示该节点; | | getAllNodeData | 获取所有节点数据 | ('c'/'p') 传入字符串'c'则返回的数据结构为父子结构,传入字符串'p'则返回pid格式的数据,默认为'c' | | copy | 复制节点 | (id) 1.需要复制的节点id | | cutPaste | 剪贴节点 | (id) 1.需要剪贴的节点id | | paste | 粘贴节点 | (id, nodeType) 1.需要粘贴到的节点id,2.粘贴到该节点的位置,可选参数('before','after','children'),默认children | | getClipboardData | 获取剪贴板数据 | 移动或复制或剪贴节点都会把该节点复制到剪贴板,如果剪贴板没有数据,则返回null |
事件
| 方法名 | 说明 | 回调参数 | |---------- |-------------- |---------- | | checkbox | checkbox选择 | (type, data)1.事件名,2.当前节点数据 | | radio | radio选择 | (type, data)1.事件名,2.当前节点数据 | | click | 节点点击 | (type, data)1.事件名,2.当前节点数据 | | copy | 节点复制 | (type, data, load, stop)1.事件名,2.当前节点数据, 3. 执行该操作, 4. 取消执行该操作 | | paste | 粘贴到子节点 | 与copy一致 | | paste_before | 粘贴到节点之前 | 与copy一致 | | paste_after | 粘贴到节点之后 | 与copy一致 | | cut_paste | 剪贴节点 | 与copy一致 | | edit | 编辑节点 | 与copy一致 | | remove | 删除节点 | 与copy一致 | | add_child | 添加子节点 | 与copy一致 | | add_before | 添加到节点前 | 与copy一致 | | add_after | 添加到节点后 | 与copy一致 | | custom_ | 自定义事件 | 与copy一致 | | drag | 拖拽事件 | (type, data, load, stop, endData, range)1.事件名,2.初始移动的节点数据, 3. 执行该操作, 4. 取消执行该操作, 5. 移动到某节点的数据, 6. 移动到节点范围(outer:移动到根节点/inner:移动到子节点) |