ZTree是一个基于jQuery的树形结构插件,可以用于显示树形菜单、目录结构等。在Vue项目中使用ZTree,需要先安装ZTree插件,然后在Vue组件中引入和使用。
步骤如下:
1. 在Vue项目中安装ZTree插件:
```
npm install jquery ztree --save
```
2. 在Vue组件中引入jQuery和ZTree插件:
```javascript
import $ from 'jquery'
import 'ztree/js/jquery.ztree.all.min.js'
import 'ztree/css/metroStyle/metroStyle.css'
```
其中,`jquery.ztree.all.min.js`是ZTree的核心文件,`metroStyle.css`是一款ZTree的皮肤。
3. 在Vue组件中定义一个div元素,用于显示ZTree:
```html
<template>
<div id="tree"></div>
</template>
```
4. 在Vue组件的`mounted`钩子函数中,初始化ZTree,并将数据渲染到树形菜单中:
```javascript
mounted() {
// 初始化ZTree
let setting = {
view: {
selectedMulti: false
},
data: {
simpleData: {
enable: true
}
},
callback: {
onClick: this.onClick
}
}
let zNodes = [
{ id:1, pId:0, name:"父节点 1", open:true},
{ id:11, pId:1, name:"子节点 1-1"},
{ id:12, pId:1, name:"子节点 1-2"},
{ id:13, pId:1, name:"子节点 1-3"},
{ id:2, pId:0, name:"父节点 2", open:true},
{ id:21, pId:2, name:"子节点 2-1"},
{ id:22, pId:2, name:"子节点 2-2"},
{ id:23, pId:2, name:"子节点 2-3"},
{ id:3, pId:0, name:"父节点 3", open:true},
{ id:31, pId:3, name:"子节点 3-1"},
{ id:32, pId:3, name:"子节点 3-2"},
{ id:33, pId:3, name:"子节点 3-3"}
]
$.fn.zTree.init($("#tree"), setting, zNodes)
},
methods: {
// 点击节点事件
onClick(event, treeId, treeNode) {
console.log(treeNode.name)
}
}
```
其中,`zNodes`变量是一个数组,用于存储树形菜单的数据。`setting`变量是一个对象,用于配置ZTree的属性,例如是否允许多选、数据格式等。`$.fn.zTree.init`方法用于初始化ZTree,其中`$("#tree")`表示树形菜单的容器元素,`setting`表示ZTree的配置,`zNodes`表示树形菜单的数据。
5. 最终效果如下图所示:
<img src="https://i.loli.net/2022/01/08/aJZ9zVX8q3WOhlY.png" alt="ztree-demo.png" style="zoom:50%;" />