Files
harheimertc/pages/vorstand.vue
2025-12-20 10:17:16 +01:00

202 lines
7.4 KiB
Vue

<template>
<div class="min-h-full py-16 bg-gray-50">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<h1 class="text-4xl sm:text-5xl font-display font-bold text-gray-900 mb-6">
Vorstand
</h1>
<div class="w-24 h-1 bg-primary-600 mb-8" />
<div class="prose prose-lg max-w-none">
<p class="text-xl text-gray-600 mb-8">
Unser engagiertes Vorstandsteam leitet den Harheimer TC mit Herz und Sachverstand.
</p>
<div
v-if="config"
class="grid md:grid-cols-2 gap-8 not-prose"
>
<!-- Vorsitzender -->
<PersonCard
v-if="config.vorstand.vorsitzender.vorname"
title="Vorsitzender"
:name="`${config.vorstand.vorsitzender.vorname} ${config.vorstand.vorsitzender.nachname}`"
:image-filename="config.vorstand.vorsitzender.imageFilename"
>
<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>
</PersonCard>
<!-- Stellvertreter -->
<PersonCard
v-if="config.vorstand.stellvertreter.vorname"
title="Stellvertreter"
:name="`${config.vorstand.stellvertreter.vorname} ${config.vorstand.stellvertreter.nachname}`"
:image-filename="config.vorstand.stellvertreter.imageFilename"
>
<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>
</PersonCard>
<!-- Kassenwart -->
<PersonCard
v-if="config.vorstand.kassenwart.vorname"
title="Kassenwart"
:name="`${config.vorstand.kassenwart.vorname} ${config.vorstand.kassenwart.nachname}`"
:image-filename="config.vorstand.kassenwart.imageFilename"
>
<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>
</PersonCard>
<!-- Schriftführer -->
<PersonCard
v-if="config.vorstand.schriftfuehrer.vorname"
title="Schriftführer"
:name="`${config.vorstand.schriftfuehrer.vorname} ${config.vorstand.schriftfuehrer.nachname}`"
:image-filename="config.vorstand.schriftfuehrer.imageFilename"
>
<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>
</PersonCard>
<!-- Sportwart -->
<PersonCard
v-if="config.vorstand.sportwart.vorname"
title="Sportwart"
:name="`${config.vorstand.sportwart.vorname} ${config.vorstand.sportwart.nachname}`"
:image-filename="config.vorstand.sportwart.imageFilename"
>
<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>
</PersonCard>
<!-- Jugendwart -->
<PersonCard
v-if="config.vorstand.jugendwart.vorname"
title="Jugendwart"
:name="`${config.vorstand.jugendwart.vorname} ${config.vorstand.jugendwart.nachname}`"
:image-filename="config.vorstand.jugendwart.imageFilename"
>
<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>
</PersonCard>
</div>
</div>
</div>
</div>
</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
} catch (error) {
console.error('Fehler beim Laden der Config:', error)
}
}
onMounted(() => {
loadConfig()
})
useHead({
title: 'Vorstand - Harheimer TC',
})
</script>