366 lines
10 KiB
JavaScript
366 lines
10 KiB
JavaScript
|
|
$(function(){
|
|
if(location.search.includes("refDocKey")){
|
|
const params = location.search.split('&');
|
|
$.each(params, function (idx, param){
|
|
if(param.includes("refDocKey")){
|
|
const key = param.slice(param.indexOf("=")+1, param.length);
|
|
getResultViewModal(key);
|
|
}
|
|
})
|
|
}
|
|
$("#dateSelectorDiv").datepicker({
|
|
format: "yyyy-mm-dd",
|
|
language: "ko",
|
|
autoclose: true
|
|
});
|
|
})
|
|
|
|
$(document).on('click', '#resultTab', function (){
|
|
location.href = "/affairResult/resultMgt";
|
|
})
|
|
$(document).on('click', '#stayTab', function (){
|
|
location.href = "/affairResult/stayPage";
|
|
})
|
|
$(document).on('click', '#commitTab', function (){
|
|
location.href = "/affairResult/commitPage";
|
|
})
|
|
|
|
$(document).on('click', '#addResultBtn', function (){
|
|
getResultEditModal(null)
|
|
})
|
|
$(document).on('click', '#editResultBtn', function (){
|
|
$("#resultViewModal").modal('hide');
|
|
getResultEditModal(Number($("#resultViewBody").find("[name='resultKey']").val()));
|
|
})
|
|
|
|
$(document).on('click', '#resultAddBtn', function (){
|
|
$("#resultDiv").append("<input type='text' class='form-control' name='resultInfos'>")
|
|
})
|
|
|
|
$(document).on('change', '#clearTitle', function (){
|
|
$("#resultTitle").val(this.value)
|
|
})
|
|
$(document).on('change', '#workStartDt', function (){
|
|
$(".workStartDtCopy").val(this.value)
|
|
})
|
|
$(document).on('change', '#workEndDt', function (){
|
|
$(".workEndDtCopy").val(this.value)
|
|
})
|
|
$(document).on('change', '#usePrice', function (){
|
|
$("#usePriceCopy").val(this.value)
|
|
})
|
|
|
|
$(document).on('click', '#affairModalBtn', function (){
|
|
const workStartDt = $("#workStartDt").val()
|
|
const workEndDt = $("#workEndDt").val()
|
|
if(!workStartDt||!workEndDt){
|
|
alert("청산보고서의 사업기간을 입력해주세요.");
|
|
}else{
|
|
$.ajax({
|
|
url: '/affairResult/affairListModal',
|
|
data: {
|
|
startDate: workStartDt,
|
|
endDate: workEndDt,
|
|
affairCategory:"CAT215",
|
|
// affairStatus:"DST006"
|
|
},
|
|
type: 'GET',
|
|
dataType:"html",
|
|
success: function(html){
|
|
$("#affairListModalContent").empty().append(html)
|
|
$("#affairListModal").modal('show');
|
|
},
|
|
error:function(e){
|
|
ajaxErrorAction(e);
|
|
}
|
|
});
|
|
}
|
|
})
|
|
$(document).on('click', '#getAffairBtn', function (){
|
|
let affairListTbody = "";
|
|
$.each($(".rowChkBox:checked"), function (idx, chkBox){
|
|
const affairTr = $(chkBox).parents(".affairTr")
|
|
affairListTbody += "<tr>";
|
|
affairListTbody += "<input type='hidden' name='affairList["+idx+"].affairKey' value='"+chkBox.value+"'>";
|
|
affairListTbody += "<td>"+affairTr.find(".wrtDt")[0].innerText+"</td>";
|
|
affairListTbody += "<td>"+affairTr.find(".title")[0].innerText+"</td>";
|
|
if(affairTr.find(".affairRate").length>0){
|
|
affairListTbody += "<td>"+(affairTr.find(".affairRate")[0].innerText+(affairTr.find(".organUp")[0].innerText==="O"?"(상보)":""))+"</td>";
|
|
}else{
|
|
affairListTbody += "<td></td>";
|
|
}
|
|
affairListTbody += "</tr>";
|
|
})
|
|
$("#affairListTbody").empty().append(affairListTbody);
|
|
$("#affairListModal").modal("hide");
|
|
})
|
|
|
|
$(document).on('click', '.rowDeleteBtn', function (){
|
|
const isClearInfo = $(this).parents("#clearInfoRow").length !== 0;
|
|
const infoSeq = $(this).parents(".infoRow").find(".infoSeq").val();
|
|
$(this).parents(".infoRow").remove();
|
|
if(isClearInfo){
|
|
setInfoSeq($("#clearInfoRow"), infoSeq);
|
|
}else{
|
|
setInfoSeq($("#resultInfoRow"), infoSeq);
|
|
}
|
|
})
|
|
|
|
$(document).on('click', '#clearInfoAddBtn', function (){
|
|
const infoRow = $("#clearInfoRow");
|
|
$.ajax({
|
|
url: '/affairResult/getClearInfoRow',
|
|
data: {infoSeq: $(".clearInfoSeq").length},
|
|
type: 'GET',
|
|
dataType:"html",
|
|
success: function(html){
|
|
infoRow.append(html);
|
|
},
|
|
error:function(e){
|
|
ajaxErrorAction(e);
|
|
}
|
|
});
|
|
})
|
|
$(document).on('click', '#resultInfoAddBtn', function (){
|
|
const infoRow = $("#resultInfoRow");
|
|
const infoSeq = $(".resultInfoSeq").length;
|
|
$.ajax({
|
|
url: '/affairResult/getResultInfoRow',
|
|
data: {infoSeq: infoSeq},
|
|
type: 'GET',
|
|
dataType:"html",
|
|
success: function(html){
|
|
infoRow.append(html);
|
|
/*$("#contactInfo"+infoSeq).summernote({
|
|
lang:'ko-KR',
|
|
height: 60,
|
|
disableDragAndDrop: true,
|
|
toolbar: [
|
|
['style', ['style']],
|
|
['font', ['bold', 'underline', 'clear']],
|
|
['color', ['color']],
|
|
['para', ['ul', 'ol', 'paragraph']],
|
|
['table', ['table']]
|
|
]
|
|
});*/
|
|
},
|
|
error:function(e){
|
|
ajaxErrorAction(e);
|
|
}
|
|
});
|
|
})
|
|
|
|
$(document).on('click', '#saveResultBtn', function (){
|
|
saveResult('DST002')
|
|
})
|
|
|
|
$(document).on('click', '#saveTempBtn', function (){
|
|
saveResult('DST001')
|
|
})
|
|
|
|
$(document).on('click', '.resultTr', function (){
|
|
const chkBox = $(this).find(".rowChkBox");
|
|
if(chkBox.length>0){
|
|
$(".trChkBox").prop("checked", false);
|
|
chkBox[0].checked = !chkBox[0].checked;
|
|
}
|
|
getResultViewModal(Number($(this).find(".resultKey").val()));
|
|
})
|
|
|
|
$(document).on('click', '.apprvBtn', function (){
|
|
$("#viewModalApprvValue").val($(this).attr("data-resultstate"));
|
|
if(confirm($(this).val()+"하시겠습니까?")){
|
|
const formData = new FormData($("#apprvForm")[0]);
|
|
contentFade("in")
|
|
$.ajax({
|
|
type : 'POST',
|
|
data : formData,
|
|
url : "/affairResult/resultStateChange",
|
|
processData: false,
|
|
contentType: false,
|
|
beforeSend: function (xhr){
|
|
xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val());
|
|
},
|
|
success : function(result) {
|
|
alert("저장되었습니다")
|
|
getResultViewModal(result);
|
|
contentFade("out");
|
|
},
|
|
error : function(xhr, status) {
|
|
alert("저장에 실패하였습니다.");
|
|
contentFade("out");
|
|
}
|
|
})
|
|
}
|
|
})
|
|
|
|
$(document).on('click', '#printBtn', function (){
|
|
$.ajax({
|
|
url: '/affairResult/resultBoardJson',
|
|
type: 'GET',
|
|
data: {resultKey: $(this).attr('data-resultkey')},
|
|
dataType:"json",
|
|
success: function(data){
|
|
var url = $("#printUrl").attr("data-printurl")+"/resultBoard.jsp";
|
|
var title = "청산 보고서 인쇄";
|
|
var status = "width=900px,height=800px,scrollbars=yes";
|
|
window.open("", title, status);
|
|
const form = $("#printForm")[0];
|
|
form.target = title;
|
|
form.action = url;
|
|
form.result.value = JSON.stringify(data);
|
|
form.method = "post";
|
|
form.submit();
|
|
},
|
|
error:function(e){
|
|
ajaxErrorAction(e);
|
|
}
|
|
});
|
|
})
|
|
|
|
function getResultViewModal(resultKey){
|
|
$.ajax({
|
|
url: '/affairResult/resultViewModal',
|
|
data: {resultKey: resultKey},
|
|
type: 'GET',
|
|
dataType:"html",
|
|
success: function(html){
|
|
$("#resultViewBody").empty().append(html)
|
|
$("#resultViewModal").modal('show');
|
|
},
|
|
error:function(e){
|
|
ajaxErrorAction(e);
|
|
}
|
|
});
|
|
}
|
|
|
|
function getResultEditModal(resultKey){
|
|
$.ajax({
|
|
url: '/affairResult/resultEditModal',
|
|
data: {resultKey: resultKey},
|
|
type: 'GET',
|
|
dataType:"html",
|
|
success: function(html){
|
|
$("#resultEditModalContent").empty().append(html)
|
|
$("#resultEditModal").modal('show');
|
|
$("#useDateSelectorDiv, #workDateSelectorDiv").datepicker({
|
|
format: "yyyy-mm-dd",
|
|
language: "ko",
|
|
autoclose: true
|
|
});
|
|
/*$(".contactInfo").summernote({
|
|
lang:'ko-KR',
|
|
height: 60,
|
|
disableDragAndDrop: true,
|
|
toolbar: [
|
|
['style', ['style']],
|
|
['font', ['bold', 'underline', 'clear']],
|
|
['color', ['color']],
|
|
['para', ['ul', 'ol', 'paragraph']],
|
|
['table', ['table']]
|
|
]
|
|
});*/
|
|
setUploadDiv();
|
|
},
|
|
error:function(e){
|
|
ajaxErrorAction(e);
|
|
}
|
|
});
|
|
}
|
|
function saveResult(resultState){
|
|
if(resultState === "DST001" || contentCheck()){
|
|
if(confirm("저장하시겠습니까?")){
|
|
$("#resultState").val(resultState);
|
|
contentFade("in");
|
|
const formData = new FormData($("#resultEditForm")[0]);
|
|
for(const file of files) {
|
|
if(!file.isDelete)
|
|
formData.append('uploadFiles', file, file.name);
|
|
}
|
|
$(".text-decoration-line-through").each(function (idx, el){
|
|
formData.append('fileSeq', $(el).attr("data-fileseq"));
|
|
})
|
|
$.ajax({
|
|
type : 'POST',
|
|
data : formData,
|
|
url : "/affairResult/saveResult",
|
|
processData: false,
|
|
contentType: false,
|
|
success : function(result) {
|
|
alert("저장되었습니다.");
|
|
contentFade("out");
|
|
$("#resultEditModal").modal('hide');
|
|
getResultViewModal(result);
|
|
},
|
|
error : function(xhr, status) {
|
|
alert("저장에 실패하였습니다.")
|
|
contentFade("out");
|
|
}
|
|
})
|
|
}
|
|
}
|
|
}
|
|
|
|
function setInfoSeq(target, infoSeq){
|
|
$.each(target.find("div.infoSeq"), function (idx, child) {
|
|
let childInfoSeq = Number(child.innerText);
|
|
if(childInfoSeq-->Number(infoSeq)){
|
|
const infoRow = $(child).parent(".infoRow")
|
|
child.innerText = childInfoSeq;
|
|
infoRow[0].id = "row"+idx;
|
|
$.each(infoRow.find("input"), function (idx2, input){
|
|
input.name = input.name.replace("["+childInfoSeq+"]", "["+idx+"]");
|
|
if(input.name.indexOf("infoSeq")>0){
|
|
input.value -= input.value;
|
|
}
|
|
})
|
|
$.each(infoRow.find("select"), function (idx2, select){
|
|
select.name = select.name.replace("["+childInfoSeq+"]", "["+idx+"]");
|
|
})
|
|
$.each(infoRow.find("textarea"), function (idx2, textarea){
|
|
if(textarea.id !== ''){
|
|
textarea.id = "contactInfo"+idx;
|
|
}
|
|
if(textarea.name !== ''){
|
|
textarea.name = textarea.name.replace("["+childInfoSeq+"]", "["+idx+"]");
|
|
}
|
|
})
|
|
}
|
|
})
|
|
}
|
|
|
|
function contentCheck(){
|
|
let flag = true;
|
|
if(!$("#clearTitle").val()){
|
|
alert("청산보고서 제목을 입력해주세요.")
|
|
flag = false;
|
|
}
|
|
if(!$("#workStartDt").val()){
|
|
alert("사업기간 시작일을 입력해주세요.")
|
|
flag = false;
|
|
}
|
|
if(!$("#workEndDt").val()){
|
|
alert("사업기간 종료일을 입력해주세요.")
|
|
flag = false;
|
|
}
|
|
if(!$("#planPrice").val()){
|
|
alert("계획금액을 입력해주세요.")
|
|
flag = false;
|
|
}
|
|
if(!$("#usePrice").val()){
|
|
alert("집행액을 입력해주세요.")
|
|
flag = false;
|
|
}
|
|
if($(".clearInfoSeq").length<=0){
|
|
alert("세부 집행내역을 입력해주세요.")
|
|
flag = false;
|
|
}
|
|
if($(".resultInfoSeq").length<=0){
|
|
alert("활동내용을 입력해주세요.")
|
|
flag = false;
|
|
}
|
|
flag = fileCheck(flag, files);
|
|
return flag;
|
|
}
|