feat: 팝업 페이지 이동 모듈화 반영

main
minuk926 2 years ago
parent e6e1321022
commit d3af805c1e

@ -53,8 +53,8 @@ public class EcCtznSttemntController {
.interfaceSeqN(reqDTO.getInterfaceSeqN())
.build();
mav.addObject("reqDTO", reqDTO);
mav.addObject("ctznStmtDTO", service.findCtznStmt(newReqDTO));
mav.addObject("ctznStmtDtlDTOs", service.findCtznStmtDtls(newReqDTO));
mav.addObject("ctznDTO", service.findCtznStmt(newReqDTO));
mav.addObject("ctznDtlDTOs", service.findCtznStmtDtls(newReqDTO));
return mav;
}
@ -81,6 +81,21 @@ public class EcCtznSttemntController {
return ResultResponse.of(service.findCtznStmtDtl(dto));
}
@RequestMapping(value = "/findCtznStmtDtlAndAttchFiles")
public ModelAndView findCtznStmtDtlAndAttchFiles(final CtznStmtDTO.Request dto) {
ModelAndView mav = new ModelAndView(FrameworkConstants.JSON_VIEW);
mav.addObject("ctznDTO", service.findCtznStmt(dto));
mav.addObject("ctznDtlDTOs", service.findCtznStmtDtls(dto));
mav.addObject("attchFiles", fileService.findFilesByEsbInterfaces(
CmmFileDTO.FileMst.builder()
.jobSeCode(FimsConst.FileJobSeCode.NATL_NEWS_PAPER_RCV.getCode())
.fileJobId(dto.getInterfaceSeqN()+dto.getCtznSttemntDetailSn())
.build()).stream()
.filter(dtl -> !Objects.equals("png", dtl.getFileExtsn()))
.collect(Collectors.toList()));
return mav;
}
@RequestMapping("/findCtznStmtAttchFiles")
public ModelAndView findCtznStmtAttchFiles(final CtznStmtDTO.Request dto) {
return ResultResponse.of(

@ -43,7 +43,6 @@
<!-- 데이터 출력 -->
<div id="grid"></div>
<%--<script type="text/javascript" src="${pageContext.request.contextPath}/resources/biz/common/js/bizCmmUtil.js" defer></script>--%>
<script type="text/javascript" src="${pageContext.request.contextPath}/resources/biz/common/js/popupPageNavigation.js" defer></script>
<script type="text/javaScript">
/**************************************************************************

@ -177,12 +177,12 @@
<!-- //popup -->
<script type="text/javascript" src="${pageContext.request.contextPath}/resources/framework/js/cmm/cmmDownloadImg.js" defer></script>
<%--<script type="text/javascript" src="${pageContext.request.contextPath}/resources/biz/common/js/popupPageNavigation.js" defer></script>--%>
<script type="text/javascript">
/**************************************************************************
* Global Variable
**************************************************************************/
let orgDtlDatas = [];
let downloadImgParam;
var imageEditorPopup = (flag, params) => fnBiz.pagePopup(flag, params);
var callbackReloadImage = () => fnBiz.downloadImg();
@ -207,7 +207,7 @@
cmmAjax({
showSuccessMsg: false
,url: fimsApiUrl.FIND_EC_EXTRL_REGLT_CNTC_ATTCH_FILES
,data: {extrlRegltCntcId: '${extrDTO.extrlRegltCntcId}', regltSeCode: '${extrDTO.regltSeCode}'}
,data: downloadImgParam
,success: (res) => {
cmmImgDownload('#imgList', res.data?.contents, true);
}
@ -236,11 +236,9 @@
break;
}
window.opener.popup = CmmPopup.open(url, params, popOption, popTitle);
//var w = window.open("/imageEditor.do", "", "width=800,height=650,top=0px,left=200px,status=,resizable=false,scrollbars=no");
}
,save: (extrlRegltCntcId) => {
cmmBizAjax('modify', {
<%--url: '<c:url value="/fims/biz/ec/modifyExtrlRegltCntc.do"/>'--%>
url: fimsApiUrl.MODIFY_EC_EXTRL_REGLT_CNTC
,data: $('form').serialize()
})
@ -277,7 +275,6 @@
}
if(!confirm('서손 처리 하시겠습니까?')) return false;
cmmAjax({
<%--url: '<c:url value="/fims/biz/ec/saveExtrRtErpp.do"/>'--%>
url: fimsApiUrl.SAVE_EC_EXTRL_REGLT_CNTC_RT_ERPP
,data: $.param(data)
})
@ -313,7 +310,6 @@
$('#prev').on('click', () => {
window.opener.pageNav.onClickNavBtn('prev', (gridInfo) => {
//gridInfo = data;
fnBiz.search(gridInfo.curRowData)
});
})
@ -321,10 +317,8 @@
$('#next').on('click', () => {
window.opener.pageNav.onClickNavBtn('next', (gridInfo) => {
//gridInfo = data;
fnBiz.search(gridInfo.curRowData);
});
});
});
@ -333,6 +327,7 @@
**************************************************************************/
$(document).ready(function () {
// orgData = $('form').serialize();
downloadImgParam = {extrlRegltCntcId: '${extrDTO.extrlRegltCntcId}', regltSeCode: '${extrDTO.regltSeCode}'};
fnBiz.downloadImg();
window.opener.pageNav.reloadNav($('#prev'), $('#next'), $('#totCnt span'))

@ -59,13 +59,14 @@
<div id="grid"></div>
<script type="text/javascript" src="${pageContext.request.contextPath}/resources/framework/js/cmm/cmmDownloadImg.js" defer></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/resources/biz/common/js/bizCmmUtil.js" defer></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/resources/biz/common/js/popupPageNavigation.js" defer></script>
<script type="text/javaScript">
/**************************************************************************
* Global Variable
**************************************************************************/
let GRID = null;
var callbackSearch = () => fnBiz.search();
var pageNav = null;
/* *******************************
* Biz function
@ -111,18 +112,24 @@
//var w = window.open("/imageEditor.do", "", "width=800,height=650,top=0px,left=200px,status=,resizable=false,scrollbars=no");
}
,onClickGrid: function(props){
const {page, perPage, totalCount} = GRID.store.data.pageOptions;
gridInfo = {
curGridDatas: GRID.store.data.rawData
,curRowData: GRID.store.data.rawData[props.rowKey]
,curRowPos: (page - 1) * perPage + GRID.store.data.rawData[props.rowKey].rowKey + 1
,curGridDataPos: GRID.store.data.rawData[props.rowKey].rowKey
,page
,perPage
,totalCount
,isNext: null
}
fnBiz.pagePopup('detail', {interfaceSeqN: gridInfo.curRowData.interfaceSeqN, ctznSttemntDetailSn: gridInfo.curRowData.ctznSttemntDetailSn});
// const {page, perPage, totalCount} = GRID.store.data.pageOptions;
// gridInfo = {
// curGridDatas: GRID.store.data.rawData
// ,curRowData: GRID.store.data.rawData[props.rowKey]
// ,curRowPos: (page - 1) * perPage + GRID.store.data.rawData[props.rowKey].rowKey + 1
// ,curGridDataPos: GRID.store.data.rawData[props.rowKey].rowKey
// ,page
// ,perPage
// ,totalCount
// ,isNext: null
// }
// fnBiz.pagePopup('detail', {interfaceSeqN: gridInfo.curRowData.interfaceSeqN, ctznSttemntDetailSn: gridInfo.curRowData.ctznSttemntDetailSn});
const gridDatas = GRID.store.data.rawData.map(d => {
return {interfaceSeqN: d.interfaceSeqN, ctznSttemntDetailSn: d.ctznSttemntDetailSn}
})
pageNav = new PageNavigation(GRID, gridDatas, props.rowKey);
fnBiz.pagePopup('detail', {interfaceSeqN: pageNav.gridInfo.curRowData.interfaceSeqN, ctznSttemntDetailSn: pageNav.gridInfo.curRowData.ctznSttemntDetailSn});
}
,onClickCreateAnswerPopup: function(props){
const rowData = props.grid.getRow(props.rowKey);
@ -429,10 +436,20 @@
// }
// if(gridInfo?.isNext) gridInfo.isNext = null;
if(gridInfo?.curRowData) {
pageNav.loadNavigation(res, {interfaceSeqN: gridInfo.curRowData?.interfaceSeqN, ctznSttemntDetailSn: gridInfo.curRowData?.ctznSttemntDetailSn})
}
//if(gridInfo?.curRowData) {
// pageNav.loadNavigation(res, {interfaceSeqN: gridInfo.curRowData?.interfaceSeqN, ctznSttemntDetailSn: gridInfo.curRowData?.ctznSttemntDetailSn})
//}
const gridInfo = pageNav?.gridInfo;
if(gridInfo && gridInfo?.pageMove) {
const datas = res.data?.contents.map(d => {
return {interfaceSeqN: d.interfaceSeqN, ctznSttemntDetailSn: d.ctznSttemntDetailSn}
});
pageNav.resetGrid(res, datas, (pagiNavigation)=>{
pageNav = pagiNavigation;
fnBiz.pagePopup('detail', pageNav.gridInfo.curRowData);
})
}
});
}

@ -33,97 +33,97 @@
<tr>
<th>기관코드</th>
<td>
<input type="text" name="insttCode" value='<c:out value="${ctznStmtDTO.insttCode}"/>' readonly>
<input type="text" name="insttCode" value='<c:out value="${ctznDTO.insttCode}"/>' readonly>
</td>
<th>시스템코드</th>
<td>
<input type="text" name="sysCode" value='<c:out value="${ctznStmtDTO.sysCode}"/>' readonly>
<input type="text" name="sysCode" value='<c:out value="${ctznDTO.sysCode}"/>' readonly>
</td>
<th>민원구분</th>
<td>
<input type="text" name="cvplSe" value='<c:out value="${ctznStmtDTO.cvplSe}"/>' readonly>
<input type="text" name="cvplSe" value='<c:out value="${ctznDTO.cvplSe}"/>' readonly>
</td>
</tr>
<tr>
<th>민원신청번호</th>
<td>
<input type="text" name="petiAncCodeV" value='<c:out value="${ctznStmtDTO.cvplReqstNo}"/>' readonly>
<input type="text" name="petiAncCodeV" value='<c:out value="${ctznDTO.cvplReqstNo}"/>' readonly>
</td>
<th>민원접수번호</th>
<td>
<input type="text" name="petiNoC" value='<c:out value="${ctznStmtDTO.cvplRceptNo}"/>' readonly>
<input type="text" name="petiNoC" value='<c:out value="${ctznDTO.cvplRceptNo}"/>' readonly>
</td>
<th>민원신청인명</th>
<td>
<input type="text" name="civilNoC" value='<c:out value="${ctznStmtDTO.cvplApplcntNm}"/>' readonly>
<input type="text" name="civilNoC" value='<c:out value="${ctznDTO.cvplApplcntNm}"/>' readonly>
</td>
</tr>
<tr>
<th>신청인이메일</th>
<td>
<input type="text" name="peterNameV" value='<c:out value="${ctznStmtDTO.cvplApplcntEmailAdres}"/>' readonly>
<input type="text" name="peterNameV" value='<c:out value="${ctznDTO.cvplApplcntEmailAdres}"/>' readonly>
</td>
<th>신청인우편번호</th>
<td>
<input type="text" name="zipCodeC" value='<c:out value="${ctznStmtDTO.cvplApplcntZip}"/>' readonly>
<input type="text" name="zipCodeC" value='<c:out value="${ctznDTO.cvplApplcntZip}"/>' readonly>
</td>
<th>신청인주소</th>
<td>
<input type="text" name="addressV" value='<c:out value="${ctznStmtDTO.cvplApplcntAdres}"/>' readonly>
<input type="text" name="addressV" value='<c:out value="${ctznDTO.cvplApplcntAdres}"/>' readonly>
</td>
</tr>
<tr>
<th>신청인핸드폰</th>
<td>
<input type="text" name="celNoV" value='<c:out value="${ctznStmtDTO.cvplApplcntMoblphonNo}"/>' readonly>
<input type="text" name="celNoV" value='<c:out value="${ctznDTO.cvplApplcntMoblphonNo}"/>' readonly>
</td>
<th>신청인전화</th>
<td>
<input type="text" name="telNoV" value='<c:out value="${ctznStmtDTO.cvplApplcntTlphonNo}"/>' readonly>
<input type="text" name="telNoV" value='<c:out value="${ctznDTO.cvplApplcntTlphonNo}"/>' readonly>
</td>
<th>처리상태</th>
<td>
<input type="text" name="telNoV" value='<c:out value="${ctznStmtDTO.ctznSttemntProcessSttus}"/>' readonly>
<input type="text" name="telNoV" value='<c:out value="${ctznDTO.ctznSttemntProcessSttus}"/>' readonly>
</td>
</tr>
<tr>
<th>민원신청제목</th>
<td colspan="5">
<input type="text" name="petiTitleV" value='<c:out value="${ctznStmtDTO.cvplReqstSj}"/>' readonly>
<input type="text" name="petiTitleV" value='<c:out value="${ctznDTO.cvplReqstSj}"/>' readonly>
</td>
</tr>
<tr>
<th>민원신청내용</th>
<td colspan="5">
<textarea name="petiReasonL" rows="10" readonly><c:out value="${ctznStmtDTO.cvplReqstCn}" /></textarea>
<textarea name="petiReasonL" rows="10" readonly><c:out value="${ctznDTO.cvplReqstCn}" /></textarea>
</td>
</tr>
<tr>
<th>민원신청일시</th>
<td>
<fmt:parseDate value="${ctznStmtDTO.cvplRceptDt}" var="cvplRceptDt" pattern="yyyyMMddHHmmss"/>
<fmt:parseDate value="${ctznDTO.cvplRceptDt}" var="cvplRceptDt" pattern="yyyyMMddHHmmss"/>
<input type="text" name="cvplRceptDt" value='<fmt:formatDate value="${cvplRceptDt}" pattern="yyyy-MM-dd HH:mm:ss"/>' readonly>
</td>
<th>민원처리기간</th>
<td>
<fmt:parseDate value="${ctznStmtDTO.cvplProcessPd}" var="cvplProcessPd" pattern="yyyyMMddHHmmss"/>
<fmt:parseDate value="${ctznDTO.cvplProcessPd}" var="cvplProcessPd" pattern="yyyyMMddHHmmss"/>
<input type="text" name="cvplProcessPd" value='<fmt:formatDate value="${cvplProcessPd}" pattern="yyyy-MM-dd HH:mm:ss"/>' readonly>
</td>
<th>민원등록일시</th>
<td>
<fmt:parseDate value="${ctznStmtDTO.cvplRegistDt}" var="cvplRegistDt" pattern="yyyyMMddHHmmss"/>
<fmt:parseDate value="${ctznDTO.cvplRegistDt}" var="cvplRegistDt" pattern="yyyyMMddHHmmss"/>
<input type="text" name="cvplRegistDt" value='<fmt:formatDate value="${cvplRegistDt}" pattern="yyyy-MM-dd HH:mm:ss"/>' readonly>
</td>
</tr>
<%-- <tr>--%>
<%-- <th>등록일시</th>--%>
<%-- <td>--%>
<%-- <fmt:parseDate value="${ctznStmtDTO.registDt}" var="registDt" pattern="yyyyMMddHHmmss"/>--%>
<%-- <fmt:parseDate value="${ctznDTO.registDt}" var="registDt" pattern="yyyyMMddHHmmss"/>--%>
<%-- <input type="text" name="registDt" value="<fmt:formatDate value="${registDt}" pattern="yyyy-MM-dd HH:mm:ss"/>' readonly>--%>
<%-- </td>--%>
<%-- <th>등록인</th>--%>
<%-- <td>--%>
<%-- <input type="text" name="sendYnC" value='<c:out value="${ctznStmtDTO.register}"/>' readonly>--%>
<%-- <input type="text" name="sendYnC" value='<c:out value="${ctznDTO.register}"/>' readonly>--%>
<%-- </td>--%>
<%-- </tr>--%>
@ -131,7 +131,7 @@
</table>
</form>
<c:forEach var="dtlDTO" items="${ctznStmtDtlDTOs}" varStatus="status">
<c:forEach var="dtlDTO" items="${ctznDtlDTOs}" varStatus="status">
<form name="frmStmtDtl${dtlDTO.ctznSttemntDetailSn}">
<div class="popup_btn">
@ -256,6 +256,7 @@
* Global Variable
**************************************************************************/
let orgDtlDatas = [];
let downloadImgParam;
var imageEditorPopup = (flag, params) => fnBiz.pagePopup(flag, params);
var callbackReloadImage = () => fnBiz.downloadImg();
@ -264,15 +265,29 @@
* Biz function
******************************* */
const fnBiz = {
downloadImg: () => {
//ctznStmtDtlDTO
search: (params) => {
cmmAjax({
showSuccessMsg: false
,url: fimsApiUrl.FIND_EC_CTZN_STMT_DTL_AND_ATTCH_FILES
,data: params
,success: (res) => {
cmmImgDownload('#imgList', res.attchFiles, true);
window.opener.pageNav.reloadNav($('#prev'), $('#next'), $('#totCnt span'))
setFormData(document.getElementsByName('frmStmt'), res.ctznDTO);
for(let idx; idx<res.ctznDtlDTOs.length; idx++){
setFormData(document.getElementsByName('frmStmtDtl0'+idx), res.ctznDtlDTOs[idx]);
}
}
})
}
,downloadImg: () => {
cmmAjax({
showSuccessMsg: false
<%--,url: '<c:url value="/fims/biz/ec/findNatlNewspaperAttchFiles.do"/>' --%>
,url: fimsApiUrl.FIND_EC_NATL_NEWS_PAPER_ATTCH_FILES
,data: {interfaceSeqN: '${reqDTO.interfaceSeqN}'}
//,data: {interfaceSeqN: '${reqDTO.interfaceSeqN}'}
,data: downloadImgParam
,success: (res) => {
cmmImgDownload('#imgList', res.data?.contents, true);
}
@ -391,10 +406,16 @@
});
$('#prev').on('click', () => {
window.opener.onClickCtznStmtNavigationBtn('prev');
window.opener.pageNav.onClickNavBtn('prev', (gridInfo) => {
fnBiz.search(gridInfo.curRowData)
});
})
$('#next').on('click', () => {
window.opener.onClickCtznStmtNavigationBtn('next');
window.opener.pageNav.onClickNavBtn('next', (gridInfo) => {
fnBiz.search(gridInfo.curRowData);
});
});
});
@ -402,22 +423,14 @@
* initialize
**************************************************************************/
$(document).ready(function () {
<c:forEach var="dtlDTO" items="${ctznStmtDtlDTOs}" varStatus="status">
<c:forEach var="dtlDTO" items="${ctznDtlDTOs}" varStatus="status">
orgDtlDatas.push($('form[name=frmStmtDtl${dtlDTO.ctznSttemntDetailSn}]').serialize())
</c:forEach>
downloadImgParam = {interfaceSeqN: '${reqDTO.interfaceSeqN}'};
fnBiz.downloadImg();
if(window.opener.gridInfo.curRowPos === 1){
$('#prev').attr('disabled', true);
}else{
$('#prev').attr('disabled', false);
}
if(window.opener.gridInfo.curRowPos === window.opener.gridInfo.totalCount){
$('#next').attr('disabled', true);
}else{
$('#next').attr('disabled', false);
}
$('#totCnt span').text(window.opener.gridInfo.curRowPos + " / " + window.opener.gridInfo.totalCount);
window.opener.pageNav.reloadNav($('#prev'), $('#next'), $('#totCnt span'))
});

@ -22,6 +22,7 @@ const fimsApiUrl = {
,POPUP_EC_CTZN_STMT: '/fims/biz/ec/ecCtznSttemntMgtPopup.do' //주민 신고 데이타 상세
,POPUP_EC_CTZN_STMT_ANS: '/fims/biz/ec/ecCtznSttemntAnsMgtPopup.do' //주민 신고 데이타 답변
,FIND_EC_CTZN_STMT_DTLS: '/fims/biz/ec/findCtznStmtDtls.do' //주민신고 상세 목록 조회
,FIND_EC_CTZN_STMT_DTL_AND_ATTCH_FILES: '/fims/biz/ec/findCtznStmtDtlAndAttchFiles.do' //주민신고 상세 및 첨부파일 조회
,MODIFY_EC_CTZN_STMT_DTL: '/fims/biz/ec/modifyCtznStmtDtl.do' //주민신고 상세 변경
,REMOVE_EC_CTZN_STMT_DTL: '/fims/biz/ec/removeCtznStmtDtl.do' //주민신고 상세 삭제
,SAVE_EC_CTZN_STMT_RT_REGLT: '/fims/biz/ec/saveRtReglt.do' //주민신고 단속자료 생성
@ -34,7 +35,7 @@ const fimsApiUrl = {
,POPUP_CCTV_EC_EXTRL_REGLT_CNTC_DATA_SEL: '/fims/biz/ec/ecCctvCrackdownFileSelPopup.do' //CCTV 외부연계 데이타 선택
,FIND_CCTV_EC_EXTRL_REGLT_CNTCS: '/fims/biz/ec/findExtrlRegltCntcs.do' //CCTV 외부연계 데이타 목록 조회
,FIND_CCTV_EC_EXTRL_REGLT_CNTC: '/fims/biz/ec/findExtrlRegltCntc.do' //CCTV 외부연계 데이타 목록 조회
,FIND_CCTV_EC_EXTRL_REGLT_CNTC_AND_ATTCH_FILES: '/fims/biz/ec/findExtrlRegltCntcAndAttchFiles.do' //CCTV 외부연계 데이타 목록 조회
,FIND_CCTV_EC_EXTRL_REGLT_CNTC_AND_ATTCH_FILES: '/fims/biz/ec/findExtrlRegltCntcAndAttchFiles.do' //CCTV 외부연계 정보 및 첨부파일 조회
,SAVE_CCTV_EC_EXTRL_REGLT_CNTCS: '/fims/biz/ec/saveCctvCrackdownDatas.do' //CCTV 외부연계(고정형 / 이동형) 데이타 저장
,SAVE_BUS_ONLY_EC_EXTRL_REGLT_CNTC: '/fims/biz/ec/saveBusCctvCrackdownDatas.do' //CCTV 외부연계(버스전용차료) 데이타 저장
,MODIFY_EC_EXTRL_REGLT_CNTC: '/fims/biz/ec/modifyExtrlRegltCntc.do' //CCTV 외부연계 데이타 변경

@ -536,14 +536,16 @@ function serialize (formData) {
/**
* form json data set
* 태그명으로 일치 - 동일 태그명이 여럿존재하는 경우 [0] set
* @param formObj document.querySelector('form')
* @param jsonData json type data
*/
function setFormData(formObj, jsonData){
const els = formObj.elements;
* 태그명으로 일치 - 동일 태그명이 여럿존재하는 경우 idx만 set
* @param {object} formObj document.querySelector('form')
* @param {object} jsonData json type data
* @param {number} idx 태그명 배열의 index (default = 0)
*/
function setFormData(formObj, jsonData, idx= 0){
let els = formObj.elements;
if(!els) els = formObj[0];
for(let e of els){
document.getElementsByName(e.name)[0].value = jsonData[e.name] ?? '' ;
document.getElementsByName(e.name)[idx].value = jsonData[e.name] ?? '' ;
}
}

Loading…
Cancel
Save