只读模式

您可以轻松地将日历设置为只读模式,以防止用户修改。这对于公共日历或仅用于展示的仪表板非常有用。

只读模式只会禁用 DayFlow 内置的修改 UI。像 calendar.addEvent()calendar.updateEvent()calendar.deleteEvent()calendar.applyEventsChanges() 这样的程序化 API 仍然可以正常使用。

基本用法

要启用只读模式,请在日历配置中传递 readOnly: true

const calendar = useCalendarApp({
  views: [createMonthView()],
  readOnly: true, // 禁用内置修改 UI(拖拽、创建、编辑)
});

细粒度控制

您还可以提供一个 ReadOnlyConfig 对象来选择性地禁用某些功能:

const calendar = useCalendarApp({
  views: [createMonthView()],
  readOnly: {
    draggable: false, // 禁用拖拽
    viewable: true, // 允许点击查看事件详情(只读模式)
  },
});

配置选项

选项类型描述
draggableboolean是否可以通过拖拽移动事件或调整其大小。
viewableboolean是否可以查看事件详情(打开详情面板/对话框)。

readOnly 激活时,日历还会隐藏"创建"按钮和其他通常会触发更改的 UI 元素。

自定义 UI

如果您渲染了自己的按钮、菜单或弹窗,建议使用 calendar.canMutateFromUI() 来决定是否显示修改入口:

const calendar = useCalendarApp({
  views: [createMonthView()],
  readOnly: true,
});

const canEdit = calendar.canMutateFromUI();
  • true:自定义 UI 可以显示创建、编辑、删除等入口。
  • false:自定义 UI 应隐藏或禁用这些修改入口。