From e4267c5c5605704ca8eae2dfc55efdb475f2ec1c Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期二, 10 五月 2022 23:45:33 +0800 Subject: [PATCH] update 优化 弹窗点击遮罩层 默认不关闭 可在 main.js 修改 --- ruoyi-ui/src/components/FileUpload/index.vue | 51 ++++++++++++++++++++++++++++++--------------------- 1 files changed, 30 insertions(+), 21 deletions(-) diff --git a/ruoyi-ui/src/components/FileUpload/index.vue b/ruoyi-ui/src/components/FileUpload/index.vue index 46da967..f41a712 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" @@ -40,6 +41,7 @@ <script> import { getToken } from "@/utils/auth"; +import { delOss } from "@/api/system/oss"; export default { name: "FileUpload", @@ -69,6 +71,8 @@ }, data() { return { + number: 0, + uploadList: [], baseUrl: process.env.VUE_APP_BASE_API, uploadFileUrl: process.env.VUE_APP_BASE_API + "/system/oss/upload", // 涓婁紶鐨勫浘鐗囨湇鍔″櫒鍦板潃 headers: { @@ -86,8 +90,11 @@ const list = Array.isArray(val) ? val : this.value.split(','); // 鐒跺悗灏嗘暟缁勮浆涓哄璞℃暟缁� this.fileList = list.map(item => { + // 瀛楃涓插洖鏄惧鐞� 濡傛灉姝ゅ瀛樼殑鏄痷rl鍙洿鎺ュ洖鏄� 濡傛灉瀛樼殑鏄痠d闇�瑕佽皟鐢ㄦ帴鍙f煡鍑烘潵 if (typeof item === "string") { item = { name: item, url: item }; + } else { + item = { name: item.name, url: item.url, ossId: item.ossId }; } item.uid = item.uid || new Date().getTime() + temp++; return item; @@ -122,7 +129,7 @@ return false; }); if (!isTypeOk) { - this.$message.error(`鏂囦欢鏍煎紡涓嶆纭�, 璇蜂笂浼�${this.fileType.join("/")}鏍煎紡鏂囦欢!`); + this.$modal.msgError(`鏂囦欢鏍煎紡涓嶆纭�, 璇蜂笂浼�${this.fileType.join("/")}鏍煎紡鏂囦欢!`); return false; } } @@ -130,52 +137,54 @@ 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.url }); - this.$emit("input", this.listToString(this.fileList)); + this.uploadList.push({ name: res.data.fileName, url: res.data.url, ossId: res.data.ossId }); + if (this.uploadList.length === this.number) { + this.fileList = this.fileList.concat(this.uploadList); + this.uploadList = []; + this.number = 0; + this.$emit("input", this.fileList); + this.$modal.closeLoading(); + } } else { - this.$message.error(res.msg); - this.loading.close(); + this.$modal.msgError(res.msg); + this.$modal.closeLoading(); } }, // 鍒犻櫎鏂囦欢 handleDelete(index) { + let ossId = this.fileList[index].ossId; + delOss(ossId); this.fileList.splice(index, 1); - this.$emit("input", this.listToString(this.fileList)); + this.$emit("input", this.fileList); }, // 鑾峰彇鏂囦欢鍚嶇О 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; } - }, - // 瀵硅薄杞垚鎸囧畾瀛楃涓插垎闅� - listToString(list, separator) { - let strs = ""; - separator = separator || ","; - for (let i in list) { - strs += list[i].url + separator; - } - return strs != "" ? strs.substr(0, strs.length - 1) : ""; }, }, }; -- Gitblit v1.9.3