vue-treeselect及el-tree點擊節(jié)點獲取上級節(jié)點的數(shù)據(jù)方式
vue-treeselect及el-tree點擊節(jié)點獲取上級節(jié)點的數(shù)據(jù)
el-tree,單擊和右擊都有一個參數(shù),即節(jié)點對應(yīng)的Node
打印這個Node,如下:
@node-contextmenu="rightClick" // 節(jié)點右擊事件 */ rightClick(MouseEvent, object, Node, element) { console.log(Node, "Node"); },
展開parent
這個parent就是父節(jié)點,父節(jié)點中還包含了它自己的父節(jié)點,如果無父節(jié)點,返回null
el-tree獲取父節(jié)點還是挺簡單的,樹組件內(nèi)部已經(jīng)返給你了,直接獲取就行
vue-treeselect獲取父節(jié)點
文檔中未找到直接獲取的方法,我這里說一下自己實現(xiàn)的方式
@select="(node) => treeHandleSelect(node)"
treeHandleSelect(node, e) { // 獲取節(jié)點上一節(jié)點 //this.expendTree樹數(shù)據(jù)源,node.pid當(dāng)前節(jié)點的父id,this.dealPartytree處理數(shù)據(jù)的方法 const obj = this.dealPartytree(this.expendTree, node.pid); //obj就是處理完后返的父節(jié)點,然后直接拿自己需要的東西即可 this.partymember.branch = obj.name; this.partymember.branchId = obj.id; },
把樹數(shù)據(jù)源,節(jié)點的父id傳進來
// 獲取節(jié)點上一節(jié)點 dealPartytree(arr, id) { let obj = {}; const dep = (data, nodeId) => { //循環(huán)樹數(shù)據(jù)源,用當(dāng)前項的id和父id對比,相同就賦值,不相同就遞歸,相當(dāng)于遍歷了整棵樹 for (let v = 0; v < data.length; v++) { if (data[v].id === nodeId) { obj = data[v]; } else if (data[v].children) { dep(data[v].children, nodeId); } } return obj; }; obj = dep(arr, id); return obj; },
//用當(dāng)前項的id和父id對比是因為,當(dāng)前項的父id即父節(jié)點的id,通過父節(jié)點的id進行關(guān)聯(lián)
vue-treeselect無法點擊問題(點擊無法出現(xiàn)拉下菜單)
問題原因
樣式?jīng)_突(使用了elementui)
場景
在el-form標(biāo)簽中,如果使用了標(biāo)簽,并且父標(biāo)簽不是的話,就會出現(xiàn)無法點擊的問題。(沒有嚴(yán)格按elementui的標(biāo)簽嵌套)
可正常點擊:
<el-row> ? ?<el-col :span="24" ?v-if="form.parentId !== 0"> ? ? ?<el-form-item ? label="上級字典" prop="parentId"> ? ? ? ?<treeselect v-model="parentId" :options="dictOptions" ?/> ? ? ?</el-form-item> ? ?</el-col> ?</el-row>
不能正常點擊:
<el-col :span="24" > ? <el-form-item ? label="上級字典" prop="parentId"> ? ? <treeselect v-model="parentId" :options="dictOptions" ?/> ? </el-form-item> </el-col>
其他場景下,應(yīng)該也是樣式?jīng)_突的問題。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue3+TypeScript實現(xiàn)遞歸菜單組件的完整實例
Vue.js中的遞歸組件是一個可以調(diào)用自己的組件,遞歸組件一般用于博客上顯示評論,形菜單或者嵌套菜單,文章主要給大家介紹了關(guān)于Vue3+TypeScript實現(xiàn)遞歸菜單組件的相關(guān)資料,需要的朋友可以參考下2021-08-08關(guān)于element-ui的隱藏組件el-scrollbar的使用
這篇文章主要介紹了關(guān)于element-ui的隱藏組件el-scrollbar的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-05-05ElementUI?el-table?樹形數(shù)據(jù)的懶加載的實現(xiàn)
當(dāng)面對大量數(shù)據(jù)時,一次性加載所有數(shù)據(jù)可能會導(dǎo)致性能問題,我們可以實現(xiàn)樹形數(shù)據(jù)的懶加載,本文主要介紹了ElementUI?el-table?樹形數(shù)據(jù)的懶加載,感興趣的可以了解一下2024-06-06Vue.js中的計算屬性、監(jiān)視屬性與生命周期詳解
最近在學(xué)習(xí)vue,學(xué)習(xí)中遇到了一些感覺挺重要的知識點,感覺有必要整理下來,這篇文章主要給大家介紹了關(guān)于Vue.js中計算屬性、監(jiān)視屬性與生命周期的相關(guān)資料,需要的朋友可以參考下2021-06-06vue輪播組件實現(xiàn)$children和$parent 附帶好用的gif錄制工具
這篇文章主要介紹了vue輪播組件實現(xiàn),$children和$parent,附帶好用的gif錄制工具,需要的朋友可以參考下2019-09-09vue里的axios如何獲取本地json數(shù)據(jù)
這篇文章主要介紹了vue里的axios如何獲取本地json數(shù)據(jù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08