You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

SharePoint Online及Designer工作流:请假申请日期校验与审批触发设置求助

实现员工请假规划器的分步指南(SharePoint Online + SharePoint Designer)

作为SPD新手,咱们一步步来落地你要的功能,先从基础的列表配置开始,再到前端校验和工作流设置:

一、先搭建SharePoint请假列表

首先得创建一个用于记录请假申请的列表,至少包含以下核心字段:

  • 申请人:人员字段,设置默认值为当前用户
  • 休假类型:下拉选项字段,添加「年假」「事假」等你需要的选项
  • 开始日期:日期时间字段(仅保留日期部分即可)
  • 经理:人员字段,可设置为自动关联申请人的直属经理,也可让用户手动选择

二、实现「开始日期小于今日时触发错误提示」

这里分两种方案,先讲零代码的基础版,再给你进阶的强拦截版(满足你要的「未点击确定禁止其他操作」需求):

方案1:列表自带验证规则(提交时校验)

适合新手快速上手,无需写代码:

  1. 打开列表设置 → 点击「验证设置」
  2. 在「公式」框中输入:=[开始日期]>=TODAY()
  3. 在「用户消息」中填写:开始日期必须大于或等于今日日期,请修改后提交!
  4. 保存设置即可。用户提交申请时,如果选了过去的日期,页面顶部会直接弹出提示,阻止提交。

方案2:前端JavaScript弹窗拦截(实时校验+强约束)

如果要实现「弹出提示后必须点击确定、修改日期才能继续操作」的效果,需要给表单嵌入一段JS:

  1. 打开列表的「新建表单」(或编辑表单),点击页面顶部「设置」→「编辑页面」
  2. 添加一个「脚本编辑器」Web部件
  3. 在脚本编辑器中粘贴以下代码:
$(document).ready(function() {
    // 监听开始日期输入框的变化
    $("input[title='开始日期']").change(function() {
        var selectedDate = new Date($(this).val());
        var today = new Date();
        // 去掉时间部分,只比较日期
        today.setHours(0,0,0,0);
        if (selectedDate < today) {
            // 弹出模态提示框
            alert("开始日期必须大于今日日期!");
            // 清空错误输入并聚焦到输入框,强制修改
            $(this).val("").focus();
            // 禁用保存按钮,直到日期正确
            $("input[value='保存']").prop("disabled", true);
        } else {
            // 日期合规时重新启用保存按钮
            $("input[value='保存']").prop("disabled", false);
        }
    });

    // 页面加载时先做一次校验
    var initialDate = $("input[title='开始日期']").val();
    if (initialDate) {
        var selectedDate = new Date(initialDate);
        var today = new Date();
        today.setHours(0,0,0,0);
        if (selectedDate < today) {
            $("input[value='保存']").prop("disabled", true);
        }
    }
});
  1. 保存页面即可。用户选了错误日期时,会立刻弹出提示,清空输入并锁定保存按钮,直到选对日期才能继续操作。

三、设置工作流条件:年假+开始日期>今日时触发审批邮件

接下来用SharePoint Designer 2013创建审批工作流:

  1. 打开SharePoint Designer,连接到你的目标站点
  2. 点击「工作流」→「列表工作流」,选择你刚创建的请假列表
  3. 给工作流命名(比如「请假审批触发流」),触发条件选择「当项目被创建时」
  4. 添加条件判断
    • 点击「条件」→「比较值」,第一个值选「当前项目: 休假类型」,操作符选「等于」,第二个值选「年假」
    • 点击「添加条件」→「比较值」,新增第二个条件:「当前项目: 开始日期」>「当前日期」
    • 确保两个条件是「与」的关系(必须同时满足)
  5. 条件满足时(年假+开始日期>今日):
    • 添加操作:「发送电子邮件」
    • 收件人选「当前项目: 经理」,邮件主题写「[请假审批] 待处理申请」,正文里可以插入申请人、休假类型、开始日期等字段(用「添加或更改查找」功能快速插入)
  6. 条件不满足时:
    • 因为前端已经做了拦截,工作流这里可以做二次兜底,比如添加操作「更新列表项」,把申请状态设为「驳回」,或者发邮件告知申请人不符合提交要求(可选)
  7. 保存并发布工作流即可

小提示

  • 确保你的账户有SharePoint Designer的访问权限,以及列表的编辑、工作流创建权限
  • 如果用JavaScript方案,要先确认站点允许自定义脚本(可在SharePoint管理中心的「设置」里开启)
  • 工作流用的是服务器时间,和用户本地时间可能有差异,建议统一用服务器时间做校验

内容的提问来源于stack exchange,提问作者Ambika Bhatnagar

火山引擎 最新活动