외사장비 > 외사장비현황 > 장비현황 수정, 이력 모달 통합.
parent
da56efe8eb
commit
7152ceca7b
|
|
@ -72,10 +72,11 @@ public class EquipController {
|
||||||
|
|
||||||
@PostMapping("/saveEquip")
|
@PostMapping("/saveEquip")
|
||||||
public void saveEquip(@AuthenticationPrincipal UserInfo loginUser,Equip equip, MultipartHttpServletRequest request){
|
public void saveEquip(@AuthenticationPrincipal UserInfo loginUser,Equip equip, MultipartHttpServletRequest request){
|
||||||
equip.setWrtNm(loginUser.getUserNm());
|
|
||||||
equip.setWrtOrgan(loginUser.getOgCd());
|
equip.setWrtOrgan(loginUser.getOgCd());
|
||||||
equip.setWrtPart(loginUser.getOfcCd());
|
equip.setWrtPart(loginUser.getOfcCd());
|
||||||
|
equip.setWrtUserSeq(loginUser.getUserSeq());
|
||||||
equip.setWrtTitle(loginUser.getTitleCd());
|
equip.setWrtTitle(loginUser.getTitleCd());
|
||||||
|
equip.setWrtNm(loginUser.getUserNm());
|
||||||
equip.setWrtDt(LocalDateTime.now());
|
equip.setWrtDt(LocalDateTime.now());
|
||||||
equipService.saveEquip(equip,request);
|
equipService.saveEquip(equip,request);
|
||||||
}
|
}
|
||||||
|
|
@ -109,6 +110,11 @@ public class EquipController {
|
||||||
mav.addObject("userSeq", loginUser.getUserSeq());
|
mav.addObject("userSeq", loginUser.getUserSeq());
|
||||||
mav.addObject("wrtUserSeq", equipService.selectEquipFirstUserSeq(equip));
|
mav.addObject("wrtUserSeq", equipService.selectEquipFirstUserSeq(equip));
|
||||||
mav.addObject("equInfo", equipService.selectEquipInfo(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;
|
return mav;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -124,23 +130,14 @@ public class EquipController {
|
||||||
return result;
|
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")
|
@GetMapping("/HistoryDetail")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public Equip HistoryDetail(Equip equip){
|
public Equip HistoryDetail(Equip equip){
|
||||||
return equipService.selectHistoryDetail(equip);
|
return equipService.selectHistoryDetail(equip);
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/epuipDelete")
|
@PostMapping("/equipDelete")
|
||||||
public void epuipDelete(@AuthenticationPrincipal UserInfo loginUser, @RequestBody List<Equip> equip){
|
public void equipDelete(@AuthenticationPrincipal UserInfo loginUser, @RequestBody List<Equip> equip){
|
||||||
equipService.equipDelete(equip,loginUser);
|
equipService.equipDelete(equip,loginUser);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ public interface EquipMapper {
|
||||||
|
|
||||||
Integer selectEquipLogListCnt(EquipLog equipLog);
|
Integer selectEquipLogListCnt(EquipLog equipLog);
|
||||||
|
|
||||||
String selectEquipFirstUserSeq(Equip equip);
|
Integer selectEquipFirstUserSeq(Equip equip);
|
||||||
|
|
||||||
List<CellPhone> selectCellPhoneList(CellPhone cellPhone);
|
List<CellPhone> selectCellPhoneList(CellPhone cellPhone);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@ public class Equip extends BaseModel implements Serializable{
|
||||||
@Column(name = "wrt_title")
|
@Column(name = "wrt_title")
|
||||||
private String wrtTitle;
|
private String wrtTitle;
|
||||||
@Column(name = "wrt_user_seq")
|
@Column(name = "wrt_user_seq")
|
||||||
private String wrtUserSeq;
|
private Integer wrtUserSeq;
|
||||||
@Column(name = "wrt_nm")
|
@Column(name = "wrt_nm")
|
||||||
private String wrtNm;
|
private String wrtNm;
|
||||||
@Column(name = "wrt_dt")
|
@Column(name = "wrt_dt")
|
||||||
|
|
|
||||||
|
|
@ -271,7 +271,7 @@ public class EquipService extends BaseService {
|
||||||
return equipMapper.selectEquipLogListCnt(equipLog);
|
return equipMapper.selectEquipLogListCnt(equipLog);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String selectEquipFirstUserSeq(Equip equip) {
|
public Integer selectEquipFirstUserSeq(Equip equip) {
|
||||||
return equipMapper.selectEquipFirstUserSeq(equip);
|
return equipMapper.selectEquipFirstUserSeq(equip);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -399,7 +399,7 @@
|
||||||
) a
|
) a
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectEquipFirstUserSeq" resultType="String" parameterType="Equip">
|
<select id="selectEquipFirstUserSeq" resultType="int" parameterType="Equip">
|
||||||
select wrt_user_seq
|
select wrt_user_seq
|
||||||
from equ_mgt
|
from equ_mgt
|
||||||
where equ_key = #{equKey}
|
where equ_key = #{equKey}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
$(".table_id").each(function(){
|
$(".table_id").each(function(){
|
||||||
var rows = $(".table_id:contains('"+$(this).text()+"')");
|
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 (){
|
$(document).on('click', '#addImgBtn', function (){
|
||||||
$("#imgUpload").remove();
|
$("#imgUpload").remove();
|
||||||
$("#addImgBtn").hide();
|
$("#addImgBtn").hide();
|
||||||
|
|
@ -172,7 +135,6 @@ $(document).on('click', '#updateEquip', function (){
|
||||||
contentType: false,
|
contentType: false,
|
||||||
success : function(data) {
|
success : function(data) {
|
||||||
alert("수정되었습니다.");
|
alert("수정되었습니다.");
|
||||||
showUpdateModal(data);
|
|
||||||
contentFade("out");
|
contentFade("out");
|
||||||
location.reload();
|
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 (){
|
$(document).on('click', '.historyInfoTr', function (){
|
||||||
$(this).find('.hisChk').prop('checked',true)
|
$(this).find('.hisChk').prop('checked',true)
|
||||||
if($(this).find('.hisChk').prop('checked')){
|
if($(this).find('.hisChk').prop('checked')){
|
||||||
|
|
@ -267,7 +203,7 @@ $(document).on('click', '#deleteEquip', function (){
|
||||||
function deleteEquip(checkArr){
|
function deleteEquip(checkArr){
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type : 'POST',
|
type : 'POST',
|
||||||
url : "/equip/epuipDelete",
|
url : "/equip/equipDelete",
|
||||||
data : JSON.stringify(checkArr),
|
data : JSON.stringify(checkArr),
|
||||||
contentType: 'application/json',
|
contentType: 'application/json',
|
||||||
beforeSend: function (xhr){
|
beforeSend: function (xhr){
|
||||||
|
|
@ -295,13 +231,33 @@ $(document).on('click', '#statusExcel', function (){
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
$(document).on('click', '.modalCloseBtn', function (){
|
$(document).on('click', '.equipTr', function (){
|
||||||
location.reload();
|
$.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){
|
$(document).on('click', '#formTab', function (){
|
||||||
if(event.target.className !== "equInfoCheckBox"){
|
$("#equipModifyModalFooter").show();
|
||||||
const chkBox = $(this).find(".equInfoCheckBox")[0];
|
$("#equipModifyModal").find('.modal-dialog')[0].className = "modal-dialog modal-dialog-scrollable";
|
||||||
chkBox.checked = !chkBox.checked;
|
})
|
||||||
}
|
$(document).on('click', '#historyTab', function (){
|
||||||
|
$("#equipModifyModalFooter").hide();
|
||||||
|
$("#equipModifyModal").find('.modal-dialog')[0].className = "modal-dialog modal-xl modal-dialog-scrollable";
|
||||||
})
|
})
|
||||||
|
|
@ -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>
|
|
||||||
|
|
@ -47,7 +47,6 @@
|
||||||
<table class="table table-sm table-hover table-bordered">
|
<table class="table table-sm table-hover table-bordered">
|
||||||
<thead>
|
<thead>
|
||||||
<tr class="table-secondary">
|
<tr class="table-secondary">
|
||||||
<th> <input type="checkbox" id="chk-all" class="equInfoCheckBox"></th>
|
|
||||||
<th>순번</th>
|
<th>순번</th>
|
||||||
<th>소속</th>
|
<th>소속</th>
|
||||||
<th>세부소속</th>
|
<th>세부소속</th>
|
||||||
|
|
@ -60,11 +59,8 @@
|
||||||
</thead>
|
</thead>
|
||||||
<tbody class="table-group-divider">
|
<tbody class="table-group-divider">
|
||||||
<tr class="equipTr" th:each="equ,cnt:${equipList}">
|
<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="equKey" th:value="${equ.equKey}">
|
||||||
<input type="hidden" class="verNo" th:value="${equ.versionNo}">
|
<input type="hidden" class="verNo" th:value="${equ.versionNo}">
|
||||||
</td>
|
|
||||||
<td th:text="${cnt.count}"></td>
|
<td th:text="${cnt.count}"></td>
|
||||||
<td th:text="${equ.sosok}"></td>
|
<td th:text="${equ.sosok}"></td>
|
||||||
<td th:text="${equ.detailSosok}"></td>
|
<td th:text="${equ.detailSosok}"></td>
|
||||||
|
|
@ -80,10 +76,7 @@
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<div class="row justify-content-between">
|
<div class="row justify-content-center">
|
||||||
<div class="col-auto">
|
|
||||||
<input type="button" class="btn btn-danger" value="삭제" id="equDeleteBtn" th:if="${accessAuth eq 'ACC003'}">
|
|
||||||
</div>
|
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<nav aria-label="Page navigation">
|
<nav aria-label="Page navigation">
|
||||||
<ul class="pagination mb-0">
|
<ul class="pagination mb-0">
|
||||||
|
|
@ -109,10 +102,6 @@
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</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>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,16 @@
|
||||||
<button type="button" class="btn-close modalCloseBtn f-invert" data-bs-dismiss="modal" aria-label="Close"></button>
|
<button type="button" class="btn-close modalCloseBtn f-invert" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
|
<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">
|
<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" name="_csrf_header" th:value="${_csrf.headerName}"/>
|
||||||
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
|
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
|
||||||
|
|
@ -96,15 +106,151 @@
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer justify-content-between bg-light">
|
<div class="tab-pane fade p-2" id="historyTabPanel" role="tabpanel" tabindex="0">
|
||||||
<div class="col-auto">
|
<div class="row justify-content-start">
|
||||||
<!--
|
<div class="col-3">
|
||||||
<button type="button" class="btn btn-secondary modalCloseBtn" data-bs-dismiss="modal">닫기</button>
|
<table class="table table-sm table-hover table-bordered" id="categoryTable">
|
||||||
-->
|
<thead>
|
||||||
<button type="button" class="btn btn-danger" id="deleteEquip" th:if="${accessAuth eq 'ACC003'} or ${wrtUserSeq eq userSeq}">삭제</button>
|
<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>
|
||||||
<div class="col-auto">
|
<div class="col-1"></div>
|
||||||
<button type="button" class="btn btn-warning" id="updateEquip" th:if="${accessAuth eq 'ACC003'} or ${wrtUserSeq eq userSeq}">수정</button>
|
<div class="col-4" id="valueDiv">
|
||||||
|
<div class="row mb-1">
|
||||||
|
<div class="col-auto">수정이력</div>
|
||||||
</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" id="equipModifyModalFooter">
|
||||||
|
<div class="col-auto">
|
||||||
|
<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>
|
</div>
|
||||||
</html>
|
</html>
|
||||||
Loading…
Reference in New Issue