기업 회원 가입 디자인 반영, 필수항목 처리 변경
This commit is contained in:
@@ -30,11 +30,9 @@ public class PortalOrgRegistrationDTO extends PortalUserRegistrationDTO {
|
||||
private String orgName;
|
||||
|
||||
//대표자 성명
|
||||
@NotEmpty(message = "{field.required}")
|
||||
private String ceoName;
|
||||
|
||||
//기관사업장소재지
|
||||
@NotEmpty(message = "{field.required}")
|
||||
private String orgAddr;
|
||||
|
||||
//기관업태
|
||||
@@ -44,15 +42,12 @@ public class PortalOrgRegistrationDTO extends PortalUserRegistrationDTO {
|
||||
private String orgIndustryType;
|
||||
|
||||
//서비스명
|
||||
@NotEmpty(message = "{field.required}")
|
||||
private String serviceName;
|
||||
|
||||
//고객센터연락처
|
||||
@NotEmpty(message = "{field.required}")
|
||||
private String scPhoneNumber;
|
||||
|
||||
//기관전화번호
|
||||
@NotEmpty(message = "{field.required}")
|
||||
@PhoneNumber
|
||||
private String orgPhoneNumber;
|
||||
|
||||
|
||||
+17
-8
@@ -24,17 +24,26 @@ public class UserRegistrationValidationService {
|
||||
}
|
||||
|
||||
private boolean isValidOrgInfo(PortalOrgRegistrationDTO orgDTO) {
|
||||
return basicValidationService.isValidBusinessNumber(orgDTO.getCompRegNo()) &&
|
||||
basicValidationService.isValidCorpRegNo(orgDTO.getCorpRegNo()) &&
|
||||
basicValidationService.isValidPhoneNumber(orgDTO.getOrgPhoneNumber()) &&
|
||||
basicValidationService.isValidPhoneNumber(orgDTO.getScPhoneNumber());
|
||||
// 사업자등록번호, 법인등록번호는 필수
|
||||
if (!basicValidationService.isValidBusinessNumber(orgDTO.getCompRegNo()) ||
|
||||
!basicValidationService.isValidCorpRegNo(orgDTO.getCorpRegNo())) {
|
||||
return false;
|
||||
}
|
||||
// 회사 전화번호, 고객센터 전화번호는 선택 (입력된 경우에만 형식 검증)
|
||||
if (basicValidationService.isNotEmpty(orgDTO.getOrgPhoneNumber()) &&
|
||||
!basicValidationService.isValidPhoneNumber(orgDTO.getOrgPhoneNumber())) {
|
||||
return false;
|
||||
}
|
||||
if (basicValidationService.isNotEmpty(orgDTO.getScPhoneNumber()) &&
|
||||
!basicValidationService.isValidPhoneNumber(orgDTO.getScPhoneNumber())) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean isValidRequiredFields(PortalOrgRegistrationDTO orgDTO) {
|
||||
return basicValidationService.isNotEmpty(orgDTO.getOrgName()) &&
|
||||
basicValidationService.isNotEmpty(orgDTO.getCeoName()) &&
|
||||
basicValidationService.isNotEmpty(orgDTO.getOrgAddr()) &&
|
||||
basicValidationService.isNotEmpty(orgDTO.getServiceName());
|
||||
// 법인명만 필수, 나머지(대표자 성명, 소재지, 서비스명)는 선택
|
||||
return basicValidationService.isNotEmpty(orgDTO.getOrgName());
|
||||
}
|
||||
|
||||
private boolean isValidIpWhitelistIfExists(PortalOrgRegistrationDTO orgDTO) {
|
||||
|
||||
@@ -60,12 +60,12 @@
|
||||
<!-- CEO Name -->
|
||||
<div class="org-form-group">
|
||||
<label class="org-form-label" for="ceoName">
|
||||
대표자 성명 <span class="required-badge">필수</span>
|
||||
대표자 성명
|
||||
</label>
|
||||
<div class="org-form-input-wrapper">
|
||||
<input type="text" class="org-form-input" id="ceoName" th:field="*{ceoName}"
|
||||
placeholder="대표자 성명을 입력하세요"
|
||||
th:classappend="${#fields.hasErrors('ceoName')}? 'is-invalid'" required>
|
||||
th:classappend="${#fields.hasErrors('ceoName')}? 'is-invalid'">
|
||||
<div th:if="${#fields.hasErrors('ceoName')}" class="org-validation-message error">
|
||||
<span th:errors="*{ceoName}"></span>
|
||||
</div>
|
||||
@@ -75,12 +75,12 @@
|
||||
<!-- Business Address -->
|
||||
<div class="org-form-group">
|
||||
<label class="org-form-label" for="orgAddr">
|
||||
사업장 소재지 <span class="required-badge">필수</span>
|
||||
사업장 소재지
|
||||
</label>
|
||||
<div class="org-form-input-wrapper">
|
||||
<input type="text" class="org-form-input" id="orgAddr" th:field="*{orgAddr}"
|
||||
placeholder="사업장 소재지를 입력하세요"
|
||||
th:classappend="${#fields.hasErrors('orgAddr')}? 'is-invalid'" required>
|
||||
th:classappend="${#fields.hasErrors('orgAddr')}? 'is-invalid'">
|
||||
<div th:if="${#fields.hasErrors('orgAddr')}" class="org-validation-message error">
|
||||
<span th:errors="*{orgAddr}"></span>
|
||||
</div>
|
||||
@@ -90,33 +90,33 @@
|
||||
<!-- Business Type -->
|
||||
<div class="org-form-group">
|
||||
<label class="org-form-label" for="orgSectors">
|
||||
업태 <span class="required-badge">필수</span>
|
||||
업태
|
||||
</label>
|
||||
<div class="org-form-input-wrapper">
|
||||
<input type="text" class="org-form-input" id="orgSectors" th:field="*{orgSectors}"
|
||||
placeholder="업태를 입력하세요" required>
|
||||
placeholder="업태를 입력하세요">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Industry Type -->
|
||||
<div class="org-form-group">
|
||||
<label class="org-form-label" for="orgIndustryType">
|
||||
업종 <span class="required-badge">필수</span>
|
||||
업종
|
||||
</label>
|
||||
<div class="org-form-input-wrapper">
|
||||
<input type="text" class="org-form-input" id="orgIndustryType" th:field="*{orgIndustryType}"
|
||||
placeholder="업종을 입력하세요" required>
|
||||
placeholder="업종을 입력하세요">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Company Phone Number -->
|
||||
<div class="org-form-group">
|
||||
<label class="org-form-label">
|
||||
회사 전화번호 <span class="required-badge">필수</span>
|
||||
회사 전화번호
|
||||
</label>
|
||||
<div class="org-form-input-wrapper">
|
||||
<div class="org-compound-input">
|
||||
<select class="org-form-select" id="orgAreaCode" required>
|
||||
<select class="org-form-select" id="orgAreaCode">
|
||||
<option value="">선택</option>
|
||||
<option value="국번없음">국번없음</option>
|
||||
<option value="02">02</option>
|
||||
@@ -159,12 +159,12 @@
|
||||
<!-- Service Name -->
|
||||
<div class="org-form-group">
|
||||
<label class="org-form-label" for="serviceName">
|
||||
서비스명 <span class="required-badge">필수</span>
|
||||
서비스명
|
||||
</label>
|
||||
<div class="org-form-input-wrapper">
|
||||
<input type="text" class="org-form-input" id="serviceName" th:field="*{serviceName}"
|
||||
placeholder="서비스명을 입력하세요"
|
||||
th:classappend="${#fields.hasErrors('serviceName')}? 'is-invalid'" required>
|
||||
th:classappend="${#fields.hasErrors('serviceName')}? 'is-invalid'">
|
||||
<div th:if="${#fields.hasErrors('serviceName')}" class="org-validation-message error">
|
||||
<span th:errors="*{serviceName}"></span>
|
||||
</div>
|
||||
@@ -174,11 +174,11 @@
|
||||
<!-- Customer Service Phone Number -->
|
||||
<div class="org-form-group">
|
||||
<label class="org-form-label">
|
||||
고객센터 전화번호 <span class="required-badge">필수</span>
|
||||
고객센터 전화번호
|
||||
</label>
|
||||
<div class="org-form-input-wrapper">
|
||||
<div class="org-compound-input">
|
||||
<select class="org-form-select" id="scAreaCode" required>
|
||||
<select class="org-form-select" id="scAreaCode">
|
||||
<option value="">선택</option>
|
||||
<option value="국번없음">국번없음</option>
|
||||
<option value="02">02</option>
|
||||
@@ -265,8 +265,9 @@
|
||||
const part1 = document.getElementById(`${prefix}PhoneNumber1`).value.trim();
|
||||
const part2 = document.getElementById(`${prefix}PhoneNumber2`).value.trim();
|
||||
|
||||
// 회사 전화번호 검증
|
||||
if (!areaCode || areaCode === '' || !part1 || !part2) {
|
||||
// 전화번호는 선택 입력이므로, 일부만 입력된 경우에만 검증
|
||||
const hasAnyInput = areaCode || part1 || part2;
|
||||
if (hasAnyInput && (!areaCode || areaCode === '' || !part1 || !part2)) {
|
||||
customPopups.showAlert(`${prefix === 'org' ? '회사' : '고객센터'} 전화번호를 모두 입력해주세요.`);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<body>
|
||||
<section layout:fragment="title">
|
||||
<div class="page-title-banner">
|
||||
<img th:src="@{/img/user_register_title.png}" alt="법인회원가입" class="title-image">
|
||||
<img th:src="@{/img/img_title_bg.png}" alt="법인회원가입" class="title-image">
|
||||
<h1>법인회원가입</h1>
|
||||
</div>
|
||||
</section>
|
||||
@@ -117,15 +117,15 @@
|
||||
const requiredFieldsByScenario = {
|
||||
new: {
|
||||
user: ['loginId', 'userName', 'password', 'password2', 'mobileNumber', 'authNumber'],
|
||||
org: ['compRegNo', 'corpRegNo', 'orgName', 'ceoName', 'orgAddr', 'orgSectors', 'orgIndustryType', 'orgPhoneNumber', 'scPhoneNumber', 'serviceName', 'compRegFile', 'files']
|
||||
org: ['compRegNo', 'corpRegNo', 'orgName', 'compRegFile', 'files']
|
||||
},
|
||||
retain: {
|
||||
user: ['loginId', 'passwordConfirmIndividual'],
|
||||
org: ['compRegNo', 'corpRegNo', 'orgName', 'ceoName', 'orgAddr', 'orgSectors', 'orgIndustryType', 'orgPhoneNumber', 'scPhoneNumber', 'serviceName', 'compRegFile', 'files']
|
||||
org: ['compRegNo', 'corpRegNo', 'orgName', 'compRegFile', 'files']
|
||||
},
|
||||
change: {
|
||||
user: ['loginId', 'passwordConfirmEmailChange', 'newLoginId'],
|
||||
org: ['compRegNo', 'corpRegNo', 'orgName', 'ceoName', 'orgAddr', 'orgSectors', 'orgIndustryType', 'orgPhoneNumber', 'scPhoneNumber', 'serviceName', 'compRegFile', 'files']
|
||||
org: ['compRegNo', 'corpRegNo', 'orgName', 'compRegFile', 'files']
|
||||
}
|
||||
};
|
||||
|
||||
@@ -344,11 +344,6 @@
|
||||
compRegNo: $('#compRegNo').val().trim() !== '',
|
||||
corpRegNo: $('#corpRegNo').val().trim() !== '',
|
||||
orgName: $('#orgName').val().trim() !== '',
|
||||
ceoName: $('#ceoName').val().trim() !== '',
|
||||
orgAddr: $('#orgAddr').val().trim() !== '',
|
||||
orgPhoneNumber: $('#orgPhoneNumber').val().trim() !== '',
|
||||
scPhoneNumber: $('#scPhoneNumber').val().trim() !== '',
|
||||
serviceName: $('#serviceName').val().trim() !== '',
|
||||
compRegFile: $('#compRegFile').val().trim() !== ''
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user