Add participation overview to OfficialTournaments.vue

This commit is contained in:
Torsten Schulz (local)
2025-11-15 21:31:09 +01:00
parent f1321b18bb
commit cd89c68a69

View File

@@ -24,6 +24,40 @@
</li>
</ul>
</div>
<div v-else-if="topActiveTab==='participations'">
<h3>Turnierbeteiligungen</h3>
<div class="filters">
<label for="participationRange">Zeitraum:</label>
<select id="participationRange" v-model="participationRange" @change="onParticipationRangeChange">
<option value="3m">Letzte 3 Monate</option>
<option value="6m">Letzte 6 Monate</option>
<option value="12m">Letzte 12 Monate</option>
<option value="2y">Letzte 2 Jahre</option>
<option value="prev">Vorherige Saison</option>
<option value="all">Alle</option>
</select>
</div>
<table>
<thead>
<tr>
<th>Mitglied</th>
<th>Turnier</th>
<th>Konkurrenz</th>
<th>Datum</th>
<th>Platzierung</th>
</tr>
</thead>
<tbody>
<tr v-for="row in clubParticipationRows()" :key="row.key">
<td>{{ row.memberName }}</td>
<td>{{ row.tournamentName }}</td>
<td>{{ row.competitionName }}</td>
<td>{{ row.date }}</td>
<td>{{ row.placement || '' }}</td>
</tr>
</tbody>
</table>
</div>
</div>
<div v-if="!list || list.length === 0" class="empty-state">
@@ -181,28 +215,7 @@
</div>
</td>
</tr>
<!-- Info Dialog -->
<InfoDialog
v-model="infoDialog.isOpen"
:title="infoDialog.title"
:message="infoDialog.message"
:details="infoDialog.details"
:type="infoDialog.type"
/>
<!-- Confirm Dialog -->
<ConfirmDialog
v-model="confirmDialog.isOpen"
:title="confirmDialog.title"
:message="confirmDialog.message"
:details="confirmDialog.details"
:type="confirmDialog.type"
@confirm="handleConfirmResult(true)"
@cancel="handleConfirmResult(false)"
/>
</template>
</template>
</tbody>
</table>
</div>
@@ -278,50 +291,8 @@
<span v-else>{{ item.placement || '' }}</span>
</td>
</tr>
<!-- Info Dialog -->
<InfoDialog
v-model="infoDialog.isOpen"
:title="infoDialog.title"
:message="infoDialog.message"
:details="infoDialog.details"
:type="infoDialog.type"
/>
<!-- Confirm Dialog -->
<ConfirmDialog
v-model="confirmDialog.isOpen"
:title="confirmDialog.title"
:message="confirmDialog.message"
:details="confirmDialog.details"
:type="confirmDialog.type"
@confirm="handleConfirmResult(true)"
@cancel="handleConfirmResult(false)"
/>
</template>
<!-- Info Dialog -->
<InfoDialog
v-model="infoDialog.isOpen"
:title="infoDialog.title"
:message="infoDialog.message"
:details="infoDialog.details"
:type="infoDialog.type"
/>
<!-- Confirm Dialog -->
<ConfirmDialog
v-model="confirmDialog.isOpen"
:title="confirmDialog.title"
:message="confirmDialog.message"
:details="confirmDialog.details"
:type="confirmDialog.type"
@confirm="handleConfirmResult(true)"
@cancel="handleConfirmResult(false)"
/>
</template>
</template>
</template>
<tr v-if="!participantsGroups.length">
<td colspan="6"><em>Keine Einträge für den gewählten Filter.</em></td>
</tr>
@@ -354,42 +325,6 @@
</table>
</div>
</div>
</div>
<div v-else-if="topActiveTab==='participations'">
<h3>Turnierbeteiligungen</h3>
<div class="filters">
<label for="participationRange">Zeitraum:</label>
<select id="participationRange" v-model="participationRange" @change="onParticipationRangeChange">
<option value="3m">Letzte 3 Monate</option>
<option value="6m">Letzte 6 Monate</option>
<option value="12m">Letzte 12 Monate</option>
<option value="2y">Letzte 2 Jahre</option>
<option value="prev">Vorherige Saison</option>
<option value="all">Alle</option>
</select>
</div>
<table>
<thead>
<tr>
<th>Mitglied</th>
<th>Turnier</th>
<th>Konkurrenz</th>
<th>Datum</th>
<th>Platzierung</th>
</tr>
</thead>
<tbody>
<tr v-for="row in clubParticipationRows()" :key="row.key">
<td>{{ row.memberName }}</td>
<td>{{ row.tournamentName }}</td>
<td>{{ row.competitionName }}</td>
<td>{{ row.date }}</td>
<td>{{ row.placement || '' }}</td>
</tr>
</tbody>
</table>
</div>
</div>
<!-- Member Selection Dialog -->
<MemberSelectionDialog
@@ -406,8 +341,6 @@
@generate-pdf="generateMembersPdfAndClose"
@close="closeMemberDialog"
/>
</div>
<!-- Info Dialog -->
<InfoDialog
@@ -428,6 +361,7 @@
@confirm="handleConfirmResult(true)"
@cancel="handleConfirmResult(false)"
/>
</div>
</template>
<script>