let selectedList = []; let fileList = []; $(function (){ const searchFormBoat = $("#searchFormBoat") if(searchFormBoat.val()!==""){ searchFormBoat.find("."+$("#searchFormPolice").val()).show(); searchFormBoat.removeAttr("disabled"); } $("#dateSelectorDiv").datepicker({ format: "yyyy-mm-dd", language: "ko", autoclose: true }); }) $(document).on('change', '#searchFormPolice', function (){ const searchFormBoat = $("#searchFormBoat") searchFormBoat.find("option").hide() if(this.value !== ""){ searchFormBoat.removeAttr("disabled") searchFormBoat.find("."+this.value).show(); }else{ searchFormBoat.attr("disabled", "disabled") } }) $(document).on('click', "#violationInput", function (){ $("#violationSelectDiv").show(); }) $(document).on('mouseleave', "#violationSelectDiv", function (){ $("#violationSelectDiv").hide(); }) $(document).on('click', '#getFishingBoatEditModalBtn', function (){ getFishingBoatEditModal(null); }) $(document).on('click', '.crackdownStatusTr', function (){ getFishingBoatViewModal($(this).find(".cdsKey").val()) }) $(document).on('click', '#editFishingBoatBtn', function (){ getFishingBoatEditModal($("#fishingBoatViewModalContent").find(".cdsKey").val()); $("#fishingBoatViewModal").modal('hide'); }) $(document).on('change', '#caseNum', function (){ $.ajax({ url: '/faStatistics/checkCaseNum', type: 'GET', data: {caseNum: $("#caseNum").val()}, dataType:"json", success: function(data){ if(data===1){ alert("일치하는 사건번호가 등록되어 있습니다."); $("#caseNum").val(""); } }, error:function(e){ ajaxErrorAction(e); } }); }) $(document).on('click', '#caseNumBtn', function (){ searchModalSubmit(1); $("#crackdownSubModal").modal('show'); }) $(document).on('click', '.crackdownTr', function (){ $(".crackdownTr").prop("checked", false); const chkbox = $(this).find('.crackdownChkbox')[0] chkbox.checked = !chkbox.checked; }) $(document).on('click', '#getCrackdownBtn', function (){ getFishingBoatEditModal($(".crackdownChkbox:checked").parents(".crackdownTr").attr("data-key")); $("#crackdownSubModal").modal('hide'); }) $(document).on('change', '#crackdownPolice', function (){ getCrackdownBoatOption(this.value); }) $(document).on('change', '#violationSelector', function (){ if(this.selectedOptions[0].value !== ""){ if($(".violationCd[value='"+this.selectedOptions[0].value+"']").length===0){ $("#violationDiv").append( '
\n' + '
\n' + ' \n' + ' \n' + ' \n' + '
\n' + '
' ) } } switch (this.selectedOptions[0].value) { case "VT011": // 어획량 축소 기재 childInputStateChange(2, $("#catchDiv").find("input")) break; case "VT028": // 특수공무집행방해 childInputStateChange(2, $("#damageDiv").find("input, textarea")) break; } }) $(document).on('click', '.violationRemoveBtn', function (){ const parentDiv = $(this).parents(".violation") switch (parentDiv.find(".violationCd").val()){ case "VT011": // 어획량 축소 기재 childInputStateChange(1, $("#catchDiv").find("input")) break; case "VT028": // 특수공무집행방해 childInputStateChange(1, $("#damageDiv").find("input, textarea")) break; } parentDiv.remove(); }) $(document).on('change', '.timeInputer', function (){ var timeFormat = /^([01][0-9]|2[0-3]):([0-5][0-9])$/; // 시간형식 체크 정규화 hh:mm if(!timeFormat.test(this.value)){ alert("시간 입력 형식에 맞지 않습니다.(00:00~23:59)") this.value = ''; } }) $(document).on('click', '.versionInfoTr', function (){ $(".versionInfoChkbox").prop("checked", false); $(this).find(".versionInfoChkbox")[0].checked = true $.ajax({ url: '/faStatistics/fishingBoatVersionInfo', data: { fbKey: $(this).find(".fbKey").val(), versionNo: $(this).find(".versionNo").val() }, type: 'GET', dataType:"html", success: function(html){ $("#fishingBoardVersionInfoDiv").empty().append(html); }, error:function(e){ ajaxErrorAction(e); } }); }) $(document).on('change', '.boatNameKr', function (){ $(".boatNameKr").val(this.value); }) $(document).on('change', '.oxSelector', function (){ childInputStateChange(Number(this.value), $(this).parent().find("input,select").slice(1)); }) $(document).on('change', '#directHandoverSelector', function (){ childInputStateChange(Number(this.value), $("#directHandoverDiv").find("input")) }) $(document).on('change', '#offenseSelector', function (){ childInputStateChange(Number(this.value), $("#offenseIllegalWasteQuantity")) childInputStateChange(Number(this.value), $("#offenseQuantity")) childInputStateChange(Number(this.value), $("#offenseAmount")) }) $(document).on('change', '#equalCaptain', function (){ if(this.checked){ $.each($("#captainDiv :input"), function (idx, input){ $("#shipOwnerDiv").find("#"+input.id+"2").val(input.value) }) }else{ $("#shipOwnerDiv :input").val(""); } }) $(document).on('change', '#captainDiv :input', function (){ if($("#equalCaptain").prop("checked")){ $("#shipOwnerDiv").find("#"+this.id+"2").val(this.value) } }) $(document).on('click', '#sailorAddBtn', function (){ $("#sailorRestrictionHome").append( '
\n' + '
\n' + ' \n' + ' \n' + ' \n' + ' \n' + '
\n' + '
' ) }) $(document).on('click', '.sailorRemoveBtn', function (){ $(this).parents(".sailorRestriction").remove(); }) $(document).on('click', '.saveEditInfoBtn', function (){ saveFishingBoatInfo($(this).attr("data-status")) }) $(document).on('change', '#napoDate, #napoTime', function (){ $("#napoDt").val($("#napoDate").val()+" "+$("#napoTime").val()); calculationReleaseToNapo($('#fishingBoatEditModalContent')) }) $(document).on('change', '#releaseDate, #releaseTime', function (){ $("#releaseDt").val($("#releaseDate").val()+" "+$("#releaseTime").val()); calculationReleaseToNapo($('#fishingBoatEditModalContent')) }) $(document).on('change', '#paymentPaymentDate, #paymentPaymentTime', function (){ $("#paymentPaymentDt").val($("#paymentPaymentDate").val()+" "+$("#paymentPaymentTime").val()); }) $(document).on('change', '.pressurizedTimeTaken', function (){ $("#pressurizedTimeTaken").val($("#pressurizedTimeTakenDate").val()+"일 "+$("#pressurizedTimeTakenTime").val()) }) $(document).on('change', '.warrantReqTake', function (){ $("#warrantReqTake").val($("#warrantReqTakeDate").val()+"일 "+$("#warrantReqTakeTime").val()) }) $(document).on('click', '#captainPhoto', function (){ const fileDownloadDiv = $("#fileDownloadDiv")[0] if(fileDownloadDiv.className==="d-none"){ fileDownloadDiv.className=""; }else{ fileDownloadDiv.className="d-none" } }) $(document).on('click', '.fileDownLink', function (){ const target = $(this) let url = "/file/fileDownload?" url += "board="+target.attr("data-board"); url += "&parentKey="+target.attr("data-parentkey"); url += "&fileSeq="+target.attr("data-fileseq"); window.open(encodeURI(url)); }) function getFishingBoatEditModal(cdsKey){ $.ajax({ url: '/faStatistics/fishingBoatEditModal', data: {cdsKey: cdsKey}, type: 'GET', dataType:"html", success: function(html){ const contentDiv = $("#fishingBoatEditModalContent"); contentDiv.empty().append(html) $(".dateSelector").datepicker({ format: "yyyy-mm-dd", language: "ko", autoclose: true }); const crackdownPolice = $("#crackdownPolice").val() if(crackdownPolice){ getCrackdownBoatOption(crackdownPolice) } $(".sailorInfo").attr("disabled", "disabled") if($("#captainStatus").val()==="DST001"){ $("#captainDiv").find("input").removeAttr("disabled") $("#captainRestriction").removeAttr("disabled") } if($("#shipOwnerStatus").val()==="DST001"){ $("#shipOwnerDiv").find("input").removeAttr("disabled") } if($("#navigatingOfficerStatus").val()==="DST001"){ $("#navigatingOfficerRestriction").removeAttr("disabled") } if($("#chiefEngineerStatus").val()==="DST001"){ $("#chiefEngineerRestriction").removeAttr("disabled") } $.each($(".sailorRestriction"), function (idx, div){ if($(div).find(".sailorStatus").val()==="DST001"){ $(div).find("input,select").removeAttr("disabled"); } }) setUploadDiv(); calculationReleaseToNapo(contentDiv); $("#fishingBoatEditModal").modal('show'); }, error:function(e){ ajaxErrorAction(e); } }); } function getFishingBoatViewModal(cdsKey){ $.ajax({ url: '/faStatistics/fishingBoatViewModal', data: {cdsKey: cdsKey}, type: 'GET', dataType:"html", success: function(html){ const contentDiv = $("#fishingBoatViewModalContent"); contentDiv.empty().append(html) const crackdownPolice = $("#crackdownPolice").val() if(crackdownPolice){ getCrackdownBoatOption(crackdownPolice) } calculationReleaseToNapo(contentDiv) $("#fishingBoatViewModal").modal('show'); }, error:function(e){ ajaxErrorAction(e); } }); } function getCrackdownBoatOption(categoryCd){ $.ajax({ url: '/selectBoxOptions', data: {categoryCd: categoryCd, selectedCd: $("#crackdownBoat").attr("data-boatcode")}, type: 'GET', dataType:"html", success: function(html){ const crackdownBoat = $("#crackdownBoat"); crackdownBoat.empty().append(html); if(!$("#cdsKey").val()){ crackdownBoat.removeAttr("disabled"); } }, error:function(e){ ajaxErrorAction(e); } }); } function childInputStateChange(selectorValue, inputs){ switch (selectorValue){ case 1: inputs.val('').attr('disabled', 'disabled') break; case 2: inputs.removeAttr('disabled') break; } } function saveFishingBoatInfo(status){ if(confirm("저장하시겠습니까?")){ $(".status").val(status) contentFade("in"); const formData = new FormData($("#fishingBoatEditForm")[0]); for(const file of files) { if(!file.isDelete) formData.append('uploadFiles', file, file.name); } $.each($(".violationCd"), function (idx, input){ formData.append('violationList['+idx+'].violation', $(input).val()); }); let sailorCnt=0; // 선장 정보 입력 const sailorNameKr = $("#sailorNameKr").val(); if(sailorNameKr){ let sailorKey = $("#captainSailorKey").val(); if(sailorKey!==undefined) { formData.append('sailorList[' + sailorCnt + '].sailorKey', sailorKey); } formData.append('sailorList['+sailorCnt+'].sailorNameKr', sailorNameKr); formData.append('sailorList['+sailorCnt+'].sailorNameCn', $("#sailorNameCn").val()); formData.append('sailorList['+sailorCnt+'].sailorNamePinyin', $("#sailorNamePinyin").val()); formData.append('sailorList['+sailorCnt+'].birthdate', $("#birthdate").val()); formData.append('sailorList['+sailorCnt+'].sailorContact', $("#sailorContact").val()); formData.append('sailorList['+sailorCnt+'].residence', $("#residence").val()); formData.append('sailorList['+sailorCnt+'].arrestHistory', $("#arrestHistory").val()); formData.append('sailorList['+sailorCnt+'].note', $("#note").val()); formData.append('sailorList['+sailorCnt+'].isRestriction', $("#captainRestriction").val()); formData.append('sailorList['+sailorCnt+'].position', "POS001"); //선장 사진 파일 붙임 필요. sailorCnt++; } // 선주 정보 입력 const sailorNameKr2 = $("#sailorNameKr2").val(); if(sailorNameKr) { let sailorKey = $("#ownerSailorKey").val(); if(sailorKey!==undefined) { formData.append('sailorList[' + sailorCnt + '].sailorKey', sailorKey); } formData.append('sailorList[' + sailorCnt + '].sailorNameKr', sailorNameKr2); formData.append('sailorList[' + sailorCnt + '].sailorNameCn', $("#sailorNameCn2").val()); formData.append('sailorList[' + sailorCnt + '].sailorNamePinyin', $("#sailorNamePinyin2").val()); formData.append('sailorList[' + sailorCnt + '].birthdate', $("#birthdate2").val()); formData.append('sailorList[' + sailorCnt + '].sailorContact', $("#sailorContact2").val()); formData.append('sailorList[' + sailorCnt + '].residence', $("#residence2").val()); formData.append('sailorList[' + sailorCnt + '].note', $("#note2").val()); formData.append('sailorList[' + sailorCnt + '].position', "POS004"); sailorCnt++; } const navigatingOfficerRestriction = $("#navigatingOfficerRestriction").val() if(navigatingOfficerRestriction){ let sailorKey = $("#navigatingOfficerKey").val(); if(sailorKey!==undefined) { formData.append('sailorList[' + sailorCnt + '].sailorKey', sailorKey); } formData.append('sailorList['+sailorCnt+'].isRestriction', navigatingOfficerRestriction); formData.append('sailorList['+sailorCnt+'].position', "POS002"); sailorCnt++; } const chiefEngineerRestriction = $("#chiefEngineerRestriction").val(); if(chiefEngineerRestriction){ let sailorKey = $("#chiefEngineerKey").val(); if(sailorKey!==undefined) { formData.append('sailorList[' + sailorCnt + '].sailorKey', sailorKey); } formData.append('sailorList['+sailorCnt+'].isRestriction', chiefEngineerRestriction); formData.append('sailorList['+sailorCnt+'].position', "POS003"); sailorCnt++; } $.each($(".sailorRestriction"), function (idx, div){ const position = $(div).find(".normalSailorPosition").val(); if(position===""){ alert("선원의 직책이 선택되지 않았습니다.") return false } let sailorKey = $(div).find(".sailorKey").val(); if(sailorKey!==undefined){ formData.append('sailorList['+(idx+sailorCnt)+'].sailorKey', sailorKey); } formData.append('sailorList['+(idx+sailorCnt)+'].isRestriction', $(div).find(".normalSailorRestriction").val()); formData.append('sailorList['+(idx+sailorCnt)+'].sailorNameKr', $(div).find(".normalSailorNm").val()); formData.append('sailorList['+(idx+sailorCnt)+'].position', position); }); $.ajax({ type : 'POST', data : formData, url : "/faStatistics/saveFishingBoat", processData: false, contentType: false, success : function() { alert("저장되었습니다."); contentFade("out"); location.reload(); }, error : function(xhr, status) { alert("저장에 실패하였습니다."); contentFade("out"); } }) } } function calculationReleaseToNapo(form){ let napoDt = form.find("#napoDt").val(); let releaseDt = form.find("#releaseDt").val(); if(napoDt.length>15&&releaseDt.length>15){ releaseDt = new Date(releaseDt); napoDt = new Date(napoDt); form.find("#releaseToNapo").val(Math.ceil((releaseDt.getTime()-napoDt.getTime())/(1000*60*60*24))+"일"); } }