si-klinik/sk-klinik.my.id/resources/views/livewire/admin/dashboard.blade.php

81 lines
3.7 KiB
PHP

<div class="space-y-8">
<div>
<flux:heading size="xl">Ikhtisar Dasbor</flux:heading>
<flux:subheading>Selamat datang kembali, berikut ringkasan sistem hari ini.</flux:subheading>
</div>
{{-- Stats Grid --}}
<div class="gap-4 grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4">
<flux:card class="flex flex-col gap-2">
<flux:text class="text-zinc-500">Total Pasien</flux:text>
<flux:heading size="xl">{{ $stats['total_patients'] }}</flux:heading>
</flux:card>
<flux:card class="flex flex-col gap-2">
<flux:text class="text-zinc-500">Janji Temu Hari Ini</flux:text>
<flux:heading size="xl" class="text-blue-600">{{ $stats['today_appointments'] }}</flux:heading>
</flux:card>
<flux:card class="flex flex-col gap-2">
<flux:text class="text-zinc-500">Total Dokter</flux:text>
<flux:heading size="xl">{{ $stats['total_doctors'] }}</flux:heading>
</flux:card>
<flux:card class="flex flex-col gap-2">
<flux:text class="text-zinc-500">Berita Dipublish</flux:text>
<flux:heading size="xl">{{ $stats['published_news'] }}</flux:heading>
</flux:card>
</div>
<div class="gap-8 grid grid-cols-1 lg:grid-cols-3">
{{-- Antrean Terbaru --}}
<div class="space-y-4 lg:col-span-2">
<div class="flex justify-between items-center">
<flux:heading>Antrean Perlu Diproses</flux:heading>
<flux:button href="{{ route('admin.antrean') }}" size="sm" variant="ghost">Lihat Semua</flux:button>
</div>
<flux:table>
<flux:table.columns>
<flux:table.column>No. Antrean</flux:table.column>
<flux:table.column>Pasien</flux:table.column>
<flux:table.column>Layanan</flux:table.column>
<flux:table.column>Status</flux:table.column>
</flux:table.columns>
<flux:table.rows>
@forelse($recentAppointments as $app)
<flux:table.row>
<flux:table.cell class="font-bold">#{{ $app->queue_number }}</flux:table.cell>
<flux:table.cell>{{ $app->patient->name }}</flux:table.cell>
<flux:table.cell>{{ $app->serviceCategory->name }}</flux:table.cell>
<flux:table.cell>
<flux:badge color="warning" size="sm" inset="top bottom">{{ $app->status }}</flux:badge>
</flux:table.cell>
</flux:table.row>
@empty
<flux:table.row>
<flux:table.cell colspan="4" class="py-4 text-zinc-400 text-center">Tidak ada antrean hari ini.</flux:table.cell>
</flux:table.row>
@endforelse
</flux:table.rows>
</flux:table>
</div>
{{-- Berita Terpopuler --}}
<div class="space-y-4">
<flux:heading>Berita Terpopuler</flux:heading>
<div class="space-y-3">
@foreach($popularNews as $news)
<div class="flex items-center gap-3 p-3 border border-zinc-200 dark:border-zinc-700 rounded-lg">
<div class="flex-1 min-w-0">
<p class="font-medium text-sm truncate">{{ $news->title }}</p>
<p class="text-zinc-500 text-xs">{{ $news->view_count }} views</p>
</div>
</div>
@endforeach
</div>
</div>
</div>
</div>