소유자·행위자 관리: 소유자 선택 팝업 JSP 신규 추가, UI/그리드 컬럼 정의 및 초기화 로직 구현, 선택/삭제 처리 추가

단속 등록&열람: 높이 필드 필수 여부 제거, 면적 입력 필드 길이 확장 및 최대값 유효성 검증 추가, 검색 필드 width 조정
단속 상세: 불법행위 정보 연동 로직 개선, 소유자/행위자 선택/삭제 기능 구현, 위치정보 그리드의 데이터 의존성 제거
dev
박성영 4 months ago
parent fb9deb93df
commit 9e4ac3ea20

@ -85,9 +85,9 @@
<tr>
<th class="th"><span class="required">*</span> 면적(㎡)</th>
<td>
<input type="text" id="area" name="area" class="input decimalMask" style="width: 120px;" maxlength="10" placeholder="예) 45.94" validation-check="required number" value="${data.area}"/>
<input type="text" id="area" name="area" class="input decimalMask" style="width: 120px;" maxlength="12" placeholder="예) 45.94" validation-check="required number" value="${data.area}"/>
</td>
<th class="th"><span class="required">*</span> 높이(m)</th>
<th class="th">높이(m)</th>
<td>
<input type="text" id="hgt" name="hgt" class="input decimalMask" style="width: 120px;" maxlength="10" placeholder="예) 10.50" validation-check="number" value="${data.hgt}"/>
</td>
@ -214,7 +214,7 @@
inputSelector: '#vltnLaw1',
hiddenSelector: '#vltnLwrgCd1',
dataUrl: '<c:url value="/crdn/crndRegistAndView/crdnActInfo/getAllVltnLwrg.ajax"/>',
width: '350px',
width: '400px',
maxHeight: '300px',
valueField: 'vltnLwrgCd',
textField: 'vltnLaw',
@ -355,7 +355,14 @@
// 면적 계산 (가로 x 세로)
var area = widthNum * verticalNum;
// decimal(10,2) 타입 최대값 체크 (99999999.99)
if (area > 99999999.99) {
alert('면적이 허용범위(99,999,999.99)를 초과하였습니다.');
$('#area').val('');
return;
}
// 소수점 둘째 자리까지 반올림하고 천 자리 구분 쉼표 추가하여 표시
$('#area').val(area);
$('#area').trigger('focus').trigger('blur');

