elementUI Tree 樹形控件單選實現(xiàn)示例
在Element UI中,樹形控件(el-tree)本身不支持單選功能。但是,你可以通過監(jiān)聽節(jié)點(diǎn)點(diǎn)擊事件并手動更新選中狀態(tài)來實現(xiàn)單選樹。
以下是一個簡單的例子,展示了如何實現(xiàn)單選功能:
展示效果
代碼實現(xiàn)
html相關(guān):
<el-tree :data="flatArr" check-strictly accordion show-checkbox node-key="id" :props="defaultProps" @check="handleNodeClick" ref="tree"> </el-tree>
js方法:
handleNodeClick(data, node, self) { // 如果已經(jīng)選中了一個節(jié)點(diǎn),則取消選擇 if (this.currentNodeKey?.name && this.$refs.tree) { this.$refs.tree.setCheckedKeys([]); // 更新當(dāng)前選中節(jié)點(diǎn)的 key this.$refs.tree.setCheckedNodes([data]); } // 更新當(dāng)前選中節(jié)點(diǎn)的 key this.currentNodeKey = data; },
義了一個currentNodeKey來存儲當(dāng)前選中節(jié)點(diǎn)的 key。每次點(diǎn)擊節(jié)點(diǎn)時,我們首先檢查是否已經(jīng)有一個節(jié)點(diǎn)被選中,如果是,則通過this.$refs.tree.setCurrentKey(null)取消選中它。然后,我們更新currentNodeKey為新選中的節(jié)點(diǎn) key。
請注意,這里的node.key假設(shè)你的每個節(jié)點(diǎn)數(shù)據(jù)中都有一個唯一的key屬性。你需要根據(jù)實際的節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)相應(yīng)地調(diào)整這個屬性名。
elementui Tree樹形控件其他詳細(xì)數(shù)據(jù)
參數(shù) | 說明 | 類型 | 可選值 | 默認(rèn)值 |
---|---|---|---|---|
data | 展示數(shù)據(jù) | array | — | — |
empty-text | 內(nèi)容為空的時候展示的文本 | String | — | — |
node-key | 每個樹節(jié)點(diǎn)用來作為唯一標(biāo)識的屬性,整棵樹應(yīng)該是唯一的 | String | — | — |
props | 配置選項,具體看下表 | object | — | — |
render-after-expand | 是否在第一次展開某個樹節(jié)點(diǎn)后才渲染其子節(jié)點(diǎn) | boolean | — | true |
load | 加載子樹數(shù)據(jù)的方法,僅當(dāng) lazy 屬性為true 時生效 | function(node, resolve) | — | — |
render-content | 樹節(jié)點(diǎn)的內(nèi)容區(qū)的渲染 | Function | Function(h, { node, data, store } | — |
highlight-current | 是否高亮當(dāng)前選中節(jié)點(diǎn),默認(rèn)值是 false。 | boolean | — | false |
default-expand-all | 是否默認(rèn)展開所有節(jié)點(diǎn) | boolean | — | false |
expand-on-click-node | 是否在點(diǎn)擊節(jié)點(diǎn)的時候展開或者收縮節(jié)點(diǎn), 默認(rèn)值為 true,如果為 false,則只有點(diǎn)箭頭圖標(biāo)的時候才會展開或者收縮節(jié)點(diǎn)。 | boolean | — | true |
check-on-click-node | 是否在點(diǎn)擊節(jié)點(diǎn)的時候選中節(jié)點(diǎn),默認(rèn)值為 false,即只有在點(diǎn)擊復(fù)選框時才會選中節(jié)點(diǎn)。 | boolean | — | false |
auto-expand-parent | 展開子節(jié)點(diǎn)的時候是否自動展開父節(jié)點(diǎn) | boolean | — | true |
default-expanded-keys | 默認(rèn)展開的節(jié)點(diǎn)的 key 的數(shù)組 | array | — | — |
show-checkbox | 節(jié)點(diǎn)是否可被選擇 | boolean | — | false |
check-strictly | 在顯示復(fù)選框的情況下,是否嚴(yán)格的遵循父子不互相關(guān)聯(lián)的做法,默認(rèn)為 false | boolean | — | false |
default-checked-keys | 默認(rèn)勾選的節(jié)點(diǎn)的 key 的數(shù)組 | array | — | — |
current-node-key | 當(dāng)前選中的節(jié)點(diǎn) | string, number | — | — |
filter-node-method | 對樹節(jié)點(diǎn)進(jìn)行篩選時執(zhí)行的方法,返回 true 表示這個節(jié)點(diǎn)可以顯示,返回 false 則表示這個節(jié)點(diǎn)會被隱藏 | Function(value, data, node) | — | — |
accordion | 是否每次只打開一個同級樹節(jié)點(diǎn)展開 | boolean | — | false |
indent | 相鄰級節(jié)點(diǎn)間的水平縮進(jìn),單位為像素 | number | — | 16 |
icon-class | 自定義樹節(jié)點(diǎn)的圖標(biāo) | string | - | - |
lazy | 是否懶加載子節(jié)點(diǎn),需與 load 方法結(jié)合使用 | boolean | — | false |
draggable | 是否開啟拖拽節(jié)點(diǎn)功能 | boolean | — | false |
allow-drag | 判斷節(jié)點(diǎn)能否被拖拽 | Function(node) | — | — |
allow-drop | 拖拽時判定目標(biāo)節(jié)點(diǎn)能否被放置。type 參數(shù)有三種情況:‘prev’、‘inner’ 和 ‘next’,分別表示放置在目標(biāo)節(jié)點(diǎn)前、插入至目標(biāo)節(jié)點(diǎn)和放置在目標(biāo)節(jié)點(diǎn)后 | Function(draggingNode, dropNode, type) | — | — |
到此這篇關(guān)于elementUI Tree 樹形控件單選實現(xiàn)示例的文章就介紹到這了,更多相關(guān)element Tree 單選內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解如何使用vue和electron開發(fā)一個桌面應(yīng)用
這篇文章主要為大家介紹了詳解如何使用vue和electron開發(fā)一個桌面應(yīng)用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03Vue單頁面應(yīng)用中實現(xiàn)Markdown渲染
這篇文章主要介紹了Vue單頁面應(yīng)用中如何實現(xiàn)Markdown渲染,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下2021-02-02webstrom Debug 調(diào)試vue項目的方法步驟
這篇文章主要介紹了webstrom Debug 調(diào)試vue項目的方法步驟,詳細(xì)的介紹了兩種調(diào)試vue項目的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07