fix : 미사용 페이지 제거

main
이범준 1 year ago
parent 8143a9a5f9
commit 9cbbf633ee

@ -46,26 +46,7 @@ public class EcCctvCrackdownController extends AbstractController {
private final CmmFileService fileService;
@RequestMapping(name = "", value = "/ecCctvCrackdownFileSelPopup")
public ModelAndView ecCctvCrackdownFileSelPopup(){
ModelAndView mav = new ModelAndView(FimsConst.FIMS_JSP_BASE_PATH +"ec/ecCctvCrackdownFileSelPopup.popup");
mav.addObject("busInstallDirPath", fileRcvRoot + rcvBusinstallCctvPath);
mav.addObject("ctznDirPath", fileRcvRoot + rcvNatlNewspaperPath);
return mav;
}
@RequestMapping(name = "", value = "/ecCctvCrackdownPopup")
public ModelAndView ecCctvCrackdownPopup(final CctvCrackdownDTO.Request dto){
ModelAndView mav = new ModelAndView(FimsConst.FIMS_JSP_BASE_PATH +"ec/ecCctvCrackdownPopup.popup");
mav.addObject("extrDTO", service.findExtrlRegltCntc(dto.getFileLinkId()));
mav.addObject("attchFiles", fileService.findFilesByJobSeCodeAndJobId(
CmmFileDTO.FileMst.builder()
.jobSeCode(FimsBizUtils.getFileJobSeCode(dto.getCrdnSeCd()))
.fileJobId(dto.getFileLinkId())
.build()));
return mav;
}
@GetMapping(name = "", value = "/findExtrlRegltCntcs")
public ModelAndView findExtrlRegltCntcs(@RequestParam final Map<String,Object> paraMap) {

@ -15,7 +15,7 @@
, vhrno
, crdn_ymd
, crdn_bgng_tm
, crdn_end_hr
, crdn_end_tm
, crdn_stdg_nm
, crdn_plc
, crdn_sparea_nm

@ -98,6 +98,20 @@ Date Author Description
</div>
</td>
</tr>
<tr>
<th>GPS위도</th>
<td>
<input type="text" name="gpsX" readonly>
</td>
<th>GPS경도</th>
<td>
<input type="text" name="gpsY" readonly>
</td>
<th>처리상태</th>
<td>
<code:select id="trsmCd" name="trsmCd" grpId="FIM010" title="처리상태" cls="form-select" alt="처리상태" disabled="true"/>
</td>
</tr>
<tr id="ctzn1">
<th>신고자</th>
@ -123,13 +137,18 @@ Date Author Description
<input type="text" name="crdnPlc" />
</td>
</tr>
<tr>
<th>시군구</th>
<th>위반내역</th>
<td colspan="3">
<input type="text" name="vltnCn" />' readonly>
</td>
</tr>
<tr>
<th>시군구명</th>
<td>
<input type="text" name="sggNm" />
</td>
<th>법정동</th>
<th>법정동</th>
<td>
<input type="text" name="crdnStdgNm" class="act_bg_color"/>
</td>
@ -229,7 +248,13 @@ Date Author Description
<input type="text" name="vin" />
</td>
</tr>
<tr>
<th>등록일시</th>
<td>
<input type="text" name="regDt" readonly>
</td>
</tr>
</tbody>
</table>
</form>
@ -630,6 +655,17 @@ Date Author Description
,data: $("#frm").serialize()
});
}
,erpp: (fileLinkId) => {
const data = {
fileLinkId
,crdnSeCd: ''
}
if(!confirm('서손 처리 하시겠습니까?')) return false;
cmmAjax({
url: fimsApiUrl.SAVE_EC_EXTRL_REGLT_CNTC_RT_ERPP
,data: $.param(data)
})
}
// 차량 단속 건수 표시
,showCrackdownVhrnoCnt: (cnt) => {

@ -1,325 +0,0 @@
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="/WEB-INF/jsp/include/taglib.jsp" %>
<%@ include file="/WEB-INF/jsp/include/fims/taglib.jsp" %>
<div class="popup" style="min-width: 100%;">
<div class="container-window2" style="max-width: 800px;">
<p class="container-window-header2">CCTV 단속 자료 선택</p>
<form name="frmSearch" id="frmSearch">
<div class="container-search">
<table>
<caption>검색조건</caption>
<colgroup>
<col style="width: 30%"/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<tbody>
<tr>
<td>
<code:select type="CMM_ETC2" id="crdnSeCd" name="crdnSeCd" grpId="FIM002" defaultSelect="01" onchange="fnBiz.onComboChange()" title="단속구분코드" cls="form-select" alt="단속구분코드" />
</td>
<td colspan="6">
<input id="folder" type="file" webkitdirectory multiple="false"/>
<input id="dirPath" name="dirPath" type="text" size="400" value="<c:out value='${dirPath}'/>" title="버스장착형데이타경로" style="display: none; width: 100%" readonly/>
<span id="warnMsg" style="color: red; font-weight: bold; display: inline-block">동일한 데이타 선택시 중복 처리될수 있습니다.</span>
</td>
</tr>
</tbody>
</table>
</div>
</form>
<div class="container-window-btn1">
<span>
<div class="clearfix" id="totCnt">전체 ㅣ <span>0</span></div>
</span>
</div>
<div id="grid"></div>
<div class="d-flex flex-row p-3 justify-content-between">
<label id="grid1PagingInfo" class="dataTables_info" role="status" aria-live="polite"></label>
<ul id="grid1Paging" class="pagination pagination-primary"></ul>
</div>
<div class="container-window-btn2">
<span>
<a href="#" class="btn btn-blue" id="btnRegist">파일 처리</a>
<a href="#" id="btnClose" class="btn btn-lightgray">닫기</a>
</span>
</div>
<!-- //등록버튼 -->
</div>
</div>
<!-- //popup -->
<script type="text/javaScript">
/**************************************************************************
* Global Variable
**************************************************************************/
let GRID = null;
let arrFiles = [];
let $$Control = new FimsDatasetControl({
prefix:"aaa",
prefixName:"ㅁㅁㅁ",
infoSize:"xl",
urls : {
load : fimsApiUrl.FIND_RCV_PATH_FILES
},
keymapper:info => info ? info.SOME_KEY : "",
dataGetter:obj => obj.data.contents
});
$$Control._paginationInfo.paging = false;
$$Control.onDatasetChange = obj => {
let pagination = obj.data.pagination;
if(obj.data.pagination){
$$Control._paginationInfo.totalSize = pagination.totalSize;
$$Control._paginationInfo.pageNum = pagination.pageNum;
} else {
$$Control._paginationInfo.totalSize = obj.count;
}
$$Control.totalCountSetting(obj);
render$$List(obj.data);
if($$Control._paginationInfo.paging && $$Control._paginationInfo.pagingType == "nav"){
let start = 0;
if(pagination.pageNum > 1 && pagination.totalPage > 1 && pagination.totalSize > $$Control._paginationInfo.fetchSize){
start = $$Control._paginationInfo.fetchSize * (pagination.pageNum - 1);
}
$("#grid1Paging").setPaging({
list: $$Control.dataset,
prefix: "grid1",
start: start,
totalSize: pagination.totalSize,
fetchSize: $$Control._paginationInfo.fetchSize,
func: "$$$Control.load({index})",
});
}
};
function search$$s(){
$$Control.query = {"dirPath": $('#dirPath').val()};
GRID.clear();
$$Control.load(1);
}
function render$$List(data) {
if($$Control._paginationInfo.paging && $$Control._paginationInfo.pagingType == "nav"){
GRID.clear();
}
GRID.appendRows(data.contents);
}
/* *******************************
* Biz function
******************************* */
const fnBiz = {
fileSelect: (e) => {
//const output = document.querySelector("ul");
arrFiles = [];
const files = e.target.files;
const arrFile = [];
for (let i=0; i<files.length; i++) {
// const item = document.createElement("li");
// item.innerHTML = files[i].webkitRelativePath;
// output.appendChild(item);
arrFile.push({
filePath: '',
fileNm: files[i].name,
fileType: files[i].type,
fileSize: files[i].size,
//lastModified: files[i].lastModified
lastModified: files[i].lastModifiedDate
})
arrFiles.push(files[i]);
}
GRID.resetData(arrFile);
$('#totCnt span').text(arrFile.length);
},
add: () => {
const arrChecks = GRID.getData();
if(arrChecks.length===0) {
alert("등록[변경]할 데이타가 없습니다.");
return false;
}
if(confirm("등록 하시겠습니까?")) {
if($('#crdnSeCd').val() !== '07') {
const formData = new FormData();
arrFiles.forEach((f)=> {
formData.append("files", f)
})
$.ajax({
type: 'post'
, enctype: "multipart/form-data"
<%--, url: '<c:url value="/fims/biz/ec/saveCctvCrackdownDatas.do"/>'--%>
, url: fimsApiUrl.SAVE_CCTV_EC_EXTRL_REGLT_CNTCS
, data: formData
, processData: false
, contentType: false
, success: (res) => {
if (res) {
alert(res.message);
search$$s();
}
}
, error: (xhr, status, err) => {
}
})
}else {
const data = {
filePath: $('#dirPath').val()
,fileInfoList: arrChecks.map((row) => {
return {fileNm: row.fileNm, fileType: row.fileType, fileSize: row.fileSize}
})
}
cmmAjax({
<%--url: '<c:url value="/fims/biz/ec/saveBusCctvCrackdownDatas.do"/>'--%>
url: fimsApiUrl.SAVE_BUS_ONLY_EC_EXTRL_REGLT_CNTC
, data: JSON.stringify(data)
, contentType: 'application/json; charset=utf-8'
, success: () => {
search$$s();
}
})
}
}
}
,onComboChange: () => {
$('#totCnt span').text(0);
if($('#crdnSeCd').val() === '07') {
$('#folder')
.css('display', 'none')
.attr('disabled', true);
$('#dirPath')
.css('display', 'inline-block')
.attr('disabled', false);
$('#warnMsg').css('display', 'none')
.attr('disabled', true);
search$$s();
}else{
$('#folder')
.css('display', 'inline-block')
.attr('disabled', false);
$('#dirPath')
.css('display', 'none')
.attr('disabled', true);
$('#warnMsg').css('display', 'inline-block')
.attr('disabled', false);
GRID.resetData([]);
}
}
}
/**************************************************************************
* event
**************************************************************************/
$(() => {
$(window).on("unload", function (e) {
window.opener?.unblockUI();
window.opener?.callbackSearch();
return null;
});
$("#btnClose").on('click', () => {
window.close()
});
$('#folder').on('change', function(e) {
//document.getElementById("folder").select();
//document.selection.clear();
fnBiz.fileSelect(e)
});
$('#btnSearch').on('click', () => search$$s());
$('#btnRegist').on('click', () => {
fnBiz.add();
});
});
/* *******************************
* Grid
******************************* */
const initGrid = () => {
const gridColumns = [
{
header: '경로',
name: 'filePath',
hidden: true
},
{
header: '이름',
name: 'fileNm',
width: 420,
//minWidth: 250,
sortingType: 'desc',
sortable: true,
filter: 'select' //fiter 옵션(select/text/number/date/.. 등이 있으며 설정방법은 상이하므로 사이트 참조)
},
{
header: '타입',
name: 'fileType',
width: 30,
align: 'center',
sortable: true,
},
{
header: '크기',
name: 'fileSize',
width: 80,
sortable: true,
align: 'right',
formatter({value}){
return new Intl.NumberFormat('ko').format(value);
}
},
{
header: '생성일시',
name: 'lastModified',
width: 120,
sortable: true,
align: 'center',
formatter({value}){
//return StrDateTimeFormat.format(value);
return value;
}
}
];
const gridOptions = {
el: 'grid',
rowHeaders: ['rowNum'],
columns: gridColumns,
columnOptions: {
frozenCount: 1
},
bodyHeight: 400,
paginationInfoRef : $$Control._paginationInfo
};
GRID = TuiGrid.of(gridOptions);
}
/**************************************************************************
* initialize
**************************************************************************/
$(document).ready(function(){
initGrid();
});
</script>

@ -1,260 +0,0 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ include file="/WEB-INF/jsp/include/taglib.jsp" %>
<%@ include file="/WEB-INF/jsp/include/fims/taglib.jsp" %>
<form id="frmSearch" name="frmSearch">
<div class="container-search">
<table>
<caption>검색조건</caption>
<colgroup>
<col style="width: 400px;"/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<tbody>
<tr>
<td colspan="5">
<label for="sysSeCd">시스템 구분</label>
<code:select grpId="FIM001" defaultSelect="PVS" id="sysSeCd" name="sysSeCd" title="시스템구분" cls="form-select" alt="selectBox tag" disabled="true"/>
</td>
<td colspan="6">
<button type="button" id="btnSearch" class="btn btn-search" title="검색">검색</button>
</td>
</tr>
</tbody>
</table>
</div>
</form>
<!-- //검색 -->
<div class="container-page-btn">
<span>
<div class="clearfix" id="totCnt">전체 ㅣ <span></span></div>
</span>
<span class="flr">
<a href="#" class="btn btn-darkgray" id="btnRegist" title="템플릿 등록">등록</a>
</span>
</div>
<!-- //버튼 및 페이지정보 -->
<!-- 데이터 출력 -->
<div id="grid"></div>
<div class="d-flex flex-row p-3 justify-content-between">
<label id="grid1PagingInfo" class="dataTables_info" role="status" aria-live="polite"></label>
<ul id="grid1Paging" class="pagination pagination-primary"></ul>
</div>
<script type="text/javascript" src="${pageContext.request.contextPath}/resources/js/fims/biz/common/popupPageNavigation.js" defer></script>
<script type="text/javaScript">
/**************************************************************************
* Global Variable
**************************************************************************/
let GRID = null;
var pageNav = null;
var callbackSearch = () => search$$s();
let $$Control = new FimsDatasetControl({
prefix:"aaa",
prefixName:"ㅁㅁㅁ",
infoSize:"xl",
urls : {
load : fimsApiUrl.FIND_CCTV_EC_EXTRL_REGLT_CNTCS,
detail : fimsApiUrl.POPUP_CCTV_EC_EXTRL_REGLT_CNTC_INFO,
file : fimsApiUrl.POPUP_CCTV_EC_EXTRL_REGLT_CNTC_DATA_SEL
},
keymapper:info => info ? info.SOME_KEY : "",
dataGetter:obj => obj.data.contents
});
$$Control.onDatasetChange = obj => {
let pagination = obj.data.pagination;
if(obj.data.pagination){
$$Control._paginationInfo.totalSize = pagination.totalSize;
$$Control._paginationInfo.pageNum = pagination.pageNum;
} else {
$$Control._paginationInfo.totalSize = obj.count;
}
$$Control.totalCountSetting(obj);
render$$List(obj.data);
if($$Control._paginationInfo.paging && $$Control._paginationInfo.pagingType == "nav"){
let start = 0;
if(pagination.pageNum > 1 && pagination.totalPage > 1 && pagination.totalSize > $$Control._paginationInfo.fetchSize){
start = $$Control._paginationInfo.fetchSize * (pagination.pageNum - 1);
}
$("#grid1Paging").setPaging({
list: $$Control.dataset,
prefix: "grid1",
start: start,
totalSize: pagination.totalSize,
fetchSize: $$Control._paginationInfo.fetchSize,
func: "$$$Control.load({index})",
});
}
};
function search$$s(){
let formFields = new FimsFormFields("#frmSearch");
$$Control.query = formFields.get();
GRID.clear();
$$Control.load(1);
}
function render$$List(data) {
if($$Control._paginationInfo.paging && $$Control._paginationInfo.pagingType == "nav"){
GRID.clear();
}
GRID.appendRows(data.contents);
}
/* *******************************
* Biz function
******************************* */
const fnBiz = {
pagePopup: function(flag, params){
let url;
let popTitle;
let popOption;
switch (flag) {
case "detail":
popOption = {width: 900, height:800};
popTitle = "외부연계 데이타 상세";
break;
case "file":
popOption = {width: 900, height:750};
popTitle = "외부연계 데이타 선택";
break;
default:
break;
}
$.blockUI({message: '' ,css: {width: '100%', height: '100%'}
//모달창 외부 클릭시 닫기
,onOverlayClick: () => {
$.unblockUI();
popup?.self?.close();
}
});
popup = CmmPopup.open($$Control.urls[flag], params, popOption, popTitle);
}
,onClickGrid: function(props){
const gridDatas = GRID.store.data.rawData.map(d => {
return {fileLinkId: d.fileLinkId, crdnSeCd: d.crdnSeCd}
})
pageNav = new PageNavigation(GRID, gridDatas, props.rowKey);
fnBiz.pagePopup('detail', pageNav.gridInfo.curRowData);
}
}
/**************************************************************************
* event
**************************************************************************/
$(() => {
$('#btnSearch').on('click', () => search$$s());
$('#btnRegist').on('click', () => {
fnBiz.pagePopup('file');
});
});
/* *******************************
* Grid
******************************* */
const initGrid = () => {
const gridColumns = [
{
header: '단속구분',
name: 'crdnSeCd',
minWidth: 80,
sortable: false,
align: 'center',
formatter: 'listItemText',
disabled: true,
editor: {
type: "select",
options: {
listItems: ComboCodeData.crdnSeCd
}
},
},
{
header: '차량번호',
name: 'vhrno',
minWidth: 70,
sortable: false,
align: 'center',
renderer: {
type: CustomButtonRenderer,
options: {
formatter: (props)=>{
return {
formatter: props.grid.getRow(props.rowKey).vhrno
,element: "text"
}
}
,eventFunction: fnBiz.onClickGrid
,eventType: "click"
}
}
},
{
header: '단속일자',
name: 'crdnYmd',
minWidth: 80,
sortable: false,
align: 'center',
formatter({value}){
return StrDateFormat.format(value);
}
},
{
header: '등록일시',
name: 'regDt',
minWidth: 130,
sortable: false,
align: 'center',
formatter({value}){
return StrDateTimeFormat.format(value);
}
},
{
header: '외부연계키',
name: 'fileLinkId',
minWidth: 100,
sortable: true,
sortingType: 'desc',
align: 'center',
}
];
const gridOptions = {
el: 'grid',
rowHeaders: ['rowNum'],
columns: gridColumns,
columnOptions: {
frozenCount: 3
},
paginationInfoRef : $$Control._paginationInfo
};
GRID = TuiGrid.of(gridOptions);
}
/**************************************************************************
* initialize
**************************************************************************/
$(document).ready(function(){
initGrid();
});
</script>

@ -1,344 +0,0 @@
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="/WEB-INF/jsp/include/taglib.jsp" %>
<%@ include file="/WEB-INF/jsp/include/fims/taglib.jsp" %>
<%--rcvXmlDTO--%>
<c:set var="files" value="${attchFiles}"/>
<c:set var="bizName" value="외부연계 데이타"/>
<div class="popup" style="min-width: 100px;">
<div class="container-window2" style="max-width: 900px;">
<p class="container-window-header2">
<c:out value="${bizName}"/>(<c:out value="${extrDTO.fileLinkId}"/>) 상세
</p>
<div class="container-window-btn3">
<button type="button" id="prev" name="prev" class="btn btn-pagination">prev</button>
<div>
<span>
<div id="totCnt" style="padding: 0 10px;"><span></span></div>
</span>
</div>
<button type="button" id="next" name="next" class="btn btn-pagination">next</button>
</div>
<form>
<div class="container-window-btn1">
<c:set var="isProcess" value="${empty extrDTO.crdnId}"/>
<span id="${extrDTO.fileLinkId}" >
<c:if test="${isProcess}">
<a href="#" class="btn btn-blue" onclick="fnBiz.save('${extrDTO.fileLinkId}')">저장</a>
<a href="#" class="btn btn-red" onclick="fnBiz.remove('${extrDTO.fileLinkId}')">삭제</a>
<c:if test="${!empty extrDTO.vhrno}">
<a href="#" class="btn btn-darkgray" onclick="fnBiz.reglt('${extrDTO.fileLinkId}')">단속처리</a>
<a href="#" class="btn btn-darkgray" onclick="fnBiz.erpp('${extrDTO.fileLinkId}')">서손처리</a>
</c:if>
</c:if>
</span>
</div>
<table class="table-03">
<caption><c:out value="${bizName}"/> 상세</caption>
<colgroup>
<col style="width: 13%;"/>
<col style="width: 20%;"/>
<col style="width: 13%;"/>
<col style="width: 20%;"/>
<col style="width: 13%;"/>
<col style="width: 20%;"/>
</colgroup>
<tbody>
<tr>
<th>외부연계ID</th>
<td>
<input type="text" name="fileLinkId" value='<c:out value="${extrDTO.fileLinkId}"/>' readonly>
</td>
<th>차량번호</th>
<td>
<input type="text" name="vhrno" value='<c:out value="${extrDTO.vhrno}"/>' <c:if test="${!isProcess}">readonly</c:if>>
</td>
<th>단속ID</th>
<td>
<input type="text" name="crdnId" value='<c:out value="${extrDTO.crdnId}"/>' readonly>
</td>
</tr>
<tr>
<th>시스템구분</th>
<td>
<code:select id="sysSeCd" name="sysSeCd" grpId="FIM001" defaultSelect="${extrDTO.sysSeCd}" title="시스템코드" cls="form-select" alt="시스템코드" disabled="true"/>
</td>
<th>기관코드</th>
<td>
<code:select id="sggCd" name="sggCd" grpId="XIT025" defaultSelect="${extrDTO.sggCd}" title="기관코드" cls="form-select" alt="기관코드" disabled="true"/>
</td>
<th>단속구분</th>
<td>
<code:select id="crdnSeCd" name="crdnSeCd" grpId="FIM002" defaultSelect="${extrDTO.crdnSeCd}" title="단속구분" cls="form-select" alt="단속구분" disabled="true"/>
</td>
</tr>
<tr>
<th>단속일시</th>
<td>
<fmt:parseDate value="${extrDTO.crdnYmd}${extrDTO.crdnBgngTm}" var="crdnYmdTime" pattern="yyyyMMddHHmmss"/>
<input type="text" name="crdnYmdTime" value='<fmt:formatDate value="${crdnYmdTime}" pattern="yyyy-MM-dd HH:mm:ss"/>' readonly>
</td>
<th>단속장소</th>
<td>
<input type="text" name="crdnPlc" value='<c:out value="${extrDTO.crdnPlc}"/>' readonly>
</td>
<th>위반내역</th>
<td>
<input type="text" name="vltnCn" value='<c:out value="${extrDTO.vltnCn}"/>' readonly>
</td>
</tr>
<tr>
<th>GPS위도</th>
<td>
<input type="text" name="gpsX" value='<c:out value="${extrDTO.gpsX}"/>' readonly>
</td>
<th>GPS경도</th>
<td>
<input type="text" name="gpsY" value='<c:out value="${extrDTO.gpsY}"/>' readonly>
</td>
<th>처리상태</th>
<td>
<code:select id="trsmCd" name="trsmCd" grpId="FIM010" defaultSelect="${extrDTO.trsmCd}" title="처리상태" cls="form-select" alt="처리상태" disabled="true"/>
</td>
</tr>
<tr>
<th>등록일시</th>
<td>
<fmt:parseDate value="${extrDTO.regDt}" var="regDt" pattern="yyyyMMddHHmmss"/>
<input type="text" name="regDt" value="<fmt:formatDate value="${regDt}" pattern="yyyy-MM-dd HH:mm:ss"/>" readonly>
</td>
<th>송신여부</th>
<td>
<input type="text" name="sendYnC" value="<c:out value="${rcvXmlDTO.sendYnC}"/>" readonly>
</td>
<th>송신일시</th>
<td>
<fmt:parseDate value="${rcvXmlDTO.sendD}" var="sendD" pattern="yyyyMMddHHmmss"/>
<input type="text" name="petiRegD" value="<fmt:formatDate value="${sendD}" pattern="yyyy-MM-dd HH:mm:ss"/>" readonly>
</td>
</tr>
<%--
<tr>
<th>처리구분2</th>
<td>
<input type="text" name="pcdGubun2V" value="<c:out value="${rcvXmlDTO.pcdGubun2V}"/>" readonly>
</td>
<th>처리구분3</th>
<td>
<input type="text" name="pcdGubun3V" value="<c:out value="${rcvXmlDTO.pcdGubun3V}"/>" readonly>
</td>
<th>인터페이스ID</th>
<td>
<input type="text" name="ifid" value="<c:out value="${rcvXmlDTO.ifid}"/>" readonly>
</td>
</tr>
<tr>
<th>소스기관코드</th>
<td>
<input type="text" name="srcorgcd" value="<c:out value="${rcvXmlDTO.srcorgcd}"/>" readonly>
</td>
<th>타겟기관코드</th>
<td>
<input type="text" name="tgtorgcd" value="<c:out value="${rcvXmlDTO.tgtorgcd}"/>" readonly>
</td>
<th>인터페이스ID</th>
<td>
<input type="text" name="ifid" value="<c:out value="${rcvXmlDTO.ifid}"/>" readonly>
</td>
</tr>
--%>
</tbody>
</table>
</form>
<div class="container-window-btn1">
<span>
<a href="#" class="btn btn-blue" onclick="fnBiz.savePhoto()">save</a>
</span>
</div>
<div id="imgList"></div>
<div>
<img id="uploadImage"/>
</div>
<div class="container-window-btn1">
<span>
<a href="#" id="btnClose" class="btn btn-lightgray">닫기</a>
</span>
</div>
<!-- //등록버튼 -->
</div>
</div>
<!-- //popup -->
<script type="text/javascript" src="${pageContext.request.contextPath}/resources/js/fims/framework/cmm/cmmDownloadImg.js" defer></script>
<script type="text/javascript">
/**************************************************************************
* Global Variable
**************************************************************************/
let $$Control = new FimsDatasetControl({
prefix:"aaa",
prefixName:"ㅁㅁㅁ",
infoSize:"xl",
urls : {
imageEditor : frwkApiUrl.POPUP_PAINTWEB_IMG_EDITOR,
imageView : frwkApiUrl.POPUP_IMG_VIEW
},
keymapper:info => info ? info.SOME_KEY : "",
dataGetter:obj => obj.data.contents
});
let orgDtlDatas = [];
let downloadImgParam;
var imageEditorPopup = (flag, params) => fnBiz.pagePopup(flag, params);
var callbackReloadImage = () => fnBiz.downloadImg();
/* *******************************
* Biz function
******************************* */
const fnBiz = {
search: (params) => {
cmmAjax({
showSuccessMsg: false
,url: fimsApiUrl.FIND_CCTV_EC_EXTRL_REGLT_CNTC_AND_ATTCH_FILES
,data: params
,success: (res) => {
cmmImgDownload('#imgList', res.attchFiles, fnBiz.pagePopup, true);
window.opener.pageNav.reloadNav($('#prev'), $('#next'), $('#totCnt span'));
let formFields = new FimsFormFields("form");
formFields.set(res.extrDTO);
}
})
}
,downloadImg: () => {
cmmAjax({
showSuccessMsg: false
,url: fimsApiUrl.FIND_EC_EXTRL_REGLT_CNTC_ATTCH_FILES
,data: downloadImgParam
,success: (res) => {
cmmImgDownload('#imgList', res.data?.contents, fnBiz.pagePopup, true);
}
})
}
,pagePopup: function(flag, params) {
let popTitle;
let popOption;
switch (flag) {
// FIXME: 이미지에디터 팝업 width, height는 952, 800으로 fix
// paintweb config의 imageWidth, imageHeight, viewportWidth, viewPortHeight 와 같이 연관
case "imageEditor":
popOption = {width: 952, height: 800, resizable:false,scrollbars:'no'};
popTitle = "이미지 에디터";
break;
case "imageView":
popOption = {width: 950, height: 750, resizable:false, scrollbars:'no'};
popTitle = "이미지 보기";
break;
default:
break;
}
window.opener.popup = CmmPopup.open($$Control.urls[flag], params, popOption, popTitle);
}
,save: (fileLinkId) => {
cmmBizAjax('modify', {
url: fimsApiUrl.MODIFY_EC_EXTRL_REGLT_CNTC
,data: $('form').serialize()
})
}
,remove: (fileLinkId) => {
const data = {
interfaceSeqN: '${reqDTO.interfaceSeqN}'
,ctznSttemntDetailSn: ctznSttemntDetailSn
}
if(confirm('첨부파일도 함께 삭제 하시겠습까?')) data.removeImageData = true;
cmmBizAjax('remove', {
url: '<c:url value="/fims/biz/ec/removeCtznStmtDtl.do"/>'
,data: $.param(data)
})
}
,reglt: (fileLinkId) => {
const data = {
fileLinkId
,crdnSeCd: '${extrDTO.crdnSeCd}'
}
if(!confirm('단속자료를 생성 하시겠습니까?')) return false;
cmmAjax({
<%--url: '<c:url value="/fims/biz/ec/saveExtrRtReglt.do"/>'--%>
url: fimsApiUrl.SAVE_EC_EXTRL_REGLT_CNTC_RT_REGLT
,data: $.param(data)
})
}
,erpp: (fileLinkId) => {
const data = {
fileLinkId
,crdnSeCd: '${extrDTO.crdnSeCd}'
}
if(!confirm('서손 처리 하시겠습니까?')) return false;
cmmAjax({
url: fimsApiUrl.SAVE_EC_EXTRL_REGLT_CNTC_RT_ERPP
,data: $.param(data)
})
}
,savePhoto: () => {
dragableSave();
}
// ,close: () => {
// window.opener.gridInfo = null;
// window.opener.unblockUI();
// window.opener.popup = null;
// window.close();
// }
};
/**************************************************************************
* event
**************************************************************************/
$(() => {
$('img').on('click', () => {
fnBiz.viewImg()
});
$(window).on("unload", function (e) {
window.opener?.unblockUI();
window.opener?.callbackSearch();
return null;
});
$("#btnClose").on('click', () => {
window.close()
});
$('#prev').on('click', () => {
window.opener.pageNav.onClickNavBtn('prev', (gridInfo) => {
fnBiz.search(gridInfo.curRowData)
});
})
$('#next').on('click', () => {
window.opener.pageNav.onClickNavBtn('next', (gridInfo) => {
fnBiz.search(gridInfo.curRowData);
});
});
});
/**************************************************************************
* initialize
**************************************************************************/
$(document).ready(function () {
// orgData = $('form').serialize();
downloadImgParam = {fileLinkId: '${extrDTO.fileLinkId}', crdnSeCd: '${extrDTO.crdnSeCd}'};
fnBiz.downloadImg();
window.opener.pageNav.reloadNav($('#prev'), $('#next'), $('#totCnt span'))
});
</script>

@ -24,6 +24,7 @@ Date Author Description
<div class="container-page-btn">
<button type="button" class="btn btn-outline-dark">초기화</button>
<span class="container-window-btn-right">
<button type="button" class="btn btn-darkgray" id="btnSingoRegist" title="시민신고개별등록">시민신고개별등록</button>
<button type="button" class="btn btn-darkgray" id="btnMenualRegist" title="위반자료수기등록">위반자료수기등록</button>
<button type="button" class="btn btn-darkgray" id="btnExtrRegist" title="외부연계파일처리">외부연계파일처리</button>
</span>

@ -55,8 +55,8 @@ const fimsApiUrl = {
//외부연계처리 - CCTV 데이타 관리(cctv고정형 / 이동형 / 버스장착형)
,POPUP_CCTV_EC_EXTRL_REGLT_CNTC_INFO: '/fims/biz/ec/ecCctvCrackdownPopup.do' //CCTV 외부연계 데이타 상세
,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 외부연계 정보 및 첨부파일 조회

Loading…
Cancel
Save