1. 사전통지 발송 대상 수정.

2. 기타 오류 수정.
main
JoJH 2 days ago
parent 160b2f8fed
commit 62db4b7590

@ -150,10 +150,10 @@
<button type="button" class="btn btn-primary w-px-120" name="btnUpdateWrng" title="계고 수정">
계고 수정
</button>
<button type="button" class="btn btn-primary w-px-120" name="btnCreateSlctnTrgtInfo" title="선택 계고장 발송 대상">
<button type="button" class="btn btn-primary w-px-120" name="btnCreateSlctnTrgt" title="계고장 발송대상 선택 등록">
선택 등록
</button>
<button type="button" class="btn btn-primary w-px-120" name="btnCreateWholTrgtInfo" title="전체 계고장 발송 대상">
<button type="button" class="btn btn-primary w-px-120" name="btnCreateWholTrgt" title="계고장 발송대상 전체 등록">
전체 등록
</button>
</span>
@ -223,27 +223,27 @@
<td class="cmn text-center" onclick ondblclick>{CRDN_YMD_TM}</td>
<td class="cmn text-start" onclick ondblclick>{VHRNO}</td>
<td class="cmn text-center" onclick ondblclick>{RTPYR_SE_NM}</td>
<td class="cmn text-center privacy-cell" onclick="{onclick}" ondblclick="{ondblclick}">
<td class="cmn text-center privacy-cell" onclick ondblclick>
<span>{RTPYR_NO}</span>
<span>*************</span>
</td>
<td class="cmn text-start" onclick ondblclick">{RTPYR_NM}</td>
<td class="cmn text-start" onclick ondblclick">{VLTN_ARTCL}</td>
<td class="cmn text-start" onclick ondblclick">{CRDN_STDG_NM}</td>
<td class="cmn text-start" onclick ondblclick">{CRDN_PLC}</td>
<td class="bpv text-start" onclick ondblclick">{DTL_CRDN_PLC}</td>
<td class="cmn text-end" onclick ondblclick">{FFNLG_CRDN_AMT}</td>
<td class="cmn text-start" onclick ondblclick">{CRDN_STTS_NM}</td>
<td class="pvs text-center" onclick ondblclick">{CRDN_SPAREA_NM}</td>
<td class="eca text-center" onclick ondblclick">{USE_FUEL_NM}</td>
<td class="dpv text-center" onclick ondblclick">{PRK_PSBLTY_RSLT_NM}</td>
<td class="cmn text-center" onclick ondblclick">{ZIP}</td>
<td class="cmn text-start" onclick ondblclick">{ADDR}</td>
<td class="cmn text-start" onclick ondblclick">{DTL_ADDR}</td>
<td class="cmn text-center" onclick ondblclick">{REG_DT}</td>
<td class="cmn text-center" onclick ondblclick">{RGTR_NM}</td>
<td class="cmn text-center" onclick ondblclick">{MDFCN_DT}</td>
<td class="cmn text-center" onclick ondblclick">{MDFR_NM}</td>
<td class="cmn text-start" onclick ondblclick>{RTPYR_NM}</td>
<td class="cmn text-start" onclick ondblclick>{VLTN_ARTCL}</td>
<td class="cmn text-start" onclick ondblclick>{CRDN_STDG_NM}</td>
<td class="cmn text-start" onclick ondblclick>{CRDN_PLC}</td>
<td class="bpv text-start" onclick ondblclick>{DTL_CRDN_PLC}</td>
<td class="cmn text-end" onclick ondblclick>{FFNLG_CRDN_AMT}</td>
<td class="cmn text-start" onclick ondblclick>{CRDN_STTS_NM}</td>
<td class="pvs text-center" onclick ondblclick>{CRDN_SPAREA_NM}</td>
<td class="eca text-center" onclick ondblclick>{USE_FUEL_NM}</td>
<td class="dpv text-center" onclick ondblclick>{PRK_PSBLTY_RSLT_NM}</td>
<td class="cmn text-center" onclick ondblclick>{ZIP}</td>
<td class="cmn text-start" onclick ondblclick>{ADDR}</td>
<td class="cmn text-start" onclick ondblclick>{DTL_ADDR}</td>
<td class="cmn text-center" onclick ondblclick>{REG_DT}</td>
<td class="cmn text-center" onclick ondblclick>{RGTR_NM}</td>
<td class="cmn text-center" onclick ondblclick>{MDFCN_DT}</td>
<td class="cmn text-center" onclick ondblclick>{MDFR_NM}</td>
<td class="cmn dummy-td"></td>
</tr>
</template>
@ -318,7 +318,7 @@
let atLeastOne = GRID.checkbox.countChecked(element) > 0;
$P.$findn("btnCreateSlctnTrgtInfo").prop("disabled", !atLeastOne);
$P.$findn("btnCreateSlctnTrgt").prop("disabled", !atLeastOne);
Apply.toDataset.selection($P.ctrl.dataset, element, bool);
}
@ -562,14 +562,13 @@
}
// 선택 발송대상 등록 버튼 이벤트
$P.fnCreateSlctnTrgtInfo = (btnTitle) => {
$P.fnCreateSlctnTrgt = (btnTitle) => {
let selected = $P.ctrl.getDataset("selected"); // 선택 자료
if (selected.length < 1) return;
// 파라미터 설정
let params = $P.ctrl.query; // 검색 조건
params.btnTitle = btnTitle; // 버튼 title
params.callPurpose = "create"; // 호출 용도 (등록)
params.crdnIds = selected.map(info => info.CRDN_ID).join(",") // 단속 IDs
@ -585,7 +584,7 @@
}
// 전체 발송대상 등록 버튼 이벤트
$P.fnCreateWholTrgtInfo = (btnTitle) => {
$P.fnCreateWholTrgt = (btnTitle) => {
if ($P.ctrl.dataset.empty) {
dialog.alert({
content: "검색된 자료가 없습니다."
@ -597,7 +596,6 @@
// 파라미터 설정
let params = $P.ctrl.query; // 검색 조건
params.btnTitle = btnTitle; // 버튼 title
params.callPurpose = "create"; // 호출 용도 (등록)
params.crdnIds = null; // 단속 IDs
@ -628,13 +626,13 @@
// 업무 버튼 이벤트
$P.$findn("btnUpdateWrng").on("click", function() {
$P.fnUpdateWrng($P.$findn("btnUpdateWrng").attr("title")); // 계고 수정
$P.fnUpdateWrng($P.$findn("btnUpdateWrng").attr("title")); // 계고 수정
});
$P.$findn("btnCreateSlctnTrgtInfo").on("click", function() {
$P.fnCreateSlctnTrgtInfo($P.$findn("btnCreateSlctnTrgtInfo").attr("title")); // 선택 대상 등록
$P.$findn("btnCreateSlctnTrgt").on("click", function() {
$P.fnCreateSlctnTrgt($P.$findn("btnCreateSlctnTrgt").attr("title")); // 선택 대상 등록
});
$P.$findn("btnCreateWholTrgtInfo").on("click", function() {
$P.fnCreateWholTrgtInfo($P.$findn("btnCreateWholTrgtInfo").attr("title")); // 전체 대상 등록
$P.$findn("btnCreateWholTrgt").on("click", function() {
$P.fnCreateWholTrgt($P.$findn("btnCreateWholTrgt").attr("title")); // 전체 대상 등록
});
// DataTables width 변경 조정

@ -12,6 +12,7 @@
<form name="frmEdit">
<input type="hidden" name="sggCd" />
<input type="hidden" name="taskSeCd" />
<input type="hidden" name="vltnCd" />
<div class="row g-1">
<div class="col-md-12 text-end px-2">
@ -299,6 +300,7 @@
// 기본 데이터 설정
$P.$findn("sggCd").val("${sggCd}"); // 시군구 코드
$P.$findn("taskSeCd").val("${taskSeCd}"); // 업무 구분 코드
$P.$findn("vltnCd").val("${vltnCd}"); // 위반 코드
$P.$findn("sndngYmd").datepicker("setDate", TODAY()); // 발송 일자
$P.$findn("sndngEndYmd").datepicker("setDate", TODAY()); // 납기 일자

@ -171,20 +171,20 @@
<tr data-index="{data-index}">
<td class="cmn text-center" onclick ondblclick>{ROW_NUM}</td>
<td class="cmn text-center"><input type="checkbox" class="form-check-input" name="gridCheckbox" value="{data-index}" onchange="pageObject['${pageName}'].dataTableCheckbox(this, this.checked);" /></td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{TASK_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_REG_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_SE_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{VLTN_ARTCL}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_END_YMD}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{TNOCS}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{GRAMT}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{DOC_NO}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{TTL_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{REG_DT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RGTR_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{MDFCN_DT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{MDFR_NM}</td>
<td class="cmn text-center" onclick ondblclick>{TASK_SE_NM}</td>
<td class="cmn text-center" onclick ondblclick>{SNDNG_REG_SE_NM}</td>
<td class="cmn text-center" onclick ondblclick>{SNDNG_SE_NM}</td>
<td class="cmn text-start" onclick ondblclick>{VLTN_ARTCL}</td>
<td class="cmn text-center" onclick ondblclick>{SNDNG_YMD}</td>
<td class="cmn text-center" onclick ondblclick>{SNDNG_END_YMD}</td>
<td class="cmn text-end" onclick ondblclick>{TNOCS}</td>
<td class="cmn text-end" onclick ondblclick>{GRAMT}</td>
<td class="cmn text-start" onclick ondblclick>{DOC_NO}</td>
<td class="cmn text-start" onclick ondblclick>{TTL_NM}</td>
<td class="cmn text-center" onclick ondblclick>{REG_DT}</td>
<td class="cmn text-center" onclick ondblclick>{RGTR_NM}</td>
<td class="cmn text-center" onclick ondblclick>{MDFCN_DT}</td>
<td class="cmn text-center" onclick ondblclick>{MDFR_NM}</td>
<td class="cmn dummy-td"></td>
</tr>
</template>

@ -75,29 +75,29 @@
</tbody>
<template is="curly-brackets" name="tmpltRows">
<tr data-index="{data-index}">
<td class="cmn text-center" onclick ondblclick">{ROW_NUM}</td>
<td class="cmn text-center" onclick ondblclick">{SNDNG_DTL_STTS_NM}</td>
<td class="cmn text-center" onclick ondblclick">{RG_NO}</td>
<td class="cmn text-center" onclick ondblclick">{SNDNG_YMD}</td>
<td class="cmn text-center" onclick ondblclick">{DUDT_YMD}</td>
<td class="cmn text-start" onclick ondblclick">{RCPN_NM}</td>
<td class="cmn text-center" onclick ondblclick">{RCPN_ZIP}</td>
<td class="cmn text-start" onclick ondblclick">{RCPN_ADDR}</td>
<td class="cmn text-start" onclick ondblclick">{RCPN_DTL_ADDR}</td>
<td class="cmn text-center" onclick ondblclick">{DLVR_YMD}</td>
<td class="cmn text-center" onclick ondblclick">{DLVR_TM}</td>
<td class="cmn text-start" onclick ondblclick">{UNDLVR_RSN_NM}</td>
<td class="cmn text-start" onclick ondblclick">{ACTL_RCPN_NM}</td>
<td class="cmn text-start" onclick ondblclick">{RCPN_REL_NM}</td>
<td class="cmn text-center" onclick ondblclick">{CRDN_DT}</td>
<td class="cmn text-start" onclick ondblclick">{VHRNO}</td>
<td class="cmn text-start" onclick ondblclick">{CRDN_STDG_NM}</td>
<td class="cmn text-start" onclick ondblclick">{CRDN_PLC}</td>
<td class="cmn text-end" onclick ondblclick">{FFNLG_AMT}</td>
<td class="cmn text-center" onclick ondblclick">{REG_DT}</td>
<td class="cmn text-center" onclick ondblclick">{RGTR_NM}</td>
<td class="cmn text-center" onclick ondblclick">{MDFCN_DT}</td>
<td class="cmn text-center" onclick ondblclick">{MDFR_NM}</td>
<td class="cmn text-center" onclick ondblclick>{ROW_NUM}</td>
<td class="cmn text-center" onclick ondblclick>{SNDNG_DTL_STTS_NM}</td>
<td class="cmn text-center" onclick ondblclick>{RG_NO}</td>
<td class="cmn text-center" onclick ondblclick>{SNDNG_YMD}</td>
<td class="cmn text-center" onclick ondblclick>{DUDT_YMD}</td>
<td class="cmn text-start" onclick ondblclick>{RCPN_NM}</td>
<td class="cmn text-center" onclick ondblclick>{RCPN_ZIP}</td>
<td class="cmn text-start" onclick ondblclick>{RCPN_ADDR}</td>
<td class="cmn text-start" onclick ondblclick>{RCPN_DTL_ADDR}</td>
<td class="cmn text-center" onclick ondblclick>{DLVR_YMD}</td>
<td class="cmn text-center" onclick ondblclick>{DLVR_TM}</td>
<td class="cmn text-start" onclick ondblclick>{UNDLVR_RSN_NM}</td>
<td class="cmn text-start" onclick ondblclick>{ACTL_RCPN_NM}</td>
<td class="cmn text-start" onclick ondblclick>{RCPN_REL_NM}</td>
<td class="cmn text-center" onclick ondblclick>{CRDN_DT}</td>
<td class="cmn text-start" onclick ondblclick>{VHRNO}</td>
<td class="cmn text-start" onclick ondblclick>{CRDN_STDG_NM}</td>
<td class="cmn text-start" onclick ondblclick>{CRDN_PLC}</td>
<td class="cmn text-end" onclick ondblclick>{FFNLG_AMT}</td>
<td class="cmn text-center" onclick ondblclick>{REG_DT}</td>
<td class="cmn text-center" onclick ondblclick>{RGTR_NM}</td>
<td class="cmn text-center" onclick ondblclick>{MDFCN_DT}</td>
<td class="cmn text-center" onclick ondblclick>{MDFR_NM}</td>
<td class="cmn dummy-td"></td>
</tr>
</template>
@ -277,7 +277,7 @@
// 초기화 이벤트
$P.fnReset = (taskSeCd) => {
// 초기화
$P.findn("frmSearch").reset(); // 화면 초기화
$P.findn("frmEdit").reset(); // 화면 초기화
// 기본 데이터 설정
$P.$findn("sggCd").val("${sggCd}"); // 시군구 코드

File diff suppressed because it is too large Load Diff

@ -237,10 +237,10 @@
<label class="col-form-label bg-label-danger pe-2 w-px-120 text-sm-center">납부자 정보</label>
<!-- 버튼 우측 정렬 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-primary w-px-120" name="btnDeleteCrdnPayer" title="납부자 초기화">
<button type="button" class="btn btn-primary w-px-120" name="btnDeleteCrdnPayer" title="납부자 초기화" disabled>
납부자 초기화
</button>
<button type="button" class="btn btn-primary w-px-120" name="btnUpdatePayer" title="납부자 수정">
<button type="button" class="btn btn-primary w-px-120" name="btnUpdatePayer" title="납부자 수정" disabled>
납부자 수정
</button>
</span>
@ -942,7 +942,13 @@
existVideo = true;
}
initPhotoMain("${pageName}", crdnPayerInfo.fileList, existVideo);
// 사진 버튼 visible
let showBtn = true;
if (pageObject["${pageNameMain}"].callPurpose == "view") {
showBtn = false;
}
initPhotoMain("${pageName}", crdnPayerInfo.fileList, existVideo, showBtn);
});
</script>

@ -127,7 +127,7 @@
<label class="w-px-120 bg-label-danger pe-2 col-form-label text-sm-center">심의 정보</label>
<!-- 버튼 우측 정렬 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-primary w-px-120" name="btnUpdateOpnnSbmsnDlbrt" title="심의">
<button type="button" class="btn btn-primary w-px-120" name="btnUpdateOpnnSbmsnDlbrt" title="심의" disabled>
의견제출 심의
</button>
</span>

@ -88,7 +88,7 @@ function newSndb01010Control(pageName, doctx="[data-doctx='sndb01010']") {
// gridCheckbox
Apply.fromDataset.gridCheckbox(ctrl.dataset, ctrl.find("[name='tbodyList']"), 1, selectedArr);
// gridButton
Apply.fromDataset.gridButton(ctrl.dataset, ctrl.find("[name='btnCreateSlctnTrgtInfo']"), selectedArr); // 선택 대상 등록 버튼
Apply.fromDataset.gridButton(ctrl.dataset, ctrl.find("[name='btnCreateSlctnTrgt']"), selectedArr); // 선택 대상 등록 버튼
};
// 상세 정보 dialog

@ -40,7 +40,8 @@ function newSndb01020Control(pageName, doctx="[data-doctx='sndb01020']") {
let empty = dataList.empty;
let replacer = (str, dataItem) => str
.replace(/{onclick}/gi, "pageObject['" + pageName + "'].dataTableClick('{data-index}');");
.replace(/{onclick}/gi, "pageObject['" + pageName + "'].dataTableClick('{data-index}');")
.replace(/{ondblclick}/gi, "pageObject['" + pageName + "'].dataTableDblClick('{data-index}');");
let trs = empty ?
[ctrl.find("[name='tmpltNotFound']").innerHTML]

@ -36,7 +36,8 @@ function newSndb01040Control(pageName, doctx="[data-doctx='sndb01040']") {
let empty = dataList.empty;
let replacer = (str, dataItem) => str
.replace(/{onclick}/gi, "pageObject['" + pageName + "'].dataTableClick('{data-index}');");
.replace(/{onclick}/gi, "pageObject['" + pageName + "'].dataTableClick('{data-index}');")
.replace(/{ondblclick}/gi, "pageObject['" + pageName + "'].dataTableDblClick('{data-index}');");
let trs = empty ?
[ctrl.find("[name='tmpltNotFound']").innerHTML]

@ -0,0 +1,127 @@
function newSndb01050Control(pageName, doctx="[data-doctx='sndb01050']") {
let ctrl = new DatasetControl({
doctx: doctx
, prefix: "advntceTrgt"
, prefixName: "사전통지 발송 대상"
, dataGetter: obj => obj["List"]
, keys: ["CRDN_ID"]
, appendData: true
, infoSize: "xl"
, urls: {
load: "/list.do"
, getInfo: "/info.do"
, remove: "/remove.do"
}
, formats: {
CVLCPT_RCPT_YMD: dateFormat
, CRDN_YMD_TM: datetimeFormat
, FFNLG_AMT: numberFormat
, ADVNTCE_AMT: 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='btnCreateSlctnTrgt']"), 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.query.crdnIds = null; // 단속 IDs
ctrl.reload({all : true}); // 자료 재조회
}
});
}
});
}
return ctrl;
}
Loading…
Cancel
Save