From cc3098c7a8238eb0bc1ac9626f94ad510b0ed878 Mon Sep 17 00:00:00 2001 From: lideqin <694785430@qq.com> Date: Sun, 4 Feb 2024 11:57:32 +0800 Subject: [PATCH] =?UTF-8?q?[update]=20=E4=BF=AE=E6=94=B9=E6=A0=87=E5=87=86?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E8=B7=A8=E9=A1=B5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../selection/StandardSelectionModal.vue | 36 ++++++++++++++++--- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/src/components/selection/StandardSelectionModal.vue b/src/components/selection/StandardSelectionModal.vue index 29011e68..4bf418a9 100644 --- a/src/components/selection/StandardSelectionModal.vue +++ b/src/components/selection/StandardSelectionModal.vue @@ -232,7 +232,7 @@ export default { if (res.success) { this.dataList = res.result.records this.ipagination.total = res.result.total - this.selectedRowKeys = this.value ? this.value.split(',') : [] + this.selectedRowKeys = this.value ? this.value.split(',') : (this.selectedRowKeys || []) } else { this.dataList = [] } @@ -253,9 +253,37 @@ export default { this.replacePage(1) }, // 表格选择改变 - onSelectChange (value, row) { - this.selectedRowKeys = value - this.selectedRowList = row + onSelectChange (selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys + // this.selectedRowList = row + if (this.type === 'checkbox') { + if (selectedRowKeys.length > this.selectedRowList.length) { + // 说明是增加了数据 + for (const rowIndex in selectedRows) { + if (!this.selectedRowList.find(item => item.standardNumber === selectedRows[rowIndex].standardNumber)) { + // 右侧不存在,追加到右侧表格 + this.selectedRowList.push(selectedRows[rowIndex]) + } + } + } else { + // 说明是删除了数据 + if (selectedRowKeys && selectedRowKeys.length > 0) { + // 没有选中数据,说明这一页没有选中数据了 + for (let i = 0; i < this.selectedRowList.length; i++) { + if (!selectedRowKeys.find(item => item === this.selectedRowList[i].standardNumber)) { + // 表格选中中没有找到这一条数据,说明已经被删了 + this.selectedRowList.splice(i, 1) + i-- + } + } + } else { + this.selectedRowList = [] + } + } + console.log(this.selectedRowList) + } else { + this.selectedRowList = selectedRows + } }, handleTableChange (pagination) { // 分页、排序、筛选变化时触发