feat(surveyor/print-out): tambah template cetak apartemen-kantor, rapikan UI, dan perbaiki binding nilai

- Tambah file resources/views/surveyor/components/print-out/apartemen-kantor.blade.php untuk layout cetak “Analisa Unit” yang menampilkan radio luas unit dan daftar checkbox untuk bentuk, kondisi, posisi, dan view
- Revisi resources/views/surveyor/components/print-out/apartement-kantor.blade.php guna menyeragamkan struktur tabel dan gaya cetak agar konsisten
- Normalisasi urutan dan konsistensi kelas Tailwind di resources/views/surveyor/components/apartemen-kantor.blade.php (penyusunan flex , items-baseline , flex-wrap , gap-* , konsistensi form-label , checkbox , radio )
- Rapi penamaan dan penempatan elemen pesan error <em id="error-*"> dengan susunan kelas seragam
- Sesuaikan grid ( grid-cols-2 md:grid-cols-3 ) dan mt-2 untuk responsivitas yang lebih baik
- Perbaiki binding nilai luas_unit_tidak_sesuai agar mengikuti struktur forminspeksi['luas_unit']['tidak sesuai'] sehingga data konsisten pada saat old value dan penyimpanan ulang
- Tingkatkan keterbacaan markup: urutan atribut kelas diseragamkan, label dan input disusun lebih konsisten untuk aksesibilitas dan UI
This commit is contained in:
Daeng Deni Mardaeni
2025-11-26 17:26:42 +07:00
parent fc6f18fea9
commit 04a657252f
3 changed files with 190 additions and 49 deletions

View File

