element - ui default - checked - keys 는 노드 아래 의 모든 하위 노드 를 해결 방법 으로 선택 합 니 다.
<el-tree
class="filter-tree"
:data="permissionData"
:props="props"
node-key="id"
ref="treeForm"
show-checkbox
:default-checked-keys="this.savedPermissionIds"
:default-expanded-keys="this.savedPermissionIds"
@check="getCheckedNodes"
>el-tree>
showDialog(id) {
this.isShowPermissionTree = true;
this.roleId = id;
this.savedPermissionIds = [];
this.getPermissionTree();
},
// id
getCheckedNodes() {
// let selectedPermission = this.$refs.treeForm.getCheckedNodes(false, true); //(leafOnly, includeHalfChecked) boolean ,1. , false 2. , false
// this.permissionIds = selectedPermission.map(item => {
// return item.id;
// });
let parentArr = this.$refs.treeForm.getHalfCheckedKeys();
let childeArr = this.$refs.treeForm.getCheckedKeys();
let arr = childeArr.concat(parentArr);
this.permissionIds = arr;
},
//
cancel() {
this.isShowPermissionTree = false;
this.savedPermissionIds = [];
this.getPermissionTree();
},
//
getPermissionTree() {
menulistByPid({ flag: 1 }).then(res => {
this.permissionData = res.body;
// id
getPermissionIds({ roleId: this.roleId }).then(res => {
this.savedPermissionIds = res.body;
let newArr = [];
let item = "";
if (this.savedPermissionIds && this.savedPermissionIds.length !== 0) {
this.savedPermissionIds.forEach(item => {
this.checked(item, this.permissionData, newArr);
});
this.savedPermissionIds = newArr;
// console.log("this.savedPermissionIds111", this.savedPermissionIds);
}
});
});
},
checked(id, data, newArr) {
data.forEach(item => {
if (item.id == id) {
if (item.items && item.items.length == 0) {
newArr.push(item.id);
}
} else {
if (item.items != null && item.items.length != 0) {
this.checked(id, item.items, newArr);
}
}
});
// console.log("newArr", newArr);
},
다음으로 전송:https://www.cnblogs.com/Byme/p/11551504.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Angular vs Svelte - 카드 구성요소이전 게시물 중 일부를 확인하면 최근에 Svelte 및 Sapper로 몇 가지 실험을 하고 있음을 알 수 있습니다. 몇 년 동안 Angular로 작업했고 지금은 Svelte를 배우고 있기 때문에 일부 구성 요소를 A...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.