v3.8.2 组件fileUpload支持多文件同时选择上传

This commit is contained in:
YunaiV 2022-03-20 22:07:17 +08:00
parent 582fead405
commit 1c0d2e1e51
2 changed files with 27 additions and 25 deletions

View File

@ -1,6 +1,7 @@
<template> <template>
<div class="upload-file"> <div class="upload-file">
<el-upload <el-upload
multiple
:action="uploadFileUrl" :action="uploadFileUrl"
:before-upload="handleBeforeUpload" :before-upload="handleBeforeUpload"
:file-list="fileList" :file-list="fileList"
@ -69,6 +70,8 @@ export default {
}, },
data() { data() {
return { return {
number: 0,
uploadList: [],
baseUrl: process.env.VUE_APP_BASE_API, baseUrl: process.env.VUE_APP_BASE_API,
uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", // uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", //
headers: { headers: {
@ -122,7 +125,7 @@ export default {
return false; return false;
}); });
if (!isTypeOk) { if (!isTypeOk) {
this.$message.error(`文件格式不正确, 请上传${this.fileType.join("/")}格式文件!`); this.$modal.msgError(`文件格式不正确, 请上传${this.fileType.join("/")}格式文件!`);
return false; return false;
} }
} }
@ -130,25 +133,33 @@ export default {
if (this.fileSize) { if (this.fileSize) {
const isLt = file.size / 1024 / 1024 < this.fileSize; const isLt = file.size / 1024 / 1024 < this.fileSize;
if (!isLt) { if (!isLt) {
this.$message.error(`上传文件大小不能超过 ${this.fileSize} MB!`); this.$modal.msgError(`上传文件大小不能超过 ${this.fileSize} MB!`);
return false; return false;
} }
} }
this.$modal.loading("正在上传文件,请稍候...");
this.number++;
return true; return true;
}, },
// //
handleExceed() { handleExceed() {
this.$message.error(`上传文件数量不能超过 ${this.limit} 个!`); this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`);
}, },
// //
handleUploadError(err) { handleUploadError(err) {
this.$message.error("上传失败, 请重试"); this.$modal.msgError("上传图片失败,请重试");
this.$modal.closeLoading()
}, },
// //
handleUploadSuccess(res, file) { handleUploadSuccess(res) {
this.$message.success("上传成功"); this.uploadList.push({ name: res.fileName, url: res.fileName });
this.fileList.push({ name: res.fileName, url: res.fileName }); if (this.uploadList.length === this.number) {
this.$emit("input", this.listToString(this.fileList)); this.fileList = this.fileList.concat(this.uploadList);
this.uploadList = [];
this.number = 0;
this.$emit("input", this.listToString(this.fileList));
this.$modal.closeLoading();
}
}, },
// //
handleDelete(index) { handleDelete(index) {
@ -158,7 +169,7 @@ export default {
// //
getFileName(name) { getFileName(name) {
if (name.lastIndexOf("/") > -1) { if (name.lastIndexOf("/") > -1) {
return name.slice(name.lastIndexOf("/") + 1).toLowerCase(); return name.slice(name.lastIndexOf("/") + 1);
} else { } else {
return ""; return "";
} }

View File

@ -133,7 +133,7 @@ export default {
this.uploadList = []; this.uploadList = [];
this.number = 0; this.number = 0;
this.$emit("input", this.listToString(this.fileList)); this.$emit("input", this.listToString(this.fileList));
this.loading.close(); this.$modal.closeLoading();
} }
}, },
// loading // loading
@ -154,36 +154,27 @@ export default {
} }
if (!isImg) { if (!isImg) {
this.$message.error( this.$modal.msgError(`文件格式不正确, 请上传${this.fileType.join("/")}图片格式文件!`);
`文件格式不正确, 请上传${this.fileType.join("/")}图片格式文件!`
);
return false; return false;
} }
if (this.fileSize) { if (this.fileSize) {
const isLt = file.size / 1024 / 1024 < this.fileSize; const isLt = file.size / 1024 / 1024 < this.fileSize;
if (!isLt) { if (!isLt) {
this.$message.error(`上传头像图片大小不能超过 ${this.fileSize} MB!`); this.$modal.msgError(`上传头像图片大小不能超过 ${this.fileSize} MB!`);
return false; return false;
} }
} }
this.loading = this.$loading({ this.$modal.loading("正在上传图片,请稍候...");
lock: true,
text: "上传中",
background: "rgba(0, 0, 0, 0.7)",
});
this.number++; this.number++;
}, },
// //
handleExceed() { handleExceed() {
this.$message.error(`上传文件数量不能超过 ${this.limit} 个!`); this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`);
}, },
// //
handleUploadError() { handleUploadError() {
this.$message({ this.$modal.msgError("上传图片失败,请重试");
type: "error", this.$modal.closeLoading();
message: "上传失败",
});
this.loading.close();
}, },
// //
handlePictureCardPreview(file) { handlePictureCardPreview(file) {