From 29fc165ef9311a226b3fa231413f7dc4715138f7 Mon Sep 17 00:00:00 2001 From: Yuikill <105910874+Yuikill@users.noreply.github.com> Date: Wed, 4 Sep 2024 10:31:48 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=85=A8=E9=80=89=E5=A5=97=E9=A4=90?= =?UTF-8?q?=E4=B8=AD=E7=9A=84=E6=89=80=E6=9C=89=E9=85=8D=E7=BD=AE=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=8F=8D=E5=BA=94=E6=97=B6=E9=97=B4=E6=85=A2=20(#3491?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../add-from-existing-configs/package-table.vue | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/bcs-services/bcs-bscp/ui/src/views/space/templates/list/package-detail/operations/add-configs/add-from-existing-configs/package-table.vue b/bcs-services/bcs-bscp/ui/src/views/space/templates/list/package-detail/operations/add-configs/add-from-existing-configs/package-table.vue index 91426fc65e..97b54215ea 100644 --- a/bcs-services/bcs-bscp/ui/src/views/space/templates/list/package-detail/operations/add-configs/add-from-existing-configs/package-table.vue +++ b/bcs-services/bcs-bscp/ui/src/views/space/templates/list/package-detail/operations/add-configs/add-from-existing-configs/package-table.vue @@ -61,17 +61,19 @@ const emits = defineEmits(['toggleOpen', 'update:selectedConfigs', 'change']); + const selectedConfigIds = computed(() => new Set(props.selectedConfigs.map((item) => item.id))); + const isAllSelected = computed(() => { - const res = props.configList.length > 0 && props.configList.every((item) => isConfigSelected(item.id)); - return res; + return props.configList.every((item) => selectedConfigIds.value.has(item.id)); }); const isIndeterminate = computed(() => { - const res = props.configList.length > 0 && props.selectedConfigs.length > 0 && !isAllSelected.value; - return res; + const selectedCount = props.selectedConfigs.length; + const totalCount = props.configList.length; + return selectedCount > 0 && selectedCount < totalCount && !isAllSelected.value; }); - const isConfigSelected = (id: number) => props.selectedConfigs.findIndex((item) => item.id === id) > -1; + const isConfigSelected = (id: number) => selectedConfigIds.value.has(id); const handleAllSelectionChange = (checked: boolean) => { const configs = props.selectedConfigs.slice();