From 925e22a4c44fa8578c4aa34368a6c01304dd0826 Mon Sep 17 00:00:00 2001 From: pro Date: Fri, 23 Jan 2026 10:46:12 +0900 Subject: [PATCH] =?UTF-8?q?feat:=ED=9A=8C=EC=9B=90=EC=82=AC=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20=EB=AA=A8=EB=8B=AC=EC=97=90=20=EB=B9=84=EB=B0=80?= =?UTF-8?q?=EB=B2=88=ED=98=B8=20=EC=84=A4=EC=A0=95=20=EC=97=AC=EB=B6=80=20?= =?UTF-8?q?=EB=B1=83=EC=A7=80=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - API 응답에 has_password 필드 추가 - 모달 폼에 비밀번호 상태 뱃지 (설정됨/미설정) 표시 - 수정 시 녹색(설정됨) 또는 빨간색(미설정) 뱃지로 구분 Co-Authored-By: Claude Opus 4.5 --- .../Barobill/BarobillMemberController.php | 6 +++++- .../views/barobill/members/index.blade.php | 18 ++++++++++++++++++ .../members/partials/modal-form.blade.php | 5 ++++- 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Api/Admin/Barobill/BarobillMemberController.php b/app/Http/Controllers/Api/Admin/Barobill/BarobillMemberController.php index 75af0142..7afc0caa 100644 --- a/app/Http/Controllers/Api/Admin/Barobill/BarobillMemberController.php +++ b/app/Http/Controllers/Api/Admin/Barobill/BarobillMemberController.php @@ -242,9 +242,13 @@ public function show(Request $request, int $id): JsonResponse ]); } + // 비밀번호 설정 여부 추가 + $memberData = $member->toArray(); + $memberData['has_password'] = !empty($member->barobill_pwd); + return response()->json([ 'success' => true, - 'data' => $member, + 'data' => $memberData, ]); } diff --git a/resources/views/barobill/members/index.blade.php b/resources/views/barobill/members/index.blade.php index 9e25e463..23062cf0 100644 --- a/resources/views/barobill/members/index.blade.php +++ b/resources/views/barobill/members/index.blade.php @@ -156,6 +156,7 @@ class="w-full px-4 py-2 border border-gray-300 text-gray-700 rounded-lg hover:bg document.getElementById('barobillIdField').classList.remove('hidden'); // 아이디 표시 document.getElementById('pwdRequired').classList.remove('hidden'); // 필수 표시 document.getElementById('pwdHint').classList.add('hidden'); // 힌트 숨김 + document.getElementById('pwdStatusBadge').classList.add('hidden'); // 상태 뱃지 숨김 // API 검증 건너뛰기 체크박스 표시 (신규 등록 시에만) document.getElementById('skipApiField').classList.remove('hidden'); // 전체 테넌트 모드일 때 테넌트 선택 필드 표시 @@ -211,6 +212,17 @@ class="w-full px-4 py-2 border border-gray-300 text-gray-700 rounded-lg hover:bg this.form.manager_email.value = m.manager_email || ''; this.form.manager_hp.value = m.manager_hp || ''; this.form.status.value = m.status || 'active'; + + // 비밀번호 설정 여부 뱃지 표시 + const badge = document.getElementById('pwdStatusBadge'); + badge.classList.remove('hidden', 'bg-green-100', 'text-green-700', 'bg-red-100', 'text-red-700'); + if (m.has_password) { + badge.textContent = '설정됨'; + badge.classList.add('bg-green-100', 'text-green-700'); + } else { + badge.textContent = '미설정'; + badge.classList.add('bg-red-100', 'text-red-700'); + } } }); @@ -229,6 +241,12 @@ class="w-full px-4 py-2 border border-gray-300 text-gray-700 rounded-lg hover:bg // 체크박스 초기화 const skipApiCheckbox = this.form.querySelector('input[name="skip_api"]'); if (skipApiCheckbox) skipApiCheckbox.checked = false; + // 비밀번호 상태 뱃지 초기화 + const badge = document.getElementById('pwdStatusBadge'); + if (badge) { + badge.classList.add('hidden'); + badge.classList.remove('bg-green-100', 'text-green-700', 'bg-red-100', 'text-red-700'); + } }, async submit(e) { diff --git a/resources/views/barobill/members/partials/modal-form.blade.php b/resources/views/barobill/members/partials/modal-form.blade.php index 12850955..9f99cded 100644 --- a/resources/views/barobill/members/partials/modal-form.blade.php +++ b/resources/views/barobill/members/partials/modal-form.blade.php @@ -95,7 +95,10 @@ class="w-10 h-10 flex items-center justify-center rounded-full text-gray-600 hov
- +