fix(hrm): 补充缺失字典 hrm_holiday_type,修复节假日类型下拉框无选项
现象:节假日配置页面的「类型」控件没有任何选项
· 列表搜索栏的 Select 下拉为空
· 编辑弹窗的 RadioGroup 无按钮
根因:前端 data.ts 用 getDictOptions(DICT_TYPE.HRM_HOLIDAY_TYPE) 取选项,
而 system_dict_type / system_dict_data 里完全没有这个字典。
对比其余 14 个 hrm_* 字典(员工状态/合同类型/请假类型等)都在,仅缺此一个。
依据后端枚举 HrmAttendanceHolidayTypeEnum:
REST_DAY(1, "休息日")
WORK_DAY(2, "工作日")
修复:
- 新增 system_dict_type:hrm_holiday_type「考勤节假日类型」
- 新增 system_dict_data:1=休息日(info) 2=工作日(success)
验证:
- 字典接口 simple-list 返回 hrm_holiday_type 2 条
- 现有 10 条节假日数据 type 全为 1,与「休息日」对应,回显正常
备份:/data/backup/mysql/manual/pre_holiday_dict_20261030121516.sql
脚本幂等:ON DUPLICATE KEY UPDATE
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | -- ============================================================ |
| | | -- è¡¥å
缺失çåå
¸ï¼hrm_holiday_typeï¼èå¤èåæ¥ç±»åï¼ |
| | | -- çææ¶é´ï¼2026-10-30 |
| | | -- |
| | | -- é®é¢ï¼è忥é
置页é¢çãç±»åãæ§ä»¶æ²¡æä»»ä½é项 |
| | | -- å表æç´¢ç Select ä¸ç¼è¾å¼¹çªç RadioGroup é½å |
| | | -- getDictOptions(DICT_TYPE.HRM_HOLIDAY_TYPE) |
| | | -- è system_dict_type / system_dict_data éå®å
¨æ²¡æè¿ä¸ªåå
¸ |
| | | -- |
| | | -- 便®ï¼å端æä¸¾ HrmAttendanceHolidayTypeEnum |
| | | -- REST_DAY(1, "伿¯æ¥") |
| | | -- WORK_DAY(2, "工使¥") |
| | | -- |
| | | -- 对æ¯ï¼å
¶ä½ 14 个 hrm_* åå
¸é½å·²åå¨ï¼ä»
缺æ¤ä¸ä¸ª |
| | | -- å¹çï¼ON DUPLICATE KEY UPDATEï¼å¯é夿§è¡ |
| | | -- ============================================================ |
| | | |
| | | -- ---------- 1. åå
¸ç±»å ---------- |
| | | INSERT INTO `system_dict_type` |
| | | (`name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) |
| | | VALUES |
| | | ('èå¤èåæ¥ç±»å', 'hrm_holiday_type', 0, 'èå¤è忥é
ç½®çç±»åï¼ä¼æ¯æ¥ / 工使¥', |
| | | '1', NOW(), '1', NOW(), b'0', NULL) |
| | | ON DUPLICATE KEY UPDATE |
| | | `name` = VALUES(`name`), `status` = VALUES(`status`), `remark` = VALUES(`remark`), |
| | | `deleted` = b'0', `update_time` = NOW(); |
| | | |
| | | -- ---------- 2. åå
¸æ°æ® ---------- |
| | | INSERT INTO `system_dict_data` |
| | | (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, |
| | | `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) |
| | | VALUES |
| | | (1, '伿¯æ¥', '1', 'hrm_holiday_type', 0, 'info', '', 'æ¾å/伿¯çæ¥åï¼æå¡æä¼æ¯æ¥è§å', '1', NOW(), '1', NOW(), b'0'), |
| | | (2, '工使¥', '2', 'hrm_holiday_type', 0, 'success', '', 'è°ä¼ä¸ççæ¥åï¼æå¡æå·¥ä½æ¥è§å', '1', NOW(), '1', NOW(), b'0') |
| | | ON DUPLICATE KEY UPDATE |
| | | `label` = VALUES(`label`), `sort` = VALUES(`sort`), `status` = VALUES(`status`), |
| | | `color_type` = VALUES(`color_type`), `remark` = VALUES(`remark`), `deleted` = b'0'; |
| | | |
| | | -- ---------- 3. æ ¡éª ---------- |
| | | SELECT t.type, t.name, t.status, t.deleted+0 AS del, |
| | | COUNT(d.id) AS æ°æ®æ¡æ° |
| | | FROM system_dict_type t |
| | | LEFT JOIN system_dict_data d ON d.dict_type = t.type AND d.deleted = b'0' |
| | | WHERE t.type = 'hrm_holiday_type' |
| | | GROUP BY t.type, t.name, t.status, t.deleted; |
| | | |
| | | SELECT sort, label, value, color_type FROM system_dict_data |
| | | WHERE dict_type = 'hrm_holiday_type' AND deleted = b'0' ORDER BY sort; |