Files
arakrail/components/admin/AdminAsideItem.vue
T
Amir Mohamadi bc5e617778 back-end done
2020-12-10 16:36:48 +03:30

61 lines
1.2 KiB
Vue

<template>
<nuxt-link :to="link" tag="li" v-if="!hasChild">
<a>
<i :class="icon"></i>
<span>{{text}}</span>
<span class="badge" v-if="badge">{{badge}}</span>
</a>
</nuxt-link>
<li v-else>
<ul>
<li @click="toggle">
<a>
<i :class="icon"></i>
<span>{{text}}</span>
</a>
</li>
</ul>
<ul class="menu-group" :data-key="componentUniqueID">
<slot/>
</ul>
</li>
</template>
<script>
export default {
data() {
return {
componentUniqueID: null
}
},
props: {
link: {
required: false
},
icon: {
required: false
},
text: {
required: true
},
badge: {
required: false
},
hasChild: {
required: false,
default: false
}
},
mounted() {
this.componentUniqueID = Math.random() * 100
$('.menu-group').slideUp()
},
methods: {
toggle(e) {
$(`.menu-group:not([data-key="${this.componentUniqueID}"])`).slideUp()
$(`.menu-group[data-key="${this.componentUniqueID}"]`).slideToggle()
}
}
}
</script>