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