1. 발송반송

- 계고장 발송 대상 수정.
  - 계고장 발송 현황 수정.

2. 주석 수정.
main
jjh 9 months ago
parent 4fc4bb824e
commit 2f6941338a

@ -244,7 +244,7 @@ public class Sndb01Controller extends ApplicationController {
.addObject("infoPrefix", "wrngTrgt") // prefix .addObject("infoPrefix", "wrngTrgt") // prefix
.addObject("callPurpose", req.getCallPurpose()) // 호출 용도 .addObject("callPurpose", req.getCallPurpose()) // 호출 용도
.addObject("mainQuery", toJson(req)) // 검색 조건 .addObject("mainQuery", toJson(req)) // 검색 조건
.addObject("wrngTrgtList", toJson(mav.getModel().get("wrngTrgt"))) // .addObject("wrngTrgtList", toJson(mav.getModel().get("wrngTrgtList"))) // 자료
; ;
} }
@ -369,18 +369,16 @@ public class Sndb01Controller extends ApplicationController {
*/ */
public ModelAndView getWarningSendingDetailInfo(SndbQuery req) { public ModelAndView getWarningSendingDetailInfo(SndbQuery req) {
// //
List<DataObject> list = sndngDtlService.getSndngDtlList(req); ModelAndView mav = getWarningSendingDetailList(req);
boolean json = jsonResponse(); mav.setViewName("fims/sndb/sndb01040-info");
ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/sndb/sndb01040-info");
return mav return mav
.addObject("pageName", "sndb01040") .addObject("pageName", "sndb01040") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("infoPrefix", "wrngSndng") // prefix .addObject("infoPrefix", "wrngSndngDtl") // prefix
.addObject("callPurpose", req.getCallPurpose()) // 호출 용도 .addObject("callPurpose", req.getCallPurpose()) // 호출 용도
.addObject("mainQuery", json ? req : toJson(req)) // Query .addObject("mainQuery", toJson(req)) // 검색 조건
.addObject("wrngSndngDtl", json ? list : toJson(list)) // 계고장 발송 대상 정보 .addObject("wrngSndngDtlList", toJson(mav.getModel().get("wrngSndngDtlList"))) // 자료
; ;
} }

@ -394,7 +394,8 @@
<select id="selectWrngTrgtList" parameterType="map" resultType="dataobject">/* 계고장 발송 대상 목록 조회(sndngMapper.selectWrngTrgtList) */ <select id="selectWrngTrgtList" parameterType="map" resultType="dataobject">/* 계고장 발송 대상 목록 조회(sndngMapper.selectWrngTrgtList) */
<include refid="utility.paging-prefix" /> <include refid="utility.paging-prefix" />
SELECT C.CRDN_ID <!-- 단속 ID --> SELECT C.CRDN_ID <!-- 단속 ID -->
, SUM(C.FFNLG_CRDN_AMT) OVER() AS GRAMT <!-- 총금액 -->
<include refid="selectWrngTrgt" /> <include refid="selectWrngTrgt" />
<include refid="fromWrngTrgt" /> <include refid="fromWrngTrgt" />
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
@ -402,9 +403,7 @@
</select> </select>
<select id="selectWrngTrgts" parameterType="map" resultType="dataobject">/* 계고장 발송 대상 객체 가져오기(sndngMapper.selectWrngTrgts) */ <select id="selectWrngTrgts" parameterType="map" resultType="dataobject">/* 계고장 발송 대상 객체 가져오기(sndngMapper.selectWrngTrgts) */
SELECT COUNT(*) OVER() AS TNOCS <!-- 총건수 --> SELECT C.CRDN_ID <!-- 단속 ID -->
, SUM(C.FFNLG_CRDN_AMT) OVER() AS GRAMT <!-- 총금액 -->
, C.CRDN_ID <!-- 단속 ID -->
<include refid="selectWrngTrgt" /> <include refid="selectWrngTrgt" />
<include refid="fromWrngTrgt" /> <include refid="fromWrngTrgt" />
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />

@ -605,7 +605,7 @@
// 1. 이벤트 설정 // 1. 이벤트 설정
$P.setEvent(); $P.setEvent();
// 2. 화면 초기 설정 및 업무 구분 변경 // 2. 초기 설정 및 업무 구분 변경
$P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val()); $P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val());
// 3. 보안모드 // 3. 보안모드

