WIP: Add media link component
This commit is contained in:
parent
a198da395a
commit
d38e7eee38
|
|
@ -1,5 +1,4 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import * as log from 'loglevel';
|
|
||||||
|
|
||||||
export interface Props {
|
export interface Props {
|
||||||
title: string,
|
title: string,
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,10 @@ const router = createRouter({
|
||||||
path: 'handlungsfeld',
|
path: 'handlungsfeld',
|
||||||
component: () => import('@/views/Handlungsfeld.vue')
|
component: () => import('@/views/Handlungsfeld.vue')
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: 'handlungsfeldlist',
|
||||||
|
component: () => import('@/views/MediaList.vue')
|
||||||
|
},
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import * as log from 'loglevel';
|
import * as log from 'loglevel';
|
||||||
import LinkCard from "@/components/mediacenter/LinkCard.vue";
|
import LinkCard from "@/components/mediacenter/LinkCard.vue";
|
||||||
import { useRouter } from 'vue-router';
|
|
||||||
import HandlungsfeldLayout from "@/views/HandlungsfeldLayout.vue";
|
import HandlungsfeldLayout from "@/views/HandlungsfeldLayout.vue";
|
||||||
|
|
||||||
log.debug('Handlungsfeld created');
|
log.debug('Handlungsfeld created');
|
||||||
|
|
@ -160,8 +159,6 @@ const getMaxDisplayItemsForType = (itemType: string, subItems: object[]) => {
|
||||||
return displayAsCard(itemType) ? getMaxDisplayItems(subItems, maxCardItems) : getMaxDisplayItems(subItems, maxListItems);
|
return displayAsCard(itemType) ? getMaxDisplayItems(subItems, maxCardItems) : getMaxDisplayItems(subItems, maxListItems);
|
||||||
}
|
}
|
||||||
|
|
||||||
const router = useRouter()
|
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,93 @@
|
||||||
|
<script setup lang="ts">
|
||||||
|
import LinkCard from "@/components/mediacenter/LinkCard.vue";
|
||||||
|
import HandlungsfeldLayout from "@/views/HandlungsfeldLayout.vue";
|
||||||
|
|
||||||
|
const data = {
|
||||||
|
title: 'Fahrzeug: Lernmedien',
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
title: 'Die Motorfahrzeughaftpflicht',
|
||||||
|
description: 'Buch «Sach- und Vermögensversicherungen» – Kapitel 16',
|
||||||
|
iconUrl: '/static/icons/demo/icon-hf-book.png',
|
||||||
|
linkText: 'PDF anzeigen',
|
||||||
|
link: 'https://www.iterativ.ch'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Die Motorfahrzeughaftpflicht',
|
||||||
|
iconUrl: '/static/icons/demo/icon-hf-book.png',
|
||||||
|
description: 'Buch «Sach- und Vermögensversicherungen» – Kapitel 16',
|
||||||
|
linkText: 'PDF anzeigen',
|
||||||
|
link: 'https://www.iterativ.ch'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Die Motorfahrzeughaftpflicht',
|
||||||
|
iconUrl: '/static/icons/demo/icon-hf-book.png',
|
||||||
|
description: 'Buch «Sach- und Vermögensversicherungen» – Kapitel 16',
|
||||||
|
linkText: 'PDF anzeigen',
|
||||||
|
link: 'https://www.iterativ.ch'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Die Motorfahrzeughaftpflicht',
|
||||||
|
iconUrl: '/static/icons/demo/icon-hf-book.png',
|
||||||
|
description: 'Buch «Sach- und Vermögensversicherungen» – Kapitel 16',
|
||||||
|
linkText: 'PDF anzeigen',
|
||||||
|
link: 'https://www.iterativ.ch'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Die Motorfahrzeughaftpflicht',
|
||||||
|
iconUrl: '/static/icons/demo/icon-hf-book.png',
|
||||||
|
description: 'Buch «Sach- und Vermögensversicherungen» – Kapitel 16',
|
||||||
|
linkText: 'PDF anzeigen',
|
||||||
|
link: 'https://www.iterativ.ch'
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<Teleport to="body">
|
||||||
|
<HandlungsfeldLayout>
|
||||||
|
<template #header>
|
||||||
|
<h1 class="mb-4">{{data.title}}</h1>
|
||||||
|
</template>
|
||||||
|
<template #body>
|
||||||
|
<section class="mb-20">
|
||||||
|
<ul class="border-t">
|
||||||
|
<li
|
||||||
|
v-for="item in data.items"
|
||||||
|
:key="item.link"
|
||||||
|
class="flex items-center justify-between border-b py-4">
|
||||||
|
<div class="flex items-center justify-between">
|
||||||
|
<div v-if="item.iconUrl">
|
||||||
|
<img
|
||||||
|
class="mr-6 max-h-[70px]"
|
||||||
|
:src="item.iconUrl" />
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4 class="text-bold">{{item.title}}</h4>
|
||||||
|
<p
|
||||||
|
v-if="item.description"
|
||||||
|
class="mb-2">{{item.description}}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="">
|
||||||
|
<router-link :to="item.link" class="link">{{item.linkText}}</router-link>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</section>
|
||||||
|
</template>
|
||||||
|
</HandlungsfeldLayout>
|
||||||
|
</Teleport>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.it-icon-hf {
|
||||||
|
color: blue
|
||||||
|
}
|
||||||
|
.it-icon-hf > * {
|
||||||
|
@apply m-auto;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
Loading…
Reference in New Issue