Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: calendar #2983

Merged
merged 5 commits into from
Feb 13, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

Large diffs are not rendered by default.

199 changes: 136 additions & 63 deletions src/packages/calendar/__tests__/calendar.spec.tsx
Original file line number Diff line number Diff line change
@@ -1,114 +1,123 @@
import * as React from 'react'
import { render, fireEvent } from '@testing-library/react'
import '@testing-library/jest-dom'
import { CalendarDay } from '@/packages/calendar/types'

import { CalendarDay, CalendarType } from '@/packages/calendar/types'
import { Calendar } from '../calendar'

test('show-title prop', async () => {
test('single prop', async () => {
const onConfirm = vi.fn()
const { container, rerender } = render(
<Calendar
visible
title="test"
defaultValue="2022-03-18"
startDate="2022-01-01"
endDate="2022-12-31"
startText="start"
endText="end"
confirmText="confirm"
onConfirm={onConfirm}
/>
)

const canlendarTitle1 = container.querySelectorAll(
'.nut-calendar-header .nut-calendar-title'
)

expect(canlendarTitle1.length).toBe(1)
const curMonth1 = container.querySelectorAll('.nut-calendar-sub-title')
expect(curMonth1.length).toBe(1)
const calendarConfirmBtn = container.querySelectorAll(
'.calendar-confirm-btn'
)[0]

fireEvent.click(calendarConfirmBtn)
expect(onConfirm).toBeCalled()
rerender(
<Calendar
visible
showTitle={false}
showSubTitle={false}
showToday={false}
defaultValue="2022-03-18"
startDate="2022-01-01"
endDate="2022-12-31"
/>
)

const canlendarTitle2 = container.querySelectorAll(
'.nut-calendar-header .nut-calendar-title'
)

expect(canlendarTitle2.length).toBe(0)
const curMonth2 = container.querySelectorAll('.nut-calendar-sub-title')
expect(curMonth2.length).toBe(0)
const tipCurr = container.querySelectorAll('.nut-calendar-day-info-curr')
expect(tipCurr.length).toBe(0)
})

test('show-sub-title prop', async () => {
const { container, rerender } = render(
test('week prop', async () => {
const { container } = render(
<Calendar
visible
showSubTitle
defaultValue="2022-03-18"
startDate="2022-01-01"
endDate="2022-12-31"
type="week"
title="test"
defaultValue={['2025-02-16']}
startDate="2025-01-01"
endDate="2025-3-31"
firstDayOfWeek={1}
/>
)
const viewArea = container.querySelector('.viewArea') as HTMLElement
expect(viewArea.innerHTML).toMatchSnapshot()
})
Comment on lines +55 to +69
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

建议完善周选择模式的测试

当前仅使用快照测试可能无法充分验证周选择的功能正确性。建议添加以下测试项:

  1. 验证选择后的日期范围是否为完整的一周
  2. 验证 firstDayOfWeek 属性是否正确影响了周起始日
  3. 验证跨月周选择的场景

建议添加如下测试代码:

 test('week prop', async () => {
+  const onSelect = vi.fn()
   const { container } = render(
     <Calendar
       visible
       type="week"
       title="test"
       defaultValue={['2025-02-16']}
       startDate="2025-01-01"
       endDate="2025-3-31"
       firstDayOfWeek={1}
+      onSelect={onSelect}
     />
   )
   const viewArea = container.querySelector('.viewArea') as HTMLElement
   expect(viewArea.innerHTML).toMatchSnapshot()
+  
+  // 验证周选择
+  const dateEl = container.querySelectorAll('.nut-calendar-day')[10]
+  fireEvent.click(dateEl)
+  expect(onSelect).toHaveBeenCalledWith(['2025-02-10', '2025-02-16'])
+  
+  // 验证周起始日
+  const weekDays = container.querySelectorAll('.nut-calendar-week-day')
+  expect(weekDays[0].textContent).toBe('一')
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
test('week prop', async () => {
const { container } = render(
<Calendar
visible
showSubTitle
defaultValue="2022-03-18"
startDate="2022-01-01"
endDate="2022-12-31"
type="week"
title="test"
defaultValue={['2025-02-16']}
startDate="2025-01-01"
endDate="2025-3-31"
firstDayOfWeek={1}
/>
)
const viewArea = container.querySelector('.viewArea') as HTMLElement
expect(viewArea.innerHTML).toMatchSnapshot()
})
test('week prop', async () => {
const onSelect = vi.fn()
const { container } = render(
<Calendar
visible
type="week"
title="test"
defaultValue={['2025-02-16']}
startDate="2025-01-01"
endDate="2025-3-31"
firstDayOfWeek={1}
onSelect={onSelect}
/>
)
const viewArea = container.querySelector('.viewArea') as HTMLElement
expect(viewArea.innerHTML).toMatchSnapshot()
// 验证周选择
const dateEl = container.querySelectorAll('.nut-calendar-day')[10]
fireEvent.click(dateEl)
expect(onSelect).toHaveBeenCalledWith(['2025-02-10', '2025-02-16'])
// 验证周起始日
const weekDays = container.querySelectorAll('.nut-calendar-week-day')
expect(weekDays[0].textContent).toBe('一')
})


const curMonth1 = container.querySelectorAll('.nut-calendar-sub-title')

expect(curMonth1.length).toBe(1)

rerender(
test('range prop', async () => {
const { container } = render(
<Calendar
visible
showSubTitle={false}
defaultValue="2022-03-18"
startDate="2022-01-01"
endDate="2022-12-31"
type="range"
title="test"
defaultValue={['2024-12-16', '2025-04-01']}
startDate="2025-01-01"
endDate="2025-3-31"
firstDayOfWeek={1}
/>
)

const curMonth2 = container.querySelectorAll('.nut-calendar-sub-title')

expect(curMonth2.length).toBe(0)
const viewArea = container.querySelector('.viewArea') as HTMLElement
expect(viewArea.innerHTML).toMatchSnapshot()
})
Comment on lines +71 to 85
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

建议增强日期范围选择的测试

当前仅使用快照测试不足以验证日期范围选择的完整功能。建议添加以下测试场景:

  1. 验证起始日期选择
  2. 验证结束日期选择
  3. 验证日期范围限制
  4. 验证跨月选择场景

建议添加如下测试代码:

 test('range prop', async () => {
+  const onSelect = vi.fn()
   const { container } = render(
     <Calendar
       visible
       type="range"
       title="test"
       defaultValue={['2024-12-16', '2025-04-01']}
       startDate="2025-01-01"
       endDate="2025-3-31"
       firstDayOfWeek={1}
+      onSelect={onSelect}
     />
   )
   const viewArea = container.querySelector('.viewArea') as HTMLElement
   expect(viewArea.innerHTML).toMatchSnapshot()
+  
+  // 验证起始日期选择
+  const startDate = container.querySelectorAll('.nut-calendar-day')[5]
+  fireEvent.click(startDate)
+  
+  // 验证结束日期选择
+  const endDate = container.querySelectorAll('.nut-calendar-day')[10]
+  fireEvent.click(endDate)
+  expect(onSelect).toHaveBeenCalledWith(['2025-01-05', '2025-01-10'])
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
test('range prop', async () => {
const { container } = render(
<Calendar
visible
showSubTitle={false}
defaultValue="2022-03-18"
startDate="2022-01-01"
endDate="2022-12-31"
type="range"
title="test"
defaultValue={['2024-12-16', '2025-04-01']}
startDate="2025-01-01"
endDate="2025-3-31"
firstDayOfWeek={1}
/>
)
const curMonth2 = container.querySelectorAll('.nut-calendar-sub-title')
expect(curMonth2.length).toBe(0)
const viewArea = container.querySelector('.viewArea') as HTMLElement
expect(viewArea.innerHTML).toMatchSnapshot()
})
test('range prop', async () => {
const onSelect = vi.fn()
const { container } = render(
<Calendar
visible
type="range"
title="test"
defaultValue={['2024-12-16', '2025-04-01']}
startDate="2025-01-01"
endDate="2025-3-31"
firstDayOfWeek={1}
onSelect={onSelect}
/>
)
const viewArea = container.querySelector('.viewArea') as HTMLElement
expect(viewArea.innerHTML).toMatchSnapshot()
// 验证起始日期选择
const startDate = container.querySelectorAll('.nut-calendar-day')[5]
fireEvent.click(startDate)
// 验证结束日期选择
const endDate = container.querySelectorAll('.nut-calendar-day')[10]
fireEvent.click(endDate)
expect(onSelect).toHaveBeenCalledWith(['2025-01-05', '2025-01-10'])
})


test('show-today prop', async () => {
test('popup prop', async () => {
const { container } = render(
<Calendar
visible
showToday={false}
popup={false}
defaultValue="2022-03-18"
startDate="2022-01-01"
endDate="2022-12-31"
/>
)

const tipCurr = container.querySelectorAll('.nut-calendar-day-info-curr')

expect(tipCurr.length).toBe(0)
const popupNode = container.querySelectorAll('.nut-popup')
expect(popupNode.length).toBe(0)
})

test('should render slot correctly', async () => {
const renderHeaderButtons = () => {
return <div className="d_div"> 最近七天</div>
}

const renderDay = (date: CalendarDay) => {
return <span>custom{date.day}</span>
}

const renderDayBottom = (date: CalendarDay) => {
return <span>{Number(date.day) <= 10 ? '上旬' : '下旬'}</span>
}

const renderHeaderButtons = () => <div className="d_div"> 最近七天</div>
const renderDay = (date: CalendarDay) => <span>custom{date.day}</span>
const renderDayTop = (date: CalendarDay) => (
<span>{Number(date.day) === 10 ? '复盘' : ''}</span>
)
const renderDayBottom = (date: CalendarDay) => (
<span>{Number(date.day) <= 10 ? '上旬' : '下旬'}</span>
)
const { container } = render(
<Calendar
visible
defaultValue="2022-03-18"
startDate="2022-01-01"
endDate="2022-12-31"
startDate="2022-03-01"
endDate="2022-4-31"
renderHeaderButtons={renderHeaderButtons}
renderDay={renderDay}
renderDayTop={renderDayTop}
renderDayBottom={renderDayBottom}
/>
)

const topSlot = container.querySelector(
'.nut-calendar-header-buttons'
) as HTMLElement
Expand All @@ -117,40 +126,104 @@ test('should render slot correctly', async () => {
expect(viewArea.innerHTML).toMatchSnapshot()
})

const testClickEvent = (
type: CalendarType,
startDate: string,
endDate: string,
offset: number,
expected: string,
defaultValue: string | string[] = '2025-01-03'
) => {
const onDayClick = vi.fn()
const { container } = render(
<Calendar
visible
type={type}
defaultValue={defaultValue}
startDate={startDate}
endDate={endDate}
onDayClick={onDayClick}
/>
)
const calendarMonthDay =
container.querySelectorAll('.nut-calendar-day')[offset]
fireEvent.click(calendarMonthDay)
expect(onDayClick).toBeCalled()
const start = container.querySelectorAll(
'.nut-calendar-day-active .nut-calendar-day-day'
)[0]
expect(start.innerHTML).toBe(expected)
}

test('select event when click item', () => {
testClickEvent('single', '2025-01-01', '2025-12-31', 3, '1')
})

test('week select event when click item', () => {
testClickEvent('week', '2025-01-01', '2025-01-31', 15, '12', ['2025-01-04'])
testClickEvent('week', '2025-01-01', '2025-01-31', 4, '1', ['2025-01-27'])
testClickEvent('week', '2025-01-01', '2025-01-31', 30, '26')
})

test('multiple select event when click item', () => {
const onDayClick = vi.fn()
const { container } = render(
<Calendar
visible
defaultValue="2022-03-18"
startDate="2022-01-01"
endDate="2022-12-31"
type="multiple"
defaultValue={['2025-01-01']}
startDate="2025-01-01"
endDate="2025-06-31"
onDayClick={onDayClick}
/>
)

const calendarMonthDay = container.querySelectorAll('.nut-calendar-day')[15]
const start1 = container.querySelectorAll(
'.nut-calendar-day-active .nut-calendar-day-day'
)[0]
expect(start1.innerHTML).toBe('1')

const calendarMonthDay = container.querySelectorAll('.nut-calendar-day')[15]
fireEvent.click(calendarMonthDay)
expect(onDayClick).toBeCalled()
const start2 = container.querySelectorAll(
'.nut-calendar-day-active .nut-calendar-day-day'
)[1]
expect(start2.innerHTML).toBe('13')

const calendarMonthDay2 = container.querySelectorAll('.nut-calendar-day')[16]
fireEvent.click(calendarMonthDay2)
expect(onDayClick).toBeCalled()
const start3 = container.querySelectorAll(
'.nut-calendar-day-active .nut-calendar-day-day'
)[2]
expect(start3.innerHTML).toBe('14')
})

test('choose event when click item', async () => {
const onConfirm = vi.fn()
test('range select event when click item', () => {
const onDayClick = vi.fn()
const { container } = render(
<Calendar
visible
defaultValue="2022-03-18"
startDate="2022-01-01"
endDate="2022-12-31"
onConfirm={onConfirm}
type="range"
startDate="2025-01-01"
endDate="2025-06-31"
onDayClick={onDayClick}
/>
)

const calendarConfirmBtn = container.querySelectorAll(
'.calendar-confirm-btn'
const calendarMonthDay = container.querySelectorAll('.nut-calendar-day')[15]
fireEvent.click(calendarMonthDay)
expect(onDayClick).toBeCalled()
const start = container.querySelectorAll(
'.nut-calendar-day-active .nut-calendar-day-day'
)[0]
expect(start.innerHTML).toBe('13')

fireEvent.click(calendarConfirmBtn)
expect(onConfirm).toBeCalled()
const calendarMonthDay2 = container.querySelectorAll('.nut-calendar-day')[20]
fireEvent.click(calendarMonthDay2)
expect(onDayClick).toBeCalled()
const next = container.querySelectorAll(
'.nut-calendar-day-choose .nut-calendar-day-day'
)[0]
expect(next.innerHTML).toBe('14')
})
Comment on lines 158 to 229
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

建议添加边界场景测试

当前的选择模式测试覆盖了基本场景,建议添加以下边界场景的测试:

  1. 选择起始日期前的日期
  2. 选择结束日期后的日期
  3. 跨月份选择的场景
  4. 重复选择同一天的场景
  5. 取消选择的场景

建议为每种选择模式添加如下测试场景:

 test('multiple select event when click item', () => {
   // ... 现有代码保持不变
+  
+  // 测试选择限制
+  const disabledDay = container.querySelectorAll('.nut-calendar-day-disabled')[0]
+  fireEvent.click(disabledDay)
+  expect(onDayClick).not.toHaveBeenCalledWith(expect.stringContaining('2024'))
+  
+  // 测试重复选择
+  fireEvent.click(calendarMonthDay)
+  const activeItems = container.querySelectorAll('.nut-calendar-day-active')
+  expect(activeItems.length).toBe(2) // 重复选择应该取消选中状态
 })

 test('range select event when click item', () => {
   // ... 现有代码保持不变
+  
+  // 测试跨月选择
+  const nextMonthButton = container.querySelector('.nut-calendar-next')
+  fireEvent.click(nextMonthButton)
+  const nextMonthDay = container.querySelectorAll('.nut-calendar-day')[5]
+  fireEvent.click(nextMonthDay)
+  expect(onDayClick).toHaveBeenCalledWith(expect.stringContaining('2025-02'))
 })
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
test('select event when click item', () => {
testClickEvent('single', '2025-01-01', '2025-12-31', 3, '1')
})
test('week select event when click item', () => {
testClickEvent('week', '2025-01-01', '2025-01-31', 15, '12', ['2025-01-04'])
testClickEvent('week', '2025-01-01', '2025-01-31', 4, '1', ['2025-01-27'])
testClickEvent('week', '2025-01-01', '2025-01-31', 30, '26')
})
test('multiple select event when click item', () => {
const onDayClick = vi.fn()
const { container } = render(
<Calendar
visible
defaultValue="2022-03-18"
startDate="2022-01-01"
endDate="2022-12-31"
type="multiple"
defaultValue={['2025-01-01']}
startDate="2025-01-01"
endDate="2025-06-31"
onDayClick={onDayClick}
/>
)
const calendarMonthDay = container.querySelectorAll('.nut-calendar-day')[15]
const start1 = container.querySelectorAll(
'.nut-calendar-day-active .nut-calendar-day-day'
)[0]
expect(start1.innerHTML).toBe('1')
const calendarMonthDay = container.querySelectorAll('.nut-calendar-day')[15]
fireEvent.click(calendarMonthDay)
expect(onDayClick).toBeCalled()
const start2 = container.querySelectorAll(
'.nut-calendar-day-active .nut-calendar-day-day'
)[1]
expect(start2.innerHTML).toBe('13')
const calendarMonthDay2 = container.querySelectorAll('.nut-calendar-day')[16]
fireEvent.click(calendarMonthDay2)
expect(onDayClick).toBeCalled()
const start3 = container.querySelectorAll(
'.nut-calendar-day-active .nut-calendar-day-day'
)[2]
expect(start3.innerHTML).toBe('14')
})
test('choose event when click item', async () => {
const onConfirm = vi.fn()
test('range select event when click item', () => {
const onDayClick = vi.fn()
const { container } = render(
<Calendar
visible
defaultValue="2022-03-18"
startDate="2022-01-01"
endDate="2022-12-31"
onConfirm={onConfirm}
type="range"
startDate="2025-01-01"
endDate="2025-06-31"
onDayClick={onDayClick}
/>
)
const calendarConfirmBtn = container.querySelectorAll(
'.calendar-confirm-btn'
const calendarMonthDay = container.querySelectorAll('.nut-calendar-day')[15]
fireEvent.click(calendarMonthDay)
expect(onDayClick).toBeCalled()
const start = container.querySelectorAll(
'.nut-calendar-day-active .nut-calendar-day-day'
)[0]
expect(start.innerHTML).toBe('13')
fireEvent.click(calendarConfirmBtn)
expect(onConfirm).toBeCalled()
const calendarMonthDay2 = container.querySelectorAll('.nut-calendar-day')[20]
fireEvent.click(calendarMonthDay2)
expect(onDayClick).toBeCalled()
const next = container.querySelectorAll(
'.nut-calendar-day-choose .nut-calendar-day-day'
)[0]
expect(next.innerHTML).toBe('14')
})
test('select event when click item', () => {
testClickEvent('single', '2025-01-01', '2025-12-31', 3, '1')
})
test('week select event when click item', () => {
testClickEvent('week', '2025-01-01', '2025-01-31', 15, '12', ['2025-01-04'])
testClickEvent('week', '2025-01-01', '2025-01-31', 4, '1', ['2025-01-27'])
testClickEvent('week', '2025-01-01', '2025-01-31', 30, '26')
})
test('multiple select event when click item', () => {
const onDayClick = vi.fn()
const { container } = render(
<Calendar
visible
type="multiple"
defaultValue={['2025-01-01']}
startDate="2025-01-01"
endDate="2025-06-31"
onDayClick={onDayClick}
/>
)
const start1 = container.querySelectorAll(
'.nut-calendar-day-active .nut-calendar-day-day'
)[0]
expect(start1.innerHTML).toBe('1')
const calendarMonthDay = container.querySelectorAll('.nut-calendar-day')[15]
fireEvent.click(calendarMonthDay)
expect(onDayClick).toBeCalled()
const start2 = container.querySelectorAll(
'.nut-calendar-day-active .nut-calendar-day-day'
)[1]
expect(start2.innerHTML).toBe('13')
const calendarMonthDay2 = container.querySelectorAll('.nut-calendar-day')[16]
fireEvent.click(calendarMonthDay2)
expect(onDayClick).toBeCalled()
const start3 = container.querySelectorAll(
'.nut-calendar-day-active .nut-calendar-day-day'
)[2]
expect(start3.innerHTML).toBe('14')
// 测试选择限制
const disabledDay = container.querySelectorAll('.nut-calendar-day-disabled')[0]
fireEvent.click(disabledDay)
expect(onDayClick).not.toHaveBeenCalledWith(expect.stringContaining('2024'))
// 测试重复选择
fireEvent.click(calendarMonthDay)
const activeItems = container.querySelectorAll('.nut-calendar-day-active')
expect(activeItems.length).toBe(2) // 重复选择应该取消选中状态
})
test('range select event when click item', () => {
const onDayClick = vi.fn()
const { container } = render(
<Calendar
visible
type="range"
startDate="2025-01-01"
endDate="2025-06-31"
onDayClick={onDayClick}
/>
)
const calendarMonthDay = container.querySelectorAll('.nut-calendar-day')[15]
fireEvent.click(calendarMonthDay)
expect(onDayClick).toBeCalled()
const start = container.querySelectorAll(
'.nut-calendar-day-active .nut-calendar-day-day'
)[0]
expect(start.innerHTML).toBe('13')
const calendarMonthDay2 = container.querySelectorAll('.nut-calendar-day')[20]
fireEvent.click(calendarMonthDay2)
expect(onDayClick).toBeCalled()
const next = container.querySelectorAll(
'.nut-calendar-day-choose .nut-calendar-day-day'
)[0]
expect(next.innerHTML).toBe('14')
// 测试跨月选择
const nextMonthButton = container.querySelector('.nut-calendar-next')
fireEvent.click(nextMonthButton)
const nextMonthDay = container.querySelectorAll('.nut-calendar-day')[5]
fireEvent.click(nextMonthDay)
expect(onDayClick).toHaveBeenCalledWith(expect.stringContaining('2025-02'))
})

18 changes: 9 additions & 9 deletions src/packages/calendar/calendar.scss
Original file line number Diff line number Diff line change
Expand Up @@ -190,18 +190,18 @@
}
}

&-choose-disabled {
background-color: $calendar-choose-disable-background-color;
color: $calendar-disable-color !important;

.nut-calendar-day-info-curr {
display: none;
}
}

&-choose {
background-color: $calendar-choose-background-color;
color: $calendar-choose-color;

&-disabled {
background-color: $calendar-choose-disable-background-color;
color: $calendar-disable-color !important;

.nut-calendar-day-info-curr {
display: none;
}
}
}
}

Expand Down
6 changes: 3 additions & 3 deletions src/packages/calendar/calendar.taro.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React, { useRef, ReactNode } from 'react'
import Popup from '@/packages/popup/index.taro'
import CalendarItem from '@/packages/calendaritem/index.taro'
import { Utils } from '@/utils/date'
import { getDateString } from '@/utils/date'
import { useConfig } from '@/packages/configprovider/configprovider.taro'
import type { CalendarDay, CalendarType, CalendarRef } from './types'
import { ComponentDefaults } from '@/utils/typings'
Expand Down Expand Up @@ -44,8 +44,8 @@ const defaultProps = {
visible: false,
title: '',
defaultValue: '',
startDate: Utils.getDay(0),
endDate: Utils.getDay(365),
startDate: getDateString(0),
endDate: getDateString(365),
showToday: true,
startText: '',
endText: '',
Expand Down
6 changes: 3 additions & 3 deletions src/packages/calendar/calendar.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React, { useRef, ReactNode } from 'react'
import Popup from '@/packages/popup'
import CalendarItem from '@/packages/calendaritem'
import { Utils } from '@/utils/date'
import { getDateString } from '@/utils/date'
import { useConfig } from '@/packages/configprovider'
import type { CalendarDay, CalendarType, CalendarRef } from './types'
import { ComponentDefaults } from '@/utils/typings'
Expand Down Expand Up @@ -44,8 +44,8 @@ const defaultProps = {
visible: false,
title: '',
defaultValue: '',
startDate: Utils.getDay(0),
endDate: Utils.getDay(365),
startDate: getDateString(0),
endDate: getDateString(365),
showToday: true,
startText: '',
endText: '',
Expand Down
Loading
Loading