민간통역인 요청사항 반영

외사분실 요청사항 반영
master
강석 최 2023-02-21 11:59:08 +09:00
parent 128d29e32b
commit f97cdf7574
10 changed files with 570 additions and 526 deletions

View File

@ -75,38 +75,40 @@ public class Translator extends BaseModel implements Serializable{
private String wrtNm; private String wrtNm;
@Column(name = "wrt_dt") @Column(name = "wrt_dt")
private LocalDateTime wrtDt; private LocalDateTime wrtDt;
@Column(name = "naturalization")
private String naturalization;
@Transient @Transient
private String excel; private String excel;
@Embeddable @Embeddable
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public static class TranslatorId implements Serializable { public static class TranslatorId implements Serializable {
private Integer translatorKey; private Integer translatorKey;
private Integer versionNo; private Integer versionNo;
} }
public Date getInt(String string) { public Date getInt(String string) {
return null; return null;
} }
public Date getString(String string) { public Date getString(String string) {
return null; return null;
} }
@Override @Override
public String toString() { public String toString() {
return "Translator [translatorKey=" + translatorKey + ", versionNo=" + versionNo + ", ogdp1=" + ogdp1 + ", trLang=" return "Translator [translatorKey=" + translatorKey + ", versionNo=" + versionNo + ", ogdp1=" + ogdp1 + ", trLang="
+ trLang + ", trCareer=" + trCareer + ", trName=" + trName + ", trSex=" + trSex + ", trPhone=" + trPhone + trLang + ", trCareer=" + trCareer + ", trName=" + trName + ", trSex=" + trSex + ", trPhone=" + trPhone
+ ", trNny=" + trNny + ", trAge=" + trAge + ", trEdu=" + trEdu + ", trCft=" + trCft + ", trVisa=" + trVisa + ", trNny=" + trNny + ", trAge=" + trAge + ", trEdu=" + trEdu + ", trCft=" + trCft + ", trVisa=" + trVisa
+ ", aptDt=" + aptDt + ", dmlYn=" + dmlYn + ", remark=" + remark + ", wrtNm=" + wrtNm + ", wrtDt=" + wrtDt + ", aptDt=" + aptDt + ", dmlYn=" + dmlYn + ", remark=" + remark + ", wrtNm=" + wrtNm + ", wrtDt=" + wrtDt
+ ", wrtOrgan=" + wrtOrgan + ", excel=" + excel + "]"; + ", wrtOrgan=" + wrtOrgan + ", excel=" + excel + "]";
} }

View File

@ -28,6 +28,26 @@ $(document).on('change', '#rentType', function (){
} }
}); });
$(document).on('change', '#plWorkType', function (){
const plPeopleCnt = $("#plPeopleCnt");
if(this.value === 'PIS001'){
plPeopleCnt.removeAttr("disabled");
}else{
plPeopleCnt.val('');
plPeopleCnt.attr("disabled", "disabled");
}
});
$(document).on('change', '#mpWorkType', function (){
const mpPeopleCnt = $("#mpPeopleCnt");
if(this.value === 'PIS001'){
mpPeopleCnt.removeAttr("disabled");
}else{
mpPeopleCnt.val('');
mpPeopleCnt.attr("disabled", "disabled");
}
});
$(document).on('change', '#utilityType', function (){ $(document).on('change', '#utilityType', function (){
const utilityPrice = $("#utilityPrice"); const utilityPrice = $("#utilityPrice");
if(this.value === 'Y'){ if(this.value === 'Y'){
@ -116,15 +136,15 @@ $(document).on('click', '#savePartInfo', function (){
$('#terminalNm').focus(); $('#terminalNm').focus();
return false; return false;
} }
if($('#mpWorkType').val() != ''){ if($('#mpWorkType').val() === 'PIS001'){
if($('#mpPeopleCnt').val() == ''){ if($('#mpPeopleCnt').val() === ''){
alert('해경 인원수를 입력해주세요'); alert('해경 인원수를 입력해주세요');
$('#mpPeopleCnt').focus(); $('#mpPeopleCnt').focus();
return false; return false;
} }
} }
if($('#plWorkType').val() != ''){ if($('#plWorkType').val() === 'PIS001'){
if($('#plPeopleCnt').val() == ''){ if($('#plPeopleCnt').val() === ''){
alert('육경 인원수를 입력해주세요'); alert('육경 인원수를 입력해주세요');
$('#plPeopleCnt').focus(); $('#plPeopleCnt').focus();
return false; return false;

View File

@ -226,7 +226,7 @@ $(document).on('click', '#fileDownBtn', function (){
}) })
$(document).on('click', '#printBtn', function (){ $(document).on('click', '#printBtn', function (){
window.open("http://localhost:8080/affair/print?affairKey="+$(this).attr("data-affairkey")); window.open(location.origin+"/affair/print?affairKey="+$(this).attr("data-affairkey"));
}) })
function getAffairViewModal(affairKey){ function getAffairViewModal(affairKey){

View File

@ -2,17 +2,17 @@ let eduList=[];
let selectedIdx=0; let selectedIdx=0;
$(document).on('click', '.policeTr', function (event){ $(document).on('click', '.policeTr', function (event){
const target = event.target; const target = event.target;
if(!(target.className === "checkBoxTd" ||$(target).parents("td").length>0)){ if(!(target.className === "checkBoxTd" ||$(target).parents("td").length>0)){
const userSeq = (Number($(this).find(".userSeq").val())); const userSeq = (Number($(this).find(".userSeq").val()));
showModal(userSeq); showModal(userSeq);
} }
}); });
function showModal(userSeq){ function showModal(userSeq){
$.ajax({ $.ajax({
url: '/police/eduEditModal', url: '/police/eduEditModal',
data: {userSeq: userSeq}, data: {userSeq: userSeq},
type: 'GET', type: 'GET',
dataType:"html", dataType:"html",
success: function(html){ success: function(html){
@ -31,47 +31,47 @@ function showModal(userSeq){
} }
$(document).on('click', '#previousTab', function (){ $(document).on('click', '#previousTab', function (){
const userStatus = $(this).data('userstatus'); const userStatus = $(this).data('userstatus');
location.href = "/police/educationMgt?userStatus="+userStatus; location.href = "/police/educationMgt?userStatus="+userStatus;
}) })
$(document).on('click', '#presentTab', function (){ $(document).on('click', '#presentTab', function (){
const userStatus = $(this).data('userstatus'); const userStatus = $(this).data('userstatus');
location.href = "/police/educationMgt?userStatus="+userStatus; location.href = "/police/educationMgt?userStatus="+userStatus;
}) })
$(document).on('click', '#notPoliceTab', function (){ $(document).on('click', '#notPoliceTab', function (){
const userStatus = $(this).data('userstatus'); const userStatus = $(this).data('userstatus');
location.href = "/police/educationMgt?userStatus="+userStatus; location.href = "/police/educationMgt?userStatus="+userStatus;
}) })
$(document).on('click', '#eduAddBtn', function (){ $(document).on('click', '#eduAddBtn', function (){
const userSeq = (Number($(this).data('userseq'))); const userSeq = (Number($(this).data('userseq')));
$('#insertEdu').append( $('#insertEdu').append(
'<div id="eduDiv" class="mb-2">'+ '<div id="eduDiv" class="mb-2">'+
'<div class="row mb-1">'+ '<div class="row mb-1">'+
'<label for="ogCd" class="col-sm-1 col-form-label col-form-label-sm text-center ps-0 pe-0">교육명</label>'+ '<label for="ogCd" class="col-sm-1 col-form-label col-form-label-sm text-center ps-0 pe-0">교육명</label>'+
'<div class="col-sm-2">'+ '<div class="col-sm-2">'+
'<input type="text" class="form-control form-control-sm tcDt eduInput" name="eduName">'+ '<input type="text" class="form-control form-control-sm tcDt eduInput" name="eduName">'+
'</div>'+ '</div>'+
'<label for="ofcCd" class="col-sm-1 col-form-label col-form-label-sm text-center ps-0 pe-0">교육시작</label>'+ '<label for="ofcCd" class="col-sm-1 col-form-label col-form-label-sm text-center ps-0 pe-0">교육시작</label>'+
'<div class="col-sm-2">'+ '<div class="col-sm-2">'+
'<input type="text" class="form-control form-control-sm eduSdate eduInput" name="eduSdate" readonly>'+ '<input type="text" class="form-control form-control-sm eduSdate eduInput" name="eduSdate" readonly>'+
'</div>'+ '</div>'+
'<label for="ofcCd" class="col-sm-1 col-form-label col-form-label-sm text-center ps-0 pe-0">교육종료</label>'+ '<label for="ofcCd" class="col-sm-1 col-form-label col-form-label-sm text-center ps-0 pe-0">교육종료</label>'+
'<div class="col-sm-2">'+ '<div class="col-sm-2">'+
'<input type="text" class="form-control form-control-sm eduEdate eduInput" name="eduEdate" readonly>'+ '<input type="text" class="form-control form-control-sm eduEdate eduInput" name="eduEdate" readonly>'+
'</div>'+ '</div>'+
'<label for="ofcCd" class="col-sm-1 col-form-label col-form-label-sm text-center ps-0 pe-0">담당기관</label>'+ '<label for="ofcCd" class="col-sm-1 col-form-label col-form-label-sm text-center ps-0 pe-0">담당기관</label>'+
'<div class="col-sm-2">'+ '<div class="col-sm-2">'+
'<input type="text" class="form-control form-control-sm eduInput" name="eduRa">'+ '<input type="text" class="form-control form-control-sm eduInput" name="eduRa">'+
'</div>'+ '</div>'+
'</div>'+ '</div>'+
'<div class="row justify-content-center">'+ '<div class="row justify-content-center">'+
'<div class="col-sm-1">'+ '<div class="col-sm-1">'+
'<button type="button" class="btn btn-sm btn-outline-danger rowDeleteBtn"><i class="bi bi-x"></i></button>'+ '<button type="button" class="btn btn-sm btn-outline-danger rowDeleteBtn"><i class="bi bi-x"></i></button>'+
'</div>'+ '</div>'+
'</div>'+ '</div>'+
'</div>' '</div>'
) )
$(".eduSdate").datepicker({ $(".eduSdate").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
@ -87,9 +87,9 @@ $(document).on('click', '#eduAddBtn', function (){
}) })
$(document).on('click', '.rowDeleteBtn', function (){ $(document).on('click', '.rowDeleteBtn', function (){
selectedIdx = $(this).parents("#eduDiv").index()-1; selectedIdx = $(this).parents("#eduDiv").index()-1;
eduList.splice(selectedIdx,1); eduList.splice(selectedIdx,1);
$(this).parents('#eduDiv').remove(); $(this).parents('#eduDiv').remove();
}) })
$(document).on('change', '.eduInput', function (){ $(document).on('change', '.eduInput', function (){
@ -112,56 +112,56 @@ $(document).on('change', '.eduInput', function (){
}) })
$(document).on('click', '#saveBtn', function (){ $(document).on('click', '#saveBtn', function (){
if(eduList.length < 1){ if(eduList.length < 1){
alert("새로 입력된 교육정보가 없습니다."); alert("새로 입력된 교육정보가 없습니다.");
return false; return false;
} }
if(confirm("저장하시겠습니까?")){ if(confirm("저장하시겠습니까?")){
contentFade("in"); contentFade("in");
$.ajax({ $.ajax({
type : 'POST', type : 'POST',
data : JSON.stringify(eduList), data : JSON.stringify(eduList),
url : "/police/saveEdu", url : "/police/saveEdu",
contentType: 'application/json', contentType: 'application/json',
beforeSend: function (xhr){ beforeSend: function (xhr){
xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val());
}, },
success : function(data) { success : function(data) {
contentFade("out"); contentFade("out");
alert("교육등록이 완료되었습니다."); alert("교육등록이 완료되었습니다.");
showModal(data); showModal(data);
eduList.length = 0; eduList.length = 0;
}, },
error : function(xhr, status) { error : function(xhr, status) {
contentFade("out"); contentFade("out");
alert("교육등록을 실패하였습니다"); alert("교육등록을 실패하였습니다");
} }
}) })
} }
}) })
$(document).on('click', '#deleteBtn', function (){ $(document).on('click', '#deleteBtn', function (){
const eduSeq = (Number($(this).data('eduseq'))); const eduSeq = (Number($(this).data('eduseq')));
const userSeq = (Number($(this).data('userseq'))); const userSeq = (Number($(this).data('userseq')));
if(confirm("삭제하시겠습니까?")){ if(confirm("삭제하시겠습니까?")){
$.ajax({ $.ajax({
type : 'POST', type : 'POST',
url : "/police/deleteEdu", url : "/police/deleteEdu",
data : JSON.stringify({eduSeq:eduSeq, data : JSON.stringify({eduSeq:eduSeq,
userSeq:userSeq}), userSeq:userSeq}),
contentType: 'application/json', contentType: 'application/json',
beforeSend: function (xhr){ beforeSend: function (xhr){
xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val());
}, },
success : function(data) { success : function(data) {
alert("삭제 처리되었습니다."); alert("삭제 처리되었습니다.");
showModal(data); showModal(data);
}, },
error : function(xhr, status) { error : function(xhr, status) {
alert("삭제 처리에 실패하였습니다"); alert("삭제 처리에 실패하였습니다");
} }
}) })
} }
}) })

View File

@ -8,162 +8,162 @@ $(function(){
}); });
}) })
$(document).on('click', '.userInfoTr', function (event){ $(document).on('click', '.userInfoTr', function (event){
$("#selectedKey").val($(this).find(".trKey").val()) $("#selectedKey").val($(this).find(".trKey").val())
$("#selectedVerNo").val($(this).find(".verNo").val()) $("#selectedVerNo").val($(this).find(".verNo").val())
const x = event.clientX; const x = event.clientX;
const y = event.clientY; const y = event.clientY;
const dropdown = $(".dropdown-menu.show") const dropdown = $(".dropdown-menu.show")
if(dropdown.length>0){ if(dropdown.length>0){
dropdown[0].style.inset = "0px auto auto "+(x-event.currentTarget.getBoundingClientRect().x)+"px"; dropdown[0].style.inset = "0px auto auto "+(x-event.currentTarget.getBoundingClientRect().x)+"px";
} }
}) })
$(document).on('click', '.translatorInfo', function (){ $(document).on('click', '.translatorInfo', function (){
document.getElementById('accessTab').classList.add('active'); document.getElementById('accessTab').classList.add('active');
document.getElementById('approvalTab').classList.remove('active'); document.getElementById('approvalTab').classList.remove('active');
const trKey = Number($("#selectedKey").val()); const trKey = Number($("#selectedKey").val());
const verNo = Number($("#selectedVerNo").val()); const verNo = Number($("#selectedVerNo").val());
const url = '/translator/translatorEditModal'; const url = '/translator/translatorEditModal';
revisionHistory(trKey,verNo,url); revisionHistory(trKey,verNo,url);
var html=""; var html="";
html += '<input type="hidden" class="tapTrKey" value="'+trKey+'">'; html += '<input type="hidden" class="tapTrKey" value="'+trKey+'">';
html += '<input type="hidden" class="tapVerNo" value="'+verNo+'">'; html += '<input type="hidden" class="tapVerNo" value="'+verNo+'">';
$("#KeyValue").empty().html(html) $("#KeyValue").empty().html(html)
}) })
$(document).on('click', '#trView', function (){ $(document).on('click', '#trView', function (){
document.getElementById('accessTab').classList.add('active'); document.getElementById('accessTab').classList.add('active');
document.getElementById('approvalTab').classList.remove('active'); document.getElementById('approvalTab').classList.remove('active');
const trKey = (Number($(this).find(".trKey").val())); const trKey = (Number($(this).find(".trKey").val()));
const verNo = (Number($(this).find(".verNo").val())); const verNo = (Number($(this).find(".verNo").val()));
const url = '/translator/translatorEditModal'; const url = '/translator/translatorEditModal';
revisionHistory(trKey,verNo,url); revisionHistory(trKey,verNo,url);
var html=""; var html="";
html += '<input type="hidden" class="tapTrKey" value="'+trKey+'">'; html += '<input type="hidden" class="tapTrKey" value="'+trKey+'">';
html += '<input type="hidden" class="tapVerNo" value="'+verNo+'">'; html += '<input type="hidden" class="tapVerNo" value="'+verNo+'">';
$("#KeyValue").empty().html(html); $("#KeyValue").empty().html(html);
}) })
$(document).on('click', '#updateBtn', function (){ $(document).on('click', '#updateBtn', function (){
if($('#eOgdp1').val() == ''){ if($('#eOgdp1').val() == ''){
alert("관서를 선택해주세요."); alert("관서를 선택해주세요.");
$('#eOgdp1').focus(); $('#eOgdp1').focus();
return false; return false;
} }
if($('#eTrLang').val() == ''){ if($('#eTrLang').val() == ''){
alert("언어를 선택해주세요."); alert("언어를 선택해주세요.");
$('#eTrLang').focus(); $('#eTrLang').focus();
return false; return false;
} }
if($('#eTrEname').val() == ''){ if($('#eTrEname').val() == ''){
alert("성명을 입력해주세요."); alert("성명을 입력해주세요.");
$('#eTrEname').focus(); $('#eTrEname').focus();
return false; return false;
} }
if(confirm("수정하시겠습니까?")){ if(confirm("수정하시겠습니까?")){
document.getElementById("eOgdp1").disabled = false; document.getElementById("eOgdp1").disabled = false;
const url = '/translator/translatorEditModal'; const url = '/translator/translatorEditModal';
contentFade("in"); contentFade("in");
const formData = new FormData($("#trInfoUpdate")[0]); const formData = new FormData($("#trInfoUpdate")[0]);
$.ajax({ $.ajax({
type : 'POST', type : 'POST',
data : formData, data : formData,
url : "/translator/updateTranslatorInfo", url : "/translator/updateTranslatorInfo",
processData: false, processData: false,
contentType: false, contentType: false,
success : function(data) { success : function(data) {
alert("수정되었습니다."); alert("수정되었습니다.");
contentFade("out"); contentFade("out");
revisionHistory(data.translatorKey,data.versionNo,url); revisionHistory(data.translatorKey,data.versionNo,url);
}, },
error : function(xhr, status) { error : function(xhr, status) {
alert("수정에 실패하였습니다."); alert("수정에 실패하였습니다.");
contentFade("out"); contentFade("out");
} }
}) })
} }
}) })
$(document).on('click', '#saveBtn', function (){ $(document).on('click', '#saveBtn', function (){
if($('#ogdp1').val() == ''){ if($('#ogdp1').val() == ''){
alert("관서를 선택해주세요."); alert("관서를 선택해주세요.");
$('#ogdp1').focus(); $('#ogdp1').focus();
return false; return false;
} }
if($('#lang').val() == ''){ if($('#lang').val() == ''){
alert("언어를 선택해주세요."); alert("언어를 선택해주세요.");
$('#lang').focus(); $('#lang').focus();
return false; return false;
} }
if($('#trName').val() == ''){ if($('#trName').val() == ''){
alert("성명을 입력해주세요."); alert("성명을 입력해주세요.");
$('#trName').focus(); $('#trName').focus();
return false; return false;
} }
if($('#dmlYn').val() == ''){ if($('#dmlYn').val() == ''){
alert("해촉여부를 선택해주세요."); alert("해촉여부를 선택해주세요.");
$('#dmlYn').focus(); $('#dmlYn').focus();
return false; return false;
} }
if(confirm("저장하시겠습니까?")){ if(confirm("저장하시겠습니까?")){
document.getElementById("ogdp1").disabled = false; document.getElementById("ogdp1").disabled = false;
contentFade("in"); contentFade("in");
const formData = new FormData($("#translatorInsert")[0]); const formData = new FormData($("#translatorInsert")[0]);
$.ajax({ $.ajax({
type : 'POST', type : 'POST',
data : formData, data : formData,
url : "/translator/insertTranslatorInfo", url : "/translator/insertTranslatorInfo",
processData: false, processData: false,
contentType: false, contentType: false,
success : function(result) { success : function(result) {
alert("저장되었습니다.") alert("저장되었습니다.")
contentFade("out"); contentFade("out");
location.reload(); location.reload();
}, },
error : function(xhr, status) { error : function(xhr, status) {
alert("저장에 실패하였습니다.") alert("저장에 실패하였습니다.")
contentFade("out"); contentFade("out");
} }
}) })
} }
}) })
$(document).on('click', '.historyInfoTr', function (){ $(document).on('click', '.historyInfoTr', function (){
$(this).find('.hisChk').prop('checked',true) $(this).find('.hisChk').prop('checked',true)
if($(this).find('.hisChk').prop('checked')){ if($(this).find('.hisChk').prop('checked')){
$('.hisChk').prop('checked',false); $('.hisChk').prop('checked',false);
$(this).find('.hisChk').prop('checked',true) $(this).find('.hisChk').prop('checked',true)
} }
$.ajax({ $.ajax({
url: '/translator/HistoryView', url: '/translator/HistoryView',
data: { data: {
translatorKey: Number($(this).find(".trKey").val()), translatorKey: Number($(this).find(".trKey").val()),
versionNo : Number($(this).find(".verNo").val()) versionNo : Number($(this).find(".verNo").val())
}, },
type: 'GET', type: 'GET',
dataType:"json", dataType:"json",
success: function(data){ success: function(data){
$("#ogdp1V").val(data.ogdp1); $("#ogdp1V").val(data.ogdp1);
$("#trLangV").val(data.trLang); $("#trLangV").val(data.trLang);
$("#trCareerV").val(data.trCareer); $("#trCareerV").val(data.trCareer);
$("#trNameV").val(data.trName); $("#trNameV").val(data.trName);
$("#trSexV").val(data.trSex); $("#trSexV").val(data.trSex);
$("#trPhoneV").val(data.trPhone); $("#trPhoneV").val(data.trPhone);
$("#trNnyV").val(data.trNny); $("#trNnyV").val(data.trNny);
$("#trAgeV").val(data.trAge); $("#trAgeV").val(data.trAge);
$("#trVisaV").val(data.trVisa); $("#trVisaV").val(data.trVisa);
$("#trEduV").val(data.trEdu); $("#trEduV").val(data.trEdu);
$("#trCftV").val(data.trCft); $("#trCftV").val(data.trCft);
$("#aptDtV").val(data.aptDt); $("#aptDtV").val(data.aptDt);
$("#dmlYnV").val(data.dmlYn); $("#dmlYnV").val(data.dmlYn);
$("#remarkV").val(data.remark); $("#remarkV").val(data.remark);
}, },
error:function(e){ error:function(e){
ajaxErrorAction(e); ajaxErrorAction(e);
@ -184,30 +184,30 @@ $(document).ready( function() {
}); });
$(document).on('click', '#approvalTab', function (){ $(document).on('click', '#approvalTab', function (){
const trKey = (Number($('.tapTrKey').val())); const trKey = (Number($('.tapTrKey').val()));
const verNo = (Number($('.tapVerNo').val())); const verNo = (Number($('.tapVerNo').val()));
const url = '/translator/revisionHistory'; const url = '/translator/revisionHistory';
revisionHistory(trKey,verNo,url); revisionHistory(trKey,verNo,url);
document.getElementById('accessTab').classList.remove('active'); document.getElementById('accessTab').classList.remove('active');
document.getElementById('approvalTab').classList.add('active'); document.getElementById('approvalTab').classList.add('active');
}) })
$(document).on('click', '#accessTab', function (){ $(document).on('click', '#accessTab', function (){
const trKey = (Number($('.tapTrKey').val())); const trKey = (Number($('.tapTrKey').val()));
const verNo = (Number($('.tapVerNo').val())); const verNo = (Number($('.tapVerNo').val()));
const url = '/translator/translatorEditModal'; const url = '/translator/translatorEditModal';
revisionHistory(trKey,verNo,url); revisionHistory(trKey,verNo,url);
document.getElementById('approvalTab').classList.remove('active'); document.getElementById('approvalTab').classList.remove('active');
document.getElementById('accessTab').classList.add('active'); document.getElementById('accessTab').classList.add('active');
}) })
function revisionHistory(trKey,verNo,url){ function revisionHistory(trKey,verNo,url){
$.ajax({ $.ajax({
url: url, url: url,
data: { data: {
translatorKey: trKey, translatorKey: trKey,
versionNo : verNo versionNo : verNo
}, },
type: 'GET', type: 'GET',
dataType:"html", dataType:"html",
success: function(html){ success: function(html){
@ -226,45 +226,47 @@ function revisionHistory(trKey,verNo,url){
} }
$(document).on('change', '#trNny', function (){ $(document).on('change', '#trNny', function (){
if($(this).val() == "NNY001"){ if($(this).val() === "NNY001"){
$("#trVisa").attr("disabled",true); $("#trVisa").attr("disabled", "disabled");
}else{ $("#naturalization").removeAttr("disabled");
$("#trVisa").removeAttr("disabled"); }else{
} $("#trVisa").removeAttr("disabled");
$("#naturalization").attr("disabled", "disabled");
}
}); });
$(document).on('click', '#crrAddBtn', function (){ $(document).on('click', '#crrAddBtn', function (){
const trKey = (Number($('#tcInsertKey').val())); const trKey = (Number($('#tcInsertKey').val()));
$('#insertCareer').append( $('#insertCareer').append(
'<div id="crrDiv">'+ '<div id="crrDiv">'+
'<div class="row mb-1">'+ '<div class="row mb-1">'+
'<label for="ogCd" class="col-sm-2 col-form-label-sm text-center">경력구분</label>'+ '<label for="ogCd" class="col-sm-2 col-form-label-sm text-center">경력구분</label>'+
'<div class="col-sm-2">'+ '<div class="col-sm-2">'+
'<select class="form-select form-select-sm crrInput" name="hisGubun">'+ '<select class="form-select form-select-sm crrInput" name="hisGubun">'+
'<option value="">선택</option>'+ '<option value="">선택</option>'+
'<option value="Y">해양경찰청</option>'+ '<option value="Y">해양경찰청</option>'+
'<option value="N">타기관</option>'+ '<option value="N">타기관</option>'+
'</select>'+ '</select>'+
'</div>'+ '</div>'+
'<label for="ofcCd" class="col-sm-1 col-form-label-sm text-center">날짜</label>'+ '<label for="ofcCd" class="col-sm-1 col-form-label-sm text-center">날짜</label>'+
'<div class="col-sm-2">'+ '<div class="col-sm-2">'+
'<input type="text" class="form-control tcDt crrInput" id="tcDt" name="tcDt" readonly>'+ '<input type="text" class="form-control tcDt crrInput" id="tcDt" name="tcDt" readonly>'+
'</div>'+ '</div>'+
'<label for="ofcCd" class="col-sm-1 col-form-label-sm text-center">내용</label>'+ '<label for="ofcCd" class="col-sm-1 col-form-label-sm text-center">내용</label>'+
'<div class="col-sm-2">'+ '<div class="col-sm-2">'+
'<input type="text" class="form-control crrInput" id="contents" name="contents">'+ '<input type="text" class="form-control crrInput" id="contents" name="contents">'+
'</div>'+ '</div>'+
'</div>'+ '</div>'+
'<div class="mb-2 row">'+ '<div class="mb-2 row">'+
'<label for="ofcCd" class="col-sm-2 col-form-label-sm text-center">비고</label>'+ '<label for="ofcCd" class="col-sm-2 col-form-label-sm text-center">비고</label>'+
'<div class="col-sm-8">'+ '<div class="col-sm-8">'+
'<input type="text" class="form-control crrInput" id="remark" name="remark">'+ '<input type="text" class="form-control crrInput" id="remark" name="remark">'+
'</div>'+ '</div>'+
'<div class="col-sm-1">'+ '<div class="col-sm-1">'+
'<button type="button" class="btn btn-sm btn-outline-danger rowDeleteBtn"><i class="bi bi-x"></i></button>'+ '<button type="button" class="btn btn-sm btn-outline-danger rowDeleteBtn"><i class="bi bi-x"></i></button>'+
'</div>'+ '</div>'+
'</div>'+ '</div>'+
'</div>' '</div>'
) )
$(".tcDt").datepicker({ $(".tcDt").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
@ -275,9 +277,9 @@ $(document).on('click', '#crrAddBtn', function (){
}) })
$(document).on('click', '.rowDeleteBtn', function (){ $(document).on('click', '.rowDeleteBtn', function (){
selectedIdx = $(this).parents("#crrDiv").index()-1; selectedIdx = $(this).parents("#crrDiv").index()-1;
trCarrerList.splice(selectedIdx,1); trCarrerList.splice(selectedIdx,1);
$(this).parents('#crrDiv').remove(); $(this).parents('#crrDiv').remove();
}) })
$(document).on('change', '.crrInput', function (){ $(document).on('change', '.crrInput', function (){
@ -300,16 +302,16 @@ $(document).on('change', '.crrInput', function (){
}) })
$(document).on('click', '.careerInfo', function (){ $(document).on('click', '.careerInfo', function (){
const trKey = Number($("#selectedKey").val()); const trKey = Number($("#selectedKey").val());
showCareer(trKey); showCareer(trKey);
}) })
function showCareer(trKey){ function showCareer(trKey){
$.ajax({ $.ajax({
url: '/translator/careerView', url: '/translator/careerView',
data: { data: {
translatorKey: trKey, translatorKey: trKey,
}, },
type: 'GET', type: 'GET',
dataType:"html", dataType:"html",
success: function(html){ success: function(html){
@ -324,12 +326,12 @@ function showCareer(trKey){
$(document).on('click', '#crrInsertBtn', function (){ $(document).on('click', '#crrInsertBtn', function (){
const trKey = Number($("#tcmKey").val()); const trKey = Number($("#tcmKey").val());
$.ajax({ $.ajax({
url: '/translator/careerInsertPage', url: '/translator/careerInsertPage',
data: { data: {
translatorKey: trKey, translatorKey: trKey,
}, },
type: 'GET', type: 'GET',
dataType:"html", dataType:"html",
success: function(html){ success: function(html){
@ -343,101 +345,101 @@ $(document).on('click', '#crrInsertBtn', function (){
}) })
$(document).on('click', '#crrSaveBtn', function (){ $(document).on('click', '#crrSaveBtn', function (){
if(trCarrerList.length < 1){ if(trCarrerList.length < 1){
alert("새로 입력된 경력정보가 없습니다."); alert("새로 입력된 경력정보가 없습니다.");
return false; return false;
} }
if(confirm("저장하시겠습니까?")){ if(confirm("저장하시겠습니까?")){
contentFade("in"); contentFade("in");
$.ajax({ $.ajax({
type : 'POST', type : 'POST',
data : JSON.stringify(trCarrerList), data : JSON.stringify(trCarrerList),
url : "/translator/insertTranslatorCareer", url : "/translator/insertTranslatorCareer",
contentType: 'application/json', contentType: 'application/json',
beforeSend: function (xhr){ beforeSend: function (xhr){
xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val());
}, },
success : function(data) { success : function(data) {
contentFade("out"); contentFade("out");
alert("이력등록이 완료되었습니다."); alert("이력등록이 완료되었습니다.");
showCareer(data); showCareer(data);
trCarrerList.length = 0; trCarrerList.length = 0;
}, },
error : function(xhr, status) { error : function(xhr, status) {
contentFade("out"); contentFade("out");
alert("이력등록을 실패하였습니다"); alert("이력등록을 실패하였습니다");
} }
}) })
} }
}) })
function deleteCareerBtn(crrSeq,trKey){ function deleteCareerBtn(crrSeq,trKey){
if(confirm("삭제하시겠습니까?")){ if(confirm("삭제하시겠습니까?")){
$.ajax({ $.ajax({
type : 'POST', type : 'POST',
url : "/translator/deleteCareer", url : "/translator/deleteCareer",
data : JSON.stringify({careerSeq:crrSeq, data : JSON.stringify({careerSeq:crrSeq,
translatorKey:trKey}), translatorKey:trKey}),
contentType: 'application/json', contentType: 'application/json',
beforeSend: function (xhr){ beforeSend: function (xhr){
xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val());
}, },
success : function(data) { success : function(data) {
alert("삭제 처리되었습니다."); alert("삭제 처리되었습니다.");
showCareer(data); showCareer(data);
}, },
error : function(xhr, status) { error : function(xhr, status) {
alert("삭제 처리에 실패하였습니다"); alert("삭제 처리에 실패하였습니다");
} }
}) })
} }
} }
$(document).on('click', '.btn-close', function (){ $(document).on('click', '.btn-close', function (){
location.reload(); location.reload();
}) })
$(document).on('click', '#trDeleteBtn', function (){ $(document).on('click', '#trDeleteBtn', function (){
if(confirm("해임 하시겠습니까?")){ if(confirm("해임 하시겠습니까?")){
contentFade("in"); contentFade("in");
const trKey = Number($(".translatorKey").val()); const trKey = Number($(".translatorKey").val());
$.ajax({ $.ajax({
type : 'POST', type : 'POST',
data : JSON.stringify(trKey), data : JSON.stringify(trKey),
url : "/translator/deleteTranslatorInfo", url : "/translator/deleteTranslatorInfo",
contentType: 'application/json', contentType: 'application/json',
beforeSend: function (xhr){ beforeSend: function (xhr){
xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val());
}, },
success : function() { success : function() {
alert("해임되었습니다."); alert("해임되었습니다.");
contentFade("out"); contentFade("out");
location.reload(); location.reload();
}, },
error : function(xhr, status) { error : function(xhr, status) {
alert("해임을 실패하였습니다."); alert("해임을 실패하였습니다.");
contentFade("out"); contentFade("out");
} }
}) })
} }
}) })
$(document).on('click', '#goExcel', function (){ $(document).on('click', '#goExcel', function (){
if(confirm("엑셀로 다운로드 하시겠습니까?")){ if(confirm("엑셀로 다운로드 하시겠습니까?")){
$('input[name=excel]').val('Y'); $('input[name=excel]').val('Y');
$('#searchFm').submit(); $('#searchFm').submit();
$('input[name=excel]').val(''); $('input[name=excel]').val('');
}else{ }else{
false; false;
} }
}) })
$(document).on('click', '#excelDown', function (){ $(document).on('click', '#excelDown', function (){
if(confirm("엑셀로 다운로드 하시겠습니까?")){ if(confirm("엑셀로 다운로드 하시겠습니까?")){
location.href='/translator/statisticsExcelDown'; location.href='/translator/statisticsExcelDown';
}else{ }else{
false; false;
} }
}) })

View File

@ -79,7 +79,7 @@
</div> </div>
<label for="mpPeopleCnt" class="col-sm-2 col-form-label col-form-label-sm text-center">인원수</label> <label for="mpPeopleCnt" class="col-sm-2 col-form-label col-form-label-sm text-center">인원수</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="number" class="form-control form-control-sm" id="mpPeopleCnt" name="mpPeopleCnt"> <input type="number" class="form-control form-control-sm" id="mpPeopleCnt" name="mpPeopleCnt" disabled>
</div> </div>
</div> </div>
<div class="row m-0"> <div class="row m-0">
@ -109,7 +109,7 @@
</div> </div>
<label for="plPeopleCnt" class="col-sm-2 col-form-label col-form-label-sm text-center">인원수</label> <label for="plPeopleCnt" class="col-sm-2 col-form-label col-form-label-sm text-center">인원수</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="number" class="form-control form-control-sm" id="plPeopleCnt" name="plPeopleCnt"> <input type="number" class="form-control form-control-sm" id="plPeopleCnt" name="plPeopleCnt" disabled>
</div> </div>
</div> </div>
<div class="row m-0"> <div class="row m-0">

View File

@ -92,7 +92,7 @@
</div> </div>
<label for="mpPeopleCnt" class="col-sm-2 col-form-label col-form-label-sm text-center">인원수</label> <label for="mpPeopleCnt" class="col-sm-2 col-form-label col-form-label-sm text-center">인원수</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="number" class="form-control form-control-sm" id="mpPeopleCnt" name="mpPeopleCnt" th:value="${partInfo.mpPeopleCnt}"> <input type="number" class="form-control form-control-sm" id="mpPeopleCnt" name="mpPeopleCnt" th:value="${partInfo.mpPeopleCnt}" th:disabled="${partInfo.mpWorkType ne 'PIS001'}">
</div> </div>
</div> </div>
<div class="row m-0"> <div class="row m-0">
@ -122,7 +122,7 @@
</div> </div>
<label for="plPeopleCnt" class="col-sm-2 col-form-label col-form-label-sm text-center">인원수</label> <label for="plPeopleCnt" class="col-sm-2 col-form-label col-form-label-sm text-center">인원수</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="number" class="form-control form-control-sm" id="plPeopleCnt" name="plPeopleCnt" th:value="${partInfo.plPeopleCnt}"> <input type="number" class="form-control form-control-sm" id="plPeopleCnt" name="plPeopleCnt" th:value="${partInfo.plPeopleCnt}" th:disabled="${partInfo.plWorkType ne 'PIS001'}">
</div> </div>
</div> </div>
<div class="row m-0"> <div class="row m-0">

View File

@ -283,7 +283,7 @@
</nav> </nav>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<input type="button" class="btn btn-success" value="제출" id="addAffairBtn" th:if="${page eq 'myReport' and accessAuth ne 'ACC001'}"> <input type="button" class="btn btn-success" value="견문작성" id="addAffairBtn" th:if="${page eq 'myReport' and accessAuth ne 'ACC001'}">
<input type="button" class="btn btn-warning" value="결재" id="tableApprvBtn" th:if="${page eq 'stayReport' and apprvAuth ne null}" th:data-apprvauth="${apprvAuth}"> <input type="button" class="btn btn-warning" value="결재" id="tableApprvBtn" th:if="${page eq 'stayReport' and apprvAuth ne null}" th:data-apprvauth="${apprvAuth}">
</div> </div>
</div> </div>

View File

@ -262,6 +262,16 @@
</th:block> </th:block>
</select> </select>
</div> </div>
<label for="naturalization" class="col-sm-1 col-form-label-sm text-center fs-13 fw-bold">귀화</label>
<div class="col-sm-3">
<select class="form-select" id="naturalization" name="naturalization" disabled>
<option value="">선택</option>
<option value="O">O</option>
<option value="X">X</option>
</select>
</div>
</div>
<div class="row mb-1">
<label for="trAge" class="col-sm-1 col-form-label-sm text-center fs-13 fw-bold">나이</label> <label for="trAge" class="col-sm-1 col-form-label-sm text-center fs-13 fw-bold">나이</label>
<div class="col-sm-3"> <div class="col-sm-3">
<input type="text" class="form-control" id="trAge" name="trAge"> <input type="text" class="form-control" id="trAge" name="trAge">
@ -275,18 +285,18 @@
</th:block> </th:block>
</select> </select>
</div> </div>
</div>
<div class="row mb-1">
<label for="trCft" class="col-sm-1 col-form-label-sm text-center fs-13 fw-bold">자격증</label> <label for="trCft" class="col-sm-1 col-form-label-sm text-center fs-13 fw-bold">자격증</label>
<div class="col-sm-3"> <div class="col-sm-3">
<input type="text" class="form-control" id="trCft" name="trCft"> <input type="text" class="form-control" id="trCft" name="trCft">
</div> </div>
</div>
<div class="row mb-1">
<label for="trVisa" class="col-sm-1 col-form-label-sm text-center fs-13 fw-bold">비자</label> <label for="trVisa" class="col-sm-1 col-form-label-sm text-center fs-13 fw-bold">비자</label>
<div class="col-sm-3"> <div class="col-sm-3">
<select class="form-select" id="trVisa" name="trVisa"> <select class="form-select" id="trVisa" name="trVisa">
<option value="">선택</option> <option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('VISA')}"> <th:block th:each="code:${session.commonCode.get('VISA')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option> <option th:if="${code.useChk eq 'T'}" th:value="${code.itemCd}" th:text="${code.itemValue}"></option>
</th:block> </th:block>
</select> </select>
</div> </div>
@ -294,8 +304,6 @@
<div class="col-sm-3"> <div class="col-sm-3">
<input type="text" class="form-control" id="aptDt" name="aptDt" readonly> <input type="text" class="form-control" id="aptDt" name="aptDt" readonly>
</div> </div>
</div>
<div class="mb-2 row">
<label for="dmlYn" class="col-sm-1 col-form-label-sm text-center fs-13 fw-bold">해촉</label> <label for="dmlYn" class="col-sm-1 col-form-label-sm text-center fs-13 fw-bold">해촉</label>
<div class="col-sm-3"> <div class="col-sm-3">
<select class="form-select" id="dmlYn" name="dmlYn"> <select class="form-select" id="dmlYn" name="dmlYn">
@ -304,8 +312,10 @@
<option value="X">X</option> <option value="X">X</option>
</select> </select>
</div> </div>
</div>
<div class="mb-2 row">
<label for="remark" class="col-sm-1 col-form-label-sm text-center fs-13 fw-bold">비고</label> <label for="remark" class="col-sm-1 col-form-label-sm text-center fs-13 fw-bold">비고</label>
<div class="col-sm-7"> <div class="col-sm-11">
<input type="text" class="form-control" id="remark" name="remark"> <input type="text" class="form-control" id="remark" name="remark">
</div> </div>
</div> </div>

View File

@ -1,119 +1,129 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org"> <html lang="ko" xmlns:th="http://www.thymeleaf.org">
<form id="trInfoUpdate" method="post"> <form id="trInfoUpdate" method="post">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<input type="hidden" class="translatorKey" name="translatorKey" th:value="${trInfo.translatorKey}"/> <input type="hidden" class="translatorKey" name="translatorKey" th:value="${trInfo.translatorKey}"/>
<input type="hidden" class="versionNo" name="versionNo" th:value="${trInfo.versionNo}"/> <input type="hidden" class="versionNo" name="versionNo" th:value="${trInfo.versionNo}"/>
<br> <br>
<div class="pl-15"> <div class="pl-15">
<div class="row mb-1"> <div class="row mb-1">
<label for="eOgdp1" class="col-sm-1 col-form-label-sm text-center">관서</label> <label for="eOgdp1" class="col-sm-1 col-form-label-sm text-center">관서</label>
<div class="col-sm-2"> <div class="col-sm-2">
<select class="form-select" id="eOgdp1" name="ogdp1" th:disabled="${accessAuth ne 'ACC003'}"> <select class="form-select" id="eOgdp1" name="ogdp1" th:disabled="${accessAuth ne 'ACC003'}">
<option value="">선택</option> <option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}"> <th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}"> <th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd} == ${trInfo.ogdp1}"></option> <option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd} == ${trInfo.ogdp1}"></option>
</th:block> </th:block>
</th:block> </th:block>
</select> </select>
</div> </div>
<label for="eTrLang" class="col-sm-1 col-form-label-sm text-center">언어</label> <label for="eTrLang" class="col-sm-1 col-form-label-sm text-center">언어</label>
<div class="col-sm-2"> <div class="col-sm-2">
<select class="form-select" id="eTrLang" name="trLang"> <select class="form-select" id="eTrLang" name="trLang">
<option value="">선택</option> <option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('LGG')}"> <th:block th:each="commonCode:${session.commonCode.get('LGG')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd} == ${trInfo.trLang}"></option> <option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd} == ${trInfo.trLang}"></option>
</th:block> </th:block>
</select> </select>
</div> </div>
<label for="eTrCareer" class="col-sm-1 col-form-label-sm text-center">경력</label> <label for="eTrCareer" class="col-sm-1 col-form-label-sm text-center">경력</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control" id="eTrCareer" name="trCareer" th:value="${trInfo.trCareer}"> <input type="text" class="form-control" id="eTrCareer" name="trCareer" th:value="${trInfo.trCareer}">
</div> </div>
</div> </div>
<div class="row mb-1"> <div class="row mb-1">
<label for="eTrEname" class="col-sm-1 col-form-label-sm text-center">성명</label> <label for="eTrEname" class="col-sm-1 col-form-label-sm text-center">성명</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control" id="eTrEname" name="trName" th:value="${trInfo.trName}"> <input type="text" class="form-control" id="eTrEname" name="trName" th:value="${trInfo.trName}">
</div> </div>
<label for="eTrSex" class="col-sm-1 col-form-label-sm text-center">성별</label> <label for="eTrSex" class="col-sm-1 col-form-label-sm text-center">성별</label>
<div class="col-sm-2"> <div class="col-sm-2">
<select class="form-select" id="eTrSex" name="trSex"> <select class="form-select" id="eTrSex" name="trSex">
<option value="">선택</option> <option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('SEX')}"> <th:block th:each="commonCode:${session.commonCode.get('SEX')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd} == ${trInfo.trSex}"></option> <option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd} == ${trInfo.trSex}"></option>
</th:block> </th:block>
</select> </select>
</div> </div>
<label for="eTrPhone" class="col-sm-1 col-form-label-sm text-center">연락처</label> <label for="eTrPhone" class="col-sm-1 col-form-label-sm text-center">연락처</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control" id="eTrPhone" name="trPhone" th:value="${trInfo.trPhone}"> <input type="text" class="form-control" id="eTrPhone" name="trPhone" th:value="${trInfo.trPhone}">
</div> </div>
</div> </div>
<div class="row mb-1"> <div class="row mb-1">
<label for="eTrNny" class="col-sm-1 col-form-label-sm text-center">국적</label> <label for="eTrNny" class="col-sm-1 col-form-label-sm text-center">국적</label>
<div class="col-sm-2"> <div class="col-sm-2">
<select class="form-select" id="eTrNny" name="trNny"> <select class="form-select" id="eTrNny" name="trNny">
<option value="">선택</option> <option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('NNY')}"> <th:block th:each="code:${session.commonCode.get('NNY')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd} == ${trInfo.trNny}"></option> <option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq trInfo.trNny}"></option>
</th:block> </th:block>
</select> </select>
</div> </div>
<label for="eTrAge" class="col-sm-1 col-form-label-sm text-center">나이</label> <label for="naturalization" class="col-sm-1 col-form-label-sm text-center">귀화</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="text" class="form-control" id="eTrAge" name="trAge" th:value="${trInfo.trAge}"> <select class="form-select" id="naturalization" name="naturalization" th:disabled="${trInfo.trNny ne 'NNY001'}">
</div> <option value="">선택</option>
<label for="eTrEdu" class="col-sm-1 col-form-label-sm text-center">학력</label> <option value="O" th:selected="${trInfo.naturalization eq 'O'}">O</option>
<div class="col-sm-2"> <option value="X" th:selected="${trInfo.naturalization eq 'X'}">X</option>
<select class="form-select" id="eTrEdu" name="trEdu"> </select>
<option value="">선택</option> </div>
<th:block th:each="commonCode:${session.commonCode.get('EDU')}"> </div>
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd} == ${trInfo.trEdu}"></option> <div class="row mb-1">
</th:block> <label for="eTrAge" class="col-sm-1 col-form-label-sm text-center">나이</label>
</select> <div class="col-sm-2">
</div> <input type="text" class="form-control" id="eTrAge" name="trAge" th:value="${trInfo.trAge}">
</div> </div>
<div class="row mb-1"> <label for="eTrEdu" class="col-sm-1 col-form-label-sm text-center">학력</label>
<label for="eTrCft" class="col-sm-1 col-form-label-sm text-center">자격증</label> <div class="col-sm-2">
<div class="col-sm-2"> <select class="form-select" id="eTrEdu" name="trEdu">
<input type="text" class="form-control" id="eTrCft" name="trCft" th:value="${trInfo.trCft}"> <option value="">선택</option>
</div> <th:block th:each="commonCode:${session.commonCode.get('EDU')}">
<label for="eTrVisa" class="col-sm-1 col-form-label-sm text-center">비자</label> <option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd} == ${trInfo.trEdu}"></option>
<div class="col-sm-2"> </th:block>
<select class="form-select" id="eTrVisa" name="trVisa"> </select>
<option value="">선택</option> </div>
<th:block th:each="commonCode:${session.commonCode.get('VISA')}"> <label for="eTrCft" class="col-sm-1 col-form-label-sm text-center">자격증</label>
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd} == ${trInfo.trVisa}"></option> <div class="col-sm-2">
</th:block> <input type="text" class="form-control" id="eTrCft" name="trCft" th:value="${trInfo.trCft}">
</select> </div>
</div> </div>
<label for="viewAptDt" class="col-sm-1 col-form-label-sm text-center">위촉일</label> <div class="row mb-1">
<div class="col-sm-2"> <label for="eTrVisa" class="col-sm-1 col-form-label-sm text-center">비자</label>
<input type="text" class="form-control" id="viewAptDt" name="aptDt" th:value="${trInfo.aptDt}" readonly> <div class="col-sm-2">
</div> <select class="form-select" id="eTrVisa" name="trVisa">
</div> <option value="">선택</option>
<div class="mb-2 row"> <th:block th:each="code:${session.commonCode.get('VISA')}">
<label for="eDmlYn" class="col-sm-1 col-form-label-sm text-center">해촉</label> <option th:if="${code.useChk eq 'T' or code.itemCd eq trInfo.trVisa}" th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq trInfo.trVisa}"></option>
<div class="col-sm-2"> </th:block>
<select class="form-select" id="eDmlYn" name="dmlYn"> </select>
<option value="">선택</option> </div>
<option value="O" th:selected="'O' == ${trInfo.dmlYn}">O</option> <label for="viewAptDt" class="col-sm-1 col-form-label-sm text-center">위촉일</label>
<option value="X" th:selected="'X' == ${trInfo.dmlYn}">X</option> <div class="col-sm-2">
</select> <input type="text" class="form-control" id="viewAptDt" name="aptDt" th:value="${trInfo.aptDt}" readonly>
</div> </div>
<label for="eRemark" class="col-sm-1 col-form-label-sm text-center">비고</label> <label for="eDmlYn" class="col-sm-1 col-form-label-sm text-center">해촉</label>
<div class="col-sm-5"> <div class="col-sm-2">
<input type="text" class="form-control" id="eRemark" name="remark" th:text="${trInfo.remark}"> <select class="form-select" id="eDmlYn" name="dmlYn">
</div> <option value="">선택</option>
</div> <option value="O" th:selected="'O' == ${trInfo.dmlYn}">O</option>
</div> <option value="X" th:selected="'X' == ${trInfo.dmlYn}">X</option>
<div class="modal-footer bg-light"> </select>
<button type="button" class="btn btn-secondary" id="trDeleteBtn" th:if="${accessAuth eq 'ACC003'} or ${wrtUserSeq eq userSeq}">해임</button> </div>
<button type="button" class="btn btn-warning" id="updateBtn" th:if="${accessAuth eq 'ACC003'} or ${wrtUserSeq eq userSeq}">수정</button> </div>
</div> <div class="mb-2 row">
</form> <label for="eRemark" class="col-sm-1 col-form-label-sm text-center">비고</label>
<div class="col-sm-8">
<input type="text" class="form-control" id="eRemark" name="remark" th:text="${trInfo.remark}">
</div>
</div>
</div>
<div class="modal-footer bg-light">
<button type="button" class="btn btn-secondary" id="trDeleteBtn" th:if="${accessAuth eq 'ACC003'} or ${wrtUserSeq eq userSeq}">해임</button>
<button type="button" class="btn btn-warning" id="updateBtn" th:if="${accessAuth eq 'ACC003'} or ${wrtUserSeq eq userSeq}">수정</button>
</div>
</form>
</html> </html>