diff --git a/public/css/custom.css b/public/css/custom.css
index 182e491..2ac47f0 100644
--- a/public/css/custom.css
+++ b/public/css/custom.css
@@ -3,22 +3,33 @@
/* 휴가 */
-.fc-daygrid-day-events {
- max-height: 100px !important;
- overflow-y: auto !important;
-}
+
/* 이벤트 선 없게 */
.fc-event {
border: none;
}
-/* 오전전반차 그래프 */
+/* 오전 반차 그래프 (왼쪽 절반) */
.fc-daygrid-event.half-day-am {
- width: calc(50% - 4px) !important;
+ width: 50% !important;
+ height: 8px !important;
+ border-radius: 2px !important;
+ font-size: 0px !important;
}
-/* 오후반차 그래프프 */
+/* 오후 반차 그래프 (오른쪽 절반) */
.fc-daygrid-event.half-day-pm {
- width: calc(50% - 4px) !important;
- margin-left: auto !important
+ width: 50% !important;
+ height: 8px !important;
+ margin-left: auto !important;
+ border-radius: 2px !important;
+ font-size: 0px !important;
+}
+/* 연차 그래프 (풀풀) */
+.fc-daygrid-event.full-day {
+ width: 100% !important;
+ height: 8px !important;
+ margin-left: auto !important;
+ border-radius: 2px !important;
+ font-size: 0px !important;
}
/* 공휴일,일요일 색상 */
.fc-day-sun .fc-daygrid-day-number,
@@ -39,8 +50,8 @@
.flatpickr-calendar:after {
display: none !important;
}
- /* 기본 스타일은 그대로 두고, 데이트피커 인풋의 추가 스타일 정의 */
- .fc-toolbar-title {
+/* 기본 스타일은 그대로 두고, 데이트피커 인풋의 추가 스타일 정의 */
+.fc-toolbar-title {
cursor: pointer;
}
/* 클릭 가능한 날짜 (오늘 + 미래) */
@@ -84,7 +95,6 @@ opacity: 0.6; /* 흐려 보이게 */
/* 본인 모달 */
-
/* 닫기 버튼 */
.close-btn {
position: absolute;
@@ -109,7 +119,6 @@ opacity: 0.6; /* 흐려 보이게 */
/* 선물하기 모달 */
-
/* 연차 개수 버튼 */
.count-btn {
font-size: 18px;
@@ -127,7 +136,6 @@ opacity: 0.6; /* 흐려 보이게 */
background: #cccccc;
cursor: not-allowed;
}
-
/* 버튼 컨테이너 (우측 정렬) */
.custom-button-container {
display: flex;
@@ -141,18 +149,17 @@ opacity: 0.6; /* 흐려 보이게 */
padding: 10px; /* 크기 조정 */
cursor: pointer; /* 클릭 가능하도록 변경 */
}
-
/* 아이콘 색상 변경 (기본) */
.custom-button i {
color: #282538; /* 기본 아이콘 색상 */
font-size: 25px; /* 아이콘 크기 */
}
-
/* 버튼 호버 효과 */
.custom-button:hover i {
color: #ff0800; /* 호버 시 아이콘 색상 변경 */
}
+
.grayscaleImg {
filter: grayscale(100%);
}
diff --git a/src/components/board/BoardComment.vue b/src/components/board/BoardComment.vue
index ded58dc..205d5a6 100644
--- a/src/components/board/BoardComment.vue
+++ b/src/components/board/BoardComment.vue
@@ -11,35 +11,29 @@
:isLike="!isLike"
:isCommentPassword="isCommentPassword"
:isCommentProfile="true"
- @editClick="aaaa"
+ @editClick="handleEditClick"
@deleteClick="$emit('deleteClick', comment)"
@updateReaction="handleUpdateReaction"
- />
-
-
+ />
-
+
-
-
-
-
@@ -58,10 +52,6 @@
:key="child.commentId"
class="mt-8 pt-6 ps-10 border-top"
>
-
-
-
-
child.isCommentPassword: {{ child.isCommentPassword }}
$emit('submitEdit', comment, editedContent)"
@cancelEdit="$emit('cancelEdit', child)"
@submitComment="submitComment"
@updateReaction="handleUpdateReaction"
+ @submitPassword="$emit('submitPassword', child, password)"
+ @update:password="$emit('update:password', $event)"
/>
@@ -120,14 +115,19 @@ const props = defineProps({
},
passwordCommentAlert: {
type: String,
- default: false
- }
+ default: ''
+ },
+ currentPasswordCommentId: {
+ type: Number
+ },
+ password:{
+ type: String
+ },
});
// emits 정의
-const emit = defineEmits(['submitComment', 'updateReaction', 'editClick', 'deleteClick', 'submitPassword', 'submitEdit', 'cancelEdit']);
+const emit = defineEmits(['submitComment', 'updateReaction', 'editClick', 'deleteClick', 'submitPassword', 'submitEdit', 'cancelEdit', 'update:password']);
-const password = ref('');
const localEditedContent = ref(props.comment.content);
// 댓글 입력 창 토글
@@ -154,8 +154,8 @@ const handleUpdateReaction = (reactionData) => {
// 비밀번호 확인
const logPasswordAndEmit = () => {
- emit('submitPassword', props.comment, password.value);
- password.value = "";
+ console.log('비밀번호 확인',props.password)
+ emit('submitPassword', props.comment, props.password);
};
watch(() => props.comment.isEditTextarea, (newVal) => {
@@ -169,8 +169,12 @@ const submitEdit = () => {
emit('submitEdit', props.comment, localEditedContent.value);
};
-const aaaa = () => {
+const handleEditClick = () => {
emit('editClick', props.comment);
}
+const handleReplyEditClick = (comment) => {
+ emit('editClick', comment);
+}
+
diff --git a/src/components/board/BoardCommentArea.vue b/src/components/board/BoardCommentArea.vue
index 4f2fca2..ed153ab 100644
--- a/src/components/board/BoardCommentArea.vue
+++ b/src/components/board/BoardCommentArea.vue
@@ -51,10 +51,7 @@
-
+
@@ -63,6 +60,7 @@
diff --git a/src/components/board/BoardProfile.vue b/src/components/board/BoardProfile.vue
index c3c4f91..71c1c2e 100644
--- a/src/components/board/BoardProfile.vue
+++ b/src/components/board/BoardProfile.vue
@@ -4,6 +4,7 @@
+
{{ profileName }}
@@ -81,7 +82,7 @@ const props = defineProps({
isCommentProfile: Boolean, // 현재 컴포넌트가 댓글용인지 여부
date: {
type: String,
- required: true,
+ required: '',
},
views: {
type: Number,
@@ -117,6 +118,10 @@ const handleUpdateReaction = (reactionData) => {
});
};
+const getProfileImage = (profilePath) => {
+ return profilePath && profilePath.trim() ? `${baseUrl}upload/img/profile/${profilePath}` : defaultProfile;
+};
+
diff --git a/src/components/button/BoardRecommendBtn.vue b/src/components/button/BoardRecommendBtn.vue
index e297eb7..8ffa805 100644
--- a/src/components/button/BoardRecommendBtn.vue
+++ b/src/components/button/BoardRecommendBtn.vue
@@ -13,7 +13,7 @@ import { ref, computed } from 'vue';
const props = defineProps({
comment: {
type: Object,
- required: true,
+ default: () => ({}),
},
likeClicked : {
type : Boolean,
@@ -36,7 +36,7 @@ const props = defineProps({
required: true,
},
commentId: {
- type: Number,
+ type: [Number, null],
default: null,
},
likeCount: {
diff --git a/src/components/button/HalfDayButtons.vue b/src/components/button/HalfDayButtons.vue
index 9bb125f..36739fc 100644
--- a/src/components/button/HalfDayButtons.vue
+++ b/src/components/button/HalfDayButtons.vue
@@ -28,10 +28,11 @@