Files
jongryangje/app/Views/admin/free_recipient/index.php
taekyoungc 71edc1eb20 feat: add designated shop detail and PII masking updates
Rebase current admin changes on top of origin/main and exclude local artifacts from tracking to reduce push payload.

Made-with: Cursor
2026-04-08 15:22:24 +09:00

80 lines
4.7 KiB
PHP

<?= view('components/print_header', ['printTitle' => '무료용 대상자 관리']) ?>
<section class="border-b border-gray-300 p-2 shrink-0 bg-control-panel">
<div class="flex flex-wrap items-center justify-between gap-y-2">
<span class="text-sm font-bold text-gray-700">무료용 대상자 관리</span>
<div class="flex items-center gap-2">
<button onclick="window.print()" class="no-print border border-btn-print-border text-gray-600 px-3 py-1 rounded-sm text-sm hover:bg-gray-50 transition">인쇄</button>
<a href="<?= base_url('admin/free-recipients/create') ?>" class="bg-btn-search text-white px-4 py-1.5 rounded-sm flex items-center gap-1 text-sm shadow hover:opacity-90 transition border border-transparent">대상자 등록</a>
</div>
</div>
</section>
<section class="no-print border border-gray-300 bg-white p-2 mt-2">
<form method="POST" action="<?= mgmt_url('free-recipients') ?>" class="flex flex-wrap items-end gap-2" autocomplete="off">
<?= csrf_field() ?>
<div class="flex flex-col gap-0.5">
<label class="text-xs text-gray-500">조회 기준</label>
<select name="search_field" class="border border-gray-300 rounded px-2 py-1.5 text-sm min-w-[10rem]">
<option value="fr_idx" <?= ($search_field ?? 'fr_name') === 'fr_idx' ? 'selected' : '' ?>>번호</option>
<option value="fr_type_code" <?= ($search_field ?? 'fr_name') === 'fr_type_code' ? 'selected' : '' ?>>구분</option>
<option value="fr_name" <?= ($search_field ?? 'fr_name') === 'fr_name' ? 'selected' : '' ?>>대상자명</option>
<option value="fr_phone" <?= ($search_field ?? 'fr_name') === 'fr_phone' ? 'selected' : '' ?>>연락처</option>
<option value="fr_addr" <?= ($search_field ?? 'fr_name') === 'fr_addr' ? 'selected' : '' ?>>주소</option>
<option value="fr_dong_code" <?= ($search_field ?? 'fr_name') === 'fr_dong_code' ? 'selected' : '' ?>>동</option>
<option value="fr_note" <?= ($search_field ?? 'fr_name') === 'fr_note' ? 'selected' : '' ?>>비고</option>
</select>
</div>
<div class="flex flex-col gap-0.5">
<label class="text-xs text-gray-500">조회어</label>
<input type="text" name="search_query" value="<?= esc($search_query ?? '') ?>" class="border border-gray-300 rounded px-2 py-1.5 text-sm min-w-[18rem]" placeholder="조회어 입력">
</div>
<div class="flex items-center gap-2 pb-0.5">
<button type="submit" class="bg-btn-search text-white px-4 py-1.5 rounded-sm text-sm">조회</button>
<a href="<?= mgmt_url('free-recipients') ?>" class="text-sm text-gray-500 hover:underline">초기화</a>
</div>
</form>
</section>
<div class="border border-gray-300 overflow-auto mt-2">
<table class="w-full data-table">
<thead>
<tr>
<th class="w-16">번호</th>
<th>구분</th>
<th>대상자명</th>
<th>연락처</th>
<th>주소</th>
<th>동</th>
<th>비고</th>
<th>종료일</th>
<th class="w-20">상태</th>
<th class="w-36">작업</th>
</tr>
</thead>
<tbody>
<?php foreach ($list as $row): ?>
<tr>
<td class="text-center"><?= esc($row->fr_idx) ?></td>
<td class="text-center"><?= esc($type_code_map[(string) ($row->fr_type_code ?? '')] ?? ($row->fr_type_code ?? '')) ?></td>
<td class="text-left pl-2"><?= esc($row->fr_name) ?></td>
<td class="text-center"><?= esc($row->fr_phone) ?></td>
<td class="text-left pl-2"><?= esc($row->fr_addr) ?></td>
<td class="text-center"><?= esc($dong_code_map[(string) ($row->fr_dong_code ?? '')] ?? ($row->fr_dong_code ?? '')) ?></td>
<td class="text-left pl-2"><?= esc($row->fr_note) ?></td>
<td class="text-center"><?= esc($row->fr_end_date) ?></td>
<td class="text-center"><?= (int) $row->fr_state === 1 ? '사용' : '미사용' ?></td>
<td class="text-center">
<a href="<?= base_url('admin/free-recipients/edit/' . (int) $row->fr_idx) ?>" class="text-blue-600 hover:underline text-sm mr-1">수정</a>
<form action="<?= base_url('admin/free-recipients/delete/' . (int) $row->fr_idx) ?>" method="POST" class="inline" onsubmit="return confirm('삭제하시겠습니까?');">
<?= csrf_field() ?>
<button type="submit" class="text-red-600 hover:underline text-sm">삭제</button>
</form>
</td>
</tr>
<?php endforeach; ?>
<?php if (empty($list)): ?>
<tr><td colspan="10" class="text-center text-gray-400 py-4">등록된 데이터가 없습니다.</td></tr>
<?php endif; ?>
</tbody>
</table>
</div>
<?php if (isset($pager)): ?><div class="mt-3"><?= $pager->links() ?></div><?php endif; ?>