| | |
| | | const saving = ref(false); |
| | | /** 是否已执行过查询 */ |
| | | const loaded = ref(false); |
| | | /** 最近一次「查询排班」对应的月份/部门,保存前校验,避免拿旧数据覆盖 */ |
| | | const loadedMonth = ref(''); |
| | | const loadedDeptId = ref<number>(); |
| | | |
| | | // ========== 员工勾选 ========== |
| | | /** Checkbox 变更事件(仅取 checked 字段) */ |
| | |
| | | } |
| | | scheduleMap.value = map; |
| | | loaded.value = true; |
| | | loadedMonth.value = month.value; |
| | | loadedDeptId.value = deptId.value; |
| | | } finally { |
| | | loading.value = false; |
| | | } |
| | |
| | | if (!month.value || !employees.value.length) { |
| | | return; |
| | | } |
| | | // 月份/部门改过但没有重新查询时,页面上的空格不代表「休息」,保存会把已有排班清掉 |
| | | if (loadedMonth.value !== month.value || loadedDeptId.value !== deptId.value) { |
| | | message.warning( |
| | | '月份或部门已变更,请先点击「查询排班」加载最新数据后再保存,避免误清已有排班', |
| | | ); |
| | | return; |
| | | } |
| | | Modal.confirm({ |
| | | title: '确认保存', |
| | | content: `将保存当前页 ${employees.value.length} 名员工在 ${month.value} 的全部排班,确定继续吗?`, |