import {Component} from '@angular/core';
import {IonicPage, NavController, NavParams} from 'ionic-angular';
import {Response} from '@angular/http';
import {AppGlobal, AppService} from '../../../service/http.service';
import { Storage } from "@ionic/storage";
import {ContactListPage} from '../contactList/contactList';
import {MyBlockPage} from "../my-block/my-block";

@IonicPage()
@Component({
    selector: 'page-contract-personinfo',
    templateUrl: 'contract-personinfo.html',
})
export class ContractPersoninfoPage {

    contactPersonInfo = {
        gender: '',
        telephone: '',
        email: '',
        abbreviation: ''
    };
    id;
    picture: string = AppGlobal.picture;

    user;  //登录人信息
    orgName;   //登录人部门

    edit = false;
    email;
    abbreviation;
    telephone;
    isContact;

    role;   //权限
    nowOrgName;

    constructor(public navCtrl: NavController,
                public navParams: NavParams,
                public appService: AppService,
                public storage: Storage) {
    }

    ionViewDidEnter() {
        this.id = this.navParams.get("id");
        this.getPersonInfo();
        this.getRole();
        this.user = this.storage.get("user").then((value) => {
            this.user = value;
            this.getOrgName(this.user.id, result => {
                let data = result;
                this.orgName = data["orgName"];
            });
        });
    }

    //获取当前登录人部门
    getOrgName(id, callback?): any {
        this.appService.ObserverHttpPost("/wisdomgroup/app/getOrgName", {"userid": id})
            .toPromise()
            .then(res => {
                var data = res.json();
                callback(data == null ? "[]" : data);
            })
            .catch(error => {
            });
    }

    //获取权限
    getRole(){
        this.appService.ObserverHttpGet("/wisdomgroup/app/getRoles", null).subscribe((res: Response) => {
            this.role = res.json();
        }, error => {
            this.appService.alert('系统错误！');
        });
    }

    getPersonInfo() {
        const data = {
            'userId': this.id
        };
        this.appService.ObserverHttpGet("/wisdomgroup/modules/telpBookPerson", data)
            .subscribe((res: Response) => {
                    this.contactPersonInfo = res.json().data.user;
                    this.isContact = res.json().data.isContact;
                    this.nowOrgName = res.json().data.orgName;
                    this.email = this.contactPersonInfo.email;
                    this.abbreviation = this.contactPersonInfo.abbreviation;
                    this.telephone = this.contactPersonInfo.telephone;
                }, error => {
                }
            );
    }

    //添加常用联系人
    addcontactPersons() {
        const data = {
            'relUserId': this.id,
            'moduleName': 'appcontact'
        }
        this.appService.ObserverHttpPostOption("/wisdomgroup/app/contact/addGeneralContactPersons", data)
            .subscribe((res: Response) => {
                    let data = res.json();
                    if (data["result"] == '2') {
                        this.appService.popToastView('该联系人已在常用联系人中！', 'top', 2000);
                    } else if (data["result"] == '3') {
                        this.appService.popToastView('添加常用联系人失败！', 'top', 2000);
                    } else {
                        this.appService.popToastView('添加常用联系人成功！','middle',2000);
                        this.getPersonInfo();
                        // this.navCtrl.push("ContactListPage");
                    }
                    //this.navCtrl.pop();
                }, error => {
                }
            );
    }


    //移除常用联系人
    cancelGenaralPersons() {
        const data = {
            relUserId: this.id,
            moduleName: 'appcontact',
        };
        this.appService.ObserverHttpPost("/wisdomgroup/app/contact/deleteGeneralContactPersons", data)
            .subscribe((res: Response) => {
                    let data = res.json();
                    this.getPersonInfo();
                    this.appService.popToastView('移除常用联系人成功！', 'middle', 2000);
                }, error => {
                }
            );
    }

    call(number) {
        window.location.href = "tel:" + number;
    }

    editFun() {
        this.edit = true;
    }

    //跳转设置分组
    usualContactSet() {
        this.navCtrl.push('MyBlockPage', {'item': this.contactPersonInfo});
    }


    //取消编辑
    editCancel() {
        this.getPersonInfo();
        this.edit = false;
    }

    //完成
    editDone() {
        const data = {
            email: this.email,
            telephone: this.telephone,
            abbreviation: this.abbreviation
        };
        this.appService.ObserverHttpPut("/wisdomgroup/modules/telpBookPerson/", this.id, data)
            .subscribe((res: Response) => {
                    let data = res.json();
                    this.getPersonInfo();
                    this.edit = false;
                }, error => {
                }
            );
    }

}
