From 04706403d3623b209e8c4c8ff6e71dd740b29d77 Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: Fri, 25 Feb 2022 11:44:05 +0800
Subject: [PATCH] 组件fileUpload支持多文件同时选择上传
---
ruoyi-ui/src/components/FileUpload/index.vue | 29 ++++++++++++++++++++---------
1 files changed, 20 insertions(+), 9 deletions(-)
diff --git a/ruoyi-ui/src/components/FileUpload/index.vue b/ruoyi-ui/src/components/FileUpload/index.vue
index f347387..a58f99c 100644
--- a/ruoyi-ui/src/components/FileUpload/index.vue
+++ b/ruoyi-ui/src/components/FileUpload/index.vue
@@ -1,6 +1,7 @@
<template>
<div class="upload-file">
<el-upload
+ multiple
:action="uploadFileUrl"
:before-upload="handleBeforeUpload"
:file-list="fileList"
@@ -69,6 +70,8 @@
},
data() {
return {
+ number: 0,
+ uploadList: [],
uploadFileUrl: process.env.VUE_APP_BASE_API + "/file/upload", // 上传的图片服务器地址
headers: {
Authorization: "Bearer " + getToken(),
@@ -121,7 +124,7 @@
return false;
});
if (!isTypeOk) {
- this.$message.error(`文件格式不正确, 请上传${this.fileType.join("/")}格式文件!`);
+ this.$modal.msgError(`文件格式不正确, 请上传${this.fileType.join("/")}格式文件!`);
return false;
}
}
@@ -129,25 +132,33 @@
if (this.fileSize) {
const isLt = file.size / 1024 / 1024 < this.fileSize;
if (!isLt) {
- this.$message.error(`上传文件大小不能超过 ${this.fileSize} MB!`);
+ this.$modal.msgError(`上传文件大小不能超过 ${this.fileSize} MB!`);
return false;
}
}
+ this.$modal.loading("正在上传文件,请稍候...");
+ this.number++;
return true;
},
// 文件个数超出
handleExceed() {
- this.$message.error(`上传文件数量不能超过 ${this.limit} 个!`);
+ this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`);
},
// 上传失败
handleUploadError(err) {
- this.$message.error("上传失败, 请重试");
+ this.$modal.msgError("上传图片失败,请重试");
+ this.$modal.closeLoading()
},
// 上传成功回调
- handleUploadSuccess(res, file) {
- this.$message.success("上传成功");
- this.fileList.push({ name: res.data.url, url: res.data.url });
- this.$emit("input", this.listToString(this.fileList));
+ handleUploadSuccess(res) {
+ this.uploadList.push({ name: res.data.url, url: res.data.url });
+ if (this.uploadList.length === this.number) {
+ this.fileList = this.fileList.concat(this.uploadList);
+ this.uploadList = [];
+ this.number = 0;
+ this.$emit("input", this.listToString(this.fileList));
+ this.$modal.closeLoading();
+ }
},
// 删除文件
handleDelete(index) {
@@ -157,7 +168,7 @@
// 获取文件名称
getFileName(name) {
if (name.lastIndexOf("/") > -1) {
- return name.slice(name.lastIndexOf("/") + 1).toLowerCase();
+ return name.slice(name.lastIndexOf("/") + 1);
} else {
return "";
}
--
Gitblit v1.9.3