Files
music-admin/@layouts/components/VerticalNavGroup.vue
poptong 83b162d2bd
Some checks failed
🚀 Deploy - Demo / deployment (push) Has been cancelled
🔧 웹훅 URL을 HTTPS로 수정
- 웹훅 URL을 https://admin.youtooplay.com/webhook로 변경
- Nginx 리버스 프록시 설정 파일 추가
- 배포 가이드 업데이트
2025-10-01 01:47:51 +09:00

71 lines
1.3 KiB
Vue

<script lang="ts" setup>
import type { NavGroup } from '@layouts/types'
defineProps<{
item: Omit<NavGroup, 'children'>
}>()
const isOpen = ref(false)
</script>
<template>
<li
class="nav-group"
:class="isOpen && 'open'"
>
<div
class="nav-group-label"
@click="isOpen = !isOpen"
>
<VIcon
:icon="item.icon || 'bxs-circle'"
class="nav-item-icon"
/>
<span class="nav-item-title">{{ item.title }}</span>
<span
class="nav-item-badge"
:class="item.badgeClass"
>
{{ item.badgeContent }}
</span>
<VIcon
icon="bx-chevron-right"
class="nav-group-arrow"
/>
</div>
<div class="nav-group-children-wrapper">
<ul class="nav-group-children">
<slot />
</ul>
</div>
</li>
</template>
<style lang="scss">
.layout-vertical-nav {
.nav-group {
&-label {
display: flex;
align-items: center;
cursor: pointer;
}
.nav-group-children-wrapper {
display: grid;
grid-template-rows: 0fr;
transition: grid-template-rows 0.3s ease-in-out;
.nav-group-children {
overflow: hidden;
}
}
&.open {
.nav-group-children-wrapper {
grid-template-rows: 1fr;
}
}
}
}
</style>