let selectedList = []; let fileList = []; $(function (){ const searchFormBoat = $("#searchFormBoat") const searchFormPolice = $("#searchFormPolice") if(searchFormPolice.val()!==""){ searchFormBoat.find("."+searchFormPolice.val()).show(); searchFormBoat.removeAttr("disabled"); } $("#dateSelectorDiv").datepicker({ format: "yyyy-mm-dd", language: "ko", autoclose: true }); setViolationInput(); }) $(document).on('change', '#year', function (){ $("#searchBtn").click(); }) $(document).on('click', '#searchFormBtn', function (){ const btn = $(this) if(btn.attr("data-state")==="hide"){ $(".subSearchParam").show(); btn.attr("data-state", "show"); btn.empty().append("조건
숨기기"); }else{ $(".subSearchParam").hide(); btn.attr("data-state", "hide"); btn.empty().append("조건
펼치기"); } }) $(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('change', '.violationParams', function (){ setViolationInput(); }) $(document).on('click', '#getFishingBoatEditModalBtn', function (){ getFishingBoatEditModal(null); }) $(document).on('click', '.crackdownStatusTr', function (){ getFishingBoatViewModal($(this).attr("data-cdskey"), $(this).attr("data-modaltype")) }) $(document).on('click', '#editFishingBoatBtn', function (){ getFishingBoatEditModal($("#fishingBoatViewModalContent").find(".cdsKey").val()); $("#fishingBoatViewModal").modal('hide'); }) $(document).on('click', '#deleteFishingBoatBtn', function (){ if(confirm("삭제하시겠습니까?" + "\n되돌릴 수 없습니다." + "\n연관된 단속현황, 처리현황, 선원정보가 같이 지워집니다.")){ contentFade("in"); $.ajax({ type : 'POST', data : JSON.stringify({fbKey: $("#fishingBoatViewModalContent").find(".fbKey").val()}), url : "/faStatistics/deleteFishingBoat", contentType: 'application/json', beforeSend: function (xhr){ xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); }, success : function(result) { alert("삭제되었습니다."); let searchParam = location.search; if(searchParam.includes("refDocKey")){ searchParam = searchParam.substring(0, searchParam.indexOf("&")) } location.href = location.pathname+searchParam; }, error : function(xhr, status) { alert("삭제를 실패하였습니다.") contentFade("out"); } }) } }) $(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('click', '.versionInfoTr', function (){ $(".versionInfoChkbox").prop("checked", false); $(this).find(".versionInfoChkbox")[0].checked = true $.ajax({ url: '/faStatistics/crackdownStatusVersionInfo', data: { cdsKey: $(this).find(".cdsKey").val(), versionNo: $(this).find(".versionNo").val() }, type: 'GET', dataType:"html", success: function(html){ $("#versionInfoDiv").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" } }) 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, modalType){ $.ajax({ url: '/faStatistics/fishingBoatViewModal', data: {cdsKey: cdsKey, modalType: modalType}, 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("저장하시겠습니까?")){ if(valueCheck(status)){ $(".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 valueCheck(status){ if(status === "DST007"){ if(!$("#napoDt").val()){ alert("나포일시를 입력해주세요") return false; } } return true; } function calculationReleaseToNapo(form){ let napoDt = form.find("#napoDt").val(); let releaseDt = form.find("#releaseDt").val(); if(napoDt !== undefined && releaseDt !== undefined){ 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))+"일"); } } } function setViolationInput(){ let violationInputText = ""; $.each($(".violationParams:checked"), function (idx, chkBox){ violationInputText += $("[for='"+chkBox.id+"']")[0].innerText+", "; }) if(violationInputText.length>30){ violationInputText = violationInputText.substr(0, 30)+"..."; }else{ violationInputText = violationInputText.slice(0, -2) } $("#violationInput").val(violationInputText); }