import {Component, OnInit, EventEmitter, Output} from '@angular/core';
import {SystemService} from '../../system.service';
import {NzMessageService} from 'ng-zorro-antd';
import {SidebarComponent} from '../../../layouts';

@Component({
    selector: 'smart-separation',
    templateUrl: './separation.component.html',
    styles: []
})
export class SeparationComponent implements OnInit {
    @Output() done = new EventEmitter<any>();

    isVisible = false;
    isDisabled = false;
    title;
    list = [];
    value = 0;
    first = {
        id: '',
        scValue: null,
        check: null
    };
    second = {
        id: '',
        scValue: null,
        check: null,
        comment: '',
    };
    third = {
        id: '',
        scValue: null,
        check: null,
        comment: '',
    };

    constructor(private systemSer: SystemService, private message: NzMessageService,
    ) {
    }

    ngOnInit() {
    }

    //查询三员分立
    separationPowerStatus() {
        this.systemSer.getSeparationConfig().subscribe(
            (res) => {
                if (res.errCode == 10000) {
                    this.first = res.data[0];
                    this.second = res.data[1];
                    this.third = res.data[2];
                    this.first.check = this.first.scValue == 1 ? true : false;
                    this.second.check = this.second.scValue == 1 ? true : false;
                    this.third.check = this.third.scValue == 1 ? true : false;
                }
            }
        );
    }

    showModal(title) {
        this.title = title;
        this.isVisible = true;
        this.separationPowerStatus();
    }

    handleCancel() {
        this.isVisible = false;
    }

    changeValue(type) {
        switch (type) {
            case '1': {
                if (this.first.check) {
                    this.systemSer.separationConfigOpen().subscribe(
                        (res) => {
                            if (res.data == 1) {
                                this.message.success('已开启三员分立功能');
                            }
                            this.separationPowerStatus();
                        }
                    );
                } else {
                    this.systemSer.separationConfigClose().subscribe(
                        (res) => {
                            if (res.data == 1) {
                                this.message.success('已关闭三员分立功能');
                            }
                            this.separationPowerStatus();
                        }
                    );
                }
                break;
            }
            case '3': {
                if (this.third.check) {
                    this.systemSer.openSystem().subscribe(
                        (res) => {
                            if (res.data == 1) {
                                this.message.success('已开启组织用户管理');
                            }
                            this.separationPowerStatus();
                        }
                    );
                } else {
                    this.systemSer.closeSystem().subscribe(
                        (res) => {
                            if (res.data == 1) {
                                this.message.success('已关闭组织用户管理');
                            }
                            this.separationPowerStatus();
                        }
                    );
                }
                break;
            }
            case '2': {
                if (this.second.check) {
                    this.systemSer.openAuth().subscribe(
                        (res) => {
                            if (res.data == 1) {
                                this.message.success('已开启角色与权限');
                            }
                            this.separationPowerStatus();
                        }
                    );
                } else {
                    this.systemSer.closeAuth().subscribe(
                        (res) => {
                            if (res.data == 1) {
                                this.message.success('已关闭角色与权限');
                            }
                            this.separationPowerStatus();
                        }
                    );
                }
                break;
            }
        }
        this.done.emit();
    }

    //保存
    handleOk() {
        let arr = [];
        arr.push(this.first);
        arr = arr.concat(this.list);
        let arr1 = arr.map(res => {
            const data = {
                id: res.id,
                scValue: null,
            };
            if (res.check) {
                data.scValue = 0;
            } else {
                data.scValue = 1;
            }
            return data;
        });
        this.systemSer.updateValue(arr1).subscribe(
            (res) => {
                if (res.errCode == 10000) {
                    if (this.first.check) {
                        this.message.success('已开启三员分立功能');
                    } else {
                        this.message.success('已关闭三员分立功能');
                    }
                    this.isVisible = false;
                }
            }
        );

    }

}
