From fee7b523846eaa37adc214cde3837a9a072aaaf8 Mon Sep 17 00:00:00 2001 From: dyhj625 Date: Mon, 10 Feb 2025 14:00:30 +0900 Subject: [PATCH 1/4] =?UTF-8?q?board-view-content=20=EB=A8=B8=EC=A7=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/button/BoardRecommendBtn.vue | 27 +++------ src/views/board/BoardList.vue | 2 +- src/views/board/BoardView.vue | 64 +++++++++++---------- 3 files changed, 43 insertions(+), 50 deletions(-) diff --git a/src/components/button/BoardRecommendBtn.vue b/src/components/button/BoardRecommendBtn.vue index cc82b5b..e90055c 100644 --- a/src/components/button/BoardRecommendBtn.vue +++ b/src/components/button/BoardRecommendBtn.vue @@ -62,28 +62,17 @@ watch(() => props.dislikeCount, (newVal) => { }); const handleLike = () => { - // console.log('adadasd') - // likeClicked.value = !likeClicked.value; - // likeCount.value += likeClicked.value ? 1 : -1; - emit('updateReaction', { type: 'like', boardId: props.boardId, commentId: props.commentId }); - // if(likeClicked.value === true){ - // if(dislikeClicked.value === true) { - // dislikeClicked.value = false; - // dislikeCount.value += -1 - // } - // } + console.log('좋아요',likeCount.value) + // emit('updateReaction', { type: 'like', boardId: props.boardId, commentId: props.commentId }); + // likeClicked.value = true; + emit('updateReaction', { boardId: props.boardId, commentId: props.commentId, isLike: true, isDislike: false }); }; const handleDislike = () => { - // dislikeClicked.value = !dislikeClicked.value; - // dislikeCount.value += dislikeClicked.value ? 1 : -1; - emit('updateReaction', { type: 'dislike', boardId: props.boardId, commentId: props.commentId }); - // if(dislikeClicked.value === true){ - // if(likeClicked.value === true) { - // likeClicked.value = false; - // likeCount.value += -1 - // } - // } + console.log('싫어요') + // emit('updateReaction', { type: 'dislike', boardId: props.boardId, commentId: props.commentId }); + // dislikeClicked.value = true; + emit('updateReaction', { boardId: props.boardId, commentId: props.commentId, isLike: false, isDislike: true }); }; diff --git a/src/views/board/BoardList.vue b/src/views/board/BoardList.vue index 28aacfc..2a51040 100644 --- a/src/views/board/BoardList.vue +++ b/src/views/board/BoardList.vue @@ -191,7 +191,7 @@ const fetchGeneralPosts = async (page = 1) => { generalList.value = data.data.list.map((post, index) => ({ id: totalPosts - ((page - 1) * selectedSize.value) - index, - title: post.title, + title: post.title, author: post.author || '익명', date: formatDate(post.date), // 날짜 변환 적용 views: post.cnt || 0, diff --git a/src/views/board/BoardView.vue b/src/views/board/BoardView.vue index 8f81baa..fbb161f 100644 --- a/src/views/board/BoardView.vue +++ b/src/views/board/BoardView.vue @@ -24,7 +24,7 @@ -
+
@@ -95,7 +97,6 @@ import axios from '@api'; const profileName = ref('익명 사용자'); const boardTitle = ref('제목 없음'); const boardContent = ref(''); -const attachments = ref([]); const date = ref(''); const views = ref(0); const likes = ref(0); @@ -107,7 +108,6 @@ const attachment = ref(false); // 라우트에서 ID 가져오기 const route = useRoute(); -const router = useRouter(); const currentBoardId = ref(Number(route.params.id)); // 글 수정 페이지로 이동 @@ -124,8 +124,6 @@ const fetchBoardDetails = async () => { // API 응답 데이터 반영 // const boardDetail = data.boardDetail || {}; - // console.log('API Response:', response.data); - profileName.value = data.author || '익명 사용자'; boardTitle.value = data.title || '제목 없음'; boardContent.value = data.content || ''; @@ -135,42 +133,47 @@ const fetchBoardDetails = async () => { dislikes.value = data.dislikeCount || 0; attachment.value = data.hasAttachment || null; comments.value = data.commentCount || 0; - + + // const response2 = await axios.post(`board/${currentBoardId.value}/password`); + // console.log(response2) + } catch (error) { alert('게시물 데이터를 불러오는 중 오류가 발생했습니다.'); } }; // 좋아요, 싫어요 -const handleUpdateReaction = async ({ type, boardId, commentId }) => { +const handleUpdateReaction = async ({ boardId, commentId, isLike, isDislike }) => { + // console.log(type, boardId) try { - //이거 왜 한건지 찾아보자 - const response = await axios.post(`/board/${boardId}/${commentId}/reaction`, { type }); - // console.log('API 응답:', response.data); - // console.log(commentId) + const requestData = { + LOCBRDSEQ: boardId, + LOCCMTSEQ: commentId, + MEMBERSEQ: 1, // 멤버아이디 지금은 1 나중에 수정해야함 + LOCGOBGOD: isLike ? 'T' : 'F', + LOCGOBBAD: isDislike ? 'T' : 'F' + }; - if (response.data.code === 200) { - if (type === 'like') { - likeClicked.value = !likeClicked.value; - likes.value += likeClicked.value ? 1 : -1; - } else if (type === 'dislike') { - dislikeClicked.value = !dislikeClicked.value; - dislikes.value += dislikeClicked.value ? 1 : -1; - } - } else { - alert('반응 업데이트 실패'); - } - // likes.value = response.data.likeCount; - // dislikes.value = response.data.dislikeCount; + console.log(requestData) - // if (type === 'like') { - // likeClicked.value = !likeClicked.value; - // console.log('aaaa' ,response.data) + const postResponse = await axios.post(`/board/${boardId}/${commentId}/reaction`, requestData); + // await axios.post(`board/${boardId}/${commentId}/reaction`, { type }); + + const response = await axios.get(`board/${boardId}`); + const updatedData = response.data.data; + + console.log('post요청 결과:', postResponse.data); + console.log('get요청 결과(좋아요):', response.data.data.likeCount); + + likes.value = updatedData.likeCount; + dislikes.value = updatedData.dislikeCount; + + likeClicked.value = isLike; + dislikeClicked.value = isDislike; + + console.log('반응 결과:', postResponse.data); - // } else if (type === 'dislike') { - // console.log('싫어') - // } } catch (error) { alert('반응을 업데이트하는 중 오류 발생'); } @@ -182,6 +185,7 @@ const formattedBoardDate = computed(() => { return `${dateObj.getFullYear()}-${String(dateObj.getMonth() + 1).padStart(2, '0')}-${String(dateObj.getDate()).padStart(2, '0')} ${String(dateObj.getHours()).padStart(2, '0')}:${String(dateObj.getMinutes()).padStart(2, '0')}`; }); + // 컴포넌트 마운트 시 데이터 로드 onMounted(() => { fetchBoardDetails(); From c8dbd53e3acc1f3558c745bbe1383bb5c2a8ff0c Mon Sep 17 00:00:00 2001 From: dyhj625 Date: Mon, 10 Feb 2025 14:02:27 +0900 Subject: [PATCH 2/4] =?UTF-8?q?=EB=B3=B4=EB=93=9C=ED=94=84=EB=A1=9C?= =?UTF-8?q?=ED=95=84=20=EB=A8=B8=EC=A7=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/board/BoardProfile.vue | 106 ++++++++++++++++++++++---- 1 file changed, 93 insertions(+), 13 deletions(-) diff --git a/src/components/board/BoardProfile.vue b/src/components/board/BoardProfile.vue index 2125e95..dba9220 100644 --- a/src/components/board/BoardProfile.vue +++ b/src/components/board/BoardProfile.vue @@ -21,8 +21,28 @@