前言
随着版本的更新Element UI
新增了新的组件,例如大图预览组件:
但在浏览完相应文档后却发现,element-ui仅提供了 <el-image> 标签的点击预览。但如果遇到如下图所示的需求时,应该怎样处理呢?
使用方法
通过翻看Image组件源码,
发现大图预览是一个小组件el-image-viewer:
在打开看看el-image-viewer小组件源码的props,
发现如下:
yaml
props: {
urlList: {
type: Array,
default: () => []
},
zIndex: {
type: Number,
default: 2000
},
onSwitch: {
type: Function,
default: () => {}
},
onClose: {
type: Function,
default: () => {}
},
initialIndex: {
type: Number,
default: 0
}
}
从字面意思不难理解它绑定参数的含义,
urlList 绑定的文件列表
zIndex 查看器层级
onSwitch 图片切换事件
onClose 查看器关闭事件
initialIndex 初始化展示哪张图片
这里我们只需要使用到的就只有urlList 与onClose两个属性 ,一个用来放图片链接一个用来关闭查看器。
需要使用的属性我们知道了,然后我们就在代码里面引入image-viewer就可以直接使用。
xml
<template>
<div>
<el-button @click="onPreview">预览</el-button>
<el-image-viewer v-if="showViewer" :on-close="closeViewer" :url-list="[url]" />
</div>
</template>
<script>
// 导入组件
import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
export default {
name: 'Index',
components: { ElImageViewer },
data() {
return {
showViewer: false, // 显示查看器
url:'https://cube.elemecdn.com/6/94/4d3ea53c084bad6931a56d5158a48jpeg.jpeg'
}
},
methods: {
onPreview() {
this.showViewer = true
},
// 关闭查看器
closeViewer() {
this.showViewer = false
}
}
</script>
值得注意的是,如果el-image-viewer组件在el-dialog里面,el-dialog的层级是优先的,因此我们需要属性z-index去更改el-image-viewer组件样式的层级:
xml
<!-- 图片查看器 -->
<el-image-viewer v-if="showViewer" :on-close="closeViewer" :url-list="[url]" index="9999"/>