결제, 구독 기능

This commit is contained in:
2025-05-11 17:27:39 +09:00
parent 2924a61a9d
commit 1db3a03ffd
18 changed files with 3276 additions and 180 deletions
+20 -10
View File
@@ -83,6 +83,7 @@
:getStatusSeverity="getStatusSeverity"
:formatDate="formatDate"
:availableMembers="clubMembers"
:hasTeamFeature="hasTeamFeature"
@edit="editFromDetails"
@hide="hideDialog"
@participant-updated="fetchEvents"
@@ -105,11 +106,12 @@
</template>
<script setup>
import { ref, onMounted } from 'vue';
import { ref, onMounted, computed } from 'vue';
import { useToast } from 'primevue/usetoast';
import { useRoute } from 'vue-router';
import { useClubStore } from '@/stores/clubStore';
import eventService from '@/services/eventService';
import apiClient from '@/services/api';
import dayjs from 'dayjs';
import clubService from '@/services/clubService';
import ScoreManagement from '@/components/event/ScoreManagement.vue';
@@ -142,6 +144,9 @@ const filters = ref({
startDate: { value: null, matchMode: 'equals' }
});
// 팀 기능 사용 권한 여부
const hasTeamFeature = computed(() => clubStore.hasFeature('team_create'));
// 이벤트 유형 옵션
const eventTypeOptions = [
{ name: '정기전', value: '정기전' },
@@ -156,17 +161,22 @@ const clubMembers = ref([]);
// 이벤트 목록 가져오기
const fetchEvents = async () => {
loading.value = true;
try {
const response = await eventService.getEvents(clubId.value);
events.value = response;
loading.value = true;
const data = await eventService.getEvents(clubId.value);
events.value = data;
} catch (error) {
toast.add({
severity: 'error',
summary: '오류',
detail: '이벤트 목록을 가져오는데 실패했습니다.',
life: 3000
});
console.error('이벤트 목록 로드 실패:', error);
// 403 오류는 중앙에서 처리하민로 여기서는 기타 오류만 처리
if (!error.response) {
toast.add({
severity: 'error',
summary: '오류',
detail: '이벤트 목록을 불러오는 데 실패했습니다.',
life: 3000
});
}
} finally {
loading.value = false;
}
File diff suppressed because it is too large Load Diff