fix: 订单列表: 全选

main
Lei OT 6 months ago
parent 846725d7aa
commit 9c0ac172df

@ -141,6 +141,7 @@ const MailBox = ({ mailboxDir, onMailItemClick, ...props }) => {
current: newCurrent,
pagedList: getPagedData(mailList, newCurrent),
}))
setSelectedItems([]);
}
}
@ -152,6 +153,7 @@ const MailBox = ({ mailboxDir, onMailItemClick, ...props }) => {
current: newCurrent,
pagedList: getPagedData(mailList, newCurrent),
}))
setSelectedItems([]);
}
}
@ -171,7 +173,8 @@ const MailBox = ({ mailboxDir, onMailItemClick, ...props }) => {
checked={selectedItems.some((i) => i.MAI_SN === item.MAI_SN)}
onClick={(e) => {
const isChecked = e.target.checked
const updatedSelection = isChecked ? [...selectedItems, item] : selectedItems.filter((item) => item.MAI_SN !== item.MAI_SN)
const noCurrent = selectedItems.filter((i) => i.MAI_SN !== item.MAI_SN);
const updatedSelection = isChecked ? [...noCurrent, item] : noCurrent;
setSelectedItems(updatedSelection)
}}></Checkbox>
</div>
@ -203,12 +206,12 @@ const MailBox = ({ mailboxDir, onMailItemClick, ...props }) => {
<Flex wrap gap='middle' justify={'center'} className='min-w-30 px-1'>
<Tooltip title='全选'>
<Checkbox
indeterminate={selectedItems.length > 0 && selectedItems.length < pagination.pagedList.length}
checked={pagination.pagedList.length === 0 ? false : pagination.pagedList.every((item) => selectedItems.some((selected) => selected.MAI_SN === item.MAI_SN))}
indeterminate={selectedItems.length > 0 && selectedItems.length < Math.min(pagination.current * PAGE_SIZE, (pagination.total - ((pagination.current - 1) * PAGE_SIZE)))}
checked={pagination.total === 0 ? false : pagination.pagedList.reduce((a, item) => a.concat(item.data), []).every((item) => selectedItems.some((selected) => selected.MAI_SN === item.MAI_SN))}
onChange={(e) => {
const isChecked = e.target.checked
if (isChecked) {
setSelectedItems((prev) => [...prev, ...pagination.pagedList])
setSelectedItems(pagination.pagedList.reduce((a, item) => a.concat(item.data), []))
} else {
setSelectedItems([])
}

Loading…
Cancel
Save