import { Component, OnInit } from '@angular/core'; import { Router } from '@angular/router'; @Component({ selector: 'app-sub-left-right-layout', templateUrl: './sub-left-right-layout.component.html', styleUrls: ['./sub-left-right-layout.component.scss'] }) export class SubLeftRightLayoutComponent implements OnInit { constructor( private router: Router ) { } menuDatas=[]; menu = []; ngOnInit() { this.menuDatas = [ {children: null,fatherId: 0,id: 1,isEnable: "1",menuName: "layer1",menuUrl: "layer1/layer1",remark: null,weight: 1}, {children: [ {children: null,fatherId: 2,id: 21,isEnable: "1",menuName: "左右布局",menuUrl: "layer2/left-right-layout",remark: null,weight: 1}, ], fatherId: 0,id: 2,isEnable: "1",menuName: "layer2",menuUrl: "layer2",remark: null,weight: 2} ]; this.menu = this.extractMenuTree(this.menuDatas); } //TODO 提取菜单树方法 extractMenuTree(data) { let treeNodes = []; for (const item of data) { let nodeData if (item.isEnable && item.isEnable === '1') { nodeData = { title: item.menuName, link: "", path: "/" + item.menuUrl, children: [] } if (item.children && item.children.length > 0) { nodeData.children = this.extractMenuTree(item.children) } treeNodes.push(nodeData) } } console.log("treeNodes", treeNodes); return treeNodes } // TODO 点击菜单 clickMenu(item) { event.stopPropagation(); if (item.children && item.children.length > 0) { return } else { this.router.navigate([item.path]); } } }