fix: 발주기관 건설현장 수정 시, 건설사 미선정 체크 안 되는 버그 수정

main
thkim 2026-03-20 13:45:25 +09:00
parent 6d56b33796
commit 008767112d
2 changed files with 76 additions and 43 deletions

View File

@ -311,6 +311,16 @@ public class DrillingInquiryServiceImpl implements DrillingInquiryService {
data.put("modDt", formattedDate);
}
// 건설사 미선정 여부를 판단한다.
boolean contractorTbd = false;
String constCompanyCode = MyUtil.getStringFromObject( data.get("constCompanyCode") );
String constCompanyAdmin = MyUtil.getStringFromObject( data.get("constCompanyAdmin") );
String constCompanyTel = MyUtil.getStringFromObject( data.get("constCompanyTel") );
if( constCompanyCode == null && constCompanyAdmin == null && constCompanyTel == null ) {
contractorTbd = true;
}
data.put("contractorTbd", contractorTbd);
}
jsonResponse.put("datas", datas);

View File

@ -296,6 +296,54 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
}
/** 건설사 미선정 처리 **/
function contractorTbd(ele) {
document.querySelectorAll('input[id*=unselected-constructor-]').forEach(function (list) {
if (!list.contains(ele)) return;
let chgChk = ele.checked; // false: 체크박스해제, true: 체크
const userid = list.closest('td')?.querySelector('input[id*=const-user-id]'); // hidden 사용자 id
const company = list.closest('td')?.querySelector('input[id*=const-company-dept-]'); // 건설사명
const admin = list.closest('td')?.querySelector('input[id*=const-company-admin-]'); // 담당자
const tel = list.closest('td')?.querySelector('input[id*=const-company-tel-]'); // 담당자 연락처
const pageType = location.href.includes("modify.do") ? "edit" : "add";
if (chgChk) { // 건설사 미지정에 체크시 입력정보 초기화
if (pageType == 'edit' && orgConstUsr != "") { // 수정하면서 원건설사를 미지정할때 확인진행
if (!confirm("건설사에서 입력중인 경우 입력내용이 삭제됩니다. 건설사를 미지정하시겠습니까?")) {
return;
} else {
document.getElementById('const-user-id-1').value = ''
}
}
// 건설사 미지정 처리
// 입력값 초기화
userid.value = '';
company.value = '';
admin.value = '';
tel.value = '';
// 입력 불가
userid.disabled = true;
company.disabled = true;
admin.disabled = true;
tel.disabled = true;
} else {
userid.value = orgConstUsr;
company.value = orgConstCompany;
admin.value = orgConstName;
tel.value = orgConstTel;
// 입력 허용
userid.disabled = false;
company.disabled = false;
admin.disabled = false;
tel.disabled = false;
}
});
}
document.addEventListener('DOMContentLoaded', function() {
// 'CID' 쿼리스트링 파라미터 확인 및 버튼 숨김 처리
@ -499,49 +547,9 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
list.style.display = 'none';
});
// 건설사 미지정 체크시 건설사(계정)정보 초기화
document.querySelectorAll('input[id*=unselected-constructor-]').forEach(function (list) {
if (!list.contains(e.target)) return;
let chgChk = e.target.checked // false: 체크박스해제, true: 체크
const userid = list.closest('td')?.querySelector('input[id*=const-user-id]'); // hidden 사용자 id
const company = list.closest('td')?.querySelector('input[id*=const-company-dept-]'); // 건설사명
const admin = list.closest('td')?.querySelector('input[id*=const-company-admin-]'); // 담당자
const tel = list.closest('td')?.querySelector('input[id*=const-company-tel-]'); // 담당자 연락처
const pageType = location.href.includes("modify.do") ? "edit" : "add";
if (chgChk) { // 건설사 미지정에 체크시 입력정보 초기화
if (pageType == 'edit' && orgConstUsr != "") { // 수정하면서 원건설사를 미지정할때 확인진행
if (!confirm("건설사에서 입력중인 경우 입력내용이 삭제됩니다. 건설사를 미지정하시겠습니까?")) {
return;
} else {
document.getElementById('const-user-id-1').value = ''
}
}
// 건설사 미지정 처리
// 입력값 초기화
userid.value = '';
company.value = '';
admin.value = '';
tel.value = '';
// 입력 불가
userid.disabled = true;
company.disabled = true;
admin.disabled = true;
tel.disabled = true;
} else {
userid.value = orgConstUsr;
company.value = orgConstCompany;
admin.value = orgConstName;
tel.value = orgConstTel;
// 입력 허용
userid.disabled = false;
company.disabled = false;
admin.disabled = false;
tel.disabled = false;
}
});
// 건설사 미지정 체크시 건설사(계정)정보 초기화
contractorTbd(e.target);
});
/**
@ -567,7 +575,7 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
}
}
});
})
});
});
// 사업 등록 처리
@ -802,6 +810,21 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
orgConstTel = item.constCompanyTel ? item.constCompanyTel : "";
orgPrjCd = item.projectCode ? item.projectCode : "";
const unselectedConstructor1Ele = document.getElementById('unselected-constructor-1');
if( unselectedConstructor1Ele ) {
unselectedConstructor1Ele.checked = item.contractorTbd || false; //건설사 미선정 check 처리
contractorTbd(unselectedConstructor1Ele);
// 기존 이벤트 제거 (동일한 함수 참조 전달)
//unselectedConstructor1Ele.removeEventListener('change', contractorTbd);
// 새 이벤트 등록
//unselectedConstructor1Ele.addEventListener('change', contractorTbd);
}
// 툴팁에 표시할 아이디 가져오기