element Upload上传多张图片后,如何进行增加 删除操作并将编辑后的图片数组传参

编辑信息时,因为后端返的图片数组,和Upload的api回调fileList数组不相同,导致在删除图片后,不知道自己删的具体是那一张图以至于删除不了图片 只能新增,后面采用了下面方法解决这个问题

<el-upload
   list-type="picture-card"
   :action="action"
   :file-list="userForm.hyfile"
   :before-remove="beforehyRemove"
   :before-upload="handlehySuccess"
   :on-remove="handlehyRemove"
>
  <i class="el-icon-plus"></i>
</el-upload>

//js
data(){
	return{
		beforehyFileList:[],//删除前的图片数组
	}
}
//找出两组数组不同的元素
filterArr(arr1, arr2) {
      var uid1=[]
      var uid2=[]
      for(var i in arr1){
        uid1.push( arr1[i].uid)
      }
      for(var i in arr2){
        uid2.push( arr2[i].uid)
      }
      const arr = [...uid1,...uid2];
      const newArr = arr.filter(item => {
          return !(uid1.includes(item) && uid2.includes(item));
      });
      return newArr;
},
handlehySuccess(file) {
      let formData = new FormData();
      formData.append("file", file);
      //上传图片
      this.$http({
        url: process.env.VUE_APP_BASE_API + "/file/uploadFile",
        method: "post",
        headers: {
          Authorization: "Bearer " + getToken(),
          "Content-Type": "multipart/form-data",
        },
        data: formData,
      }).then((res) => {
        console.log(res);
        if (res.data.code == 200) {
          this.$message({
            message: "上传成功",
            type: "success",
          });
          //将接口返回的图片信息,添加到修改接口需要上传的参数fileDTOS里面
          this.userForm.fileDTOS.push(res.data.data);
        }
      });
    },
    //删除前
    beforehyRemove(file, fileList){
      this.beforehyFileList=JSON.parse(JSON.stringify(fileList))//需要深拷贝,才不会被handlehyRemove影响
      console.log(this.beforeFileList)
    },
    //删除后
    handlehyRemove(file, fileList) {
      var deleteImg=this.filterArr(this.beforehyFileList,fileList)
      // console.log(deleteImg)
      for(var i in this.beforehyFileList){
        if(this.beforehyFileList[i].uid==deleteImg[0]){
          this.userForm.fileDTOS.splice(i, 1);//这是接口要求上传的图片数组参数
        }
      }
    },
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值