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); 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); 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() { document.addEventListener('DOMContentLoaded', function() {
// 'CID' 쿼리스트링 파라미터 확인 및 버튼 숨김 처리 // 'CID' 쿼리스트링 파라미터 확인 및 버튼 숨김 처리
@ -501,47 +549,7 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
}); });
// 건설사 미지정 체크시 건설사(계정)정보 초기화 // 건설사 미지정 체크시 건설사(계정)정보 초기화
document.querySelectorAll('input[id*=unselected-constructor-]').forEach(function (list) { contractorTbd(e.target);
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;
}
});
}); });
/** /**
@ -567,7 +575,7 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
} }
} }
}); });
}) });
}); });
// 사업 등록 처리 // 사업 등록 처리
@ -804,6 +812,21 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
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);
}
// 툴팁에 표시할 아이디 가져오기 // 툴팁에 표시할 아이디 가져오기
const constUserid = item.constUserid == null ? '' : item.constUserid; const constUserid = item.constUserid == null ? '' : item.constUserid;
const projectCode = item.projectCode == null ? '' : item.projectCode; const projectCode = item.projectCode == null ? '' : item.projectCode;