diff --git a/src/api/boardApi.js b/src/api/boardApi.js index 8bed804..4700ff5 100644 --- a/src/api/boardApi.js +++ b/src/api/boardApi.js @@ -65,6 +65,10 @@ export const boardApi = { reportComment(commentId) { return http.post(`/board/comments/${commentId}/report`) }, + // 댓글 블라인드 해제 (관리자) + unblockComment(commentId) { + return http.post(`/board/comments/${commentId}/unblock`) + }, block(id, reason) { return http.post(`/board/posts/${id}/block`, { reason }) }, diff --git a/src/views/board/BoardDetailView.vue b/src/views/board/BoardDetailView.vue index 4606fd0..c988035 100644 --- a/src/views/board/BoardDetailView.vue +++ b/src/views/board/BoardDetailView.vue @@ -147,6 +147,14 @@ async function reportComment(c) { alert(e.response?.data?.message || '신고에 실패했습니다.') } } +async function unblockComment(c) { + try { + await boardApi.unblockComment(c.id) + await refreshComments() + } catch (e) { + alert(e.response?.data?.message || '해제에 실패했습니다.') + } +} // 댓글 목록만 새로고침 (다른 사람이 단 댓글·추천 반영) const refreshingComments = ref(false) @@ -366,6 +374,10 @@ onMounted(load) v-if="!isAdmin && auth.user && c.authorId !== auth.user.id" type="button" class="creport" @click="reportComment(c)" >🚩 신고 + @@ -662,6 +674,13 @@ button.notice-btn { color: #c0392b; opacity: 0.85; } +.cunblock { + padding: 0.2rem 0.6rem; + font-size: 0.8rem; + border-radius: 999px; + border-color: hsla(160, 100%, 37%, 1); + color: hsla(160, 100%, 37%, 1); +} .comment-votes { display: flex; gap: 0.4rem;