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>