@ -876,7 +876,7 @@
// 1. 이벤트 설정 // 1. 이벤트 설정
$P.setEvent(); $P.setEvent();
// 2. 화면 초기 설정 및 업무 구분 변경 // 2. 초기 설정 및 업무 구분 변경
$P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val()); $P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val());
// 3. 보안모드 // 3. 보안모드

@ -605,7 +605,7 @@
// 1. 이벤트 설정 // 1. 이벤트 설정
$P.setEvent(); $P.setEvent();
// 2. 화면 초기 설정 및 업무 구분 변경 // 2. 초기 설정 및 업무 구분 변경
$P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val()); $P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val());
// 3. 보안모드 // 3. 보안모드

@ -795,7 +795,7 @@
// 1. 이벤트 설정 // 1. 이벤트 설정
$P.setEvent(); $P.setEvent();
// 2. 화면 초기 설정 및 업무 구분 변경 // 2. 초기 설정 및 업무 구분 변경
$P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val()); $P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val());
// 3. 보안모드 // 3. 보안모드

@ -871,7 +871,7 @@
// 1. 이벤트 설정 // 1. 이벤트 설정
$P.setEvent(); $P.setEvent();
// 2. 화면 초기 설정 및 업무 구분 변경 // 2. 초기 설정 및 업무 구분 변경
$P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val()); $P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val());
// 3. 보안모드 // 3. 보안모드

@ -630,7 +630,7 @@
// 1. 이벤트 설정 // 1. 이벤트 설정
$P.setEvent(); $P.setEvent();
// 2. 화면 초기 설정 및 업무 구분 변경 // 2. 초기 설정 및 업무 구분 변경
$P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val()); $P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val());
// 3. 보안모드 // 3. 보안모드

@ -741,7 +741,7 @@
// 1. 이벤트 설정 // 1. 이벤트 설정
$P.setEvent(); $P.setEvent();
// 2. 화면 초기 설정 및 업무 구분 변경 // 2. 초기 설정 및 업무 구분 변경
$P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val()); $P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val());
// 3. 보안모드 // 3. 보안모드

@ -755,7 +755,7 @@
// 1. 이벤트 설정 // 1. 이벤트 설정
$P.setEvent(); $P.setEvent();
// 2. 화면 초기 설정 및 업무 구분 변경 // 2. 초기 설정 및 업무 구분 변경
$P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val()); $P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val());
// 3. 보안모드 // 3. 보안모드

@ -732,13 +732,14 @@
$P.control.urls.remove = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/010/remove.do"); // 삭제 $P.control.urls.remove = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/010/remove.do"); // 삭제
$P.control.urls.getInfo = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/020/info.do"); // 수정 $P.control.urls.getInfo = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/020/info.do"); // 수정
} }
/************************************************************************** /**************************************************************************
* 최초 실행 함수 * 최초 실행 함수
**************************************************************************/ **************************************************************************/
// 1. 이벤트 설정 // 1. 이벤트 설정
$P.setEvent(); $P.setEvent();
// 2. 화면 초기 설정 및 업무 구분 변경 // 2. 초기 설정 및 업무 구분 변경
$P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val()); $P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val());
// 3. 보안모드 // 3. 보안모드

@ -688,7 +688,7 @@
// 1. 이벤트 설정 // 1. 이벤트 설정
$P.setEvent(); $P.setEvent();
// 2. 화면 초기 설정 및 업무 구분 변경 // 2. 초기 설정 및 업무 구분 변경
$P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val()); $P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val());
// 3. 보안모드 // 3. 보안모드

@ -787,7 +787,7 @@
// 1. 이벤트 설정 // 1. 이벤트 설정
$P.setEvent(); $P.setEvent();
// 2. 화면 초기 설정 및 업무 구분 변경 // 2. 초기 설정 및 업무 구분 변경
$P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val()); $P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val());
// 3. 보안모드 // 3. 보안모드

