From 0e1f6ffaa0928cd457239e820de675742e28c486 Mon Sep 17 00:00:00 2001 From: betavs <34408516+betavs@users.noreply.github.com> Date: Wed, 28 Feb 2024 12:09:47 +0800 Subject: [PATCH] fix(components): [date-picker] selected value comparison logic error (#15918) * fix(components): [date-picker] selected value comparison logic error * test(components): [date-picker] selected value comparison logic error * perf(components): [date-picker] selected value comparison logic error Co-authored-by: kooriookami <38392315+kooriookami@users.noreply.github.com> --------- Co-authored-by: kooriookami <38392315+kooriookami@users.noreply.github.com> --- .../date-picker/__tests__/date-picker.test.ts | 17 +++++++++++++++++ .../src/composables/use-basic-date-table.ts | 4 +--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/packages/components/date-picker/__tests__/date-picker.test.ts b/packages/components/date-picker/__tests__/date-picker.test.ts index 7fa3d9f714..1e41efd4c1 100644 --- a/packages/components/date-picker/__tests__/date-picker.test.ts +++ b/packages/components/date-picker/__tests__/date-picker.test.ts @@ -1006,6 +1006,23 @@ describe('DatePicker dates', () => { await nextTick() expect(vm.value.length).toBe(0) }) + + it('selected', async () => { + const wrapper = _mount( + ``, + () => ({ value: [new Date()] }) + ) + const input = wrapper.find('input') + input.trigger('blur') + input.trigger('focus') + await nextTick() + expect( + document.querySelectorAll('.el-date-table__row .selected').length + ).toBe(1) + }) }) describe('DatePicker keyboard events', () => { diff --git a/packages/components/date-picker/src/composables/use-basic-date-table.ts b/packages/components/date-picker/src/composables/use-basic-date-table.ts index 17c52f95d4..157c8cc71c 100644 --- a/packages/components/date-picker/src/composables/use-basic-date-table.ts +++ b/packages/components/date-picker/src/composables/use-basic-date-table.ts @@ -133,9 +133,7 @@ export const useBasicDateTable = ( const shouldIncrement = setDateText(cell, { count, rowIndex, columnIndex }) const cellDate = cell.dayjs!.toDate() - cell.selected = _selectedDate.find( - (d) => d.valueOf() === cell.dayjs!.valueOf() - ) + cell.selected = _selectedDate.find((d) => d.isSame(cell.dayjs, 'day')) cell.isSelected = !!cell.selected cell.isCurrent = isCurrent(cell) cell.disabled = disabledDate?.(cellDate)