写插件很简单,满足两个条件即可,一、基本的逻辑思路,二、熟悉插件语法要求。本次Vue插件也比较简单,点击“查看图片”用轮播的方式限制用户上传的图片,如图:

项目采用的是vue-element-admin

在‘src/components’下新建‘imgPreview’文件夹,然后在该文件夹下新建‘ImgPreview.vue’,‘index.js’两个文件,代码如下:

ImgPreivew.vue

<template>
<el-dialog
:visible.sync="isShowImageDialog"
@closed="clearImg"
>
<el-carousel indicator-position="outside" height="600px">
<el-carousel-item v-for="src in imgs">
<img :src="src" style="max-width: 100%;max-height: 100%;display: block; margin: 0 auto;"/>
</el-carousel-item>
</el-carousel>
</el-dialog>
</template> <script>
export default {
name: 'ImgPreview',
data() {
return {
imgs: '',
isShowImageDialog: false
}
},
methods: {
clearImg() {
this.imgs = null
}
}
}
</script> <style scoped> </style>

  

index.js

import ImgPreviewComponent from './ImgPreview'

const ImgPreview = {}

ImgPreview.install = Vue => {
const ImgConstructor = Vue.extend(ImgPreviewComponent) const instance = new ImgConstructor() instance.$mount(document.createElement('div')) document.body.appendChild(instance.$el) Vue.prototype.$imgPreview = (e) => {
instance.target = e.currentTarget
instance.imgs = instance.target.getAttribute('data-img').split(',')
instance.isShowImageDialog = true
}
} export default ImgPreview

  

应用也很简单:

main.js

import imgPreview from '@/components/imgPreview'

Vue.use(imgPreview)

  

comments.vue页面调用

<el-table-column
label="评论内容"
header-align="center"
>
<template slot-scope="scope">
<div v-html="scope.row.content"></div>
<el-button v-if="scope.row.images.length>0" :data-img="scope.row.images" type="text" size="small" @click="$imgPreview">查看图片</el-button>
</template>
</el-table-column>

  

整个插件原理也很简单:所有的数据都放在data-img上,插件获取其中的数据,然后通过element ui的el-carousel组件轮播显示

原文地址:http://www.ftc20.com/wordpress/2019/04/base-element-ui-plugin/

最新文章

  1. js中apply()和call()方法的使用
  2. 中文Locale
  3. [BCB] C++ BUILDER 绘图 随机生成图形
  4. 序列最小最优化算法(SMO)-SVM的求解(续)
  5. Django RedirectView
  6. How to Take Control of Your Line Height in Outlook.com
  7. Tabs - 标签页
  8. python函数基础
  9. [Android Pro] CountDownTimer倒计时
  10. 简单几何(凸包) POJ 1696 Space Ant
  11. iOS之Photos:访问某个相册通过collectionView显示
  12. hdu4639 hehe ——斐波纳契数列,找规律
  13. jQuery之渐变切换
  14. jquery mini ui 学习
  15. 使用 javascript 来实现 观察者模式
  16. Python中append()与extend()的区别
  17. 0x16 Tire之最大的异或对
  18. 转载 1-EasyNetQ介绍(黄亮翻译) https://www.cnblogs.com/HuangLiang/p/7105659.html
  19. 升级到 Android Studio 3.0 + Gradle 4.1 遇到的一些坑及解决方案
  20. [转] 又踩到了crontab的老坑,特意记录下。

热门文章

  1. C++ 补课 (三)
  2. 搭建Disuz论坛社区
  3. spring三大框架整合
  4. fg、bg、jobs、&amp;、 ctrl+z---系统任务
  5. 【Educational Codeforces Round 36 B】Browser
  6. FZU 1608 Huge Mission
  7. java语言建立顺序表
  8. pytest_多用例执行(1)
  9. windows程序生成目标平台与CLR运行执行过程
  10. Method for address space layout randomization in execute-in-place code