饿了么的图片预览插件直接使用指令方式调用

首先新建一个Preview的组件

<template>
  <el-image-viewer
    class="preview-img-component"
    v-if="showPreview"
    :urlList="previewImages"
    :on-close="closeViewer"
  ></el-image-viewer>
</template>

<script>
// 可自行去对应目录查看该组件
import ElImageViewer from 'element-ui/packages/image/src/image-viewer'

export default {
  data() {
    return {
      showPreview: false,
      previewImages: [],
    }
  },
  components: {
    ElImageViewer,
  },
  methods: {
    closeViewer() {
      this.showPreview = false
    },
  },
}
</script>

<style lang="scss" scoped>
.preview-img-component {
  z-index: 10000 !important;
  ::v-deep .el-icon-circle-close {
    color: #ffffff;
    font-weight: bold;
    box-shadow: 0 2px 6px rgba(#000, 0.5);
  }
}
</style>

然后在utils下新建preview.js

import PreviewItem from '../components/Preview.vue'

const Preview = {}

// 注册
Preview.install = function (Vue) {
  const PreviewConstructor = Vue.extend(PreviewItem)
  const instance = new PreviewConstructor()
  instance.$mount(document.createElement('div'))
  document.body.appendChild(instance.$el)

  /**
   * 挂载在vue原型上
   * @param {Array} imgs 需要预览的图片数组
   */
  Vue.prototype.$preview = function (imgs = []) {
    instance.showPreview = true
    instance.previewImages = imgs
  }
}

export default Preview

然后在main.js中引入使用

import Preview from './utils/preview'

Vue.use(Preview)

关于调用

this.$preview([图片1,图片2])
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容