使用el-upload文件缩略图 删除指定图片

饿了吗ui的文档上面的删除只给了一个方法,没有具体的操作。
百度上的有些方法是只能删除全部图片

//获取上传组件的ref删掉他的全部数据
this.$refs.upload.clearFiles()

但是后面发现这样写不行,对用户太不友好了
所以后面又用这一种写法实现了指定删除
使用ref的uploadFiles 获取当前组件中的图片数据

 let arr = this.$refs.upload.uploadFiles

在通过indexOf来获取当前指定图片的索引值

let index = arr.indexOf(file)

最后通过splice删除

 console.log(index)
 arr.splice(index, 1)

主要的逻辑代码
js

   handleRemove(file) {
      //使用indexOf把点击的图片的索引位置找出来删掉
      let arr = this.$refs.upload.uploadFiles
      let index = arr.indexOf(file)
      console.log(index)
     arr.splice(index, 1)
    },

组件

   <el-upload
                action="#"
                list-type="picture-card"
                :on-change="handleChange"
                :before-upload="beforeAvatarUpload"
                :auto-upload="false"
                :file-list="fileList"
                ref="upload"
                :on-exceed="masterFileMax"
                :limit="limit"
              >
                <i slot="default" class="el-icon-plus"></i>
                <div slot="file" slot-scope="{ file }">
                  <!--显示上传图片 -->
                  <img class="el-upload-list__item-thumbnail img" :src="file.url" alt="" />
                  <span class="el-upload-list__item-actions">
                    <span v-if="!disabled" class="el-upload-list__item-delete" @click="handleRemove(file)">
                      <i class="el-icon-delete"></i>
                    </span>
                  </span>
                </div>
              </el-upload>
  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
对于 el-upload 组件来说,要实现文件缩略图的功能,你可以通过以下步骤进行操作: 1. 首先,确保你已经安装了 element-ui 组件库。如果没有安装,可以通过 npm 或 yarn 进行安装。 2. 在你的组件中,引入 el-upload 组件,并设置相应的属性和事件。例如: ```vue <template> <el-upload :action="uploadUrl" :on-success="handleSuccess" :file-list="fileList" :list-type="'picture-card'" > <i class="el-icon-plus"></i> </el-upload> </template> <script> export default { data() { return { uploadUrl: 'your_upload_url', fileList: [], }; }, methods: { handleSuccess(response, file, fileList) { // 处理上传成功后的回调逻辑 // 在这里可以获取到上传成功后的文件信息,例如缩略图地址 console.log(response); // 上传成功后服务端返回的数据 console.log(file); // 当前上传的文件对象 console.log(fileList); // 已上传的文件列表 // 将缩略图地址存储到 fileList 中 file.url = response.thumbnailUrl; this.fileList = fileList; }, }, }; </script> ``` 3. 在 handleSuccess 方法中,你可以获取到上传成功后的文件信息。你可以在这里将缩略图地址存储到 fileList 中,并更新组件的 fileList 数据。 4. 最后,你可以通过遍历 fileList 数组,在 el-upload 组件中展示缩略图。例如: ```vue <template> <el-upload :action="uploadUrl" :on-success="handleSuccess" :file-list="fileList" :list-type="'picture-card'" > <i class="el-icon-plus"></i> </el-upload> <div v-for="file in fileList" :key="file.uid"> <img :src="file.url" alt="缩略图" /> </div> </template> ``` 这样,当你选择文件上传后,会显示上传成功的缩略图。请注意,此示例中的 uploadUrl 为上传文件的接口地址,你需要根据实际情况进行修改。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值