feat:회원사 수정 모달에 비밀번호 설정 여부 뱃지 추가

- API 응답에 has_password 필드 추가
- 모달 폼에 비밀번호 상태 뱃지 (설정됨/미설정) 표시
- 수정 시 녹색(설정됨) 또는 빨간색(미설정) 뱃지로 구분

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
pro
2026-01-23 10:46:12 +09:00
parent e8d69a228a
commit 925e22a4c4
3 changed files with 27 additions and 2 deletions

View File

@@ -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,
]);
}

View File

@@ -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) {

View File

@@ -95,7 +95,10 @@ class="w-10 h-10 flex items-center justify-center rounded-full text-gray-600 hov
<input type="text" name="barobill_id" class="w-full px-3 py-2 bg-gray-50 border border-gray-200 rounded-lg text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:opacity-50" placeholder="barobill_id">
</div>
<div>
<label id="pwdLabel" class="block text-xs font-bold text-gray-400 uppercase mb-1">비밀번호 <span id="pwdRequired" class="text-red-500">*</span></label>
<label id="pwdLabel" class="block text-xs font-bold text-gray-400 uppercase mb-1">
비밀번호 <span id="pwdRequired" class="text-red-500">*</span>
<span id="pwdStatusBadge" class="hidden ml-2 px-2 py-0.5 text-xs font-medium rounded-full"></span>
</label>
<input type="password" name="barobill_pwd" class="w-full px-3 py-2 bg-gray-50 border border-gray-200 rounded-lg text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500" placeholder="********">
<p id="pwdHint" class="hidden text-xs text-gray-500 mt-1">변경 시에만 입력</p>
</div>