import {Component, EventEmitter, OnInit, Output} from '@angular/core';
import {FormBuilder, FormGroup, Validators} from '@angular/forms';
import {WorkService} from '../../work.service';
import {NzMessageService} from 'ng-zorro-antd';
import {DatePipe} from '@angular/common';

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

    isVisible = false;
    title;
    parentId;
    validateForm:FormGroup;

    parentTypeList;
    typeList;

    invertoryId     //资产Id

    constructor(private workSer:WorkService,private fb:FormBuilder,private datePipe:DatePipe,
                private message:NzMessageService) {
    }

    ngOnInit() {
        this.initForm();
    }

    initForm(){
        this.validateForm = this.fb.group({
            serialnoA:[null],
            invertoryname:[null],
            name:[null,[Validators.required]],
            hostid:[null],
            person:[null],
            ip:[null],
            equipmentTypeid:[null],
            inventorycount:[null],
            secondlevelTypeid:[null],
            stock:[null],
            usedcount:[null],
            lendcount:[null],
            mac:[null],
            repaircount:[null],
            maintenanceExpiration:[null],
            scrapcount:[null],
            storageLocation:[null],
            groupid:[null],
            inventoryTypeid:[null,[Validators.required]],
        });
    }

    //父级分类
    getParentType(){
        this.workSer.findByParentType().subscribe(
            (res)=>{
                const data = res.data;
                this.parentTypeList = data;
            }
        )
    }
    //通过父级分类查询子级分类
    getTypeByParent(parentid){
        this.workSer.findByParentidCount(parentid).subscribe(
            (res)=>{
                const data = res.data;
                this.typeList = data;
            }
        )
    }

    showAddModal(title) {
        this.title = title;
        this.isVisible = true;
        this.getParentType();
    }

    showEditModal(title,id) {
        this.title = title;
        this.invertoryId = id;
        this.isVisible = true;
        this.getParentType();
        this.workSer.selectByPrimaryKey(this.invertoryId).subscribe(
            (res)=>{
                this.validateForm.patchValue( res.data );
            }
        )
    }

    handEditleOk() {
        for(let i in this.validateForm.controls){
            this.validateForm.controls[i].markAsDirty();
            this.validateForm.controls[i].updateValueAndValidity();
        }
        if(this.validateForm.invalid){
            return false;
        }
        if(this.title == "添加资产"){
            this.create();
        }
        if(this.title == "编辑资产"){
            this.update();
        }
    }

    create(){
        this.workSer.createInventory(this.validateForm.value).subscribe(
            (res)=>{
                if(res.errCode == 10000){
                    this.message.success("添加资产成功");
                    this.isVisible = false;
                    this.done.emit();
                }else{
                    this.message.error(res.errMsg);
                }
            }
        )
    }

    update(){
        this.validateForm.value.id = this.invertoryId;
        this.validateForm.value.maintenanceExpiration = this.datePipe.transform(this.validateForm.value.maintenanceExpiration,"yyyy-MM-dd HH:mm:ss");
        this.workSer.updateInventory(this.validateForm.value).subscribe(
            (res)=>{
                if(res.errCode == 10000){
                    this.message.success("编辑资产成功");
                    this.isVisible = false;
                    this.done.emit();
                }else{
                    this.message.error(res.errMsg);
                }
            }
        )
    }

    handleEditCancel() {
        this.isVisible = false;
    }

}
