feat: 초기자료편집 > 단속건수 클릭시 차량단속 목록 팝업 반영

main
Jonguk. Lim 2 years ago
parent f87aae3296
commit 7fdfaef75e

@ -19,7 +19,7 @@ public class FimsCrackdownDTO {
@SuperBuilder @SuperBuilder
public static class Info extends RtDTO.Reglt { public static class Info extends RtDTO.Reglt {
private String regltDeTime; //private String regltDeTime;
/** /**
* *
*/ */

@ -16,6 +16,7 @@ import kr.xit.fims.biz.FimsConst;
import kr.xit.fims.biz.cmm.dto.FimsCrackdownDTO; import kr.xit.fims.biz.cmm.dto.FimsCrackdownDTO;
import kr.xit.fims.biz.cmm.service.IFimsCrackdownMgtService; import kr.xit.fims.biz.cmm.service.IFimsCrackdownMgtService;
import kr.xit.fims.biz.ec.dto.CtznStmtDTO; import kr.xit.fims.biz.ec.dto.CtznStmtDTO;
import kr.xit.fims.biz.rt.dto.RtDTO;
import kr.xit.fims.biz.rt.service.IRtCrackdownMgtService; import kr.xit.fims.biz.rt.service.IRtCrackdownMgtService;
import kr.xit.fims.biz.utils.FimsBizUtils; import kr.xit.fims.biz.utils.FimsBizUtils;
import kr.xit.framework.biz.cmm.service.ICmmFileService; import kr.xit.framework.biz.cmm.service.ICmmFileService;
@ -139,6 +140,16 @@ public class FimsCrackDownMgtController {
return mav; return mav;
} }
@RequestMapping(value = "/cmmCarCrackdownCntPopup")
public ModelAndView cmmCarCrackdownCntPopup(final RtDTO.Request dto){
ModelAndView mav = new ModelAndView();
mav.addObject("param", dto);
mav.addObject("pageTitle", "차량 단속건 조회");
mav.setViewName(FimsConst.FIMS_JSP_BASE_PATH + "cmm/cmmCarCrackdownCntPopup.popup");
return mav;
}
@RequestMapping(value = "/findCrackdownInfos") @RequestMapping(value = "/findCrackdownInfos")
public ModelAndView findCrackdownInfos(@RequestParam final Map<String,Object> paraMap) { public ModelAndView findCrackdownInfos(@RequestParam final Map<String,Object> paraMap) {
return ResultResponse.of(service.findCrackdownInfos(paraMap, MybatisUtils.getPagingInfo(paraMap))); return ResultResponse.of(service.findCrackdownInfos(paraMap, MybatisUtils.getPagingInfo(paraMap)));

@ -187,6 +187,8 @@ public class RtDTO {
* *
*/ */
private String enlightResnCode; private String enlightResnCode;
private String regltDeTime;
} }
/** /**

@ -18,6 +18,7 @@ public interface IRtCrackdownMgtMapper {
List<RtDTO.Reglt> selectRtReglts(final Map<String,Object> paraMap, final RowBounds rowBounds); List<RtDTO.Reglt> selectRtReglts(final Map<String,Object> paraMap, final RowBounds rowBounds);
<T> RtDTO.Reglt selectRtReglt(final T t); <T> RtDTO.Reglt selectRtReglt(final T t);
<T> List<RtDTO.Reglt> selectRtRegltByVhcleNo(final T t);
<T> RtDTO.Payer selectRtPayer(final T t); <T> RtDTO.Payer selectRtPayer(final T t);
void insertRtReglt(final RtDTO.Reglt dto); void insertRtReglt(final RtDTO.Reglt dto);

@ -17,6 +17,7 @@ public interface IRtCrackdownMgtService {
List<RtDTO.Reglt> findRtReglts(final Map<String,Object> paraMap, final RowBounds rowBounds); List<RtDTO.Reglt> findRtReglts(final Map<String,Object> paraMap, final RowBounds rowBounds);
<T> RtDTO.Reglt findRtReglt(final T t); <T> RtDTO.Reglt findRtReglt(final T t);
<T> List<RtDTO.Reglt> findRtRegltByVhcleNo(final T t);
void addRtReglt(final RtDTO.Reglt dto); void addRtReglt(final RtDTO.Reglt dto);
void modifyRtReglt(final RtDTO.Reglt dto); void modifyRtReglt(final RtDTO.Reglt dto);
void removeRtReglt(final RtDTO.Reglt dto); void removeRtReglt(final RtDTO.Reglt dto);

@ -29,6 +29,13 @@ public class RtCrackdownMgtService implements IRtCrackdownMgtService {
public <T> RtDTO.Reglt findRtReglt(final T t) { public <T> RtDTO.Reglt findRtReglt(final T t) {
return mapper.selectRtReglt(t); return mapper.selectRtReglt(t);
} }
@Override
@Transactional(readOnly = true)
public <T> List<RtDTO.Reglt> findRtRegltByVhcleNo(final T t) {
return mapper.selectRtRegltByVhcleNo(t);
}
@Override @Override
@Transactional @Transactional
public void addRtReglt(final RtDTO.Reglt dto){ public void addRtReglt(final RtDTO.Reglt dto){

@ -44,19 +44,12 @@ public class RtCrackdownMgtController {
private final ICmmFileService fileService; private final ICmmFileService fileService;
@Value("#{prop['app.extnl.car.url']}")
private String extnlCarUrl;
@RequestMapping(value = "/rtRegltMgtForm") @RequestMapping(value = "/rtRegltMgtForm")
public void rtRegltMgtForm(){ public void rtRegltMgtForm(){
} }
@RequestMapping(value = "/rtCrackdownMgtMainForm") @RequestMapping(value = "/rtCrackdownMgtMainForm")
public ModelAndView rtCrackdownMgtMainForm(final RtDTO.Request dto){ public void rtCrackdownMgtMainForm(final RtDTO.Request dto){
ModelAndView mav = new ModelAndView();
mav.addObject("extnlCarUrl", extnlCarUrl);
return mav;
} }
/** /**
@ -110,6 +103,11 @@ public class RtCrackdownMgtController {
return ResultResponse.of(service.findRtReglt(dto)); return ResultResponse.of(service.findRtReglt(dto));
} }
@GetMapping(value = "/findRtRegltByVhcleNo")
public ModelAndView findRtRegltByVhcleNo(final RtDTO.Request dto) {
return ResultResponse.of(service.findRtRegltByVhcleNo(dto));
}
@RequestMapping(value = "/findRtRegltAndAttchFiles") @RequestMapping(value = "/findRtRegltAndAttchFiles")
public ModelAndView findRtRegltAndAttchFiles(final RtDTO.Request dto) { public ModelAndView findRtRegltAndAttchFiles(final RtDTO.Request dto) {
ModelAndView mav = new ModelAndView(FrameworkConstants.JSON_VIEW); ModelAndView mav = new ModelAndView(FrameworkConstants.JSON_VIEW);

@ -44,6 +44,7 @@
, trr.last_opetr , trr.last_opetr
, trr.regist_dt , trr.regist_dt
, trr.regist_se_code , trr.regist_se_code
, CONCAT(trr.reglt_de, trr.reglt_begin_time) AS regltDeTime
FROM tb_rt_reglt trr FROM tb_rt_reglt trr
-- LEFT OUTER JOIN tb_rt_erpp tre -- LEFT OUTER JOIN tb_rt_erpp tre
-- ON trr.reglt_id = tre.reglt_id -- ON trr.reglt_id = tre.reglt_id
@ -96,6 +97,11 @@
WHERE trr.reglt_id = #{regltId} WHERE trr.reglt_id = #{regltId}
</select> </select>
<select id="selectRtRegltByVhcleNo" resultType="kr.xit.fims.biz.rt.dto.RtDTO$Reglt">
/* rt-reglt-and-erpp-mysql-mapper|selectRtRegltByVhcleNo-차량 단속 정보 목록 조회|julim */
<include refid="sqlRtReglt"/>
WHERE trr.vhcle_no = #{vhcleNo}
</select>
<insert id="insertRtReglt"> <insert id="insertRtReglt">
/* rt-reglt-and-erpp-mysql-mapper|insertRtReglt-단속 정보 등록|julim */ /* rt-reglt-and-erpp-mysql-mapper|insertRtReglt-단속 정보 등록|julim */

@ -0,0 +1,168 @@
<%--
================================================================================
File : /fims/biz/cmm/cmmCtznComplaintHistPopup.jsp
Name : 단속현황 시민 민원 이력 팝업 - 단속관리>초기자료 편집
Auth : lim.jong.uk
Date : 2023-03-20
Desc : 단속현황 시민 민원 이력 팝업
================================================================================
Date Author Description
================================================================================
================================================================================
--%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="/WEB-INF/jsp/framework/taglibs.jsp"%>
<div class="popup" style="min-width: 100px;">
<div class="popup_inner" style="max-width: 800px;">
<p class="pop_title">차량 단속 내역</p>
<div class="popup_btn">
<div class="flr p_flr">
<span>
<a href="#" id='btnClose' class="btn lightgray">닫기</a>
</span>
</div>
</div>
<div id="grid"></div>
</div><!--row -->
</div>
<script type="text/javaScript">
/**************************************************************************
* Global Variable
**************************************************************************/
let GRID = null;
/* *******************************
* Biz function
******************************* */
/**************************************************************************
* event
**************************************************************************/
$(() => {
$("#btnClose").on('click', () => {
window.close()
});
});
/* ******************************
* Grid
****************************** */
const initPopupGrid = () => {
const gridColumns = [
{
header: '단속구분',
name: 'regltSeCode',
minWidth: 100,
//editor: 'text',
sortable: false,
align: 'center',
formatter: 'listItemText',
disabled: true,
editor: {
type: "select",
options: {
listItems: [...ComboCodeData.regltSeCode]
}
}
},
{
header: '위반일시',
name: 'regltDeTime',
minWidth: 120,
sortable: false,
align: 'center',
formatter({value}) {
return setDateTimeFmt(value); //
}
},
{
header: '단속장소',
name: 'regltPlace',
minWidth: 120,
sortable: false
},
{
header: '위반내역',
name: 'violtDtlsCode',
minWidth: 150,
//editor: 'text',
sortable: false,
align: 'center',
formatter: 'listItemText',
disabled: true,
editor: {
type: "select",
options: {
listItems: [...ComboCodeData.violtDtlsCode]
}
}
},
{
header: '차량번호',
name: 'vhcleNo',
minWidth: 90,
//editor: 'text',
sortable: false,
align: 'center'
},
{
header: '등록일시',
name: 'registDt',
minWidth: 120,
//editor: 'text',
sortable: true,
align: 'center',
formatter({value}) {
return setDateTimeFmt(value);
}
},
{
header: '등록자',
name: 'register',
minWidth: 120,
//editor: 'text',
sortable: false,
align: 'center'
}
];
// 민원 등록 이력 datasource
const gridDatasource = {
initialRequest: true, // 화면 load시 조회 안함 - default
api: {
readData: {
url: fimsApiUrl.FIND_RT_REGLT_CAR_CRACKDOWN_CNT
, serializer: (params) => getPageParam({vhcleNo: '${param.vhcleNo}', regltId: '${param.regltId}', regltSeCode: '${param.regltSeCode}'})
}
}
};
const gridOptions = {
el: 'grid',
minBodyHeight: 200,
bodyHeight: 200, //[선택]Grid 높이 (number(단위: px)|'auto'|'fitToParent')
rowHeaders: ['rowNum'],
pageOptions: {
perPage: 100,
type: 'scroll'
},
columns: gridColumns
};
GRID = TuiGrid.of(gridOptions, gridDatasource, (res) => {
});
};
/**************************************************************************
* initialize
**************************************************************************/
$(document).ready(function(){
initPopupGrid();
});
</script>

@ -168,7 +168,9 @@ Date Author Description
<a id ="vhcleSearch"> <a id ="vhcleSearch">
<img src="<c:url value='/resources/images/btn/search.png'/>" alt="차적조회" style="cursor: hand"/> <img src="<c:url value='/resources/images/btn/search.png'/>" alt="차적조회" style="cursor: hand"/>
</a> </a>
<em id="crackdown" class="empCls">단속횟수: &nbsp;<span id="vhcleNoCnt"></span>&nbsp;회</em> <a href="javascript:fnPopupBiz.goCarCrackdownCntPopup()">
<em id="crackdown" class="empCls">단속횟수: &nbsp;<span id="vhcleNoCnt"></span>&nbsp;회</em>
</a>
</td> </td>
<th>면제차량여부</th> <th>면제차량여부</th>
<td> <td>
@ -406,7 +408,7 @@ Date Author Description
$('tr[id*=ctzn]').hide(); $('tr[id*=ctzn]').hide();
} }
} }
,findVhcleNo: () => { ,findCarNo: () => {
if(!$('input[name=vhcleNo]').val()){ if(!$('input[name=vhcleNo]').val()){
alert('먼처 차량번호를 입력해 주세요.'); alert('먼처 차량번호를 입력해 주세요.');
$('input[name=vhcleNo]').focus(); $('input[name=vhcleNo]').focus();
@ -621,7 +623,6 @@ Date Author Description
} }
} }
// TODO :: 개별총정보>민원내역탭 내용의 팝업 필요
,goMinwonPopup: () => { ,goMinwonPopup: () => {
const url = fimsApiUrl.POPUP_CTZN_CMPLNT_HIST; const url = fimsApiUrl.POPUP_CTZN_CMPLNT_HIST;
const popOption = {width: 800, height:600}; const popOption = {width: 800, height:600};
@ -629,6 +630,14 @@ Date Author Description
const params = {regltId: schParam.regltId, payerId: schParam.payerId, vhcleNo:schParam.vhcleNo} const params = {regltId: schParam.regltId, payerId: schParam.payerId, vhcleNo:schParam.vhcleNo}
const p = CmmPopup.open(url, params, popOption, popTitle); const p = CmmPopup.open(url, params, popOption, popTitle);
} }
,goCarCrackdownCntPopup: () => {
const url = fimsApiUrl.POPUP_CAR_CRACKDOWN_CNT;
const popOption = {width: 800, height:600};
const popTitle = "민원 내역 조회";
const params = {regltId: schParam.regltId, payerId: schParam.payerId, vhcleNo:schParam.vhcleNo}
const p = CmmPopup.open(url, params, popOption, popTitle);
}
}; };
/************************************************************************** /**************************************************************************
@ -649,7 +658,7 @@ Date Author Description
$('#addrSearch').on('click', () => CmmPopup.zipPopup()); $('#addrSearch').on('click', () => CmmPopup.zipPopup());
$('#vhcleSearch').on('click', () => { $('#vhcleSearch').on('click', () => {
fnPopupBiz.findVhcleNo(); fnPopupBiz.findCarNo();
}); });

@ -1,319 +0,0 @@
/**************************************************************************
* Global Variable
***************************************************************************/
const menuTab = null,
menuScrollable = null,
iframeMap = {},
menuTabScrollable = null;
/*
function addTab(title, url){
if ($('#tt').tabs('exists', title)){
$('#tt').tabs('select', title);
} else {
var content = '<iframe scrolling="auto" frameborder="0" src="'+url+'" style="width:100%;height:100%;"></iframe>';
$('#tt').tabs('add',{
title:title,
content:content,
closable:true
});
}
}
*/
function openMenu(menuId, menuNm, menuUrl) {
if(!menuUrl) return;
if(iframeMap[menuId]){
// 해당 tab 활성화
// 해당 메뉴 iframe만 활성화
$("#ifrTabs").find("iframe").each((idx, data) => {
if(data.id == menuId) {
$('#ifrTabs').tabs({active: parseInt(data.dataset.tabIndex)})
return false;
}
});
return;
}
const num_tabs = $('div#ifrTabs ul li.tab').length + 1;
// const liEl = '<li class="tab ui-icon ui-icon-close"><a href="#tab-'+ num_tabs + '">' + menuNm + '</a></li>';
//const liEl = '<li class="tab ui-icon-close"><a onclick="closeTab(${menuId}, ${num_tabs})" href="#tab-'+ num_tabs + '">' + menuNm + '</a></li>';
const liEl = '<li onclick="closeTab()" id="'+ menuId +'" class="tab ui-icon-close"><a href="#tab-'+ menuId + '">' + menuNm + '</a></li>';
//const liEl = '<li class="tab ui-icon-close"><a href="#tab-'+ num_tabs + '">' + menuNm + '</a></li>';
$('div#ifrTabs ul').append(liEl);
$('div#ifrTabs').append(
//'<div id="tab-' + num_tabs + '"></div>');
'<div id="tab-' + menuId + '"></div>');
$('#ifrTabs').tabs("option","create");
$('#ifrTabs').tabs("refresh");
$('#ifrTabs').tabs("option", "active", -1); //makes the new tab active
$('#'+menuId).on('click', (e)=>{
console.log('#######')
alert('llll')
})
//const $iframe = $("<iframe id='" + menuId + "'></iframe>");
const $iframe = $("<iframe></iframe>");
$iframe.attr("id" , menuId)
.attr("name" , menuNm)
.attr("data-tab-index", num_tabs - 1)
.attr("frameborder" , "0")
.attr("scrolling" , "no")
.attr("width" , "100%")
.attr("src" , menuUrl)
.css("border" , "0")
.css("height" , "900px")
.css("overflow" , "auto")
.css("overflow-x" , "no")
//.css("zindex", "99999")
;
//$("#content").append($iframe);
//insertContent(menuId, $iframe);
let activeTab = $("#ifrTabs").tabs('option', 'active');
activeTab += 1;
//$("#tab-" + activeTab).append($iframe);
$("#tab-" + menuId).append($iframe);
iframeMap[menuId] = $iframe;
}
function closeTab(menuId) {
const iframe = iframeMap[menuId];
const closeTabIdx = parseInt(ifr.dataset.tabIndex);
let activeTabIdx = $("#ifrTabs").tabs('option', 'active');
// 활성탭의 close
if(closeTabIdx === activeTabIdx){
if(iframe.next().length > 0){
$('#ifrTabs').tabs({active: activeTabIdx + 1})
}else if(iframe.prev().length > 0){
$('#ifrTabs').tabs({active: activeTabIdx - 1})
}
}
iframeMap[menuId].remove();
delete iframeMap[menuId];
}
//});
//Insert content into the currently selected tab
function insertContent(menuId, content) {
//iframeMap[]
let activeTab = $("#ifrTabs").tabs('option', 'active');
activeTab += 1;
$("#tab-" + activeTab).append(content);
//iframeMap.find(menuId)
iframeMap[menuId] = content;
}
$('.ui-icon-close').on('click', (e) => {
console.log(e.target)
})
function tab(){
//탭메뉴 클릭할 때 실행
$('.tab_wrap .tit_list > li a').on('click', function(e) {
e.preventDefault();
//초기화
$('.tab_wrap .tit_list > li').removeClass('active');
$('.tab_wrap .tab_list').hide();
//실행
$(this).parent().addClass('active');
const activeTab = $(this).attr('href');
$(activeTab).show();
//파라미터 확인
urlParam = location.search.substr(location.search.indexOf("?") + 1);
if(urlParam != ''){
urlParam = '?' + urlParam;
}
//파라미터 변경
getNewUrl('tabName', urlParam); //(변경·추가할 파라미터 이름, 현재 파라미터)
function getNewUrl(paramName, oldUrl) {
var newUrl;
var urlChk = new RegExp('[?&]'+paramName+'\\s*=');
var urlChk2 = new RegExp('(?:([?&])'+paramName+'\\s*=[^?&]*)')
if (urlChk.test(oldUrl)) { //해당 파라미터가 있을 때
newUrl = oldUrl.replace(urlChk2, "$1"+paramName+"=" + activeTab.substr(1));
} else if (/\?/.test(oldUrl)) { //해당 파라미터가 없고 다른 파라미터가 있을 때
newUrl = oldUrl + "&"+paramName+"=" + activeTab.substr(1);
} else { //파라미터가 없을 때
newUrl = oldUrl + "?"+paramName+"=" + activeTab.substr(1);
}
history.pushState(null, null, newUrl);
}
});
//파라미터 값 검사
function getParameter(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
var getParam = getParameter('tabName'); //선택한 탭 파라미터
var loadChk = getParameter('loadChk'); //첫 로드 여부 체크
if(getParam != ''){ //파라미터 값이 있으면 파라미터 값 기준으로 탭메뉴 선택
$('.tab_wrap .tit_list > li a[href="#'+getParam+'"]').parent().addClass('active');
$('.tab_wrap .tit_list > li a[href="#'+getParam+'"]').trigger('click');
if(loadChk == 'on'){ //처음 로드되었으면 스크롤 이동
//탭 위치로 이동
var tabTop = $('.tab_wrap').offset().top;
$(window).scrollTop(tabTop - 100);
//파라미터 확인
var urlParam = location.search.substr(location.search.indexOf("?") + 1);
if(urlParam != ''){
urlParam = '?' + urlParam;
}
//loadChk 파라미터 값 변경
loadChange('loadChk', urlParam);
function loadChange(paramName, oldUrl) {
var newUrl;
var urlChk = new RegExp('[?&]'+paramName+'\\s*=');
var urlChk2 = new RegExp('(?:([?&])'+paramName+'\\s*=[^?&]*)')
newUrl = oldUrl.replace(urlChk2, "$1"+paramName+"=off");
history.pushState(null, null, newUrl);
}
}
}else{ //파라미터 값이 없으면 active 클래스 기준으로 탭메뉴 선택
var activeChk = 0;
$('.tab_wrap .tit_list > li').each(function(i) {
if ($(this).hasClass('active')){
$(this).addClass('active');
$(this).find('a').trigger('click');
activeChk ++
}
});
//active 지정 안했을 시 첫 탭메뉴 선택
if(activeChk == 0){
$('.tab_wrap .tit_list > li:first-child a').trigger('click');
}
}
//뒤로가기 탭메뉴 복구
window.onpopstate = function(event) {
//초기화
$('.tab_wrap .tit_list > li').removeClass('active');
$('.tab_wrap .tab_list').hide();
var getParam2 = getParameter('tabName'); //선택한 탭 파라미터
//탭메뉴 열기
if(getParam2 != ''){
$('.tab_wrap .tit_list > li a[href="#'+getParam2+'"]').parent().addClass('active');
$('#'+getParam2).show()
}else{
$('.tab_wrap .tit_list > li:first-child').addClass('active');
$('.tab_wrap .tab_list:first-of-type').show();
}
};
}
function tab2(){
//탭메뉴 클릭할 때 실행
$(".tab_wrap .tit_list > li a").on( "click", function(e) {
e.preventDefault();
//초기화
$(".tab_wrap .tit_list > li").removeClass("active");
$(".tab_wrap .tab_list").hide();
//실행
$(this).parent().addClass("active");
var activeTab = $(this).attr("href");
$(activeTab).show();
});
//초기 탭 설정
var activeChk = 0;
$(".tab_wrap .tit_list > li").each(function(i) {
if ($(this).hasClass("active")){
$(this).addClass("active");
$(this).find('a').trigger("click");
activeChk ++
}
});
//active 지정 안했을 시 첫 탭메뉴 선택
if(activeChk == 0){
$(".tab_wrap .tit_list > li:first-child a").trigger("click");
}
}
let cache = 1;
function createMainTab(){
var mainDiv = document.createElement("div");
mainDiv.setAttribute("class","ui-tabs ui-widget ui-widget-content ui-corner-all");
mainDiv.style.height="100%";
mainDiv.onk_initialised = false;
return mainDiv;
}
function createTabHelper(){
var mainUl = document.createElement("ul");
mainUl.setAttribute("class","ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");
return mainUl;
}
function createTabHelperElement(name,mainTab){
var mainLi = document.createElement("li");
var active = !mainTab.onk_initialised;
mainTab.onk_initialised=true;
if(active){
mainLi.setAttribute("class","ui-state-default ui-corner-top ui-tabs-selected ui-state-active");
}else{
mainLi.setAttribute("class","ui-state-default ui-corner-top");
}
mainLi.onk_createdActive = active;
mainLi.onk_id = "tab_"+cache;
var oLink = document.createElement("a");
oLink.setAttribute("href","#tab_"+cache);
oLink.innerHTML = name;
mainLi.appendChild(oLink);
cache++;
return mainLi;
}
function createTab(tabHelper){
var tabDiv = document.createElement("div");
if(tabHelper.onk_createdActive){
tabDiv.setAttribute("class","ui-tabs-panel ui-widget-content ui-corner-bottom");
}else{
tabDiv.setAttribute("class","ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");
}
tabDiv.setAttribute("id",tabHelper.onk_id);
return tabDiv;
}

@ -9,8 +9,9 @@ const fimsApiUrl = {
,POPUP_EXTR_CRACKDOWN_FILE_SEL: '/fims/biz/cmm/cmmCrackdownRcvFilePopup.do' //CCTV 외부연계 데이타 선택 ,POPUP_EXTR_CRACKDOWN_FILE_SEL: '/fims/biz/cmm/cmmCrackdownRcvFilePopup.do' //CCTV 외부연계 데이타 선택
,POPUP_ENLIGHT_DISALLOW: '/fims/biz/cmm/cmmEnlightDisallowPopup.do' //서손 / 계도 처리 popup ,POPUP_ENLIGHT_DISALLOW: '/fims/biz/cmm/cmmEnlightDisallowPopup.do' //서손 / 계도 처리 popup
,POPUP_IMPOSE: '/fims/biz/cmm/cmmImposePopup.do' //과태료시스템등록 popup ,POPUP_IMPOSE: '/fims/biz/cmm/cmmImposePopup.do' //과태료시스템등록 popup
,POPUP_CTZN_ANS_PREVIEW: '/fims/biz/cmm/cmmCtznAnswerPreviewPopup.do' //시민신고 답변 미리보기 팝업 //과태료시스템등록 popup ,POPUP_CTZN_ANS_PREVIEW: '/fims/biz/cmm/cmmCtznAnswerPreviewPopup.do' //시민신고 답변 미리보기 팝업
,POPUP_CTZN_CMPLNT_HIST: '/fims/biz/cmm/cmmCtznComplaintHistPopup.do' //민원이력 팝업 //과태료시스템등록 popup ,POPUP_CTZN_CMPLNT_HIST: '/fims/biz/cmm/cmmCtznComplaintHistPopup.do' //민원이력 팝업
,POPUP_CAR_CRACKDOWN_CNT: '/fims/biz/cmm/cmmCarCrackdownCntPopup.do' //차량번호 단속건수 조회 팝업
,FIND_CRACKDOWNS: '/fims/biz/cmm/findCrackdownInfos.do' //단속현황-외부연계자료목록 ,FIND_CRACKDOWNS: '/fims/biz/cmm/findCrackdownInfos.do' //단속현황-외부연계자료목록
,FIND_CRACKDOWN_INFO: '/fims/biz/cmm/findCrackdownInfoAndAttchFiles.do' //단속현황-개별총정보 위반정보탭 조회 ,FIND_CRACKDOWN_INFO: '/fims/biz/cmm/findCrackdownInfoAndAttchFiles.do' //단속현황-개별총정보 위반정보탭 조회
,FIND_CTZN_ANS_INFO: '/fims/biz/cmm/findCtznStmtAnswer.do' //시민신고 답변 정보 조회 ,FIND_CTZN_ANS_INFO: '/fims/biz/cmm/findCtznStmtAnswer.do' //시민신고 답변 정보 조회
@ -72,6 +73,9 @@ const fimsApiUrl = {
,MODIFY_RT_REGLT: '/fims/biz/rt/modifyRtReglt.do' //단속 데이타 변경 ,MODIFY_RT_REGLT: '/fims/biz/rt/modifyRtReglt.do' //단속 데이타 변경
,REMOVE_RT_REGLT: '/fims/biz/rt/removeRtReglt.do' //단속 데이타 변경 ,REMOVE_RT_REGLT: '/fims/biz/rt/removeRtReglt.do' //단속 데이타 변경
,FIND_RT_REGLT_ATTCH_FILES: '/fims/biz/rt/findRtRegltAttchFiles.do' //단속 정보 첨부파일 목록 조회 ,FIND_RT_REGLT_ATTCH_FILES: '/fims/biz/rt/findRtRegltAttchFiles.do' //단속 정보 첨부파일 목록 조회
,FIND_RT_REGLT_CAR_CRACKDOWN_CNT: '/fims/biz/rt/findRtRegltByVhcleNo.do' //차량 단속 정보 목록 조회
} }

@ -2,7 +2,7 @@
* Global Variable * Global Variable
***************************************************************************/ ***************************************************************************/
const iframeMap = {}, const iframeMap = {},
openMax = 6; openMax = 8;
function openMenu(menuId, menuNm, menuUrl) { function openMenu(menuId, menuNm, menuUrl) {
if(!menuUrl) return; if(!menuUrl) return;
@ -26,7 +26,7 @@ function openMenu(menuId, menuNm, menuUrl) {
} }
const num_tabs = OPEN_TAB_CNT + 1; const num_tabs = OPEN_TAB_CNT + 1;
const liEl = '<li id="li-'+ menuId +'" class="tab"><a href="#tab-'+ menuId + '">' + menuNm + '</a><span class="biz-tab-close" onclick="closeTab('+ menuId + ',' + num_tabs + ')"></span></li>'; const liEl = '<li id="li-'+ menuId +'" class="tab"><a href="#tab-'+ menuId + '">' + menuNm + '</a><span class="biz-tab-close" onclick="closeTab('+ menuId + ')"></span></li>';
$('div#ifrTabs ul').append(liEl); $('div#ifrTabs ul').append(liEl);
$('div#ifrTabs').append( $('div#ifrTabs').append(
@ -56,7 +56,7 @@ function openMenu(menuId, menuNm, menuUrl) {
iframeMap[menuId] = $iframe; iframeMap[menuId] = $iframe;
} }
function closeTab(menuId, selTab) { function closeTab(menuId) {
if(menuId === 'main' || menuId?.id === 'main') return; if(menuId === 'main' || menuId?.id === 'main') return;
const num_tabs = $('div#ifrTabs ul li.tab').length; const num_tabs = $('div#ifrTabs ul li.tab').length;

Loading…
Cancel
Save