1.npm install 下载依赖项 2.npm install vue-tree-jf --save 下载vue-tree-jf组件
import vueTree from 'vue-tree-jf' Vue.use(vueTree); ..... <vue-tree :treeData='datas' ref='vtree' @clickNode ='clickNode' ></vue-tree> | 参数 | 类型 | 默认值 | 描述 |
| treeData | Array | 数据源,包含'id','text','icon','children'属性。 示例:[ {text:'xiaoming', id:'1', icon:'folder', children:[ {text:'1-1', id:'1-1', icon:'folder', children:[ {text:'1-1-1', id:'1-1-1', icon:'file', },{text:'1-1-2', id:'1-1-2', icon:'file' }] },{ text:'1-2', id:'1-2', icon:'folder', }] } ] | |
| checkBox | Boolean | false | 是否显示checkbox |
| transitionTime | Number | 200 | 折叠动画时间,单位ms |
| expand | Boolean | true | 初始化时折节点展开状态 |
| 参数名称 | 类型 | 默认值 | 描述 |
| text | String | 节点名称 | |
| id | String | 节点id | |
| icon | String | 节点图标 | |
| children | Array | 节点的子节点 |
| 方法名称 | 参数 | 返回值 | 描述 |
| getSelectedNode | - | 返回选中的tree节点 | |
| getCheckedNodes | - | 返回多选的tree节点 | 在多选属性checkbox为true时有效。 |
| getRoot | - | 获取树根节点。 | |
| findNode | nodeId | 节点id | 获根据id获取选中节点数据。 |
| setSelectedNode | node,ifClick | node:节点数据,包含id字段即可。 ifClick:是否触发点击事件 | 设置树节点选中。 |
| getParentNode | node | node:节点对象(包含id属性即可) | 获取父节点数据。 |
| getParentNodesArr | node | node:节点对象(包含id属性即可) | 获取所有祖先节点数据数组。 |
| 事件名称 | 参数 | 参数说明 | 描述 |
| clickNode | node | 当前点击节点的数据 | 节点点击时触发 |
<template><div class="hello"> <vue-tree :treeData='datas' ref='vtree' @clickNode='clickNode' :checkBox='checkbox'></vue-tree> <button @click='findSelected'>getNode</button></div> </template> <script> import Vue from 'vue' import vueTree from 'vue-tree-jf' Vue.use(vueTree); export default { name: 'HelloWorld', methods:{ findSelected(){ console.log('you clicked' + JSON.stringify(this.$refs.vtree.getSelectedNode())); if(this.checkbox){ console.log('you choosed ' + JSON.stringify(this.$refs.vtree.getCheckedNodes())) } }, clickNode(target){ console.log('you clicked '+ target.id) } }, data () { return { msg: 'Welcome to Your vtree App', checkbox:true, datas:[ {text:'xiaoming', id:'1', icon:'folder', children:[ {text:'1-1', id:'1-1', icon:'folder', children:[ {text:'1-1-1', id:'1-1-1', icon:'file', },{text:'1-1-2', id:'1-1-2', icon:'file' }] },{ text:'1-2', id:'1-2', icon:'file', }] }, {text:'hua', id:'2', icon:'folder', children:[{ text:'2-2', id:'2-2', icon:'file', }] }, {text:'hua', id:'3', icon:'folder', children:[{ text:'3-3', id:'3-3', icon:'file', }] } ] } }, } </script> <style scoped> .hello{ float:left; width:400px; border:1px solid black; } </style> 