@ -0,0 +1,399 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<div class="popup_wrap">
<div class="popup_inner">
<div class="popup_tit">
<h2 class="tit">소유자 선택</h2>
<a href="#" class="pop-x-btn modalclose" id="btnCloseTop"></a>
</div>
<!-- 중요로직: 단속 정보 파라미터를 hidden input으로 관리 -->
<input type="hidden" id="crdnYr" name="crdnYr" value="${crdnYr}" />
<input type="hidden" id="crdnNo" name="crdnNo" value="${crdnNo}" />
<input type="hidden" id="pstnInfoId" name="pstnInfoId" value="${pstnInfoId}" />
<div class="popup_con">
<!-- 검색 영역 -->
<div class="box_column">
<div class="containers">
<div class="forms_table_non">
<form id="searchForm" name="searchForm">
<table>
<tr>
<th class="th">성명</th>
<td>
<input type="text" id="searchFlnm" name="searchFlnm" class="input" maxlength="100" placeholder="성명을 입력하세요"/>
</td>
<th class="th">주민등록번호</th>
<td>
<input type="text" id="searchRrno" name="searchRrno" class="input" maxlength="100" placeholder="주민등록번호를 입력하세요"/>
</td>
<td style="text-align: right; border: 0px;">
<button type="button" id="searchBtn" class="newbtn bg1">검색</button>
<button type="button" id="resetBtn" class="newbtn bg5" style="margin-left: 5px;">초기화</button>
</td>
</tr>
<tr>
<th class="th">이메일</th>
<td>
<input type="text" id="searchEml" name="searchEml" class="input" maxlength="50" placeholder="이메일을 입력하세요"/>
</td>
<th class="th">전화번호</th>
<td>
<input type="text" id="searchTelno" name="searchTelno" class="input" maxlength="11" placeholder="전화번호를 입력하세요"/>
</td>
<td style="text-align: right; border: 0px;"></td>
</tr>
</table>
</form>
</div>
</div>
</div>
<!-- 그리드 영역 -->
<div class="box_column" style="margin-top: 20px;">
<ul class="box_title">
<li class="tit">소유자 목록</li>
<span id="totalCount" class="total-count" style="padding-left: 25px;padding-right: 25px;">총 0건</span>
</ul>
<div class="containers">
<div id="ownrSelectGrid"></div>
</div>
</div>
</div>
<div class="popup_foot">
<button type="button" id="selectBtn" class="newbtns bg1">선택</button>
<button type="button" id="closeBtn" class="newbtns bg2">닫기</button>
</div>
</div>
</div>
<script type="text/javascript">
(function(window, $) {
'use strict';
/**
* 소유자 선택 팝업 관리 네임스페이스
*/
var CrdnOwnrSelectPopup = {
/**
* 그리드 관련 객체
*/
grid: {
/**
* 그리드 인스턴스
*/
instance: null,
/**
* 그리드 설정 초기화
* @returns {Object} 그리드 설정 객체
*/
initConfig: function() {
// 데이터 소스 설정
var dataSource = this.createDataSource();
// 그리드 설정 객체 생성
var gridConfig = new XitTuiGridConfig();
// 기본 설정
gridConfig.setOptDataSource(dataSource); // 데이터소스 연결
gridConfig.setOptGridId('ownrSelectGrid'); // 그리드를 출력할 Element ID
gridConfig.setOptGridHeight(350); // 그리드 높이(단위: px)
gridConfig.setOptRowHeight(30); // 그리드 행 높이(단위: px)
gridConfig.setOptRowHeaderType('checkbox'); // 행 첫번째 셀 타입(checkbox: 체크박스)
gridConfig.setOptUseClientSort(true); // 클라이언트 사이드 정렬
gridConfig.setOptColumns(this.getGridColumns());
return gridConfig;
},
/**
* 그리드 컬럼 정의
* @returns {Array} 그리드 컬럼 배열
*/
getGridColumns: function() {
return [
{
header: '번호',
name: '_rowNum',
align: 'center',
width: 60,
sortable: false,
formatter: function(e) {
return XitReverseRowNumberRenderer.format(CrdnOwnrSelectPopup.grid.instance.getData().length, e);
}
},
{ header: '소유자ID', name: 'ownrId', align: 'center', width: 100, hidden: true },
{ header: '성명', name: 'flnm', align: 'center', width: 120, sortable: true },
{ header: '주민등록번호', name: 'rrno', align: 'center', width: 150 },
{ header: '소유자구분', name: 'ownrSeCdNm', align: 'center', width: 100 },
{ header: '전화번호', name: 'telno', align: 'center', width: 120 },
{ header: '이메일', name: 'eml', align: 'left', width: 200 },
{ header: '주소', name: 'addr', align: 'left', width: 200 },
{ header: '상세주소', name: 'daddr', align: 'left', width: 200 },
{ header: '지번전체주소', name: 'lotnoWholAddr', align: 'left', width: 300 },
{ header: '도로명전체주소', name: 'roadNmWholAddr', align: 'left', width: 300 },
{ header: '우편번호', name: 'zip', align: 'center', width: 80 },
{ header: '비고', name: 'rmrk', align: 'left', width: 200 },
{ header: '등록일시', name: 'regDt', align: 'center', width: 150}
];
},
/**
* 데이터 소스 생성
* @returns {Object} 데이터 소스 설정 객체
*/
createDataSource: function() {
return {
api: {
readData: {
url: '<c:url value="/crdn/crndRegistAndView/crdnOwnrSelect/list.ajax"/>',
method: 'POST',
contentType: 'application/x-www-form-urlencoded',
processData: true
}
},
initialRequest: true, // 초기 데이터 요청 여부
serializer: function(params) {
// 기본 파라미터 (페이지 정보 등)
var defaultParams = $.param(params);
// 검색 조건 추가
var searchParams = $.param({
flnm: $('#searchFlnm').val() || '',
rrno: $('#searchRrno').val() || '',
telno: $('#searchTelno').val() || '',
eml: $('#searchEml').val() || '',
crdnYr: $('#crdnYr').val() || '',
crdnNo: $('#crdnNo').val() || '',
pstnInfoId: $('#pstnInfoId').val() || ''
});
return defaultParams + '&' + searchParams;
}
};
},
/**
* 그리드 인스턴스 생성
*/
create: function() {
var gridConfig = this.initConfig();
var Grid = tui.Grid;
this.instance = gridConfig.instance(Grid);
// 그리드 테마 설정
Grid.applyTheme('striped');
this.gridBindEvents();
},
/**
* 그리드 이벤트 바인딩
*/
gridBindEvents: function() {
var self = this;
// 데이터 로딩 완료 이벤트 - 체크박스 상태 복원
this.instance.on('successResponse', function(ev) {
var responseObj = JSON.parse(ev.xhr.response);
if( responseObj ){
var totalCount = responseObj.data.contents.length;
$("#totalCount").text('총 ' + totalCount.toLocaleString() + '건');
}
});
// 행 더블클릭 시 선택
this.instance.on('dblclick', function(ev) {
var rowData = self.instance.getRow(ev.rowKey);
if (rowData) {
CrdnOwnrSelectPopup.selectOwners([rowData]);
}
});
},
/**
* 체크된 행들 가져오기
*/
getCheckedRows: function() {
return this.instance ? this.instance.getCheckedRows() : [];
}
},
/**
* 모듈 초기화
*/
init: function() {
// 그리드 생성
this.grid.create();
this.bindEvents();
},
/**
* 이벤트 바인딩
*/
bindEvents: function() {
var self = this;
// 검색 버튼 클릭 이벤트
$('#searchBtn').on('click', function() {
self.search();
});
// 초기화 버튼 클릭 이벤트
$('#resetBtn').on('click', function() {
$('#searchForm')[0].reset();
self.search();
});
// 선택 버튼 클릭 이벤트
$('#selectBtn').on('click', function() {
var checkedRows = self.grid.getCheckedRows();
if (checkedRows.length === 0) {
alert('선택할 소유자를 체크해주세요.');
return;
}
self.selectOwners(checkedRows);
});
// 닫기 버튼 클릭 이벤트
$('#closeBtn, #btnCloseTop').on('click', function(e) {
e.preventDefault();
window.close();
});
// Enter 키로 검색
$('#searchForm input').on('keypress', function(e) {
if (e.which === 13) {
e.preventDefault();
$('#searchBtn').click();
}
});
},
/**
* 검색 함수
*/
search: function() {
if (this.grid.instance) {
this.grid.instance.readData();
}
},
// 중요로직: 선택된 소유자들을 TB_OWNR_INFO에 저장
selectOwners: function(selectedOwners) {
if (!selectedOwners || selectedOwners.length === 0) {
alert('선택할 소유자가 없습니다.');
return;
}
var self = this;
// 중요로직: hidden input에서 파라미터 값 가져오기
var crdnYr = $('#crdnYr').val();
var crdnNo = $('#crdnNo').val();
var pstnInfoId = $('#pstnInfoId').val();
if (!crdnYr || !crdnNo || !pstnInfoId) {
alert('단속 기본정보가 없습니다.');
return;
}
// 중요로직: 각 선택된 소유자에 대해 순차적으로 저장 처리
var saveCount = 0;
var duplicateCount = 0;
var errorCount = 0;
var duplicateOwners = [];
function processSaveOwner(index) {
if (index >= selectedOwners.length) {
// 모든 처리 완료 시 결과 표시
self.showSaveResult(saveCount, duplicateCount, errorCount, duplicateOwners);
return;
}
var owner = selectedOwners[index];
$.ajax({
url: '<c:url value="/crdn/crndRegistAndView/crdnOwnrInfo/saveSelectedOwnr.ajax"/>',
type: 'POST',
data: {
crdnYr: crdnYr,
crdnNo: crdnNo,
pstnInfoId: pstnInfoId,
ownrId: owner.ownrId
},
success: function(response) {
if (response && response.success) {
saveCount++;
} else if (response && response.message && response.message.indexOf('이미 등록') !== -1) {
duplicateCount++;
duplicateOwners.push(owner.flnm || '이름없음');
} else {
errorCount++;
}
// 다음 소유자 처리
processSaveOwner(index + 1);
},
error: function(xhr, status, error) {
console.error('소유자 저장 오류:', error);
errorCount++;
// 다음 소유자 처리
processSaveOwner(index + 1);
}
});
}
// 첫 번째 소유자부터 처리 시작
processSaveOwner(0);
},
// 중요로직: 저장 결과 표시 및 부모창 새로고침
showSaveResult: function(saveCount, duplicateCount, errorCount, duplicateOwners) {
var message = '';
if (saveCount > 0) {
message += saveCount + '건의 소유자 정보가 저장되었습니다.\n';
}
if (duplicateCount > 0) {
message += duplicateCount + '건의 소유자는 이미 등록되어 있습니다.\n';
if (duplicateOwners.length > 0) {
message += '(중복: ' + duplicateOwners.join(', ') + ')\n';
}
}
if (errorCount > 0) {
message += errorCount + '건의 소유자 저장 중 오류가 발생했습니다.\n';
}
if (message) {
alert(message.trim());
}
// 중요로직: 저장 성공 시 부모창 소유자 정보 그리드 새로고침
if (saveCount > 0) {
if (window.opener && window.opener.CrdnDetailViewOwnrInfo && window.opener.CrdnDetailViewOwnrInfo.search) {
window.opener.CrdnDetailViewOwnrInfo.search();
}
}
window.close();
},
// 체크된 행들 가져오기
getCheckedRows: function() {
return this.instance ? this.instance.getCheckedRows() : [];
}
};
// DOM 준비 완료 시 초기화
$(document).ready(function() {
// 중요로직: 소유자 선택 그리드 초기화
CrdnOwnrSelectPopup.init();
});
// 전역 네임스페이스에 모듈 노출
window.CrdnOwnrSelectPopup = CrdnOwnrSelectPopup;
})(window, jQuery);
</script>

