import * as style from './style.scss'
const cornerIcon = require('@assets/lieguan/corner_icon.png'); 
const BMap = (window as any)['BMap']

interface memberObj {
    center:any,
    width: number,
    height:number,

    name: string,
    sex: string,
    age: number,
    attribute:  string,
    status: string,
    rotate: string,
    thumb:any
}

export default class SquareOverlay  extends BMap.Overlay{
    _center:any;
    _width:number;
    _height:number;

    _name:string;
    _sex:string;
    _age:string;
    _attribute:string;
    _status:string;
    _rotate: string;
    _thumb:any;

    _map:any;
    _div:any;
    constructor(memberObj:any){
        super()
        this._center = memberObj.center;
        this._width = memberObj.width;
        this._height = memberObj.height;

        this._name = memberObj.name;
        this._sex = memberObj.sex
        this._age = memberObj.age
        this._attribute = memberObj.attribute
        this._status = memberObj.status
        this._rotate = memberObj.rotate
        this._thumb = memberObj.thumb
    };

    initialize(map:any) {
        // 保存map对象实例
        this._map = map;
        // 创建div元素,作为自定义覆盖物的容器
        var layerDiv = document.createElement("div");
        layerDiv.className = style.layerItem
        layerDiv.style.width = this._width + 'px';
        layerDiv.style.height = this._height + 'px';
        layerDiv.style.transform = `scale(${this._rotate})`

        var bigHeadBgTag = document.createElement('img')
        // bigHeadBgTag.className = style.layerIcon
        bigHeadBgTag.src = this._thumb

        var cornerImgTag = document.createElement('img');
        // cornerImgTag.className = style.cornerImg
        cornerImgTag.src = cornerIcon


        var picDiv = document.createElement("div");
        picDiv.className = style.leftPic
        picDiv.appendChild(bigHeadBgTag)


        var cornerDiv = document.createElement("div");
        cornerDiv.className = style.cornerPic
        cornerDiv.appendChild(cornerImgTag)
        layerDiv.appendChild(cornerDiv)

        var tableDiv = document.createElement("div");
        tableDiv.className = style.rightTable

        var nameDiv = document.createElement("div");
        nameDiv.innerHTML = `姓名:${this._name}`

        var sexDiv = document.createElement("div");
        sexDiv.innerHTML = `性别:${this._sex}`

        var ageDiv = document.createElement("div");
        ageDiv.innerHTML = `年龄:${this._age}`

        var attributeDiv = document.createElement("div");
        attributeDiv.innerHTML = `属性:${this._attribute}`

        var statusDiv = document.createElement("div");
        statusDiv.innerHTML = `状态:${this._status}`

        tableDiv.appendChild(nameDiv)
        tableDiv.appendChild(sexDiv)
        tableDiv.appendChild(ageDiv)
        tableDiv.appendChild(attributeDiv)
        tableDiv.appendChild(statusDiv)
        
        // 将div添加到覆盖物容器中
        map.getPanes().markerPane.appendChild(layerDiv).appendChild(picDiv).appendChild(tableDiv);

        // 保存div实例
        this._div = layerDiv;
        // 需要将div元素作为方法的返回值,当调用该覆盖物的show、
        // hide方法,或者对覆盖物进行移除时,API都将操作此元素。
        return layerDiv;
    }

    draw() {
        // 根据地理坐标转换为像素坐标,并设置给容器    
        var position = this._map.pointToOverlayPixel(this._center);    
        this._div.style.left = position.x - this._width / 2 + "px";    
        this._div.style.top = position.y - this._height / 2 + "px";  
    }

    show() {
        if (this._div){    
            this._div.style.display = "";    
        }    
    }

    hide() {
        if (this._div){    
            this._div.style.display = "none";    
        }    

    }
    toggle() {    
        if (this._div){    
            if (this._div.style.display == ""){    
                this.hide();    
            }    
            else {    
                this.show();    
            }    
        }    

    }
}