# 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:*`)同样存在,**本次未一并修改**,需要时可按同样方式对齐 - 导出与分页共用同一套查询参数,修复后导出会带上页面上已选的筛选条件