우편통합 - 발송상태

-> 테이블데이터 스크롤링 처리 방식 수정.
main
jjh 12 months ago
parent c07fab707f
commit f8b6fd7505

@ -292,8 +292,6 @@
var ${pageName}PrefixUrl = "/epst/epst01"; var ${pageName}PrefixUrl = "/epst/epst01";
// FormFields // FormFields
var ${pageName}Fields = new FimsFormFields("#frmSearch--${pageName}"); var ${pageName}Fields = new FimsFormFields("#frmSearch--${pageName}");
// 시군구 코드(SGG_CD)
var ${pageName}sggCd = "${sggCd}";
/************************************************************************** /**************************************************************************
* DatasetControl * DatasetControl
@ -305,6 +303,7 @@
, keymapper : info => info ? info.CON_KEY : "" , keymapper : info => info ? info.CON_KEY : ""
, dataGetter : obj => obj.epostRcptRegList , dataGetter : obj => obj.epostRcptRegList
, appendData : true , appendData : true
, untilPageNum : 0 // 현재 페이지 번호
, tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부
, formats : { , formats : {
SEND_DATE : dateFormat SEND_DATE : dateFormat
@ -320,7 +319,7 @@
**************************************************************************/ **************************************************************************/
// Dataset 변경 이벤트 // Dataset 변경 이벤트
${pageName}Control.onDatasetChange = obj => { ${pageName}Control.onDatasetChange = obj => {
renderList${pageName}(); renderList${pageName}(obj.${infoPrefix}Total);
$("#paging--${pageName}").setPagingInfo({ $("#paging--${pageName}").setPagingInfo({
list : ${pageName}Control.dataset list : ${pageName}Control.dataset
@ -331,7 +330,7 @@
, func : "${pageName}Control.load({index})" , func : "${pageName}Control.load({index})"
}); });
${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 완료 ${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 true
}; };
// 현재 선택 자료 변경 이벤트 // 현재 선택 자료 변경 이벤트
@ -401,7 +400,11 @@
dialog.alert(showMessage); dialog.alert(showMessage);
if (resp.saved) { if (resp.saved) {
${pageName}Control._load(); // 자료 재조회
${pageName}Control.untilPageNum = ${pageName}Control.query.pageNum;
${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize * ${pageName}Control.query.pageNum;
${pageName}Control.load(1);
} }
} }
@ -424,10 +427,10 @@
} }
/************************************************************************** /**************************************************************************
* * DataTables 이벤트
**************************************************************************/ **************************************************************************/
// DataTables에 click, dbclick 이벤트 // DataTables에 click, dbclick 이벤트
renderList${pageName} = () => { renderList${pageName} = (totalSize) => {
let ${infoPrefix}List = ${pageName}Control.dataset; let ${infoPrefix}List = ${pageName}Control.dataset;
let empty = ${infoPrefix}List.empty; let empty = ${infoPrefix}List.empty;
@ -440,96 +443,30 @@
.replace(/{ondblclick}/gi, "${pageName}Control.getInfo('update', '" + dataItem.getValue("CON_KEY") + "');") .replace(/{ondblclick}/gi, "${pageName}Control.getInfo('update', '" + dataItem.getValue("CON_KEY") + "');")
); );
$("#tbody--${pageName}").html(trs.join()); // $("#tbody--${pageName}").html(trs.join());
$("th input[type='checkbox']").prop("checked", false); let noMore = (totalSize == ${infoPrefix}List.length);
let initScroll = (${pageName}Control.query.pageNum < 2) && (${pageName}Control.untilPageNum == 0);
//보안모드
fn_securityModeToggle($("#securityMode--top").is(":checked"));
}
/**************************************************************************
* 초기 셋팅
**************************************************************************/
// 이벤트
setEvent${pageName} = () => {
// form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용
$("#frmSearch--${pageName}").find(".form-date").each(function() {
$(this).on("input", function() {
let value = this.value.replaceAll("-", "");
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 변경 조정 업무별 그리드가 존재 한다면.. crdn06010-main.jsp 참고
$("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} );
// DataTables 스크롤 이벤트 $("#table-responsive--${pageName}")[0].changeContent(trs.join(), initScroll, noMore);
$("#table-responsive--${pageName}").scroll(function() {
let el = $(this);
if (el.scrollTop() == 0) { if (${pageName}Control.untilPageNum != 0) {
return; ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize;
} ${pageName}Control.query.pageNum = ${pageName}Control.untilPageNum;
if (!${pageName}Control.tableRenderComplete) { ${pageName}Control.untilPageNum = 0;
return;
} }
let itemsCnt = ${pageName}Control.dataset._items.length; $("th input[type='checkbox']").prop("checked", false);
let totCnt = ${pageName}Control.dataset.getValue("TOT_CNT"); // let totCnt = ${pageName}Control.dataset.getCurrent("item").data.TOT_CNT;
if (itemsCnt >= totCnt) { //보안모드
return; fn_securityModeToggle($("#securityMode--top").is(":checked"));
} }
if ((el[0].scrollHeight - el.scrollTop() + VERTICAL_SCROLL_HEIGHT) <= el.outerHeight()) { // DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트
${pageName}Control.tableRenderComplete = false; // dataTables 에 자료 추가 완료 scrollDataList${pageName} = () => {
${pageName}Control.tableRenderComplete = false; // dataTables 에 자료 추가 false
${pageName}Control.load(${pageName}Control.query.pageNum + 1); ${pageName}Control.load(${pageName}Control.query.pageNum + 1);
} }
});
}
// 초기 기본 설정
initForm${pageName} = (taskSeCd) => {
// 화면 초기화
$("#frmSearch--${pageName}")[0].reset();
// 시군구 코드
$("#sggCd--${pageName}").val(${pageName}sggCd);
// 업무 구분 코드
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true);
// 최고 관리자 경우 업무구분을 선택할 수 있도록 하자.
$("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) {
$(this).prop("disabled", "true");
});
// 달력 초기화
initDatepicker("frmSearch--${pageName}");
$("#schSendDateFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-1365).date);
$("#schSendDateTo--${pageName}").datepicker("setDate", new Date());
// dataset 초기화
${pageName}Control.dataset.clear();
}
// URL 설정
setURL${pageName} = (taskSeCd) => {
${pageName}Control.urls.load = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/010/list.do"); // 조회
${pageName}Control.urls.remove = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/010/remove.do"); // 삭제
${pageName}Control.urls.getInfo = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/020/info.do"); // 정보
}
// 기본 데이터 설정
setForm${pageName} = () => {
// 전체 탭에 datatable 설정
$("#tabEpostRcpt0").html($("#datatable--${pageName}"));
}
/************************************************************************** /**************************************************************************
* 버튼 clickEvent * 버튼 clickEvent
@ -556,8 +493,8 @@
// 검색조건 // 검색조건
${pageName}Control.query = ${pageName}Fields.get(); ${pageName}Control.query = ${pageName}Fields.get();
${pageName}Control.query.fetchSize = FETCH_XS; // 한번에 조회되는 자료 건수 FETCH_XS = 30 ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize; // 1 페이지당 조회되는 자료 건수
${pageName}Control.query.delYn = "Y"; // 삭제여부 - Y ${pageName}Control.query.delYn = "N"; // 삭제 여부
// 탭 선택에 따른 우편 처리 상태(POST_PROC_STT) 설정. // 탭 선택에 따른 우편 처리 상태(POST_PROC_STT) 설정.
if (clickTab == "tab1") { // 발송대기 if (clickTab == "tab1") { // 발송대기
@ -588,7 +525,7 @@
// //
} }
${pageName}Control.load(); ${pageName}Control.load(1);
} }
// 엑셀 버튼 이벤트 // 엑셀 버튼 이벤트
@ -669,17 +606,16 @@
${pageName}Control.getInfo("create"); ${pageName}Control.getInfo("create");
} }
// 전자우편 안내문 수정 버튼 이벤트 // 발송 취소 버튼 이벤트
fnUpdate${pageName} = () => { fnUpdate${pageName} = () => {
let conKey = ${pageName}Control.dataset.getValue("CON_KEY"); // 자료 재조회
${pageName}Control.untilPageNum = ${pageName}Control.query.pageNum;
${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize * ${pageName}Control.query.pageNum;
// 전자우편 안내문 ID 가 없다면.. return ${pageName}Control.load(1);
if (typeof conKey == "undefined" || conKey == null || conKey == "") return;
${pageName}Control.getInfo("update", conKey);
} }
// 전자우편 안내문 삭제 버튼 이벤트 // 발송 삭제 버튼 이벤트
fnRemove${pageName} = () => { fnRemove${pageName} = () => {
dialog.alert({ dialog.alert({
content : "선택한 전자우편 안내문 정보를 삭제하시겠습니까?" content : "선택한 전자우편 안내문 정보를 삭제하시겠습니까?"
@ -689,6 +625,68 @@
}); });
} }
/**************************************************************************
* 초기 셋팅
**************************************************************************/
// 이벤트
setEvent${pageName} = () => {
// form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용
$("#frmSearch--${pageName}").find(".form-date").each(function() {
$(this).on("input", function() {
let value = this.value.replaceAll("-", "");
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 변경 조정 업무별 그리드가 존재 한다면.. crdn06010-main.jsp 참고
$("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} );
// DataTables 스크롤 이벤트 생성
fnMakeScrollableTable($("#table-responsive--${pageName}")[0], scrollDataList${pageName});
}
// 초기 기본 설정
initForm${pageName} = (taskSeCd) => {
// 화면 초기화
$("#frmSearch--${pageName}")[0].reset();
// 업무 구분 코드
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true);
// 최고 관리자 경우 업무구분을 선택할 수 있도록 하자.
$("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) {
$(this).prop("disabled", "true");
});
// 달력 초기화
initDatepicker("frmSearch--${pageName}");
$("#schSendDateFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-1365).date);
$("#schSendDateTo--${pageName}").datepicker("setDate", new Date());
// dataset 초기화
${pageName}Control.dataset.clear();
}
// URL 설정
setURL${pageName} = (taskSeCd) => {
${pageName}Control.urls.load = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/010/list.do"); // 조회
${pageName}Control.urls.remove = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/010/remove.do"); // 삭제
${pageName}Control.urls.getInfo = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/020/info.do"); // 정보
}
// 기본 데이터 설정
setForm${pageName} = () => {
// ${pageName}Control 설정
${pageName}Control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30
// 첫번째 "전체" 탭에 datatable 설정
$("#tabEpostRcpt0").html($("#datatable--${pageName}"));
}
/************************************************************************** /**************************************************************************
* script 진입 * script 진입
**************************************************************************/ **************************************************************************/
@ -699,6 +697,9 @@
// 보안모드 // 보안모드
fn_securityModeToggle($("#securityMode--top").is(":checked")); fn_securityModeToggle($("#securityMode--top").is(":checked"));
// 시군구 코드
$("#sggCd--${pageName}").val("${sggCd}");
// 업무 구분 설정 // 업무 구분 설정
let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val(); let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val();
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked", true); $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked", true);

Loading…
Cancel
Save