在使用element-plus时,遇到一个需求:点击按钮触发图片预览,如果自己写麻烦,刚好el-image自带了图片预览功能。但是只能点击按钮触发,不能把图片缩略图展示出来。这里用el-link替代按钮:
<el-link type="primary" :underline="false" @click="viewImage(scope.row)">预览</el-link>
<el-image
style="width: 100px; height:100px;display: none;"
:src="scope.row.imgPath"
:zoom-rate="1.2"
:preview-teleported="true"
:preview-src-list="[scope.row.imgPath]"
:initial-index="1"
fit="cover"
:class="'imgView'+scope.row.id"
/>
注意:preview-teleported="true"必须要添加这个,否则的话当我们将el-image隐藏后,点击触发的放大预览也会消失。
点击事件:
function viewImage(row) {
document.querySelector('.imgView'+row.id).children[0].click()
}
就这么简单。如果点击无效,可以给点击事件里面加个setTimeout,如:
function viewImage(row) {
setTimeout(() => {
document.querySelector('.imgView'+row.id).children[0].click()
}, 0)
}