adrema/resources/js/views/member/ShowView.vue

168 lines
5.6 KiB
Vue
Raw Normal View History

<template>
2023-04-29 23:41:26 +02:00
<page-layout>
2023-05-20 02:38:38 +02:00
<template #toolbar>
2023-05-19 01:06:46 +02:00
<page-toolbar-button :href="meta.links.index" color="primary" icon="undo">zurück</page-toolbar-button>
<page-toolbar-button :href="data.links.edit" color="warning" icon="pencil">bearbeiten</page-toolbar-button>
2023-05-20 02:38:38 +02:00
</template>
2023-04-29 23:41:26 +02:00
<div class="p-3 grid gap-3 this-grid grow">
2023-05-19 01:06:46 +02:00
<ui-box heading="Stammdaten" class="area-stamm hidden xl:block">
2023-04-29 23:41:26 +02:00
<stamm :inner="inner"></stamm>
2023-05-19 01:06:46 +02:00
</ui-box>
<ui-box heading="Kontakt" class="area-kontakt hidden xl:block">
2023-04-29 23:41:26 +02:00
<kontakt :inner="inner"></kontakt>
2023-05-19 01:06:46 +02:00
</ui-box>
<ui-box class="area-stammkontakt block xl:hidden">
2023-04-29 23:41:26 +02:00
<tabs v-model="tabs.stammkontakt">
<stamm v-show="tabs.stammkontakt.active === 'stamm'" :inner="inner"></stamm>
<kontakt v-show="tabs.stammkontakt.active === 'kontakt'" :inner="inner"></kontakt>
</tabs>
2023-05-19 01:06:46 +02:00
</ui-box>
2022-11-22 00:37:34 +01:00
2023-05-19 01:06:46 +02:00
<ui-box container-class="" heading="Prävention" class="area-praev hidden xl:block">
2023-04-29 23:41:26 +02:00
<prae :inner="inner"></prae>
2023-05-19 01:06:46 +02:00
</ui-box>
<ui-box heading="System" class="area-system hidden xl:block">
2023-04-29 23:41:26 +02:00
<system :inner="inner"></system>
2023-05-19 01:06:46 +02:00
</ui-box>
<ui-box class="area-praesystem block xl:hidden">
2023-04-29 23:41:26 +02:00
<tabs v-model="tabs.praesystem">
<prae v-show="tabs.praesystem.active === 'prae'" :inner="inner"></prae>
<system v-show="tabs.praesystem.active === 'system'" :inner="inner"></system>
</tabs>
2023-05-19 01:06:46 +02:00
</ui-box>
2022-11-22 00:37:34 +01:00
2023-05-19 01:06:46 +02:00
<ui-box class="area-membershipcourse hidden xl:block">
2023-04-29 23:41:26 +02:00
<tabs v-model="tabs.membershipcourse">
<courses v-show="tabs.membershipcourse.active === 'course'" :value="inner.courses"></courses>
<memberships v-show="tabs.membershipcourse.active === 'membership'" :value="inner.memberships"></memberships>
</tabs>
2023-05-19 01:06:46 +02:00
</ui-box>
<ui-box heading="Ausbildungen" class="area-courses xl:hidden">
2023-04-29 23:41:26 +02:00
<courses :value="inner.courses"></courses>
2023-05-19 01:06:46 +02:00
</ui-box>
<ui-box heading="Mitgliedschaften" class="area-memberships xl:hidden">
2023-04-29 23:41:26 +02:00
<memberships :value="inner.memberships"></memberships>
2023-05-19 01:06:46 +02:00
</ui-box>
2022-11-22 00:37:34 +01:00
2023-05-19 01:06:46 +02:00
<ui-box heading="Zahlungen" class="area-payments">
2023-04-29 23:41:26 +02:00
<payments :value="inner.payments"></payments>
2023-05-19 01:06:46 +02:00
</ui-box>
2022-11-22 00:37:34 +01:00
2023-05-19 01:06:46 +02:00
<ui-box heading="Karte" container-class="grow" class="area-map hidden xl:flex">
2023-05-16 17:19:56 +02:00
<vmap v-if="inner.lat && inner.lon" :value="[inner.lat, inner.lon]"></vmap>
<div class="h-full flex items-center justify-center text-gray-400 text-center" v-else>Keine Karte vorhanden</div>
2023-05-19 01:06:46 +02:00
</ui-box>
2023-04-29 23:41:26 +02:00
</div>
</page-layout>
</template>
<script>
export default {
data: function () {
return {
inner: {},
2022-11-22 01:55:57 +01:00
tabs: {
stammkontakt: {
children: {
stamm: 'Stammdaten',
kontakt: 'Kontakt',
},
active: 'stamm',
},
praesystem: {
children: {
system: 'System',
2022-11-29 21:03:28 +01:00
prae: 'Prävention',
2022-11-22 01:55:57 +01:00
},
active: 'system',
},
2022-12-02 00:42:06 +01:00
membershipcourse: {
children: {
membership: 'Mitgliedshaften',
course: 'Ausbildungen',
},
active: 'membership',
},
2022-11-22 01:55:57 +01:00
},
};
},
methods: {},
props: {
data: {},
2023-05-02 23:13:00 +02:00
meta: {},
},
components: {
2023-06-01 11:05:03 +02:00
stamm: () => import(/* webpackChunkName: "member" */ './boxes/Stamm.vue'),
kontakt: () => import(/* webpackChunkName: "member" */ './boxes/Kontakt.vue'),
prae: () => import(/* webpackChunkName: "member" */ './boxes/Prae.vue'),
courses: () => import(/* webpackChunkName: "member" */ './boxes/Courses.vue'),
system: () => import(/* webpackChunkName: "member" */ './boxes/System.vue'),
payments: () => import(/* webpackChunkName: "member" */ './boxes/Payments.vue'),
memberships: () => import(/* webpackChunkName: "member" */ './boxes/Memberships.vue'),
vmap: () => import(/* webpackChunkName: "member" */ './boxes/Vmap.vue'),
tabs: () => import(/* webpackChunkName: "member" */ './Tabs.vue'),
},
created() {
this.inner = this.data;
},
};
</script>
<style scoped>
.this-grid {
2022-11-22 00:37:34 +01:00
grid-template-areas:
2022-11-22 01:55:57 +01:00
'stammkontakt'
'praesystem'
'courses'
'memberships'
'payments';
2022-11-22 01:55:57 +01:00
grid-template-columns: 1fr;
}
2022-12-02 00:42:06 +01:00
@media screen and (min-width: 1280px) {
2022-11-22 01:55:57 +01:00
.this-grid {
grid-template-areas:
'stamm kontakt praev system'
2022-12-02 00:42:06 +01:00
'membershipcourse membershipcourse membershipcourse membershipcourse'
2022-11-22 01:55:57 +01:00
'payments payments map map';
grid-template-columns: max-content max-content max-content 1fr;
}
2022-11-22 00:37:34 +01:00
}
.area-stamm {
grid-area: stamm;
}
.area-kontakt {
grid-area: kontakt;
}
2022-11-22 01:55:57 +01:00
.area-praev {
grid-area: praev;
2022-11-22 00:37:34 +01:00
}
.area-courses {
grid-area: courses;
}
.area-system {
grid-area: system;
}
.area-memberships {
grid-area: memberships;
}
.area-payments {
grid-area: payments;
}
.area-map {
grid-area: map;
}
2022-11-22 01:55:57 +01:00
.area-stammkontakt {
grid-area: stammkontakt;
}
2022-12-02 00:42:06 +01:00
.area-membershipcourse {
grid-area: membershipcourse;
}
.area-praesystem {
grid-area: praesystem;
}
</style>