parent
3135f7b25a
commit
def3fbc181
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,152 @@
|
||||
function newSndb01220Control(pageName, doctx="[data-doctx='sndb01220']") {
|
||||
let ctrl = new DatasetControl({
|
||||
doctx: doctx
|
||||
, prefix: "sndbk"
|
||||
, prefixName: "반송"
|
||||
, dataGetter: obj => obj["List"]
|
||||
, keys: ["SNDNG_DTL_ID"]
|
||||
, appendData: true
|
||||
, infoSize: "xxl"
|
||||
, urls: {
|
||||
load: "/list.do"
|
||||
, getInfo: "/info.do"
|
||||
, remove: "/remove.do"
|
||||
}
|
||||
, formats: {
|
||||
DLVR_YMD: dateFormat
|
||||
, DLVR_TM: timeFormat
|
||||
, SNDNG_YMD: dateFormat
|
||||
, CRDN_YMD_TM: datetimeFormat
|
||||
, FFNLG_AMT: numberFormat
|
||||
, PCPTAX: numberFormat
|
||||
, ADAMT: numberFormat
|
||||
, REG_DT: datetimeFormat
|
||||
, MDFCN_DT: datetimeFormat
|
||||
}
|
||||
});
|
||||
|
||||
// 검색 조건
|
||||
ctrl.query = { pageNum: 1, fetchSize: DEFAULT_FETCH_SIZE }; // 1 페이지당 자료 건수 index.jsp에서 확인
|
||||
// paging
|
||||
ctrl.pagingSupport = new FimsPagingSupport({
|
||||
ctrl: ctrl // DatasetControl
|
||||
, ignoreCtrlPrefix: true // ctrl.prefix 가 있더라도 무시
|
||||
, linkContainer: "[name='dataPaging']" // <ul class="pagination pagination-primary" name="dataPaging">
|
||||
});
|
||||
|
||||
/**************************************************************************
|
||||
* DatasetControl Events
|
||||
**************************************************************************/
|
||||
// Dataset 변경 이벤트
|
||||
ctrl.onDatasetChange = (obj, option) => {
|
||||
// 데이터 셋
|
||||
let dataList = ctrl.dataset;
|
||||
let empty = dataList.empty;
|
||||
let clsForTask = $(ctrl.find("[name='frmSearch']")).find("[name='taskSeCd']:checked").val().toLowerCase();
|
||||
|
||||
// 업무별 dataTables(그리드) tr, td
|
||||
let foundContent = ctrl.find("[name='tmpltRows']").content;
|
||||
let foundTr = $(foundContent).find("tr")[0].cloneNode(false);
|
||||
let foundTds = $(foundContent).find("." + clsForTask + ",.cmn");
|
||||
|
||||
foundTds.each(function() {
|
||||
foundTr.appendChild(this.cloneNode(true));
|
||||
});
|
||||
|
||||
let replacer = (str, dataItem) => str
|
||||
.replace(/{onclick}/gi, "pageObject['" + pageName + "'].dataTableClick('{data-index}');")
|
||||
.replace(/{ondblclick}/gi, "pageObject['" + pageName + "'].dataTableDblClick('{data-index}');");
|
||||
|
||||
let trs = empty ?
|
||||
[ctrl.find("[name='tmpltNotFound']").content.querySelector("." + clsForTask + ",.cmn").outerHTML]
|
||||
: dataList.inStrings(foundTr.outerHTML, replacer);
|
||||
|
||||
let noMore = (dataList.length >= obj["Paging"]?.totalSize); // 전체 건수
|
||||
let initScroll = (ctrl.query.pageNum < 2);
|
||||
|
||||
if (option != null && option.reloaded) {
|
||||
initScroll = false;
|
||||
}
|
||||
|
||||
// dataTables(그리드)에 자료 표시 td
|
||||
ctrl.find("[name='tableRspns']").changeContent(trs.join(), initScroll, noMore);
|
||||
|
||||
// checkbox 체크 해제
|
||||
$(ctrl.find("[name='gridAllCheckbox']")).prop("checked", false);
|
||||
|
||||
// dataTables(그리드)에 페이지 표시 pagingInfo
|
||||
ctrl.pagingSupport.setPagingInfo(obj);
|
||||
|
||||
// 보안모드
|
||||
fn_securityModeToggle($("#securityMode--top").is(":checked"));
|
||||
};
|
||||
|
||||
// 현재 선택 자료 변경 이벤트
|
||||
ctrl.onCurrentChange = (item) => {
|
||||
Apply.fromDataset.currentRow(ctrl.dataset, item, ctrl.find("[name='tbodyList']"));
|
||||
};
|
||||
|
||||
// 선택(체크) 변경 이벤트
|
||||
ctrl.onSelectionChange = (selectedArr) => {
|
||||
// gridCheckbox
|
||||
Apply.fromDataset.gridCheckbox(ctrl.dataset, ctrl.find("[name='tbodyList']"), 1, selectedArr);
|
||||
// gridButton
|
||||
Apply.fromDataset.gridButton(ctrl.dataset, ctrl.find("[name='btnCreateSlctnSndngLink']"), selectedArr); // 선택 대상 통합우편 발송 버튼
|
||||
};
|
||||
|
||||
// 상세 정보 dialog
|
||||
ctrl.getInfo = (params) => {
|
||||
if (!params) return;
|
||||
|
||||
ajax.get({
|
||||
url: ctrl.urls.getInfo
|
||||
, data: params || {}
|
||||
, success: (resp) => {
|
||||
let dialogName = ctrl.prefixed("Dialog");
|
||||
let dialogId = dialogName + "-" + uuid();
|
||||
|
||||
dialog.open({
|
||||
id: dialogId
|
||||
, title: params.btnTitle
|
||||
, size: ctrl.infoSize
|
||||
, content: resp
|
||||
, init: () => {
|
||||
$("#" + dialogId).attr("name", dialogName);
|
||||
$("#" + dialogId).attr("data-ref-doctx", pageName);
|
||||
|
||||
AppSupport.setDialogZindex();
|
||||
}
|
||||
, onClose: () => { ctrl.reload({all : true}); } // 자료 재조회
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 삭제 callback
|
||||
ctrl.onRemove = (params, resp) => {
|
||||
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, params.btnTitle);
|
||||
|
||||
// 메시지 출력
|
||||
dialog.alert({
|
||||
content: showMessage
|
||||
, init: () => { AppSupport.setDialogZindex(); }
|
||||
, onOK: () => { }
|
||||
, onClose: () => {
|
||||
if (resp.saved) { ctrl.reload({ all: true }); } // 자료 재조회
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 삭제
|
||||
ctrl.remove = (params) => {
|
||||
if (!params) return;
|
||||
|
||||
ajax.post({
|
||||
url: ctrl.urls.remove
|
||||
, data: params || {}
|
||||
, success: (resp) => { ctrl.onRemove(params, resp); }
|
||||
});
|
||||
}
|
||||
|
||||
return ctrl;
|
||||
}
|
@ -0,0 +1,149 @@
|
||||
function newSndb01240Control(pageName, doctx="[data-doctx='sndb01240']") {
|
||||
let ctrl = new DatasetControl({
|
||||
doctx: doctx
|
||||
, prefix: "svbtc"
|
||||
, prefixName: "공시송달"
|
||||
, dataGetter: obj => obj["List"]
|
||||
, keys: ["SVBTC_ID"]
|
||||
, appendData: true
|
||||
, infoSize: "xxl"
|
||||
, urls: {
|
||||
load: "/list.do"
|
||||
, getInfo: "/info.do"
|
||||
, remove: "/remove.do"
|
||||
}
|
||||
, formats: {
|
||||
SVBTC_YMD: dateFormat
|
||||
, SVBTC_END_YMD: dateFormat
|
||||
, TNOCS: numberFormat
|
||||
, GRAMT: numberFormat
|
||||
, REG_DT: datetimeFormat
|
||||
, MDFCN_DT: datetimeFormat
|
||||
}
|
||||
});
|
||||
|
||||
// 검색 조건
|
||||
ctrl.query = { pageNum: 1, fetchSize: DEFAULT_FETCH_SIZE }; // 1 페이지당 자료 건수 index.jsp에서 확인
|
||||
// paging
|
||||
ctrl.pagingSupport = new FimsPagingSupport({
|
||||
ctrl: ctrl // DatasetControl
|
||||
, ignoreCtrlPrefix: true // ctrl.prefix 가 있더라도 무시
|
||||
, linkContainer: "[name='dataPaging']" // <ul class="pagination pagination-primary" name="dataPaging">
|
||||
});
|
||||
|
||||
/**************************************************************************
|
||||
* DatasetControl Events
|
||||
**************************************************************************/
|
||||
// Dataset 변경 이벤트
|
||||
ctrl.onDatasetChange = (obj, option) => {
|
||||
// 데이터 셋
|
||||
let dataList = ctrl.dataset;
|
||||
let empty = dataList.empty;
|
||||
let clsForTask = $(ctrl.find("[name='frmSearch']")).find("[name='taskSeCd']:checked").val().toLowerCase();
|
||||
|
||||
// 업무별 dataTables(그리드) tr, td
|
||||
let foundContent = ctrl.find("[name='tmpltRows']").content;
|
||||
let foundTr = $(foundContent).find("tr")[0].cloneNode(false);
|
||||
let foundTds = $(foundContent).find("." + clsForTask + ",.cmn");
|
||||
|
||||
foundTds.each(function() {
|
||||
foundTr.appendChild(this.cloneNode(true));
|
||||
});
|
||||
|
||||
let replacer = (str, dataItem) => str
|
||||
.replace(/{onclick}/gi, "pageObject['" + pageName + "'].dataTableClick('{data-index}');")
|
||||
.replace(/{ondblclick}/gi, "pageObject['" + pageName + "'].dataTableDblClick('{data-index}');");
|
||||
|
||||
let trs = empty ?
|
||||
[ctrl.find("[name='tmpltNotFound']").content.querySelector("." + clsForTask + ",.cmn").outerHTML]
|
||||
: dataList.inStrings(foundTr.outerHTML, replacer);
|
||||
|
||||
let noMore = (dataList.length >= obj["Paging"]?.totalSize); // 전체 건수
|
||||
let initScroll = (ctrl.query.pageNum < 2);
|
||||
|
||||
if (option != null && option.reloaded) {
|
||||
initScroll = false;
|
||||
}
|
||||
|
||||
// dataTables(그리드)에 자료 표시 td
|
||||
ctrl.find("[name='tableRspns']").changeContent(trs.join(), initScroll, noMore);
|
||||
|
||||
// checkbox 체크 해제
|
||||
$(ctrl.find("[name='gridAllCheckbox']")).prop("checked", false);
|
||||
|
||||
// dataTables(그리드)에 페이지 표시 pagingInfo
|
||||
ctrl.pagingSupport.setPagingInfo(obj);
|
||||
|
||||
// 보안모드
|
||||
fn_securityModeToggle($("#securityMode--top").is(":checked"));
|
||||
};
|
||||
|
||||
// 현재 선택 자료 변경 이벤트
|
||||
ctrl.onCurrentChange = (item) => {
|
||||
Apply.fromDataset.currentRow(ctrl.dataset, item, ctrl.find("[name='tbodyList']"));
|
||||
};
|
||||
|
||||
// 선택(체크) 변경 이벤트
|
||||
ctrl.onSelectionChange = (selectedArr) => {
|
||||
// gridCheckbox
|
||||
Apply.fromDataset.gridCheckbox(ctrl.dataset, ctrl.find("[name='tbodyList']"), 1, selectedArr);
|
||||
// gridButton
|
||||
Apply.fromDataset.gridButton(ctrl.dataset, ctrl.find("[name='btnRemove']"), selectedArr); // 선택 대상 통합우편 발송 버튼
|
||||
};
|
||||
|
||||
// 상세 정보 dialog
|
||||
ctrl.getInfo = (params) => {
|
||||
if (!params) return;
|
||||
|
||||
ajax.get({
|
||||
url: ctrl.urls.getInfo
|
||||
, data: params || {}
|
||||
, success: (resp) => {
|
||||
let dialogName = ctrl.prefixed("Dialog");
|
||||
let dialogId = dialogName + "-" + uuid();
|
||||
|
||||
dialog.open({
|
||||
id: dialogId
|
||||
, title: params.btnTitle
|
||||
, size: ctrl.infoSize
|
||||
, content: resp
|
||||
, init: () => {
|
||||
$("#" + dialogId).attr("name", dialogName);
|
||||
$("#" + dialogId).attr("data-ref-doctx", pageName);
|
||||
|
||||
AppSupport.setDialogZindex();
|
||||
}
|
||||
, onClose: () => { ctrl.reload({all : true}); } // 자료 재조회
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 삭제 callback
|
||||
ctrl.onRemove = (params, resp) => {
|
||||
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, params.btnTitle);
|
||||
|
||||
// 메시지 출력
|
||||
dialog.alert({
|
||||
content: showMessage
|
||||
, init: () => { AppSupport.setDialogZindex(); }
|
||||
, onOK: () => { }
|
||||
, onClose: () => {
|
||||
if (resp.saved) { ctrl.reload({ all: true }); } // 자료 재조회
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 삭제
|
||||
ctrl.remove = (params) => {
|
||||
if (!params) return;
|
||||
|
||||
ajax.post({
|
||||
url: ctrl.urls.remove
|
||||
, data: params || {}
|
||||
, success: (resp) => { ctrl.onRemove(params, resp); }
|
||||
});
|
||||
}
|
||||
|
||||
return ctrl;
|
||||
}
|
@ -0,0 +1,114 @@
|
||||
function newSndb01250Control(pageName, doctx="[data-doctx='sndb01250']") {
|
||||
let ctrl = new DatasetControl({
|
||||
doctx: doctx
|
||||
, prefix: "svbtcDtl"
|
||||
, prefixName: "공시송달 상세 정보"
|
||||
, dataGetter: obj => obj["List"]
|
||||
, keys: ["SNDNG_DTL_ID"]
|
||||
, appendData: true
|
||||
, urls: {
|
||||
load: "/list.do"
|
||||
}
|
||||
, formats: {
|
||||
SVBTC_YMD: dateFormat
|
||||
, SVBTC_END_YMD: dateFormat
|
||||
, SNDNG_YMD: dateFormat
|
||||
, SNDNG_END_YMD: dateFormat
|
||||
, DLVR_YMD: dateFormat
|
||||
, LEVY_YMD: dateFormat
|
||||
, DUDT_YMD: dateFormat
|
||||
, FFNLG_AMT: numberFormat
|
||||
, PCPTAX: numberFormat
|
||||
, ADAMT: numberFormat
|
||||
, REG_DT: datetimeFormat
|
||||
, MDFCN_DT: datetimeFormat
|
||||
}
|
||||
});
|
||||
|
||||
// 검색 조건
|
||||
ctrl.query = { pageNum: 1, fetchSize: DEFAULT_FETCH_SIZE }; // 1 페이지당 자료 건수 index.jsp에서 확인
|
||||
// paging
|
||||
ctrl.pagingSupport = new FimsPagingSupport({
|
||||
ctrl: ctrl // DatasetControl
|
||||
, ignoreCtrlPrefix: true // ctrl.prefix 가 있더라도 무시
|
||||
, linkContainer: "[name='dataPaging']" // <ul class="pagination pagination-primary" name="dataPaging">
|
||||
});
|
||||
|
||||
/**************************************************************************
|
||||
* DatasetControl Events
|
||||
**************************************************************************/
|
||||
ctrl.onDatasetChange = (obj, option) => {
|
||||
// 데이터 셋
|
||||
let dataList = ctrl.dataset;
|
||||
let empty = dataList.empty;
|
||||
|
||||
let replacer = (str, dataItem) => str
|
||||
.replace(/{onclick}/gi, "pageObject['" + pageName + "'].dataTableClick('{data-index}');")
|
||||
.replace(/{ondblclick}/gi, "pageObject['" + pageName + "'].dataTableDblClick('{data-index}');");
|
||||
|
||||
let trs = empty ?
|
||||
[ctrl.find("[name='tmpltNotFound']").innerHTML]
|
||||
: dataList.inStrings(ctrl.find("[name='tmpltRows']").innerHTML, replacer);
|
||||
|
||||
let noMore = (dataList.length >= obj["Paging"]?.totalSize); // 전체 건수
|
||||
let initScroll = (ctrl.query.pageNum < 2);
|
||||
|
||||
if (option != null && option.reloaded) {
|
||||
initScroll = false;
|
||||
}
|
||||
|
||||
// dataTables(그리드)에 자료 표시 td
|
||||
ctrl.find("[name='tableRspns']").changeContent(trs.join(), initScroll, noMore);
|
||||
|
||||
// checkbox 체크 해제
|
||||
$(ctrl.find("[name='gridAllCheckbox']")).prop("checked", false);
|
||||
|
||||
// dataTables(그리드)에 페이지 표시 pagingInfo
|
||||
ctrl.pagingSupport.setPagingInfo(obj);
|
||||
|
||||
// 보안모드
|
||||
fn_securityModeToggle($("#securityMode--top").is(":checked"));
|
||||
};
|
||||
|
||||
// 현재 선택 자료 변경 이벤트
|
||||
ctrl.onCurrentChange = (item) => {
|
||||
Apply.fromDataset.currentRow(ctrl.dataset, item, ctrl.find("[name='tbodyList']"));
|
||||
};
|
||||
|
||||
// 선택(체크) 변경 이벤트
|
||||
ctrl.onSelectionChange = (selectedArr) => {
|
||||
// gridCheckbox
|
||||
Apply.fromDataset.gridCheckbox(ctrl.dataset, ctrl.find("[name='tbodyList']"), 1, selectedArr);
|
||||
// gridButton
|
||||
Apply.fromDataset.gridButton(ctrl.dataset, ctrl.find("[name='btnPrintHwp']"), selectedArr); // 한글파일 출력 버튼
|
||||
Apply.fromDataset.gridButton(ctrl.dataset, ctrl.find("[name='btnRemove']"), selectedArr); // 공시송달 삭제 버튼
|
||||
};
|
||||
|
||||
// 삭제 callback
|
||||
ctrl.onRemove = (params, resp) => {
|
||||
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, params.btnTitle);
|
||||
|
||||
// 메시지 출력
|
||||
dialog.alert({
|
||||
content: showMessage
|
||||
, init: () => { AppSupport.setDialogZindex(); }
|
||||
, onOK: () => { }
|
||||
, onClose: () => {
|
||||
if (resp.saved) { ctrl.reload({ all: true }); } // 자료 재조회
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 삭제
|
||||
ctrl.remove = (params) => {
|
||||
if (!params) return;
|
||||
|
||||
ajax.post({
|
||||
url: ctrl.urls.remove
|
||||
, data: params || {}
|
||||
, success: (resp) => { ctrl.onRemove(params, resp); }
|
||||
});
|
||||
}
|
||||
|
||||
return ctrl;
|
||||
}
|
@ -0,0 +1,79 @@
|
||||
function newSndb01260Control(pageName, doctx="[data-doctx='sndb01260']") {
|
||||
let ctrl = new DatasetControl({
|
||||
doctx: doctx
|
||||
, prefix: "svbtc"
|
||||
, prefixName: "공시송달"
|
||||
, dataGetter: obj => obj["Info"]
|
||||
, keys: ["SVBTC_ID"]
|
||||
, urls: {
|
||||
create: "/create.do"
|
||||
, update: "/update.do"
|
||||
}
|
||||
});
|
||||
|
||||
/**************************************************************************
|
||||
* DatasetControl Events
|
||||
**************************************************************************/
|
||||
// 현재 선택 자료 변경 이벤트
|
||||
ctrl.onCurrentChange = (item) => {
|
||||
if (!item) return;
|
||||
|
||||
// 화면에 단속 Dataset 셋팅
|
||||
let formFields = new FimsFormFields(ctrl.selector("[name='frmEdit']"));
|
||||
formFields.set(ctrl, item);
|
||||
|
||||
// 업무구분에 따른 URL 변경
|
||||
ctrl.urls.create = wctx.url("/" + item.data.TASK_SE_CD + pageObject[pageName].prefixUrl + "/260/create.do"); // 등록
|
||||
ctrl.urls.update = wctx.url("/" + item.data.TASK_SE_CD + pageObject[pageName].prefixUrl + "/260/update.do"); // 수정
|
||||
|
||||
// 등록이라면..
|
||||
if (!item.data.SVBTC_ID) {
|
||||
let taskSeCd = item.data.TASK_SE_CD;
|
||||
let sndngSeCd = item.data.SNDNG_SE_CD;
|
||||
let ttlNm = "";
|
||||
|
||||
// 공시송달일자
|
||||
$(ctrl.find("[name='svbtcYmd']")).datepicker("setDate", TODAY());
|
||||
$(ctrl.find("[name='svbtcEndYmd']")).datepicker("setDate", DateSupport.getAddDay(15));
|
||||
|
||||
if (sndngSeCd) {
|
||||
ttlNm = pageObject[pageName].FIM047[sndngSeCd].value.replace("(개별)", "") + " 공시송달";
|
||||
} else {
|
||||
ttlNm = "공시송달";
|
||||
}
|
||||
$(ctrl.find("[name='ttlNm']")).val(ttlNm);
|
||||
}
|
||||
}
|
||||
|
||||
// 저장 callback
|
||||
ctrl.onSave = (params, resp) => {
|
||||
let modalId = $(document.querySelector(doctx)).parents(".modal")[0].id;
|
||||
let dialogTitle = $("#" + modalId).find("h5.modal-title").html();
|
||||
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle);
|
||||
|
||||
// 메시지 출력
|
||||
dialog.alert({
|
||||
content: showMessage
|
||||
, init: () => { AppSupport.setDialogZindex(); }
|
||||
, onOK: () => { }
|
||||
, onClose: () => {
|
||||
if (resp.saved) { dialog.close(modalId); }
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 저장
|
||||
ctrl.save = (params) => {
|
||||
if (!params) return;
|
||||
|
||||
let create = (!params.svbtcId);
|
||||
|
||||
ajax.post({
|
||||
url: !create ? ctrl.urls.update : ctrl.urls.create
|
||||
, data: params || {}
|
||||
, success: (resp) => { ctrl.onSave(params, resp); }
|
||||
});
|
||||
}
|
||||
|
||||
return ctrl;
|
||||
}
|
Loading…
Reference in New Issue