Elementui中 文件缩略图 组件,选中图片如何删除

 如图所示,下方handleRemove的方法就是删除绑定的点击事件

elementui中的 文件缩略图 部分,删除功能的实现没有写出来,下方补充:

首先你需要给上传图片的组件加个名字,ref=" xxxx "

<!-- 上传图片的组件 -->
<el-upload action="#" list-type="picture-card" :auto-upload="false" style="z-index:10"
                        ref="pictureUpload">
    <i slot="default" class="el-icon-plus"></i>
        <div slot="file" slot-scope="{file}">
            <img class="el-upload-list__item-thumbnail" :src="file.url" alt="">
                <span class="el-upload-list__item-actions">
                <span class="el-upload-list__item-preview" @click.stop="handlePictureCardPreview(file)">
                    <i class="el-icon-zoom-in"></i>
                </span>
                <span v-if="!disabled" class="el-upload-list__item-delete"
                                    @click.stop="handleDownload(file)">
                    <i class="el-icon-download"></i>
                </span>
            <span v-if="!disabled" class="el-upload-list__item-delete"         @click.stop="handleRemove(file)">
                <i class="el-icon-delete"></i>
            </span>
        </span>
    </div>
</el-upload>

 js逻辑部分:

	// 2、下载
	handleDownload(file) {
        window.open(file.url)
	},
	// 3、删除--根据 url 的不同进行匹配删除
	handleRemove(file) {
        let uploadFiles = this.$refs.pictureUpload.uploadFiles
        for (var i = 0; i < uploadFiles.length; i++) {
          if (uploadFiles[i]['url'] == file.url) {
            uploadFiles.splice(i, 1)
          }
        }
	},
	// 点击文件列表中已上传的文件时的钩子
	handlePictureCardPreview(file) {
        this.dialogImageUrl = file.url
        this.dialogVisible = true
	},

 

  • 21
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Element UI 是一套基于 Vue.js 的桌面端组件库,它提供了丰富的组件和工具,帮助开发者快速构建用户界面。在 Element UI ,没有提供特定的文件略图组件,但你可以使用 Element UI 提供的其他组件来实现文件略图的效果。 一种常见的实现方式是使用 `el-upload` 组件来上传文件,并结合 `el-image` 组件显示略图。你可以通过设置 `el-upload` 组件的 `list-type` 属性为 `"picture-card"`,这样用户选择文件时会以卡片形式展示文件略图,并且可以通过 `el-image` 组件的 `src` 属性来动态显示上传的图片。 以下是一个简单的示例代码: ```html <template> <div> <el-upload class="upload-demo" action="/upload" list-type="picture-card" :on-success="handleUploadSuccess" > <i class="el-icon-plus"></i> </el-upload> <el-image v-if="thumbnailUrl" :src="thumbnailUrl" style="width: 100px; height: 100px; margin-top: 10px;" ></el-image> </div> </template> <script> export default { data() { return { thumbnailUrl: '', }; }, methods: { handleUploadSuccess(response) { // 从服务器返回的响应获取略图的 URL this.thumbnailUrl = response.url; }, }, }; </script> <style scoped> .upload-demo { display: inline-block; width: 100px; height: 100px; border: 1px dashed #ccc; border-radius: 6px; cursor: pointer; position: relative; overflow: hidden; } .upload-demo i { font-size: 28px; color: #8c939d; display: block; margin-top: 32px; } .upload-demo:hover { border-color: #409eff; } </style> ``` 请注意,上述代码的 `action` 属性需要根据你的实际需求设置为上传文件的接口地址。此外,你还需要根据实际情况调整样式以适应你的项目。 希望以上内容能对你有所帮助!如有任何问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值