You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
498 lines
21 KiB
Plaintext
498 lines
21 KiB
Plaintext
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%>
|
|
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
|
|
|
|
<!-- Page Body -->
|
|
<div class="card wrapper-list" data-doctx="${pageName}">
|
|
<div>
|
|
<!-- 입력 영역 -->
|
|
<form name="frmEdit">
|
|
<!-- hidden -->
|
|
<input type="hidden" name="crdnId" data-map="CRDN_ID" />
|
|
|
|
<div class="row g-1">
|
|
<div class="col-md-2">
|
|
<label is="name-label" class="w-px-80 bg-lighter pe-2 col-form-label text-sm-end" for="vhrno">차량번호</label>
|
|
<input is="id-input" type="text" class="form-control w-65 fw-bold" name="vhrno" data-map="VHRNO" readonly />
|
|
</div>
|
|
<div class="col-md-2">
|
|
<label is="name-label" class="w-px-80 bg-lighter pe-2 col-form-label text-sm-end" for="crdnYmdTm">단속일시</label>
|
|
<input is="id-input" type="text" class="form-control w-65 fw-bold" name="crdnYmdTm" data-map="CRDN_YMD_TM" data-fmt-type="dt" readonly />
|
|
</div>
|
|
<div class="col-md-2">
|
|
<label is="name-label" class="w-px-80 bg-lighter pe-2 col-form-label text-sm-end" for="gojiNo">고지번호</label>
|
|
<input is="id-input" type="text" class="form-control w-65 fw-bold" name="gojiNo" data-map="GOJI_NO" readonly />
|
|
</div>
|
|
<div class="col-md-4">
|
|
<label is="name-label" class="w-px-80 bg-lighter pe-2 col-form-label text-sm-end" for="crdnSttsNm">단속상태</label>
|
|
<input is="id-input" type="text" class="form-control w-30 fw-bold text-primary" name="crdnSttsNm" data-map="CRDN_STTS_NM" readonly />
|
|
<input is="id-input" type="text" class="form-control w-35 fw-bold" name="crdnSttsChgDt" data-map="CRDN_STTS_CHG_DT" data-fmt-type="dt" readonly />
|
|
<input type="hidden" name="crdnSttsCd" data-map="CRDN_STTS_CD" />
|
|
</div>
|
|
<!-- 자료 이동 버튼 -->
|
|
<div class="col-md-2 text-end">
|
|
<input is="id-input" type="text" class="form-control w-px-120 text-center fw-bold" name="countStatus" readonly />
|
|
<button type="button" class="w-px-50 btn-PageUp" name="btnPrev">◀</button>
|
|
<button type="button" class="w-px-50 btn-PageDown" name="btnNext">▶</button>
|
|
</div>
|
|
</div> <!-- <div class="row g-1"> -->
|
|
</form>
|
|
<!-- 입력 영역 -->
|
|
</div>
|
|
|
|
<div class="nav-align-top">
|
|
<ul class="nav nav-tabs" role="tablist">
|
|
<li class="nav-item">
|
|
<button type="button" class="nav-link w-px-160 h-75 active" name="btnCrdnPayer" role="tab" data-bs-toggle="tab" data-bs-target="#crdnPayerInfo" aria-controls="crdnPayerInfo" aria-selected="true">
|
|
단속 정보
|
|
</button>
|
|
</li>
|
|
<li class="nav-item">
|
|
<button type="button" class="nav-link w-px-160 h-75" name="btnOpnnSbmsn" role="tab" data-bs-toggle="tab" data-bs-target="#opnnSbmsnInfo" aria-controls="opnnSbmsnInfo" aria-selected="false">
|
|
의견제출 정보
|
|
</button>
|
|
</li>
|
|
<li class="nav-item">
|
|
<button type="button" class="nav-link w-px-160 h-75" name="btnSndng" role="tab" data-bs-toggle="tab" data-bs-target="#sndngInfo" aria-controls="sndngInfo" aria-selected="false">
|
|
발송반송 정보
|
|
</button>
|
|
</li>
|
|
<li class="nav-item">
|
|
<button type="button" class="nav-link w-px-160 h-75" name="btnPrcs" role="tab" data-bs-toggle="tab" data-bs-target="#prcsInfo" aria-controls="prcsInfo" aria-selected="false">
|
|
처리상세 정보
|
|
</button>
|
|
</li>
|
|
<li class="nav-item">
|
|
<button type="button" class="nav-link w-px-160 h-75" name="btnLevy" role="tab" data-bs-toggle="tab" data-bs-target="#levyInfo" aria-controls="levyInfo" aria-selected="false">
|
|
부과체납 정보
|
|
</button>
|
|
</li>
|
|
<li class="nav-item">
|
|
<button type="button" class="nav-link w-px-160 h-75" name="btnRcvmt" role="tab" data-bs-toggle="tab" data-bs-target="#rcvmtInfo" aria-controls="rcvmtInfo" aria-selected="false">
|
|
수납 정보
|
|
</button>
|
|
</li>
|
|
<%--
|
|
<li class="nav-item">
|
|
<button type="button" class="nav-link w-px-160 h-75" name="btnCvlcptDscsn" role="tab" data-bs-toggle="tab" data-bs-target="#cvlcptDscsnInfo" aria-controls="cvlcptDscsnInfo" aria-selected="false">
|
|
민원상담 정보
|
|
</button>
|
|
</li>
|
|
--%>
|
|
</ul>
|
|
|
|
<div class="tab-content p-0">
|
|
<div class="tab-pane fade show active" id="crdnPayerInfo" role="tabpanel">단속 정보</div>
|
|
<div class="tab-pane fade" id="opnnSbmsnInfo" role="tabpanel">의견제출 정보</div>
|
|
<div class="tab-pane fade" id="sndngInfo" role="tabpanel">발송반송 정보</div>
|
|
<div class="tab-pane fade" id="prcsInfo" role="tabpanel">처리상세 정보</div>
|
|
<div class="tab-pane fade" id="levyInfo" role="tabpanel">부과체납 정보</div>
|
|
<div class="tab-pane fade" id="rcvmtInfo" role="tabpanel">수납 정보</div>
|
|
<%-- <div class="tab-pane fade" id="cvlcptDscsnInfo" role="tabpanel">민원상담 정보</div>--%>
|
|
</div>
|
|
</div>
|
|
</div> <!-- <div class="card wrapper-list"> -->
|
|
|
|
<script>
|
|
LoadScript("sprt02010Script", wctx.url("/resources/js/fims/sprt/sprt02010.js?ver=${ver}"));
|
|
|
|
/**************************************************************************
|
|
* Global Variable
|
|
**************************************************************************/
|
|
pageObject["${pageName}"] = newDoctxFinder("${pageName}");
|
|
|
|
/**************************************************************************
|
|
* script 진입
|
|
**************************************************************************/
|
|
$(document).ready(function() {
|
|
// pageObject
|
|
let $P = pageObject["${pageName}"];
|
|
|
|
// datasetControl
|
|
$P.ctrlMain = newSprt02010Control("${pageName}", "[data-doctx=${pageName}]");
|
|
// infoDialog 호출한 pageName
|
|
$P.callPageName = "${callPageName}";
|
|
// infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정)
|
|
$P.callPurpose = "${callPurpose}";
|
|
// 자료 이동을 위한 자료의 Index. 0부터 시작.
|
|
$P.curDataIndex;
|
|
// 현재 탭의 위치
|
|
$P.activeTabIndex = 0;
|
|
|
|
/**************************************************************************
|
|
* 네이게이션 Event
|
|
**************************************************************************/
|
|
// 건수 표기
|
|
$P.fnChangeCountStatus = () => {
|
|
// 종료
|
|
if ($P.callPageName == "" || $P.callPageName == "noPageName") return;
|
|
|
|
//
|
|
let dataItems;
|
|
if (pageObject[$P.callPageName].ctrl.flag == "up") {
|
|
dataItems = pageObject[$P.callPageName].ctrl.upDataset._items;
|
|
} else if (pageObject[$P.callPageName].ctrl.flag == "down") {
|
|
dataItems = pageObject[$P.callPageName].ctrl.downDataset._items;
|
|
} else {
|
|
dataItems = pageObject[$P.callPageName].ctrl.dataset._items;
|
|
}
|
|
|
|
// $P.curDataIndex 에 값이 없다면..
|
|
if ($P.curDataIndex == null) {
|
|
let curCrdnId = $P.ctrlMain.getValue("CRDN_ID");
|
|
|
|
for (iLoop = 0; iLoop < dataItems.length; iLoop++) {
|
|
if (dataItems[iLoop].data.CRDN_ID == curCrdnId) {
|
|
$P.curDataIndex = iLoop;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
// 건수 표시
|
|
let viewNumber = $P.curDataIndex + 1;
|
|
$P.$findn("countStatus").val(viewNumber + " of " + dataItems.length);
|
|
}
|
|
|
|
// 이전 자료 조회
|
|
$P.fnPrev = () => {
|
|
// 종료
|
|
if ($P.callPageName == "" || $P.callPageName == "noPageName") return;
|
|
|
|
//
|
|
let dataItems;
|
|
if (pageObject[$P.callPageName].ctrl.flag == "up") {
|
|
dataItems = pageObject[$P.callPageName].ctrl.upDataset._items;
|
|
} else if (pageObject[$P.callPageName].ctrl.flag == "down") {
|
|
dataItems = pageObject[$P.callPageName].ctrl.downDataset._items;
|
|
} else {
|
|
dataItems = pageObject[$P.callPageName].ctrl.dataset._items;
|
|
}
|
|
|
|
let curCrdnId = $P.ctrlMain.getValue("CRDN_ID");
|
|
|
|
// 초기 값은 callControl dataset 의 총 건수 - 1
|
|
if ($P.curDataIndex == null) {
|
|
$P.curDataIndex = dataItems.length - 1;
|
|
}
|
|
|
|
for (iLoop = $P.curDataIndex; iLoop >= 0; iLoop--) {
|
|
if (dataItems[iLoop].data.CRDN_ID == curCrdnId) {
|
|
if (iLoop - 1 < 0) return; // 종료
|
|
|
|
$P.curDataIndex = iLoop - 1;
|
|
break;
|
|
}
|
|
}
|
|
|
|
let crdnId = dataItems[$P.curDataIndex].data.CRDN_ID;
|
|
// 단속 ID 가 없다면.. return
|
|
if (!crdnId) return;
|
|
|
|
let params = {
|
|
callPurpose: "view"
|
|
, sggCd: dataItems[$P.curDataIndex].data.SGG_CD
|
|
, taskSeCd: dataItems[$P.curDataIndex].data.TASK_SE_CD
|
|
, crdnId: dataItems[$P.curDataIndex].data.CRDN_ID
|
|
, delYn: "N"
|
|
};
|
|
|
|
$P.fnRefreshInfo(params);
|
|
}
|
|
|
|
// 다음 자료 조회
|
|
$P.fnNext = () => {
|
|
// 종료
|
|
if ($P.callPageName == "" || $P.callPageName == "noPageName") return;
|
|
|
|
//
|
|
let dataItems;
|
|
if (pageObject[$P.callPageName].ctrl.flag == "up") {
|
|
dataItems = pageObject[$P.callPageName].ctrl.upDataset._items;
|
|
} else if (pageObject[$P.callPageName].ctrl.flag == "down") {
|
|
dataItems = pageObject[$P.callPageName].ctrl.downDataset._items;
|
|
} else {
|
|
dataItems = pageObject[$P.callPageName].ctrl.dataset._items;
|
|
}
|
|
|
|
let curCrdnId = $P.ctrlMain.getValue("CRDN_ID");
|
|
|
|
// 초기 값은 0
|
|
if ($P.curDataIndex == null) {
|
|
$P.curDataIndex = 0;
|
|
}
|
|
|
|
for (iLoop = $P.curDataIndex; iLoop < dataItems.length; iLoop++) {
|
|
if (dataItems[iLoop].data.CRDN_ID == curCrdnId) {
|
|
if (iLoop + 1 >= dataItems.length) return; // 종료
|
|
|
|
$P.curDataIndex = iLoop + 1;
|
|
break;
|
|
}
|
|
}
|
|
|
|
let crdnId = dataItems[$P.curDataIndex].data.CRDN_ID;
|
|
// 단속 ID 가 없다면.. return
|
|
if (!crdnId) return;
|
|
|
|
let params = {
|
|
callPurpose: "view"
|
|
, sggCd: dataItems[$P.curDataIndex].data.SGG_CD
|
|
, taskSeCd: dataItems[$P.curDataIndex].data.TASK_SE_CD
|
|
, crdnId: dataItems[$P.curDataIndex].data.CRDN_ID
|
|
, delYn: "N"
|
|
};
|
|
|
|
$P.fnRefreshInfo(params);
|
|
}
|
|
|
|
/**************************************************************************
|
|
* 탭 clickEvent
|
|
**************************************************************************/
|
|
// 단속 정보
|
|
$P.fnCrdnPayerInfo = () => {
|
|
// 탭 Index
|
|
$P.activeTabIndex = 0;
|
|
|
|
let params = {
|
|
callPurpose: "view"
|
|
, sggCd: $P.ctrlMain.getValue("SGG_CD")
|
|
, taskSeCd: $P.ctrlMain.getValue("TASK_SE_CD")
|
|
, crdnId: $P.ctrlMain.getValue("CRDN_ID")
|
|
, delYn: "N"
|
|
};
|
|
|
|
ajax.get({
|
|
url: wctx.url("/sprt/sprt02/020/info.do")
|
|
, data: params || {}
|
|
, success: (resp) => { $("#crdnPayerInfo").html(resp); }
|
|
});
|
|
}
|
|
|
|
// 의견제출 정보
|
|
$P.fnOpnnSbmsnInfo = () => {
|
|
// 탭 Index
|
|
$P.activeTabIndex = 1;
|
|
|
|
let params = {
|
|
callPurpose: "view"
|
|
, sggCd: $P.ctrlMain.getValue("SGG_CD")
|
|
, taskSeCd: $P.ctrlMain.getValue("TASK_SE_CD")
|
|
, crdnId: $P.ctrlMain.getValue("CRDN_ID")
|
|
, delYn: "N"
|
|
};
|
|
|
|
ajax.get({
|
|
url: wctx.url("/sprt/sprt02/030/info.do")
|
|
, data: params || {}
|
|
, success: (resp) => { $("#opnnSbmsnInfo").html(resp); }
|
|
});
|
|
}
|
|
|
|
// 발송 반송 정보
|
|
$P.fnSndngInfo = () => {
|
|
// 탭 Index
|
|
$P.activeTabIndex = 2;
|
|
|
|
let params = {
|
|
callPurpose: "view"
|
|
, sggCd: $P.ctrlMain.getValue("SGG_CD")
|
|
, taskSeCd: $P.ctrlMain.getValue("TASK_SE_CD")
|
|
, crdnId: $P.ctrlMain.getValue("CRDN_ID")
|
|
, delYn: "N"
|
|
};
|
|
|
|
ajax.get({
|
|
url: wctx.url("/sprt/sprt02/040/info.do")
|
|
, data: params || {}
|
|
, success: (resp) => { $("#sndngInfo").html(resp); }
|
|
});
|
|
}
|
|
|
|
// 처리 정보
|
|
$P.fnPrcsInfo = () => {
|
|
// 탭 Index
|
|
$P.activeTabIndex = 3;
|
|
|
|
let params = {
|
|
callPurpose: "view"
|
|
, sggCd: $P.ctrlMain.getValue("SGG_CD")
|
|
, taskSeCd: $P.ctrlMain.getValue("TASK_SE_CD")
|
|
, crdnId: $P.ctrlMain.getValue("CRDN_ID")
|
|
, rtpyrId: $P.ctrlMain.getValue("RTPYR_ID")
|
|
, delYn: "N"
|
|
};
|
|
|
|
ajax.get({
|
|
url: wctx.url("/sprt/sprt02/050/info.do")
|
|
, data: params || {}
|
|
, success: (resp) => { $("#prcsInfo").html(resp); }
|
|
});
|
|
}
|
|
|
|
// 부과체납 정보
|
|
$P.fnLevyInfo = () => {
|
|
// 탭 Index
|
|
$P.activeTabIndex = 4;
|
|
|
|
let params = {
|
|
callPurpose: "view"
|
|
, sggCd: $P.ctrlMain.getValue("SGG_CD")
|
|
, taskSeCd: $P.ctrlMain.getValue("TASK_SE_CD")
|
|
, crdnId: $P.ctrlMain.getValue("CRDN_ID")
|
|
, delYn: "N"
|
|
};
|
|
|
|
ajax.get({
|
|
url: wctx.url("/sprt/sprt02/060/info.do")
|
|
, data: params || {}
|
|
, success: (resp) => { $("#levyInfo").html(resp); }
|
|
});
|
|
}
|
|
|
|
// 수납 정보
|
|
$P.fnRcvmtInfo = () => {
|
|
// 탭 Index
|
|
$P.activeTabIndex = 5;
|
|
|
|
let params = {
|
|
callPurpose: "view"
|
|
, sggCd: $P.ctrlMain.getValue("SGG_CD")
|
|
, taskSeCd: $P.ctrlMain.getValue("TASK_SE_CD")
|
|
, crdnId: $P.ctrlMain.getValue("CRDN_ID")
|
|
, delYn: "N"
|
|
};
|
|
|
|
ajax.get({
|
|
url: wctx.url("/sprt/sprt02/070/info.do")
|
|
, data: params || {}
|
|
, success: (resp) => { $("#rcvmtInfo").html(resp); }
|
|
});
|
|
}
|
|
|
|
// 민원상담 정보
|
|
$P.fnCvlcptDscsnInfo = () => {
|
|
// 탭 Index
|
|
$P.activeTabIndex = 6;
|
|
|
|
let params = {
|
|
callPurpose: "view"
|
|
, inquiryCondition: "crdnId_vhrno"
|
|
, sggCd: $P.ctrlMain.getValue("SGG_CD")
|
|
, taskSeCd: $P.ctrlMain.getValue("TASK_SE_CD")
|
|
, crdnId: $P.ctrlMain.getValue("CRDN_ID")
|
|
, vhrno: $P.ctrlMain.getValue("VHRNO")
|
|
, delYn: "N"
|
|
};
|
|
|
|
ajax.get({
|
|
url: wctx.url("/sprt/sprt02/080/info.do")
|
|
, data: params || {}
|
|
, success: resp => { $("#cvlcptDscsnInfo").html(resp); }
|
|
});
|
|
}
|
|
|
|
/**************************************************************************
|
|
* 사용자 함수(function)
|
|
**************************************************************************/
|
|
// 자료 재조회
|
|
$P.fnRefresh = $P.fnRefreshInfo = (params) => {
|
|
if (!params) return;
|
|
|
|
ajax.get({
|
|
url: wctx.url("/sprt/sprt02/010/main.do")
|
|
, headers: { Accept: "application/json; charset=utf-8" } // json
|
|
, data: params || {}
|
|
, success: resp => {
|
|
if (resp.totalInfo) {
|
|
// 최상단 단속 Data 셋팅
|
|
$P.ctrlMain.setData([resp.totalInfo]);
|
|
|
|
if ($P.activeTabIndex == 0) {
|
|
$P.fnCrdnPayerInfo(); // 단속 납부자 Data 셋팅
|
|
} else if ($P.activeTabIndex == 1) {
|
|
$P.fnOpnnSbmsnInfo(); // 의견제출 정보
|
|
} else if ($P.activeTabIndex == 2) {
|
|
$P.fnSndngInfo(); // 발송 반송 정보
|
|
} else if ($P.activeTabIndex == 3) {
|
|
$P.fnPrcsInfo(); // 처리 상세 정보
|
|
} else if ($P.activeTabIndex == 4) {
|
|
$P.fnLevyInfo(); // 부과체납 정보
|
|
} else if ($P.activeTabIndex == 5) {
|
|
$P.fnRcvmtInfo(); // 수납 정보
|
|
} else if ($P.activeTabIndex == 6) {
|
|
$P.fnCvlcptDscsnInfo(); // 민원상담 정보
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
// 자료 수정 가능 여부
|
|
$P.fnUseDataEdit = (item) => {
|
|
// 삭제 자료일 경우 빨간색으로 변경
|
|
let elem = document.getElementById("crdnSttsNm--${pageName}");
|
|
|
|
if (item.data.CRDN_STTS_CD == "99") {
|
|
elem.classList.remove("text-primary");
|
|
elem.classList.add("text-danger");
|
|
} else {
|
|
elem.classList.remove("text-danger");
|
|
elem.classList.add("text-primary");
|
|
}
|
|
}
|
|
|
|
//
|
|
$P.fnClose = (isDataReLoad) => {
|
|
dialog.close($P.selfDlgId());
|
|
|
|
if (isDataReLoad && $P.callPageName != "noPageName") {
|
|
pageObject[$P.callPageName].ctrl.load(1);
|
|
}
|
|
}
|
|
|
|
/**************************************************************************
|
|
* 초기 셋팅
|
|
**************************************************************************/
|
|
// 이벤트 설정
|
|
$P.setEvent = () => {
|
|
// 기본 버튼 이벤트
|
|
$P.$findn("btnPrev").on("click", () => { $P.fnPrev() }); // 이전
|
|
$P.$findn("btnNext").on("click", () => { $P.fnNext() }); // 다음
|
|
|
|
// 탭 버튼 이벤트
|
|
$P.$findn("btnCrdnPayer").on("click", () => { $P.fnCrdnPayerInfo() }); // 단속 정보
|
|
$P.$findn("btnOpnnSbmsn").on("click", () => { $P.fnOpnnSbmsnInfo() }); // 의견제출 정보
|
|
$P.$findn("btnSndng").on("click", () => { $P.fnSndngInfo() }); // 발송반송 정보
|
|
$P.$findn("btnPrcs").on("click", () => { $P.fnPrcsInfo() }); // 처리상세 정보
|
|
$P.$findn("btnLevy").on("click", () => { $P.fnLevyInfo() }); // 부과체납 정보
|
|
$P.$findn("btnRcvmt").on("click", () => { $P.fnRcvmtInfo() }); // 수납 정보
|
|
$P.$findn("btnCvlcptDscsn").on("click", () => { $P.fnCvlcptDscsnInfo() }); // 민원상담 정보
|
|
}
|
|
|
|
// 초기 설정
|
|
$P.fnReset = () => {
|
|
// 화면 초기화
|
|
$P.findn("frmEdit").reset();
|
|
|
|
// 화면이 열릴때 초기 값으로 null로 설정해야 건수가 정상 표시 된다.
|
|
$P.curDataIndex = null;
|
|
}
|
|
|
|
/**************************************************************************
|
|
* script 진입시 실행 함수
|
|
**************************************************************************/
|
|
// 1. 이벤트 설정
|
|
$P.setEvent();
|
|
|
|
// 2. 초기 설정
|
|
$P.fnReset();
|
|
|
|
// 3. Dataset 설정
|
|
$P.ctrlMain.setData([${totalInfo}]);
|
|
|
|
// 4. 단속, 납부자 정보 조회
|
|
$P.fnCrdnPayerInfo();
|
|
});
|
|
|
|
</script>
|