iView的tree組件實現單選功能


iView中的樹組件有復選框可以多選,但是目前還沒有提供單選框的模式,不顯示復選框可以提供高亮單選的模式,但是再次點擊就被取消了,沒有實現真正的單選;

tree 的屬性配置中 multiple 是否支持多選,是在不顯示復選框的時候生效的,不能控制復選框支不支持多選;

實現單選功能中用到了:

:show-checkbox="true"  // 是否顯示復選框
:check-strictly="true" // 顯示復選框的前提下,是否讓父子節點不聯動
:check-directly="true" // 在顯示復選框的前提下,讓節點的選中觸發復選框的選中
@on-check-change="treeChange"  // 復選框被選中的時候觸發,可能是點擊復選框的時候被選中,也可能是點擊節點的時候被選中;返回 當前已勾選節點的數組、當前項

使用 getSelectedNodes() 獲取被選中的節點數組,getSelectedNodes()[0] 獲得被選中節點的數據

 

視圖、邏輯、樣式 如下:

 1 <template>
 2 <Tree
 3  ref="orgTree"
 4  :data="orgTree"
 5  :show-checkbox="true"
 6  :check-strictly="true"
 7  :check-directly="true"
 8  @on-check-change="treeChange"
 9  ></Tree>
10 </template>
11 
12 <script>
13 ...
14 methods:{
15     // 樹復選框發生改變--只能有一個被選中
16     treeChange(arr, obj) {
17       // 清空所有已選中的
18       arr.forEach(item => {
19         item.checked = false;
20       });
21       // 只選中最后一次選中的
22       obj.checked = true;
23     }
24 }
25 </script>
26 
27 <style>
28  /* 讓方形復選框變成圓形單選框樣式,最好在樹組件外套一個父盒子,在樣式前加父級選擇器,以免影響其他樹組件*/
29  .ivu-checkbox-inner {
30     border-radius: 50%;
31   }
32 </style>

寫的比較簡單,可能還有不完善的地方,還請各位大佬批評指正


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM