Dashboard Admin Perangkat Desa

Ringkasan data kelayakan penerima BLT-DD

{{-- BELL --}}
{{-- CLOCK --}}
{{-- GREETING --}}
{{ strtoupper(substr(Auth::user()->name ?? 'A', 0, 1)) }}

Selamat datang, {{ Auth::user()->name ?? 'Admin' }} 👋

Panel admin — kelola dan pantau seluruh data warga.

{{ $totalPending ?? 0 }} data menunggu verifikasi

Proses sekarang →
{{-- STAT CARDS --}}
@php $cards = [ ['label'=>'Total Warga','sub'=>'Dari semua dusun','val'=>$totalWarga??0,'grad'=>'#2563eb,#1d4ed8','shadow'=>'rgba(37,99,235,.3)','icon'=>'M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0z','tc'=>'rgba(191,219,254,.9)'], ['label'=>'Pending','sub'=>'Belum diproses','val'=>$totalPending??0,'grad'=>'#f59e0b,#d97706','shadow'=>'rgba(245,158,11,.3)','icon'=>'M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z','tc'=>'rgba(254,243,199,.9)'], ['label'=>'Diterima','sub'=>'Sudah ditetapkan','val'=>$totalPenerima??0,'grad'=>'#10b981,#059669','shadow'=>'rgba(16,185,129,.3)','icon'=>'M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z','tc'=>'rgba(167,243,208,.9)'], ['label'=>'Ditolak','sub'=>'Tidak memenuhi syarat','val'=>$totalDitolak??0,'grad'=>'#f43f5e,#e11d48','shadow'=>'rgba(244,63,94,.3)','icon'=>'M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z','tc'=>'rgba(254,205,211,.9)'], ]; @endphp @foreach($cards as $c)

{{ $c['label'] }}

{{ $c['val'] }}

{{ $c['sub'] }}

@endforeach
{{-- GRAFIK + DATA PER DUSUN --}}
{{-- Grafik Modern --}}
{{-- Header --}}

Warga per Dusun

Distribusi warga di setiap dusun

{{ $wargaPerDusun->sum('total') }}

total warga

{{-- Divider --}}
{{-- SVG Chart --}}
@php $dusuns = $wargaPerDusun->values(); $n = max($dusuns->count(), 1); $maxV = max((int)$dusuns->max('total'), 1); $W=360; $H=190; $pL=36; $pR=12; $pT=30; $pB=46; $cW=$W-$pL-$pR; $cH=$H-$pT-$pB; $botY=$pT+$cH; $pts=[]; foreach($dusuns as $i=>$d){ $x = round($pL + ($n===1 ? $cW/2 : ($i/($n-1))*$cW), 1); $y = round($pT + $cH - ($d->total / $maxV) * $cH, 1); $pts[] = ['x'=>$x,'y'=>$y,'val'=>$d->total,'name'=>$d->dusun]; } /* Smooth cubic bezier */ $linePath = "M {$pts[0]['x']},{$pts[0]['y']}"; for($i=0;$i {{-- Grid garis datar dashed --}} @foreach($yTicks as $t) @php $gy = round($pT + $cH - ($t/$maxV)*$cH, 1); @endphp {{ $t }} @endforeach {{-- Baseline --}} {{-- Area fill --}} {{-- Line smooth + glow --}} {{-- Shadow line tipis di bawah --}} {{-- Garis utama --}} {{-- Titik data --}} @foreach($pts as $idx => $p) {{-- Ring luar --}} {{-- Dot putih dengan border biru --}} {{-- Dot inner biru kecil --}} {{-- Badge nilai di atas titik --}} {{ $p['val'] }} {{-- Label dusun di bawah --}} {{ Str::limit($p['name'],7) }} @endforeach
{{-- Legend --}}
Jumlah warga per dusun
{{-- Data per dusun --}}

Per Dusun

@php $maxDusun=$wargaPerDusun->max('total')?:1; @endphp @foreach($wargaPerDusun as $data)
{{ $data->dusun }} {{ $data->total }}
@endforeach
{{-- TOP 10 --}}

Top 10 Probabilitas Tertinggi

Diurutkan dari probabilitas terbesar

Lihat Semua
@forelse($topWarga as $index => $warga) @empty @endforelse
# Nama NIK Dusun / RT Penghasilan Probabilitas Status
@php $rk = ['linear-gradient(135deg,#f59e0b,#d97706)','linear-gradient(135deg,#94a3b8,#64748b)','linear-gradient(135deg,#f97316,#ea580c)']; $bg = $index < 3 ? $rk[$index] : '#f1f5f9'; $tc = $index < 3 ? '#fff' : '#64748b'; @endphp
{{ $index+1 }}
{{ strtoupper(substr($warga->nama,0,1)) }}
{{ $warga->nama }}
{{ $warga->pekerjaan }}
{{ $warga->nik }}
{{ $warga->dusun }} RT {{ str_pad($warga->rt??'0',3,'0',STR_PAD_LEFT) }}
Rp {{ number_format($warga->penghasilan,0,',','.') }} @php $sc=$warga->probabilitas>=70?'#10b981':($warga->probabilitas>=40?'#f59e0b':'#f43f5e'); @endphp
{{ number_format($warga->probabilitas,1) }}%
@php $st=['pending'=>['#fffbeb','#b45309','#fde68a','Pending'],'diterima'=>['#f0fdf4','#166534','#bbf7d0','Diterima'],'ditolak'=>['#fff1f2','#be123c','#fecdd3','Ditolak']]; $s=$st[$warga->status]??['#eff6ff','#1d4ed8','#bfdbfe',ucfirst($warga->status)]; @endphp {{ $s[3] }}
Belum ada data warga