编辑 | blame | 历史 | 原始文档

HRM 考勤节假日配置 - 前端联调方案

针对「节假日设置有问题」的修复说明。问题出在**后端**:权限码与前端/菜单不一致、缺字典、搜索参数不匹配。
修复后**前端不需要改任何代码**,页面即可正常打开、搜索、新增、编辑、导出。

涉及页面

  • views/hrm/attendance/holiday/index.vue(考勤 · 节假日配置,菜单「节假日配置」)
  • 关联影响页面:排班管理、考勤打卡、考勤统计(都依赖同一份节假日数据)

API

方法 路径 说明
GET /hrm/attendance/holiday/page 分页查询(参数按下表修正)
GET /hrm/attendance/holiday/get 详情(id)
POST /hrm/attendance/holiday/create 新增
PUT /hrm/attendance/holiday/update 修改
DELETE /hrm/attendance/holiday/delete 删除(id)
GET /hrm/attendance/holiday/export-excel 导出(与分页同参数)

请求参数(分页 / 导出,本次修正点在「变更」列):

参数 类型 必填 说明 变更
name String 否 节假日名称,模糊匹配 不变
type Integer 否 类型:1-休息日,2-工作日 不变
isLegal Integer 否 是否法定节假日:0-否,1-是 新增支持(此前前端传了被后端忽略)
date Array 否 日期区间,格式 [开始日期, 结束日期],如 ["2026-01-01","2026-12-31"] 新增支持,取代原先的 startDate/endDate
pageNo / pageSize Integer 否 分页参数 不变

前端搜索表单的「日期」区间控件当前提交的字段名就是 date(重复参数形式),修复后与后端一致,**无需改动**。

权限码(本次修正,前端无需改动):

接口 修复前(不存在,必然 403) 修复后(与菜单节点一致)
新增 hrm:attendance:create hrm:attendance-holiday:create
修改 hrm:attendance:update hrm:attendance-holiday:update
删除 hrm:attendance:delete hrm:attendance-holiday:delete
详情 / 分页 hrm:attendance:query hrm:attendance-holiday:query(**菜单中新增该按钮节点**)
导出 hrm:attendance:export hrm:attendance-holiday:export

字典(本次新增,页面自动生效)

字典类型 值 显示 颜色
hrm_holiday_type 1 休息日 success(绿)
hrm_holiday_type 2 工作日 primary(蓝)

修复前该字典不存在,导致「类型」单选没有任何选项、列表「类型」列显示空白,且类型为必选,新增/编辑**点保存必然校验失败**。

业务规则说明

场景 规则
日期唯一 一个日期只能有一条配置,重复新增会提示「日期【xxx】已存在节假日配置…请改为编辑该日期的记录,或先删除原记录再新增」
修改日期 修改记录时允许改日期;改后的日期若已被占用,同样按上一条提示
类型含义 1-休息日:当天不上班(法定节假日应同时勾选「法定节假日」);2-工作日:当天上班(常用于调休补班)
未配置的日期 不落库、不参与「节假日」列表;系统判定工作日时按「周一至周五算工作日、周末算休息日」兜底
「法定节假日」 仅作标记与筛选,不影响是否上班的判定
数据引用 排班计划、考勤打卡、考勤统计均读取这张表:配置为「工作日」的周末会正常生成出勤要求

注意事项

  • 后端代码变更需要**重启后端服务**;菜单与字典变更已直接写入数据库,**相关角色需重新登录**(或刷新权限缓存)后新的「节假日配置查询」按钮权限才生效
  • 本次修复前该表长期为 0 行(保存被前端必填校验与后端 403 双重堵死),页面此前录入不下任何数据
  • startDate / endDate 两个旧参数已移除;如仍有其它调用方在使用,需改用 date 数组
  • 同一个「权限码与菜单不一致」的缺陷在 HRM 考勤的另外 4 个页面(考勤规则 hrm:attendance-rule:*、考勤记录 hrm:attendance-record:*、考勤统计 hrm:attendance-summary:*、考勤异常 hrm:attendance-exception:*)同样存在,**本次未一并修改**,需要时可按同样方式对齐
  • 导出与分页共用同一套查询参数,修复后导出会带上页面上已选的筛选条件