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/ImageUpload/index.vue | 60 +++++++++++++++++++++++++++++------------------------------- 1 files changed, 29 insertions(+), 31 deletions(-) diff --git a/ruoyi-ui/src/components/ImageUpload/index.vue b/ruoyi-ui/src/components/ImageUpload/index.vue index fcf010d..2d1ed57 100644 --- a/ruoyi-ui/src/components/ImageUpload/index.vue +++ b/ruoyi-ui/src/components/ImageUpload/index.vue @@ -1,6 +1,7 @@ <template> <div class="component-upload-image"> <el-upload + multiple :action="uploadImgUrl" list-type="picture-card" :on-success="handleUploadSuccess" @@ -18,7 +19,7 @@ > <i class="el-icon-plus"></i> </el-upload> - + <!-- 涓婁紶鎻愮ず --> <div class="el-upload__tip" slot="tip" v-if="showTip"> 璇蜂笂浼� @@ -43,6 +44,7 @@ <script> import { getToken } from "@/utils/auth"; +import { delOss } from "@/api/system/oss"; export default { props: { @@ -70,6 +72,8 @@ }, data() { return { + number: 0, + uploadList: [], dialogImageUrl: "", dialogVisible: false, hideUpload: false, @@ -89,8 +93,12 @@ 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 { + // 姝ゅname浣跨敤ossId 闃叉鍒犻櫎鍑虹幇閲嶅悕 + item = { name: item.ossId, url: item.url, ossId: item.ossId }; } return item; }); @@ -114,19 +122,26 @@ handleRemove(file, fileList) { const findex = this.fileList.map(f => f.name).indexOf(file.name); if(findex > -1) { + let ossId = this.fileList[findex].ossId; + delOss(ossId); this.fileList.splice(findex, 1); - this.$emit("input", this.listToString(this.fileList)); + this.$emit("input", this.fileList); } }, // 涓婁紶鎴愬姛鍥炶皟 handleUploadSuccess(res) { if (res.code == 200) { - this.fileList.push({ name: res.data.fileName, url: res.data.url }); - this.$emit("input", this.listToString(this.fileList)); - this.loading.close(); + 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(); } }, // 涓婁紶鍓峫oading鍔犺浇 @@ -147,50 +162,33 @@ } if (!isImg) { - this.$message.error( - `鏂囦欢鏍煎紡涓嶆纭�, 璇蜂笂浼�${this.fileType.join("/")}鍥剧墖鏍煎紡鏂囦欢!` - ); + this.$modal.msgError(`鏂囦欢鏍煎紡涓嶆纭�, 璇蜂笂浼�${this.fileType.join("/")}鍥剧墖鏍煎紡鏂囦欢!`); return false; } 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.loading = this.$loading({ - lock: true, - text: "涓婁紶涓�", - background: "rgba(0, 0, 0, 0.7)", - }); + this.$modal.loading("姝e湪涓婁紶鍥剧墖锛岃绋嶅��..."); + this.number++; }, // 鏂囦欢涓暟瓒呭嚭 handleExceed() { - this.$message.error(`涓婁紶鏂囦欢鏁伴噺涓嶈兘瓒呰繃 ${this.limit} 涓�!`); + this.$modal.msgError(`涓婁紶鏂囦欢鏁伴噺涓嶈兘瓒呰繃 ${this.limit} 涓�!`); }, // 涓婁紶澶辫触 handleUploadError(res) { - this.$message({ - type: "error", - message: "涓婁紶澶辫触", - }); - this.loading.close(); + this.$modal.msgError("涓婁紶鍥剧墖澶辫触锛岃閲嶈瘯"); + this.$modal.closeLoading(); }, // 棰勮 handlePictureCardPreview(file) { this.dialogImageUrl = file.url; this.dialogVisible = true; }, - // 瀵硅薄杞垚鎸囧畾瀛楃涓插垎闅� - 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) : ''; - } } }; </script> -- Gitblit v1.9.3