Calendar 日历
以日/周/多日视图展示日程事件
何时使用
- 需要以日历形式展示日期或选择日期时。
导入
星期、年月标题、"今天"、上午、下午、全天等文案默认跟随全局语言(zh-CN / zh-TW / en-US),传 prop 可覆盖。
基础用法
2026年9月
日
一
二
三
四
五
六
30
31
1 9月
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1 10月
2
3
4
5
6
7
8
9
10
默认月视图,通过 mode 切换日/周/月/多日视图。
日视图
周视图
多日视图
通过 mode 为 range,配合 range 属性指定日期范围(左闭右开)。
设置周起始日
通过 weekStartsOn 设置每周第一天,0 代表周日,1 代表周一。
事件渲染
通过 events 传入需要渲染的事件。
区分周末
通过 markWeekend 以灰色显示周末列。
自定义日期文案
通过 #renderDateDisplay slot 自定义日期文案。
自定义单元格渲染
通过 #dateGridRender slot 自定义月视图单元格。
默认滚动位置
通过 scrollTop 设置日/周视图的默认滚动高度。
API
Props
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| mode | 视图模式 | day | week | month | range | month |
| displayValue | 展示日期 | Date | 当前日期 |
| events | 事件列表 | CalendarEvent[] | [] |
| range | 多日视图日期范围(左闭右开) | Date[] | - |
| weekStartsOn | 周起始日(0=周日,1=周一) | number | 0 |
| showCurrTime | 显示当前时间线 | boolean | true |
| markWeekend | 区分周末 | boolean | false |
| height | 日历高度 | number | string | 600 |
| width | 日历宽度 | number | string | - |
| scrollTop | 日/周视图默认滚动高度 | number | 400 |
| minEventHeight | 事件最小高度 | number | 20 |
| class | 附加类名 | string | - |
Events
| 事件 | 说明 | 回调参数 |
|---|---|---|
| click | 点击日期/时间格 | (e: Event, date: Date) |
| close | 月视图事件卡片关闭 | (e: Event) |
| moreClick | 月视图点击"更多" | (e: Event, date: Date, remaining: number) |
Slots
| 名称 | 说明 | 参数 |
|---|---|---|
| header | 自定义头部 | - |
| dateGridRender | 自定义单元格渲染 | { dateString: string, date: Date } |
| renderDateDisplay | 自定义日期文案 | { date: Date } |
| renderTimeDisplay | 自定义时间文案 | { time: number } |
| allDayEventsRender | 自定义全天事件渲染 | { events: CalendarEvent[] } |
CalendarEvent
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| key | 唯一标识(必填) | string | - |
| start | 事件起始时间 | Date | - |
| end | 事件结束时间 | Date | - |
| allDay | 是否全天事件 | boolean | false |
| children | 展示内容 | VNode | string | - |
视图模式
| mode | 说明 |
|---|---|
day | 日视图,单日时间轴 |
week | 周视图,7 日时间轴 |
month | 月视图,日历网格 |
range | 多日视图,自定义日期范围 |
