代码演示

如何引入

jsx
import { Calendar } from '@kousum/semi-ui-vue';

日视图

日视图的日历模板,可通过 showCurrTime 控制是否显示当前时间的位置红线。

demoApp.vue
demo.tsx
tsconfig.json
Import Map
Show Error
Auto Save

周视图

周视图的日历模板,可通过 showCurrTime 控制是否显示当前时间的位置红线。

demoApp.vue
demo.tsx
tsconfig.json
Import Map
Show Error
Auto Save

月视图

月视图的日历模板。

demoApp.vue
demo.tsx
tsconfig.json
Import Map
Show Error
Auto Save

设置周起始日

可以通过 weekStartsOn 设置周几作为每周第一天,0 代表周日,1 代表周一,以此类推。默认为周日。weekStartsOn 自 v2.18 起提供,对月视图、周视图生效。

demoApp.vue
demo.tsx
tsconfig.json
Import Map
Show Error
Auto Save

多日视图

>=1.5.0
多日视图模式。 range 必传,左闭右开。

demoApp.vue
demo.tsx
tsconfig.json
Import Map
Show Error
Auto Save

事件渲染用法

通过 events 传入需要渲染的事件,events 是一个由 event objects 组成的数组,具体形式请参考 events API。

demoApp.vue
demo.tsx
tsconfig.json
Import Map
Show Error
Auto Save

自定义渲染

通过 dateGridRender 可以自定义渲染日期单元格/列。需要使用绝对定位。

自定义渲染事件

demoApp.vue
demo.tsx
tsconfig.json
Import Map
Show Error
Auto Save

自定义渲染单元格样式

可以通过 dateGridRender 自定义单元格的背景,月视图的文字 zIndex 默认为 3,如需完全覆盖单元格可以设置更大的 zIndex 来实现。

demoApp.vue
demo.tsx
tsconfig.json
Import Map
Show Error
Auto Save

自定义日期文案

可以通过 renderDateDisplay 自定义日期文案。

demoApp.vue
demo.tsx
tsconfig.json
Import Map
Show Error
Auto Save

API 参考

Calendar

属性说明类型默认值
dateGridRender自定义单元格/列渲染,需要绝对定位, v>=1.0.0function(dateString: string, date: Date)-
allDayEventsRender自定义日/多日/周视图下的顶部事件渲染function(events: EventObject[]): ReactNode-
displayValue展示日期Date当前日期
events渲染事件,具体格式请参考 event objectEventObject[]-
header自定义头部内容ReactNode-
height日历高度string|number600
markWeekend区分周末列和工作日,以灰色显示booleanfalse
minEventHeight日视图、多日视图以及周视图下事件的最小高度(>=2.49.0)numberNumber.MIN_SAFE_INTEGER
mode初始模式,day, week, month, range(>=1.5.0)"day" | "week" | "month" | "range"week
onClick单击日期格的回调,日视图和周视图以半小时为单位,月视图以日为单位function(e: Event, date: Date)-
onClose月视图下,展示所有 event 的卡片关闭时的回调function(e: Event)-
range多日视图模式下展示的日期范围,左闭右开 v>=1.5.0Date[]-
renderTimeDisplay自定义日/周视图下的时间文案function(time: number): ReactNode-
renderDateDisplay自定义日期文案function(date: Date): ReactNode-
scrollTop日视图和周视图模式下,设置展示内容默认的滚动高度number400
showCurrTime显示当前时间booleantrue
width日历宽度string|number-
weekStartsOn以周几作为每周第一天,0 代表周日,1 代表周一,以此类推。v2.18后支持number0

Event Object

events 是一个 event object 组成的数组,event object 约定格式如下:
当事件为全天事件时,若没有传入起始结束时间,则自动追加到 displayValue 的日期中;当事件不是全天事件时,起始结束时间至少传入一个才会被视为有效事件

注意
不同 event 的 key 值要求必填且唯一,以此控制事件的更新与重绘。
属性说明类型默认值
allDay全天事件booleanfalse
children展示日期React.node-
end事情结束的时间Date-
keyrequired 且要求唯一, v>=1.0.0string-
start事情起始的时间Date-

文案规范

  • 当需要显示时间时,12 小时制和 24 小时制都是可以使用的
  • 如果采用12小时制,需要搭配 AM/PM 一起使用,具体内容可参考 时间规范
  • 关于月份、星期、时间的缩写使用规则,可参考 缩写规范

设计变量

变量默认值用法
$color-calendar-bg-activevar(--semi-color-primary)今日标识颜色
$color-calendar-bgvar(--semi-color-bg-2)日历背景颜色
$color-calendar-text-activevar(--semi-color-bg-1)日历文字颜色 - 今日
$color-calendar_curr-bgvar(--semi-color-danger)当前时间标识线颜色
$color-calendar_curr-bordervar(--semi-color-danger)当前时间标识线颜色
$color-calendar_currCircle-bg-defaultvar(--semi-color-danger)当前时间标识原点颜色
$color-calendar_date-text-defaultvar(--semi-color-text-0)日历文字颜色 - 当月
$color-calendar_day-bordervar(--semi-color-border)日历描边颜色
$color-calendar_day-text-defaultvar(--semi-color-text-2)日历文字颜色 - 非当月
$color-calendar_sticky-bgvar(--semi-color-bg-2)日历背景颜色 - 吸顶部分
显示第 1 条-第 10 条,共 11 条
  • 1
  • 2