30 lines
971 B
Vue
30 lines
971 B
Vue
<template>
|
|
<page-layout>
|
|
<div class="gap-6 md:grid-cols-2 xl:grid-cols-4 grid p-6">
|
|
<v-block v-for="(block, index) in blocks" :key="index" :title="block.title">
|
|
<component :is="block.component" :data="block.data"></component>
|
|
</v-block>
|
|
</div>
|
|
</page-layout>
|
|
</template>
|
|
|
|
<script>
|
|
import {defineAsyncComponent} from 'vue';
|
|
|
|
export default {
|
|
props: {
|
|
data: {},
|
|
blocks: {},
|
|
},
|
|
|
|
components: {
|
|
'VBlock': defineAsyncComponent(() => import('./VBlock.vue')),
|
|
'age-group-count': defineAsyncComponent(() => import('./AgeGroupCount.vue')),
|
|
'efz-pending': defineAsyncComponent(() => import('./EfzPending.vue')),
|
|
'ps-pending': defineAsyncComponent(() => import('./PsPending.vue')),
|
|
'testers': defineAsyncComponent(() => import('./Testers.vue')),
|
|
'member-payment': defineAsyncComponent(() => import('./MemberPayment.vue')),
|
|
},
|
|
};
|
|
</script>
|