1.安装 vue-giant-tree
npm i vue-giant-tree --save
2.在需要ztree树的页面引入
import tree from "vue-giant-tree";
3.注册ztree
components: {
tree
},
4.在data中配置ztree
//ztree数据 treeDatas: [], //ztree对象 ztreeObj: null, //ztree配置,参照ztree官网的配置 setting: { check: { //树是否带复选框或者单选框 enable: true }, data: { simpleData: { //是否使用简单数据模式 enable: true, //树节点id,一般是后台数据库主键 idKey: "id", //父级id pIdKey: "pid", rootPId: "0" } }, //ztree回调函数 callback: { //树选择事件 onCheck: this.ztreeOnCheck } },
setting配置说明:
ztreeObj:当前树对象,树创建成功后返回
check.enabe : 树是否显示 复选框或单选按钮
simpleData.enable: 是否使用简单数据模式
如果设置为 true,必须设置 setting.data.simpleData 内的其他参数: idKey / pIdKey / rootPId,并且让数据满足父子关系。
callback:回调函数
onCheck:树选中时回调,用于获取选中的节点数据
ztreeOnCheck() { let checked = this.ztreeObj.getCheckedNodes(true); console.log(checked); },
5.使用ztree:
<tree :setting="setting" :nodes="treeDatas" @onCheck="ztreeOnCheck" @onCreated="handleCreated" />
说明: nodes 树展示数据列表
setting:树的配置,参照ztree树官方网站 http://www.treejs.cn/v3/api.php
@onCheck 用于捕获 checkbox / radio 被勾选 或 取消勾选的事件回调函数
ztreeOnCheck() { let checked = this.ztreeObj.getCheckedNodes(true); console.log(checked); },
@onCreated 树创建时回调函数
handleCreated(ztreeObj) { console.log("加载树完成"); this.ztreeObj = ztreeObj; console.log(this.ztreeObj); // let firstTree = ztreeObj.getNodes()[0]; // 默认选中第一个 // ztreeObj.selectNode(firstTree); // 设置节点全部展开 ztreeObj.expandAll(true); //加载完自动点击第一个,加载右边表格 // this.setting.callback.onClick(null, firstTree.id, firstTree) },