@ -197,6 +197,21 @@
// 데이터 로딩 완료 이벤트
this.instance.on('successResponse', function(ev) {
var responseObj = JSON.parse(ev.xhr.response);
var totalCount = 0;
if( responseObj ){
totalCount = responseObj.data.contents.length;
}
if (totalCount >= 1) {
window.CrdnDetailView.actInfoId = responseObj.data.contents[0].actInfoId;
} else {
window.CrdnDetailView.actInfoId = null;
}
// 중요로직: 불법행위 정보 로딩 완료 후 행위자 그리드 순차적 로딩 실행
if (window.CrdnDetailView && window.CrdnDetailView.refreshOtherGridsAfterLocation2) {
window.CrdnDetailView.refreshOtherGridsAfterLocation2();
}
});
@ -204,7 +219,8 @@
this.instance.on('click', function(ev) {
if (ev.rowKey !== undefined && ev.rowKey !== null) {
var rowData = self.instance.getRow(ev.rowKey);
console.log('불법위반행위정보 행 클릭:', rowData);
window.CrdnDetailView.actInfoId = rowData.actInfoId;
window.CrdnDetailView.refreshOtherGridsAfterLocation2();
}
});
@ -213,7 +229,6 @@
var rowKey = ev.rowKey;
var rowData = self.instance.getRow(rowKey);
if (rowData && rowData.actInfoId) {
console.log('불법위반행위정보 행 더블클릭:', rowData);
// 중요로직: 수정모드로 팝업 호출
CrdnDetailViewActInfo.openActInfoUpdatePopup(rowData.actInfoId);
}
@ -240,11 +255,8 @@
var crdnYr = $('#crdnYr').val();
var crdnNo = $('#crdnNo').val();
var pstnInfoId = '';
if (window.CrdnDetailViewPstn && window.CrdnDetailViewPstn.grid && window.CrdnDetailViewPstn.grid.instance) {
var pstnData = window.CrdnDetailViewPstn.grid.instance.getData();
if (pstnData && pstnData.length > 0) {
pstnInfoId = pstnData[0].pstnInfoId;
}
if (window.CrdnDetailView.pstnInfoId) {
pstnInfoId = window.CrdnDetailView.pstnInfoId;
}
if (!crdnYr || !crdnNo || !pstnInfoId) {
alert('단속 기본정보가 없습니다.');
@ -274,14 +286,10 @@
var crdnYr = $('#crdnYr').val();
var crdnNo = $('#crdnNo').val();
var pstnInfoId = '';
if (window.CrdnDetailViewPstn && window.CrdnDetailViewPstn.grid && window.CrdnDetailViewPstn.grid.instance) {
var pstnData = window.CrdnDetailViewPstn.grid.instance.getData();
if (pstnData && pstnData.length > 0) {
pstnInfoId = pstnData[0].pstnInfoId;
}
if (window.CrdnDetailView.pstnInfoId) {
pstnInfoId = window.CrdnDetailView.pstnInfoId;
}
if (!crdnYr || !crdnNo) {
if (!crdnYr || !crdnNo || !pstnInfoId) {
alert('단속 기본정보가 없습니다.');
return;
}

@ -87,7 +87,11 @@
// detailView 화면의 hidden 입력값에서 단속연도/번호를 가져온다.
var crdnYr = $('#crdnYr').val();
var crdnNo = $('#crdnNo').val();
var extra = $.param({ crdnYr: crdnYr, crdnNo: crdnNo });
var actInfoId = '';
if (window.CrdnDetailView.actInfoId) {
actInfoId = window.CrdnDetailView.actInfoId;
}
var extra = $.param({ crdnYr: crdnYr, crdnNo: crdnNo, actInfoId:actInfoId });
// 모든 파라미터 조합
return defaultParams + '&' + extra;
}
@ -133,7 +137,6 @@
var rowData = self.instance.getRow(rowKey);
if (rowData) {
console.log('위반행위자정보 행 더블클릭:', rowData);
// 위반행위자 상세 정보 모달 또는 추가 동작 구현 가능
}
});
}
@ -150,6 +153,113 @@
}
},
/**
* 중요로직: 소유자 선택 팝업 호출 기능
* 위치정보가 등록되어 있을 때만 활성화
*/
openActrSelectPopup: function() {
// 중요로직: 위치정보 등록 여부 확인
if (!this.checkActInfoExists()) {
alert('불법행위 정바가 등록되어 있을 때만 소유자 선택이 가능합니다.');
return;
}
var crdnYr = $('#crdnYr').val();
var crdnNo = $('#crdnNo').val();
var actInfoId = '';
if (window.CrdnDetailView.actInfoId) {
actInfoId = window.CrdnDetailView.actInfoId;
}
if (!crdnYr || !crdnNo || !actInfoId) {
alert('단속 기본정보가 없습니다.');
return;
}
var url = '<c:url value="/crdn/crndRegistAndView/crdnActrSelect/crdnActrSelectPopup.do"/>' +
'?crdnYr=' + encodeURIComponent(crdnYr) +
'&crdnNo=' + encodeURIComponent(crdnNo) +
'&actInfoId=' + encodeURIComponent(actInfoId || '');
var w = 1000, h = 800;
var left = Math.max(0, (screen.width - w) / 2);
var top = Math.max(0, (screen.height - h) / 2);
window.open(url, 'ActrSelectPopup', 'width=' + w + ',height=' + h + ',left=' + left + ',top=' + top + ',resizable=yes,scrollbars=yes');
},
/**
* 중요로직: 선택된 소유자 정보 제거 기능
* 실제 tb_actr_info 데이터를 삭제하고 그리드를 리로드한다.
*/
removeSelectedActr: function() {
if (!this.grid.instance) {
alert('행위자 정보 그리드가 초기화되지 않았습니다.');
return;
}
var checkedRows = this.grid.instance.getCheckedRows();
if (checkedRows.length === 0) {
alert('삭제할 행위자를 선택해주세요.');
return;
}
if (confirm('선택된 ' + checkedRows.length + '건의 행위자 정보를 삭제하시겠습니까?')) {
var self = this;
// 중요로직: 삭제할 행위자 정보 ID 목록 수집
var deleteIds = checkedRows.map(function(row) {
return row.actrInfoId;
}).filter(function(id) {
return id; // 빈 값 제외
});
if (deleteIds.length === 0) {
alert('삭제할 수 있는 소유자 정보가 없습니다.');
return;
}
// 중요로직: 서버에 삭제 요청
$.ajax({
url: '<c:url value="/crdn/crndRegistAndView/crdnActrInfo/delete.ajax"/>',
type: 'POST',
data: {
ownrInfoIds: deleteIds
},
traditional: true, // 배열 전송을 위한 설정
success: function(response) {
if (response && response.success) {
alert('선택된 행위자 정보가 삭제되었습니다.');
// 중요로직: 그리드 리로드 처리
self.search();
} else {
alert(response.message || '행위자 정보 삭제에 실패했습니다.');
}
}
});
}
},
/**
* 중요로직: 위치정보 존재 여부 확인 함수
* 위치정보 그리드에 데이터가 있는지 확인
*/
checkActInfoExists: function() {
// detailView의 불법행위 그리드에서 데이터 존재 여부 확인
if (window.CrdnDetailViewActInfo && window.CrdnDetailViewActInfo.grid && window.CrdnDetailViewActInfo.grid.instance) {
var data = window.CrdnDetailViewActInfo.grid.instance.getData();
return data && data.length > 0;
}
return false;
},
/**
* 중요로직: 소유자 데이터 추가 기능
* 소유자 선택 팝업에서 호출됨
*/
addOwnrData: function(ownrData) {
if (this.grid.instance && ownrData) {
this.grid.instance.appendRow(ownrData);
}
},
/**
* 모듈 초기화
*/

