feat: 초기자료편집 > 단속건수 클릭시 차량단속 목록 팝업 반영
parent
f87aae3296
commit
7fdfaef75e
@ -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>
|
@ -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;
|
|
||||||
}
|
|
Loading…
Reference in New Issue