diff --git a/src/views/attachment/AttachmentList.vue b/src/views/attachment/AttachmentList.vue index 21744db5..6f83a401 100644 --- a/src/views/attachment/AttachmentList.vue +++ b/src/views/attachment/AttachmentList.vue @@ -41,7 +41,7 @@
上传 - 批量选择 + 批量操作 删除 @@ -69,6 +69,8 @@ @@ -121,6 +123,7 @@ export default { listLoading: true, uploadVisible: false, supportMultipleSelection: false, + selectedAttachmentCheckbox: {}, batchSelectedAttachments: [], selectAttachment: {}, attachments: [], @@ -149,6 +152,11 @@ export default { attachment.typeProperty = this.attachmentType[attachment.type] return attachment }) + }, + selectedAttachmentStyle() { + return { + border: `2px solid ${this.color()}` + } } }, created() { @@ -230,39 +238,50 @@ export default { // 没有获取到文件返回false return false }, + getCheckStatus(key) { + return this.selectedAttachmentCheckbox[key] || false + }, handleMultipleSelection() { this.supportMultipleSelection = true // 不允许附件详情抽屉显示 this.drawerVisible = false + this.attachments.forEach(item => { + this.$set(this.selectedAttachmentCheckbox, item.id, false) + }) }, handleCancelMultipleSelection() { this.supportMultipleSelection = false this.drawerVisible = false - // TODO 待改进 - this.$router.go(0) + this.batchSelectedAttachments = [] + for (var key in this.selectedCheckbox) { + this.$set(this.selectedAttachmentCheckbox, key, false) + } }, handleAttachmentSelectionChanged(e, item) { var isChecked = e.target.checked || false - var $parentNode = e.currentTarget.parentNode.parentNode || {} if (isChecked) { + this.$set(this.selectedAttachmentCheckbox, item.id, true) this.batchSelectedAttachments.push(item.id) - this.$set($parentNode.style, 'border', `2px solid ${this.color()}`) } else { + this.$set(this.selectedAttachmentCheckbox, item.id, false) // 从选中id集合中删除id var index = this.batchSelectedAttachments.indexOf(item.id) this.batchSelectedAttachments.splice(index, 1) - // 取消边框 - this.$set($parentNode.style, 'border', '') } }, handleDeleteAttachmentInBatch() { var that = this + if (this.batchSelectedAttachments.length <= 0) { + this.$message.success('你还未选择任何附件,先选择一个吧') + return + } this.$confirm({ title: '确定要批量删除选中的附件吗?', content: '一旦删除不可恢复,请谨慎操作', onOk() { attachmentApi.deleteInBatch(that.batchSelectedAttachments).then(res => { that.handleCancelMultipleSelection() + that.loadAttachments() that.$message.success('删除成功') }) },