12345678910111213141516171819202122232425262728293031323334353637383940 |
- let dom = null
- async function asyncConstructor (Vue, comp) {
- if (!comp) {
- let component = await import('./index.vue')
- comp = Vue.extend(component.default)
- return comp
- }
- return comp
- }
- let imgPreview = {}
- imgPreview.install = function (Vue) {
- let instance
- Vue.prototype.$showImgPreview = async (imgUrl) => {
- let Constructor = await asyncConstructor(Vue, dom)
- if (instance) {
- document.body.removeChild(instance.$el)
- instance = null
- }
- instance = new Constructor({
- el: document.createElement('div'),
- data () {
- return {
- visible: true,
- imgUrl
- }
- }
- })
- document.body.appendChild(instance.$el)
- }
- }
- export default imgPreview
|