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

master
RuoYi 3 years ago
parent a7243a17da
commit 8dc3321907
  1. 18
      src/components/FileUpload/index.vue
  2. 4
      src/components/ImageUpload/index.vue
  3. 2
      src/views/system/user/index.vue

@ -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"
@ -67,6 +68,8 @@ const props = defineProps({
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
const emit = defineEmits(); const emit = defineEmits();
const number = ref(0);
const uploadList = ref([]);
const baseUrl = import.meta.env.VITE_APP_BASE_API; const baseUrl = import.meta.env.VITE_APP_BASE_API;
const uploadFileUrl = ref(import.meta.env.VITE_APP_BASE_API + "/common/upload"); // const uploadFileUrl = ref(import.meta.env.VITE_APP_BASE_API + "/common/upload"); //
const headers = ref({ Authorization: "Bearer " + getToken() }); const headers = ref({ Authorization: "Bearer " + getToken() });
@ -120,6 +123,8 @@ function handleBeforeUpload(file) {
return false; return false;
} }
} }
proxy.$modal.loading("正在上传文件,请稍候...");
number.value++;
return true; return true;
} }
@ -130,14 +135,19 @@ function handleExceed() {
// //
function handleUploadError(err) { function handleUploadError(err) {
proxy.$modal.msgError("上传失败"); proxy.$modal.msgError("上传文件失败");
} }
// //
function handleUploadSuccess(res, file) { function handleUploadSuccess(res, file) {
proxy.$modal.msgSuccess("上传成功"); uploadList.value.push({ name: res.fileName, url: res.fileName });
fileList.value.push({ name: res.fileName, url: res.fileName }); if (uploadList.value.length === number.value) {
fileList.value = fileList.value.concat(uploadList.value);
uploadList.value = [];
number.value = 0;
emit("update:modelValue", listToString(fileList.value)); emit("update:modelValue", listToString(fileList.value));
proxy.$modal.closeLoading();
}
} }
// //
@ -149,7 +159,7 @@ function handleDelete(index) {
// //
function getFileName(name) { function 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 "";
} }

@ -157,7 +157,7 @@ function handleBeforeUpload(file) {
return false; return false;
} }
} }
proxy.$modal.loading("上传中"); proxy.$modal.loading("正在上传图片,请稍候...");
number.value++; number.value++;
} }
@ -168,7 +168,7 @@ function handleExceed() {
// //
function handleUploadError() { function handleUploadError() {
proxy.$modal.msgError("上传失败"); proxy.$modal.msgError("上传图片失败");
proxy.$modal.closeLoading(); proxy.$modal.closeLoading();
} }

@ -413,7 +413,7 @@ const data = reactive({
userName: [{ required: true, message: "用户名称不能为空", trigger: "blur" }, { min: 2, max: 20, message: "用户名称长度必须介于 2 和 20 之间", trigger: "blur" }], userName: [{ required: true, message: "用户名称不能为空", trigger: "blur" }, { min: 2, max: 20, message: "用户名称长度必须介于 2 和 20 之间", trigger: "blur" }],
nickName: [{ required: true, message: "用户昵称不能为空", trigger: "blur" }], nickName: [{ required: true, message: "用户昵称不能为空", trigger: "blur" }],
password: [{ required: true, message: "用户密码不能为空", trigger: "blur" }, { min: 5, max: 20, message: "用户密码长度必须介于 5 和 20 之间", trigger: "blur" }], password: [{ required: true, message: "用户密码不能为空", trigger: "blur" }, { min: 5, max: 20, message: "用户密码长度必须介于 5 和 20 之间", trigger: "blur" }],
email: [{ type: "email", message: "'请输入正确的邮箱地址", trigger: ["blur", "change"] }], email: [{ type: "email", message: "请输入正确的邮箱地址", trigger: ["blur", "change"] }],
phonenumber: [{ pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }] phonenumber: [{ pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }]
} }
}); });

Loading…
Cancel
Save