|
|
|
|
@ -48,9 +48,9 @@
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<th class="th">위반법규1</th>
|
|
|
|
|
<th class="th"><span class="required">*</span> 위반법규1</th>
|
|
|
|
|
<td colspan="3">
|
|
|
|
|
<input type="text" id="vltnLwrgNm1" name="vltnLwrgNm1" class="input" style="width: 250px;" placeholder="위반법규를 입력하거나 선택하세요" autocomplete="off" value="${data.vltnLwrgCd1Nm}"/>
|
|
|
|
|
<input type="text" id="vltnLwrgNm1" name="vltnLwrgNm1" class="input" style="width: 250px;" placeholder="위반법규를 입력하거나 선택하세요" autocomplete="off" value="${data.vltnLwrgCd1Nm}" validation-check="required"/>
|
|
|
|
|
<input type="hidden" id="vltnLwrgCd1" name="vltnLwrgCd1" value="${data.vltnLwrgCd1}"/>
|
|
|
|
|
</td>
|
|
|
|
|
<%--<th class="th">위반법규2</th>
|
|
|
|
|
@ -60,35 +60,35 @@
|
|
|
|
|
</td>--%>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<th class="th">구조지수</th>
|
|
|
|
|
<th class="th"><span class="required">*</span> 구조지수</th>
|
|
|
|
|
<td>
|
|
|
|
|
<input type="text" id="strctIdxNm" name="strctIdxNm" class="input" style="width: 250px;" placeholder="구조명을 입력하거나 선택하세요" autocomplete="off" value="${data.strctIdxCdNm}"/>
|
|
|
|
|
<input type="text" id="strctIdxNm" name="strctIdxNm" class="input" style="width: 250px;" placeholder="구조명을 입력하거나 선택하세요" autocomplete="off" value="${data.strctIdxCdNm}" validation-check="required"/>
|
|
|
|
|
<input type="hidden" id="strctIdxCd" name="strctIdxCd" value="${data.strctIdxCd}"/>
|
|
|
|
|
</td>
|
|
|
|
|
<th class="th">용도지수</th>
|
|
|
|
|
<th class="th"><span class="required">*</span> 용도지수</th>
|
|
|
|
|
<td>
|
|
|
|
|
<input type="text" id="usgNm" name="usgNm" class="input" style="width: 250px;" placeholder="용도명을 입력하거나 선택하세요" autocomplete="off" value="${data.usgIdxCdNm}"/>
|
|
|
|
|
<input type="text" id="usgNm" name="usgNm" class="input" style="width: 250px;" placeholder="용도명을 입력하거나 선택하세요" autocomplete="off" value="${data.usgIdxCdNm}" validation-check="required"/>
|
|
|
|
|
<input type="hidden" id="usgIdxCd" name="usgIdxCd" value="${data.usgIdxCd}"/>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<th class="th">높이(m)</th>
|
|
|
|
|
<th class="th"><span class="required">*</span> 높이(m)</th>
|
|
|
|
|
<td>
|
|
|
|
|
<input type="text" id="hgt" name="hgt" class="input decimalMask" style="width: 120px;" maxlength="10" placeholder="예) 10.50" validation-check="number" value="${data.hgt}"/>
|
|
|
|
|
<input type="text" id="hgt" name="hgt" class="input decimalMask" style="width: 120px;" maxlength="10" placeholder="예) 10.50" validation-check="required number" value="${data.hgt}"/>
|
|
|
|
|
</td>
|
|
|
|
|
<th class="th">가로(m)</th>
|
|
|
|
|
<th class="th"><span class="required">*</span> 가로(m)</th>
|
|
|
|
|
<td>
|
|
|
|
|
<input type="text" id="wdth" name="wdth" class="input decimalMask" style="width: 120px;" maxlength="10" placeholder="예) 5.25" validation-check="number" value="${data.wdth}"/>
|
|
|
|
|
<input type="text" id="wdth" name="wdth" class="input decimalMask" style="width: 120px;" maxlength="10" placeholder="예) 5.25" validation-check="required number" value="${data.wdth}"/>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<th class="th">세로(m)</th>
|
|
|
|
|
<th class="th"><span class="required">*</span> 세로(m)</th>
|
|
|
|
|
<td>
|
|
|
|
|
<input type="text" id="vrtc" name="vrtc" class="input decimalMask" style="width: 120px;" maxlength="10" placeholder="예) 8.75" validation-check="number" value="${data.vrtc}"/>
|
|
|
|
|
<input type="text" id="vrtc" name="vrtc" class="input decimalMask" style="width: 120px;" maxlength="10" placeholder="예) 8.75" validation-check="required number" value="${data.vrtc}"/>
|
|
|
|
|
</td>
|
|
|
|
|
<th class="th">면적(㎡)</th>
|
|
|
|
|
<th class="th"><span class="required">*</span> 면적(㎡)</th>
|
|
|
|
|
<td>
|
|
|
|
|
<input type="text" id="area" name="area" class="input decimalMask" style="width: 120px;" maxlength="10" placeholder="예) 45.94" validation-check="number" value="${data.area}"/>
|
|
|
|
|
<input type="text" id="area" name="area" class="input decimalMask" style="width: 120px;" maxlength="10" placeholder="예) 45.94" validation-check="required number" value="${data.area}"/>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
@ -130,9 +130,7 @@
|
|
|
|
|
|
|
|
|
|
// 닫기 버튼 클릭 이벤트
|
|
|
|
|
$('#btnClose, #btnCloseTop').on('click', function() {
|
|
|
|
|
if (confirm('작업을 취소하시겠습니까?')) {
|
|
|
|
|
window.close();
|
|
|
|
|
}
|
|
|
|
|
window.close();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 각 드롭다운 초기화 (XIT 공통 컴포넌트 사용)
|
|
|
|
|
@ -329,24 +327,34 @@
|
|
|
|
|
* 중요한 로직 주석: validation 체크 후 mode에 따라 등록/수정 API를 호출한다.
|
|
|
|
|
*/
|
|
|
|
|
function saveActInfo() {
|
|
|
|
|
// 입력값 검증
|
|
|
|
|
if (!validateForm()) {
|
|
|
|
|
// 중요로직: validateFormByAttributes를 사용하여 모든 validation-check 속성 검증
|
|
|
|
|
if (!validateFormByAttributes('actInfoForm')) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var self = this;
|
|
|
|
|
var crdnYr = '${crdnYr}';
|
|
|
|
|
var crdnNo = '${crdnNo}';
|
|
|
|
|
|
|
|
|
|
// 중요로직: 위치정보ID 가져오기 (부모창에서)
|
|
|
|
|
var pstnInfoId = '';
|
|
|
|
|
if (window.opener && window.opener.CrdnDetailViewPstn && window.opener.CrdnDetailViewPstn.grid && window.opener.CrdnDetailViewPstn.grid.instance) {
|
|
|
|
|
var pstnData = window.opener.CrdnDetailViewPstn.grid.instance.getData();
|
|
|
|
|
if (pstnData && pstnData.length > 0) {
|
|
|
|
|
pstnInfoId = pstnData[0].pstnInfoId || '';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!pstnInfoId) {
|
|
|
|
|
alert('위치정보가 등록되어 있지 않습니다. 위치정보를 먼저 등록해주세요.');
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var mode = $('#mode').val();
|
|
|
|
|
var formData = $('#actInfoForm').serialize();
|
|
|
|
|
|
|
|
|
|
// 세션에서 사용자 정보 가져오기 (등록자/수정자)
|
|
|
|
|
<c:choose>
|
|
|
|
|
<c:when test="${mode eq 'update'}">
|
|
|
|
|
formData += '&mdfr=' + encodeURIComponent('${sessionScope.loginVO.userId}');
|
|
|
|
|
</c:when>
|
|
|
|
|
<c:otherwise>
|
|
|
|
|
formData += '&rgtr=' + encodeURIComponent('${sessionScope.loginVO.userId}');
|
|
|
|
|
formData += '&sggCd=' + encodeURIComponent('${sessionScope.loginVO.sggCd}');
|
|
|
|
|
</c:otherwise>
|
|
|
|
|
</c:choose>
|
|
|
|
|
+ '&crdnYr=' + encodeURIComponent(crdnYr);
|
|
|
|
|
+ '&crdnNo=' + encodeURIComponent(crdnNo);
|
|
|
|
|
+ '&pstnInfoId=' + encodeURIComponent(pstnInfoId);
|
|
|
|
|
|
|
|
|
|
var url = (mode === 'update') ?
|
|
|
|
|
'<c:url value="/crdn/crndRegistAndView/crdnActInfo/update.ajax"/>' :
|
|
|
|
|
@ -354,9 +362,9 @@
|
|
|
|
|
|
|
|
|
|
var actionText = (mode === 'update') ? '수정' : '등록';
|
|
|
|
|
|
|
|
|
|
if (!confirm('불법행위정보를 ' + actionText + '하시겠습니까?')) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
//if (!confirm('불법행위정보를 ' + actionText + '하시겠습니까?')) {
|
|
|
|
|
// return;
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
$.ajax({
|
|
|
|
|
url: url,
|
|
|
|
|
@ -375,67 +383,8 @@
|
|
|
|
|
} else {
|
|
|
|
|
alert(response.message || actionText + ' 중 오류가 발생했습니다.');
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
error: function(xhr, status, error) {
|
|
|
|
|
console.error('불법행위정보 ' + actionText + ' 오류:', error);
|
|
|
|
|
alert(actionText + ' 중 시스템 오류가 발생했습니다.');
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 폼 입력값 검증 함수
|
|
|
|
|
* 중요한 로직 주석: 필수 입력 필드와 숫자 형식 검증을 수행한다.
|
|
|
|
|
*/
|
|
|
|
|
function validateForm() {
|
|
|
|
|
// 필수 입력 검증
|
|
|
|
|
var actBgngYmd = $('#actBgngYmd').val().trim();
|
|
|
|
|
var actTypeCd = $('#actTypeCd').val().trim();
|
|
|
|
|
|
|
|
|
|
if (!actBgngYmd) {
|
|
|
|
|
alert('행위시작일자를 입력해 주세요.');
|
|
|
|
|
$('#actBgngYmd').focus();
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!actTypeCd) {
|
|
|
|
|
alert('행위유형을 선택해 주세요.');
|
|
|
|
|
$('#actTypeCd').focus();
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 숫자 필드 검증
|
|
|
|
|
var numberFields = ['hgt', 'wdth', 'vrtc', 'area'];
|
|
|
|
|
for (var i = 0; i < numberFields.length; i++) {
|
|
|
|
|
var fieldId = numberFields[i];
|
|
|
|
|
var value = $('#' + fieldId).val().trim();
|
|
|
|
|
if (value && !isValidNumber(value)) {
|
|
|
|
|
alert(getFieldLabel(fieldId) + ' 값이 올바르지 않습니다. 숫자만 입력해 주세요.');
|
|
|
|
|
$('#' + fieldId).focus();
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 숫자 유효성 검증
|
|
|
|
|
*/
|
|
|
|
|
function isValidNumber(value) {
|
|
|
|
|
return /^\d+(\.\d+)?$/.test(value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 필드 레이블 반환
|
|
|
|
|
*/
|
|
|
|
|
function getFieldLabel(fieldId) {
|
|
|
|
|
var labels = {
|
|
|
|
|
'hgt': '높이',
|
|
|
|
|
'wdth': '가로',
|
|
|
|
|
'vrtc': '세로',
|
|
|
|
|
'area': '면적'
|
|
|
|
|
};
|
|
|
|
|
return labels[fieldId] || fieldId;
|
|
|
|
|
}
|
|
|
|
|
</script>
|