Skip to content
navbar.component.ts 4.35 KiB
Newer Older
wangqinghua's avatar
wangqinghua committed
import {AfterViewChecked, Component, ElementRef, OnChanges, OnInit, ViewChild} from '@angular/core';
wangqinghua's avatar
wangqinghua committed
import {Router} from '@angular/router';
import {NgbModalRef} from '@ng-bootstrap/ng-bootstrap';
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
import {ProfileService} from '../profiles/profile.service';
import {Principal, LoginService} from '../../shared';
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
import {ThemeList, VERSION} from '../../app.constants';
wangqinghua's avatar
wangqinghua committed
import {LocalStorageService} from 'ngx-webstorage';
wangqinghua's avatar
wangqinghua committed
import {SeparationComponent} from '../../system/modal/separation/separation.component';
wangqinghua's avatar
wangqinghua committed
import {BasicEditComponent} from '../../modal/basic-edit/basic-edit.component';
import {CreateGroupComponent} from '../../modal/create-group/create-group.component';
wangqinghua's avatar
wangqinghua committed
import {ModifyPasswordComponent} from '../../modal/modify-password/modify-password.component';
wangqinghua's avatar
wangqinghua committed
import {SystemService} from '../../system/system.service';
wangqinghua's avatar
wangqinghua committed
import {AppService} from '../../app.service';
wangqinghua's avatar
wangqinghua committed
import {OverAllService} from '../../overAll/overAll.service';
import {CommonService} from '../../shared/common/common.service';
wangqinghua's avatar
wangqinghua committed

@Component({
    selector: 'jhi-navbar',
    templateUrl: './navbar.component.html',
    styleUrls: [
        'navbar.css'
    ]
})
wangqinghua's avatar
wangqinghua committed
export class NavbarComponent implements OnInit, AfterViewChecked {
    @ViewChild('parent') parent: ElementRef;
    @ViewChild('children') children: ElementRef;
    @ViewChild('smartSeparation') smartSeparation: SeparationComponent;
    @ViewChild('basicEdit') basicEdit: BasicEditComponent;
    @ViewChild('smartCreateGroup') smartCreateGroup: CreateGroupComponent;
    @ViewChild('smartModifyPassword') smartModifyPassword: ModifyPasswordComponent;
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    inProduction: boolean;
    isNavbarCollapsed: boolean;
    languages: any[];
    swaggerEnabled: boolean;
    modalRef: NgbModalRef;
    version: string;
    token: boolean;
wangqinghua's avatar
wangqinghua committed
    roleType;
wangqinghua's avatar
wangqinghua committed

    isBool = false;
wangqinghua's avatar
wangqinghua committed
    user;
wangqinghua's avatar
wangqinghua committed

    theme;
wangqinghua's avatar
wangqinghua committed
    themeLabel = '白色主题';
wangqinghua's avatar
wangqinghua committed
    themeList = ThemeList;
wangqinghua's avatar
wangqinghua committed
    constructor(
        private loginService: LoginService,
        private principal: Principal,
wangqinghua's avatar
wangqinghua committed
        private profileService: ProfileService,
wangqinghua's avatar
wangqinghua committed
        private router: Router,
        private commonSer: CommonService,
        private overAll: OverAllService,
wangqinghua's avatar
wangqinghua committed
        private appSer: AppService,
        private $localStorage: LocalStorageService,
        private systemSer: SystemService,
wangqinghua's avatar
wangqinghua committed
    ) {
        this.version = VERSION ? 'v' + VERSION : '';
        this.isNavbarCollapsed = true;
    }

    ngOnInit() {
wangqinghua's avatar
wangqinghua committed
        this.user = this.$localStorage.retrieve('userInfo');
wangqinghua's avatar
wangqinghua committed
        this.getCurrentRole();
wangqinghua's avatar
wangqinghua committed
        this.appSer.theme.subscribe(value => {
wangqinghua's avatar
wangqinghua committed
            this.theme = value;
wangqinghua's avatar
wangqinghua committed
        });
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    /**
     * 获取当前登录人角色
     * 1.系统管理员 2.安全管理员 3。二者都有
     */
wangqinghua's avatar
wangqinghua committed
    getCurrentRole() {
wangqinghua's avatar
wangqinghua committed
        this.systemSer.checkRole().subscribe(
wangqinghua's avatar
wangqinghua committed
            (res) => {
wangqinghua's avatar
wangqinghua committed
                this.roleType = res.data;
            }
wangqinghua's avatar
wangqinghua committed
        );
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    ngAfterViewChecked() {
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    collapseNavbar() {
        this.isNavbarCollapsed = true;
    }

    isAuthenticated() {
        return this.principal.isAuthenticated();
    }

    logout() {
        this.commonSer.confirmThing('退出', '确定退出?', () => {
            this.collapseNavbar();
            this.loginService.logout();
        });
wangqinghua's avatar
wangqinghua committed
    }

    toggleNavbar() {
        this.isNavbarCollapsed = !this.isNavbarCollapsed;
    }

    getImageUrl() {
        return this.isAuthenticated() ? this.principal.getImageUrl() : null;
    }
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    transition() {
        if (!this.isBool) {
wangqinghua's avatar
wangqinghua committed
            this.children.nativeElement.style.marginLeft = '0px';
            this.isBool = true;
wangqinghua's avatar
wangqinghua committed
        } else {
            this.children.nativeElement.style.marginLeft = '-300px';
wangqinghua's avatar
wangqinghua committed
            this.isBool = false;
        }
    }
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    //修改密码
wangqinghua's avatar
wangqinghua committed
    showPasswordModal() {
wangqinghua's avatar
wangqinghua committed
        this.smartModifyPassword.showModal();
    }

wangqinghua's avatar
wangqinghua committed
    //三员分立
wangqinghua's avatar
wangqinghua committed
    showSeparationModal() {
        this.smartSeparation.showModal('三员分立');
wangqinghua's avatar
wangqinghua committed
    }
wangqinghua's avatar
wangqinghua committed

    //添加资源  ,name-分组名称,id-分组id
    showBasicEditModal() {
        this.basicEdit.showModal();
    }

    //添加分组
    showGroupModal() {
        this.smartCreateGroup.showModal('添加分组');
    }
wangqinghua's avatar
wangqinghua committed

    //切换主题
wangqinghua's avatar
wangqinghua committed
    changeTheme(item) {
        this.themeLabel = item.label;
        this.appSer.setTheme(item.value);
wangqinghua's avatar
wangqinghua committed
    }
wangqinghua's avatar
wangqinghua committed

    //跳转3D模型
    openMonirot() {
wangqinghua's avatar
wangqinghua committed
        this.overAll.getSystem().subscribe(
            (res) => {
wangqinghua's avatar
wangqinghua committed
                window.open(res.main.monitor);
            }
wangqinghua's avatar
wangqinghua committed
    }
wangqinghua's avatar
wangqinghua committed
}