42 lines
742 B
Vue
42 lines
742 B
Vue
<template>
|
|
<router-link tag="li" class="nav-item nav-dropdown" :to="url" disabled>
|
|
<div class="nav-link nav-dropdown-toggle" @click="handleClick"><i :class="classIcon"></i> {{name}}</div>
|
|
<ul class="nav-dropdown-items">
|
|
<slot></slot>
|
|
</ul>
|
|
</router-link>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
props: {
|
|
name: {
|
|
type: String,
|
|
default: ''
|
|
},
|
|
url: {
|
|
type: String,
|
|
default: ''
|
|
},
|
|
icon: {
|
|
type: String,
|
|
default: ''
|
|
}
|
|
},
|
|
computed: {
|
|
classIcon () {
|
|
return [
|
|
'nav-icon',
|
|
this.icon
|
|
]
|
|
}
|
|
},
|
|
methods: {
|
|
handleClick (e) {
|
|
e.preventDefault()
|
|
e.target.parentElement.classList.toggle('open')
|
|
}
|
|
}
|
|
}
|
|
</script>
|