diff --git a/src/components/board/BoardProfile.vue b/src/components/board/BoardProfile.vue
index 7a4e538..5f77e63 100644
--- a/src/components/board/BoardProfile.vue
+++ b/src/components/board/BoardProfile.vue
@@ -25,22 +25,17 @@
-
@@ -71,6 +66,10 @@ import BoardRecommendBtn from '../button/BoardRecommendBtn.vue';
// Vue Router 인스턴스
const router = useRouter();
+const isPassword = ref(false);
+const password = ref('');
+const passwordAlert = ref(false);
+const lastClickedButton = ref('');
// Props 정의
const props = defineProps({
@@ -112,22 +111,14 @@ const props = defineProps({
}
});
-const isPassword = ref(false);
-const password = ref('');
-const lastClickedButton = ref('');
-
-const boardId = 100; //수정필요!
-
const emit = defineEmits(['togglePasswordInput']);
// 수정 버튼
const handleEdit = () => {
- // router.push({ name: 'BoardEdit', params: { id: boardId } });
-
if (props.unknown) {
togglePassword('edit');
} else {
- router.push({ name: 'BoardEdit', params: { id: 100 } }); // 로그인한 경우 바로 편집
+ router.push({ name: 'BoardEdit', params: { id: props.boardId } });
}
};
@@ -136,7 +127,7 @@ const handleDelete = () => {
if (props.unknown) {
togglePassword('delete');
} else {
- deletePost(); // 로그인한 경우 바로 삭제
+ deletePost();
}
};
@@ -151,12 +142,11 @@ const togglePassword = (button) => {
};
// 비밀번호 확인
-const handlePasswordSubmit = async () => {
- isPassword.value = false;
- lastClickedButton.value = null;
-
- console.log('비밀번호:', password.value);
- console.log(props.boardId)
+const handleSubmit = async () => {
+ if (!password.value) {
+ passwordAlert.value = '비밀번호를 입력해주세요.';
+ return;
+ }
try {
const requestData = {
@@ -164,47 +154,61 @@ const handlePasswordSubmit = async () => {
LOCBRDSEQ: 288
}
- console.log(requestData)
-
const postResponse = await axios.post(`board/${props.boardId}/password`, requestData);
- console.log('post결과:', postResponse.data)
+ if (postResponse.data.code === 200) {
+ if (postResponse.data.data === true) {
+ isPassword.value = false;
+
- // if (response.data.code === 200 && response.data.data === true) {
- // console.log("완료"); // 비밀번호가 맞으면 출력
- // } else {
- // console.log("비밀번호가 틀립니다.");
- // }
+ if (lastClickedButton.value === 'edit') {
+ router.push({ name: 'BoardEdit', params: { id: props.boardId } });
+ } else if (lastClickedButton.value === 'delete') {
+ await deletePost();
+ }
+
+ lastClickedButton.value = null;
+ } else {
+ passwordAlert.value = '비밀번호가 일치하지 않습니다.';
+ }
+ } else {
+ passwordAlert.value = '비밀번호가 일치하지 않습니다.';
+ }
} catch (error) {
- console.error('비밀번호 확인 중 오류 발생:', error);
+ // 401 오류
+ if (error.response && error.response.status === 401) {
+ passwordAlert.value = '비밀번호가 일치하지 않습니다.';
+ } else if (error.response) {
+ alert(`오류 발생: ${error.response.data.message || '서버 오류'}`);
+ } else {
+ alert('네트워크 오류가 발생했습니다. 다시 시도해주세요.');
+ }
}
};
const deletePost = async () => {
if (confirm('정말 삭제하시겠습니까?')) {
try {
- await axios.delete(`board/100`);
- alert('게시물이 삭제되었습니다.');
- router.push({ name: 'BoardList' });
+ const response = await axios.delete(`board/${props.boardId}`, {
+ data: { LOCBRDSEQ: props.boardId }
+ });
+
+ if (response.data.code === 200) {
+ alert('게시물이 삭제되었습니다.');
+ router.push({ name: 'BoardList' });
+ } else {
+ alert('삭제 실패: ' + response.data.message);
+ }
} catch (error) {
- alert('삭제 중 오류 발생');
+ if (error.response) {
+ alert(`삭제 실패: ${error.response.data.message || '서버 오류'}`);
+ } else {
+ alert('네트워크 오류가 발생했습니다. 다시 시도해주세요.');
+ }
}
}
};
-// const fetchBoardDetails = async () => {
-// try {
-// const response = await axios.get(`board/${props.boardId}`);
-// console.log(response.data);
-// } catch (error) {
-// console.error('게시물 데이터 불러오기 오류:', error);
-// }
-// };
-
-// onMounted(() => {
-// // fetchBoardDetails();
-// });
-