우편통합 - 발송상태

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

@ -292,8 +292,6 @@
var ${pageName}PrefixUrl = "/epst/epst01";
// FormFields
var ${pageName}Fields = new FimsFormFields("#frmSearch--${pageName}");
// 시군구 코드(SGG_CD)
var ${pageName}sggCd = "${sggCd}";
/**************************************************************************
* DatasetControl
@ -305,7 +303,8 @@
, keymapper : info => info ? info.CON_KEY : ""
, dataGetter : obj => obj.epostRcptRegList
, appendData : true
, tableRenderComplete : false // dataTables 에 자료 추가 완료 여부
, untilPageNum : 0 // 현재 페이지 번호
, tableRenderComplete : false // dataTables 에 자료 추가 완료 여부
, formats : {
SEND_DATE : dateFormat
, RCEPT_YMD : dateFormat
@ -320,7 +319,7 @@
**************************************************************************/
// Dataset 변경 이벤트
${pageName}Control.onDatasetChange = obj => {
renderList${pageName}();
renderList${pageName}(obj.${infoPrefix}Total);
$("#paging--${pageName}").setPagingInfo({
list : ${pageName}Control.dataset
@ -331,7 +330,7 @@
, func : "${pageName}Control.load({index})"
});
${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 완료
${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 true
};
// 현재 선택 자료 변경 이벤트
@ -401,7 +400,11 @@
dialog.alert(showMessage);
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 이벤트
renderList${pageName} = () => {
renderList${pageName} = (totalSize) => {
let ${infoPrefix}List = ${pageName}Control.dataset;
let empty = ${infoPrefix}List.empty;
@ -440,95 +443,29 @@
.replace(/{ondblclick}/gi, "${pageName}Control.getInfo('update', '" + dataItem.getValue("CON_KEY") + "');")
);
$("#tbody--${pageName}").html(trs.join());
$("th input[type='checkbox']").prop("checked", false);
// $("#tbody--${pageName}").html(trs.join());
let noMore = (totalSize == ${infoPrefix}List.length);
let initScroll = (${pageName}Control.query.pageNum < 2) && (${pageName}Control.untilPageNum == 0);
//보안모드
fn_securityModeToggle($("#securityMode--top").is(":checked"));
}
$("#table-responsive--${pageName}")[0].changeContent(trs.join(), initScroll, noMore);
/**************************************************************************
* 초기 셋팅
**************************************************************************/
// 이벤트
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}").scroll(function() {
let el = $(this);
if (el.scrollTop() == 0) {
return;
}
if (!${pageName}Control.tableRenderComplete) {
return;
}
let itemsCnt = ${pageName}Control.dataset._items.length;
let totCnt = ${pageName}Control.dataset.getValue("TOT_CNT"); // let totCnt = ${pageName}Control.dataset.getCurrent("item").data.TOT_CNT;
if (itemsCnt >= totCnt) {
return;
}
if (${pageName}Control.untilPageNum != 0) {
${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize;
${pageName}Control.query.pageNum = ${pageName}Control.untilPageNum;
${pageName}Control.untilPageNum = 0;
}
if ((el[0].scrollHeight - el.scrollTop() + VERTICAL_SCROLL_HEIGHT) <= el.outerHeight()) {
${pageName}Control.tableRenderComplete = false; // dataTables 에 자료 추가 완료
$("th input[type='checkbox']").prop("checked", false);
${pageName}Control.load(${pageName}Control.query.pageNum + 1);
}
});
//보안모드
fn_securityModeToggle($("#securityMode--top").is(":checked"));
}
// 초기 기본 설정
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();
}
// DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트
scrollDataList${pageName} = () => {
${pageName}Control.tableRenderComplete = false; // dataTables 에 자료 추가 false
// 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}"));
${pageName}Control.load(${pageName}Control.query.pageNum + 1);
}
/**************************************************************************
@ -556,8 +493,8 @@
// 검색조건
${pageName}Control.query = ${pageName}Fields.get();
${pageName}Control.query.fetchSize = FETCH_XS; // 한번에 조회되는 자료 건수 FETCH_XS = 30
${pageName}Control.query.delYn = "Y"; // 삭제여부 - Y
${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize; // 1 페이지당 조회되는 자료 건수
${pageName}Control.query.delYn = "N"; // 삭제 여부
// 탭 선택에 따른 우편 처리 상태(POST_PROC_STT) 설정.
if (clickTab == "tab1") { // 발송대기
@ -588,7 +525,7 @@
//
}
${pageName}Control.load();
${pageName}Control.load(1);
}
// 엑셀 버튼 이벤트
@ -669,17 +606,16 @@
${pageName}Control.getInfo("create");
}
// 전자우편 안내문 수정 버튼 이벤트
// 발송 취소 버튼 이벤트
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
if (typeof conKey == "undefined" || conKey == null || conKey == "") return;
${pageName}Control.getInfo("update", conKey);
${pageName}Control.load(1);
}
// 전자우편 안내문 삭제 버튼 이벤트
// 발송 삭제 버튼 이벤트
fnRemove${pageName} = () => {
dialog.alert({
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 진입
**************************************************************************/
@ -699,6 +697,9 @@
// 보안모드
fn_securityModeToggle($("#securityMode--top").is(":checked"));
// 시군구 코드
$("#sggCd--${pageName}").val("${sggCd}");
// 업무 구분 설정
let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val();
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked", true);

Loading…
Cancel
Save