From 98bb1f00eeca2b459bd8b9fe5a745e65c6081f97 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期三, 19 十月 2022 19:06:14 +0800
Subject: [PATCH] fix 修复 修改用户信息 校验用户名未排除当前用户问题
---
ruoyi-ui/src/components/FileUpload/index.vue | 82 ++++++++++++++++++++++++++--------------
1 files changed, 53 insertions(+), 29 deletions(-)
diff --git a/ruoyi-ui/src/components/FileUpload/index.vue b/ruoyi-ui/src/components/FileUpload/index.vue
index d5c3bc7..2e33c1b 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"
@@ -11,7 +12,7 @@
:show-file-list="false"
:headers="headers"
class="upload-file-uploader"
- ref="upload"
+ ref="fileUpload"
>
<!-- 涓婁紶鎸夐挳 -->
<el-button size="mini" type="primary">閫夊彇鏂囦欢</el-button>
@@ -26,7 +27,7 @@
<!-- 鏂囦欢鍒楄〃 -->
<transition-group class="upload-file-list el-upload-list el-upload-list--text" name="el-fade-in-linear" tag="ul">
- <li :key="file.uid" class="el-upload-list__item ele-upload-list__item-content" v-for="(file, index) in fileList">
+ <li :key="file.url" class="el-upload-list__item ele-upload-list__item-content" v-for="(file, index) in fileList">
<el-link :href="`${file.url}`" :underline="false" target="_blank">
<span class="el-icon-document"> {{ getFileName(file.name) }} </span>
</el-link>
@@ -40,6 +41,7 @@
<script>
import { getToken } from "@/utils/auth";
+import { listByIds, delOss } from "@/api/system/oss";
export default {
name: "FileUpload",
@@ -69,8 +71,10 @@
},
data() {
return {
+ number: 0,
+ uploadList: [],
baseUrl: process.env.VUE_APP_BASE_API,
- uploadFileUrl: process.env.VUE_APP_BASE_API + "/system/oss/upload", // 涓婁紶鐨勫浘鐗囨湇鍔″櫒鍦板潃
+ uploadFileUrl: process.env.VUE_APP_BASE_API + "/system/oss/upload", // 涓婁紶鏂囦欢鏈嶅姟鍣ㄥ湴鍧�
headers: {
Authorization: "Bearer " + getToken(),
},
@@ -79,16 +83,24 @@
},
watch: {
value: {
- handler(val) {
+ async handler(val) {
if (val) {
let temp = 1;
// 棣栧厛灏嗗�艰浆涓烘暟缁�
- const list = Array.isArray(val) ? val : this.value.split(',');
+ let list;
+ if (Array.isArray(val)) {
+ list = val;
+ } else {
+ await listByIds(val).then(res => {
+ list = res.data.map(oss => {
+ oss = { name: oss.originalName, url: oss.url, ossId: oss.ossId };
+ return oss;
+ });
+ })
+ }
// 鐒跺悗灏嗘暟缁勮浆涓哄璞℃暟缁�
this.fileList = list.map(item => {
- if (typeof item === "string") {
- item = { name: item, url: item };
- }
+ item = { name: item.name, url: item.url, ossId: item.ossId };
item.uid = item.uid || new Date().getTime() + temp++;
return item;
});
@@ -112,17 +124,11 @@
handleBeforeUpload(file) {
// 鏍℃鏂囦欢绫诲瀷
if (this.fileType) {
- let fileExtension = "";
- if (file.name.lastIndexOf(".") > -1) {
- fileExtension = file.name.slice(file.name.lastIndexOf(".") + 1);
- }
- const isTypeOk = this.fileType.some((type) => {
- if (file.type.indexOf(type) > -1) return true;
- if (fileExtension && fileExtension.indexOf(type) > -1) return true;
- return false;
- });
+ const fileName = file.name.split('.');
+ const fileExt = fileName[fileName.length - 1];
+ const isTypeOk = this.fileType.indexOf(fileExt) >= 0;
if (!isTypeOk) {
- this.$message.error(`鏂囦欢鏍煎紡涓嶆纭�, 璇蜂笂浼�${this.fileType.join("/")}鏍煎紡鏂囦欢!`);
+ this.$modal.msgError(`鏂囦欢鏍煎紡涓嶆纭�, 璇蜂笂浼�${this.fileType.join("/")}鏍煎紡鏂囦欢!`);
return false;
}
}
@@ -130,42 +136,60 @@
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("姝e湪涓婁紶鏂囦欢锛岃绋嶅��...");
+ 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) {
if (res.code === 200) {
- this.$message.success("涓婁紶鎴愬姛");
- this.fileList.push({ name: res.data.fileName, url: res.data.fileName });
- this.$emit("input", this.listToString(this.fileList));
+ this.uploadList.push({ name: res.data.fileName, url: res.data.url, ossId: res.data.ossId });
+ this.uploadedSuccessfully();
} else {
- this.$message.error(res.msg);
- this.loading.close();
+ this.number--;
+ this.$modal.closeLoading();
+ this.$modal.msgError(res.msg);
+ this.$refs.fileUpload.handleRemove(file);
+ this.uploadedSuccessfully();
}
},
// 鍒犻櫎鏂囦欢
handleDelete(index) {
+ let ossId = this.fileList[index].ossId;
+ delOss(ossId);
this.fileList.splice(index, 1);
this.$emit("input", this.listToString(this.fileList));
},
+ // 涓婁紶缁撴潫澶勭悊
+ uploadedSuccessfully() {
+ if (this.number > 0 && 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();
+ }
+ },
// 鑾峰彇鏂囦欢鍚嶇О
getFileName(name) {
+ // 濡傛灉鏄痷rl閭d箞鍙栨渶鍚庣殑鍚嶅瓧 濡傛灉涓嶆槸鐩存帴杩斿洖
if (name.lastIndexOf("/") > -1) {
- return name.slice(name.lastIndexOf("/") + 1).toLowerCase();
+ return name.slice(name.lastIndexOf("/") + 1);
} else {
- return "";
+ return name;
}
},
// 瀵硅薄杞垚鎸囧畾瀛楃涓插垎闅�
@@ -173,7 +197,7 @@
let strs = "";
separator = separator || ",";
for (let i in list) {
- strs += list[i].url + separator;
+ strs += list[i].ossId + separator;
}
return strs != "" ? strs.substr(0, strs.length - 1) : "";
},
--
Gitblit v1.9.3