ElementUI中el-tree如何獲取每個節(jié)點點擊的選中狀態(tài)
ElementUI中el-tree獲取每個節(jié)點點擊的選中狀態(tài)
有時候需要獲取el-tree每個節(jié)點的點擊狀態(tài),可以通過以下方式,其中isCheck類型為布爾值
<el-tree :data="organizationData" :props="defaultProps" :check-strictly="isAssociate" node-key="organizationId" :expand-on-click-node="false" @check="getCurrentNode" ref="tree" > </el-tree>
1.綁定@check事件,我這里是getCurrentNode,函數(shù)名自己隨便寫
2.綁定ref
getCurrentNode(nodeObj, nodeState) { //判斷當(dāng)前狀態(tài)是選中還是取消選中 const isCheck = this.$refs.tree.getCheckedNodes().indexOf(nodeObj) > -1 console.log(isCheck) }
附屬
element-ui el-tree 獲取當(dāng)前選中數(shù)據(jù)(含半選中的父節(jié)點)
- 當(dāng)不給el-tree組件設(shè)置check-strictly 屬性時,默認(rèn)為false,但是回顯會有一些沒有選中的節(jié)點都勾選上了,怎么解決呢?
- 重新回到設(shè)置 check-strictly 為 true 時,父子級不互相關(guān)聯(lián),挨個點擊用戶體驗不好的問題,同時也避免了出現(xiàn)半選的情況。
- 需要簡化用戶操作:
- (1)當(dāng)點擊復(fù)選框勾選父節(jié)點時,其父節(jié)點子節(jié)點會統(tǒng)一跟隨選中,為選中狀態(tài)
- (1)當(dāng)點擊復(fù)選框勾選取消選中時,其父節(jié)點子節(jié)點會統(tǒng)一跟隨為未選中狀態(tài)
- el-tree 標(biāo)簽屬性
node-key:每個樹節(jié)點用來作為唯一標(biāo)識的屬性,整棵樹應(yīng)該是唯一的。標(biāo)識節(jié)點唯一的鍵值名稱。 default-checked-keys:對應(yīng)el-tree多選樹組件初始化時默認(rèn)選中ID check-strictly:是否嚴(yán)格的遵循父子不互相關(guān)聯(lián)的做法,默認(rèn)為false check:當(dāng)復(fù)選框被點擊的時候觸發(fā)的方法
methods:{ <el-tree ref="tree" @check="check" //選中或取消選中都會執(zhí)行該方法 :check-strictly="true" //這里需要設(shè)置為true,不設(shè)置會回顯未選中的節(jié)點 :data="datalist" //數(shù)據(jù)源 拿接口數(shù)據(jù)賦值就可 show-checkbox node-key="id" :default-checked-keys="midPwList" //這里需要后臺返回id集合數(shù)組 ,給它賦值即可 :props="{children: 'children',label: 'menuName',value:'id',disabled:disabledFn}"> <template #default="{node,data}"> <span class="custom-tree-node" > <span>{{ node.label }}</span> <span> <el-tag closable size="mini" v-for="(item,index) in data.btnBean" @close="cancel(item.id)" :key="index">{{item.btnname}}</el-tag> </span> </span> </template> </el-tree> <el-button type="text" size="medium" @click="quanxian(scope.row)">權(quán)限</el-button>
//調(diào)用check事件/下面三個方法都調(diào)用就可以實現(xiàn),點擊勾選父節(jié)點會跟隨選中子節(jié)點/取消勾選父節(jié)點會跟隨全部取消選中 check(currentObj, treeStatus) { // 用于:父子節(jié)點嚴(yán)格互不關(guān)聯(lián)時,父節(jié)點勾選變化時通知子節(jié)點同步變化,實現(xiàn)單向關(guān)聯(lián)。 let selected = treeStatus.checkedKeys.indexOf(currentObj.id) //不等于-1當(dāng)前是選中狀態(tài) if (selected !== -1) { this.selectedParent(currentObj) //統(tǒng)一處理子節(jié)點為相同的勾選狀態(tài) this.uniteChildSame(currentObj, true) }else { //等于 -1 是取消選中狀態(tài) this.uniteChildSame(currentObj, false) // } }, uniteChildSame(treeList, isSelected) { console.log(isSelected); this.$refs.tree.setChecked(treeList.id, isSelected) if (treeList.children) { for (let i = 0; i < treeList.children.length; i++) { this.uniteChildSame(treeList.children[i], isSelected) } } }, selectedParent(currentObj) { let currentNode = this.$refs.tree.getNode(currentObj) console.log(currentNode); if (currentNode.parent.key !== undefined) { this.$refs.tree.setChecked(currentNode.parent, true) this.selectedParent(currentNode.parent) } }, //回顯勾選保存的數(shù)據(jù) quanxian(row){ this.$nextTick(()=>{ this.midPwList = JSON.parse(JSON.stringify(row.listRole)); }) } }
到此這篇關(guān)于ElementUI中el-tree獲取每個節(jié)點點擊的選中狀態(tài)的文章就介紹到這了,更多相關(guān)ElementUI el-tree獲取選中狀態(tài)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
video.js 實現(xiàn)視頻只能后退不能快進的思路詳解
這篇文章主要介紹了video.js 實現(xiàn)視頻只能后退不能快進的思路詳解,主要思路是點擊進度條需要獲取拖動前的時間點,具體實例代碼大家跟隨小編一起看看吧2018-08-08關(guān)于include標(biāo)簽導(dǎo)致js路徑找不到的問題分析及解決
本文為大家詳細(xì)介紹下關(guān)于使用jsp:include標(biāo)簽及<%@ include標(biāo)簽時要注意的事項以及實測發(fā)現(xiàn)問題并解決問題的全過程,感興趣的各位可以參考下哈,希望對大家有所幫助2013-07-07利用JavaScript實現(xiàn)創(chuàng)建虛擬鍵盤的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用JavaScript實現(xiàn)創(chuàng)建虛擬鍵盤,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)JavaScript有一定幫助,需要的可以參考一下2022-09-09淺談js中用$(#ID)來作為選擇器的問題(id重復(fù)的時候)
下面小編就為大家?guī)硪黄獪\談js中用$(#ID)來作為選擇器的問題(id重復(fù)的時候)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02JS插件plupload.js實現(xiàn)多圖上傳并顯示進度條
這篇文章主要為大家詳細(xì)介紹了PHP結(jié)合plupload.js JS插件實現(xiàn)多圖上傳并顯示進度條加刪除實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11Boostrap基礎(chǔ)教程之JavaScript插件篇
Boostrap提供了12種JavaScript插件,在本文中給大家介紹了,不知道的朋友可以參考下,本文重點給大家介紹bootstrap基礎(chǔ)之js插件,感興趣的朋友一起學(xué)習(xí)吧2016-09-09JavaScript緩沖運動實現(xiàn)方法(2則示例)
這篇文章主要介紹了JavaScript緩沖運動實現(xiàn)方法,簡單分析了JavaScript緩沖運動的實現(xiàn)原理與相關(guān)運算技巧,并給出了兩則實例代碼予以總結(jié)分析,需要的朋友可以參考下2016-01-01