Appearance
BizCalendarBoard 日期排版
月/周双模式日期排版板:月模式按天网格铺满整月(动态行数),周模式 7 天横排;头部支持上一月/下一月(周模式为上一周/下一周)切换与「今天」回跳。单元格内容经 #cell 作用域插槽完全自定义;当天之前的日期默认禁用(不可选中、不触发事件),并支持 min/max 范围与 disabled-date 组合圈定可交互区间。排班、考勤、预约、营销日历等一切「按天组织内容」的场景。
基础用法
2026年10月
28
29
30
1
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
31
上线窗口
1
选中:未选择;灰色单元格为当天之前的日期,点击不生效。
周模式排班
2026年第44周(10.26 - 11.1)
10月26日 周一今
早班
10月27日 周二
中班晚班
10月28日 周三
10月29日 周四
早班中班
10月30日 周五
10月31日 周六
11月1日 周日
点击本周及以后的日期逐个追加班次(满 3 个后再点即清空);当天之前的日期组件已禁用,不会被误改。
考勤月历(只读 + 周末高亮)
2026年10月
28
29
30
1
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
31
1
历史月份自动整体禁用只读;周末列红色高亮,红点=迟到、灰点=缺卡、橙点=外勤。
场地预约(范围与自定义禁用)
2026年10月
28
29
30
1
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
余 6
28
余 0
29
余 12
30
31
余 3
1
余 8
仅 30 天内可约(其余日期禁用);周日闭馆整体禁用;点满员日期给出告警。
外部控制与实例方法
2026年10月
28
29
30
1
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
31
1
当前面板范围:点击上方按钮查看
营销日历(完全自定义单元格)
2026年10月
28
29
30
1
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
31
1
会员日直播
蓝条=促销、绿条=新品、橙条=直播;历史活动自动呈灰色已结束态,当天之前的日期不可再选。
日程事件(基础)
2026年10月
28
29
30
1
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今
09:30-10:00晨会同步14:00-15:30版本评审
27
10:00-11:30客户拜访
28
29
周年庆活动
30
31
16:00-16:301v1 沟通
1
点击事件条:(尚未点击事件);点击空白格选中日期(cell-click 可挂「新建日程」)。
日程事件(溢出折叠)
2026年10月
28
29
30
1
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今
09:00产品评审10:30面试-前端13:30架构讨论 +2 项
27
28
11:00项目例会
29
30
31
1
单格最多渲染 3 条,超出折叠为「+N 项」;event-limit 可按格子高度自由调整。
日程事件(跨天 / 全天排期)
2026年10月
28
29
30
1
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
618 大促
28
618 大促新品巡展
29
618 大促新品巡展
30
618 大促
31
1
19:00-21:00会员夜场
跨天事件在区间内每日铺满(描边轻量形态);最近点击:(尚未点击);切到周模式可逐日查看排期。
日程事件(新建与查看联动)
2026年10月
28
29
30
1
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今
10:00-11:00迭代规划
27
28
15:00用例评审
29
30
版本发布
31
1
点击空白格按日期新建日程、点击事件条查看详情——事件列表是响应式数据,增删后事件条即时刷新。
日程导出 .ics
2026年10月
28
29
30
1
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今
09:30-11:00季度经营分析会
27
28
供应商年度审计
29
供应商年度审计
30
供应商年度审计
31
1
time(09:30-11:00)→ 当日 VEVENT 起止时刻;跨天(28~30)→ 起日 0 点 ~ 止日次日 0 点全天口径;allDay → 单日全天。
按视图范围导出
2026年10月
28
29
30
1
2
3
4
5
6
7
8
9
月度安全巡检
10
11
12
13
14
15
16
17
18
19
20
21
14:00-15:30新品评审会
22
23
24
25
26今
27
28
29
30
31
1
(尚未读取)
exportIcs 按 events 全量导出;如需「仅当前视图」,用 getViewRange() 区间过滤 events 后再触发导出(事件源由业务侧控制)。
导出口径预览(事件粒度)
2026年10月
28
29
30
1
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
09:00-09:30晨会15:00-16:30客户到访
28
29
30
31
1
(点击日历中的事件条查看导出口径)
点击事件条预览其 .ics VEVENT 换算口径;配合导出按钮即可「先看再导」。
Props
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| model-value / v-model | string | Date | — | 选中日期;update 始终返回当日 0 点的 Date |
| mode / v-model:mode | 'month' | 'week' | 'month' | 展示模式(月网格 / 周横排) |
| first-day-of-week | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 1 | 周起始日(0 周日) |
| disable-past | boolean | true | 当天之前不允许修改(禁用且不触发事件) |
| min-date | string | Date | — | 可交互最早日期(含当天) |
| max-date | string | Date | — | 可交互最晚日期(含当天) |
| disabled-date | (date: Date) => boolean | — | 自定义禁用函数,返回 true 禁用 |
| marks | BizCalendarBoardMark[] | [] | 单元格标记(默认内容渲染色点 + 文案,可被 #cell 接管) |
| events | BizCalendarEvent[] | [] | 日程事件列表:传入后单元格默认渲染事件条(时间 + 标题 + 语义色,allDay 描边形态),跨天事件按 date ~ end 区间每日铺满;#cell 插槽仍可完全接管 |
| event-limit | number | 3 | 每格最多渲染的事件条数,超出折叠为「+N 项」(点击外抛 event-more) |
| selectable | boolean | true | 点击单元格是否更新 v-model 选中态;纯展示置 false |
| highlight-weekend | boolean | false | 高亮周末(表头与单元格日期) |
| show-mode-switch | boolean | true | 展示月/周切换按钮组 |
| show-today | boolean | true | 展示「今天」回跳按钮(已在当前面板时置灰) |
| month-cell-height | number | 96 | 月模式单元格高度 px |
| week-cell-height | number | 220 | 周模式单元格高度 px |
BizCalendarBoardMark:{ date: string \| Date, type?: 'primary' \| 'success' \| 'warning' \| 'danger' \| 'info', text?: string }。BizCalendarEvent:{ id, title, date, end?, type?, time?, allDay?, meta? }——end晚于date即跨天事件(区间每日渲染);time为 '09:00-10:30' 类展示文案;meta随事件点击原样带出。 禁用判定:disable-past(今天 0 点前)、min-date、max-date、disabled-date 任一命中即禁用;禁用单元格不响应点击(无 hover、无事件)。
Events
| 事件名 | 参数 | 说明 |
|---|---|---|
| update:model-value | (value: Date) | 选中日期变化(当日 0 点) |
| update:mode | (mode: 'month' | 'week') | 月/周模式切换 |
| cell-click | (cell: BizCalendarBoardCell) | 启用单元格点击(禁用单元格不触发) |
| event-click | (event: BizCalendarEvent) | 日程事件条点击(已阻止冒泡,不触发单元格选中) |
| event-more | ({ date, key, events }) | 某日事件超出 event-limit,点击「+N 项」查看当日全部事件 |
| view-change | (payload: BizCalendarBoardViewChange) | 视图切换:{ viewDate, mode, source };source 为 prev / next / today / go-to / mode / select / prop |
BizCalendarBoardCell:{ date, key, year, month, day, weekDay, weekDayText, inPanel, isToday, isSelected, disabled, past, weekend, mark, events }——key为 'YYYY-MM-DD',可直接作业务数据 Map 的 key;events为当日事件列表(含跨天铺满条目)。
Slots
| 插槽名 | 说明 |
|---|---|
| header | { title, mode, viewDate } 标题区整体替换(默认渲染「YYYY年M月 / YYYY年第N周」) |
| header-extra | 操作区追加内容(位于模式切换与翻页按钮之前) |
| cell | { ...BizCalendarBoardCell } 单元格内容,完全自定义;缺省渲染 mark 色点 + 文案 |
Expose
| 属性/方法 | 说明 |
|---|---|
| switchPrev | 切换到上一月 / 上一周 |
| switchNext | 切换到下一月 / 下一周 |
| switchToday | 回跳到今天所在月 / 周 |
| goTo | (date: string | Date) => boolean 跳转到指定日期所在面板 |
| setMode | (mode: 'month' | 'week') => void 切换展示模式 |
| getViewRange | () => { start: Date; end: Date } 当前面板起止日期(当日 0 点) |
| exportIcs | (options?: { filename?: string }) => number 导出标准 .ics 日历文件(跨天 / 全天 / time 时段及跨零点口径换算,UID 稳定去重),返回导出条数;Outlook / 系统日历 / 企业微信可直接导入 |