515 lines
17 KiB
JavaScript
515 lines
17 KiB
JavaScript
$(function(){
|
|
$("#dateSelectorDiv").datepicker({
|
|
format: "yyyy-mm-dd",
|
|
language: "ko"
|
|
});
|
|
});
|
|
|
|
|
|
$(document).on('click', '#icaAddBtn', function () {
|
|
getIcaEditModal(null);
|
|
});
|
|
|
|
$(document).on('click', '#icaEditBtn', function () {
|
|
$("#icaViewModal").modal('hide');
|
|
getIcaEditModal(Number($("#icaViewBody").find("[name='icaKey']").val()));
|
|
});
|
|
|
|
|
|
$(document).on('click', '#saveIcaBtn', function (){
|
|
saveInternationalCrimeArrest('N')
|
|
});
|
|
|
|
$(document).on('click', '#saveTempBtn', function (){
|
|
saveInternationalCrimeArrest('Y')
|
|
});
|
|
|
|
$(document).on('click', '.tr', function (){
|
|
getIcaViewModal($(this).data('key'));
|
|
});
|
|
|
|
|
|
$(document).on('change', '#crimeForm', function (){
|
|
$('#crimeFormDiv').next().remove();
|
|
if ($(this).val() != 'CMF001') {
|
|
$('#crimeFormDiv').after('<button type="button" class="col-sm-1 btn btn-sm btn-primary" id="spiAddBtn">+</button>');
|
|
} else {
|
|
$.each($('.dynamic').children("input[name='spiKey']"), function (idx, item){
|
|
let deleteKey = item.value;
|
|
$("#icaEditForm").append('<input type="hidden" name="deleteSpiKeyList" value="' + deleteKey + '">');
|
|
});
|
|
$("#spiDiv").children('.dynamic').remove();
|
|
}
|
|
});
|
|
|
|
$(document).on('click', '#spiAddBtn', function (){
|
|
|
|
let sex = '';
|
|
commonCode.SEX.forEach(function (item){
|
|
sex += '<option value="'+ item.itemCd +'">' + item.itemValue +'</option>';
|
|
});
|
|
|
|
let age = '';
|
|
commonCode.AGE.forEach(function (item){
|
|
age += '<option value="'+ item.itemCd +'">' + item.itemValue +'</option>';
|
|
})
|
|
|
|
let country = '';
|
|
commonCode.NNY.forEach(function (item){
|
|
country += '<option value="'+ item.itemCd +'">' + item.itemValue +'</option>';
|
|
})
|
|
|
|
$("#spiDiv").append(
|
|
'<div class="row dynamic spi-list">'
|
|
+ '<label class="col-sm-1 col-form-label text-center">성별</label>'
|
|
+ '<div class="col-sm-2" id="sexFormDiv">'
|
|
+ '<select class="form-select form-select-sm" name="sex">'
|
|
+ sex
|
|
+ '</select>'
|
|
+ '</div>'
|
|
+ '<label class="col-sm-1 col-form-label text-center">나이</label>'
|
|
+ '<div class="col-sm-2" id="ageFormDiv">'
|
|
+ '<select class="form-select form-select-sm" name="age">'
|
|
+ age
|
|
+ '</select>'
|
|
+ '</div>'
|
|
+ '<label class="col-sm-1 col-form-label text-center">국적</label>'
|
|
+ '<div class="col-sm-2" id="countryFormDiv">'
|
|
+ '<select class="form-select form-select-sm country" name="country">'
|
|
+ country
|
|
+ '<option value="etc">기타</option>'
|
|
+ '</select>'
|
|
+ '</div>'
|
|
+ '<button type="button" class="col-sm-1 btn btn-sm btn-primary" id="spiCancelBtn">-</button>'
|
|
+ '</div>'
|
|
);
|
|
});
|
|
|
|
$(document).on('change', '.country', function (){
|
|
if ($(this).val() == 'etc') {
|
|
$(this).parent().after(
|
|
'<div class="col-auto">'
|
|
+ '<input type="text" class="form-control" name="countryEtc">'
|
|
+ '</div>'
|
|
);
|
|
} else {
|
|
$(this).parent().next().remove();
|
|
}
|
|
});
|
|
|
|
$(document).on('change', '#processResult', function (){
|
|
if ($(this).val() == 'etc') {
|
|
$(this).after(
|
|
'<div class="col-auto">'
|
|
+ '<input type="text" class="form-control" name="processResultEtc">'
|
|
+ '</div>'
|
|
);
|
|
} else {
|
|
$(this).next().remove();
|
|
}
|
|
});
|
|
|
|
$(document).on('click', '.spiCancelBtn', function (){
|
|
let deleteKey = $(this).parent().children("input[name='spiKey']").val();
|
|
$("#icaEditForm").append('<input type="hidden" name="deleteSpiKeyList" value="' + deleteKey + '">');
|
|
$(this).parent().remove();
|
|
});
|
|
|
|
$(document).on('change', '#crimeType', function (){
|
|
$('#smugglingAmountDiv').children().remove();
|
|
$('#crimeNameDiv').children().remove();
|
|
$('#arrestAreaDiv').remove();
|
|
|
|
let smugglingAmount = '';
|
|
commonCode.SG.forEach(function (item){
|
|
smugglingAmount += '<option value="'+ item.itemCd +'">' + item.itemValue +'</option>';
|
|
})
|
|
|
|
if ($(this).val() == 'CTH002') {
|
|
makeArrestAreaDiv('장소');
|
|
$('#smugglingAmountDiv').append(
|
|
'<label class="col-sm-2 col-form-label text-center">밀수입출 품목</label>'
|
|
+ '<div class="col-sm-2">'
|
|
+ '<select class="form-select form-select-sm" name="smuggledGoods" id="smugglingAmount">'
|
|
+ '<option>선택</option>'
|
|
+ smugglingAmount
|
|
+ '<option value="etc">기타</option>'
|
|
+ '</select>'
|
|
+ '</div>'
|
|
+ '<label class="col-sm-2 col-form-label text-center">밀수가액</label>'
|
|
+ '<div class="col-sm-2">'
|
|
+ '<input type="number" min="0" name="smugglingAmount">'
|
|
+ '</div>'
|
|
+ '<label class="col-sm-2 col-form-label text-center">단속 인원(경찰관)</label>'
|
|
+ '<div class="col-sm-2">'
|
|
+ '<input type="number" min="0" name="caseNum">'
|
|
+ '</div>'
|
|
);
|
|
} else {
|
|
$("#crimeNameDiv").append(
|
|
'<label class="col-sm-2 col-form-label text-center">죄명</label>'
|
|
+ '<div class="col-sm-10 input-daterange">'
|
|
+ '<input type="text" class="form-control" name="crimeName">'
|
|
+ '</div>'
|
|
);
|
|
}
|
|
});
|
|
|
|
$(document).on('change', '#violationType', function (){
|
|
$('#spiInfoDiv').remove();
|
|
$('#arrestAreaDiv').remove();
|
|
$('#meansDiv').remove();
|
|
$('.entryVisa').remove();
|
|
$('#violationAmountDiv').remove();
|
|
|
|
if ($(this).val() == 'VLT001') {
|
|
makeSpiInfoDiv('피의자 정보');
|
|
makeArrestAreaDiv('지역');
|
|
makeSeaAreaDiv('밀입국');
|
|
makeMeansDiv('밀입국');
|
|
makePurposeDiv('밀입국');
|
|
makeDestinationDiv('밀입국 출발지(국가)');
|
|
}
|
|
|
|
if ($(this).val() == 'VLT002') {
|
|
makeSpiInfoDiv('피의자 정보');
|
|
makeArrestAreaDiv('지역');
|
|
makeSeaAreaDiv('도외이탈');
|
|
makeMeansDiv('도외이탈');
|
|
makePurposeDiv('도외이탈');
|
|
}
|
|
|
|
if ($(this).val() == 'VLT003') {
|
|
makeSpiInfoDiv('피의자 정보');
|
|
makeArrestAreaDiv('지역');
|
|
makeSeaAreaDiv('밀출국');
|
|
makeMeansDiv('밀출국');
|
|
makePurposeDiv('밀출국');
|
|
makeDestinationDiv('밀출국 행선지(도착예정지)');
|
|
}
|
|
|
|
if ($(this).val() == 'VLT004') {
|
|
makeSpiInfoDiv('피의자 정보');
|
|
makeArrestAreaDiv('지역');
|
|
makeSeaAreaDiv('밀항');
|
|
makeMeansDiv('밀항');
|
|
makePurposeDiv('밀항');
|
|
makeDestinationDiv('밀항 행선지(도착예정지)');
|
|
}
|
|
|
|
if ($(this).val() == 'VLT005') {
|
|
makeSpiInfoDiv('불법체류 및 취업');
|
|
makeEntryVisaDiv();
|
|
}
|
|
|
|
if ($(this).val() == 'VLT301') {
|
|
makeViolationAmountDiv();
|
|
}
|
|
|
|
});
|
|
|
|
$(document).on('change', '#smugglingAmount', function (){
|
|
if ($(this).val() == 'etc') {
|
|
$(this).parent().append(
|
|
'<div class="col-auto">'
|
|
+ '<input type="text" class="form-control" name="smuggledGoodsEtc">'
|
|
+ '</div>'
|
|
);
|
|
} else {
|
|
$(this).next().remove();
|
|
}
|
|
});
|
|
|
|
$(document).on('change', '#means', function (){
|
|
if ($(this).val() == 'etc') {
|
|
$(this).parent().append(
|
|
'<div class="col-auto">'
|
|
+ '<input type="text" class="form-control" name="meansEtc">'
|
|
+ '</div>'
|
|
);
|
|
} else {
|
|
$(this).next().remove();
|
|
}
|
|
});
|
|
|
|
$(document).on('change', '#purpose', function (){
|
|
if ($(this).val() == 'etc') {
|
|
$(this).parent().append(
|
|
'<div class="col-auto">'
|
|
+ '<input type="text" class="form-control" name="purposesEtc">'
|
|
+ '</div>'
|
|
);
|
|
} else {
|
|
$(this).next().remove();
|
|
}
|
|
});
|
|
|
|
$(function(){
|
|
$("#datePickerDiv").datepicker({
|
|
format: "yyyy-mm-dd",
|
|
language: "ko"
|
|
});
|
|
});
|
|
|
|
function makeEntryVisaDiv() {
|
|
$('#spiWrapper').prepend(
|
|
'<label class="col-sm-2 col-form-label text-center entryVisa">입국비자</label>'
|
|
+ '<div class="col-sm-2 entryVisa">'
|
|
+ '<input type="text" class="form-control" name="entryVisa">'
|
|
+ '</div>'
|
|
);
|
|
}
|
|
|
|
function makeSpiInfoDiv(name) {
|
|
$('#spiParentDiv').after(
|
|
'<div class="mb-3 row" id="spiInfoDiv">'
|
|
+ '<label class="col-sm-2 col-form-label text-center">' + name + '</label>'
|
|
+ '<div class="col-sm-10">'
|
|
+ '<div class="row" id="spiWrapper">'
|
|
+ '<label class="col-sm-2 col-form-label text-center">체류 자격</label>'
|
|
+ '<div class="col-sm-2">'
|
|
+ '<input type="text" class="form-control" name="stayQualification">'
|
|
+ '</div>'
|
|
+ '<label class="col-sm-2 col-form-label text-center">체류기간 만료일</label>'
|
|
+ '<div class="col-sm-2 input-daterange" id="stayQualificationDiv">'
|
|
+ '<input type="text" class="form-control" name="stayPeriodExpiredDt" id="stayPeriodExpiredDt" readonly>'
|
|
+ '</div>'
|
|
+ '</div>'
|
|
+ '</div>'
|
|
+ '</div>'
|
|
);
|
|
$("#stayQualificationDiv").datepicker({
|
|
format: "yyyy-mm-dd",
|
|
language: "ko"
|
|
});
|
|
}
|
|
|
|
function makeSeaAreaDiv(name) {
|
|
|
|
let seaArea = '';
|
|
commonCode.SAA.forEach(function (item){
|
|
seaArea += '<option value="'+ item.itemCd +'">' + item.itemValue +'</option>';
|
|
})
|
|
|
|
$('#arrestAreaDiv').append(
|
|
'<label class="col-sm-2 col-form-label text-center">' + name + '시도 해역(해안)</label>'
|
|
+ '<div class="col-sm-3">'
|
|
+ '<select class="form-select form-select-sm" name="seaArea">'
|
|
+ '<option>선택</option>'
|
|
+ seaArea
|
|
+ '</select>'
|
|
+ '</div>'
|
|
);
|
|
}
|
|
|
|
function makeArrestAreaDiv(name) {
|
|
|
|
let arrestArea = '';
|
|
commonCode.SAA.forEach(function (item){
|
|
arrestArea += '<option value="'+ item.itemCd +'">' + item.itemValue +'</option>';
|
|
})
|
|
|
|
$('#spiParentDiv').after(
|
|
'<div class="mb-3 row" id="arrestAreaDiv">'
|
|
+ '<label class="col-sm-2 col-form-label text-center">검거' + name + '</label>'
|
|
+ '<div class="col-sm-2">'
|
|
+ '<input type="text" class="form-control" name="arrestArea">'
|
|
+ '</div>'
|
|
+ '</div>'
|
|
);
|
|
}
|
|
|
|
function makeMeansDiv(name, code) {
|
|
let means = '';
|
|
if (code == 'VLT001') {
|
|
commonCode.MS1.forEach(function (item){
|
|
means += '<option value="'+ item.itemCd +'">' + item.itemValue +'</option>';
|
|
})
|
|
} else {
|
|
commonCode.MS2.forEach(function (item){
|
|
means += '<option value="'+ item.itemCd +'">' + item.itemValue +'</option>';
|
|
})
|
|
}
|
|
|
|
$('#spiParentDiv').after(
|
|
'<div class="mb-3 row" id="meansDiv">'
|
|
+ '<label class="col-sm-2 col-form-label text-center">' + name + ' 수단(방법)</label>'
|
|
+ '<div class="col-sm-2">'
|
|
+ '<select class="form-select form-select-sm" name="means" id="means">'
|
|
+ '<option>선택</option>'
|
|
+ means
|
|
+ '<option value="etc">기타</option>'
|
|
+ '</select>'
|
|
+ '</div>'
|
|
+ '</div>'
|
|
);
|
|
}
|
|
|
|
function makePurposeDiv(name) {
|
|
|
|
let purpose = "";
|
|
commonCode.PPS.forEach(function (item){
|
|
purpose += '<option value="'+ item.itemCd +'">' + item.itemValue +'</option>';
|
|
})
|
|
|
|
$('#meansDiv').append(
|
|
'<label class="col-sm-2 col-form-label text-center">' + name + ' 목적(사유)</label>'
|
|
+ '<div class="col-sm-2">'
|
|
+ '<select class="form-select form-select-sm" name="purpose" id="purpose">'
|
|
+ '<option>선택</option>'
|
|
+ purpose
|
|
+ '<option value="etc">기타</option>'
|
|
+ '</select>'
|
|
+ '</div>'
|
|
);
|
|
}
|
|
|
|
function makeDestinationDiv(name) {
|
|
$('#meansDiv').append(
|
|
'<label class="col-sm-2 col-form-label text-center">' + name + '</label>'
|
|
+ '<div class="col-sm-2">'
|
|
+ '<input type="text" class="form-control" name="destination">'
|
|
+ '</div>'
|
|
);
|
|
}
|
|
|
|
function makeViolationAmountDiv() {
|
|
$('#spiParentDiv').after(
|
|
'<div class="mb-3 row" id="violationAmountDiv">'
|
|
+ '<label class="col-sm-2 col-form-label text-center">표시위반 금액(만원)</label>'
|
|
+ '<div class="col-sm-2">'
|
|
+ '<input type="number" min="0" class="form-control" name="violationAmount">'
|
|
+ '</div>'
|
|
+ '</div>'
|
|
);
|
|
}
|
|
|
|
function getIcaViewModal(icaKey){
|
|
$.ajax({
|
|
url: '/faStatistics/internationalCrimeArrest/internationalCrimeArrestViewModal',
|
|
data: {icaKey: icaKey},
|
|
type: 'GET',
|
|
dataType:"html",
|
|
success: function(html){
|
|
$("#icaViewBody").empty().append(html)
|
|
$("#icaViewModal").modal('show');
|
|
},
|
|
error:function(){
|
|
|
|
}
|
|
});
|
|
}
|
|
|
|
function getIcaEditModal(icaKey){
|
|
$.ajax({
|
|
url: '/faStatistics/internationalCrimeArrest/internationalCrimeArrestEditModal',
|
|
data: {
|
|
icaKey: icaKey
|
|
},
|
|
type: 'GET',
|
|
dataType:"html",
|
|
success: function(html){
|
|
$("#icaViewBody").empty();
|
|
$("#icaEditModalContent").empty().append(html);
|
|
$("#icaEditModal").modal('show');
|
|
$("#crimeAwarenessDtDiv").datepicker({
|
|
format: "yyyy-mm-dd",
|
|
language: "ko"
|
|
});
|
|
$("#caseSentDtDiv").datepicker({
|
|
format: "yyyy-mm-dd",
|
|
language: "ko"
|
|
});
|
|
$("[name='caseOverview']").summernote({
|
|
lang:'ko-KR',
|
|
height: 120,
|
|
disableDragAndDrop: true,
|
|
toolbar: [
|
|
['style', ['style']],
|
|
['font', ['bold', 'underline', 'clear']],
|
|
['color', ['color']],
|
|
['para', ['ul', 'ol', 'paragraph']],
|
|
['table', ['table']]
|
|
]
|
|
});
|
|
},
|
|
error:function(){
|
|
|
|
}
|
|
});
|
|
}
|
|
|
|
function saveInternationalCrimeArrest(contentState){
|
|
if(contentCheck()){
|
|
if(confirm("저장하시겠습니까?")){
|
|
$("#contentStatus").val(contentState);
|
|
contentFade("in");
|
|
const formData = new FormData($("#icaEditForm")[0]);
|
|
|
|
let spiList = [];
|
|
|
|
$(".spi-list").each(function (){
|
|
spiList.push({
|
|
spiKey: $(this).find('input[name="spiKey"]').val() != undefined ? Number($(this).find('input[name="spiKey"]').val()) : null,
|
|
sex: $(this).find('select[name="sex"]').val(),
|
|
age: $(this).find('select[name="age"]').val(),
|
|
country: $(this).find('select[name="country"]').val(),
|
|
stayQualification: $(this).find('input[name="stayQualification"]').val() != undefined ? $(this).find('input[name="stayQualification"]').val() : null,
|
|
stayPeriodExpiredDt: $(this).find('input[name="stayPeriodExpiredDt"]').val() != undefined ? $(this).find('input[name="stayPeriodExpiredDt"]').val() : null,
|
|
countryEtc: $(this).find('input[name="countryEtc"]').val() != undefined ? $(this).find('input[name="countryEtc"]').val() : null
|
|
});
|
|
});
|
|
|
|
for (let i=0; i < spiList.length; i++) {
|
|
if (spiList[i].spiKey != null) {
|
|
formData.append(`suspectPersonInfoList[${i}].spiKey`, spiList[i].spiKey);
|
|
}
|
|
formData.append(`suspectPersonInfoList[${i}].sex`, spiList[i].sex);
|
|
formData.append(`suspectPersonInfoList[${i}].age`, spiList[i].age);
|
|
formData.append(`suspectPersonInfoList[${i}].country`, spiList[i].country);
|
|
if (spiList[i].stayQualification != null) {
|
|
formData.append(`suspectPersonInfoList[${i}].stayQualification`, spiList[i].stayQualification);
|
|
}
|
|
if (spiList[i].stayPeriodExpiredDt != null) {
|
|
formData.append(`suspectPersonInfoList[${i}].stayPeriodExpiredDt`, spiList[i].stayPeriodExpiredDt);
|
|
}
|
|
if (spiList[i].countryEtc != null) {
|
|
formData.append(`suspectPersonInfoList[${i}].countryEtc`, spiList[i].countryEtc);
|
|
}
|
|
}
|
|
|
|
$.ajax({
|
|
type : 'POST',
|
|
data : formData,
|
|
url : "/faStatistics/internationalCrimeArrest/saveInternationalCrimeArrest",
|
|
processData: false,
|
|
contentType: false,
|
|
success : function(result) {
|
|
alert("저장되었습니다.");
|
|
contentFade("out");
|
|
$("#icaEditModal").modal('hide');
|
|
},
|
|
error : function(xhr, status) {
|
|
alert("저장에 실패하였습니다.")
|
|
contentFade("out");
|
|
}
|
|
})
|
|
}
|
|
}
|
|
}
|
|
|
|
function contentCheck(){
|
|
let flag = true;
|
|
if(!$('select[name="organ"]').val()){
|
|
alert("지방청을 선택해주세요.")
|
|
flag = false;
|
|
}
|
|
|
|
return flag;
|
|
}
|
|
|
|
$(document).on('click', '#icaExcelDownBtn', function (){
|
|
const formData = $("#icaSearchForm").serialize();
|
|
location.href = '/faStatistics/internationalCrimeArrest/ExcelDown?'+formData;
|
|
});
|