const defaultProps = {//子樹為節點對象的childrenchildren: 'children',//節點標簽為節點對象的name屬性label: 'name',
}
屬性
以下是樹組件中的常用屬性以及作用:
data:展示的數據(數據源)
show-checkbox:節點是否可被選擇(點擊可以選中)
node-key:每個樹節點用來作為唯一標識的屬性,整棵樹應該是唯一的(如果樹中包含children子數據,該屬性不能省略)
default-expand-all:默認展開所有節點
default-checked-keys:默認勾選的節點的 key 的數組(是一個數組,數組中存放的就是上面node-key存放的唯一標識)
default-expanded-keys:默認展開的節點的 key 的數組(是一個數組,數組中存放的就是上面node-key存放的唯一標識)
current-node-key:當前選中的節點(可以是number或string類型)
props:接收一個對象,對象中可以包含以下兩個屬性(還可以包含其他屬性,這里只列舉了以下兩個)
label:指定節點標簽為節點對象的某個屬性值(就是代表了要在頁面中展示的節點名稱)?,children:指定子樹為節點對象的某個屬性值(就是代表去哪個字段下讀取數據當作子節點的數據)(注意:label和children這兩個屬性名是不變的,屬性值需要根據項目需要進行修改)
方法
常用方法:
使用el-tree樹組件提供的方法時,需要先在el-tree組件標簽上利用ref打上標識(<el-tree ref="xxx"> </el-tree>),然后通過ref得到el-tree組件實例才能調用對應方法!
1.?getCheckedKeys:如果在el-tree標簽上設置了show-checkbox屬性且被選中,通過樹組件實例.getCheckedKeys進行調用,它將返回當前選中節點key的數組(該數組由所有被選中的節點的id屬性組成【為什么是id屬性呢?? ? ? ? 因為:在el-tree標簽上設置了node-key="id"屬性。所以該方法會收集所有選中的節點對象的id屬性】)
?2.?getHalfCheckedNodes:如果在el-tree標簽上設置了show-checkbox屬性且被選中,通過樹組件實例.getHalfCheckedNodes進行調用,它將返回當前半選中的節點組成的數組
如遇這種情況該方法一般會和上面的getCheckedKeys配合使用
下方代碼意思是:將利用getCheckedKeys得到的id數組和利用getHalfCheckedKeys得到的半選id數組合并然后作為向服務器發送請求的參數
//抽屜確定按鈕的回調
const handler = async () => {//職位(角色)的IDconst roleId = RoleParams.id as number//選中節點的ID getCheckedKeys方法會得到show-checkbox為true選中的全部節點對象的id組成的數組//為什么是能收集到id 因為el-tree配置了node-key="id"屬性let arr = tree.value.getCheckedKeys()//半選的IDlet arr1 = tree.value.getHalfCheckedKeys()let permissionId = arr.concat(arr1)//下發權限let result: any = await reqSetPermisstion(roleId, permissionId)if (result.code == 200) {//抽屜關閉drawer.value = false//提示信息ElMessage({ type: 'success', message: '分配權限成功' })//頁面刷新window.location.reload()}
}