@ -830,7 +830,7 @@
// 1. 이벤트 설정 // 1. 이벤트 설정
$P.setEvent(); $P.setEvent();
// 2. 화면 초기 설정 및 업무 구분 변경 // 2. 초기 설정 및 업무 구분 변경
$P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val()); $P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val());
// 3. 보안모드 // 3. 보안모드

@ -78,6 +78,7 @@
<thead class="sticky-thead"> <thead class="sticky-thead">
<tr id="theadTr--${pageName}" <tr id="theadTr--${pageName}"
data-by="by--${pageName}" data-by-output="byOutput--${pageName}" data-main-option="mainOption--${pageName}" data-sub-option="subOption--${pageName}"> data-by="by--${pageName}" data-by-output="byOutput--${pageName}" data-main-option="mainOption--${pageName}" data-sub-option="subOption--${pageName}">
<th class="cmn" style="width: 72px;">No.</th>
<th class="cmn" style="width: 120px;">계고일자</th> <th class="cmn" style="width: 120px;">계고일자</th>
<th class="cmn" style="width: 160px;">계고사유</th> <th class="cmn" style="width: 160px;">계고사유</th>
<th class="cmn" style="width: 160px;">민원신청번호</th> <th class="cmn" style="width: 160px;">민원신청번호</th>
@ -107,6 +108,7 @@
</tbody> </tbody>
<template id="${infoPrefix}Row--${pageName}"> <template id="${infoPrefix}Row--${pageName}">
<tr data-key="{CRDN_ID}"> <tr data-key="{CRDN_ID}">
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{LEVY_EXCL_YMD}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{LEVY_EXCL_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{LEVY_EXCL_RSN_NM}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{LEVY_EXCL_RSN_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CVLCPT_APLY_NO}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CVLCPT_APLY_NO}</td>
@ -134,7 +136,7 @@
</template> </template>
<template id="${infoPrefix}NotFound--${pageName}"> <template id="${infoPrefix}NotFound--${pageName}">
<tr class="odd"> <tr class="odd">
<td valign="top" colspan="23" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td> <td valign="top" colspan="24" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr> </tr>
</template> </template>
</table> </table>
@ -270,12 +272,29 @@
.replace(/{ondblclick}/gi, "pageObject['${pageName}'].getTotalInfo('" + dataItem.getValue("CRDN_ID") + "');") .replace(/{ondblclick}/gi, "pageObject['${pageName}'].getTotalInfo('" + dataItem.getValue("CRDN_ID") + "');")
); );
$("#tbody--${pageName}").html(trs.join()); // $("#tbody--${pageName}").html(trs.join());
let noMore = (totalSize == ${infoPrefix}List.length);
let initScroll = ($P.control.query.pageNum < 2) && ($P.control.untilPageNum == 0);
$("#table-responsive--${pageName}")[0].changeContent(trs.join(), initScroll, noMore);
if ($P.control.untilPageNum != 0) {
$P.control.query.fetchSize = $P.control.defaultFetchSize;
$P.control.query.pageNum = $P.control.untilPageNum;
$P.control.untilPageNum = 0;
}
//보안모드 //보안모드
fn_securityModeToggle($("#securityMode--top").is(":checked")); fn_securityModeToggle($("#securityMode--top").is(":checked"));
} }
// DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트
$P.scrollDataList = () => {
$P.control.tableRenderComplete = false; // dataTables 에 자료 추가 false
$P.control.load($P.control.query.pageNum + 1);
}
/************************************************************************** /**************************************************************************
* 사용자 함수(function) * 사용자 함수(function)
**************************************************************************/ **************************************************************************/
@ -300,8 +319,6 @@
, title : "개별총정보" , title : "개별총정보"
, content : resp , content : resp
, size : "xxl" , size : "xxl"
, init : () => { }
, onClose : () => { }
}); });
} }
}); });
@ -352,6 +369,28 @@
// DataTables width 변경 조정 // DataTables width 변경 조정
$("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} );
// DataTables 스크롤 이벤트 생성
fnMakeScrollableTable($("#table-responsive--${pageName}")[0], $P.scrollDataList);
/* 출처: https://nowonbun.tistory.com/538 [명월 일지:티스토리]
show.bs.modal : 모달이 열릴 때 바로 실행되는 이벤트입니다.
shown.bs.modal : 모달의 열림이 끝나고 실행되는 이벤트입니다.
hide.bs.modal : 모달이 닫힐 때 바로 실행되는 이벤트입니다.
hidden.bs.modal : 모달의 닫힘이 끝나고 실행되는 이벤트입니다.
*/
// DataTables 스크롤을 위해서 다이얼로그 화면이 생성된 후 Dataset을 설정한다.
$("#${infoPrefix}Dialog").on("shown.bs.modal", function (e) {
$P.control.setData({
${infoPrefix}List : ${wrngTrgtList}
, ${infoPrefix}Start : ${wrngTrgtStart}
, ${infoPrefix}Fetch : ${wrngTrgtFetch}
, ${infoPrefix}Total : ${wrngTrgtTotal}
});
// 초기 데이터 설정
$P.initData();
});
} }
// 초기 화면 설정 // 초기 화면 설정
@ -367,7 +406,7 @@
// 초기 데이터 설정 // 초기 데이터 설정
$P.initData = () => { $P.initData = () => {
$("#tnocs--${pageName}").val($P.control.dataset.getValue("TNOCS")); // 총건수 $("#tnocs--${pageName}").val(${wrngTrgtTotal}); // 총건수
$("#gramt--${pageName}").val($P.control.dataset.getValue("GRAMT")); // 총금액 $("#gramt--${pageName}").val($P.control.dataset.getValue("GRAMT")); // 총금액
// 발송 종료 일자 // 발송 종료 일자
@ -377,7 +416,7 @@
// 제목 // 제목
let ttlNm = $P.control.dataset.getValue("TASK_SE_NM"); let ttlNm = $P.control.dataset.getValue("TASK_SE_NM");
ttlNm = ttlNm + " " + $P.control.dataset.getValue("VLTN_ARTCL"); ttlNm = ttlNm + " " + $P.control.dataset.getValue("VLTN_ARTCL");
ttlNm = ttlNm + " " + "계고장"; ttlNm = ttlNm + " " + "계고장";
$("#ttlNm--${pageName}").val(ttlNm); $("#ttlNm--${pageName}").val(ttlNm);
@ -399,11 +438,8 @@
// 2. 초기 화면 설정 // 2. 초기 화면 설정
$P.initForm(); $P.initForm();
// 3. Dataset 설정 // 3. 보안모드
$P.control.addData(${wrngTrgtList}); fn_securityModeToggle($("#securityMode--top").is(":checked"));
// 4. 초기 데이터 설정
$P.initData();
}); });
</script> </script>