@@ -1,6 +1,6 @@
<div class="card border border-agi-100 w-full bg-white rounded-lg shadow-md overflow-hidden">
<div class="overflow-hidden w-full bg-white rounded-lg border shadow-md card border-agi-100">
<div class="card-header bg-agi-50">
<h3 class="card-title uppercase">
<h3 class="uppercase card-title">
Analisa Unit
</h3>
</div>
@@ -8,9 +8,10 @@
<div class="grid gap-5">
<!-- Luas tanah -->
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Luas Unit</label>
@if (isset($permohonan->documents))
@foreach ($permohonan->documents as $item)
@php
$total_luas_unit = 0;
@@ -23,20 +24,20 @@
class="input" value="{{ $jenis_legalitas_jaminan_id }}">
<input type="hidden" name="luas_unit_sesuai" class="input" value="{{ $total_luas_unit }}">
<p class="text-2sm text-gray-700">{{ $total_luas_unit }} m<sup>2</sup></p>
<p class="text-gray-700 text-2sm">{{ $total_luas_unit }} m<sup>2</sup></p>
@endforeach
@endif
<div class="flex flex-wrap items-baseline w-full">
<div class="grid grid-cols-2 md:grid-cols-3 gap-4 mt-2">
<label class="form-label flex items-center gap-3 text-nowrap">
<div class="grid grid-cols-2 gap-4 mt-2 md:grid-cols-3">
<label class="flex gap-3 items-center form-label text-nowrap">
<input
onclick="toggleFieldVisibility('luas_unit','luas_unit_tidak_sesuai', ['tidak sesuai'])"
type="radio" class="radio" name="luas_unit" value="sesuai"
{{ old('luas_unit', isset($forminspeksi['luas_unit']['sesuai'])) ? 'checked' : '' }}>
<span class="ml-2">Sesuai</span>
</label>
<label class="form-label flex items-center gap-2.5 text-nowrap">
<label class="flex gap-2.5 items-center form-label text-nowrap">
<input
onclick="toggleFieldVisibility('luas_unit','luas_unit_tidak_sesuai', ['tidak sesuai'])"
type="radio" class="radio" name="luas_unit" value="tidak sesuai"
@@ -44,30 +45,30 @@
<span class="ml-2">Tidak Sesuai</span>
</label>
<div id="luas_unit_tidak_sesuai" class="flex items-baseline gap-2"
<div id="luas_unit_tidak_sesuai" class="flex gap-2 items-baseline"
style="{{ old('luas_unit', isset($forminspeksi['luas_unit']['tidak sesuai'])) ? '' : 'display: none;' }}">
<div class="input">
<input id="analisa_luas_unit_tidak_sesuai" type="text" name="luas_unit_tidak_sesuai"
class="number-format w-full" placeholder="Masukan Luas Tanah"
value="{{ old('luas_unit_tidak_sesuai', $forminspeksi['luas_unit_tidak_sesuai'] ?? '') }}">
class="w-full number-format" placeholder="Masukan Luas Tanah"
value="{{ old('luas_unit_tidak_sesuai', $forminspeksi['luas_unit']['tidak sesuai'] ?? '') }}">
<i>M<sup>2</sup></i>
</div>
{{-- <button type="button" class="btn btn-md btn-primary"
onclick="updateAnalisa('analisa_unit')">Save</button> --}}
</div>
</div>
<em id="error-luas_unit" class="alert text-danger text-sm"></em>
<em id="error-luas_unit" class="text-sm alert text-danger"></em>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Kondisi Unit</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="flex-wrap items-stretch">
<div class="flex flex-col items-start gap-2">
<div class="flex flex-col gap-2 items-start">
@if (isset($basicData['kondisiBangunan']))
@foreach ($basicData['kondisiBangunan'] as $item)
<label class="form-label flex items-center gap-2.5 text-nowrap">
<label class="flex gap-2.5 items-center form-label text-nowrap">
<input class="checkbox" name="kondisi_unit[]" type="checkbox"
value="{{ $item->name }}"
{{ in_array($item->name, old('kondisi_unit', $forminspeksi['kondisi_unit'] ?? [])) ? 'checked' : '' }} />
@@ -76,20 +77,20 @@
@endforeach
@endif
</div>
<em id="error-kondisi_unit" class="alert text-danger text-sm"></em>
<em id="error-kondisi_unit" class="text-sm alert text-danger"></em>
</div>
</div>
</div>
<!-- Posisi Unit -->
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Posisi Unit</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="flex-wrap items-stretch">
<div class="flex flex-col items-start gap-2">
<div class="flex flex-col gap-2 items-start">
@if (isset($basicData['posisiUnit']))
@foreach ($basicData['posisiUnit'] as $item)
<label class="form-label flex items-center gap-2.5 text-nowrap">
<label class="flex gap-2.5 items-center form-label text-nowrap">
<input class="checkbox" name="posisi_unit[]" type="checkbox"
value="{{ $item->name }}"
{{ in_array($item->name, old('posisi_unit', $forminspeksi['posisi_unit'] ?? [])) ? 'checked' : '' }} />
@@ -98,46 +99,46 @@
@endforeach
@endif
</div>
<em id="error-posisi_unit" class="alert text-danger text-sm"></em>
<em id="error-posisi_unit" class="text-sm alert text-danger"></em>
</div>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Lantai</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="flex flex-col items-start gap-4">
<div class="flex flex-col gap-4 items-start">
@if (isset($basicData['lantai']))
@foreach ($basicData['lantai'] as $item)
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56 gap-2.5" style="width: 500px">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="gap-2.5 form-label max-w-56" style="width: 500px">
<input class="checkbox" name="lantai[]" type="checkbox"
value="{{ $item->name }}"
{{ in_array($item->name, old('lantai', $forminspeksi['lantai'] ?? [])) ? 'checked' : '' }} />
{{ $item->name }}
</label>
<input type="text" name="lantai_input[]" class="input w-full" id="lantaiInput"
<input type="text" name="lantai_input[]" class="w-full input" id="lantaiInput"
placeholder="Masukkan {{ $item->name }}..."
value="{{ old('lantai_input.' . $loop->index, $forminspeksi['lantai_input'][$loop->index] ?? '') }}">
</div>
@endforeach
@endif
</div>
<em id="error-lantai" class="alert text-danger text-sm"></em>
<em id="error-lantai" class="text-sm alert text-danger"></em>
</div>
</div>
<!-- Kondisi Fisik Tanah -->
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">View</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="flex-wrap items-stretch">
<div class="flex flex-col items-start gap-2">
<div class="flex flex-col gap-2 items-start">
@if (isset($basicData['viewUnit']))
@foreach ($basicData['viewUnit'] as $item)
<label class="form-label flex items-center gap-2.5 text-nowrap">
<label class="flex gap-2.5 items-center form-label text-nowrap">
<input class="checkbox" name="view[]" type="checkbox"
value="{{ $item->name }}"
{{ in_array($item->name, old('view', $forminspeksi['view'] ?? [])) ? 'checked' : '' }} />
@@ -146,19 +147,19 @@
@endforeach
@endif
</div>
<em id="error-view" class="alert text-danger text-sm"></em>
<em id="error-view" class="text-sm alert text-danger"></em>
</div>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Bentuk Unit</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="flex-wrap items-stretch">
<div class="flex flex-col items-start gap-2">
<div class="flex flex-col gap-2 items-start">
@if (isset($basicData['bentukUnit']))
@foreach ($basicData['bentukUnit'] as $item)
<label class="form-label flex items-center gap-2.5 text-nowrap">
<label class="flex gap-2.5 items-center form-label text-nowrap">
<input class="checkbox" name="bentuk_unit[]" type="checkbox"
value="{{ $item->name }}"
{{ in_array($item->name, old('bentuk_unit', $forminspeksi['bentuk_unit'] ?? [])) ? 'checked' : '' }} />
@@ -167,7 +168,7 @@
@endforeach
@endif
</div>
<em id="error-bentuk_unit" class="alert text-danger text-sm"></em>
<em id="error-bentuk_unit" class="text-sm alert text-danger"></em>
</div>
</div>
</div>

