import { Widget } from "./Widget";
import { Http } from "../Http";
import { PrintObject } from "../models/PrintObject";
import { AstHelper } from "@gvol-org/geovis-brain-core";
/**
* @class ui.Img
* @since ui
*/
export class Img extends Widget {
url: string;
/**
* @hideconstructor
* @param {string|object} [url] 图片url
* @param {object} [style] 样式
* @return ui.Img
*/
constructor(
url: string | object,
style?: object
) {
let div = document.createElement('div');
super(div, style);
if (!(this instanceof Img)) {
return new Img(url, style);
}
if (url instanceof PrintObject) {
if(url["order"]){
url['chain'] = AstHelper.relativeChain(url["order"]);
}
let loading = this.getLoading();
div.appendChild(loading);
// let codeContent = "print(" + url['expressions'] + ");";
// this.execute(() => Http.getPrintRequest(codeContent).then(response => {
this.execute(() => Http.getPrintRequest(url["chain"]).then(response => {
console.log("img参数", response);
Http.responseSubject$.next(null);
let img = document.createElement("img");
img.title = "双击图片可以放大显示";
img.style.width = '100%';
img.style.height = '100%';
if (response && response.data.status == 'success') {
let res = response.data.detail;
if (res) {
if (res.data) {
img.src = res.data.indexOf('data:') > -1 ? res.data : "data:image/png;base64," + res.data;
}
else {
img.src = res.url;
}
this.url = img.src;
}
}
div.removeChild(loading);
div.appendChild(img);
}));
} else {
let img = document.createElement("img");
img.title = "双击图片可以放大显示";
img.style.width = '100%';
img.style.height = '100%';
img.src = url as string;
this.url = img.src;
div.appendChild(img);
}
}
/**
* 返回图片地址
* @return {string} String
*/
getUrl() {
return this.url;
}
/**
* 设置图片地址
* @param {string} url 图片地址
* @return ui.Img
*/
setUrl(url: string) {
this.url = url;
return this;
}
getType(): string {
return 'Img';
}
}