From 744a0db3bdbf612c09ad749c47794af9138add52 Mon Sep 17 00:00:00 2001 From: Jaybe Date: Thu, 8 May 2025 00:50:12 +0900 Subject: [PATCH] =?UTF-8?q?public=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/event/EventDetailsDialog.vue | 2 +- .../public}/JoinDialog.vue | 2 +- .../src/components/public/MemberListCard.vue | 85 ++++++ frontend/src/views/event/EventPublicPage.css | 1 - frontend/src/views/event/EventPublicPage.vue | 244 ++++++++---------- 5 files changed, 189 insertions(+), 145 deletions(-) rename frontend/src/{views/event => components/public}/JoinDialog.vue (99%) create mode 100644 frontend/src/components/public/MemberListCard.vue diff --git a/frontend/src/components/event/EventDetailsDialog.vue b/frontend/src/components/event/EventDetailsDialog.vue index b2e1fcf..30780e6 100644 --- a/frontend/src/components/event/EventDetailsDialog.vue +++ b/frontend/src/components/event/EventDetailsDialog.vue @@ -145,7 +145,7 @@ watch(() => eventModel.value.id, async (eventId) => { // 참가확정 참가자 목록을 계산하는 computed 속성 const confirmedParticipants = computed(() => { - const arr = eventModel.value.EventParticipants?.filter(p => p.status === '참가확정') || []; + const arr = eventModel.value.EventParticipants?.filter(p => p.status === '참가확정' || p.status === '참가예정') || []; console.log('[상위] 참가확정:', arr); return arr; }); diff --git a/frontend/src/views/event/JoinDialog.vue b/frontend/src/components/public/JoinDialog.vue similarity index 99% rename from frontend/src/views/event/JoinDialog.vue rename to frontend/src/components/public/JoinDialog.vue index ee95942..7e402ca 100644 --- a/frontend/src/views/event/JoinDialog.vue +++ b/frontend/src/components/public/JoinDialog.vue @@ -130,7 +130,7 @@ const props = defineProps({ visible: Boolean, // Dialog의 v-model:visible과 연결 eventStatus: String }); -const emits = defineEmits(['close', 'updated']); +const emits = defineEmits(['close', 'updated', 'update:visible']); const selectedMember = ref(null); const memberOptions = computed(() => { diff --git a/frontend/src/components/public/MemberListCard.vue b/frontend/src/components/public/MemberListCard.vue new file mode 100644 index 0000000..ab08053 --- /dev/null +++ b/frontend/src/components/public/MemberListCard.vue @@ -0,0 +1,85 @@ + + diff --git a/frontend/src/views/event/EventPublicPage.css b/frontend/src/views/event/EventPublicPage.css index 12f06c0..89aa499 100644 --- a/frontend/src/views/event/EventPublicPage.css +++ b/frontend/src/views/event/EventPublicPage.css @@ -391,7 +391,6 @@ font-weight: 700; margin-left: 3px; vertical-align: middle; - color: var(--p-purple-500); } .team-title-row { diff --git a/frontend/src/views/event/EventPublicPage.vue b/frontend/src/views/event/EventPublicPage.vue index 97c5f22..a373606 100644 --- a/frontend/src/views/event/EventPublicPage.vue +++ b/frontend/src/views/event/EventPublicPage.vue @@ -2,8 +2,8 @@

{{ clubName }}

- - - +
+ + @@ -206,7 +166,8 @@ import { ref, computed, watch, reactive, onMounted } from 'vue'; import { debounce } from 'lodash-es'; // lodash 설치 필요 (이미 있다면 무시) import { useRoute } from 'vue-router'; -import JoinDialog from './JoinDialog.vue'; +import MemberListCard from '@/components/public/MemberListCard.vue'; +import JoinDialog from '@/components/public/JoinDialog.vue'; import dayjs from 'dayjs'; import PublicEventService from '@/services/PublicEventService'; @@ -223,7 +184,6 @@ const isAuthenticated = ref(false); const inputPassword = ref(''); const passwordError = ref(''); const showJoinDialog = ref(false); -const showGuestDialog = ref(false); const allMembers = ref([]); // 전체 클럽 멤버 목록 const availableMembers = ref([]); // 참가 신청 가능 명단