|
|
|
|
@ -35,14 +35,17 @@
|
|
|
|
|
<input type="hidden" id="mmCodes" />
|
|
|
|
|
<%-- 부모창에서 받아오는 리스크 커서 --%>
|
|
|
|
|
<input type="hidden" id="cursor" />
|
|
|
|
|
<%-- 개별총정보 상태값 --%>
|
|
|
|
|
<input type="hidden" id="infoState" value="init" />
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="page-indicator"><span id="pageNow">2</span> of <span id="pageTotal">4</span></div>
|
|
|
|
|
<div class="page-indicator">
|
|
|
|
|
<span id="cursorCnt">0</span>of <span id="total">0</span></div>
|
|
|
|
|
<div class="nav-group">
|
|
|
|
|
<button type="button" class="nav-btn" data-act="first" id="first">◀◀</button>
|
|
|
|
|
<button type="button" class="nav-btn" data-act="prev">◀</button>
|
|
|
|
|
<button type="button" class="nav-btn" data-act="next">▶</button>
|
|
|
|
|
<button type="button" class="nav-btn" data-act="last">▶▶</button>
|
|
|
|
|
<button type="button" class="nav-btn" name="navigate" data-act="first" id="first">◀◀</button>
|
|
|
|
|
<button type="button" class="nav-btn" name="navigate" data-act="prev">◀</button>
|
|
|
|
|
<button type="button" class="nav-btn" name="navigate" data-act="next">▶</button>
|
|
|
|
|
<button type="button" class="nav-btn" name="navigate" data-act="last">▶▶</button>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
@ -55,71 +58,83 @@
|
|
|
|
|
<div class="form-grid">
|
|
|
|
|
<div class="lbl">등록구분</div>
|
|
|
|
|
<div class="fld">
|
|
|
|
|
<input type="text" id="" value="" readonly>
|
|
|
|
|
<input type="text" data-field="mmLawgb" id="mmLawgb" value="" readonly>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="lbl">자료출처</div>
|
|
|
|
|
<div class="fld">
|
|
|
|
|
<input type="text" id="" value="" readonly>
|
|
|
|
|
<input type="text" data-field="" id="" value="" readonly>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="lbl">위반일시</div>
|
|
|
|
|
<div class="fld">
|
|
|
|
|
<input type="text" id="mmDate" value="" readonly>
|
|
|
|
|
<input type="text" name="cpMain" data-field="mmDate" id="mmDate" value="" readonly>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="lbl">위반명</div>
|
|
|
|
|
<div class="fld">
|
|
|
|
|
<input type="text" id="" value="" readonly>
|
|
|
|
|
<input type="text" data-field="" id="" value="" readonly>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="lbl">신고자</div>
|
|
|
|
|
<div class="fld">
|
|
|
|
|
<input type="text" id="mmSgnm" value="" readonly>
|
|
|
|
|
<input type="text" name="cpMain" data-field="mmSgnm" id="mmSgnm" value="" readonly>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="lbl">연락처</div>
|
|
|
|
|
<div class="fld">
|
|
|
|
|
<input type="text" id="" value="" readonly>
|
|
|
|
|
<input type="text" name="cpAnswer" data-field="asCell" id="asCell" value="" readonly>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="lbl">담당자</div>
|
|
|
|
|
<div class="fld"><input type="text" id="mmSgtel" value="" readonly></div>
|
|
|
|
|
<div class="fld">
|
|
|
|
|
<input type="text" name="cpMain" data-field="mmSgtel" id="mmSgtel" value="" readonly>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="lbl">공개여부</div>
|
|
|
|
|
<div class="fld">
|
|
|
|
|
<input type="text" id="" value="" readonly>
|
|
|
|
|
<input type="text" data-field="" id="" value="" readonly>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="lbl">신고내용</div>
|
|
|
|
|
<div class="fld block">
|
|
|
|
|
<textarea id="mmSgcont" value="" readonly></textarea>
|
|
|
|
|
<textarea name="cpMain" data-field="mmSgcont" id="mmSgcont" value="" readonly></textarea>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="lbl">위반장소</div>
|
|
|
|
|
<div class="fld"><input type="text" id="" value="" readonly></div>
|
|
|
|
|
<div class="fld"><input type="text" data-field="" id="" value="" readonly></div>
|
|
|
|
|
<div class="lbl">접수번호</div>
|
|
|
|
|
<div class="fld"><input type="text" id="" value="" readonly></div>
|
|
|
|
|
<div class="fld"><input type="text" name="cpAnswer" data-field="asJsno" id="asJsno" value="" readonly></div>
|
|
|
|
|
|
|
|
|
|
<div class="lbl">접수일자</div>
|
|
|
|
|
<div class="fld"><input type="text" id="" value="" readonly></div>
|
|
|
|
|
<div class="fld"><input type="text" name="cpAnswer" data-field="asJsdate" id="asJsdate" value="" readonly></div>
|
|
|
|
|
<div class="lbl">목록번호</div>
|
|
|
|
|
<div class="fld"><input type="text" id="" value="" readonly></div>
|
|
|
|
|
<div class="fld"><input type="text" name="cpAnswer" data-field="asBbsNo" id="asBbsNo" value="" readonly></div>
|
|
|
|
|
|
|
|
|
|
<div class="lbl">법정동</div>
|
|
|
|
|
<div class="fld"><input type="text" id="" value="" readonly></div>
|
|
|
|
|
<div class="fld"><input type="text" data-field="" id="" value="" readonly></div>
|
|
|
|
|
<div></div><div></div>
|
|
|
|
|
|
|
|
|
|
<div class="lbl">사진등록금액</div>
|
|
|
|
|
<div class="fld"><input type="text" id="mmKeum1" value="" readonly></div>
|
|
|
|
|
<div class="fld">
|
|
|
|
|
<input type="text" name="cpMain" data-field="mmKeum1" id="mmKeum1" value="" readonly>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="lbl">부과금액</div>
|
|
|
|
|
<div class="fld"><input type="text" id="" value="" readonly></div>
|
|
|
|
|
<div class="fld">
|
|
|
|
|
<input type="text" name="cpMain" data-field="mmKeum2" id="mmKeum2" value="" readonly>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="lbl">감액금액</div>
|
|
|
|
|
<div class="fld"><input type="text" id="" value="" readonly></div>
|
|
|
|
|
<div class="fld">
|
|
|
|
|
<input type="text" data-field="" id="" value="" readonly>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="lbl">총수납액</div>
|
|
|
|
|
<div class="fld"><input type="text" id="" value="" readonly></div>
|
|
|
|
|
<div class="fld">
|
|
|
|
|
<input type="text" data-field="" id="" value="" readonly>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="lbl">잔액</div>
|
|
|
|
|
<div class="fld"><input class="hl" type="text" value="" readonly></div>
|
|
|
|
|
<div class="fld">
|
|
|
|
|
<input class="hl" data-field="" type="text" value="" readonly>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="lbl">특기사항</div>
|
|
|
|
|
<div class="fld">
|
|
|
|
|
<button type="button" class="btn btn-light" id="btnSpecial">특기사항 보기</button>
|
|
|
|
|
@ -128,17 +143,27 @@
|
|
|
|
|
<div class="block bar"></div>
|
|
|
|
|
|
|
|
|
|
<div class="lbl">처리상태일시</div>
|
|
|
|
|
<div class="fld"><input type="text" value="" readonly></div>
|
|
|
|
|
<div class="fld">
|
|
|
|
|
<input type="text" name="cpAnswer" data-field="asStateDt" id="asStateDt" value="" readonly>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="lbl">처리상태</div>
|
|
|
|
|
<div class="fld"><input class="hl" type="text" value="" readonly></div>
|
|
|
|
|
<div class="fld">
|
|
|
|
|
<input type="text" class="hl" name="cpAnswer" data-field="asState" id="asState" value="" readonly>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="lbl">차량명</div>
|
|
|
|
|
<div class="fld"><input type="text" value="" readonly></div>
|
|
|
|
|
<div class="fld">
|
|
|
|
|
<input type="text" data-field="" value="" readonly>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="lbl">차량색상</div>
|
|
|
|
|
<div class="fld"><input type="text" value="" readonly></div>
|
|
|
|
|
<div class="fld">
|
|
|
|
|
<input type="text" data-field="" value="" readonly>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="lbl">연료구분</div>
|
|
|
|
|
<div class="fld"><input type="text" value="" readonly></div>
|
|
|
|
|
<div class="fld">
|
|
|
|
|
<input type="text" data-field="" value="" readonly>
|
|
|
|
|
</div>
|
|
|
|
|
<div></div><div></div>
|
|
|
|
|
|
|
|
|
|
<div class="block bar"></div>
|
|
|
|
|
@ -146,25 +171,41 @@
|
|
|
|
|
<div class="section-title block">소유주 정보</div>
|
|
|
|
|
|
|
|
|
|
<div class="lbl">소유주</div>
|
|
|
|
|
<div class="fld"><input type="text" value="" readonly></div>
|
|
|
|
|
<div class="fld">
|
|
|
|
|
<input type="text" data-field="" value="" readonly>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="lbl">등록구분</div>
|
|
|
|
|
<div class="fld"><input type="text" value="" readonly></div>
|
|
|
|
|
<div class="fld">
|
|
|
|
|
<input type="text" data-field="" value="" readonly>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="lbl">주민번호</div>
|
|
|
|
|
<div class="fld"><input type="text" value="" readonly></div>
|
|
|
|
|
<div class="fld">
|
|
|
|
|
<input type="text" data-field="" value="" readonly>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="lbl">우편번호</div>
|
|
|
|
|
<div class="fld"><input type="text" value="" readonly></div>
|
|
|
|
|
<div class="fld">
|
|
|
|
|
<input type="text" data-field="" value="" readonly>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="lbl">주소</div>
|
|
|
|
|
<div class="fld block"><input type="text" value="" readonly></div>
|
|
|
|
|
<div class="fld block">
|
|
|
|
|
<input type="text" data-field="" value="" readonly>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="lbl">번지</div>
|
|
|
|
|
<div class="fld"><input type="text" value="" readonly></div>
|
|
|
|
|
<div class="fld">
|
|
|
|
|
<input type="text" data-field="" value="" readonly>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="lbl">차대번호</div>
|
|
|
|
|
<div class="fld"><input type="text" value="" readonly></div>
|
|
|
|
|
<div class="fld">
|
|
|
|
|
<input type="text" data-field="" value="" readonly>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="lbl">도로코드</div>
|
|
|
|
|
<div class="fld"><input type="text" value="" readonly></div>
|
|
|
|
|
<div class="fld">
|
|
|
|
|
<input type="text" data-field="" value="" readonly>
|
|
|
|
|
</div>
|
|
|
|
|
<div></div><div></div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
@ -184,6 +225,19 @@
|
|
|
|
|
<img id="photoPreview" src="${pageContext.request.contextPath}/static/img/sample-1.jpg" alt="미리보기">
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div id="btn-area">
|
|
|
|
|
<button type="button" class="btn btn-light" id="infoEdit" hidden>수정</button>
|
|
|
|
|
<button type="button" class="btn btn-light" id="infoSave" hidden>저장</button>
|
|
|
|
|
<button type="button" class="btn btn-light" id="infoReadReturn" hidden>되돌리기</button>
|
|
|
|
|
|
|
|
|
|
<button type="button" class="btn btn-light" id="infoDel" hidden>삭제</button>
|
|
|
|
|
<button type="button" class="btn btn-light" id="delay" hidden>보류</button>
|
|
|
|
|
<button type="button" class="btn btn-light" id="destructionDocReReg" hidden>서손자료 재등록</button>
|
|
|
|
|
<button type="button" class="btn btn-light" id="buillPrint" hidden>고지서 출력</button>
|
|
|
|
|
<button type="button" class="btn btn-light" name="changeSt" id="non-target" value="81" hidden>미부과</button>
|
|
|
|
|
<button type="button" class="btn btn-light" id="stateChange" hidden>처리상태 변경</button>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="statusbar">
|
|
|
|
|
@ -196,6 +250,10 @@
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div id="photoEditSection" style="display:none;">
|
|
|
|
|
<jsp:include page="/WEB-INF/views/biz/totalInfo/totalInfo_photo_dialog.jsp" />
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div id="tabs-b">
|
|
|
|
|
의견진술
|
|
|
|
|
@ -215,45 +273,43 @@
|
|
|
|
|
<%--<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>--%>
|
|
|
|
|
<%--<script src="https://code.jquery.com/ui/1.13.2/jquery-ui.min.js"></script>--%>
|
|
|
|
|
<script type="text/javascript">
|
|
|
|
|
|
|
|
|
|
const fnBiz = {
|
|
|
|
|
init: () => {
|
|
|
|
|
// fnBiz.search();
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// 조회결과 바인딩 샘플
|
|
|
|
|
// const { cursor, mmCodes } = JSON.parse(localStorage.getItem("TOTAL_INFO_STATE"));
|
|
|
|
|
//해당 객체는 팝업으로 인한 브라우저 전역선언이다.
|
|
|
|
|
//일반적으로 함수를 선언할땐 그냥 fnBiz로 선언하면 된다.
|
|
|
|
|
//window 전역을 그냥 복사하면 덮어씌워져서 난리남.
|
|
|
|
|
//sample.jsp 형태로 하면됨
|
|
|
|
|
window.TOTAL_INFO_POPUP_API = {
|
|
|
|
|
search: () => {
|
|
|
|
|
console.log("search!!!!")
|
|
|
|
|
console.log("Total Info Search!!!!")
|
|
|
|
|
|
|
|
|
|
const { cursor, mmCodes } = JSON.parse(localStorage.getItem("TOTAL_INFO_STATE"));
|
|
|
|
|
|
|
|
|
|
let mmCode = $("#cursor").val();
|
|
|
|
|
console.log('mmcode check', mmCode)
|
|
|
|
|
$.ajax({
|
|
|
|
|
// PathVariable 형태로 url를 동적으로 쓰는방식이다.
|
|
|
|
|
// 해당 방식 이외에 그냥 쿼리스트링으로 넘기는 방법도 있다.
|
|
|
|
|
url: "/total/info/" + mmCode + "/info.ajax",
|
|
|
|
|
url: "/total/info/" + cursor + "/info.ajax",
|
|
|
|
|
type: "GET",
|
|
|
|
|
dataType: 'json',
|
|
|
|
|
success: function(response) {
|
|
|
|
|
// 리스폰스로 받아온 결과를 태그에 바인딩 해준다.
|
|
|
|
|
// 태그 id = 유니크 / 태그 name = 중복가능
|
|
|
|
|
// 묶음단위 혹은 동일한 값을 넣어야할때 name을 쓰고 보통은 id를 통해 바인딩 한다.
|
|
|
|
|
|
|
|
|
|
// 정확한 개념은 바인딩보다는 태그 value를 갈아끼는 것이다.
|
|
|
|
|
|
|
|
|
|
// 25.11.03 샘플로 작성한거라 main테이블 정보만 가져와서 뿌려주고 있다.
|
|
|
|
|
// f12 개발자 모드 > 콘솔창을 보면 아래 넘어오는 데이트를 볼수 있다.
|
|
|
|
|
console.log(response.data)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// .val 은 제이쿼리 함수로 테그의 value를 세팅하는 함수이다.
|
|
|
|
|
// 기본적으로 제이쿼리를 쓸텐데 아래 링크를 참조한다.
|
|
|
|
|
// https://xianeml.tistory.com/70
|
|
|
|
|
$("#mmLawgb").val(response.data.cpMain.mmLawgb);
|
|
|
|
|
$("#mmKeum1").val(response.data.cpMain.mmKeum1);
|
|
|
|
|
$("#mmKeum2").val(response.data.cpMain.mmKeum2);
|
|
|
|
|
$("#mmSgcont").val(response.data.cpMain.mmSgcont);
|
|
|
|
|
$("#mmSgnm").val(response.data.cpMain.mmSgnm);
|
|
|
|
|
$("#mmSgtel").val(response.data.cpMain.mmSgtel);
|
|
|
|
|
$("#mmDate").val(response.data.cpMain.mmDate);
|
|
|
|
|
$("#asBbsNo").val(response.data.cpAnswer.asBbsNo);
|
|
|
|
|
$("#asState").val(response.data.cpAnswer.asState);
|
|
|
|
|
$("#asStateDt").val(response.data.cpAnswer.asStateDt);
|
|
|
|
|
|
|
|
|
|
$("#asCell").val(response.data.cpAnswer.asCell);
|
|
|
|
|
$("#asJsno").val(response.data.cpAnswer.asJsno);
|
|
|
|
|
$("#asJsdate").val(response.data.cpAnswer.asJsdate);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$("#mmCode").text(response.data.cpMain.mmCode.substring(5).replace(/^(\d{4})(.*)$/, '$1-$2'))
|
|
|
|
|
|
|
|
|
|
@ -275,40 +331,193 @@
|
|
|
|
|
;
|
|
|
|
|
thumbContainer.append(img);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//네비게이터 커서 카운트
|
|
|
|
|
$("#cursorCnt").text(mmCodes.indexOf(cursor) + 1);
|
|
|
|
|
$("#total").text(mmCodes.length);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// total info 초기상태
|
|
|
|
|
$("#infoState").val("init").trigger("change");
|
|
|
|
|
},
|
|
|
|
|
error: function(xhr, status, error) {
|
|
|
|
|
$("#result").text("조회 실패");
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let fnBiz = {
|
|
|
|
|
init: () => {
|
|
|
|
|
// fnBiz.search();
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
infoSave: () => {
|
|
|
|
|
|
|
|
|
|
const { cursor, mmCodes } = JSON.parse(localStorage.getItem("TOTAL_INFO_STATE"));
|
|
|
|
|
const payload = fnBiz.collectByDataField();
|
|
|
|
|
console.log("data-field payload:", payload);
|
|
|
|
|
|
|
|
|
|
$.ajax({
|
|
|
|
|
url: "/total/info/" + cursor + "/info/edit.ajax",
|
|
|
|
|
type: "POST",
|
|
|
|
|
data: JSON.stringify(payload),
|
|
|
|
|
contentType: "application/json",
|
|
|
|
|
|
|
|
|
|
success: function(response) {
|
|
|
|
|
alert("수정완료.")
|
|
|
|
|
},
|
|
|
|
|
error: function(xhr, status, error) {
|
|
|
|
|
$("#result").text("수정 실패");
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
changeState: (e) => {
|
|
|
|
|
let state = e.target.value;
|
|
|
|
|
const { cursor, mmCodes } = JSON.parse(localStorage.getItem("TOTAL_INFO_STATE"));
|
|
|
|
|
|
|
|
|
|
$.ajax({
|
|
|
|
|
url: `/total/info/\${cursor}/\${state}/state.ajax`,
|
|
|
|
|
type: "POST",
|
|
|
|
|
contentType: "application/json",
|
|
|
|
|
|
|
|
|
|
success: function(response) {
|
|
|
|
|
alert("완료.")
|
|
|
|
|
},
|
|
|
|
|
error: function(xhr, status, error) {
|
|
|
|
|
$("#result").text("수정 실패");
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
btnSet: (infoState) => {
|
|
|
|
|
|
|
|
|
|
switch (infoState) {
|
|
|
|
|
case "init":
|
|
|
|
|
$("#btn-area > button").prop("hidden", true);
|
|
|
|
|
$("#infoEdit").prop("hidden", false);
|
|
|
|
|
$("#infoDel").prop("hidden", false);
|
|
|
|
|
$("#delay").prop("hidden", false);
|
|
|
|
|
$("#buillPrint").prop("hidden", false);
|
|
|
|
|
$("#stateChange").prop("hidden", false);
|
|
|
|
|
$("#non-target").prop("hidden", false);
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
case "edit":
|
|
|
|
|
$("#btn-area > button").prop("hidden", true);
|
|
|
|
|
$("#infoSave").prop("hidden", false);
|
|
|
|
|
$("#infoReadReturn").prop("hidden", false);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
switch ($("#asState")) {
|
|
|
|
|
case "":
|
|
|
|
|
$("#destructionDocReReg").prop("hidden", false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
collectByDataField: () => {
|
|
|
|
|
const payload = {};
|
|
|
|
|
$("[data-field]").each(function () {
|
|
|
|
|
const key = $(this).data("field");
|
|
|
|
|
const val = $(this).val();
|
|
|
|
|
payload[key] = val;
|
|
|
|
|
});
|
|
|
|
|
return payload;
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
eventListener: () => {
|
|
|
|
|
/** 네비게이션 */
|
|
|
|
|
$("button[name=navigate]").on("click", (e) => {
|
|
|
|
|
let flag = $(e.currentTarget).data("act");
|
|
|
|
|
let {cursor, mmCodes} = JSON.parse(localStorage.getItem("TOTAL_INFO_STATE"));
|
|
|
|
|
if (!cursor || !mmCodes) return;
|
|
|
|
|
|
|
|
|
|
const idx = mmCodes.indexOf(cursor);
|
|
|
|
|
let nextCursor = cursor;
|
|
|
|
|
|
|
|
|
|
switch (flag) {
|
|
|
|
|
case "first":
|
|
|
|
|
nextCursor = mmCodes[0];
|
|
|
|
|
break;
|
|
|
|
|
case "prev":
|
|
|
|
|
nextCursor = mmCodes[Math.max(0, idx - 1)];
|
|
|
|
|
break;
|
|
|
|
|
case "next":
|
|
|
|
|
nextCursor = mmCodes[Math.min(mmCodes.length - 1, idx + 1)];
|
|
|
|
|
break;
|
|
|
|
|
case "last":
|
|
|
|
|
nextCursor = mmCodes[mmCodes.length - 1];
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 스토리지 업데이트
|
|
|
|
|
localStorage.setItem("TOTAL_INFO_STATE", JSON.stringify({ cursor: nextCursor, mmCodes: mmCodes }))
|
|
|
|
|
//커서로 조회
|
|
|
|
|
TOTAL_INFO_POPUP_API.search();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
/** 개별총정보 상태변경 트리거 */
|
|
|
|
|
$("#infoState").on("change", () => {
|
|
|
|
|
fnBiz.btnSet($("#infoState").val());
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
/** 개별총정보 수정모드 진입*/
|
|
|
|
|
$("#infoEdit").on("click", () => {
|
|
|
|
|
$("input").prop("readonly", false);
|
|
|
|
|
$("#infoState").val("edit").trigger("change");
|
|
|
|
|
})
|
|
|
|
|
/** 개별총정보 읽기모드 진입 */
|
|
|
|
|
$("#infoReadReturn").on("click", () => {
|
|
|
|
|
$("input").prop("readonly", true);
|
|
|
|
|
TOTAL_INFO_POPUP_API.search();
|
|
|
|
|
$("#infoState").val("init").trigger("change");
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
/** 정보수정 */
|
|
|
|
|
$("#infoSave").on("click", () => {
|
|
|
|
|
|
|
|
|
|
fnBiz.infoSave();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$("input").prop("readonly", true);
|
|
|
|
|
TOTAL_INFO_POPUP_API.search();
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
/** 상태값 변경 */
|
|
|
|
|
$("button[name='changeSt']").on("click", (e) => {
|
|
|
|
|
let flag = e.target.value;
|
|
|
|
|
fnBiz.changeState(e, flag);
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
/** 사진 더블클릭 → 원본 다이얼로그 */
|
|
|
|
|
$("#photoThumbs").on("dblclick", "img", function () {
|
|
|
|
|
const src = $(this).attr("src"); // 썸네일 경로
|
|
|
|
|
$("#photoDialogImg").attr("src", src); // 같은 경로를 원본으로 사용 (원본/썸네일 분리돼 있으면 여기서 가공)
|
|
|
|
|
|
|
|
|
|
$("#photoDialog").dialog("open");
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$(function () {
|
|
|
|
|
console.log("init")
|
|
|
|
|
|
|
|
|
|
$("#tabs").tabs();
|
|
|
|
|
|
|
|
|
|
//mmcode 리스트 가져오기
|
|
|
|
|
$("#cursor").val(window.cursor);
|
|
|
|
|
$("#mmCodes").val(window.mmCodes);
|
|
|
|
|
console.log($('#mmCodes').val());
|
|
|
|
|
|
|
|
|
|
// mmCodes 값이 세팅되면 search() 호출
|
|
|
|
|
const checkMmCode = setInterval(() => {
|
|
|
|
|
const cursor = $("#mmCodes").val();
|
|
|
|
|
const mmCodes = $("#mmCodes").val();
|
|
|
|
|
if (cursor && mmCodes) {
|
|
|
|
|
clearInterval(checkMmCode);
|
|
|
|
|
fnBiz.search(); // 값이 들어온 시점에 호출
|
|
|
|
|
}
|
|
|
|
|
}, 100);
|
|
|
|
|
TOTAL_INFO_POPUP_API.search();
|
|
|
|
|
fnBiz.eventListener();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|