日历表

日历社区版+

介绍

日历表适合保存带时间范围的数据,比如会议室预约、项目排期、课程安排、值班计划、活动日程。它本质上仍然是一个数据表,不过会预置和日历事件相关的字段,方便后续配合日历区块使用。

日历表只能通过主数据库页面创建。外部数据库、REST API 数据源和外部 NocoBase 数据源不支持创建日历表。

适用场景

日历表适合这些业务场景:

  • 会议室预约、车辆预约、设备预约
  • 项目排期、任务计划、里程碑安排
  • 课程表、培训计划、活动日程
  • 值班计划、排班记录、巡检计划
  • 需要按日、周、月查看的事件记录

创建配置

在主数据库中点击「Create collection」,选择「Calendar collection」可以创建日历表。

日历表的创建配置与普通表基本一致。Preset fields 用来控制常用系统字段,日历表还会预置用于保存重复事件的字段。

配置说明
Collection display name数据表在界面中显示的名称,比如「会议室预约」「课程安排」「值班计划」。
Collection name数据表的标识名称,用于 API、关系字段、权限、工作流等内部引用。
Inherits选择要继承的父表。只有主数据库是 PostgreSQL 时可见。
Categories数据表分类。分类只影响数据表管理界面的组织方式,不改变数据表结构。
Description数据表说明。可以写这个日历表保存什么事件、由谁维护、和哪些业务流程有关。
Preset fields预设字段。创建日历表时建议保留系统字段和日历表内置字段。

内置字段

日历表创建后通常包含这些内置字段。cron 和 exclude 用来保存重复事件规则和排除日期。

字段字段名说明
IDid默认主键字段,用于唯一标识一条事件记录。
创建时间createdAt自动记录事件记录的创建时间。
创建人createdBy自动记录创建事件记录的用户。
更新时间updatedAt自动记录事件记录最后一次更新的时间。
更新人updatedBy自动记录最后一次更新事件记录的用户。
排序sort保存事件记录的排序值,用于支持拖拽排序等排序能力。
Repeatscron保存重复事件规则,比如每天、每周、每月或每年重复。
Excludeexclude保存重复事件中被排除的日期,通常由日历交互自动维护。
空间space启用多空间插件后可用,用于按空间隔离数据。没有启用多空间时不会出现。

日历区块使用日历表时,还需要指定用于展示事件的业务字段:

配置说明
标题字段确定事件在日历中的标题,比如「会议主题」「课程名称」。
开始日期字段确定事件开始时间。通常使用日期时间字段。
结束日期字段确定事件结束时间。通常使用日期时间字段。
注意

cron 和 exclude 通常由日历能力维护,不建议当作普通业务字段直接编辑。标题、开始日期和结束日期字段需要根据业务自己创建和配置,否则日历区块无法正确展示事件。

主键字段

日历表和普通表一样需要主键字段。创建表时建议保留 ID 预设字段,默认主键类型是 Snowflake ID (53-bit)。

如果日历表没有主键,需要在编辑数据表时设置「Record unique key」,否则日历区块可能无法正确打开、编辑或定位事件记录。

编辑配置

在数据表列表中,点击日历表右侧的「Edit」,可以修改数据表显示名称、分类、说明、简单分页模式和「Record unique key」等配置。

日历表的 cron、exclude 等内置字段通常用于日历能力,不建议改成其他业务含义。如果需要扩展事件信息,可以新增普通业务字段,比如地点、参与人、会议室、状态等。

删除数据表

在数据表列表中,点击日历表右侧的「Delete」,可以删除日历表。

删除日历表会删除事件记录、日历内置字段数据和相关 Collection 元数据。删除前先确认日历区块、表格区块、权限、工作流和 API 是否仍然依赖这张表。

警告

日历表通常保存排期、预约和值班等时间数据。删除后,历史事件和重复规则都会丢失,操作前先确认数据已经备份或不再需要。

页面配置使用

日历表可以使用普通表的多数数据区块做增删改查。另外,它通常会配合日历区块使用:

区块用途
日历区块按日、周、月等视图展示事件记录,并在日历中创建、查看和编辑事件。
表格区块按列表方式查看、筛选和批量维护事件记录。
表单区块新增或编辑单条事件记录。
详情区块查看单条事件的详细信息。

相关链接