From f4af7a48c77a7bb6d96a2dafec928d02addf9907 Mon Sep 17 00:00:00 2001 From: Tim <135014430+nagisa77@users.noreply.github.com> Date: Fri, 11 Jul 2025 17:24:48 +0800 Subject: [PATCH] Add post and comment deletion --- open-isle-cli/src/components/CommentItem.vue | 20 +++++++++- open-isle-cli/src/views/PostPageView.vue | 37 ++++++++++++++++- .../controller/CommentController.java | 5 +++ .../openisle/controller/PostController.java | 5 +++ .../repository/NotificationRepository.java | 4 ++ .../com/openisle/service/CommentService.java | 31 ++++++++++++++ .../com/openisle/service/PostService.java | 40 +++++++++++++++++++ 7 files changed, 139 insertions(+), 3 deletions(-) diff --git a/open-isle-cli/src/components/CommentItem.vue b/open-isle-cli/src/components/CommentItem.vue index f5928212e..edf3e380e 100644 --- a/open-isle-cli/src/components/CommentItem.vue +++ b/open-isle-cli/src/components/CommentItem.vue @@ -70,6 +70,7 @@ import ReactionsGroup from './ReactionsGroup.vue' import DropdownMenu from './DropdownMenu.vue' const CommentItem = { name: 'CommentItem', + emits: ['deleted'], props: { comment: { type: Object, @@ -84,7 +85,7 @@ const CommentItem = { default: false } }, - setup(props) { + setup(props, { emit }) { const router = useRouter() const showReplies = ref(props.defaultShowReplies) watch( @@ -105,7 +106,22 @@ const CommentItem = { const commentMenuItems = computed(() => isAuthor.value ? [{ text: '删除评论', color: 'red', onClick: () => deleteComment() }] : [] ) - const deleteComment = () => { + const deleteComment = async () => { + const token = getToken() + if (!token) { + toast.error('请先登录') + return + } + const res = await fetch(`${API_BASE_URL}/api/comments/${props.comment.id}`, { + method: 'DELETE', + headers: { Authorization: `Bearer ${token}` } + }) + if (res.ok) { + toast.success('已删除') + emit('deleted', props.comment.id) + } else { + toast.error('操作失败') + } } const submitReply = async (text) => { if (!text.trim()) return diff --git a/open-isle-cli/src/views/PostPageView.vue b/open-isle-cli/src/views/PostPageView.vue index edcbe10d8..950ee57c0 100644 --- a/open-isle-cli/src/views/PostPageView.vue +++ b/open-isle-cli/src/views/PostPageView.vue @@ -64,7 +64,7 @@