캐치문 수정
All checks were successful
LocalNet_front/pipeline/head This commit looks good

This commit is contained in:
dyhj625 2025-03-18 12:26:52 +09:00
parent 00acd58995
commit f2ad06756b
2 changed files with 131 additions and 113 deletions

View File

@ -182,66 +182,72 @@ const handleSizeChange = () => {
// //
const fetchGeneralPosts = async (page = 1) => { const fetchGeneralPosts = async (page = 1) => {
const { data } = await axios.get("board/general", { try {
params: { const { data } = await axios.get("board/general", {
page, params: {
size: selectedSize.value, page,
orderBy: selectedOrder.value, size: selectedSize.value,
searchKeyword: searchText.value orderBy: selectedOrder.value,
searchKeyword: searchText.value
}
});
if (data?.data) {
const totalPosts = data.data.total;
generalList.value = data.data.list.map((post, index) => ({
realId: post.id,
id: totalPosts - ((page - 1) * selectedSize.value) - index,
title: post.title,
author: post.author || '익명',
rawDate: post.date,
date: formatDate(post.date), //
views: post.cnt || 0,
hasAttachment: post.hasAttachment,
img: post.firstImageUrl || null,
commentCount : post.commentCount
}));
pagination.value = {
...pagination.value,
currentPage: data.data.pageNum,
pages: data.data.pages,
prePage: data.data.prePage,
nextPage: data.data.nextPage,
isFirstPage: data.data.isFirstPage,
isLastPage: data.data.isLastPage,
hasPreviousPage: data.data.hasPreviousPage,
hasNextPage: data.data.hasNextPage,
navigatePages: data.data.navigatePages,
navigatepageNums: data.data.navigatepageNums,
navigateFirstPage: data.data.navigateFirstPage,
navigateLastPage: data.data.navigateLastPage
};
} }
}); } catch (error) {
if (data?.data) {
const totalPosts = data.data.total;
generalList.value = data.data.list.map((post, index) => ({
realId: post.id,
id: totalPosts - ((page - 1) * selectedSize.value) - index,
title: post.title,
author: post.author || '익명',
rawDate: post.date,
date: formatDate(post.date), //
views: post.cnt || 0,
hasAttachment: post.hasAttachment,
img: post.firstImageUrl || null,
commentCount : post.commentCount
}));
pagination.value = {
...pagination.value,
currentPage: data.data.pageNum,
pages: data.data.pages,
prePage: data.data.prePage,
nextPage: data.data.nextPage,
isFirstPage: data.data.isFirstPage,
isLastPage: data.data.isLastPage,
hasPreviousPage: data.data.hasPreviousPage,
hasNextPage: data.data.hasNextPage,
navigatePages: data.data.navigatePages,
navigatepageNums: data.data.navigatepageNums,
navigateFirstPage: data.data.navigateFirstPage,
navigateLastPage: data.data.navigateLastPage
};
} }
}; };
// //
const fetchNoticePosts = async () => { const fetchNoticePosts = async () => {
const { data } = await axios.get("board/notices", { try {
params: { searchKeyword: searchText.value } const { data } = await axios.get("board/notices", {
}); params: { searchKeyword: searchText.value }
});
if (data?.data) { if (data?.data) {
noticeList.value = data.data.map(post => ({ noticeList.value = data.data.map(post => ({
id: post.id, id: post.id,
title: post.title, title: post.title,
author: post.author || '관리자', author: post.author || '관리자',
date: formatDate(post.date), date: formatDate(post.date),
rawDate: post.date, rawDate: post.date,
views: post.cnt || 0, views: post.cnt || 0,
hasAttachment: post.hasAttachment, hasAttachment: post.hasAttachment,
img: post.firstImageUrl || null, img: post.firstImageUrl || null,
commentCount : post.commentCount commentCount : post.commentCount
})); }));
}
} catch (error) {
} }
}; };

View File

@ -264,21 +264,24 @@ async function loadCalendarData(year, month) {
/* 프로필 구역 */ /* 프로필 구역 */
// //
const handleProfileClick = async (user) => { const handleProfileClick = async (user) => {
if (isModalOpen.value && user.MEMBERSEQ === userStore.user.id) { try {
return; if (isModalOpen.value && user.MEMBERSEQ === userStore.user.id) {
} return;
if (isGrantModalOpen.value && selectedUser.value?.MEMBERSEQ === user.MEMBERSEQ) { }
return; if (isGrantModalOpen.value && selectedUser.value?.MEMBERSEQ === user.MEMBERSEQ) {
} return;
isModalOpen.value = false; }
isGrantModalOpen.value = false; isModalOpen.value = false;
if (user.MEMBERSEQ === userStore.user.id) { isGrantModalOpen.value = false;
const displayedYear = lastRemainingYear.value; if (user.MEMBERSEQ === userStore.user.id) {
await fetchVacationHistory(displayedYear); const displayedYear = lastRemainingYear.value;
isModalOpen.value = true; await fetchVacationHistory(displayedYear);
} else { isModalOpen.value = true;
selectedUser.value = user; } else {
isGrantModalOpen.value = true; selectedUser.value = user;
isGrantModalOpen.value = true;
}
} catch (error) {
} }
}; };
// //
@ -300,17 +303,19 @@ const fetchUserList = async () => {
}); });
} catch (error) { } catch (error) {
console.error("📌 사용자 목록 불러오기 오류:", error);
} }
}; };
// //
const fetchRemainingVacation = async () => { const fetchRemainingVacation = async () => {
const response = await axios.get("vacation/remaining"); try {
if (response.status === 200) { const response = await axios.get("vacation/remaining");
remainingVacationData.value = response.data.data.reduce((acc, vacation) => { if (response.status === 200) {
acc[vacation.employeeId] = vacation.remainingQuota; remainingVacationData.value = response.data.data.reduce((acc, vacation) => {
return acc; acc[vacation.employeeId] = vacation.remainingQuota;
}, {}); return acc;
}, {});
}
} catch (error) {
} }
}; };
// //
@ -403,42 +408,46 @@ async function saveVacationChanges() {
/* 휴가 조회 */ /* 휴가 조회 */
// //
async function fetchVacationHistory(year) { async function fetchVacationHistory(year) {
const response = await axios.get(`vacation/history?year=${year}`); try {
if (response.status === 200 && response.data) { const response = await axios.get(`vacation/history?year=${year}`);
myVacations.value = response.data.data.usedVacations || []; if (response.status === 200 && response.data) {
receivedVacations.value = response.data.data.receivedVacations || [] myVacations.value = response.data.data.usedVacations || [];
receivedVacations.value = response.data.data.receivedVacations || []
}
} catch (error) {
} }
} }
// //
async function fetchVacationData(year, month) { async function fetchVacationData(year, month) {
try {
const response = await axios.get(`vacation/list/${year}/${month}`); const response = await axios.get(`vacation/list/${year}/${month}`);
if (response.status === 200) { if (response.status === 200) {
const vacationList = response.data; const vacationList = response.data;
// //
const filteredVacations = vacationList.filter(vac => const filteredVacations = vacationList.filter(vac =>
userColors.value[vac.MEMBERSEQ] && userColors.value[vac.MEMBERSEQ] && !vac.LOCVACRMM userColors.value[vac.MEMBERSEQ] && userColors.value[vac.MEMBERSEQ] && !vac.LOCVACRMM
); );
const events = filteredVacations.map(vac => { const events = filteredVacations.map(vac => {
let dateStr = vac.LOCVACUDT ? vac.LOCVACUDT.split("T")[0] : ""; let dateStr = vac.LOCVACUDT ? vac.LOCVACUDT.split("T")[0] : "";
let backgroundColor = userColors.value[vac.MEMBERSEQ]; let backgroundColor = userColors.value[vac.MEMBERSEQ];
return { return {
title: getVacationType(vac.LOCVACTYP), title: getVacationType(vac.LOCVACTYP),
start: dateStr, start: dateStr,
backgroundColor, backgroundColor,
classNames: [getVacationTypeClass(vac.LOCVACTYP)], classNames: [getVacationTypeClass(vac.LOCVACTYP)],
saved: true, saved: true,
memberSeq: vac.MEMBERSEQ, memberSeq: vac.MEMBERSEQ,
}; };
}).filter(event => event.start); }).filter(event => event.start);
return events; return events;
} else { } else {
console.warn("📌 휴가 데이터를 불러오지 못함"); console.warn("📌 휴가 데이터를 불러오지 못함");
return [];
}
} catch (error) {
return []; return [];
} }
return [];
} }
// //
function updateCalendarEvents() { function updateCalendarEvents() {
const selectedEvents = Array.from(selectedDates.value) const selectedEvents = Array.from(selectedDates.value)
@ -499,14 +508,17 @@ const getVacationTypeClass = (type) => {
}; };
// //
const fetchVacationCodes = async () => { const fetchVacationCodes = async () => {
const response = await axios.get("vacation/codes"); try {
if (response.status === 200 && response.data) { const response = await axios.get("vacation/codes");
vacationCodeMap.value = response.data.data.reduce((acc, item) => { if (response.status === 200 && response.data) {
acc[item.code] = item.name; vacationCodeMap.value = response.data.data.reduce((acc, item) => {
return acc; acc[item.code] = item.name;
}, {}); return acc;
} else { }, {});
console.warn("❌ 공통 코드 데이터를 불러오지 못했습니다."); } else {
console.warn("❌ 공통 코드 데이터를 불러오지 못했습니다.");
}
} catch (error) {
} }
}; };
const getVacationType = (typeCode) => { const getVacationType = (typeCode) => {
@ -548,7 +560,7 @@ watch(() => lastRemainingYear.value, async (newYear, oldYear) => {
await fetchVacationHistory(newYear); await fetchVacationHistory(newYear);
} }
}); });
// //
watch( watch(
() => Array.from(selectedDates.value.keys()), // () => Array.from(selectedDates.value.keys()), //
(newKeys) => { (newKeys) => {