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
});
};