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 @@
+
+
+ {{ title }}
+ 팀 핸디캡: {{ teamHandicap }}
+
+
+
+
+
+
+ {{ member.gender || '-' }}
+
+ · {{ member.status }}
+
+
+ · {{ member.paymentStatus }}
+
+
+
핸디캡: {{ member.handicap ?? '-' }} / 에버리지: {{ member.average ?? '-' }}
+
{{ member.comment }}
+
+
+
+
+
+
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 }}
-
-
+
+
로딩 중...
{{ error }}
@@ -55,150 +55,110 @@
{{ event.description || '' }}
-
-
-
-
-
-
- 팀 {{ slotProps.data.teamNumber }}
-
- 팀 핸디캡: {{ slotProps.data.handicap ?? 0 }}
-
-
-
-
-
- {{ getTeamTotalScore(slotProps.data, n) }}
-
- ({{ getRanksByGame(n)[(slotProps.data.id || slotProps.data.teamNumber) + ''] }}위)
-
-
-
-
-
- {{Array.from({ length: event.gameCount }, (_, i) => getTeamTotalScore(slotProps.data, i +
- 1)).reduce((a, b) => a + b, 0) }}
-
- ({{ getTeamOverallRank(slotProps.data) }}위)
-
-
-
-
-
-
-
-
-
- {{ parseInt(team.teamNumber) ? '팀 ' + team.teamNumber : '미배정 인원'}}
- 팀 핸디캡: {{ team.handicap ?? 0 }}
-
-
-
-
-
-
-
-
- {{ member.gender || '-' }}
-
- · {{ member.status }}
-
-
- · {{ member.paymentStatus }}
+
+
+
+
+
+
+
+ 팀 {{ slotProps.data.teamNumber }}
+
+ 팀 핸디캡: {{ slotProps.data.handicap ?? 0 }}
+
+
+
+
+
+ {{ getTeamTotalScore(slotProps.data, n) }}
+
+ ({{ getRanksByGame(n)[(slotProps.data.id || slotProps.data.teamNumber) + ''] }}위)
+
+
+
+
+
+ {{Array.from({ length: event.gameCount }, (_, i) => getTeamTotalScore(slotProps.data, i +
+ 1)).reduce((a, b) => a + b, 0) }}
+
+ ({{ getTeamOverallRank(slotProps.data) }}위)
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ n }}G: {{ getTeamTotalScore(team, n) }}
+
+ ({{ getRanksByGame(n)[(team.id || team.teamNumber) + ''] }}위)
- 핸디캡: {{ member.handicap ?? '-' }} / 에버리지: {{ member.average ?? '-' }}
-
- {{ member.comment }}
-
-
+
+
+
+ 총점
+ {{ Array.from({ length: event.gameCount }, (_, i) => getTeamTotalScore(team, i + 1)).reduce((a, b) => a + b, 0) }}
+
+ {{ getTeamOverallRank({ ...team, id: (team.id || team.teamNumber) + '' }) }}위
+
-
-
-
-
-
-
- {{ n }}G: {{ getTeamTotalScore(team, n) }}
-
- ({{ getRanksByGame(n)[(team.id || team.teamNumber) + ''] }}위)
-
-
-
-
-
- 총점
- {{Array.from({ length: event.gameCount }, (_, i) =>
- getTeamTotalScore(team, i + 1)).reduce((a, b) => a + b, 0)}}
-
- {{ getTeamOverallRank({ ...team, id: (team.id || team.teamNumber) + '' }) }}위
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
+
@@ -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([]); // 참가 신청 가능 명단