feat (appsidebar): add outpatient menu and pages

This commit is contained in:
Abizrh
2025-08-13 14:38:31 +07:00
parent 89eaa7cdab
commit a6558e312b
7 changed files with 47 additions and 21 deletions
+27 -6
View File
@@ -8,6 +8,32 @@ const navMenu: any[] = [
icon: 'i-lucide-home', icon: 'i-lucide-home',
link: '/', link: '/',
}, },
{
title: 'Rawat Jalan',
icon: 'i-lucide-stethoscope',
children: [
{
title: 'Antrian Pendaftaran',
icon: 'i-lucide-stethoscope',
link: '/outpatient/registration-queue',
},
{
title: 'Pendaftaran',
icon: 'i-lucide-building-2',
link: '/outpatient/registration',
},
{
title: 'Antrian Pemeriksaan',
icon: 'i-lucide-stethoscope',
link: '/outpatient/examination-queue',
},
{
title: 'Pendaftaran',
icon: 'i-lucide-building-2',
link: '/outpatient/examination',
},
],
},
{ {
title: 'Pasien', title: 'Pasien',
icon: 'i-lucide-users', icon: 'i-lucide-users',
@@ -18,11 +44,6 @@ const navMenu: any[] = [
icon: 'i-lucide-heart', icon: 'i-lucide-heart',
link: '/rehabilitasi', link: '/rehabilitasi',
}, },
{
title: 'Rawat Jalan',
icon: 'i-lucide-stethoscope',
link: '/rawat-jalan',
},
{ {
title: 'Rawat Inap', title: 'Rawat Inap',
icon: 'i-lucide-building-2', icon: 'i-lucide-building-2',
@@ -119,7 +140,7 @@ const sidebar = {
v-for="(item, index) in nav.items" v-for="(item, index) in nav.items"
:key="index" :key="index"
:item="item" :item="item"
class="mb-2" class="my-2 mb-2"
/> />
</SidebarGroup> </SidebarGroup>
<SidebarGroup class="mt-auto"> <SidebarGroup class="mt-auto">
+7 -14
View File
@@ -24,13 +24,7 @@ const openCollapsible = ref(false)
<CollapsibleTrigger as-child> <CollapsibleTrigger as-child>
<SidebarMenuButton :tooltip="item.title" :size="size"> <SidebarMenuButton :tooltip="item.title" :size="size">
<Icon :name="item.icon || ''" mode="svg" /> <Icon :name="item.icon || ''" mode="svg" />
<span>{{ item.title }}</span> <span class="mx-2">{{ item.title }}</span>
<span
v-if="item.new"
class="bg-#adfa1d rounded-md px-1.5 py-0.5 text-xs leading-none text-black no-underline group-hover:no-underline"
>
New
</span>
<Icon <Icon
name="i-lucide-chevron-right" name="i-lucide-chevron-right"
class="ml-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90" class="ml-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90"
@@ -41,14 +35,13 @@ const openCollapsible = ref(false)
<SidebarMenuSub> <SidebarMenuSub>
<SidebarMenuSubItem v-for="subItem in item.children" :key="subItem.title"> <SidebarMenuSubItem v-for="subItem in item.children" :key="subItem.title">
<SidebarMenuSubButton as-child> <SidebarMenuSubButton as-child>
<NuxtLink :to="subItem.link" @click="setOpenMobile(false)"> <NuxtLink
:to="subItem.link"
class="mx-4 rounded-lg py-5 text-sm font-medium transition-all duration-200"
active-class="bg-primary text-white"
@click="setOpenMobile(false)"
>
<span>{{ subItem.title }}</span> <span>{{ subItem.title }}</span>
<span
v-if="subItem.new"
class="bg-#adfa1d rounded-md px-1.5 py-0.5 text-xs leading-none text-black no-underline group-hover:no-underline"
>
New
</span>
</NuxtLink> </NuxtLink>
</SidebarMenuSubButton> </SidebarMenuSubButton>
</SidebarMenuSubItem> </SidebarMenuSubItem>
+1 -1
View File
@@ -21,7 +21,7 @@ const { setOpenMobile } = useSidebar()
<SidebarMenuButton as-child :tooltip="item.title" :size="size"> <SidebarMenuButton as-child :tooltip="item.title" :size="size">
<NuxtLink <NuxtLink
:to="item.link" :to="item.link"
class="group flex items-center gap-3 rounded-lg px-3 py-2 text-sm font-medium transition-all duration-200" class="group flex items-center gap-3 rounded-lg px-3 py-3 text-sm font-medium transition-all duration-200"
active-class="bg-primary text-white" active-class="bg-primary text-white"
@click="setOpenMobile(false)" @click="setOpenMobile(false)"
> >
@@ -0,0 +1,3 @@
<template>
<div>Examination Queue</div>
</template>
@@ -0,0 +1,3 @@
<template>
<div>Examination</div>
</template>
@@ -0,0 +1,3 @@
<template>
<div>Registration Queue</div>
</template>
@@ -0,0 +1,3 @@
<template>
<div>Registration</div>
</template>