Initial Nuxt frontend import
Some checks failed
continuous-integration/drone/push Build is failing

- Complete GGZ Ecademy Nuxt.js user portal
- Learning products browser and management
- Member management interface
- User authentication and roles
- Multi-language support (NL/EN)
- Vuex store for state management
- Component-based architecture
This commit is contained in:
Joris Slagter
2025-12-02 17:48:48 +01:00
parent 0f691e83e3
commit 791aebc346
290 changed files with 113801 additions and 0 deletions

View File

@@ -0,0 +1,176 @@
<template>
<v-footer light padless>
<v-card class="flex my-0">
<v-card-title>
<v-row>
<v-col cols="12" sm="12" md="3">
<v-list dense>
<v-subheader>Productcatalogus</v-subheader>
<v-list-item-group v-model="item" color="primary">
<v-list-item v-for="(item, i) in items" :key="i">
<v-list-item-content>
<v-list-item-title v-text="item.text"></v-list-item-title>
</v-list-item-content>
</v-list-item>
</v-list-item-group>
</v-list>
</v-col>
<v-col cols="12" sm="12" md="3">
<v-list dense>
<v-subheader>Diensten</v-subheader>
<v-list-item-group v-model="item" color="primary">
<v-list-item v-for="(item, i) in items" :key="i">
<v-list-item-content>
<v-list-item-title v-text="item.text"></v-list-item-title>
</v-list-item-content>
</v-list-item>
</v-list-item-group>
</v-list>
</v-col>
<v-col cols="12" sm="12" md="3">
<v-list dense>
<v-subheader>CATEGORY</v-subheader>
<v-list-item-group v-model="item" color="primary">
<v-list-item v-for="(item, i) in items" :key="i">
<v-list-item-content>
<v-list-item-title v-text="item.text"></v-list-item-title>
</v-list-item-content>
</v-list-item>
</v-list-item-group>
</v-list>
</v-col>
<v-col cols="12" sm="12" md="3">
<v-list dense>
<v-subheader>CATEGORY</v-subheader>
<v-list-item-group v-model="item" color="primary">
<v-list-item v-for="(item, i) in items" :key="i">
<v-list-item-content>
<v-list-item-title v-text="item.text"></v-list-item-title>
</v-list-item-content>
</v-list-item>
</v-list-item-group>
</v-list>
</v-col>
</v-row>
</v-card-title>
<v-card-text>
<v-row no-gutters>
<v-col cols="12" sm="3">
<v-list dense>
<v-subheader>CATEGORY</v-subheader>
<v-list-item-group v-model="item" color="primary">
<v-list-item v-for="(item, i) in items" :key="i">
<v-list-item-content>
<v-list-item-title v-text="item.text"></v-list-item-title>
</v-list-item-content>
</v-list-item>
</v-list-item-group>
</v-list>
</v-col>
<v-col cols="12" sm="3">
<v-list dense>
<v-subheader>CATEGORY</v-subheader>
<v-list-item-group v-model="item" color="primary">
<v-list-item v-for="(item, i) in items" :key="i">
<v-list-item-content>
<v-list-item-title v-text="item.text"></v-list-item-title>
</v-list-item-content>
</v-list-item>
</v-list-item-group>
</v-list>
</v-col>
<v-col cols="12" sm="3">
<v-list dense>
<v-subheader>CATEGORY</v-subheader>
<v-list-item-group v-model="item" color="primary">
<v-list-item v-for="(item, i) in items" :key="i">
<v-list-item-content>
<v-list-item-title v-text="item.text"></v-list-item-title>
</v-list-item-content>
</v-list-item>
</v-list-item-group>
</v-list>
</v-col>
<v-col cols="12" sm="3" class="d-flex flex-column">
<v-list dense>
<v-subheader>Betalingsmethode</v-subheader>
<v-row>
<v-col
v-for="payment in payments"
:key="payment.name"
class="d-flex child-flex"
cols="2"
>
<v-img
:src="require(`@/assets/img/${payment.filename}`)"
:lazy-src="require(`@/assets/img/${payment.filename}`)"
contain
>
<template v-slot:placeholder>
<v-row class="fill-height ma-0" align="center" justify="center">
<v-progress-circular indeterminate color="grey lighten-5"></v-progress-circular>
</v-row>
</template>
</v-img>
</v-col>
</v-row>
</v-list>
<v-list dense>
<v-subheader>Volg ons</v-subheader>
<v-btn v-for="icon in icons" :key="icon" class="mx-2" light icon>
<v-icon small>{{ 'mdi-' + icon }}</v-icon>
</v-btn>
</v-list>
</v-col>
</v-row>
</v-card-text>
<v-card-actions class="py-2 grey lighten-4">
<span>© Buningh {{ new Date().getFullYear() }}</span>
<v-spacer></v-spacer>
<span>Alle vermelde prijzen zijn in euro's en inclusief BTW</span>
</v-card-actions>
</v-card>
</v-footer>
</template>
<script>
import Newsletter from '~/components/Newsletter/Newsletter'
import Disclaimer from '~/components/Info/Disclaimer'
import Privacy from '~/components/Info/Privacy'
import Cookies from '~/components/Info/Cookies'
export default {
components: {
Newsletter,
Disclaimer,
Privacy,
Cookies
},
data: () => ({
item: 99,
payments: [
{ name: 'Bancontact', filename: 'BC_logo_ORGNL_RGB.png' },
{ name: 'PayPal', filename: 'PayPal.png' },
{ name: 'Maestro', filename: 'MAES.png' },
{ name: 'IDeal', filename: 'iDeal.png' },
{ name: 'MasterCard', filename: 'MC.png' },
{ name: 'Visa', filename: 'Visa.png' }
],
items: [
{ text: 'Real-Time' },
{ text: 'Audience' },
{ text: 'Conversions' },
{ text: 'Whatever' }
],
icons: ['twitter', 'facebook', 'linkedin', 'instagram'],
disclaimer: false,
privacy: false,
cookies: false
})
}
</script>

