diff --git a/packages/common/component/SelectAll.vue b/packages/common/component/SelectAll.vue index 759b4fae3d..2a98676d34 100644 --- a/packages/common/component/SelectAll.vue +++ b/packages/common/component/SelectAll.vue @@ -27,14 +27,22 @@ const emit = defineEmits(['selectAll']) const filterList = computed(() => props.allItems.filter((item) => props.selected.some((i) => item.id === i.id))) +const selectNotSearchList = computed(() => + props.selected.filter((item) => !props.allItems.some((i) => item.id === i.id)) +) + const selectedAll = computed({ get() { return props.allItems.length > 0 && props.allItems.length === filterList.value.length }, set(value) { if (value) { - emit('selectAll', props.allItems) + emit('selectAll', props.allItems.concat(selectNotSearchList.value)) } else { + if (selectNotSearchList.value.length) { + emit('selectAll', selectNotSearchList.value) + return + } emit('selectAll', null) } }