element-ui的樹型結構圖,半選狀態數據給后台后,返回數據帶有半選父節點的剔除展示


// html
<h2 class="text-gray">功能權限</h2>
<el-tree
:data="permissionList"
:props="defaultProps"
show-checkbox
node-key="permissionId"
default-expand-all
ref="tree_permissions"
@check="change_permission"
v-if="current_roleId"
></el-tree>


//js 只展示返回數據到渲染的半選數據的父節點的剔除

async find_function_permission_by_roleId(){ this.isLoading = true; try { const res = await this.$http.get("scPermission/findScPermissionByRoleId/" + this.current_roleId); this.selectedPermissionsIds = res.data.data; // 將只有部分選擇子節點的父節點剔除 let arr =[]; let arrLength = 0; arr = this.selectedPermissionsIds; arrLength = arr.length; let array:any = []; function fun(value:any,data:any,arr:any) { for( let i = 0;i < data.length;i++){ let mod = data[i]; if(mod.permissionId == value) { if(mod.children.length == 0){ arr.push(mod.permissionId); return true } return true }else { if(mod.children.length != 0) { fun(value, mod.children, arr); } } } return true } for(let n = 0;n < arrLength;n++) { fun(arr[n],this.permissionList,array); } this.selectedPermissionsIds = array; let tree_permissions = this.$refs.tree_permissions as Tree; tree_permissions.setCheckedKeys(this.selectedPermissionsIds); // 數據加載完之后,修改成行內樣式 setTimeout(()=>{ this.$nextTick(()=>{ this.treeChildInline(); }); },50); } catch (e) { this.$httpErrorHandle(this, e); }finally { this.isLoading = false; } },

  


免責聲明!

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



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