View File

@@ -0,0 +1,80 @@
<template>
<div>
<topbar />
<v-row align="center" justify="space-between">
<div class="d-flex mx-4">
<v-card class="ma-3 pa-6" outlined tile>LOGO Buningh</v-card>
<v-row align="center" class="mx-4">
<v-col>
<v-btn
text
small
:to="item.to"
v-for="(item,i) in menu"
:key="i"
class="mx-4"
>{{item.title}}</v-btn>
</v-col>
</v-row>
</div>
<div class="d-flex">
<v-text-field
v-model="search"
append-icon="icon-search"
label="Zoeken naar merk of product.."
single-line
hide-details
outlined
></v-text-field>
<v-row align="center" class="mx-4">
<v-col>
<v-btn icon to="/login">
<v-icon>icon-password</v-icon>
</v-btn>
</v-col>
<v-col>
<v-btn icon>
<v-icon>mdi-heart</v-icon>
</v-btn>
</v-col>
<v-col>
<v-btn icon>
<v-icon>mdi-shopping-outline</v-icon>
</v-btn>
</v-col>
</v-row>
</div>
</v-row>
</div>
</template>
<script>
import Topbar from '~/components/layout/Header/Topbar'
export default {
components: {
Topbar
},
data() {
return {
search: '',
menu: [
{ title: 'Verlichting', to: '/' },
{ title: 'Meubels', to: '/' },
{ title: 'Behang', to: '/' },
{ title: 'Stoffen', to: '/' },
{ title: 'Accessoires', to: '/' }
]
}
},
computed: {
title() {
return `${process.env.NAME}`
}
}
}
</script>

View File

@@ -0,0 +1,53 @@
<template>
<v-toolbar dense flat>
<span v-for="(item,i) in menuItems.left" :key="`x${i}`" class="mx-4 caption">
<v-avatar color="#ffcc00" size="6" class="mx-2"></v-avatar>
<span>{{item.label}}</span>
</span>
<v-spacer></v-spacer>
<span v-for="(item,i) in menuItems.right" :key="i" class="mx-4 caption">
{{item.label}}
</span>
</v-toolbar>
</template>
<script>
export default {
data() {
return {
menuItems: {
left: [
{ label: 'Gratis verzending in NL & BE' },
{ label: 'Meer dan 500 merken' },
{ label: '135 jaar de nieuwste trends' }
],
right: [
{ label: 'Interieuradvies', to: '/interieuradvies' },
{ label: 'Over Buningh', to: '/algemeen' },
{ label: 'Klantenservice', to: '/klantenservice' },
{ label: '+31 10 41 40 560' }
]
},
menu: [
{ title: 'Verlichting', route: '/' },
{ title: 'Meubels', route: '/' },
{ title: 'Behang', route: '/' },
{ title: 'Stoffen', route: '/' },
{ title: 'Accessoires', route: '/' },
{ title: 'Sale', route: '/' },
{ title: 'Inspiratie', route: '/' },
{ title: 'Merken', route: '/' }
]
}
},
computed: {
title() {
return `${process.env.NAME}`
}
}
}
</script>

View File

@@ -0,0 +1,31 @@
<template>
<v-navigation-drawer v-model="drawer" app>
<v-list dense>
<v-list-item link>
<v-list-item-action>
<v-icon>mdi-home</v-icon>
</v-list-item-action>
<v-list-item-content>
<v-list-item-title>Home</v-list-item-title>
</v-list-item-content>
</v-list-item>
<v-list-item link>
<v-list-item-action>
<v-icon>mdi-contact-mail</v-icon>
</v-list-item-action>
<v-list-item-content>
<v-list-item-title>Contact</v-list-item-title>
</v-list-item-content>
</v-list-item>
</v-list>
</v-navigation-drawer>
</template>
<script>
export default {
data: () => ({
drawer: false
})
}
</script>

View File

@@ -0,0 +1,10 @@
<template>
<v-system-bar window light>
<v-icon>mdi-message</v-icon>
<span>10 unread messages</span>
<v-spacer></v-spacer>
<v-icon>mdi-minus</v-icon>
<v-icon>icon-checkmarkbox-blank-outline</v-icon>
<v-icon x-small>icon-close</v-icon>
</v-system-bar>
</template>