From 3dfb116fdd4120567493d03c075da327a5e4f71c Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期一, 18 四月 2022 19:55:23 +0800 Subject: [PATCH] update 优化文件上传、图片上传组件 文件列表展示文件原名便于后续处理, 完善组件删除功能 --- ruoyi-ui/src/components/FileUpload/index.vue | 25 +++++++++---------------- ruoyi-ui/src/components/ImageUpload/index.vue | 23 ++++++++--------------- ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java | 5 ++--- 3 files changed, 19 insertions(+), 34 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java index 4342716..a128a15 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java @@ -18,7 +18,6 @@ import com.ruoyi.system.domain.SysOss; import com.ruoyi.system.domain.bo.SysOssBo; import com.ruoyi.system.domain.vo.SysOssVo; -import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.service.ISysOssService; import io.swagger.annotations.*; import lombok.RequiredArgsConstructor; @@ -48,7 +47,6 @@ public class SysOssController extends BaseController { private final ISysOssService iSysOssService; - private final ISysConfigService iSysConfigService; /** * 鏌ヨOSS瀵硅薄瀛樺偍鍒楄〃 @@ -77,7 +75,8 @@ SysOss oss = iSysOssService.upload(file); Map<String, String> map = new HashMap<>(2); map.put("url", oss.getUrl()); - map.put("fileName", oss.getFileName()); + map.put("fileName", oss.getOriginalName()); + map.put("ossId", oss.getOssId().toString()); return R.ok(map); } diff --git a/ruoyi-ui/src/components/FileUpload/index.vue b/ruoyi-ui/src/components/FileUpload/index.vue index 5f1e236..78baf48 100644 --- a/ruoyi-ui/src/components/FileUpload/index.vue +++ b/ruoyi-ui/src/components/FileUpload/index.vue @@ -41,6 +41,7 @@ <script> import { getToken } from "@/utils/auth"; +import { delOss } from "@/api/system/oss"; export default { name: "FileUpload", @@ -89,9 +90,7 @@ const list = Array.isArray(val) ? val : this.value.split(','); // 鐒跺悗灏嗘暟缁勮浆涓哄璞℃暟缁� 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; }); @@ -153,12 +152,12 @@ // 涓婁紶鎴愬姛鍥炶皟 handleUploadSuccess(res, file) { if (res.code === 200) { - this.uploadList.push({ name: res.data.fileName, url: res.data.url }); + 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.listToString(this.fileList)); + this.$emit("input", this.fileList); this.$modal.closeLoading(); } } else { @@ -168,25 +167,19 @@ }, // 鍒犻櫎鏂囦欢 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); } 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) : ""; }, }, }; diff --git a/ruoyi-ui/src/components/ImageUpload/index.vue b/ruoyi-ui/src/components/ImageUpload/index.vue index 11573dd..acd4670 100644 --- a/ruoyi-ui/src/components/ImageUpload/index.vue +++ b/ruoyi-ui/src/components/ImageUpload/index.vue @@ -44,6 +44,7 @@ <script> import { getToken } from "@/utils/auth"; +import { delOss } from "@/api/system/oss"; export default { props: { @@ -92,9 +93,8 @@ const list = Array.isArray(val) ? val : this.value.split(','); // 鐒跺悗灏嗘暟缁勮浆涓哄璞℃暟缁� 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 { @@ -117,19 +117,21 @@ 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.uploadList.push({ name: res.data.fileName, url: res.data.url }); + 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.listToString(this.fileList)); + this.$emit("input", this.fileList); this.$modal.closeLoading(); } } else { @@ -182,15 +184,6 @@ 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