perf: 优化父级目录的重复分享逻辑

This commit is contained in:
jmal 2025-01-10 17:28:28 +08:00
parent 833bb26c91
commit fc8b8016dc

View File

@ -108,7 +108,7 @@
</div> </div>
</div> </div>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button size="small" v-if="shareOptionConfig.shared" type="danger" @click="cancelShare">取消分享</el-button> <el-button size="small" v-if="shareOptionConfig.shared" type="danger" @click="cancelShare" v-loading="cancelSharing">取消分享</el-button>
<el-button size="small" v-if="!shareOptionConfig.shared" type="primary" @click="submitShare" <el-button size="small" v-if="!shareOptionConfig.shared" type="primary" @click="submitShare"
v-loading="generateShareLinkLoading">创建分享 v-loading="generateShareLinkLoading">创建分享
</el-button> </el-button>
@ -164,6 +164,7 @@ export default {
audioCoverUrl: `${process.env.VUE_APP_BASE_API}/view/cover?jmal-token=${this.$store.state.user.token}&name=${this.$store.state.user.name}&id=`, audioCoverUrl: `${process.env.VUE_APP_BASE_API}/view/cover?jmal-token=${this.$store.state.user.token}&name=${this.$store.state.user.name}&id=`,
shareDialogVisible: false, shareDialogVisible: false,
generateShareLinkLoading: false, generateShareLinkLoading: false,
cancelSharing: false,
pickerOptions: { pickerOptions: {
disabledDate(time) { disabledDate(time) {
const dateTime = new Date(); const dateTime = new Date();
@ -260,7 +261,7 @@ export default {
this.showSharedPage(shareObject) this.showSharedPage(shareObject)
}) })
} else { } else {
this.showNotSharedPage() this.showNotSharedPage(this.file)
} }
} }
} }
@ -293,14 +294,24 @@ export default {
this.extractionCode = shareObject.extractionCode this.extractionCode = shareObject.extractionCode
this.shareId = shareObject.shareId this.shareId = shareObject.shareId
}, },
showNotSharedPage() { showNotSharedPage(file) {
this.shareOptionConfig.shared = false this.shareOptionConfig.shared = false
this.shareOptionConfig.linkLabel = '选择有效期' this.shareOptionConfig.linkLabel = '选择有效期'
this.shareOption.isPrivacy = false this.shareOption.isPrivacy = false
this.shareOption.expiresDate = null this.shareOption.expiresDate = null
this.shareOption.expiresDateOption = 1 this.shareOption.expiresDateOption = 1
if (file.isShare) {
this.shareOption.isPrivacy = file.isPrivacy
if (file.expiresAt > 253398735999000) {
this.shareOption.expiresDateOption = 1
} else {
this.shareOption.expiresDate = file.expiresAt
this.shareOption.expiresDateOption = 2
}
}
}, },
shareDialogClose() { shareDialogClose() {
this.cancelSharing = false
this.shareOptionConfig.shared = false this.shareOptionConfig.shared = false
this.$emit('update:status', this.shareDialogVisible) this.$emit('update:status', this.shareDialogVisible)
}, },
@ -328,6 +339,7 @@ export default {
}, },
// 取消分享 // 取消分享
cancelShare() { cancelShare() {
this.cancelSharing = true
let title = '确定要取消分享 "' + this.file.name + '" 吗?' let title = '确定要取消分享 "' + this.file.name + '" 吗?'
this.$confirm(title, '提示', { this.$confirm(title, '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
@ -341,7 +353,11 @@ export default {
this.$emit('onCancelShare') this.$emit('onCancelShare')
this.shareDialogVisible = false this.shareDialogVisible = false
this.shareDialogClose() this.shareDialogClose()
}).catch(() => {
this.cancelSharing = false
}) })
}).catch(() => {
this.cancelSharing = false
}) })
}, },
submitShare() { submitShare() {