View File

@@ -0,0 +1,141 @@
<div class="no-break">
<table style="width: 100%; border-top: 1px solid #000; border: 1px solid #000; border-collapse: collapse; ">
<tr>
<td style="text-align: center; margin-top: 5px;">
<h2 style=" text-transform: uppercase; text-align: center; margin: 0;">
Analisa Unit
</h2>
</td>
</tr>
</table>
<table style="width: 100%;">
<tr>
@php
$cekLuas =
old('luas_unit_radio') ??
(isset($forminspeksi['luas_unit']['tidak sesuai']) ? 'tidak sesuai' : 'sesuai');
$luasSesuai = $forminspeksi['luas_unit']['sesuai'] ?? null;
$luasTidakSesuai = $forminspeksi['luas_unit']['tidak sesuai'] ?? null;
@endphp
<td width="20%" style="padding: 2px;">Luas Unit</td>
<td width="1%" style="padding: 2px;"> :</td>
<td width="79%" style="text-align: left">
<table>
<tr>
<td>
<label>
<input type="radio" name="luas_tanah_radio" value="sesuai"
{{ $cekLuas == 'sesuai' ? 'checked' : '' }}>
Sesuai {{ $luasSesuai ? '- ' . $luasSesuai . ' m²' : '' }}
</label>
</td>
<td>
<label>
<input type="radio" name="luas_tanah_radio" value="tidak sesuai"
{{ $cekLuas == 'tidak sesuai' ? 'checked' : '' }}>
Tidak Sesuai {{ $luasTidakSesuai ? '- ' . $luasTidakSesuai . ' m² (luas fisik)' : '' }}
</label>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>Bentuk Unit</td>
<td> :</td>
<td>
@if (isset($basicData['bentukUnit']))
<table class="checkbox-list">
<tr>
@foreach ($basicData['bentukUnit'] as $index => $item)
@if ($index % 3 == 0 && $index > 0)
</tr>
<tr>
@endif
<td class="checkbox-item">
<label class="checkbox-label">
<input type="checkbox"
{{ isset($forminspeksi['bentuk_unit']) && in_array($item->name, $forminspeksi['bentuk_unit']) ? 'checked' : '' }}>
{{ $item->name }}
</label>
</td>
@endforeach
</tr>
</table>
@endif
<tr>
<td>Kondisi Unit</td>
<td> :</td>
<td>
@if (isset($basicData['kondisiUnit']))
<table class="checkbox-list">
<tr>
@foreach ($basicData['kondisiUnit'] as $index => $item)
@if ($index % 3 == 0 && $index > 0)
</tr>
<tr>
@endif
<td class="checkbox-item">
<label class="checkbox-label">
<input type="checkbox"
{{ isset($forminspeksi['kondisi_unit']) && in_array($item->name, $forminspeksi['kondisi_unit']) ? 'checked' : '' }}>
{{ $item->name }}
</label>
</td>
@endforeach
</tr>
</table>
@endif
<tr>
<td>Posisi Unit</td>
<td> :</td>
<td>
@if (isset($basicData['posisiUnit']))
<table class="checkbox-list">
<tr>
@foreach ($basicData['posisiUnit'] as $index => $item)
@if ($index % 3 == 0 && $index > 0)
</tr>
<tr>
@endif
<td class="checkbox-item">
<label class="checkbox-label">
<input type="checkbox"
{{ isset($forminspeksi['posisi_unit']) && in_array($item->name, $forminspeksi['posisi_unit']) ? 'checked' : '' }}>
{{ $item->name }}
</label>
</td>
@endforeach
</tr>
</table>
@endif
<tr>
<td>View Unit</td>
<td> :</td>
<td>
@if (isset($basicData['view']))
<table class="checkbox-list">
<tr>
@foreach ($basicData['view'] as $index => $item)
@if ($index % 3 == 0 && $index > 0)
</tr>
<tr>
@endif
<td class="checkbox-item">
<label class="checkbox-label">
<input type="checkbox"
{{ isset($forminspeksi['view']) && in_array($item->name, $forminspeksi['view']) ? 'checked' : '' }}>
{{ $item->name }}
</label>
</td>
@endforeach
</tr>
</table>
@endif
</table>
</div>