@ -322,7 +322,7 @@
, data : params || {} , data : params || {}
, success : resp => { , success : resp => {
dialog.open({ dialog.open({
id : $P.control.prefixed("DtlDialog") id : "wrngSndngDtlDialog"
, title : "계고장 발송 상세 정보" , title : "계고장 발송 상세 정보"
, content : resp , content : resp
, size : $P.control.infoSize , size : $P.control.infoSize
@ -596,7 +596,7 @@
// 1. 이벤트 설정 // 1. 이벤트 설정
$P.setEvent(); $P.setEvent();
// 2. 화면 초기 설정 및 업무 구분 변경 // 2. 초기 설정 및 업무 구분 변경
$P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val()); $P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val());
// 3. 보안모드 // 3. 보안모드

@ -10,8 +10,7 @@
<div class="wrapper-pop"> <div class="wrapper-pop">
<!-- 입력 영역 --> <!-- 입력 영역 -->
<form id="frmEdit--${pageName}" name="frmEdit"> <form id="frmEdit--${pageName}" name="frmEdit">
<input type="hidden" id="sggCd--${pageName}" name="sggCd" /> <input type="hidden" id="sndngId--${pageName}" name="sndngId" />
<input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" />
</form> <!-- /입력 영역 --> </form> <!-- /입력 영역 -->
<!-- 업무 버튼 및 건수 표시 --> <!-- 업무 버튼 및 건수 표시 -->
@ -25,10 +24,10 @@
</div> </div>
<span class="container-window-btn-right"> <span class="container-window-btn-right">
<!-- 업무 버튼 --> <!-- 업무 버튼 -->
<button type="button" class="btn btn-excel w-px-120" id="btnExcel--${pageName}" title="엑셀" onclick="fnExcel${pageName}();"> <button type="button" class="btn btn-excel w-px-120" id="btnExcel--${pageName}" title="엑셀">
엑셀 엑셀
</button> </button>
<button type="button" class="btn btn-primary w-px-120" id="btnPrint--${pageName}" title="계고장 출력" onclick="fnPrint${pageName}();"> <button type="button" class="btn btn-primary w-px-120" id="btnPrint--${pageName}" title="계고장 출력">
계고장 출력 계고장 출력
</button> </button>
</span> </span>
@ -43,6 +42,7 @@
<thead class="sticky-thead"> <thead class="sticky-thead">
<tr id="theadTr--${pageName}" <tr id="theadTr--${pageName}"
data-by="by--${pageName}" data-by-output="byOutput--${pageName}" data-main-option="mainOption--${pageName}" data-sub-option="subOption--${pageName}"> data-by="by--${pageName}" data-by-output="byOutput--${pageName}" data-main-option="mainOption--${pageName}" data-sub-option="subOption--${pageName}">
<th class="cmn" style="width: 72px;">No.</th>
<th class="cmn" style="width: 120px;">발송상태</th> <th class="cmn" style="width: 120px;">발송상태</th>
<th class="cmn" style="width: 160px;">등기번호</th> <th class="cmn" style="width: 160px;">등기번호</th>
<th class="cmn" style="width: 120px;">발송일자</th> <th class="cmn" style="width: 120px;">발송일자</th>
@ -72,6 +72,7 @@
</tbody> </tbody>
<template id="${infoPrefix}Row--${pageName}"> <template id="${infoPrefix}Row--${pageName}">
<tr data-key="{SNDNG_DTL_ID}"> <tr data-key="{SNDNG_DTL_ID}">
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_DTL_STTS_NM}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_DTL_STTS_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RG_NO}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RG_NO}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_YMD}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_YMD}</td>
@ -99,7 +100,7 @@
</template> </template>
<template id="${infoPrefix}NotFound--${pageName}"> <template id="${infoPrefix}NotFound--${pageName}">
<tr class="odd"> <tr class="odd">
<td valign="top" colspan="23" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td> <td valign="top" colspan="24" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr> </tr>
</template> </template>
</table> </table>
@ -142,7 +143,7 @@
prefix : "wrngSndngDtl" prefix : "wrngSndngDtl"
, prefixName : "계고장 발송 상세 정보" , prefixName : "계고장 발송 상세 정보"
, keymapper : info => info ? info.SNDNG_DTL_ID : "" , keymapper : info => info ? info.SNDNG_DTL_ID : ""
, dataGetter : obj => obj.wrngSndngDtlList , dataGetter : obj => obj.${infoPrefix}List
, appendData : true , appendData : true
, formats : { , formats : {
SNDNG_YMD : dateFormat SNDNG_YMD : dateFormat
@ -199,11 +200,10 @@
${infoPrefix}List.inStrings( ${infoPrefix}List.inStrings(
document.getElementById("${infoPrefix}Row--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%> document.getElementById("${infoPrefix}Row--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%>
(str, dataItem) => str (str, dataItem) => str
.replace(/{onclick}/gi, "$P.control.setCurrent('" + dataItem.getValue("SNDNG_DTL_ID") + "');") .replace(/{onclick}/gi, "pageObject['${pageName}'].control.setCurrent('" + dataItem.getValue("SNDNG_DTL_ID") + "');")
.replace(/{ondblclick}/gi, "getTotalInfo${pageName}('" + dataItem.getValue("CRDN_ID") + "');") .replace(/{ondblclick}/gi, "pageObject['${pageName}'].getTotalInfo('" + dataItem.getValue("CRDN_ID") + "');")
); );
let noMore = (totalSize == ${infoPrefix}List.length); let noMore = (totalSize == ${infoPrefix}List.length);
let initScroll = ($P.control.query.pageNum < 2) && ($P.control.untilPageNum == 0); let initScroll = ($P.control.query.pageNum < 2) && ($P.control.untilPageNum == 0);
@ -220,8 +220,8 @@
} }
// DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트 // DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트
scrollDataList${pageName} = () => { $P.scrollDataList = () => {
$P.control.tableRenderComplete = false; // dataTables 에 자료 추가 false $P.control.tableRenderComplete = false; // dataTables 에 자료 추가 false
$P.control.load($P.control.query.pageNum + 1); $P.control.load($P.control.query.pageNum + 1);
} }
@ -230,14 +230,14 @@
* 사용자 함수(function) * 사용자 함수(function)
**************************************************************************/ **************************************************************************/
// 개별총정보 dialog // 개별총정보 dialog
getTotalInfo${pageName} = (crdnId) => { $P.getTotalInfo = (crdnId) => {
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
let params = { let params = {
callControlName : "$P.control" callControlName : "pageObject['${pageName}'].control"
, callPurpose : "view" , callPurpose : "view"
, sggCd : $("#sggCd--${pageName}").val() , sggCd : $("#sggCd--${pageName}").val()
, taskSeCd : $("#taskSeCd--${pageName}").val() , taskSeCd : $("input[name=taskSeCd]:checked").val()
, crdnId : crdnId , crdnId : crdnId
} }
@ -256,23 +256,15 @@
} }
// 출력 // 출력
printWrng${pageName} = (params) => { $P.print = (params) => {
if (!params) return; if (!params) return;
} }
// 검색 자료 재조회
refreshList${pageName} = () => {
$P.control.untilPageNum = $P.control.query.pageNum;
$P.control.query.fetchSize = $P.control.defaultFetchSize * $P.control.query.pageNum;
$P.control.load(1);
}
/************************************************************************** /**************************************************************************
* 버튼 clickEvent * 버튼 clickEvent
**************************************************************************/ **************************************************************************/
// 엑셀 버튼 이벤트 // 엑셀 버튼 이벤트
fnExcel${pageName} = () => { $P.fnExcel = () => {
if ($P.control.dataset.empty) { if ($P.control.dataset.empty) {
dialog.alert({ dialog.alert({
content : "검색된 자료가 없습니다." content : "검색된 자료가 없습니다."
@ -283,22 +275,22 @@
} }
// DataTables(그리드) // DataTables(그리드)
let cellDefs = getCellDefs($("#theadTr--${pageName} th").not(".dummy-th") let cellDefs = getCellDefs($("#theadTr--${pageName} th").not(".dummy-th").not(":eq(0)")
, $($("#${infoPrefix}Row--${pageName}")[0].content).find("td").not(".dummy-td")); , $($("#${infoPrefix}Row--${pageName}")[0].content).find("td").not(".dummy-td").not(":eq(0)"));
$P.control.query.cellDefs = cellDefs; $P.control.query.cellDefs = cellDefs;
$P.control.download(); $P.control.download();
} }
// 계고장출력 버튼 이벤트 // 계고장출력 버튼 이벤트
fnPrint${pageName} = () => { $P.fnPrint = () => {
// validate 확인 // validate 확인
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return; if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;
dialog.alert({ dialog.alert({
content : $P.control.prefixName + " 정보를 출력하시겠습니까?" content : $P.control.prefixName + " 정보를 출력하시겠습니까?"
, onOK : () => { , onOK : () => {
printWrng${pageName}(${pageName}Fields.get()); $P.print($P.formFields.get());
} }
}); });
} }
@ -306,84 +298,64 @@
/************************************************************************** /**************************************************************************
* 초기 셋팅 * 초기 셋팅
**************************************************************************/ **************************************************************************/
// 이벤트 // 이벤트 설정
setEvent${pageName} = () => { $P.setEvent = () => {
// form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용 // 기본 버튼 이벤트
$("#frmEdit--${pageName}").find(".form-date").each(function() { $("#btnExcel--${pageName}").on("click", () => $P.fnExcel()); // 엑셀
$(this).on("input", function() {
let value = this.value.replaceAll("-", ""); // 업무 버튼 이벤트
$("#btnPrint--${pageName}").on("click", () => $P.fnPrint()); // 출력
if (value.length > 7) {
this.value = value.substring(0, 4) + "-" + value.substring(4, 6) + "-" + value.substring(6);
} else if(value.length > 5) {
this.value = value.substring(0, 4) + "-" + value.substring(4);
}
});
});
// DataTables width 변경 조정 // DataTables width 변경 조정
$("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} );
// DataTables 스크롤 이벤트 생성 // DataTables 스크롤 이벤트 생성
fnMakeScrollableTable($("#table-responsive--${pageName}")[0], scrollDataList${pageName}); fnMakeScrollableTable($("#table-responsive--${pageName}")[0], $P.scrollDataList);
/* 출처: https://nowonbun.tistory.com/538 [명월 일지:티스토리]
show.bs.modal : 모달이 열릴 때 바로 실행되는 이벤트입니다.
shown.bs.modal : 모달의 열림이 끝나고 실행되는 이벤트입니다.
hide.bs.modal : 모달이 닫힐 때 바로 실행되는 이벤트입니다.
hidden.bs.modal : 모달의 닫힘이 끝나고 실행되는 이벤트입니다.
*/
// DataTables 스크롤을 위해서 다이얼로그 화면이 생성된 후 Dataset을 설정한다. // DataTables 스크롤을 위해서 다이얼로그 화면이 생성된 후 Dataset을 설정한다.
$("#${infoPrefix}Dialog").on("shown.bs.modal", function (e) { $("#${infoPrefix}Dialog").on("shown.bs.modal", function (e) {
$P.control.setData({ $P.control.setData({
${infoPrefix}List : ${wrngSndngDtlList} ${infoPrefix}List : ${wrngSndngDtlList}
, ${infoPrefix}Start : ${wrngSndngDtlStart} , ${infoPrefix}Start : ${wrngSndngDtlStart}
, ${infoPrefix}Fetch : ${wrngSndngDtlFetch} , ${infoPrefix}Fetch : ${wrngSndngDtlFetch}
, ${infoPrefix}Total : ${wrngSndngDtlTotal} , ${infoPrefix}Total : ${wrngSndngDtlTotal}
}); });
// 초기 데이터 설정
$P.initData();
}); });
} }
// 화면 초기 설정 // 초기 화면 설정
initForm${pageName} = () => { $P.initForm = () => {
// 화면 초기화 // 화면 초기화
$("#frmEdit--${pageName}")[0].reset(); $("#frmEdit--${pageName}")[0].reset();
// dataset 초기화
$P.control.dataset.clear();
} }
// 기본 데이터 설정 // 초기 데이터 설정
setFormData${pageName} = () => { $P.initData = () => {
let sggCd = ${pageName}Query.sggCd; //
let taskSeCd = ${pageName}Query.taskSeCd; $("#sndngId--${pageName}").val($P.control.dataset.getValue("SNDNG_ID"));
$("#sggCd--${pageName}").val(sggCd); // 시군구 코드
$("#taskSeCd--${pageName}").val(taskSeCd); // 업무 구분 코드
// 검색 조건 설정
$P.control.defaultFetchSize = ${pageName}Query.fetchSize;
$P.control.query = ${pageName}Query;
// URL 설정 // URL 설정
setURL${pageName}(taskSeCd); $P.setURL($P.mainQuery.taskSeCd);
} }
// 업무구분에 따른 url 설정 // 업무구분에 따른 URL 설정
setURL${pageName} = (taskSeCd) => { $P.setURL = (taskSeCd) => {
$P.control.urls.load = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/040/list.do"); // 조회 $P.control.urls.load = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/040/list.do"); // 조회
} }
// 이벤트 설정 /**************************************************************************
setEvent${pageName}(); * 최초 실행 함수
**************************************************************************/
// 화면 초기화 // 1. 이벤트 설정
initForm${pageName}(); $P.setEvent();
// 기본 데이터 설정 // 2. 초기 화면 설정
setFormData${pageName}(); $P.initForm();
// 보안모드 // 3. 보안모드
fn_securityModeToggle($("#securityMode--top").is(":checked")); fn_securityModeToggle($("#securityMode--top").is(":checked"));
}); });

@ -659,7 +659,7 @@
// 1. 이벤트 설정 // 1. 이벤트 설정
$P.setEvent(); $P.setEvent();
// 2. 화면 초기 설정 및 업무 구분 변경 // 2. 초기 설정 및 업무 구분 변경
$P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val()); $P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val());
// 3. 보안모드 // 3. 보안모드

Loading…
Cancel
Save