elementUI Tree 樹形控件單選實(shí)現(xiàn)示例
在Element UI中,樹形控件(el-tree)本身不支持單選功能。但是,你可以通過(guò)監(jiān)聽節(jié)點(diǎn)點(diǎn)擊事件并手動(dòng)更新選中狀態(tài)來(lái)實(shí)現(xiàn)單選樹。
以下是一個(gè)簡(jiǎn)單的例子,展示了如何實(shí)現(xiàn)單選功能:
展示效果
代碼實(shí)現(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)選中了一個(gè)節(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; },
義了一個(gè)currentNodeKey來(lái)存儲(chǔ)當(dāng)前選中節(jié)點(diǎn)的 key。每次點(diǎn)擊節(jié)點(diǎn)時(shí),我們首先檢查是否已經(jīng)有一個(gè)節(jié)點(diǎn)被選中,如果是,則通過(guò)this.$refs.tree.setCurrentKey(null)取消選中它。然后,我們更新currentNodeKey為新選中的節(jié)點(diǎn) key。
請(qǐng)注意,這里的node.key假設(shè)你的每個(gè)節(jié)點(diǎn)數(shù)據(jù)中都有一個(gè)唯一的key屬性。你需要根據(jù)實(shí)際的節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)相應(yīng)地調(diào)整這個(gè)屬性名。
elementui Tree樹形控件其他詳細(xì)數(shù)據(jù)
參數(shù) | 說(shuō)明 | 類型 | 可選值 | 默認(rèn)值 |
---|---|---|---|---|
data | 展示數(shù)據(jù) | array | — | — |
empty-text | 內(nèi)容為空的時(shí)候展示的文本 | String | — | — |
node-key | 每個(gè)樹節(jié)點(diǎn)用來(lái)作為唯一標(biāo)識(shí)的屬性,整棵樹應(yīng)該是唯一的 | String | — | — |
props | 配置選項(xiàng),具體看下表 | object | — | — |
render-after-expand | 是否在第一次展開某個(gè)樹節(jié)點(diǎn)后才渲染其子節(jié)點(diǎn) | boolean | — | true |
load | 加載子樹數(shù)據(jù)的方法,僅當(dāng) lazy 屬性為true 時(shí)生效 | 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)的時(shí)候展開或者收縮節(jié)點(diǎn), 默認(rèn)值為 true,如果為 false,則只有點(diǎn)箭頭圖標(biāo)的時(shí)候才會(huì)展開或者收縮節(jié)點(diǎn)。 | boolean | — | true |
check-on-click-node | 是否在點(diǎn)擊節(jié)點(diǎn)的時(shí)候選中節(jié)點(diǎn),默認(rèn)值為 false,即只有在點(diǎn)擊復(fù)選框時(shí)才會(huì)選中節(jié)點(diǎn)。 | boolean | — | false |
auto-expand-parent | 展開子節(jié)點(diǎn)的時(shí)候是否自動(dòng)展開父節(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 | 對(duì)樹節(jié)點(diǎn)進(jìn)行篩選時(shí)執(zhí)行的方法,返回 true 表示這個(gè)節(jié)點(diǎn)可以顯示,返回 false 則表示這個(gè)節(jié)點(diǎn)會(huì)被隱藏 | Function(value, data, node) | — | — |
accordion | 是否每次只打開一個(gè)同級(jí)樹節(jié)點(diǎn)展開 | boolean | — | false |
indent | 相鄰級(jí)節(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 | 拖拽時(shí)判定目標(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 樹形控件單選實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)element Tree 單選內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解如何使用vue和electron開發(fā)一個(gè)桌面應(yīng)用
這篇文章主要為大家介紹了詳解如何使用vue和electron開發(fā)一個(gè)桌面應(yīng)用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03vuepress打包之后頁(yè)面樣式丟失問題的兩種解決方式
這篇文章主要介紹了vuepress打包之后頁(yè)面樣式丟失問題的兩種解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07vue仿element實(shí)現(xiàn)分頁(yè)器效果
這篇文章主要介紹了vue仿element實(shí)現(xiàn)分頁(yè)器效果,實(shí)現(xiàn)思路是定一個(gè)值foldPage, 意為當(dāng)前最多顯示的標(biāo)簽數(shù),當(dāng)總頁(yè)數(shù)超過(guò)即顯示省略.省略分為左邊省略(folder1)和右邊省略(folder2),具體實(shí)例代碼大家參考下本文2018-09-09Vue單頁(yè)面應(yīng)用中實(shí)現(xiàn)Markdown渲染
這篇文章主要介紹了Vue單頁(yè)面應(yīng)用中如何實(shí)現(xiàn)Markdown渲染,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下2021-02-02webstrom Debug 調(diào)試vue項(xiàng)目的方法步驟
這篇文章主要介紹了webstrom Debug 調(diào)試vue項(xiàng)目的方法步驟,詳細(xì)的介紹了兩種調(diào)試vue項(xiàng)目的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07