Initial commit

This commit is contained in:
cw
2026-06-11 12:30:23 +07:00
commit 2676f3a61c
70 changed files with 9867 additions and 0 deletions
+75
View File
@@ -0,0 +1,75 @@
<?php
// monitoring.php — Admin monitoring kemiskinan view
?>
<div style="display:flex;align-items:center;justify-content:space-between;margin-bottom:20px">
<div><h2 style="font-size:1.2rem;font-weight:700">👥 Monitoring Data Kemiskinan</h2>
<p class="text-muted text-sm"><?= count($warga) ?> warga aktif terdata dalam sistem</p></div>
</div>
<!-- Peta -->
<div class="card" style="margin-bottom:20px">
<div class="card-header"><span class="card-icon">🗺</span><h3>Peta Persebaran Seluruh Warga Miskin</h3></div>
<div class="card-body no-pad" style="position:relative">
<div id="mon-map" style="height:360px"></div>
<div class="map-legend">
<h4>Legenda</h4>
<div class="map-legend-item"><div class="map-legend-dot legend-dot-ekstrem"></div> Miskin Ekstrem</div>
<div class="map-legend-item"><div class="map-legend-dot legend-dot-miskin"></div> Miskin</div>
<div class="map-legend-item"><div class="map-legend-dot legend-dot-rentan"></div> Rentan Miskin</div>
<div class="map-legend-item"><div class="map-legend-dot legend-dot-blind"></div> Blind Spot</div>
</div>
</div>
</div>
<!-- Search + Table -->
<div class="filters-bar"><input type="text" id="search-mon" class="form-control" placeholder="🔍 Cari nama, NIK..." style="max-width:300px"></div>
<div class="card">
<div class="card-body no-pad">
<div class="table-wrap">
<table id="table-mon">
<thead><tr><th>#</th><th>Nama</th><th>Wilayah</th><th>Status Kemiskinan</th><th>Prioritas</th><th>Penghasilan</th><th>Tgn</th><th>Rumah Ibadah</th><th>Ket</th></tr></thead>
<tbody>
<?php foreach($warga as $i=>$w): ?>
<tr>
<td class="text-xs text-muted"><?= $i+1 ?></td>
<td>
<div style="font-weight:600;font-size:0.875rem"><?= e($w['nama']) ?></div>
<div class="text-xs text-muted"><?= $w['nik'] ? 'NIK: '.e($w['nik']) : '' ?></div>
</td>
<td class="text-sm"><?= e($w['kecamatan']) ?> <?= e($w['kelurahan']) ?></td>
<td><?php $sc=['Miskin Ekstrem'=>'badge-red','Miskin'=>'badge-orange','Rentan Miskin'=>'badge-yellow']; ?>
<span class="badge <?= $sc[$w['status_kemiskinan']]??'badge-gray' ?>"><?= e($w['status_kemiskinan']) ?></span></td>
<td><?php $pc=['Tinggi'=>'badge-red','Sedang'=>'badge-yellow','Rendah'=>'badge-green']; ?>
<span class="badge <?= $pc[$w['level_prioritas']]??'badge-gray' ?>"><?= e($w['level_prioritas']) ?></span>
<div class="text-xs text-muted"><?= $w['skor_prioritas'] ?>/100</div></td>
<td class="text-sm"><?= formatRupiah($w['penghasilan_bulanan']??0) ?></td>
<td class="text-sm text-center"><?= $w['jumlah_tanggungan'] ?></td>
<td class="text-sm"><?= e($w['rumah_ibadah_nama']??'—') ?></td>
<td>
<?php if($w['is_blind_spot']): ?><span class="badge badge-purple" title="Blind Spot">⚠</span><?php endif; ?>
<?php if($w['is_lansia']): ?><span class="badge badge-orange" title="Lansia">👴</span><?php endif; ?>
<?php if($w['is_disabilitas']): ?><span class="badge badge-blue" title="Disabilitas">♿</span><?php endif; ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</div>
</div>
<script>
document.addEventListener('DOMContentLoaded', async () => {
App.initTableSearch('search-mon','table-mon');
const map = GISMap.init('mon-map', <?= MAP_DEFAULT_LAT ?>, <?= MAP_DEFAULT_LNG ?>, 12);
const data = await App.fetchJSON('<?= APP_URL ?>/admin/api/peta');
if(data) {
GISMap.addRILayer(data.rumah_ibadah||[]);
GISMap.addWargaLayer(data.warga||[]);
GISMap.autoFitBounds();
} else {
GISMap.autoFitBounds(true);
}
});
</script>