|
@@ -6,12 +6,13 @@ Prend en paramètre une liste de ItemMenu et les met en forme
|
|
|
<template>
|
|
<template>
|
|
|
<v-navigation-drawer
|
|
<v-navigation-drawer
|
|
|
:mini-variant.sync="miniVariant"
|
|
:mini-variant.sync="miniVariant"
|
|
|
|
|
+ v-model="open"
|
|
|
|
|
+ fixed
|
|
|
clipped
|
|
clipped
|
|
|
class="ot_dark_grey ot_menu_color--text"
|
|
class="ot_dark_grey ot_menu_color--text"
|
|
|
- fixed
|
|
|
|
|
app
|
|
app
|
|
|
>
|
|
>
|
|
|
- <v-list>
|
|
|
|
|
|
|
+ <v-list class="left-menu">
|
|
|
<div v-for="(item, i) in menu" :key="i">
|
|
<div v-for="(item, i) in menu" :key="i">
|
|
|
<v-list-item
|
|
<v-list-item
|
|
|
v-if="!item.children"
|
|
v-if="!item.children"
|
|
@@ -55,14 +56,18 @@ Prend en paramètre une liste de ItemMenu et les met en forme
|
|
|
exact
|
|
exact
|
|
|
>
|
|
>
|
|
|
<v-list-item-action>
|
|
<v-list-item-action>
|
|
|
- <v-icon class="ot_menu_color--text" small>
|
|
|
|
|
|
|
+ <v-icon class="ot_white--text" small>
|
|
|
{{ child.icon }}
|
|
{{ child.icon }}
|
|
|
</v-icon>
|
|
</v-icon>
|
|
|
</v-list-item-action>
|
|
</v-list-item-action>
|
|
|
<v-list-item-content>
|
|
<v-list-item-content>
|
|
|
- <v-list-item-title class="ot_menu_color--text" v-text="$t(child.title)" />
|
|
|
|
|
|
|
+ <v-list-item-title class="ot_white--text" v-text="$t(child.title)" />
|
|
|
</v-list-item-content>
|
|
</v-list-item-content>
|
|
|
</v-list-item>
|
|
</v-list-item>
|
|
|
|
|
+
|
|
|
|
|
+ <template #appendIcon>
|
|
|
|
|
+ <v-icon class="ot_menu_color--text" small>mdi-chevron-down</v-icon>
|
|
|
|
|
+ </template>
|
|
|
</v-list-group>
|
|
</v-list-group>
|
|
|
</div>
|
|
</div>
|
|
|
</v-list>
|
|
</v-list>
|
|
@@ -70,8 +75,9 @@ Prend en paramètre une liste de ItemMenu et les met en forme
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script lang="ts">
|
|
<script lang="ts">
|
|
|
-import { defineComponent } from '@nuxtjs/composition-api'
|
|
|
|
|
|
|
+import {computed, defineComponent, onUnmounted, ref, toRefs, watch} from '@nuxtjs/composition-api'
|
|
|
import { ItemsMenu } from '~/types/interfaces'
|
|
import { ItemsMenu } from '~/types/interfaces'
|
|
|
|
|
+import {WatchStopHandle} from "@vue/composition-api";
|
|
|
|
|
|
|
|
export default defineComponent({
|
|
export default defineComponent({
|
|
|
props: {
|
|
props: {
|
|
@@ -82,6 +88,25 @@ export default defineComponent({
|
|
|
miniVariant: {
|
|
miniVariant: {
|
|
|
type: Boolean,
|
|
type: Boolean,
|
|
|
required: true
|
|
required: true
|
|
|
|
|
+ },
|
|
|
|
|
+ openMenu: {
|
|
|
|
|
+ type: Boolean,
|
|
|
|
|
+ required: true
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ setup(props){
|
|
|
|
|
+ const {openMenu} = toRefs(props)
|
|
|
|
|
+ const open = ref(false)
|
|
|
|
|
+ const unwatch: WatchStopHandle = watch(openMenu, (newValue, oldValue) => {
|
|
|
|
|
+ open.value = true
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
|
|
+ onUnmounted(() => {
|
|
|
|
|
+ unwatch()
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
|
|
+ return {
|
|
|
|
|
+ open
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
@@ -92,6 +117,10 @@ export default defineComponent({
|
|
|
margin-right: 10px !important;
|
|
margin-right: 10px !important;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ .v-application--is-ltr .v-list-group--no-action > .v-list-group__header{
|
|
|
|
|
+ margin-left: 0px;
|
|
|
|
|
+ padding-left: 0px;
|
|
|
|
|
+ }
|
|
|
.v-application--is-ltr .v-list-group--no-action > .v-list-group__items > .v-list-item {
|
|
.v-application--is-ltr .v-list-group--no-action > .v-list-group__items > .v-list-item {
|
|
|
padding-left: 30px;
|
|
padding-left: 30px;
|
|
|
}
|
|
}
|