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) },