|
|
|
@ -39,7 +39,7 @@
|
|
|
|
|
<div class="col-12">
|
|
|
|
|
<label class="form-label fw-bold form-search-title text-end">업무구분</label>
|
|
|
|
|
<span class="form-search-linebox">
|
|
|
|
|
<c:forEach items="${FIM054List}" var="item">
|
|
|
|
|
<c:forEach items="${TaskListForSgg}" var="item">
|
|
|
|
|
<label>
|
|
|
|
|
<input type="radio" class="form-check-input" name="taskSeCd" alt="업무구분"
|
|
|
|
|
value="${item.code}" onchange="fnResetAndChangeBiz${pageName}(this.value);">
|
|
|
|
@ -206,6 +206,12 @@
|
|
|
|
|
<thead class="sticky-thead">
|
|
|
|
|
<tr id="theadTr--${pageName}"
|
|
|
|
|
data-by="by--${pageName}" data-by-output="byOutput--${pageName}" data-main-option="mainOption--${pageName}" data-sub-option="subOption--${pageName}">
|
|
|
|
|
</tr>
|
|
|
|
|
</thead>
|
|
|
|
|
<tbody id="tbody--${pageName}">
|
|
|
|
|
</tbody>
|
|
|
|
|
|
|
|
|
|
<template id="${infoPrefix}Col--${pageName}">
|
|
|
|
|
<th class="cmn" style="width: 72px;">NO.</th>
|
|
|
|
|
<th class="cmn" style="width: 56px;"><input type="checkbox" class="form-check-input" onchange="${pageName}Control.select(this.checked);"></th>
|
|
|
|
|
<th class="cmn" style="width: 160px;">업무구분</th>
|
|
|
|
@ -227,23 +233,28 @@
|
|
|
|
|
<th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('ANS_CN', this.innerText, 'match', 'part');">답변내용</th>
|
|
|
|
|
<th class="cmn" style="width: 180px;" onclick="searchFromGridTitle('CRDN_YMD', this.innerText, 'ymd', '');">단속일시</th>
|
|
|
|
|
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('VHRNO', this.innerText, 'match', 'part');">차량번호</th>
|
|
|
|
|
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RTPYR_SE_CD', this.innerText, 'codeValue', 'FIM011');">납부자구분</th>
|
|
|
|
|
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('RTPYR_NO', this.innerText, 'ymd', '');">납부자번호</th>
|
|
|
|
|
<th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('RTPYR_NM', this.innerText, 'match', 'part');">납부자명</th>
|
|
|
|
|
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('CRDN_STDG_NM', this.innerText, 'match', 'part');">단속법정동</th>
|
|
|
|
|
<th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('CRDN_PLC', this.innerText, 'match', 'part');">단속장소</th>
|
|
|
|
|
<th class="bpv" style="width: 280px;" onclick="searchFromGridTitle('DTL_CRDN_PLC', this.innerText, 'match', 'part');">상세단속장소</th>
|
|
|
|
|
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('VLTN_ARTCL', this.innerText, 'match', 'part');">위반항목</th>
|
|
|
|
|
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_CRDN_AMT', this.innerText, 'match', 'part');">최초단속금액</th>
|
|
|
|
|
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_AMT', this.innerText, 'match', 'part');">과태료금액</th>
|
|
|
|
|
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CRDN_STTS_CD', this.innerText, 'codeValue', 'FIM010');">처리상태</th>
|
|
|
|
|
<th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('RTPYR_NM', this.innerText, 'match', 'part');">납부자명</th>
|
|
|
|
|
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RTPYR_BRDT', this.innerText, 'match', 'part');">납부자생일</th>
|
|
|
|
|
<th class="pvs" style="width: 140px;" onclick="searchFromGridTitle('CRDN_SPAREA_CD', this.innerText, 'codeValue', 'FIM007');">단속특별구역</th>
|
|
|
|
|
<th class="eca" style="width: 140px;" onclick="searchFromGridTitle('USE_FUEL_CD', this.innerText, 'codeValue', 'LVS005');">사용연료</th>
|
|
|
|
|
<th class="dpv" style="width: 140px;" onclick="searchFromGridTitle('PARKNG_PSBLTY_RSLT_CD', this.innerText, 'codeValue', 'FIM034');">주차가능여부</th>
|
|
|
|
|
<th class="cmn" style="width: 100px;" onclick="searchFromGridTitle('ZIP', this.innerText, 'match', 'part');">우편번호</th>
|
|
|
|
|
<th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('ADDR', this.innerText, 'match', 'part');">주소</th>
|
|
|
|
|
<th class="cmn" style="width: 320px;" onclick="searchFromGridTitle('DTL_ADDR', this.innerText, 'match', 'part');">상세주소</th>
|
|
|
|
|
<th class="cmn" style="width: 180px;">등록일시</th>
|
|
|
|
|
<th class="cmn" style="width: 140px;">등록사용자</th>
|
|
|
|
|
<th class="cmn" style="width: 180px;">수정일시</th>
|
|
|
|
|
<th class="cmn" style="width: 140px;">수정사용자</th>
|
|
|
|
|
<th class="cmn dummy-th"></th>
|
|
|
|
|
</tr>
|
|
|
|
|
</thead>
|
|
|
|
|
<tbody id="tbody--${pageName}">
|
|
|
|
|
</tbody>
|
|
|
|
|
</template>
|
|
|
|
|
<template id="${infoPrefix}Row--${pageName}">
|
|
|
|
|
<tr data-key="{OPNN_ID}">
|
|
|
|
|
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td>
|
|
|
|
@ -267,14 +278,22 @@
|
|
|
|
|
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{ANS_CN}</td>
|
|
|
|
|
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_YMD_TM}</td>
|
|
|
|
|
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{VHRNO}</td>
|
|
|
|
|
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_SE_NM}</td>
|
|
|
|
|
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_NO}</td>
|
|
|
|
|
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_NM}</td>
|
|
|
|
|
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_STDG_NM}</td>
|
|
|
|
|
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_PLC}</td>
|
|
|
|
|
<td class="bpv text-start" onclick="{onclick}" ondblclick="{ondblclick}">{DTL_CRDN_PLC}</td>
|
|
|
|
|
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{VLTN_ARTCL}</td>
|
|
|
|
|
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{FFNLG_CRDN_AMT}</td>
|
|
|
|
|
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{FFNLG_AMT}</td>
|
|
|
|
|
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_STTS_NM}</td>
|
|
|
|
|
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_NM}</td>
|
|
|
|
|
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_BRDT_MASK}</td>
|
|
|
|
|
<td class="pvs text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_SPAREA_NM}</td>
|
|
|
|
|
<td class="eca text-center" onclick="{onclick}" ondblclick="{ondblclick}">{USE_FUEL_NM}</td>
|
|
|
|
|
<td class="dpv text-center" onclick="{onclick}" ondblclick="{ondblclick}">{PARKNG_PSBLTY_RSLT_NM}</td>
|
|
|
|
|
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ZIP}</td>
|
|
|
|
|
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{ADDR}</td>
|
|
|
|
|
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{DTL_ADDR}</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>
|
|
|
|
@ -283,8 +302,20 @@
|
|
|
|
|
</tr>
|
|
|
|
|
</template>
|
|
|
|
|
<template id="${infoPrefix}NotFound--${pageName}">
|
|
|
|
|
<tr class="odd">
|
|
|
|
|
<td valign="top" colspan="34" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
|
|
|
|
|
<tr class="bpv">
|
|
|
|
|
<td valign="top" colspan="39" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr class="dpv">
|
|
|
|
|
<td valign="top" colspan="39" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr class="eca">
|
|
|
|
|
<td valign="top" colspan="39" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr class="pvs">
|
|
|
|
|
<td valign="top" colspan="39" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr class="tpv">
|
|
|
|
|
<td valign="top" colspan="39" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</template>
|
|
|
|
|
</table>
|
|
|
|
@ -438,15 +469,24 @@
|
|
|
|
|
renderList${pageName} = (totalSize) => {
|
|
|
|
|
let ${infoPrefix}List = ${pageName}Control.dataset;
|
|
|
|
|
let empty = ${infoPrefix}List.empty;
|
|
|
|
|
let clsForTask = $("#frmSearch--${pageName} input[name='taskSeCd']:checked").val().toLowerCase(); // 소문자
|
|
|
|
|
|
|
|
|
|
let trs = empty ?
|
|
|
|
|
[document.getElementById("${infoPrefix}NotFound--${pageName}").innerHTML] : <%-- from template#${infoPrefix}NotFound --%>
|
|
|
|
|
${infoPrefix}List.inStrings(
|
|
|
|
|
document.getElementById("${infoPrefix}Row--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%>
|
|
|
|
|
(str, dataItem) => str
|
|
|
|
|
.replace(/{onclick}/gi, "${pageName}Control.setCurrent('" + dataItem.getValue("OPNN_ID") + "');")
|
|
|
|
|
.replace(/{ondblclick}/gi, "getTotalInfo${pageName}('" + dataItem.getValue("CRDN_ID") + "');")
|
|
|
|
|
);
|
|
|
|
|
// 업무별 DataTables(그리드) tr, td
|
|
|
|
|
let foundContent = document.getElementById("${infoPrefix}Row--${pageName}").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, "${pageName}Control.setCurrent('" + dataItem.getValue("LEVY_EXCL_ID") + "');")
|
|
|
|
|
.replace(/{ondblclick}/gi, "getTotalInfo${pageName}('" + dataItem.getValue("CRDN_ID") + "');");
|
|
|
|
|
|
|
|
|
|
let trs = empty ? [document.getElementById("${infoPrefix}NotFound--${pageName}").content.querySelector("." + clsForTask + ",.cmn").outerHTML]
|
|
|
|
|
: ${infoPrefix}List.inStrings(foundTr.outerHTML, replacer);
|
|
|
|
|
|
|
|
|
|
let noMore = (totalSize == ${infoPrefix}List.length);
|
|
|
|
|
let initScroll = (${pageName}Control.query.pageNum < 2) && (${pageName}Control.untilPageNum == 0);
|
|
|
|
@ -578,11 +618,18 @@
|
|
|
|
|
taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 초기 기본 설정
|
|
|
|
|
initForm${pageName}();
|
|
|
|
|
// 화면 초기화
|
|
|
|
|
$("#frmSearch--${pageName}")[0].reset();
|
|
|
|
|
|
|
|
|
|
// 초기 기본 설정
|
|
|
|
|
initFormData${pageName}(taskSeCd);
|
|
|
|
|
// 업무 구분별 설정
|
|
|
|
|
setTask${pageName}(taskSeCd);
|
|
|
|
|
// 기본 데이터 설정
|
|
|
|
|
setFormData${pageName}(taskSeCd);
|
|
|
|
|
|
|
|
|
|
// dataset 초기화
|
|
|
|
|
${pageName}Control.dataset.clear();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 검색 버튼 이벤트
|
|
|
|
@ -712,25 +759,60 @@
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 화면 초기 설정
|
|
|
|
|
initForm${pageName} = () => {
|
|
|
|
|
// 화면 초기화
|
|
|
|
|
$("#frmSearch--${pageName}")[0].reset();
|
|
|
|
|
initFormData${pageName} = (taskSeCd) => {
|
|
|
|
|
// 초기 데이터 설정
|
|
|
|
|
if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") {
|
|
|
|
|
clsForTask = $("#layout-navbar input[name='taskSeCd']:checked").val();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// input, select 초기화
|
|
|
|
|
let searchForm = $("#frmSearch--${pageName}");
|
|
|
|
|
searchForm.find("input[type='radio']").not("[name='taskSeCd']").prop("checked", false);
|
|
|
|
|
searchForm.find("input[type='checkbox']").prop("checked", false);
|
|
|
|
|
searchForm.find("input[type='text']").val("");
|
|
|
|
|
searchForm.find("input[type='hidden']").val("");
|
|
|
|
|
searchForm.find("select").each(function() { $(this).find("option:eq(0)").prop("selected", true); });
|
|
|
|
|
|
|
|
|
|
// 최고 관리자 경우 업무구분을 선택할 수 있도록 하자.
|
|
|
|
|
$("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) {
|
|
|
|
|
$(this).prop("disabled", "true");
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드
|
|
|
|
|
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분
|
|
|
|
|
|
|
|
|
|
// 달력 초기화
|
|
|
|
|
initDatepicker("frmSearch--${pageName}");
|
|
|
|
|
$("#schRcptYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date);
|
|
|
|
|
$("#schRcptYmdFrom--${pageName}").datepicker("setDate", new Date());
|
|
|
|
|
$("#schRcptYmdTo--${pageName}").datepicker("setDate", new Date());
|
|
|
|
|
|
|
|
|
|
// 동적 검색
|
|
|
|
|
$("#byOutput--${pageName}").val("동적 검색");
|
|
|
|
|
|
|
|
|
|
// 사용자 이름
|
|
|
|
|
$("#schRgtrNm--${pageName}").prop("readonly", true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// dataset 초기화
|
|
|
|
|
${pageName}Control.dataset.clear();
|
|
|
|
|
// 업무 구분별 설정
|
|
|
|
|
setTask${pageName} = (taskSeCd) => {
|
|
|
|
|
let clsForTask = taskSeCd.toLowerCase();
|
|
|
|
|
|
|
|
|
|
// 업무별 조회조건
|
|
|
|
|
renderForTask("frmSearch--${pageName}", clsForTask);
|
|
|
|
|
|
|
|
|
|
// 업무별 그리드 th
|
|
|
|
|
$("#DataTables_Table_0--${pageName}").find("th").resizable( "destroy" );
|
|
|
|
|
|
|
|
|
|
let colContent = document.getElementById("${infoPrefix}Col--${pageName}").content;
|
|
|
|
|
let cols = $(colContent).find("." + clsForTask + ",.cmn");
|
|
|
|
|
let colsOuterHTML = "";
|
|
|
|
|
|
|
|
|
|
cols.each(function() {
|
|
|
|
|
colsOuterHTML += this.outerHTML;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$("#theadTr--${pageName}").html(colsOuterHTML);
|
|
|
|
|
$("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 기본 데이터 설정
|
|
|
|
@ -738,9 +820,9 @@
|
|
|
|
|
// ${pageName}Control 설정
|
|
|
|
|
${pageName}Control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30
|
|
|
|
|
|
|
|
|
|
// 화면 데이터 설정
|
|
|
|
|
$("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드
|
|
|
|
|
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분
|
|
|
|
|
// 일자
|
|
|
|
|
$("#schRcptYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date);
|
|
|
|
|
$("#schRcptYmdTo--${pageName}").datepicker("setDate", new Date());
|
|
|
|
|
|
|
|
|
|
// URL 설정
|
|
|
|
|
setURL${pageName}(taskSeCd);
|
|
|
|
|