diff --git a/frontend/report/weekly/write.vue b/frontend/report/weekly/write.vue index ed341f3..92c7ce8 100644 --- a/frontend/report/weekly/write.vue +++ b/frontend/report/weekly/write.vue @@ -553,7 +553,12 @@ onMounted(async () => { } await loadProjects() - await setDefaultWeek(user.employeeId) + const weekValid = await setDefaultWeek(user.employeeId) + + // 미래 주차로 접근한 경우 중단 + if (weekValid === false) { + return + } // 이번 주차에 이미 작성한 보고서가 있는지 확인 const existingReport = await checkExistingReport(user.employeeId) @@ -645,9 +650,20 @@ async function setDefaultWeek(userId: number) { if (route.query.year && route.query.week) { const year = parseInt(route.query.year as string) const week = parseInt(route.query.week as string) + + // 미래 주차 검증 + const currentWeek = getActualCurrentWeekInfo() + const isFutureWeek = year > currentWeek.year || (year === currentWeek.year && week > currentWeek.week) + + if (isFutureWeek) { + alert('작성할 수 없는 주차입니다.') + router.replace('/report/weekly') + return false + } + const weekInfo = getWeekDates(year, week) setWeekFromInfo(weekInfo) - return + return true } const now = new Date() @@ -675,6 +691,8 @@ async function setDefaultWeek(userId: number) { console.error('지난주 보고서 확인 실패:', e) } } + + return true } // 지난주 계획을 이번주 실적에 로드