@ -166,11 +166,8 @@
var crdnYr = $('#crdnYr').val();
var crdnNo = $('#crdnNo').val();
var pstnInfoId = '';
if (window.CrdnDetailViewPstn && window.CrdnDetailViewPstn.grid && window.CrdnDetailViewPstn.grid.instance) {
var pstnData = window.CrdnDetailViewPstn.grid.instance.getData();
if (pstnData && pstnData.length > 0) {
pstnInfoId = pstnData[0].pstnInfoId;
}
if (window.CrdnDetailView.pstnInfoId) {
pstnInfoId = window.CrdnDetailView.pstnInfoId;
}
if (!crdnYr || !crdnNo || !pstnInfoId) {
alert('단속 기본정보가 없습니다.');

@ -160,6 +160,8 @@
// 데이터가 0건일 경우 버튼 활성화
$pstnInfoRegistBtn.prop('disabled', false);
$pstnInfoRegistBtn.removeClass('disabled');
window.CrdnDetailView.pstnInfoId = null;
}
// 중요로직: 위치정보 데이터 유무에 따른 소유자 선택/제거 버튼 상태 제어

@ -149,6 +149,10 @@
<div class="box_column">
<ul class="box_title">
<li class="tit">4. 행위자 정보</li>
<li class="rig">
<button type="button" id="actrSelectBtn" class="newbtn bg2-1">행위자 선택</button>
<button type="button" id="actrRemoveBtn" class="newbtn bg6" style="margin-left: 5px;">삭제</button>
</li>
</ul>
<div class="containers">
<div id="grid4"></div>
@ -187,7 +191,8 @@
/*
* 전역으로 사용할 위치 키값
*/
pstnInfoId: null,
pstnInfoId: null, // 위치 정보 - 소유자 정보, 불법행위 정보의 종속되는 키값, 위치정보 호출 이후 키 설정
actInfoId: null, //불법행위 정보 - 행위자 정보의 종속되는 키값, 불법행위 정보 호출 이후 키 설정
/**
* 통합 그리드 관리 객체
@ -318,7 +323,7 @@
/**
* 모든 그리드 새로고침 (순차적 로딩)
* 중요로직: 1. 위치정보 -> 2,3,4. 소유자/불법행위/행위자 정보 순서로 로딩
* 중요로직: 1. 위치정보 -> 2,3 -> 4. 소유자/불법행위, 행위자 정보 순서로 로딩
*/
refreshAllGrids: function() {
// 위치정보 그리드만 먼저 로드 (나머지는 위치정보 로딩 완료 후 자동 실행됨)
@ -328,7 +333,6 @@
},
/**
* 위치정보 로딩 완료 후 나머지 그리드들 로딩
* 중요로직: 위치정보 그리드 완료 후 소유자/불법행위/행위자 정보 그리드들을 순차적으로 로드
*/
refreshOtherGridsAfterLocation: function() {
@ -340,7 +344,14 @@
if (this.grids.actInfo && this.grids.actInfo.search) {
this.grids.actInfo.search();
}
},
/**
* 중요로직: 불법행위 그리드 완료 후 행위자 정보 그리드들을 순차적으로 로드
*/
refreshOtherGridsAfterLocation2: function() {
// 행위자 정보 그리드 로딩
console.log('refreshOtherGridsAfterLocation2', window.CrdnDetailView.actInfoId);
if (this.grids.actrInfo && this.grids.actrInfo.search) {
this.grids.actrInfo.search();
}

Loading…
Cancel
Save