sohelp-ele
Version:
SohelpEle Library
67 lines (66 loc) • 1.59 kB
JavaScript
"use strict";
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
function createIframeComponent(name, url, mixins) {
return {
name,
mixins,
data() {
return {
iframeEl: null
};
},
render(h) {
if (this.keepAlive || this.iframeEl) {
return h("div", { style: { display: "none" } });
}
return h("iframe", {
attrs: { src: url },
class: "ele-admin-iframe"
});
},
mounted() {
if (this.keepAlive) {
this.createIframe();
}
},
methods: {
createIframe() {
var _a;
const el = document.createElement("iframe");
el.classList.add("ele-admin-iframe");
el.src = url;
const parentNode = (_a = this.$el) == null ? void 0 : _a.parentNode;
if (parentNode) {
parentNode.insertBefore(el, this.$el);
this.iframeEl = el;
}
}
},
deactivated() {
if (this.iframeEl) {
this.iframeEl.style.display = "none";
}
},
activated() {
if (this.iframeEl) {
this.iframeEl.style.display = "";
}
},
beforeDestroy() {
if (this.iframeEl) {
this.iframeEl.parentNode.removeChild(this.iframeEl);
this.iframeEl = null;
}
},
watch: {
keepAlive(keepAlive) {
if (keepAlive && !this.iframeEl) {
this.$nextTick(() => {
this.createIframe();
});
}
}
}
};
}
exports.createIframeComponent = createIframeComponent;