Skip to content
sidebar.component.ts 2.47 KiB
Newer Older
wangqinghua's avatar
wangqinghua committed
import {Component, ElementRef, OnInit, ViewChild} from '@angular/core';
wangqinghua's avatar
wangqinghua committed
import {Router} from '@angular/router';
import {Http} from '@angular/http';
import {LayoutService} from '../layout.service';
import {LocalStorageService, SessionStorageService} from 'ngx-webstorage';
wangqinghua's avatar
wangqinghua committed
import {CommonService} from '../../shared/common/common.service';
wangqinghua's avatar
wangqinghua committed
import {OverAllService} from '../../overAll/overAll.service';
wangqinghua's avatar
wangqinghua committed
import {timer} from 'rxjs/observable/timer';
import {AppService} from '../../app.service';
wangqinghua's avatar
wangqinghua committed

@Component({
wangqinghua's avatar
wangqinghua committed
    selector: 'jhi-sidebar',
    templateUrl: './sidebar.component.html',
wangqinghua's avatar
wangqinghua committed
    styleUrls: ['./sidebar.component.css']
wangqinghua's avatar
wangqinghua committed
})
export class SidebarComponent implements OnInit {
wangqinghua's avatar
wangqinghua committed
    @ViewChild('slideUL') slideUL: ElementRef;
wangqinghua's avatar
wangqinghua committed
    token: boolean;
wangqinghua's avatar
wangqinghua committed
    menuList = [];
wangqinghua's avatar
wangqinghua committed
    systemName;
wangqinghua's avatar
wangqinghua committed
    isCollapsed;
wangqinghua's avatar
wangqinghua committed
    resource;  //来源
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    constructor(public router: Router, private http: Http,
                public layoutSer: LayoutService,
wangqinghua's avatar
wangqinghua committed
                public commonSer: CommonService,
wangqinghua's avatar
wangqinghua committed
                private overAll: OverAllService,
wangqinghua's avatar
wangqinghua committed
                private $localStorage: LocalStorageService,
wangqinghua's avatar
wangqinghua committed
                private appSer: AppService) {
wangqinghua's avatar
wangqinghua committed
    }

    ngOnInit() {
wangqinghua's avatar
wangqinghua committed
        this.getMenu();
wangqinghua's avatar
wangqinghua committed
        this.overAll.getSystem().subscribe(
wangqinghua's avatar
wangqinghua committed
            (res) => {
wangqinghua's avatar
wangqinghua committed
                this.systemName = res.main.name;
            }
wangqinghua's avatar
wangqinghua committed
        );
wangqinghua's avatar
wangqinghua committed
        this.appSer.Collapse.subscribe(value => {
            this.isCollapsed = value;
wangqinghua's avatar
wangqinghua committed
        });
wangqinghua's avatar
wangqinghua committed
        // this.menuList = this.commonSer.listToTree('id', 'parentId', this.menuList);
wangqinghua's avatar
wangqinghua committed
    }

    getMenu() {
        this.layoutSer.getMenu().subscribe(
            (res) => {
                if (res.errCode == 10000) {
wangqinghua's avatar
wangqinghua committed
                    this.menuList = this.commonSer.listToTree('id', 'parentId', res.data);
wangqinghua's avatar
wangqinghua committed
                }
            }
        );
    }
wangqinghua's avatar
wangqinghua committed

    //简单使用
    openHandler(value: string): void {
wangqinghua's avatar
wangqinghua committed
        for (let key in this.menuList) {
wangqinghua's avatar
wangqinghua committed
            if (key !== value) {
wangqinghua's avatar
wangqinghua committed
                this.menuList[key].checked = false;
wangqinghua's avatar
wangqinghua committed
            }
        }
    }

wangqinghua's avatar
wangqinghua committed
    toggle() {
        timer(100).subscribe(e => {
            console.log(this.slideUL.nativeElement.clientHeight);
            this.appSer.setContentHeight(this.slideUL.nativeElement.clientHeight);
        });
    }

wangqinghua's avatar
wangqinghua committed
    goTo(route) {
wangqinghua's avatar
wangqinghua committed
        this.router.navigate([route]);
    }
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    goToRoute(node) {
        this.$localStorage.store('moduleId', node.id);
wangqinghua's avatar
wangqinghua committed
        if (node.url.includes('http')) {
            window.open(node.url);
wangqinghua's avatar
wangqinghua committed
        } else {
wangqinghua's avatar
wangqinghua committed
            this.router.navigate([`app/main/${node.url}`]);
wangqinghua's avatar
wangqinghua committed
        }
wangqinghua's avatar
wangqinghua committed
    }
wangqinghua's avatar
wangqinghua committed
}