实现流程中的日期字段自动过滤法定节假日
title: 实现流程中的日期字段自动过滤法定节假日 created: 2026-04-19 updated: 2026-04-19 type: reference tags: [imported, pptx] source: "Weaver Doc Import"
Slide 1
实现流程中的日期字段自动过滤法定节假日 泛微网络 培训服务中心
Slide 2
需求背景及实现效果
Slide 3
企业的一些流程表单中,是不是总遇到这些场景? 员工填报销单,财务后期核对要额外筛法定节假日单据; 请假单选了法定节假日,流程到领导处才发现需退回重填; 项目排期表把休息日设为关键节点,导致整体计划逻辑混乱等等问题。 本期采用JS代码实现在流程中的日期字段上自动过滤法定节假日。
Slide 4
在流程表单的日期字段上选择日期,如果选择的日期为法定节假日,则弹出提示框,点击确认后需重新选择。 实现效果
Slide 5
JS代码块应用样例
Slide 6
配置实现步骤 实现方式: 后台打开html模板; 打开插入代码块; 插入修改好的代码块; 流程表单
Slide 7
- 代码示例——JS代码
- // 1. 定位日期字段
- const dateFieldId = WfForm.convertFieldNameToId("rq"); // 替换为你的日期字段名
- let saveFlag = 0;
- let nonWorkdayFlag = 0;
- // 2. 实时监听日期变化
- WfForm.bindFieldChangeEvent(dateFieldId, function (obj, id, value) {
- saveFlag = 0;
- if (value) checkWorkday(value);});
- // 3. 保存前拦截校验
- WfForm.registerCheckEvent(WfForm.OPER_SAVE, function (callback) {
- let dateVal = WfForm.getFieldValue(dateFieldId);
- if (dateVal) {
- saveFlag = 1;
- checkWorkday(dateVal).then(() => {
- if (nonWorkdayFlag === 1) {
- window.weaJs.alert("所选日期包含非工作日,请修改后再保存!");
- return;
- }
- callback();
- });
- } else {
- callback();
- }
- });
- 1) {
- window.weaJs.alert("所选日期包含非工作日,请修改后再保存!");
- return;
- }
- callback();
- });
- } else {
- callback();
- }
- });### Slide 8
- 代码示例
- // 4. 核心:工作日校验函数
- function checkWorkday(dateString) {
- const holidayApiUrl =
https://timor.tech/api/holiday/year/${dateString}; - return new Promise(resolve => {
- fetch(holidayApiUrl)
- .then(res => res.json())
- .then(data => {
- const holidayDates = new Set(
- Object.values(data.holiday).map(item => item.date)
- );
- const isNonWorkday = holidayDates.has(dateString);
- if (isNonWorkday) {
- saveFlag === 0
- ? window.weaJs.alert("日期包含非工作日,请确认!")
- (nonWorkdayFlag = 1); } else { nonWorkdayFlag = 0; } resolve(); }) .catch(err => { console.error("API调用失败:", err); resolve(); }); }); }
Slide 9
志达宇泛 见著于微 感谢您的信任与支持! 我们始终努力提供好用的移动办公平台
🖼️ 提取的插图 (共 10 张)



