HammerHammer

日程

支持月/周/日视图与事件编辑的日程日历组件。

Open in v0

最后更新:2026/02/04 21:34:33

Open preview in new tab

安装

npm install @chaos-design/calendar

使用方式

import "@chaos-design/calendar/dist/es/index.css";
import { Calendar } from "@chaos-design/calendar";

const initialDate = new Date();

export default function Demo() {
  return (
    <Calendar
      initialDate={initialDate}
      locale="zh"
      defaultView="month"
      events={[
        {
          id: "1",
          title: "每日站会",
          start: new Date(2026, 0, 31, 10, 0),
          end: new Date(2026, 0, 31, 10, 30),
          color: "bg-red-600",
          allDay: true,
        },
      ]}
    />
  );
}

在 shadcn/ui 中使用

  1. 安装依赖
npm install @chaos-design/calendar
  1. 在全局样式中引入日历样式
@import "@chaos-design/calendar/dist/es/index.css";
  1. 在组件中使用
import { Calendar } from "@chaos-design/calendar";

export default function Demo() {
  return <Calendar defaultView="month" locale="zh" />;
}

Props

属性类型默认值说明
classNamestring-自定义类名。
classNamesCalendarClassNames-内部组件自定义类名。
eventsCalendarEvent[]-受控事件列表。
defaultEventsCalendarEvent[][]非受控初始事件列表。
defaultView"month" | "week" | "day""month"初始视图。
weekStart"sunday" | "monday""monday"一周起始日。
initialDateDatenew Date()初始聚焦日期。
onEventCreate(event: CalendarEvent) => void-新建事件回调。
onEventUpdate(event: CalendarEvent) => void-更新事件回调。
onEventDelete(id: string) => void-删除事件回调。
theme"light" | "dark""light"主题模式。
onThemeToggle(next: "light" | "dark") => void-主题切换回调。
categoriesCalendarCategory[]DEFAULT_CATEGORIES分类列表。
locale"en" | "zh""en"语言。
onLocaleChange(next: "en" | "zh") => void-语言切换回调。
themeConfigThemeConfigDEFAULT_THEME主题配置覆盖。

CalendarEvent

属性类型说明
idstring事件唯一标识。
titlestring事件标题。
startDate开始时间。
endDate结束时间。
colorstring事件颜色 (Tailwind class 或 Hex)。
allDayboolean是否为全天事件。
descriptionstring事件描述 (可选)。
categorystring事件分类 ID (可选)。

CalendarClassNames

属性类型说明
containerstring根容器。
headerstring头部区域。
monthViewstring月视图容器。
weekViewstring周视图容器。
dayViewstring日视图容器。
eventModalstring事件弹窗。
eventPopoverstring事件气泡。
inlineEditorstring内联编辑器。

On this page