외사장비 > 외사장비현황 > 장비현황 수정, 이력 모달 통합.

master
강석 최 2023-05-08 17:20:43 +09:00
parent da56efe8eb
commit 7152ceca7b
9 changed files with 284 additions and 356 deletions

View File

@ -72,10 +72,11 @@ public class EquipController {
@PostMapping("/saveEquip")
public void saveEquip(@AuthenticationPrincipal UserInfo loginUser,Equip equip, MultipartHttpServletRequest request){
equip.setWrtNm(loginUser.getUserNm());
equip.setWrtOrgan(loginUser.getOgCd());
equip.setWrtPart(loginUser.getOfcCd());
equip.setWrtUserSeq(loginUser.getUserSeq());
equip.setWrtTitle(loginUser.getTitleCd());
equip.setWrtNm(loginUser.getUserNm());
equip.setWrtDt(LocalDateTime.now());
equipService.saveEquip(equip,request);
}
@ -109,6 +110,11 @@ public class EquipController {
mav.addObject("userSeq", loginUser.getUserSeq());
mav.addObject("wrtUserSeq", equipService.selectEquipFirstUserSeq(equip));
mav.addObject("equInfo", equipService.selectEquipInfo(equip));
List<Equip> equipHistoryList = equipService.selectHistoryList(equip);
mav.addObject("historyList", equipHistoryList.subList(1, equipHistoryList.size()));
mav.addObject("lastVersion", equipService.selectHistoryDetail(equipHistoryList.get(0)));
return mav;
}
@ -124,23 +130,14 @@ public class EquipController {
return result;
}
@GetMapping("/historyView")
public ModelAndView historyView(Equip equip) {
ModelAndView mav = new ModelAndView("equip/equipHistory");
List<Equip> equipHistoryList = equipService.selectHistoryList(equip);
mav.addObject("historyList", equipHistoryList.subList(1, equipHistoryList.size()));
mav.addObject("lastVersion", equipService.selectHistoryDetail(equipHistoryList.get(0)));
return mav;
}
@GetMapping("/HistoryDetail")
@ResponseBody
public Equip HistoryDetail(Equip equip){
return equipService.selectHistoryDetail(equip);
}
@PostMapping("/epuipDelete")
public void epuipDelete(@AuthenticationPrincipal UserInfo loginUser, @RequestBody List<Equip> equip){
@PostMapping("/equipDelete")
public void equipDelete(@AuthenticationPrincipal UserInfo loginUser, @RequestBody List<Equip> equip){
equipService.equipDelete(equip,loginUser);
}

View File

@ -29,7 +29,7 @@ public interface EquipMapper {
Integer selectEquipLogListCnt(EquipLog equipLog);
String selectEquipFirstUserSeq(Equip equip);
Integer selectEquipFirstUserSeq(Equip equip);
List<CellPhone> selectCellPhoneList(CellPhone cellPhone);

View File

@ -52,7 +52,7 @@ public class Equip extends BaseModel implements Serializable{
@Column(name = "wrt_title")
private String wrtTitle;
@Column(name = "wrt_user_seq")
private String wrtUserSeq;
private Integer wrtUserSeq;
@Column(name = "wrt_nm")
private String wrtNm;
@Column(name = "wrt_dt")

View File

@ -271,7 +271,7 @@ public class EquipService extends BaseService {
return equipMapper.selectEquipLogListCnt(equipLog);
}
public String selectEquipFirstUserSeq(Equip equip) {
public Integer selectEquipFirstUserSeq(Equip equip) {
return equipMapper.selectEquipFirstUserSeq(equip);
}

View File

@ -399,7 +399,7 @@
) a
</select>
<select id="selectEquipFirstUserSeq" resultType="String" parameterType="Equip">
<select id="selectEquipFirstUserSeq" resultType="int" parameterType="Equip">
select wrt_user_seq
from equ_mgt
where equ_key = #{equKey}

View File

@ -1,4 +1,3 @@
$(document).ready(function(){
$(".table_id").each(function(){
var rows = $(".table_id:contains('"+$(this).text()+"')");
@ -97,42 +96,6 @@ $(document).on('click', '#saveEquip', function (){
});
$(document).on('click', '#equUpdateBtn', function (){
if($('input:checkbox[name=equChk]:checked').length < 1){
alert("게시물을 선택해주세요")
return false;
}
if($('input:checkbox[name=equChk]:checked').length > 1){
alert("한개만 선택해주세요")
return false;
}
const target = $('input:checkbox[name=equChk]:checked');
const equKey = Number(target.parents('tr').find('.equKey').val());
showUpdateModal(equKey);
})
function showUpdateModal(equKey){
$.ajax({
url: '/equip/updatePage',
data: {equKey: equKey},
type: 'GET',
dataType:"html",
success: function(html){
$("#equipModifyModalContent").empty().append(html)
$("#equipModifyModal").modal('show');
$(".mStoredYear").datepicker({
minViewMode: 'years',
format: "yyyy",
language: "ko",
autoclose: true
})
},
error:function(e){
ajaxErrorAction(e);
}
});
}
$(document).on('click', '#addImgBtn', function (){
$("#imgUpload").remove();
$("#addImgBtn").hide();
@ -172,7 +135,6 @@ $(document).on('click', '#updateEquip', function (){
contentType: false,
success : function(data) {
alert("수정되었습니다.");
showUpdateModal(data);
contentFade("out");
location.reload();
},
@ -185,32 +147,6 @@ $(document).on('click', '#updateEquip', function (){
});
$(document).on('click', '#historyBtn', function (){
if($('input:checkbox[name=equChk]:checked').length < 1){
alert("장비를 선택해주세요")
return false;
}
if($('input:checkbox[name=equChk]:checked').length > 1){
alert("한개만 선택해주세요")
return false;
}
const target = $('input:checkbox[name=equChk]:checked');
const equKey = Number(target.parents('tr').find('.equKey').val());
$.ajax({
url: '/equip/historyView',
data: {equKey: equKey},
type: 'GET',
dataType:"html",
success: function(html){
$("#equipHistoryModalContent").empty().append(html)
$("#equipHistoryModal").modal('show');
},
error:function(e){
ajaxErrorAction(e);
}
});
})
$(document).on('click', '.historyInfoTr', function (){
$(this).find('.hisChk').prop('checked',true)
if($(this).find('.hisChk').prop('checked')){
@ -267,7 +203,7 @@ $(document).on('click', '#deleteEquip', function (){
function deleteEquip(checkArr){
$.ajax({
type : 'POST',
url : "/equip/epuipDelete",
url : "/equip/equipDelete",
data : JSON.stringify(checkArr),
contentType: 'application/json',
beforeSend: function (xhr){
@ -295,13 +231,33 @@ $(document).on('click', '#statusExcel', function (){
}
})
$(document).on('click', '.modalCloseBtn', function (){
location.reload();
$(document).on('click', '.equipTr', function (){
$.ajax({
url: '/equip/updatePage',
data: {equKey: $(this).find('.equKey').val()},
type: 'GET',
dataType:"html",
success: function(html){
$("#equipModifyModalContent").empty().append(html)
$("#equipModifyModal").modal('show');
$(".mStoredYear").datepicker({
minViewMode: 'years',
format: "yyyy",
language: "ko",
autoclose: true
})
},
error:function(e){
ajaxErrorAction(e);
}
});
})
$(document).on('click', '.equipTr', function (event){
if(event.target.className !== "equInfoCheckBox"){
const chkBox = $(this).find(".equInfoCheckBox")[0];
chkBox.checked = !chkBox.checked;
}
$(document).on('click', '#formTab', function (){
$("#equipModifyModalFooter").show();
$("#equipModifyModal").find('.modal-dialog')[0].className = "modal-dialog modal-dialog-scrollable";
})
$(document).on('click', '#historyTab', function (){
$("#equipModifyModalFooter").hide();
$("#equipModifyModal").find('.modal-dialog')[0].className = "modal-dialog modal-xl modal-dialog-scrollable";
})

View File

@ -1,160 +0,0 @@
<!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="modal-header bg-dark">
<h5 class="modal-title text-white">수정이력</h5>
<button type="button" class="btn-close f-invert" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body text-center">
<div class="card">
<div class="card-body">
<div class="row justify-content-start">
<div class="col-3">
<table class="table table-sm table-hover table-bordered" id="categoryTable">
<thead>
<tr class="table-secondary">
<th></th>
<th >작성자</th>
<th >등록일</th>
</tr>
</thead>
<tbody class="table-group-divider overflow-scroll">
<th:block th:if="${#lists.size(historyList)>0}">
<tr class="historyInfoTr" th:each="equInfo:${historyList}">
<td><input type="checkbox" class="hisChk">
<input type="hidden" class="equKey" th:value="${equInfo.equKey}">
<input type="hidden" class="verNo" th:value="${equInfo.versionNo}" >
</td>
<td th:text="|${equInfo.wrtTitle} ${equInfo.wrtNm}|"></td>
<td th:text="${#temporals.format(equInfo.wrtDt, 'yyyy-MM-dd')}"></td>
</tr>
</th:block>
<th:block th:unless="${#lists.size(historyList)>0}">
<tr>
<td colspan="3">수정 이력이 없습니다.</td>
</tr>
</th:block>
</tbody>
</table>
</div>
<div class="col-1"></div>
<div class="col-4" id="valueDiv">
<div class="row mb-1">
<div class="col-auto">수정이력</div>
</div>
<div class="row mb-1">
<label for="vSosok" class="col-sm-4 col-form-label col-form-label-sm text-center">관리처</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm" id="vSosok" readonly>
</div>
</div>
<div class="row mb-1">
<label for="vEquType" class="col-sm-4 col-form-label col-form-label-sm text-center">분류</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm" id="vEquType" readonly>
</div>
</div>
<div class="row mb-1">
<label for="vDetailType" class="col-sm-4 col-form-label col-form-label-sm text-center">세부분류</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm" id="vDetailType" readonly>
</div>
</div>
<div class="row mb-1">
<label for="vStoredYear" class="col-sm-4 col-form-label col-form-label-sm text-center">취득연도</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm" id="vStoredYear" readonly>
</div>
</div>
<div class="row mb-1">
<label for="vItemQty" class="col-sm-4 col-form-label col-form-label-sm text-center">보유량</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm" id="vItemQty" readonly>
</div>
</div>
<div class="row mb-1">
<label for="vItemCondition" class="col-sm-4 col-form-label col-form-label-sm text-center">상태</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm" id="vItemCondition" readonly>
</div>
</div>
<div class="row mb-1">
<label for="vNote" class="col-sm-4 col-form-label col-form-label-sm text-center">비고</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm" id="vNote" readonly>
</div>
</div>
<div class="row mb-1">
<label for="vImgName" class="col-sm-4 col-form-label col-form-label-sm text-center">장비사진</label>
<div class="col-sm-6">
<img id="vImgName" src="" alt="첨부이미지" style="width: 100%; height: 100%; display: none;" />
</div>
</div>
</div>
<div class="col-4" id="lastVersionDiv">
<div class="row mb-1">
<div class="col-auto">최신데이터</div>
</div>
<div class="row mb-1">
<label for="vSosok" class="col-sm-4 col-form-label col-form-label-sm text-center">관서</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm" th:value="${lastVersion.sosok}" readonly>
</div>
</div>
<div class="row mb-1">
<label for="vEquType" class="col-sm-4 col-form-label col-form-label-sm text-center">분류</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm" th:value="${lastVersion.equType}" readonly>
</div>
</div>
<div class="row mb-1">
<label for="vDetailType" class="col-sm-4 col-form-label col-form-label-sm text-center">세부분류</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm" th:value="${lastVersion.detailType}" readonly>
</div>
</div>
<div class="row mb-1">
<label for="vStoredYear" class="col-sm-4 col-form-label col-form-label-sm text-center">취득연도</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm" th:value="${lastVersion.storedYear}" readonly>
</div>
</div>
<div class="row mb-1">
<label for="vItemQty" class="col-sm-4 col-form-label col-form-label-sm text-center">보유량</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm" th:value="${lastVersion.itemQty}" readonly>
</div>
</div>
<div class="row mb-1">
<label for="vItemCondition" class="col-sm-4 col-form-label col-form-label-sm text-center">상태</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm" th:value="${lastVersion.itemCondition}" readonly>
</div>
</div>
<div class="row mb-1">
<label for="vNote" class="col-sm-4 col-form-label col-form-label-sm text-center">비고</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm" th:value="${lastVersion.note}" readonly>
</div>
</div>
<div class="row mb-1">
<label for="vImgName" class="col-sm-4 col-form-label col-form-label-sm text-center">장비사진</label>
<div class="col-sm-6">
<img th:src="|/equip/getEquipImg?equKey=${lastVersion.equKey}&versionNo=${lastVersion.versionNo}|" alt="첨부이미지" style="width: 100%; height: 100%;" />
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer justify-content-between bg-light">
<div class="col-auto">
<!--
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
-->
</div>
</div>
</html>

View File

@ -47,7 +47,6 @@
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th> <input type="checkbox" id="chk-all" class="equInfoCheckBox"></th>
<th>순번</th>
<th>소속</th>
<th>세부소속</th>
@ -60,11 +59,8 @@
</thead>
<tbody class="table-group-divider">
<tr class="equipTr" th:each="equ,cnt:${equipList}">
<td>
<input type="checkbox" name="equChk" class="equInfoCheckBox">
<input type="hidden" class="equKey" th:value="${equ.equKey}">
<input type="hidden" class="verNo" th:value="${equ.versionNo}">
</td>
<input type="hidden" class="equKey" th:value="${equ.equKey}">
<input type="hidden" class="verNo" th:value="${equ.versionNo}">
<td th:text="${cnt.count}"></td>
<td th:text="${equ.sosok}"></td>
<td th:text="${equ.detailSosok}"></td>
@ -80,10 +76,7 @@
</tbody>
</table>
</div>
<div class="row justify-content-between">
<div class="col-auto">
<input type="button" class="btn btn-danger" value="삭제" id="equDeleteBtn" th:if="${accessAuth eq 'ACC003'}">
</div>
<div class="row justify-content-center">
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
@ -109,10 +102,6 @@
</ul>
</nav>
</div>
<div class="col-auto">
<input type="button" class="btn btn-success" value="수정" id="equUpdateBtn" th:unless="${accessAuth eq 'ACC001'}">
<input type="button" class="btn btn-success" value="수정이력" id="historyBtn" th:unless="${accessAuth eq 'ACC001'}">
</div>
</div>
</div>
</div>

View File

@ -5,106 +5,252 @@
<button type="button" class="btn-close modalCloseBtn f-invert" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<form id="equipModifyForm" th:action="@{/equip/updateEquip}" method="post" enctype="multipart/form-data">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<input type="hidden" id="mEquKey" name="equKey" th:value="${equInfo.equKey}">
<input type="hidden" name="versionNo" th:value="${equInfo.versionNo}">
<div class="row mb-3">
<label for="mMgtOrgan" class="col-sm-4 col-form-label col-form-label-sm text-center">관서</label>
<div class="col-sm-6">
<select class="form-select form-select-sm" id="mMgtOrgan" name="mgtOrgan" th:disabled="${accessAuth ne 'ACC003'}">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${!(commonCode.itemCd eq 'OG027' or commonCode.itemCd eq 'OG028')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd} == ${equInfo.mgtOrgan}"></option>
</th:block>
</th:block>
</select>
</div>
</div>
<div class="row mb-3">
<label for="equType" class="col-sm-4 col-form-label col-form-label-sm text-center">분류</label>
<div class="col-sm-6">
<select class="form-select form-select-sm" id="equType" name="equType">
<option value="">-분류 선택-</option>
<th:block th:each="commonCode:${session.commonCode.get('IT')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd} == ${equInfo.equType}"></option>
</th:block>
</select>
</div>
</div>
<div class="row mb-3">
<label for="detailType" class="col-sm-4 col-form-label col-form-label-sm text-center">세부분류</label>
<div class="col-sm-6">
<select class="form-select form-select-sm" id="detailType" name="detailType">
<option value="">-세부분류 선택-</option>
<th:block th:each="commonCode:${session.commonCode.get(equInfo.equType)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd} == ${equInfo.detailType}"></option>
</th:block>
</select>
</div>
</div>
<div class="row mb-3">
<label for="storedYear" class="col-sm-4 col-form-label col-form-label-sm text-center">취득연도</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm mStoredYear" id="storedYear" name="storedYear" th:value="${equInfo.storedYear}" readonly>
</div>
</div>
<div class="row mb-3">
<label for="mItemQty" class="col-sm-4 col-form-label col-form-label-sm text-center">보유량</label>
<div class="col-sm-6">
<input type="number" class="form-control form-control-sm" id="mItemQty" name="itemQty" th:value="${equInfo.itemQty}" placeholder="수량 직접입력">
</div>
</div>
<div class="row mb-3">
<label for="itemCondition" class="col-sm-4 col-form-label col-form-label-sm text-center">상태</label>
<div class="col-sm-6">
<select class="form-select form-select-sm" id="itemCondition" name="itemCondition">
<option value="">상태 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('ITCON')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd} == ${equInfo.itemCondition}"></option>
</th:block>
</select>
</div>
</div>
<div class="row mb-3">
<label for="note" class="col-sm-4 col-form-label col-form-label-sm text-center">비고</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm" id="note" name="note" th:value="${equInfo.note}">
</div>
</div>
<div class="row mb-2">
<label for="imgUpload" class="col-sm-4 col-form-label col-form-label-sm text-center">장비사진</label>
<div class="col-sm-6">
<div id="imgUpload">
<input type="text" name="noUpdateImg" class="form-control form-control-sm" th:value="${equInfo.origNm}" readonly th:if="${not #strings.isEmpty(equInfo.origNm)}">
<input type="text" class="form-control form-control-sm" value="등록된 사진이 없습니다." readonly th:if="${#strings.isEmpty(equInfo.origNm)}">
<ul class="nav nav-tabs" id="userTab" role="tablist">
<li class="nav-item" role="presentation">
<button class="nav-link active" id="formTab" data-bs-toggle="tab" data-bs-target="#formTabPanel" type="button" role="tab" aria-controls="formTabPanel" aria-selected="true">수정양식</button>
</li>
<li class="nav-item" role="presentation" th:if="${#lists.size(historyList)>0}">
<button class="nav-link" id="historyTab" data-bs-toggle="tab" data-bs-target="#historyTabPanel" type="button" role="tab" aria-controls="historyTabPanel" aria-selected="false">수정이력</button>
</li>
</ul>
<div class="tab-content bg-white border border-top-0 p-2">
<div class="tab-pane fade p-2 show active" id="formTabPanel" role="tabpanel" tabindex="0">
<form id="equipModifyForm" th:action="@{/equip/updateEquip}" method="post" enctype="multipart/form-data">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<input type="hidden" id="mEquKey" name="equKey" th:value="${equInfo.equKey}">
<input type="hidden" name="versionNo" th:value="${equInfo.versionNo}">
<div class="row mb-3">
<label for="mMgtOrgan" class="col-sm-4 col-form-label col-form-label-sm text-center">관서</label>
<div class="col-sm-6">
<select class="form-select form-select-sm" id="mMgtOrgan" name="mgtOrgan" th:disabled="${accessAuth ne 'ACC003'}">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${!(commonCode.itemCd eq 'OG027' or commonCode.itemCd eq 'OG028')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd} == ${equInfo.mgtOrgan}"></option>
</th:block>
</th:block>
</select>
</div>
</div>
<div id="imgUpdate" style="display:none">
<input type="file" class="form-control form-control-sm" name="file" accept="image/gif,image/jpeg,image/png">
<div class="row mb-3">
<label for="equType" class="col-sm-4 col-form-label col-form-label-sm text-center">분류</label>
<div class="col-sm-6">
<select class="form-select form-select-sm" id="equType" name="equType">
<option value="">-분류 선택-</option>
<th:block th:each="commonCode:${session.commonCode.get('IT')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd} == ${equInfo.equType}"></option>
</th:block>
</select>
</div>
</div>
<div class="row mb-3">
<label for="detailType" class="col-sm-4 col-form-label col-form-label-sm text-center">세부분류</label>
<div class="col-sm-6">
<select class="form-select form-select-sm" id="detailType" name="detailType">
<option value="">-세부분류 선택-</option>
<th:block th:each="commonCode:${session.commonCode.get(equInfo.equType)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd} == ${equInfo.detailType}"></option>
</th:block>
</select>
</div>
</div>
<div class="row mb-3">
<label for="storedYear" class="col-sm-4 col-form-label col-form-label-sm text-center">취득연도</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm mStoredYear" id="storedYear" name="storedYear" th:value="${equInfo.storedYear}" readonly>
</div>
</div>
<div class="row mb-3">
<label for="mItemQty" class="col-sm-4 col-form-label col-form-label-sm text-center">보유량</label>
<div class="col-sm-6">
<input type="number" class="form-control form-control-sm" id="mItemQty" name="itemQty" th:value="${equInfo.itemQty}" placeholder="수량 직접입력">
</div>
</div>
<div class="row mb-3">
<label for="itemCondition" class="col-sm-4 col-form-label col-form-label-sm text-center">상태</label>
<div class="col-sm-6">
<select class="form-select form-select-sm" id="itemCondition" name="itemCondition">
<option value="">상태 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('ITCON')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd} == ${equInfo.itemCondition}"></option>
</th:block>
</select>
</div>
</div>
<div class="row mb-3">
<label for="note" class="col-sm-4 col-form-label col-form-label-sm text-center">비고</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm" id="note" name="note" th:value="${equInfo.note}">
</div>
</div>
<div class="row mb-2">
<label for="imgUpload" class="col-sm-4 col-form-label col-form-label-sm text-center">장비사진</label>
<div class="col-sm-6">
<div id="imgUpload">
<input type="text" name="noUpdateImg" class="form-control form-control-sm" th:value="${equInfo.origNm}" readonly th:if="${not #strings.isEmpty(equInfo.origNm)}">
<input type="text" class="form-control form-control-sm" value="등록된 사진이 없습니다." readonly th:if="${#strings.isEmpty(equInfo.origNm)}">
</div>
<div id="imgUpdate" style="display:none">
<input type="file" class="form-control form-control-sm" name="file" accept="image/gif,image/jpeg,image/png">
</div>
</div>
<div class="col-sm-1">
<button type="button" class="btn btn-sm btn-danger" id="deleteImgBtn" th:if="${not #strings.isEmpty(equInfo.origNm)}" th:attr="onclick=|deleteImg('${equInfo.equKey}','${equInfo.versionNo}')|">
<i class="bi bi-x"></i>
</button>
<button type="button" class="btn btn-primary" id="addImgBtn" th:if="${#strings.isEmpty(equInfo.origNm)}">
<i class="bi bi-plus"></i>
</button>
</div>
</div>
</form>
</div>
<div class="tab-pane fade p-2" id="historyTabPanel" role="tabpanel" tabindex="0">
<div class="row justify-content-start">
<div class="col-3">
<table class="table table-sm table-hover table-bordered" id="categoryTable">
<thead>
<tr class="table-secondary">
<th></th>
<th >작성자</th>
<th >등록일</th>
</tr>
</thead>
<tbody class="table-group-divider overflow-scroll">
<th:block th:if="${#lists.size(historyList)>0}">
<tr class="historyInfoTr" th:each="equ:${historyList}">
<td><input type="checkbox" class="hisChk">
<input type="hidden" class="equKey" th:value="${equ.equKey}">
<input type="hidden" class="verNo" th:value="${equ.versionNo}" >
</td>
<td th:text="|${equ.wrtTitle} ${equ.wrtNm}|"></td>
<td th:text="${#temporals.format(equ.wrtDt, 'yyyy-MM-dd')}"></td>
</tr>
</th:block>
<th:block th:unless="${#lists.size(historyList)>0}">
<tr>
<td colspan="3">수정 이력이 없습니다.</td>
</tr>
</th:block>
</tbody>
</table>
</div>
<div class="col-1"></div>
<div class="col-4" id="valueDiv">
<div class="row mb-1">
<div class="col-auto">수정이력</div>
</div>
<div class="row mb-1">
<label for="vSosok" class="col-sm-4 col-form-label col-form-label-sm text-center">관리처</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm" id="vSosok" readonly>
</div>
</div>
<div class="row mb-1">
<label for="vEquType" class="col-sm-4 col-form-label col-form-label-sm text-center">분류</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm" id="vEquType" readonly>
</div>
</div>
<div class="row mb-1">
<label for="vDetailType" class="col-sm-4 col-form-label col-form-label-sm text-center">세부분류</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm" id="vDetailType" readonly>
</div>
</div>
<div class="row mb-1">
<label for="vStoredYear" class="col-sm-4 col-form-label col-form-label-sm text-center">취득연도</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm" id="vStoredYear" readonly>
</div>
</div>
<div class="row mb-1">
<label for="vItemQty" class="col-sm-4 col-form-label col-form-label-sm text-center">보유량</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm" id="vItemQty" readonly>
</div>
</div>
<div class="row mb-1">
<label for="vItemCondition" class="col-sm-4 col-form-label col-form-label-sm text-center">상태</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm" id="vItemCondition" readonly>
</div>
</div>
<div class="row mb-1">
<label for="vNote" class="col-sm-4 col-form-label col-form-label-sm text-center">비고</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm" id="vNote" readonly>
</div>
</div>
<div class="row mb-1">
<label for="vImgName" class="col-sm-4 col-form-label col-form-label-sm text-center">장비사진</label>
<div class="col-sm-6">
<img id="vImgName" src="" alt="첨부이미지" style="width: 100%; height: 100%; display: none;" />
</div>
</div>
</div>
<div class="col-4" id="lastVersionDiv">
<div class="row mb-1">
<div class="col-auto">최신데이터</div>
</div>
<div class="row mb-1">
<label for="vSosok" class="col-sm-4 col-form-label col-form-label-sm text-center">관서</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm" th:value="${lastVersion.sosok}" readonly>
</div>
</div>
<div class="row mb-1">
<label for="vEquType" class="col-sm-4 col-form-label col-form-label-sm text-center">분류</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm" th:value="${lastVersion.equType}" readonly>
</div>
</div>
<div class="row mb-1">
<label for="vDetailType" class="col-sm-4 col-form-label col-form-label-sm text-center">세부분류</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm" th:value="${lastVersion.detailType}" readonly>
</div>
</div>
<div class="row mb-1">
<label for="vStoredYear" class="col-sm-4 col-form-label col-form-label-sm text-center">취득연도</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm" th:value="${lastVersion.storedYear}" readonly>
</div>
</div>
<div class="row mb-1">
<label for="vItemQty" class="col-sm-4 col-form-label col-form-label-sm text-center">보유량</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm" th:value="${lastVersion.itemQty}" readonly>
</div>
</div>
<div class="row mb-1">
<label for="vItemCondition" class="col-sm-4 col-form-label col-form-label-sm text-center">상태</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm" th:value="${lastVersion.itemCondition}" readonly>
</div>
</div>
<div class="row mb-1">
<label for="vNote" class="col-sm-4 col-form-label col-form-label-sm text-center">비고</label>
<div class="col-sm-6">
<input type="text" class="form-control form-control-sm" th:value="${lastVersion.note}" readonly>
</div>
</div>
<div class="row mb-1">
<label for="vImgName" class="col-sm-4 col-form-label col-form-label-sm text-center">장비사진</label>
<div class="col-sm-6">
<img th:src="|/equip/getEquipImg?equKey=${lastVersion.equKey}&versionNo=${lastVersion.versionNo}|" alt="첨부이미지" style="width: 100%; height: 100%;" />
</div>
</div>
</div>
</div>
<div class="col-sm-1">
<button type="button" class="btn btn-sm btn-danger" id="deleteImgBtn" th:if="${not #strings.isEmpty(equInfo.origNm)}" th:attr="onclick=|deleteImg('${equInfo.equKey}','${equInfo.versionNo}')|">
<i class="bi bi-x"></i>
</button>
<button type="button" class="btn btn-primary" id="addImgBtn" th:if="${#strings.isEmpty(equInfo.origNm)}">
<i class="bi bi-plus"></i>
</button>
</div>
</div>
</form>
</div>
</div>
<div class="modal-footer justify-content-between bg-light">
<div class="modal-footer justify-content-between bg-light" id="equipModifyModalFooter">
<div class="col-auto">
<!--
<button type="button" class="btn btn-secondary modalCloseBtn" data-bs-dismiss="modal">닫기</button>
-->
<button type="button" class="btn btn-danger" id="deleteEquip" th:if="${accessAuth eq 'ACC003'} or ${wrtUserSeq eq userSeq}">삭제</button>
</div>
<div class="col-auto">
<button type="button" class="btn btn-warning" id="updateEquip" th:if="${accessAuth eq 'ACC003'} or ${wrtUserSeq eq userSeq}">수정</button>
<button type="button" class="btn btn-danger" id="deleteEquip" th:if="${accessAuth eq 'ACC003' or wrtUserSeq eq userSeq}">삭제</button>
</div>
<button type="button" class="btn btn-warning" id="updateEquip" th:if="${accessAuth eq 'ACC002'}">수정</button>
</div>
</html>