From e7c8fa63d9d1d600e043d6cc6d9cbe981d57e753 Mon Sep 17 00:00:00 2001 From: jmal Date: Sun, 12 Jan 2025 00:40:08 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=88=9B=E5=BB=BA=E5=88=86=E4=BA=AB?= =?UTF-8?q?=E6=97=B6=E6=A3=80=E6=B5=8B=E6=98=AF=E5=90=A6=E5=90=AB=E6=9C=89?= =?UTF-8?q?=E5=AD=90=E5=88=86=E4=BA=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/file-api.js | 10 +++++++++- src/components/ShareDialog/index.vue | 27 +++++++++++++++++++++++++-- src/views/share/index.vue | 3 ++- 3 files changed, 36 insertions(+), 4 deletions(-) diff --git a/src/api/file-api.js b/src/api/file-api.js index f4742ae..6f729e7 100644 --- a/src/api/file-api.js +++ b/src/api/file-api.js @@ -237,7 +237,7 @@ export default { params }) }, - // 检测是否含有子分享 + // 检测分享文件下是否含有子分享 hasSubShare: function(params) { return request({ url: '/share/has-sub-share', @@ -248,6 +248,14 @@ export default { } }) }, + // 检测文件下是否含有子分享 + folderSubShare: function(params) { + return request({ + url: '/share/folder-sub-share', + method: 'get', + params + }) + }, // 取消分享 cancelShareLink: function(params) { return request({ diff --git a/src/components/ShareDialog/index.vue b/src/components/ShareDialog/index.vue index ca6f787..8693dda 100644 --- a/src/components/ShareDialog/index.vue +++ b/src/components/ShareDialog/index.vue @@ -343,7 +343,7 @@ export default { api.hasSubShare({shareIds: [this.shareId]}).then(res => { if (res.data) { - this.$confirm('选择的文件夹下存其他分享,取消分享后其下的所有分享链接都将被删除,是否继续?', '提示', { + this.$confirm('所选的文件夹下存其他分享,取消分享后其下的所有分享链接都将被删除,是否继续?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' @@ -425,7 +425,30 @@ export default { this.generateShareLinkLoading = false return } - + // 检查文件夹下是否有其他分享 + if (this.file.isFolder) { + api.folderSubShare({fileId: this.file.id}).then(res => { + if (res.data) { + this.$confirm('所选的文件夹下存其他分享,创建分享后将会覆盖其下所有已分享的链接参数,是否继续?', '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + this.doCreateShare(update, expireDate) + }).catch(() => { + this.generateShareLinkLoading = false + }) + } else { + this.doCreateShare(update, expireDate) + } + }).catch(() => { + this.generateShareLinkLoading = false + }) + } else { + this.doCreateShare(update, expireDate) + } + }, + doCreateShare(update, expireDate) { api.generate({ shortId: this.shareOption.customAddr, userId: this.$store.state.user.userId, diff --git a/src/views/share/index.vue b/src/views/share/index.vue index 16add54..af3b530 100644 --- a/src/views/share/index.vue +++ b/src/views/share/index.vue @@ -79,6 +79,7 @@ @@ -460,7 +461,7 @@ api.hasSubShare({shareIds: shareIds}).then(res => { if (res.data) { - this.$confirm('选择的文件夹下存其他分享,取消分享后其下的所有分享链接都将被删除,是否继续?', '提示', { + this.$confirm('所选的文件夹下存其他分享,取消分享后其下的所有分享链接都将被删除,是否继续?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning'