Skip to content

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 年国务院放假安排:法定节假日显示节日名,调休连休日出「休」角标,调休补班的周末出「班」角标。

月历展示 + 点击选择日期;右侧面板展示 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
27
28
29
30
31
1
2
3
4
5
6
7
8
节假日班调休上班法定节假日(三薪)当月工作日 19 天
overrides 优先级最高:追加公司假日(工作日变休息日并显示自定义名)、把指定周六设为补班;图例的当月工作日统计同步按覆盖后口径计算。

区间工作日统计 ​

至
自然日
26
天
工作日
14
天
休息日
12
天

常用于工期估算 / 考勤核算:与组件同源的 countWorkdays(start, end) 纯函数直接调用,节假日与调休补班自动纳入口径。

countWorkdays(start, end) 含首尾自动排除周末与节假日——工期估算、考勤核算直接调用纯函数。

交付期推算 ​

工单受理日:
SLA:
个工作日

承诺交付日

2026-11-09(周一)

addWorkdays(date, n) 自动跳过周末与法定节假日(调休补班照常计入),n 也支持负数(回溯起始日)。

addWorkdays(date, n) 跳过周末与法定节假日推算承诺交付日(SLA 场景),n 支持负数回溯。

工作日禁用源 ​

合同生效日
说明
周六日、法定节假日不可选,调休补班日可选
getWorkdayDisabledDate() 生成 el-date-picker 的 disabled-date 函数:非工作日不可选,调休补班日可选。

请假表单联动 ​

请假类型
事假(按工作日核算)
开始日期
结束日期
请假事由
核算结果
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
2
3
4
5
6
7
8
节假日班调休上班法定节假日(三薪)当月工作日 18 天
请假申请典型形态:起止日期 + 事由,工作日天数实时核算(事假按工作日扣),日历与表单共享选中值。

全年节假日总览 ​

2026 年合计放假 32 天。数据包 FESTIVALS 与展平索引 HOLIDAY_DAYS / WORKDAY_DAYS 均从组件库导出,可自渲染年报/公告页。

FESTIVALS 数据包直出官方口径的放假安排表(放假日数/法定三薪日/调休上班日),适合公告页与年报场景。

自定义单元格 ​

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-modelstring—选中日期('YYYY-MM-DD'),点击单元格更新
v-model:monthstring当月展示月份('YYYY-MM'),工具栏切换时更新
overridesRecord<string, WorkdayOverride>—自定义日覆盖:key='YYYY-MM-DD',优先级高于内置法定数据
show-legendbooleantrue是否显示底部图例(含当月工作日统计)
mark-todaybooleantrue是否标记今天
first-day-of-week0 | 11每周首日:0=周日,1=周一
min-datestring—可选日期下限('YYYY-MM-DD',含),区间外置灰且点击无效
max-datestring—可选日期上限('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(自定义,最高)> 内置调休补班 > 内置节假日 > 自然周(周六日休息)。

数据包导出 ​

导出类型说明
FESTIVALSRecord<number, FestivalArrange[]>按年官方口径安排(节日名/放假区间/法定三薪日/调休上班日)
HOLIDAY_DAYSRecord<string, HolidayEntry>展平休息日索引(key='YYYY-MM-DD',statutory 标记三薪日)
WORKDAY_DAYSRecord<string, true>展平调休补班日索引

数据时效

内置数据覆盖 2024~2026 年;此后年份的安排由国务院办公厅通常于上年 11 月发布,数据包未收录前按自然周推导(周六日休息),请经 overrides 自行维护或等组件库版本更新。