View File

@@ -10,22 +10,19 @@
</td>
</tr>
</table>
<table>
<table style="width: 100%;">
<tr>
@php
$cekLuas =
old('luas_unit_radio') ??
(isset($forminspeksiluas_unit['luas_unit']['tidak sesuai']) ? 'tidak sesuai' : 'sesuai');
(isset($forminspeksi['luas_unit']['tidak sesuai']) ? 'tidak sesuai' : 'sesuai');
$luasSesuai = $forminspeksiluas_unit['luas_unit']['sesuai'] ?? null;
$luasTidakSesuai = $forminspeksiluas_unit['luas_unit']['tidak sesuai'] ?? null;
$luasSesuai = $forminspeksi['luas_unit']['sesuai'] ?? null;
$luasTidakSesuai = $forminspeksi['luas_unit']['tidak sesuai'] ?? null;
@endphp
<td style="padding: 2px;">Luas Unit</td>
<td style="padding: 2px;">:</td>
<td width="" style="text-align: left">
<td width="20%" style="padding: 2px;">Luas Unit</td>
<td width="1%" style="padding: 2px;"> :</td>
<td width="79%" style="text-align: left">
<table>
<tr>
<td>
@@ -35,8 +32,6 @@
Sesuai {{ $luasSesuai ? '- ' . $luasSesuai . ' m²' : '' }}
</label>
</td>
</tr>
<tr>
<td>
<label>
<input type="radio" name="luas_tanah_radio" value="tidak sesuai"
@@ -50,7 +45,8 @@
</tr>
<tr>
<td><strong>Bentuk Unit</strong></td>
<td>Bentuk Unit</td>
<td> :</td>
<td>
@if (isset($basicData['bentukUnit']))
<table class="checkbox-list">
@@ -73,7 +69,8 @@
@endif
<tr>
<td><strong>Kondisi Unit</strong></td>
<td>Kondisi Unit</td>
<td> :</td>
<td>
@if (isset($basicData['kondisiUnit']))
<table class="checkbox-list">
@@ -95,7 +92,8 @@
</table>
@endif
<tr>
<td><strong>Posisi Unit</strong></td>
<td>Posisi Unit</td>
<td> :</td>
<td>
@if (isset($basicData['posisiUnit']))
<table class="checkbox-list">
@@ -117,7 +115,8 @@
</table>
@endif
<tr>
<td><strong>View Unit</strong></td>
<td>View Unit</td>
<td> :</td>
<td>
@if (isset($basicData['view']))
<table class="checkbox-list">