feat:회원사 수정 모달에 비밀번호 설정 여부 뱃지 추가
- API 응답에 has_password 필드 추가 - 모달 폼에 비밀번호 상태 뱃지 (설정됨/미설정) 표시 - 수정 시 녹색(설정됨) 또는 빨간색(미설정) 뱃지로 구분 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -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,
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user