parent
a678def771
commit
d4beba011d
@ -0,0 +1,145 @@
|
||||
function newExcl01010Control(pageName, doctx="[data-doctx='excl01010']") {
|
||||
let ctrl = new DatasetControl({
|
||||
doctx: doctx
|
||||
, prefix: "levyExcl"
|
||||
, prefixName: "부과제외"
|
||||
, dataGetter: obj => obj["List"]
|
||||
, keys: ["LEVY_EXCL_ID"]
|
||||
, appendData: true
|
||||
, infoSize: "md"
|
||||
, urls: {
|
||||
load: "/list.do"
|
||||
, getInfo: "/info.do"
|
||||
, create: "/create.do"
|
||||
, update: "/update.do"
|
||||
, remove: "/remove.do"
|
||||
}
|
||||
, formats: {
|
||||
LEVY_EXCL_YMD: dateFormat
|
||||
, CRDN_YMD_TM: datetimeFormat
|
||||
, CVLCPT_RCPT_YMD: dateFormat
|
||||
, FFNLG_CRDN_AMT: numberFormat
|
||||
, REG_DT: datetimeFormat
|
||||
, MDFCN_DT: datetimeFormat
|
||||
}
|
||||
});
|
||||
|
||||
// 검색 조건
|
||||
ctrl.query = { pageNum: 1, fetchSize: DEFAULT_FETCH_SIZE }; // 1 페이지당 자료 건수 index.jsp에서 확인
|
||||
|
||||
/**************************************************************************
|
||||
* 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
|
||||
pageObject[pageName].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,81 @@
|
||||
function newExcl01020Control(pageName, doctx="[data-doctx='excl01020']") {
|
||||
let ctrl = new DatasetControl({
|
||||
doctx: doctx
|
||||
, prefix: "levyExcl"
|
||||
, prefixName: "부과제외"
|
||||
, dataGetter: obj => obj["info"]
|
||||
, keys: ["LEVY_EXCL_ID"]
|
||||
, urls: {
|
||||
load: "/list.do"
|
||||
, getInfo: "/info.do"
|
||||
, create: "/create.do"
|
||||
, update: "/update.do"
|
||||
, remove: "/remove.do"
|
||||
}
|
||||
});
|
||||
|
||||
/**************************************************************************
|
||||
* DatasetControl Events
|
||||
**************************************************************************/
|
||||
// 현재 선택 자료 변경 이벤트
|
||||
ctrl.onCurrentChange = (item) => {
|
||||
if (!item) return;
|
||||
|
||||
// 부과제외구분에 따른 부과제외사유 설정
|
||||
pageObject[pageName].fnSetFim021(item.data.LEVY_EXCL_SE_CD, item.data.LEVY_EXCL_RSN_CD);
|
||||
|
||||
// 화면에 단속 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 + "/020/create.do"); // 등록
|
||||
ctrl.urls.update = wctx.url("/" + item.data.TASK_SE_CD + pageObject[pageName].prefixUrl + "/020/update.do"); // 수정
|
||||
|
||||
// 부과제외 일자
|
||||
if (item.data.LEVY_EXCL_YMD == null) {
|
||||
$(ctrl.find("[name='levyExclYmd']")).datepicker("setDate", TODAY());
|
||||
}
|
||||
};
|
||||
|
||||
// 저장 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 (pageObject[pageName].savedCallbackFuncName != "") {
|
||||
pageObject[pageName].savedCallbackFuncName(resp.saved);
|
||||
}
|
||||
|
||||
if (resp.saved) { dialog.close(modalId); }
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 저장
|
||||
ctrl.save = (params) => {
|
||||
if (!params) return;
|
||||
|
||||
let create = (params.levyExclId == "");
|
||||
|
||||
// 민원 접수 관리에서 호출했다면..
|
||||
if (create && pageObject[pageName].saveCallbackFuncName != "") {
|
||||
pageObject[pageName].saveCallbackFuncName(info);
|
||||
} else {
|
||||
ajax.post({
|
||||
url: !create ? ctrl.urls.update : ctrl.urls.create
|
||||
, data: params || {}
|
||||
, success: (resp) => { ctrl.onSave(params, resp); }
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return ctrl;
|
||||
}
|
@ -0,0 +1,146 @@
|
||||
function newExcl02010Control(pageName, doctx="[data-doctx='excl02010']") {
|
||||
let ctrl = new DatasetControl({
|
||||
doctx: doctx
|
||||
, prefix: "opnn"
|
||||
, prefixName: "의견제출"
|
||||
, dataGetter: obj => obj["List"]
|
||||
, keys: ["OPNN_ID"]
|
||||
, appendData: true
|
||||
, infoSize: "xl"
|
||||
, urls: {
|
||||
load: "/list.do"
|
||||
, getInfo: "/info.do"
|
||||
, remove: "/remove.do"
|
||||
}
|
||||
, formats: {
|
||||
RCPT_YMD: dateFormat
|
||||
, ANS_YMD: dateFormat
|
||||
, ANS_YMD_TM: datetimeFormat
|
||||
, CRDN_YMD_TM: datetimeFormat
|
||||
, FFNLG_CRDN_AMT: numberFormat
|
||||
, FFNLG_AMT: numberFormat
|
||||
, REG_DT: datetimeFormat
|
||||
, MDFCN_DT: datetimeFormat
|
||||
}
|
||||
});
|
||||
|
||||
// 검색 조건
|
||||
ctrl.query = { pageNum: 1, fetchSize: DEFAULT_FETCH_SIZE }; // 1 페이지당 자료 건수 index.jsp에서 확인
|
||||
|
||||
/**************************************************************************
|
||||
* 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
|
||||
pageObject[pageName].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); // 삭제 버튼
|
||||
Apply.fromDataset.gridButton(ctrl.dataset, ctrl.find("[name='btnPrintDlbrDecsn']"), 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,84 @@
|
||||
function newExcl02020Control(pageName, doctx="[data-doctx='excl02020']") {
|
||||
let ctrl = new DatasetControl({
|
||||
doctx: doctx
|
||||
, prefix: "opnn"
|
||||
, prefixName: "의견제출"
|
||||
, dataGetter: obj => obj["info"]
|
||||
, keys: ["OPNN_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 + "/020/create.do"); // 등록
|
||||
ctrl.urls.update = wctx.url("/" + item.data.TASK_SE_CD + pageObject[pageName].prefixUrl + "/020/update.do"); // 수정
|
||||
|
||||
// 접수 일자
|
||||
if (!item.data.RCPT_YMD) {
|
||||
$(ctrl.find("[name='rcptYmd']")).datepicker("setDate", TODAY());
|
||||
}
|
||||
|
||||
// 첨부파일 조회
|
||||
let key = item.data.OPNN_ID;
|
||||
if (key != null) {
|
||||
pageObject[pageName].fnSearchFileList(key);
|
||||
}
|
||||
};
|
||||
|
||||
// 저장 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.opnnId == "");
|
||||
let formData = new FormData();
|
||||
|
||||
// 첨부파일 배열에 있는 내용을 등록
|
||||
for (let iLoop = 0; iLoop < pageObject[pageName].fileListArr.length; iLoop++) {
|
||||
formData.append("uploadFiles" , pageObject[pageName].fileListArr[iLoop]);
|
||||
}
|
||||
for (let key in params) {
|
||||
let value = params[key];
|
||||
formData.append(key, value);
|
||||
}
|
||||
|
||||
ajax.post({
|
||||
url: !create ? ctrl.urls.update : ctrl.urls.create
|
||||
, data: formData
|
||||
, contentType: false
|
||||
, processData: false
|
||||
, success: (resp) => { ctrl.onSave(params, resp); }
|
||||
});
|
||||
}
|
||||
|
||||
return ctrl;
|
||||
}
|
@ -0,0 +1,71 @@
|
||||
function newExcl02030Control(pageName, doctx="[data-doctx='excl02030']") {
|
||||
let ctrl = new DatasetControl({
|
||||
doctx: doctx
|
||||
, prefix: "opnnDlbr"
|
||||
, prefixName: "의견제출 심의"
|
||||
, dataGetter: obj => obj["info"]
|
||||
, keys: ["OPNN_ID"]
|
||||
, urls: {
|
||||
create: "/create.do"
|
||||
, update: "/update.do"
|
||||
}
|
||||
, formats: {
|
||||
RDCT_AMT: numberFormat
|
||||
}
|
||||
});
|
||||
|
||||
/**************************************************************************
|
||||
* 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 + "/030/create.do"); // 등록
|
||||
ctrl.urls.update = wctx.url("/" + item.data.TASK_SE_CD + pageObject[pageName].prefixUrl + "/030/update.do"); // 수정
|
||||
|
||||
// 의견제출 상태 코드 변경
|
||||
pageObject[pageName].fnChangeOpnnSbmsnSttsCd(item.data.OPNN_SBMSN_STTS_CD);
|
||||
|
||||
// 답변 일자가 없다면..
|
||||
if (item.data.ANS_YMD == null) {
|
||||
$(ctrl.find("[name='ansYmd']")).datepicker("setDate", TODAY());
|
||||
$(ctrl.find("[name='ansTm']")).val(new Date().toTimeString().split(" ")[0]); // 시간 "09:51:35 GMT+0900 (한국 표준시)"의 형식에서 공백을 기준으로 잘라 시간 부분만 가져와줍니다.
|
||||
}
|
||||
};
|
||||
|
||||
// 저장 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;
|
||||
|
||||
ajax.post({
|
||||
url: ctrl.urls.update
|
||||
, data: params || {}
|
||||
, success: (resp) => { ctrl.onSave(params, resp); }
|
||||
});
|
||||
}
|
||||
|
||||
return ctrl;
|
||||
}
|
@ -0,0 +1,61 @@
|
||||
function newExcl02040Control(pageName, doctx="[data-doctx='excl02040']") {
|
||||
let ctrl = new DatasetControl({
|
||||
doctx: doctx
|
||||
, prefix: "opnnDlbrMbr"
|
||||
, prefixName: "의견제출 심의위원"
|
||||
, dataGetter: obj => obj["info"]
|
||||
, keys: ["MNG_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 + "/040/create.do"); // 등록
|
||||
ctrl.urls.update = wctx.url("/" + item.data.TASK_SE_CD + pageObject[pageName].prefixUrl + "/040/update.do"); // 수정
|
||||
};
|
||||
|
||||
// 저장 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.mngId == "");
|
||||
|
||||
ajax.post({
|
||||
url: !create ? ctrl.urls.update : ctrl.urls.create
|
||||
, data: params || {}
|
||||
, success: (resp) => { ctrl.onSave(params, resp); }
|
||||
});
|
||||
}
|
||||
|
||||
return ctrl;
|
||||
}
|
@ -0,0 +1,103 @@
|
||||
function newExcl03010Control(pageName, doctx="[data-doctx='excl03010']") {
|
||||
let ctrl = new DatasetControl({
|
||||
doctx: doctx
|
||||
, prefix: "crdnReReg"
|
||||
, prefixName: "단속 재등록"
|
||||
, dataGetter: obj => obj["List"]
|
||||
, keys: ["RE_REG_ID"]
|
||||
, appendData: true
|
||||
, urls: {
|
||||
load: "/list.do"
|
||||
, getInfo: "/info.do"
|
||||
}
|
||||
, formats: {
|
||||
RE_REG_YMD: dateFormat
|
||||
, CRDN_YMD_TM: datetimeFormat
|
||||
, FFNLG_CRDN_AMT: numberFormat
|
||||
, REG_DT: datetimeFormat
|
||||
}
|
||||
});
|
||||
|
||||
// 검색 조건
|
||||
ctrl.query = { pageNum: 1, fetchSize: DEFAULT_FETCH_SIZE }; // 1 페이지당 자료 건수 index.jsp에서 확인
|
||||
|
||||
/**************************************************************************
|
||||
* 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);
|
||||
|
||||
// dataTables(그리드)에 페이지 표시 pagingInfo
|
||||
pageObject[pageName].pagingSupport.setPagingInfo(obj);
|
||||
|
||||
// 보안모드
|
||||
fn_securityModeToggle($("#securityMode--top").is(":checked"));
|
||||
};
|
||||
|
||||
// 현재 선택 자료 변경 이벤트
|
||||
ctrl.onCurrentChange = (item) => {
|
||||
Apply.fromDataset.currentRow(ctrl.dataset, item, ctrl.find("[name='tbodyList']"));
|
||||
};
|
||||
|
||||
// 상세 정보 dialog
|
||||
ctrl.getInfo = (params) => {
|
||||
// 단속 ID가 없다면 개별총정보 팝업을 실행하지 않는다.
|
||||
if (!params) return;
|
||||
|
||||
ajax.get({
|
||||
url: wctx.url("/sprt/sprt02/010/main.do")
|
||||
, data: params || {}
|
||||
, success: (resp) => {
|
||||
let dialogName = "totalInfoMainDialog";
|
||||
let dialogId = dialogName + "-" + uuid();
|
||||
|
||||
dialog.open({
|
||||
id: dialogId
|
||||
, title: "개별총정보"
|
||||
, size: "xxl"
|
||||
, content: resp
|
||||
, init: () => {
|
||||
$("#" + dialogId).attr("name", dialogName);
|
||||
$("#" + dialogId).attr("data-ref-doctx", "${pageName}");
|
||||
|
||||
AppSupport.setDialogZindex();
|
||||
}
|
||||
, onClose: () => { }
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return ctrl;
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
function newSprt02010Control(pageName, doctx="[data-doctx='sprt02010']") {
|
||||
let ctrlMain = new DatasetControl({
|
||||
doctx: doctx
|
||||
, prefix: "totalInfoMain"
|
||||
, prefixName: "개별총정보"
|
||||
, dataGetter: obj => obj["totalInfo"]
|
||||
, keys: ["CRDN_ID"]
|
||||
});
|
||||
|
||||
/**************************************************************************
|
||||
* DatasetControl Events
|
||||
**************************************************************************/
|
||||
// 현재 선택 자료 변경 이벤트
|
||||
ctrlMain.onCurrentChange = (item) => {
|
||||
if (!item) return;
|
||||
|
||||
// 화면에 단속 Dataset 셋팅
|
||||
let formFields = new FimsFormFields(ctrlMain.selector("[name='frmEdit']"));
|
||||
formFields.set(ctrlMain, item);
|
||||
|
||||
// 건수를 표시한다.
|
||||
pageObject[pageName].fnChangeCountStatus();
|
||||
};
|
||||
|
||||
return ctrlMain;
|
||||
}
|
@ -0,0 +1,116 @@
|
||||
function newSprt02020Control(pageName, doctx="[data-doctx='sprt02020']", mainPageName="sprt02010") {
|
||||
let ctrlCrdn = new DatasetControl({
|
||||
doctx: doctx
|
||||
, prefix: "crdn"
|
||||
, prefixName: "단속"
|
||||
, dataGetter: obj => obj["crdnPayerInfo"]
|
||||
, keys: ["CRDN_ID"]
|
||||
, urls: {
|
||||
load: "/list.do"
|
||||
, getInfo: "/info.do"
|
||||
}
|
||||
});
|
||||
|
||||
/**************************************************************************
|
||||
* DatasetControl Events
|
||||
**************************************************************************/
|
||||
// 현재 선택 자료 변경 이벤트
|
||||
ctrlCrdn.onCurrentChange = (item) => {
|
||||
if (!item) return;
|
||||
|
||||
// 화면에 단속 Dataset 셋팅
|
||||
let formFields = new FimsFormFields(ctrlCrdn.selector("[name='frmCrdnPayer']"));
|
||||
formFields.set(ctrlCrdn, item);
|
||||
};
|
||||
|
||||
// 상세 정보 dialog
|
||||
ctrlCrdn.getInfo = (params) => {
|
||||
if (!params) return;
|
||||
|
||||
ajax.get({
|
||||
url: wctx.url("/" + params.taskSeCd + "/crdn/crdn06/020/info.do")
|
||||
, data: params || {}
|
||||
, success: (resp) => {
|
||||
let dialogName = ctrlCrdn.prefixed("Dialog");
|
||||
let dialogId = dialogName + "-" + uuid();
|
||||
|
||||
dialog.open({
|
||||
id: dialogId
|
||||
, title: params.btnTitle
|
||||
, size: "lg"
|
||||
, content: resp
|
||||
, init: () => {
|
||||
$("#" + dialogId).attr("name", dialogName);
|
||||
$("#" + dialogId).attr("data-ref-doctx", pageName);
|
||||
|
||||
AppSupport.setDialogZindex();
|
||||
}
|
||||
, onClose: () => { ctrlCrdn.refresh(); } // 정보 새로고침
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 삭제 callback
|
||||
ctrlCrdn.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) { pageObject[mainPageName].fnClose(true); }
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 삭제
|
||||
ctrlCrdn.remove = (params) => {
|
||||
if (!params) return;
|
||||
|
||||
ajax.post({
|
||||
url: wctx.url("/" + params.taskSeCd + "/crdn/crdn06/010/remove.do")
|
||||
, data: params || {}
|
||||
, success: (resp) => {
|
||||
ctrlCrdn.onRemove(params, resp);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 정보 새로고침
|
||||
ctrlCrdn.refresh = () => {
|
||||
let ctrlMain = pageObject[mainPageName].ctrlMain;
|
||||
let crdnId = ctrlMain.getValue("CRDN_ID"); // 단속 ID
|
||||
|
||||
// 단속 ID 가 없다면.. return
|
||||
if (!crdnId) return;
|
||||
|
||||
let params = {
|
||||
callPurpose: "refresh"
|
||||
, sggCd: ctrlMain.getValue("SGG_CD")
|
||||
, taskSeCd: ctrlMain.getValue("TASK_SE_CD")
|
||||
, crdnId: ctrlMain.getValue("CRDN_ID")
|
||||
, delYn: "N"
|
||||
};
|
||||
|
||||
ajax.get({
|
||||
url: wctx.url(params.taskSeCd + "/sprt/sprt02/020/info.do")
|
||||
, headers: { Accept: "application/json; charset=utf-8" } // json
|
||||
, data: params || {}
|
||||
, success: (resp) => {
|
||||
// 초기화
|
||||
ctrlCrdn.find("[name='frmCrdnPayer']").reset(); // 화면 초기화
|
||||
ctrlCrdn.dataset.clear(); // Dataset 초기화
|
||||
|
||||
// sprt02010-main 단속 정보
|
||||
ctrlMain.setData([resp.totalInfo]);
|
||||
|
||||
// 단속, 납부자 정보
|
||||
if (resp.crdnPayerInfo) { ctrlCrdn.setData([resp.crdnPayerInfo]); }
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return ctrlCrdn;
|
||||
}
|
@ -0,0 +1,123 @@
|
||||
function newSprt02030Control(pageName, doctx="[data-doctx='sprt02030']", mainPageName="sprt02010") {
|
||||
let ctrlOpnn = new DatasetControl({
|
||||
doctx: doctx
|
||||
, prefix: "opnn"
|
||||
, prefixName: "의견제출"
|
||||
, dataGetter: obj => obj["opnnInfo"]
|
||||
, keys: ["OPNN_ID"]
|
||||
, infoSize: "lg"
|
||||
, urls: {
|
||||
load: "/list.do"
|
||||
, getInfo: "/info.do"
|
||||
}
|
||||
});
|
||||
|
||||
/**************************************************************************
|
||||
* DatasetControl Events
|
||||
**************************************************************************/
|
||||
// 현재 선택 자료 변경 이벤트
|
||||
ctrlOpnn.onCurrentChange = (item) => {
|
||||
if (!item) return;
|
||||
|
||||
// 화면에 단속 Dataset 셋팅
|
||||
let formFields = new FimsFormFields(ctrlOpnn.selector("[name='frmOpnn']"));
|
||||
formFields.set(ctrlOpnn, item);
|
||||
|
||||
// 첨부파일 조회
|
||||
let key = item.data.OPNN_ID;
|
||||
if (key != null) {
|
||||
pageObject[pageName].fnSearchFileList(key);
|
||||
}
|
||||
};
|
||||
|
||||
// 상세 정보 dialog
|
||||
ctrlOpnn.getInfo = (params) => {
|
||||
if (!params) return;
|
||||
|
||||
ajax.get({
|
||||
url: wctx.url("/" + params.taskSeCd + "/excl/excl02/020/info.do")
|
||||
, data: params || {}
|
||||
, success: (resp) => {
|
||||
let dialogName = ctrlOpnn.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: () => { ctrlOpnn.refresh(); } // 정보 새로고침
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 삭제 callback
|
||||
ctrlOpnn.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) { ctrlOpnn.refresh(); } // 정보 새로고침
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 삭제
|
||||
ctrlOpnn.remove = (params) => {
|
||||
if (!params) return;
|
||||
|
||||
ajax.post({
|
||||
url: wctx.url("/" + params.taskSeCd + "/excl/excl02/010/remove.do")
|
||||
, data: params || {}
|
||||
, success: (resp) => {
|
||||
ctrlOpnn.onRemove(params, resp);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 정보 새로고침
|
||||
ctrlOpnn.refresh = () => {
|
||||
let ctrlMain = pageObject[mainPageName].ctrlMain;
|
||||
let crdnId = ctrlMain.getValue("CRDN_ID"); // 단속 ID
|
||||
|
||||
// 단속 ID 가 없다면.. return
|
||||
if (!crdnId) return;
|
||||
|
||||
let params = {
|
||||
callPurpose: "refresh"
|
||||
, sggCd: ctrlMain.getValue("SGG_CD")
|
||||
, taskSeCd: ctrlMain.getValue("TASK_SE_CD")
|
||||
, crdnId: ctrlMain.getValue("CRDN_ID")
|
||||
, delYn: "N"
|
||||
};
|
||||
|
||||
ajax.get({
|
||||
url: wctx.url("/" + params.taskSeCd + "/sprt/sprt02/030/info.do")
|
||||
, headers: { Accept: "application/json; charset=utf-8" } // json
|
||||
, data: params || {}
|
||||
, success: (resp) => {
|
||||
// 초기화
|
||||
ctrlOpnn.find("[name='frmOpnn']").reset(); // 화면 초기화
|
||||
ctrlOpnn.dataset.clear(); // Dataset 초기화
|
||||
|
||||
// sprt02010-main 단속 정보
|
||||
ctrlMain.setData([resp.totalInfo]);
|
||||
|
||||
// 의견제출 정보
|
||||
if (resp.opnnInfo) { ctrlOpnn.setData([resp.opnnInfo]); }
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return ctrlOpnn;
|
||||
}
|
@ -0,0 +1,182 @@
|
||||
function newSprt02040ControlSndngDtl(pageName, doctx="[data-doctx='sprt02040']") {
|
||||
let ctrlSndngDtl = new DatasetControl({
|
||||
doctx: doctx
|
||||
, prefix: "sndngDtl"
|
||||
, prefixName: "발송반송"
|
||||
, dataGetter: obj => obj["sndngDtls"]
|
||||
, keys: ["SNDNG_DTL_ID"]
|
||||
, appendData: true
|
||||
, infoSize: "md"
|
||||
, urls: {
|
||||
load: "/list.do"
|
||||
, getInfo: "/info.do"
|
||||
, create: "/create.do"
|
||||
, update: "/update.do"
|
||||
, remove: "/remove.do"
|
||||
}
|
||||
, formats: {
|
||||
SNDNG_YMD: dateFormat
|
||||
, DUDT_YMD: dateFormat
|
||||
, SUM_AMT: numberFormat
|
||||
, DLVR_YMD: dateFormat
|
||||
, DLVR_TM: timeFormat
|
||||
, REG_DT: datetimeFormat
|
||||
, MDFCN_DT: datetimeFormat
|
||||
}
|
||||
});
|
||||
|
||||
/**************************************************************************
|
||||
* DatasetControl Events
|
||||
**************************************************************************/
|
||||
// Dataset 변경 이벤트
|
||||
ctrlSndngDtl.onDatasetChange = (obj, option) => {
|
||||
// 데이터 셋
|
||||
let dataList = ctrlSndngDtl.dataset;
|
||||
let empty = dataList.empty;
|
||||
|
||||
// 업무별 dataTables(그리드) tr, td
|
||||
let foundContent = ctrlSndngDtl.find("[name='tmpltRows']").content;
|
||||
let foundTr = $(foundContent).find("tr")[0].cloneNode(false);
|
||||
let foundTds = $(foundContent).find(".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 ?
|
||||
[ctrlSndngDtl.find("[name='tmpltNotFound']").content.querySelector(".cmn").outerHTML]
|
||||
: dataList.inStrings(foundTr.outerHTML, replacer);
|
||||
|
||||
let noMore = (dataList.length >= obj["Paging"]?.totalSize); // 전체 건수
|
||||
let initScroll = (ctrlSndngDtl.query.pageNum < 2);
|
||||
|
||||
if (option != null && option.reloaded) {
|
||||
initScroll = false;
|
||||
}
|
||||
|
||||
// dataTables(그리드)에 자료 표시 td
|
||||
ctrlSndngDtl.find("[name='tableRspns']").changeContent(trs.join(), initScroll, noMore);
|
||||
};
|
||||
|
||||
// 현재 선택 자료 변경 이벤트
|
||||
ctrlSndngDtl.onCurrentChange = (item) => {
|
||||
Apply.fromDataset.currentRow(ctrlSndngDtl.dataset, item, ctrlSndngDtl.find("[name='tbodySndngDtlList']"));
|
||||
|
||||
if (!item) return;
|
||||
|
||||
// 가상계좌번호
|
||||
let vrActno = Array.from({length: 20}, (x, i) => {
|
||||
let no = i + 1
|
||||
, bank = "BANK_NM" + (no > 1 ? no : "")
|
||||
, account = "VR_ACTNO" + (no > 1 ? no : "");
|
||||
|
||||
return [bank, account]
|
||||
})
|
||||
.map(entry => {
|
||||
let bank = item.data[entry[0]]
|
||||
, account = item.data[entry[1]];
|
||||
|
||||
return bank ? bank + " " + account : null;
|
||||
})
|
||||
.filter(txt => txt != null)
|
||||
.join("\n");
|
||||
|
||||
$(ctrlSndngDtl.find("[name='vrActno']")).val(vrActno); // 가상 계좌번호
|
||||
};
|
||||
|
||||
// 상세 정보 dialog
|
||||
ctrlSndngDtl.getInfo = (params) => {
|
||||
if (!params) return;
|
||||
|
||||
ajax.get({
|
||||
url: wctx.url("/" + params.taskSeCd + "/sndb/sndb01/230/info.do")
|
||||
, data: params || {}
|
||||
, success: (resp) => {
|
||||
let dialogName = "sndbkDialog";
|
||||
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: () => { ctrlSndngDtl.refresh(); } // 정보 새로고침
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 삭제 callback
|
||||
ctrlSndngDtl.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) { ctrlSndngDtl.refresh(); } // 정보 새로고침
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 삭제
|
||||
ctrlSndngDtl.remove = (params) => {
|
||||
if (!params) return;
|
||||
|
||||
ajax.post({
|
||||
url: wctx.url("/" + params.taskSeCd + "/sndb/sndb01/220/remove.do")
|
||||
, data: params || {}
|
||||
, success: (resp) => {
|
||||
ctrl.onRemove(params, resp);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 정보 새로고침
|
||||
ctrlSndngDtl.refresh = () => {
|
||||
let ctrlMain = pageObject[mainPageName].ctrlMain;
|
||||
let crdnId = ctrlMain.getValue("CRDN_ID"); // 단속 ID
|
||||
|
||||
// 단속 ID 가 없다면.. return
|
||||
if (!crdnId) return;
|
||||
|
||||
let params = {
|
||||
callPurpose: "refresh"
|
||||
, sggCd: ctrlMain.getValue("SGG_CD")
|
||||
, taskSeCd: ctrlMain.getValue("TASK_SE_CD")
|
||||
, crdnId: ctrlMain.getValue("CRDN_ID")
|
||||
, delYn: "N"
|
||||
};
|
||||
|
||||
ajax.get({
|
||||
url: wctx.url("/" + params.taskSeCd + "/sprt/sprt02/040/info.do")
|
||||
, headers: { Accept: "application/json; charset=utf-8" } // json
|
||||
, data: params || {}
|
||||
, success: (resp) => {
|
||||
// 초기화
|
||||
ctrlSndngDtl.find("[name='frmEditSndngDtl']").reset(); // 화면 초기화
|
||||
ctrlSndngDtl.dataset.clear(); // Dataset 초기화
|
||||
|
||||
// sprt02010-main 단속 정보
|
||||
ctrlMain.setData([resp.totalInfo]);
|
||||
|
||||
// 발송 이력 정보
|
||||
ctrlSndngDtl.setData(resp.sndngDtls);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return ctrlSndngDtl;
|
||||
}
|
@ -0,0 +1,273 @@
|
||||
function newSprt02050ControlRD(pageName, doctx="[data-doctx='sprt02050']", mainPageName="sprt02010") {
|
||||
let ctrlRdct = new DatasetControl({
|
||||
doctx: doctx
|
||||
, prefix: "rdct"
|
||||
, prefixName: "감경"
|
||||
, dataGetter: obj => obj["rdctInfo"]
|
||||
, infoSize: "lg"
|
||||
, urls: {
|
||||
getInfo: "/info.do"
|
||||
, remove: "/remove.do"
|
||||
}
|
||||
});
|
||||
|
||||
/**************************************************************************
|
||||
* DatasetControl Events
|
||||
**************************************************************************/
|
||||
// 현재 선택 자료 변경 이벤트
|
||||
ctrlRdct.onCurrentChange = (item) => {
|
||||
if (!item) return;
|
||||
|
||||
// 화면에 단속 Dataset 셋팅
|
||||
let formFields = new FimsFormFields(ctrlRdct.selector("[name='frmEditRdct']"));
|
||||
formFields.set(ctrlRdct, item);
|
||||
};
|
||||
|
||||
// 상세 정보 dialog
|
||||
ctrlRdct.getInfo = (params) => {
|
||||
if (!params) return;
|
||||
|
||||
ajax.get({
|
||||
url: wctx.url("/" + params.taskSeCd + "/levy/levy02/020/info.do")
|
||||
, data: params || {}
|
||||
, success: (resp) => {
|
||||
if ((typeof resp) != "string") {
|
||||
if (resp.rtnMsg != "") {
|
||||
dialog.alert(resp.rtnMsg);
|
||||
}
|
||||
return;
|
||||
} else {
|
||||
let dialogName = ctrlRdct.prefixed("Dialog");
|
||||
let dialogId = dialogName + "-" + uuid();
|
||||
|
||||
dialog.open({
|
||||
id: dialogId
|
||||
, title: params.btnTitle
|
||||
, size: ctrlRdct.infoSize
|
||||
, content: resp
|
||||
, init: () => {
|
||||
$("#" + dialogId).attr("name", dialogName);
|
||||
$("#" + dialogId).attr("data-ref-doctx", pageName);
|
||||
|
||||
AppSupport.setDialogZindex();
|
||||
}
|
||||
, onClose: () => { pageObject[pageName].fnRefresh(); } // 정보 새로고침
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 삭제 callback
|
||||
ctrlRdct.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) { pageObject[pageName].fnRefresh(); } // 정보 새로고침
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 삭제
|
||||
ctrlRdct.remove = (params) => {
|
||||
if (!params) return;
|
||||
|
||||
ajax.post({
|
||||
url: wctx.url("/" + params.taskSeCd + "/levy/levy02/010/remove.do")
|
||||
, data: params || {}
|
||||
, success: (resp) => {
|
||||
ctrlRdct.onRemove(params, resp);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return ctrlRdct;
|
||||
}
|
||||
|
||||
function newSprt02050ControlLE(pageName, doctx="[data-doctx='sprt02050']", mainPageName="sprt02010") {
|
||||
let ctrlLevyExcl = new DatasetControl({
|
||||
doctx: doctx
|
||||
, prefix: "levyExcl"
|
||||
, prefixName: "부과제외"
|
||||
, dataGetter: obj => obj["levyExclInfo"]
|
||||
, infoSize: "md"
|
||||
, urls: {
|
||||
getInfo: "/info.do"
|
||||
, remove: "/remove.do"
|
||||
}
|
||||
});
|
||||
|
||||
/**************************************************************************
|
||||
* DatasetControl Events
|
||||
**************************************************************************/
|
||||
// 현재 선택 자료 변경 이벤트
|
||||
ctrlLevyExcl.onCurrentChange = (item) => {
|
||||
if (!item) return;
|
||||
|
||||
// 화면에 단속 Dataset 셋팅
|
||||
let formFields = new FimsFormFields(ctrlLevyExcl.selector("[name='frmEditLevyExcl']"));
|
||||
formFields.set(ctrlLevyExcl, item);
|
||||
};
|
||||
|
||||
// 상세 정보 dialog
|
||||
ctrlLevyExcl.getInfo = (params) => {
|
||||
if (!params) return;
|
||||
|
||||
ajax.get({
|
||||
url: wctx.url("/" + params.taskSeCd + "/excl/excl01/020/info.do")
|
||||
, data: params || {}
|
||||
, success: (resp) => {
|
||||
if ((typeof resp) != "string") {
|
||||
if (resp.rtnMsg != "") {
|
||||
dialog.alert(resp.rtnMsg);
|
||||
}
|
||||
return;
|
||||
} else {
|
||||
let dialogName = ctrlLevyExcl.prefixed("Dialog");
|
||||
let dialogId = dialogName + "-" + uuid();
|
||||
|
||||
dialog.open({
|
||||
id: dialogId
|
||||
, title: params.btnTitle
|
||||
, size: ctrlLevyExcl.infoSize
|
||||
, content: resp
|
||||
, init: () => {
|
||||
$("#" + dialogId).attr("name", dialogName);
|
||||
$("#" + dialogId).attr("data-ref-doctx", pageName);
|
||||
|
||||
AppSupport.setDialogZindex();
|
||||
}
|
||||
, onClose: () => { pageObject[pageName].fnRefresh(); } // 정보 새로고침
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 삭제 callback
|
||||
ctrlLevyExcl.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) { pageObject[pageName].fnRefresh(); } // 정보 새로고침
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 삭제
|
||||
ctrlLevyExcl.remove = (params) => {
|
||||
if (!params) return;
|
||||
|
||||
ajax.post({
|
||||
url: wctx.url("/" + params.taskSeCd + "/excl/excl01/010/remove.do")
|
||||
, data: params || {}
|
||||
, success: (resp) => {
|
||||
ctrlLevyExcl.onRemove(params, resp);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return ctrlLevyExcl;
|
||||
}
|
||||
|
||||
function newSprt02050ControlCSH(pageName, doctx="[data-doctx='sprt02050']", mainPageName="sprt02010") {
|
||||
let ctrlCrdnSttsHstry = new DatasetControl({
|
||||
doctx: doctx
|
||||
, prefix: "crdnSttsHstry"
|
||||
, prefixName: "단속상태 이력"
|
||||
, dataGetter: obj => obj["crdnSttsHstrys"]
|
||||
, keys: ["STTS_HSTRY_ID"]
|
||||
, appendData: true
|
||||
, infoSize: "md"
|
||||
, urls: {
|
||||
load: "/list.do"
|
||||
, getInfo: "/info.do"
|
||||
}
|
||||
, formats: {
|
||||
REG_DT: datetimeFormat
|
||||
}
|
||||
});
|
||||
|
||||
/**************************************************************************
|
||||
* DatasetControl Events
|
||||
**************************************************************************/
|
||||
// Dataset 변경 이벤트
|
||||
ctrlCrdnSttsHstry.onDatasetChange = (obj, option) => {
|
||||
// 데이터 셋
|
||||
let dataList = ctrlCrdnSttsHstry.dataset;
|
||||
let empty = dataList.empty;
|
||||
|
||||
let replacer = (str, dataItem) => str
|
||||
.replace(/{onclick}/gi, "pageObject['" + pageName + "'].ctrlCrdnSttsHstry.setCurrent('{data-index}');")
|
||||
|
||||
let trs = empty ?
|
||||
[ctrlCrdnSttsHstry.find("[name='tmpltNotFoundCrdnSttsHstry']").innerHTML]
|
||||
: dataList.inStrings(ctrlCrdnSttsHstry.find("[name='tmpltCrdnSttsHstryRows']").innerHTML, replacer);
|
||||
|
||||
// dataTables(그리드)에 자료 표시 td
|
||||
$(ctrlCrdnSttsHstry.find("[name='tbodyCrdnSttsHstryList']")).html(trs.join());
|
||||
};
|
||||
|
||||
// 현재 선택 자료 변경 이벤트
|
||||
ctrlCrdnSttsHstry.onCurrentChange = (item) => {
|
||||
Apply.fromDataset.currentRow(ctrlCrdnSttsHstry.dataset, item, ctrlCrdnSttsHstry.find("[name='tbodyCrdnSttsHstryList']"));
|
||||
};
|
||||
|
||||
return ctrlCrdnSttsHstry;
|
||||
}
|
||||
|
||||
function newSprt02050ControlPAH(pageName, doctx="[data-doctx='sprt02050']", mainPageName="sprt02010") {
|
||||
let ctrlPayerAddrHstrys = new DatasetControl({
|
||||
doctx: doctx
|
||||
, prefix: "payerAddrHstry"
|
||||
, prefixName: "납부자주소 이력"
|
||||
, dataGetter: obj => obj["payerAddrHstrys"]
|
||||
, keys: ["ADDR_HSTRY_ID"]
|
||||
, appendData: true
|
||||
, infoSize: "md"
|
||||
, urls: {
|
||||
load: "/list.do"
|
||||
, getInfo: "/info.do"
|
||||
}
|
||||
, formats: {
|
||||
REG_DT: datetimeFormat
|
||||
}
|
||||
});
|
||||
|
||||
/**************************************************************************
|
||||
* DatasetControl Events
|
||||
**************************************************************************/
|
||||
// Dataset 변경 이벤트
|
||||
ctrlPayerAddrHstrys.onDatasetChange = (obj, option) => {
|
||||
// 데이터 셋
|
||||
let dataList = ctrlPayerAddrHstrys.dataset;
|
||||
let empty = dataList.empty;
|
||||
|
||||
let replacer = (str, dataItem) => str
|
||||
.replace(/{onclick}/gi, "pageObject['" + pageName + "'].ctrlPayerAddrHstrys.setCurrent('{data-index}');")
|
||||
|
||||
let trs = empty ?
|
||||
[ctrlPayerAddrHstrys.find("[name='tmpltNotFoundPayerHstry']").innerHTML]
|
||||
: dataList.inStrings(ctrlPayerAddrHstrys.find("[name='tmpltPayerHstryRows']").innerHTML, replacer);
|
||||
|
||||
// dataTables(그리드)에 자료 표시 td
|
||||
$(ctrlPayerAddrHstrys.find("[name='tbodyPayerHstryList']")).html(trs.join());
|
||||
};
|
||||
|
||||
// 현재 선택 자료 변경 이벤트
|
||||
ctrlPayerAddrHstrys.onCurrentChange = (item) => {
|
||||
Apply.fromDataset.currentRow(ctrlPayerAddrHstrys.dataset, item, ctrlPayerAddrHstrys.find("[name='tbodyPayerHstryList']"));
|
||||
};
|
||||
|
||||
return ctrlPayerAddrHstrys;
|
||||
}
|
Loading…
Reference in New Issue