From a680a84d91fb6501951d0265e9b347695568c546 Mon Sep 17 00:00:00 2001 From: 抓蛙师 <770492966@qq.com> Date: 星期二, 20 九月 2022 16:41:40 +0800 Subject: [PATCH] !236 前端适配多字段排序功能案例OSS页面(重新排序需点击重置按钮,否则按照点击顺序依次排序,重复点击的字段排序位置不发生改变) * 完善前端适配多字段排序功能案例OSS页面(完善排序图标显示效果和重置效果,支持正序,倒序,取消排序) * 前端适配多字段排序功能案例OSS页面(重新排序需点击重置按钮,否则按照点击顺序依次排序,重复点击的字段排序位置不发生改变) --- ruoyi-ui/src/components/ImageUpload/index.vue | 84 +++++++++++++++++++++++++---------------- 1 files changed, 51 insertions(+), 33 deletions(-) diff --git a/ruoyi-ui/src/components/ImageUpload/index.vue b/ruoyi-ui/src/components/ImageUpload/index.vue index 11573dd..9c92e86 100644 --- a/ruoyi-ui/src/components/ImageUpload/index.vue +++ b/ruoyi-ui/src/components/ImageUpload/index.vue @@ -9,8 +9,8 @@ :limit="limit" :on-error="handleUploadError" :on-exceed="handleExceed" - name="file" - :on-remove="handleRemove" + ref="imageUpload" + :on-remove="handleDelete" :show-file-list="true" :headers="headers" :file-list="fileList" @@ -44,6 +44,7 @@ <script> import { getToken } from "@/utils/auth"; +import { listByIds, delOss } from "@/api/system/oss"; export default { props: { @@ -86,15 +87,21 @@ }, watch: { value: { - handler(val) { + async handler(val) { if (val) { // 棣栧厛灏嗗�艰浆涓烘暟缁� - 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; + }) + } // 鐒跺悗灏嗘暟缁勮浆涓哄璞℃暟缁� this.fileList = list.map(item => { - if (typeof item === "string") { - item = { name: item, url: item }; - } + // 姝ゅname浣跨敤ossId 闃叉鍒犻櫎鍑虹幇閲嶅悕 + item = { name: item.ossId, url: item.url, ossId: item.ossId }; return item; }); } else { @@ -113,30 +120,6 @@ }, }, methods: { - // 鍒犻櫎鍥剧墖 - handleRemove(file, fileList) { - const findex = this.fileList.map(f => f.name).indexOf(file.name); - if(findex > -1) { - this.fileList.splice(findex, 1); - this.$emit("input", this.listToString(this.fileList)); - } - }, - // 涓婁紶鎴愬姛鍥炶皟 - handleUploadSuccess(res) { - if (res.code == 200) { - this.uploadList.push({ name: res.data.fileName, 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(); - } - } else { - this.$modal.msgError(res.msg); - this.$modal.closeLoading(); - } - }, // 涓婁紶鍓峫oading鍔犺浇 handleBeforeUpload(file) { let isImg = false; @@ -172,10 +155,43 @@ handleExceed() { this.$modal.msgError(`涓婁紶鏂囦欢鏁伴噺涓嶈兘瓒呰繃 ${this.limit} 涓�!`); }, + // 涓婁紶鎴愬姛鍥炶皟 + handleUploadSuccess(res, file) { + if (res.code === 200) { + this.uploadList.push({ name: res.data.fileName, url: res.data.url, ossId: res.data.ossId }); + this.uploadedSuccessfully(); + } else { + this.number--; + this.$modal.closeLoading(); + this.$modal.msgError(res.msg); + this.$refs.imageUpload.handleRemove(file); + this.uploadedSuccessfully(); + } + }, + // 鍒犻櫎鍥剧墖 + handleDelete(file) { + 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)); + } + }, // 涓婁紶澶辫触 handleUploadError(res) { this.$modal.msgError("涓婁紶鍥剧墖澶辫触锛岃閲嶈瘯"); this.$modal.closeLoading(); + }, + // 涓婁紶缁撴潫澶勭悊 + 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(); + } }, // 棰勮 handlePictureCardPreview(file) { @@ -187,9 +203,11 @@ let strs = ""; separator = separator || ","; for (let i in list) { - strs += list[i].url + separator; + if (list[i].ossId) { + strs += list[i].ossId + separator; + } } - return strs != '' ? strs.substr(0, strs.length - 1) : ''; + return strs != "" ? strs.substr(0, strs.length - 1) : ""; } } }; -- Gitblit v1.9.3