22 lines
692 B
JavaScript
22 lines
692 B
JavaScript
import Vue from "vue";
|
|
import Preview from "./index.vue";
|
|
|
|
const PreviewConstructor = Vue.extend(Preview);
|
|
|
|
const preview = options => {
|
|
const { path, type, title } = options;
|
|
if (!path) throw `path is requred.but ${path}`
|
|
const id = `Preview_${new Date().getTime()}`;
|
|
const instance = new PreviewConstructor();
|
|
instance.id = id;
|
|
instance.vm = instance.$mount();
|
|
if (instance.vm.visible) return;
|
|
document.body.appendChild(instance.vm.$el);
|
|
instance.vm.open(path, type, title);
|
|
instance.vm.$on("closed", () => {
|
|
document.body.removeChild(instance.vm.$el);
|
|
instance.vm.$destroy();
|
|
});
|
|
return instance.vm;
|
|
}
|
|
export default preview; |