Appearance
BizWorkdayCalendar 法定工作日历
法定工作日历:内置国务院办公厅 2024~2026 年放假安排数据包(法定节假日、调休补班、连休日一应俱全),月历三态标记——法定节假日显示节日名、调休连休日出「休」角标、调休补班的周末出「班」角标;overrides 支持自定义覆盖(公司司庆、区域调休等)。与组件同模块导出工作日计算纯函数(isWorkday / countWorkdays / addWorkdays / getWorkdayDisabledDate),日历展示与业务核算共用同一套口径,避免「页面显示放假、后台算成工作日」的口径漂移。
适用于:请假/外出申请天数核算、交付期与 SLA 到期日推算、考勤日历、合同生效日只能选工作日、全年放假安排公告页。
与 BizCalendarBoard 的分工
BizCalendarBoard 是空白日期排版板(按天组织内容的 UI 容器,无节假日数据、无日期计算);本组件价值在法定数据 + 工作日口径——需要渲染日程内容用 Board,需要节假日判定/推算用本组件(两者可经 #cell 插槽组合)。
基础用法
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
2
3
4
5
6
7
8
节假日班调休上班法定节假日(三薪)当月工作日 18 天
选中信息
选中日期:未选择
内置 2024~2026 年国务院放假安排:法定节假日显示节日名,调休连休日出「休」角标,调休补班的周末出「班」角标。
自定义覆盖
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
2
3
4
5
6
7
8
节假日班调休上班法定节假日(三薪)当月工作日 19 天
10-09(周五)设为司庆假日:工作日变休息日,显示自定义名「司庆」
10-17 / 10-24(周六)设为补班:休息日变工作日,出「班」角标
图例中的「当月工作日」统计同步按覆盖后口径计算。
区间工作日统计
至
自然日
26
天
工作日
14
天
休息日
12
天
常用于工期估算 / 考勤核算:与组件同源的 countWorkdays(start, end) 纯函数直接调用,节假日与调休补班自动纳入口径。
交付期推算
工单受理日:
SLA:
个工作日
承诺交付日
2026-11-09(周一)
addWorkdays(date, n) 自动跳过周末与法定节假日(调休补班照常计入),n 也支持负数(回溯起始日)。
工作日禁用源
请假表单联动
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
2
3
4
5
6
7
8
节假日班调休上班法定节假日(三薪)当月工作日 18 天
全年节假日总览
2026 年合计放假 32 天。数据包 FESTIVALS 与展平索引 HOLIDAY_DAYS / WORKDAY_DAYS 均从组件库导出,可自渲染年报/公告页。
自定义单元格
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
2
3
4
5
6
7
8
节假日班调休上班法定节假日(三薪)当月工作日 18 天
#cell 插槽拿到完整 meta(工作日/节假日/角标/选中态),法定标记自绘后可继续叠加业务标记(值班/巡检/约满)。
点击交互、月份切换、图例统计仍由组件托管。
Props
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| v-model | string | — | 选中日期('YYYY-MM-DD'),点击单元格更新 |
| v-model:month | string | 当月 | 展示月份('YYYY-MM'),工具栏切换时更新 |
| overrides | Record<string, WorkdayOverride> | — | 自定义日覆盖:key='YYYY-MM-DD',优先级高于内置法定数据 |
| show-legend | boolean | true | 是否显示底部图例(含当月工作日统计) |
| mark-today | boolean | true | 是否标记今天 |
| first-day-of-week | 0 | 1 | 1 | 每周首日:0=周日,1=周一 |
| min-date | string | — | 可选日期下限('YYYY-MM-DD',含),区间外置灰且点击无效 |
| max-date | string | — | 可选日期上限('YYYY-MM-DD',含) |
WorkdayOverride 结构:{ type: 'holiday' \| 'workday'; name?: string }——holiday 为休息日(可带名),workday 为补班工作日。
Events
| 事件名 | 参数 | 说明 |
|---|---|---|
| update:model-value | (date: string) | 点击可选单元格时触发 |
| update:month | (month: string) | 工具栏切月/切年时触发 |
| cell-click | (meta: WorkdayCellMeta) | 点击单元格(禁用/非本月不触发);meta 含 isWorkday / statutory / holidayName / badge 等完整状态 |
Slots
| 插槽名 | 作用域 | 说明 |
|---|---|---|
| cell | { meta: WorkdayCellMeta } | 自定义单元格内容(值班标记、约满状态等业务叠加) |
Expose
| 名称 | 类型 | 说明 |
|---|---|---|
| isWorkday | (date: string | Date) => boolean | 是否工作日(自动携带当前 overrides) |
| getCellMeta | (date: string) => WorkdayCellMeta | 任意日期完整状态(不受展示月限制) |
| goToday | () => void | 回到今天所在月并选中今天 |
| getMonthStats | (month?: string) => WorkdayMonthStats | 月度统计 { total, workdays, restdays },缺省为当前展示月 |
工具函数(组件模块同名导出)
| 函数 | 签名 | 说明 |
|---|---|---|
| isWorkday | (date, overrides?) => boolean | 是否工作日 |
| countWorkdays | (start, end, overrides?) => number | 区间工作日天数(含首尾,起止倒置自动交换) |
| addWorkdays | (date, n, overrides?) => Date | 加 n 个工作日(n 可负、可为 0),逐日跳过非工作日 |
| getWorkdayDisabledDate | (overrides?) => (date: Date) => boolean | 生成 el-date-picker 的 disabled-date 函数 |
| resolveDay | (date, overrides?) => ResolvedDay | 单日完整解析(isWorkday/holidayName/statutory/badge) |
| toDateKey / parseDateKey | (date | string) | 'YYYY-MM-DD' 与 Date 互转(本地时区) |
判定口径:overrides(自定义,最高)> 内置调休补班 > 内置节假日 > 自然周(周六日休息)。
数据包导出
| 导出 | 类型 | 说明 |
|---|---|---|
| FESTIVALS | Record<number, FestivalArrange[]> | 按年官方口径安排(节日名/放假区间/法定三薪日/调休上班日) |
| HOLIDAY_DAYS | Record<string, HolidayEntry> | 展平休息日索引(key='YYYY-MM-DD',statutory 标记三薪日) |
| WORKDAY_DAYS | Record<string, true> | 展平调休补班日索引 |
数据时效
内置数据覆盖 2024~2026 年;此后年份的安排由国务院办公厅通常于上年 11 月发布,数据包未收录前按自然周推导(周六日休息),请经 overrides 自行维护或等组件库版本更新。