elementui plus一次性上传多个文件只调一次上传接口

vue

<el-upload v-model:file-list="item.files" class="upload-demo" list-type="picture-card" :class="{'modified_':!state.modified}" :auto-upload="false" accept=".jpg,.jpeg,.png,.JPG,.JPEG,.PNG" :on-change="(file, fileList) => {handleUploadLitigation(file, fileList)}" :on-preview="handleClick" :multiple='true'>
                    <el-icon class="w109">
                      <Plus />
                    </el-icon>
                  </el-upload>

js

et maxFileLength = ref(0)
const handleUploadLitigation = (file, fileList) => {
  let length = fileList.length;
  maxFileLength.value = Math.max(length, maxFileLength.value)
  setTimeout(() => {//需要加setTimeout
    if (maxFileLength.value !== length) {
      return
    }
    //fileList里面包含了之前上传的 所有需要排除出来
    let files = fileList.filter(item => { return !item.hasOwnProperty('code'); });
    uploadFileList(files)
  }, 0)
};


const uploadFileList = (files) => {
  let formData = new FormData();
  files.forEach(file => formData.append("files", file.raw));
  formData.append("cover", true);
  state.loading = true
  uploadFile(formData).then((res) => {
    if (res.code == 200) {
      state.loading = false
      let data = res.data
      data.forEach((item, index) => {
        files[index].code = item.code
      });
    }
  }, () => {
    state.loading = false
  });
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值