mirror of
https://gitee.com/wot-design-uni/wot-design-uni.git
synced 2025-12-07 17:48:34 +08:00
fix: 🐛 修复 Calendar 为周选择时跨年周的单元格值显示错误的问题 (#854)
This commit is contained in:
parent
1c29703473
commit
c0d48b25c1
@ -152,17 +152,35 @@ const defaultDisplayFormat = (value: number | number[], type: CalendarType): str
|
||||
'to'
|
||||
)}\n${(value as number[])[1] ? dayjs((value as number[])[1]).format(translate('timeFormat')) : translate('endTime')}`
|
||||
case 'week': {
|
||||
const year = new Date(value as number).getFullYear()
|
||||
const date = new Date(value as number)
|
||||
const year = date.getFullYear()
|
||||
const week = getWeekNumber(value as number)
|
||||
return translate('weekFormat', year, padZero(week))
|
||||
const weekStart = new Date(date)
|
||||
weekStart.setDate(date.getDate() - date.getDay() + 1)
|
||||
const weekEnd = new Date(date)
|
||||
weekEnd.setDate(date.getDate() + (7 - date.getDay()))
|
||||
const adjustedYear = weekEnd.getFullYear() > year ? weekEnd.getFullYear() : year
|
||||
return translate('weekFormat', adjustedYear, padZero(week))
|
||||
}
|
||||
case 'weekrange': {
|
||||
const year1 = new Date((value as number[])[0]).getFullYear()
|
||||
const date1 = new Date((value as number[])[0])
|
||||
const date2 = new Date((value as number[])[1])
|
||||
const year1 = date1.getFullYear()
|
||||
const year2 = date2.getFullYear()
|
||||
const week1 = getWeekNumber((value as number[])[0])
|
||||
const year2 = new Date((value as number[])[1]).getFullYear()
|
||||
const week2 = getWeekNumber((value as number[])[1])
|
||||
return `${(value as number[])[0] ? translate('weekFormat', year1, padZero(week1)) : translate('startWeek')} - ${
|
||||
(value as number[])[1] ? translate('weekFormat', year2, padZero(week2)) : translate('endWeek')
|
||||
const weekStart1 = new Date(date1)
|
||||
weekStart1.setDate(date1.getDate() - date1.getDay() + 1)
|
||||
const weekEnd1 = new Date(date1)
|
||||
weekEnd1.setDate(date1.getDate() + (7 - date1.getDay()))
|
||||
const weekStart2 = new Date(date2)
|
||||
weekStart2.setDate(date2.getDate() - date2.getDay() + 1)
|
||||
const weekEnd2 = new Date(date2)
|
||||
weekEnd2.setDate(date2.getDate() + (7 - date2.getDay()))
|
||||
const adjustedYear1 = weekEnd1.getFullYear() > year1 ? weekEnd1.getFullYear() : year1
|
||||
const adjustedYear2 = weekEnd2.getFullYear() > year2 ? weekEnd2.getFullYear() : year2
|
||||
return `${(value as number[])[0] ? translate('weekFormat', adjustedYear1, padZero(week1)) : translate('startWeek')} - ${
|
||||
(value as number[])[1] ? translate('weekFormat', adjustedYear2, padZero(week2)) : translate('endWeek')
|
||||
}`
|
||||
}
|
||||
case 'month':
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user