Connect Vorstand page to config and add Einstellungen to CMS overview

This commit is contained in:
Torsten Schulz (local)
2025-10-21 16:47:55 +02:00
parent d5a181e0c8
commit 228e2e9f07
40 changed files with 523 additions and 522 deletions

View File

@@ -11,44 +11,112 @@
Unser engagiertes Vorstandsteam leitet den Harheimer TC mit Herz und Sachverstand.
</p>
<div class="grid md:grid-cols-2 gap-8 not-prose">
<div class="bg-white p-6 rounded-xl shadow-lg border border-gray-100">
<div v-if="config" class="grid md:grid-cols-2 gap-8 not-prose">
<!-- Vorsitzender -->
<div v-if="config.vorstand.vorsitzender.vorname" class="bg-white p-6 rounded-xl shadow-lg border border-gray-100">
<h3 class="text-xl font-display font-bold text-gray-900 mb-2">Vorsitzender</h3>
<h4 class="text-lg font-semibold text-primary-600 mb-3">Roger Dichmann</h4>
<h4 class="text-lg font-semibold text-primary-600 mb-3">
{{ config.vorstand.vorsitzender.vorname }} {{ config.vorstand.vorsitzender.nachname }}
</h4>
<div class="space-y-1 text-gray-600">
<p>Reginastr. 46</p>
<p>60437 Frankfurt</p>
<p>Tel. 06101-9953015</p>
<p v-if="config.vorstand.vorsitzender.strasse">{{ config.vorstand.vorsitzender.strasse }}</p>
<p v-if="config.vorstand.vorsitzender.plz">{{ config.vorstand.vorsitzender.plz }} {{ config.vorstand.vorsitzender.ort }}</p>
<p v-if="config.vorstand.vorsitzender.telefon">Tel. {{ config.vorstand.vorsitzender.telefon }}</p>
<p v-if="config.vorstand.vorsitzender.email">
<a :href="`mailto:${config.vorstand.vorsitzender.email}`" class="text-primary-600 hover:underline">
{{ config.vorstand.vorsitzender.email }}
</a>
</p>
</div>
</div>
<div class="bg-white p-6 rounded-xl shadow-lg border border-gray-100">
<h3 class="text-xl font-display font-bold text-gray-900 mb-2">Stellvertreter des Vorsitzenden</h3>
<h4 class="text-lg font-semibold text-primary-600 mb-3">Jürgen Kratz</h4>
<!-- Stellvertreter -->
<div v-if="config.vorstand.stellvertreter.vorname" class="bg-white p-6 rounded-xl shadow-lg border border-gray-100">
<h3 class="text-xl font-display font-bold text-gray-900 mb-2">Stellvertreter</h3>
<h4 class="text-lg font-semibold text-primary-600 mb-3">
{{ config.vorstand.stellvertreter.vorname }} {{ config.vorstand.stellvertreter.nachname }}
</h4>
<div class="space-y-1 text-gray-600">
<p>Bürgerstr. 68</p>
<p>60437 Frankfurt</p>
<p>Tel. 06101-43221</p>
<p v-if="config.vorstand.stellvertreter.strasse">{{ config.vorstand.stellvertreter.strasse }}</p>
<p v-if="config.vorstand.stellvertreter.plz">{{ config.vorstand.stellvertreter.plz }} {{ config.vorstand.stellvertreter.ort }}</p>
<p v-if="config.vorstand.stellvertreter.telefon">Tel. {{ config.vorstand.stellvertreter.telefon }}</p>
<p v-if="config.vorstand.stellvertreter.email">
<a :href="`mailto:${config.vorstand.stellvertreter.email}`" class="text-primary-600 hover:underline">
{{ config.vorstand.stellvertreter.email }}
</a>
</p>
</div>
</div>
<div class="bg-white p-6 rounded-xl shadow-lg border border-gray-100">
<!-- Kassenwart -->
<div v-if="config.vorstand.kassenwart.vorname" class="bg-white p-6 rounded-xl shadow-lg border border-gray-100">
<h3 class="text-xl font-display font-bold text-gray-900 mb-2">Kassenwart</h3>
<h4 class="text-lg font-semibold text-primary-600 mb-3">Olaf Nüßlein</h4>
<h4 class="text-lg font-semibold text-primary-600 mb-3">
{{ config.vorstand.kassenwart.vorname }} {{ config.vorstand.kassenwart.nachname }}
</h4>
<div class="space-y-1 text-gray-600">
<p>Am Eschbachtal 52</p>
<p>60437 Frankfurt</p>
<p>Tel. 06101-47469</p>
<p v-if="config.vorstand.kassenwart.strasse">{{ config.vorstand.kassenwart.strasse }}</p>
<p v-if="config.vorstand.kassenwart.plz">{{ config.vorstand.kassenwart.plz }} {{ config.vorstand.kassenwart.ort }}</p>
<p v-if="config.vorstand.kassenwart.telefon">Tel. {{ config.vorstand.kassenwart.telefon }}</p>
<p v-if="config.vorstand.kassenwart.email">
<a :href="`mailto:${config.vorstand.kassenwart.email}`" class="text-primary-600 hover:underline">
{{ config.vorstand.kassenwart.email }}
</a>
</p>
</div>
</div>
<div class="bg-white p-6 rounded-xl shadow-lg border border-gray-100">
<!-- Schriftführer -->
<div v-if="config.vorstand.schriftfuehrer.vorname" class="bg-white p-6 rounded-xl shadow-lg border border-gray-100">
<h3 class="text-xl font-display font-bold text-gray-900 mb-2">Schriftführer</h3>
<h4 class="text-lg font-semibold text-primary-600 mb-3">Jürgen Dichmann</h4>
<h4 class="text-lg font-semibold text-primary-600 mb-3">
{{ config.vorstand.schriftfuehrer.vorname }} {{ config.vorstand.schriftfuehrer.nachname }}
</h4>
<div class="space-y-1 text-gray-600">
<p>In der Fuchskaut 4</p>
<p>60437 Frankfurt</p>
<p>Tel. 06101-4992227</p>
<p v-if="config.vorstand.schriftfuehrer.strasse">{{ config.vorstand.schriftfuehrer.strasse }}</p>
<p v-if="config.vorstand.schriftfuehrer.plz">{{ config.vorstand.schriftfuehrer.plz }} {{ config.vorstand.schriftfuehrer.ort }}</p>
<p v-if="config.vorstand.schriftfuehrer.telefon">Tel. {{ config.vorstand.schriftfuehrer.telefon }}</p>
<p v-if="config.vorstand.schriftfuehrer.email">
<a :href="`mailto:${config.vorstand.schriftfuehrer.email}`" class="text-primary-600 hover:underline">
{{ config.vorstand.schriftfuehrer.email }}
</a>
</p>
</div>
</div>
<!-- Sportwart -->
<div v-if="config.vorstand.sportwart.vorname" class="bg-white p-6 rounded-xl shadow-lg border border-gray-100">
<h3 class="text-xl font-display font-bold text-gray-900 mb-2">Sportwart</h3>
<h4 class="text-lg font-semibold text-primary-600 mb-3">
{{ config.vorstand.sportwart.vorname }} {{ config.vorstand.sportwart.nachname }}
</h4>
<div class="space-y-1 text-gray-600">
<p v-if="config.vorstand.sportwart.strasse">{{ config.vorstand.sportwart.strasse }}</p>
<p v-if="config.vorstand.sportwart.plz">{{ config.vorstand.sportwart.plz }} {{ config.vorstand.sportwart.ort }}</p>
<p v-if="config.vorstand.sportwart.telefon">Tel. {{ config.vorstand.sportwart.telefon }}</p>
<p v-if="config.vorstand.sportwart.email">
<a :href="`mailto:${config.vorstand.sportwart.email}`" class="text-primary-600 hover:underline">
{{ config.vorstand.sportwart.email }}
</a>
</p>
</div>
</div>
<!-- Jugendwart -->
<div v-if="config.vorstand.jugendwart.vorname" class="bg-white p-6 rounded-xl shadow-lg border border-gray-100">
<h3 class="text-xl font-display font-bold text-gray-900 mb-2">Jugendwart</h3>
<h4 class="text-lg font-semibold text-primary-600 mb-3">
{{ config.vorstand.jugendwart.vorname }} {{ config.vorstand.jugendwart.nachname }}
</h4>
<div class="space-y-1 text-gray-600">
<p v-if="config.vorstand.jugendwart.strasse">{{ config.vorstand.jugendwart.strasse }}</p>
<p v-if="config.vorstand.jugendwart.plz">{{ config.vorstand.jugendwart.plz }} {{ config.vorstand.jugendwart.ort }}</p>
<p v-if="config.vorstand.jugendwart.telefon">Tel. {{ config.vorstand.jugendwart.telefon }}</p>
<p v-if="config.vorstand.jugendwart.email">
<a :href="`mailto:${config.vorstand.jugendwart.email}`" class="text-primary-600 hover:underline">
{{ config.vorstand.jugendwart.email }}
</a>
</p>
</div>
</div>
</div>
@@ -58,6 +126,23 @@
</template>
<script setup>
import { ref, onMounted } from 'vue'
const config = ref(null)
const loadConfig = async () => {
try {
const response = await $fetch('/api/config')
config.value = response.config
} catch (error) {
console.error('Fehler beim Laden der Config:', error)
}
}
onMounted(() => {
loadConfig()
})
useHead({
title: 'Vorstand - Harheimer TC',
})