강석 최 2022-11-03 18:36:11 +09:00
commit 95bedc149f
37 changed files with 487 additions and 374 deletions

View File

@ -287,7 +287,7 @@ public class FipTargetController {
mav.addObject("partWorkList", fipTargetService.selectPartWorkList(partWork));
partWork.setContentCnt(fipTargetService.selectPartWorkListCnt(partWork));
partWork.setPaginationInfo();
mav.addObject("uesrId", loginUser.getUserId());
mav.addObject("uesrSeq", loginUser.getUserSeq());
mav.addObject("searchParams", partWork);
return mav;
}

View File

@ -147,6 +147,7 @@ public class FipTargetService extends BaseService {
partTmp.setWrtNm(partInfo.getWrtNm());
partTmp.setWrtPart(partInfo.getWrtPart());
partTmp.setWrtOrgan(partInfo.getWrtOrgan());
partTmp.setWrtTitle(partInfo.getWrtTitle());
partTmp.setWrtDt(partInfo.getWrtDt());
partInfoRepository.save(partTmp);
//업데이트하는 버전 파일조회
@ -291,6 +292,7 @@ public class FipTargetService extends BaseService {
partWork.setWrtNm(dbParkWork.getWrtNm());
partWork.setWrtOrgan(dbParkWork.getWrtOrgan());
partWork.setWrtPart(dbParkWork.getWrtPart());
partWork.setWrtTitle(dbParkWork.getWrtTitle());
partWork.setWrtUserSeq(dbParkWork.getWrtUserSeq());
partWorkRepository.save(partWork);
if(deleteFileSeq!=null && deleteFileSeq.size()>0){

View File

@ -11,6 +11,7 @@ import com.dbnt.faisp.util.Utils;
import lombok.RequiredArgsConstructor;
import java.io.IOException;
import java.time.LocalDateTime;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
@ -71,8 +72,11 @@ public class TranslatorController {
@PostMapping("/insertTranslatorInfo")
public String insertTranslatorInfo(@AuthenticationPrincipal UserInfo loginUser,Translator translator) {
translator.setWrtNm(loginUser.getUserId());
translator.setWrtNm(loginUser.getUserNm());
translator.setWrtOrgan(loginUser.getOgCd());
translator.setWrtPart(loginUser.getOfcCd());
translator.setWrtTitle(loginUser.getTitleCd());
translator.setWrtDt(LocalDateTime.now());
return translatorSevice.insertTranslatorInfo(translator);
}
@ -81,17 +85,21 @@ public class TranslatorController {
ModelAndView mav = new ModelAndView("translator/translatorEditModal");
//메뉴권한 확인
String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/translator/info").get(0).getAccessAuth();
mav.addObject("wrtId", translatorSevice.selectTrFristId(translator.getTranslatorKey()));
mav.addObject("userId", loginUser.getUserId());
mav.addObject("wrtUserSeq", translatorSevice.selectTrFristUserSeq(translator.getTranslatorKey()));
mav.addObject("userSeq", loginUser.getUserSeq());
mav.addObject("trInfo", translatorSevice.selectTranslatorView(translator));
mav.addObject("mgtOrganList", loginUser.getDownOrganCdList());
mav.addObject("accessAuth", accessAuth);
return mav;
}
@PostMapping("/updateTranslatorInfo")
public Translator updatetranslatorInfo(@AuthenticationPrincipal UserInfo loginUser,Translator translator) {
translator.setWrtNm(loginUser.getUserId());
translator.setWrtNm(loginUser.getUserNm());
translator.setWrtOrgan(loginUser.getOgCd());
translator.setWrtPart(loginUser.getOfcCd());
translator.setWrtTitle(loginUser.getTitleCd());
translator.setWrtDt(LocalDateTime.now());
Translator result = translatorSevice.updatetranslatorInfo(translator);
return result;
}
@ -99,7 +107,7 @@ public class TranslatorController {
@GetMapping("/revisionHistory")
public ModelAndView revisionHistory(Translator translator){
ModelAndView mav = new ModelAndView("translator/translatorHistory");
mav.addObject("HistoryList", translatorSevice.selectHistoryList(translator));
mav.addObject("historyList", translatorSevice.selectHistoryList(translator));
return mav;
}
@ -118,8 +126,9 @@ public class TranslatorController {
mav.addObject("policeCrr", translatorSevice.selectMaritimePoliceCareer(translatorCrr));
mav.addObject("anotherCrr", translatorSevice.selectAnotherOrganizationCareer(translatorCrr));
mav.addObject("trKey", translatorCrr.getTranslatorKey());
mav.addObject("wrtId", translatorSevice.selectTrFristId(translatorCrr.getTranslatorKey()));
mav.addObject("userId", loginUser.getUserId());
mav.addObject("wrtUserSeq", translatorSevice.selectTrFristUserSeq(translatorCrr.getTranslatorKey()));
mav.addObject("userSeq", loginUser.getUserSeq());
mav.addObject("trName", translatorSevice.selectTrLastName(translatorCrr));
mav.addObject("accessAuth", accessAuth);
return mav;
}

View File

@ -27,6 +27,6 @@ public interface TranslatorMapper {
List<ParamMap> selectTranslatorListEx(Translator translator);
String selectTrFristId(int translatorKey);
String selectTrFristUserSeq(int translatorKey);
}

View File

@ -63,12 +63,19 @@ public class Translator extends BaseModel implements Serializable{
private String dmlYn;
@Column(name = "remark")
private String remark;
@Column(name = "wrt_organ")
private String wrtOrgan;
@Column(name = "wrt_part")
private String wrtPart;
@Column(name = "wrt_title")
private String wrtTitle;
@Column(name = "wrt_user_seq")
private Integer wrtUserSeq;
@Column(name = "wrt_nm")
private String wrtNm;
@Column(name = "wrt_dt")
private LocalDateTime wrtDt;
@Column(name = "wrt_organ")
private String wrtOrgan;
@Transient

View File

@ -2,6 +2,8 @@ package com.dbnt.faisp.main.translator.repository;
import com.dbnt.faisp.main.translator.model.Translator;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
@ -11,6 +13,9 @@ public interface TranslatorRepository extends JpaRepository<Translator, Translat
void deleteByTranslatorKey(int trKey);
@Query(value = "SELECT tr_name FROM translator_info WHERE translator_key=:translatorKey order by version_no desc limit 1", nativeQuery = true)
String getTrLastName(@Param("translatorKey") Integer translatorKey);

View File

@ -31,13 +31,11 @@ public class TranslatorService {
if (dbTranslator == null) {
translator.setTranslatorKey(1);
translator.setVersionNo(1);
return translatorRepository.save(translator).getTrName();
} else {
translator.setTranslatorKey(dbTranslator.getTranslatorKey() + 1);
translator.setVersionNo(1);
return translatorRepository.save(translator).getTrName();
}
return translatorRepository.save(translator).getTrName();
}
public List<Translator> selectTranslatorList(Translator translator) {
@ -75,8 +73,11 @@ public class TranslatorService {
translatorTmp.setDmlYn(translator.getDmlYn());
translatorTmp.setRemark(translator.getRemark());
translatorTmp.setWrtNm(translator.getWrtNm());
translatorTmp.setWrtDt(LocalDateTime.now());
translatorTmp.setWrtDt(translator.getWrtDt());
translatorTmp.setWrtOrgan(translator.getWrtOrgan());
translatorTmp.setWrtPart(translator.getWrtPart());
translatorTmp.setWrtTitle(translator.getWrtTitle());
translatorTmp.setWrtUserSeq(translator.getWrtUserSeq());
translatorRepository.save(translatorTmp);
return translatorTmp;
}
@ -140,8 +141,12 @@ public class TranslatorService {
return translatorMapper.selectTranslatorListEx(translator);
}
public String selectTrFristId(int translatorKey) {
return translatorMapper.selectTrFristId(translatorKey);
public String selectTrFristUserSeq(int translatorKey) {
return translatorMapper.selectTrFristUserSeq(translatorKey);
}
public String selectTrLastName(TranslatorCrr translatorCrr) {
return translatorRepository.getTrLastName(translatorCrr.getTranslatorKey());
}
}

View File

@ -330,6 +330,7 @@
pi.terminal_nm,
(select item_value from code_mgt where item_cd = pw.wrt_title) as wrt_title,
pw.wrt_nm,
pw.wrt_user_seq,
pw.work_dt,
pw.save_yn,
work_type,

View File

@ -121,6 +121,9 @@
<select id="selectHistoryList" resultType="Translator" parameterType="Translator">
select translator_key,
version_no,
wrt_organ,
wrt_part,
(select item_value from code_mgt where item_cd = wrt_title) as wrt_title,
wrt_nm,
wrt_dt
from translator_info
@ -313,8 +316,8 @@
order by translator_key desc
</select>
<select id="selectTrFristId" resultType="String" parameterType="int">
select wrt_nm
<select id="selectTrFristUserSeq" resultType="String" parameterType="int">
select wrt_user_seq
from translator_info
where translator_key = #{translatorKey}
order by version_no asc

View File

@ -77,3 +77,13 @@
.fs-11{
font-size: 11px;
}
.fsw-13{
font-size: 13px;
font-weight: 900;
}
.pl-15{
padding-left: 15%;
}
.display-none{
display:none
}

View File

@ -187,3 +187,27 @@ function fileCheck(flag, files){
}
return flag;
}
function dynamicOption(targetTagName, code) {
$(targetTagName).empty();
let option = '';
if (code) {
commonCode[code].forEach(function (item) {
option += '<option value="' + item.itemCd + '">' + item.itemValue + '</option>';
});
}
$(targetTagName).append('<option value="">선택</option>' + option);
}
function departmentDynamicOption(targetTagName, code, defaultOptionName='') {
$(targetTagName).empty();
let option = '';
organConfigList.forEach(function (organConfig) {
if (organConfig.parentOrgan != null && organConfig.organType != 'OGC002' && organConfig.parentOrgan == code) {
option += '<option value="' + organConfig.organCd + '">' + organConfig.organNm + '</option>';
}
});
$(targetTagName).append('<option value="">' + defaultOptionName + '선택</option>' + option);
}

View File

@ -28,6 +28,14 @@ $(document).on('click', '.tr', function (){
getIcaViewModal($(this).data('key'));
});
$(document).on('change', 'select[name="organ"]', function (){
departmentDynamicOption('select[name="department"]', $(this).val());
});
$(document).on('change', 'select[name="crimeType"]', function (){
dynamicOption('select[name="violationType"]', $(this).val());
});
$(document).on('change', '#crimeForm', function (){
$('#crimeFormDiv').next().remove();
@ -125,7 +133,7 @@ $(document).on('change', '#crimeType', function (){
smugglingAmount += '<option value="'+ item.itemCd +'">' + item.itemValue +'</option>';
})
if ($(this).val() == 'CTH002') {
if ($(this).val() == 'CTH2') {
makeArrestAreaDiv('장소');
$('#smugglingAmountDiv').append(
'<label class="col-sm-2 col-form-label text-center">밀수입출 품목</label>'
@ -162,7 +170,7 @@ $(document).on('change', '#violationType', function (){
$('.entryVisa').remove();
$('#violationAmountDiv').remove();
if ($(this).val() == 'VLT001') {
if ($(this).val() == 'CTH101') {
makeSpiInfoDiv('피의자 정보');
makeArrestAreaDiv('지역');
makeSeaAreaDiv('밀입국');
@ -171,7 +179,7 @@ $(document).on('change', '#violationType', function (){
makeDestinationDiv('밀입국 출발지(국가)');
}
if ($(this).val() == 'VLT002') {
if ($(this).val() == 'CTH102') {
makeSpiInfoDiv('피의자 정보');
makeArrestAreaDiv('지역');
makeSeaAreaDiv('도외이탈');
@ -179,7 +187,7 @@ $(document).on('change', '#violationType', function (){
makePurposeDiv('도외이탈');
}
if ($(this).val() == 'VLT003') {
if ($(this).val() == 'CTH103') {
makeSpiInfoDiv('피의자 정보');
makeArrestAreaDiv('지역');
makeSeaAreaDiv('밀출국');
@ -188,7 +196,7 @@ $(document).on('change', '#violationType', function (){
makeDestinationDiv('밀출국 행선지(도착예정지)');
}
if ($(this).val() == 'VLT004') {
if ($(this).val() == 'CTH104') {
makeSpiInfoDiv('피의자 정보');
makeArrestAreaDiv('지역');
makeSeaAreaDiv('밀항');
@ -197,15 +205,18 @@ $(document).on('change', '#violationType', function (){
makeDestinationDiv('밀항 행선지(도착예정지)');
}
if ($(this).val() == 'VLT005') {
if ($(this).val() == 'CTH105') {
makeSpiInfoDiv('불법체류 및 취업');
makeEntryVisaDiv();
}
if ($(this).val() == 'VLT301') {
if ($(this).val() == 'CTH401') {
makeViolationAmountDiv();
}
if ($(this).val() == 'CTH201' || $(this).val() == 'CTH202' || $(this).val() == 'CTH203' || $(this).val() == 'CTH204') {
makeArrestAreaDiv('장소');
}
});
$(document).on('change', '#smugglingAmount', function (){
@ -321,7 +332,7 @@ function makeArrestAreaDiv(name) {
function makeMeansDiv(name, code) {
let means = '';
if (code == 'VLT001') {
if (code == 'CTH101') {
commonCode.MS1.forEach(function (item){
means += '<option value="'+ item.itemCd +'">' + item.itemValue +'</option>';
})
@ -500,10 +511,6 @@ function saveInternationalCrimeArrest(contentState){
function contentCheck(){
let flag = true;
if(!$('select[name="organ"]').val()){
alert("지방청을 선택해주세요.")
flag = false;
}
return flag;
}

View File

@ -45,15 +45,15 @@ $(document).on('click', '#updateBtn', function (){
return false;
}
if($('#trLang').val() == ''){
if($('#eTrLang').val() == ''){
alert("언어를 선택해주세요.");
$('#trLang').focus();
$('#eTrLang').focus();
return false;
}
if($('#trEname').val() == ''){
if($('#eTrEname').val() == ''){
alert("성명을 입력해주세요.");
$('#trEname').focus();
$('#eTrEname').focus();
return false;
}
@ -227,10 +227,8 @@ $(document).on('change', '#trNny', function (){
$(document).on('click', '#crrAddBtn', function (){
const trKey = (Number($('#tcInsertKey').val()));
$('#insertCareer').append(
'<div class="mb-12 row" id="crrDiv">'+
'<div class="col-sm-1">'+
'<button type="button" class="btn btn-sm btn-outline-danger rowDeleteBtn"><i class="bi bi-x"></i></button>'+
'</div>'+
'<div id="crrDiv">'+
'<div class="mb-3 row">'+
'<label for="ogCd" class="col-sm-2 col-form-label text-center">경력구분</label>'+
'<div class="col-sm-2">'+
'<select class="form-select form-select-sm crrInput" name="hisGubun">'+
@ -241,16 +239,22 @@ $(document).on('click', '#crrAddBtn', function (){
'</div>'+
'<label for="ofcCd" class="col-sm-1 col-form-label text-center">날짜</label>'+
'<div class="col-sm-2">'+
'<input type="text" class="form-control tcDt crrInput" id="tcDt" name="tcDt">'+
'<input type="text" class="form-control tcDt crrInput" id="tcDt" name="tcDt" readonly>'+
'</div>'+
'<label for="ofcCd" class="col-sm-1 col-form-label text-center">내용</label>'+
'<div class="col-sm-2">'+
'<input type="text" class="form-control crrInput" id="contents" name="contents">'+
'</div>'+
'<label for="ofcCd" class="col-sm-1 col-form-label text-center">비고</label>'+
'<div class="col-sm-2">'+
'</div>'+
'<div class="mb-2 row">'+
'<label for="ofcCd" class="col-sm-2 col-form-label text-center">비고</label>'+
'<div class="col-sm-8">'+
'<input type="text" class="form-control crrInput" id="remark" name="remark">'+
'</div>'+
'<div class="col-sm-1">'+
'<button type="button" class="btn btn-sm btn-outline-danger rowDeleteBtn"><i class="bi bi-x"></i></button>'+
'</div>'+
'</div>'+
'</div>'
)
$(".tcDt").datepicker({
@ -376,11 +380,6 @@ function deleteCareerBtn(crrSeq,trKey){
}
$(document).on('click', '.btn-close', function (){
trCarrerList.length = 0;
location.reload();
})
$(document).on('click', '#closeModalBtn', function (){
location.reload();
})

View File

@ -7,6 +7,7 @@
<script th:inline="javascript">
const internationalCrimeArrest = [[${internationalCrimeArrest}]];
const commonCode = [[${session.commonCode}]];
const organConfigList = [[${organConfigList}]];
</script>
<script type="text/javascript" th:src="@{/js/faStatistics/internationalCrimeArrest.js}"></script>
</th:block>
@ -44,7 +45,7 @@
</th:block>
</select>
</div>
<div class="col-auto">
<div class="col-auto" id="departmentDiv">
<select class="form-select form-select-sm" name="department">
<option value="">경찰서 선택</option>
<th:block th:each="organConfig:${organConfigList}">
@ -63,10 +64,12 @@
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="violationType">
<option value="">위반유형</option>
<th:block th:each="commonCode:${session.commonCode.get('VLT')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.violationType}"></option>
<select class="form-select form-select-sm" name="violationType" id="violationType">
<option value="">위반유형 선택</option>
<th:block th:each="num : ${#numbers.sequence(1,#lists.size(session.commonCode.get('CTH')))}">
<th:block th:each="commonCode:${session.commonCode.get('CTH'+num)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${internationalCrimeArrest.violationType eq commonCode.itemCd}"></option>
</th:block>
</th:block>
</select>
</div>
@ -138,12 +141,14 @@
<th:block th:each="commonCode:${session.commonCode.get('CTH')}">
<td th:if="${internationalCrimeArrest.crimeType eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:each="num : ${#numbers.sequence(1,#lists.size(session.commonCode.get('CTH')))}">
<th:block th:each="commonCode:${session.commonCode.get('CTH'+num)}">
<td th:if="${internationalCrimeArrest.violationType eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
</th:block>
<th:block th:if="${internationalCrimeArrest.violationType eq null || internationalCrimeArrest.violationType eq ''}">
<td></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('VLT')}">
<td th:if="${internationalCrimeArrest.violationType eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<td th:text="${internationalCrimeArrest.crimeName}"></td>
<td th:text="${internationalCrimeArrest.occurTable}"></td>
<td th:text="${internationalCrimeArrest.arrestTable}"></td>

View File

@ -33,11 +33,11 @@
</select>
</div>
<label class="col-sm-2 col-form-label text-center">관할서</label>
<div class="col-sm-2">
<div class="col-sm-2" id="departmentDiv">
<select class="form-select form-select-sm" name="department">
<option value="">선택</option>
<th:block th:each="organConfig:${organConfigList}">
<th:block th:if="${organConfig.parentOrgan ne null && organConfig.organType ne 'OGC002'}">
<th:block th:if="${organConfig.parentOrgan ne null && organConfig.organType ne 'OGC002' && organConfig.parentOrgan eq internationalCrimeArrest.organ}">
<option th:value="${organConfig.organCd}" th:text="${organConfig.organNm}" th:selected="${organConfig.organCd eq internationalCrimeArrest.department}"></option>
</th:block>
</th:block>
@ -65,9 +65,10 @@
<div class="col-sm-2">
<select class="form-select form-select-sm" name="violationType" id="violationType">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('VLT')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq internationalCrimeArrest.violationType}"></option>
<th:block th:each="num : ${#numbers.sequence(1,#lists.size(session.commonCode.get('CTH')))}">
<th:block th:if="${'CTH'+num == internationalCrimeArrest.crimeType}" th:each="commonCode:${session.commonCode.get('CTH'+num)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${internationalCrimeArrest.violationType eq commonCode.itemCd}"></option>
</th:block>
</th:block>
</select>
</div>

View File

@ -33,11 +33,14 @@
</div>
<label class="col-sm-2 col-form-label text-center">관할서</label>
<div class="col-sm-2">
<select class="form-select form-select-sm" name="department" disabled>
<option value="">선택</option>
<th:block th:each="organConfig:${organConfigList}">
<th:block th:if="${organConfig.parentOrgan ne null && organConfig.organType ne 'OGC002'}">
<div th:utext="${organConfig.organCd eq internationalCrimeArrest.department ? organConfig.organNm : ''}"></div>
<option th:value="${organConfig.organCd}" th:text="${organConfig.organNm}" th:selected="${organConfig.organCd eq internationalCrimeArrest.department}"></option>
</th:block>
</th:block>
</select>
</div>
<th:block th:if="${internationalCrimeArrest.crimeType ne 'CTH002'}">
<div class="col-sm-4 row" id="crimeNameDiv">
@ -52,7 +55,7 @@
<label class="col-sm-2 col-form-label text-center">범죄테마</label>
<div class="col-sm-2">
<select class="form-select form-select-sm" name="crimeType" id="crimeType" disabled>
<option value="">범죄테마</option>
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('CTH')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq internationalCrimeArrest.crimeType}"></option>
@ -62,10 +65,11 @@
<label class="col-sm-2 col-form-label text-center">위반유형</label>
<div class="col-sm-2">
<select class="form-select form-select-sm" name="violationType" id="violationType" disabled>
<option value="">위반유형</option>
<th:block th:each="commonCode:${session.commonCode.get('VLT')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq internationalCrimeArrest.violationType}"></option>
<option value="">선택</option>
<th:block th:each="num : ${#numbers.sequence(1,#lists.size(session.commonCode.get('CTH')))}">
<th:block th:if="${'CTH'+num == internationalCrimeArrest.crimeType}" th:each="commonCode:${session.commonCode.get('CTH'+num)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${internationalCrimeArrest.violationType eq commonCode.itemCd}"></option>
</th:block>
</th:block>
</select>
</div>

View File

@ -34,36 +34,40 @@
<br><br>
<div class="mb-3 row">
<label for="shipWeight" class="col-sm-2 col-form-label text-center">국제총톤 수</label>
<div class="col-sm-4">
<div class="col-sm-3">
<input type="number" class="form-control" id="shipWeight" name="shipWeight">
</div>
<label for="passengerCnt" class="col-sm-2 col-form-label text-center">여객</label>
<div class="col-sm-4">
<div class="col-sm-3">
<input type="number" class="form-control" id="passengerCnt" name="passengerCnt" placeholder="단위:명">
</div>
</div>
<div class="mb-1 row">
<label for="freightCnt" class="col-sm-2 col-form-label text-center">화물</label>
<div class="col-sm-4">
<div class="col-sm-3">
<input type="number" class="form-control" id="freightCnt" name="freightCnt" placeholder="단위:TEU">
</div>
</div>
<br><br>
<div class="mb-4 row">
<div class="mb-3 row">
<label for="ownerNm" class="col-sm-2 col-form-label text-center">사업자</label>
<div class="col-sm-4">
<div class="col-sm-3">
<input type="text" class="form-control" id="ownerNm" name="ownerNm">
</div>
<label for="shipNm" class="col-sm-2 col-form-label text-center">선명</label>
<div class="col-sm-4">
<div class="col-sm-3">
<input type="text" class="form-control" id="shipNm" name="shipNm">
</div>
</div>
<div class="mb-1 row">
<label for="operationCnt" class="col-sm-2 col-form-label text-center">운항횟수</label>
<div class="col-sm-4">
<div class="col-sm-3">
<input type="text" class="form-control" id="operationCnt" name="operationCnt" placeholder="ex:주0회(00H)">
</div>
</div>
<div class="mb-1 row">
<label for="closeYn" class="col-sm-2 col-form-label text-center">휴항</label>
<div class="col-sm-2">
<div class="col-sm-3">
<select class="form-select form-select-sm" id="closeYn" name="closeYn">
<option value="">선택</option>
<option value="O">O</option>
@ -74,7 +78,7 @@
<div class="mb-1 row">
<label for="description" class="col-sm-2 col-form-label text-center">비고</label>
<div class="col-sm-4">
<textarea id="description" name="description" rows="4" cols="50"></textarea>
<textarea id="description" name="description" rows="4" cols="65"></textarea>
</div>
</div>
</form>
@ -82,6 +86,10 @@
<div class="modal-footer justify-content-between">
<div class="col-auto">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
</div>
<div class="col-auto">
</div>
<div class="col-auto">
<button type="button" class="btn btn-primary" id="saveShipInfo">저장</button>
</div>
</div>

View File

@ -11,9 +11,8 @@
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row mx-0">
<div class="col-12 card text-center">
<div class="card text-center">
<div class="card-body">
<button id="goExcel">엑셀 다운</button>
<ul class="nav nav-tabs" id="userTab" role="tablist">
<li class="nav-item" role="presentation">
<button class="nav-link" th:classappend="${searchParams.siType eq 'KRCN'?' active':''}" id="krcnTab" data-bs-toggle="tab" type="button" role="tab">한-중 국제여객선 현황</button>
@ -33,7 +32,7 @@
<div class="card">
<div class="card-body">
<div class="row">
<table class="table table-striped">
<table class="table table-hover table-bordered">
<thead>
<tr>
<th>항로</th>
@ -46,7 +45,7 @@
<th>최종수정일</th>
</tr>
</thead>
<tbody>
<tbody class="table-group-divider">
<tr class="shipInfoTr" th:each="si:${shipInfoList}">
<th:block>
<input type="hidden" class="siSeq" th:value="${si.siSeq}">
@ -73,7 +72,10 @@
</tbody>
</table>
</div>
<div class="row justify-content-center">
<div class="row justify-content-between">
<div class="col-auto">
<button class="btn btn-success" id="goExcel">엑셀 다운</button>
</div>
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination">
@ -99,7 +101,6 @@
</ul>
</nav>
</div>
</div>
<div class="col-auto">
<input type="button" class="btn btn-primary" value="등록" id="addKRCN" th:if="${accessAuth != 'ACC001'} and ${searchParams.siType eq 'KRCN'}">
<input type="button" class="btn btn-primary" value="등록" id="addKRJPRU" th:if="${accessAuth != 'ACC001'} and ${searchParams.siType eq 'KRJPRU'}">
@ -111,6 +112,7 @@
</div>
</div>
</div>
</div>
</main>
<div class="modal fade" id="ipShipModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="userEditModalLabel" aria-hidden="true">

View File

@ -44,30 +44,34 @@
<br><br>
<div class="mb-3 row">
<label for="shipWeightM" class="col-sm-2 col-form-label text-center">국제총톤 수</label>
<div class="col-sm-4">
<div class="col-sm-3">
<input type="number" class="form-control" id="shipWeightM" name="shipWeight" th:value="${shipInfo.shipWeight}">
</div>
<label for="passengerCntM" class="col-sm-2 col-form-label text-center">여객</label>
<div class="col-sm-4">
<div class="col-sm-3">
<input type="number" class="form-control" id="passengerCntM" name="passengerCnt" th:value="${shipInfo.passengerCnt}" placeholder="단위:명">
</div>
</div>
<div class="mb-1 row">
<label for="freightCntM" class="col-sm-2 col-form-label text-center">화물</label>
<div class="col-sm-4">
<div class="col-sm-3">
<input type="number" class="form-control" id="freightCntM" name="freightCnt" th:value="${shipInfo.freightCnt}" placeholder="단위:TEU">
</div>
</div>
<br><br>
<div class="mb-4 row">
<label for="ownerNmM" class="col-sm-2 col-form-label text-center">사업자</label>
<div class="col-sm-4">
<div class="col-sm-3">
<input type="text" class="form-control" id="ownerNmM" name="ownerNm" th:value="${shipInfo.ownerNm}">
</div>
<label for="shipNmM" class="col-sm-2 col-form-label text-center">선명</label>
<div class="col-sm-4">
<div class="col-sm-3">
<input type="text" class="form-control" id="shipNmM" name="shipNm" th:value="${shipInfo.shipNm}">
</div>
</div>
<div class="mb-1 row">
<label for="operationCntM" class="col-sm-2 col-form-label text-center">운항횟수</label>
<div class="col-sm-4">
<div class="col-sm-3">
<input type="text" class="form-control" id="operationCntM" name="operationCnt" th:value="${shipInfo.operationCnt}" placeholder="ex:주0회(00H)">
</div>
</div>
@ -93,6 +97,10 @@
<div class="col-auto">
<button type="button" class="btn btn-secondary" id="btn-close" data-bs-dismiss="modal">닫기</button>
<button type="button" class="btn btn-danger" id="deleteShipInfo" th:if="${accessAuth eq 'ACC003'} or ${wrtUserSeq eq userSeq}">삭제</button>
</div>
<div class="col-auto">
</div>
<div class="col-auto">
<button type="button" class="btn btn-warning" id="updateShipInfo" th:if="${accessAuth eq 'ACC003'} or ${wrtUserSeq eq userSeq}">수정</button>
</div>
</div>

View File

@ -36,12 +36,12 @@
</div>
<div class="mb-3 row">
<label for="ogCd" class="col-sm-2 col-form-label text-center">터미널명</label>
<div class="col-sm-4">
<div class="col-sm-3">
<input type="text" class="form-control" id="terminalNm" name="terminalNm" placeholder="직접입력">
</div>
</div>
<br><br>
<h6>해경</h6>
<h6 class="text-center">해경</h6>
<div class="mb-3 row">
<label for="ogCd" class="col-sm-2 col-form-label text-center">근무방법</label>
<div class="col-sm-2">
@ -61,7 +61,8 @@
<input type="text" class="form-control" id="mpDescription" name="mpDescription">
</div>
</div>
<h6>육경</h6>
<br>
<h6 class="text-center">육경</h6>
<div class="mb-3 row">
<label for="ogCd" class="col-sm-2 col-form-label text-center">근무방법</label>
<div class="col-sm-2">
@ -123,6 +124,8 @@
<div class="modal-footer justify-content-between">
<div class="col-auto">
<button type="button" id="btn-close" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
</div>
<div class="col-auto">
<button type="button" class="btn btn-primary" id="savePartInfo">저장</button>
</div>
</div>

View File

@ -23,7 +23,7 @@
</li>
</ul>
<div class="row justify-content-start">
<div class="col-4">
<div class="col-5">
<div class="card">
<div class="card-body">
<div class="row">
@ -43,7 +43,7 @@
th:value="${partInfo.versionNo}"></td>
<td th:text="|${partInfo.wrtTitle} ${partInfo.wrtNm}|"></td>
<td
th:text="${#temporals.format(partInfo.wrtDt, 'yyyy-MM-dd')}"></td>
th:text="${#temporals.format(partInfo.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
</tr>
</tbody>
</table>
@ -51,69 +51,76 @@
</div>
</div>
</div>
<div class="col-8" id="valueDiv">
<div class="col-7" id="valueDiv">
<br>
<div class="mb-2 row">
<label for="ogCd" class="col-sm-2 col-form-label text-center">해경서</label>
<div class="col-sm-3">
<label for="ogCd" class="col-sm-3 col-form-label text-center">해경서</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="hMgtOrgan" readonly>
</div>
<label for="ofcCd" class="col-sm-2 col-form-label text-center">육경서</label>
<div class="col-sm-3">
</div>
<div class="mb-2 row">
<label for="ofcCd" class="col-sm-3 col-form-label text-center">육경서</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="hLandPolice" readonly>
</div>
</div>
<div class="mb-2 row">
<label for="ogCd" class="col-sm-2 col-form-label text-center">담당자</label>
<div class="col-sm-3">
<label for="ogCd" class="col-sm-3 col-form-label text-center">담당자</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="hPiUserSeq" readonly>
</div>
</div>
<div class="mb-3 row">
<label for="ogCd" class="col-sm-2 col-form-label text-center">터미널명</label>
<div class="col-sm-4">
<label for="ogCd" class="col-sm-3 col-form-label text-center">터미널명</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="hTerminalNm" readonly>
</div>
</div>
<br>
<h6>해경</h6>
<h6 class="text-center">해경</h6>
<div class="mb-3 row">
<label for="ogCd" class="col-sm-2 col-form-label text-center">근무방법</label>
<div class="col-sm-3">
<label for="ogCd" class="col-sm-3 col-form-label text-center">근무방법</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="hMpWorkType" readonly>
</div>
<label for="ofcCd" class="col-sm-2 col-form-label text-center">인원수</label>
<div class="col-sm-3">
</div>
<div class="mb-1 row">
<label for="ofcCd" class="col-sm-3 col-form-label text-center">인원수</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="hMpPeopleCnt" readonly>
</div>
</div>
<div class="mb-3 row">
<label for="ofcCd" class="col-sm-2 col-form-label text-center">비고</label>
<div class="col-sm-4">
<label for="ofcCd" class="col-sm-3 col-form-label text-center">비고</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="hMpDescription"
readonly>
</div>
</div>
<h6>육경</h6>
<h6 class="text-center">육경</h6>
<div class="mb-3 row">
<label for="ogCd" class="col-sm-2 col-form-label text-center">근무방법</label>
<div class="col-sm-3">
<label for="ogCd" class="col-sm-3 col-form-label text-center">근무방법</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="hPlWorkType" readonly>
</div>
<label for="ofcCd" class="col-sm-2 col-form-label text-center">인원수</label>
<div class="col-sm-3">
</div>
<div class="mb-3 row">
<label for="ofcCd" class="col-sm-3 col-form-label text-center">인원수</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="hPlPeopleCnt" readonly>
</div>
</div>
<div class="mb-3 row">
<label for="ofcCd" class="col-sm-2 col-form-label text-center">비고</label>
<div class="col-sm-4">
<label for="ofcCd" class="col-sm-3 col-form-label text-center">비고</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="hPlDescription"
readonly>
</div>
</div>
<br>
<div class="mb-3 row">
<label for="ofcCd" class="col-sm-2 col-form-label text-center">임차료</label>
<label for="ofcCd" class="col-sm-3 col-form-label text-center">임차료</label>
<div class="col-sm-3">
<input type="text" class="form-control" id="hRentType" readonly>
</div>
@ -122,7 +129,7 @@
</div>
</div>
<div class="mb-3 row">
<label for="ofcCd" class="col-sm-2 col-form-label text-center">공공요금</label>
<label for="ofcCd" class="col-sm-3 col-form-label text-center">공공요금</label>
<div class="col-sm-3">
<input type="text" class="form-control" id="hUtilityType" readonly>
</div>
@ -133,7 +140,7 @@
</div>
<div class="mb-3 row">
<label for="ofcCd" class="col-sm-2 col-form-label text-center">업로드파일</label>
<div class="col-sm-8" id="historyFile"></div>
<div class="col-sm-10" id="historyFile"></div>
</div>
</div>
</div>

View File

@ -16,19 +16,20 @@
<form id="searchFm" method="get" th:action="@{/target/partInfoList}">
<input type="hidden" name="excel">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between pe-3 py-1">
<div class="col-auto">
<div class="row pe-3 py-1">
<div class="col-1">
<select class="form-select" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
</th:block>
</select>
</div>
<div class="col-10">
<div class="col-auto">
<div class="row justify-content-end">
<div class="col-auto">
<select class="form-select form-select-sm" name="mgtOrgan">
<option value="">-해경서 선택-</option>
<option value="">해경서</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.mgtOrgan}"></option>
@ -55,21 +56,9 @@
</th:block>
</select>
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" name="terminalNm" th:value="${searchParams.terminalNm}" placeholder="터미널명">
</div>
<input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">
</div>
</div>
</div>
<div class="row justify-content-between py-1">
<div class="col-auto">
<div class="row justify-content-end">
<div class="col-auto">
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" name="terminalNm" th:value="${searchParams.terminalNm}" placeholder="터미널명">
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="최종수정일" autocomplete="off" readonly th:value="${searchParams.startDate}">
@ -77,6 +66,11 @@
</div>
</div>
</div>
</div>
<div class="col-1 d-grid gap-2">
<input type="submit" class="btn btn-lg btn-primary col-auto" id="searchBtn" value="검색">
</div>
</div>
</form>
<div class="row justify-content-start">
<div class="col-12">
@ -85,7 +79,7 @@
<div class="row">
<input type="hidden" id="selectedKey">
<input type="hidden" id="selectedVerNo">
<table class="table table-striped">
<table class="table table-hover table-bordered">
<thead>
<tr>
<th rowspan="3">해경서</th>
@ -125,7 +119,7 @@
<th>비고</th>
</tr>
</thead>
<tbody>
<tbody class="table-group-divider">
<tr class="partInfoTr" th:each="pi:${partInfoList}">
<th:block>
<input type="hidden" class="piSeq" th:value="${pi.piSeq}">
@ -150,7 +144,10 @@
</tbody>
</table>
</div>
<div class="row justify-content-center">
<div class="row justify-content-between">
<div class="col-auto">
<button class="btn btn-success" id="goExcel">엑셀다운</button>
</div>
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination">
@ -175,10 +172,9 @@
</th:block>
</ul>
</nav>
<div class="col-auto">
<input type="button" class="btn btn-success" value="등록" id="addPartInfo" th:unless="${accessAuth eq 'ACC001'}">
<button id="goExcel">엑셀다운</button>
</div>
<div class="col-auto">
<input type="button" class="btn btn-primary" value="등록" id="addPartInfo" th:unless="${accessAuth eq 'ACC001'}">
</div>
</div>
</div>

View File

@ -19,6 +19,7 @@
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<input type="hidden" name="piSeq" th:value="${partInfo.piSeq}">
<input type="hidden" name="versionNo" th:value="${partInfo.versionNo}">
<br>
<div class="mb-2 row">
<label for="ogCd" class="col-sm-2 col-form-label text-center">해경서</label>
<div class="col-sm-3">
@ -49,12 +50,12 @@
</div>
<div class="mb-3 row">
<label for="ogCd" class="col-sm-2 col-form-label text-center">터미널명</label>
<div class="col-sm-4">
<div class="col-sm-3">
<input type="text" class="form-control" id="mTerminalNm" name="terminalNm" th:value="${partInfo.terminalNm}" placeholder="직접입력">
</div>
</div>
<br><br>
<h6>해경</h6>
<h5 class="text-center">해경</h5>
<div class="mb-3 row">
<label for="ogCd" class="col-sm-2 col-form-label text-center">근무방법</label>
<div class="col-sm-2">
@ -74,7 +75,8 @@
<input type="text" class="form-control" id="mpDescription" name="mpDescription" th:value="${partInfo.mpDescription}">
</div>
</div>
<h6>육경</h6>
<br>
<h5 class="text-center">육경</h5>
<div class="mb-3 row">
<label for="ogCd" class="col-sm-2 col-form-label text-center">근무방법</label>
<div class="col-sm-2">
@ -146,7 +148,9 @@
<div class="col-auto">
<button type="button" class="btn btn-secondary" id="btn-close" data-bs-dismiss="modal">닫기</button>
<button type="button" class="btn btn-danger" id="deletePartInfo" th:if="${accessAuth eq 'ACC003'} or ${wrtUserSeq eq userSeq}">삭제</button>
<button type="button" class="btn btn-primary" id="updatePartInfo" th:if="${accessAuth eq 'ACC003'} or ${wrtUserSeq eq userSeq}">수정</button>
</div>
<div class="col-auto">
<button type="button" class="btn btn-warning" id="updatePartInfo" th:if="${accessAuth eq 'ACC003'} or ${wrtUserSeq eq userSeq}">수정</button>
</div>
</div>
</html>

View File

@ -76,9 +76,13 @@
</div>
</form>
</div>
<div class="modal-footer">
<div class="modal-footer justify-content-between">
<div class="col-auto">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
<button type="button" class="btn btn-primary" id="saveBtn">저장</button>
</div>
<div class="col-auto">
<button type="button" class="btn btn-primary" id="temporarySaveBtn">임시저장</button>
<button type="button" class="btn btn-primary" id="saveBtn">저장</button>
</div>
</div>
</html>

View File

@ -24,7 +24,7 @@
</th:block>
</select>
</div>
<input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">
<input type="submit" class="btn btn-sm btn-primary col-auto display-none" id="searchBtn" value="검색">
</div>
</form>
<div class="row justify-content-start">
@ -34,7 +34,7 @@
<div class="row">
<input type="hidden" id="selectedKey">
<input type="hidden" id="selectedVerNo">
<table class="table table-striped">
<table class="table table-hover table-bordered">
<thead>
<tr>
<th rowspan="2">외사<br>터미널명</th>
@ -54,9 +54,9 @@
<th>기타</th>
</tr>
</thead>
<tbody>
<tbody class="table-group-divider">
<tr class="partWorkTr" th:each="pw:${partWorkList}">
<th:block th:if="${pw.saveYn eq 'N'} and ${pw.wrtNm eq uesrId}">
<th:block th:if="${pw.saveYn eq 'N'} and ${pw.wrtUserSeq eq uesrSeq}">
<th:block>
<input type="hidden" class="pwSeq" th:value="${pw.pwSeq}">
<input type="hidden" class="piSeq" th:value="${pw.piSeq}">
@ -100,7 +100,10 @@
</tbody>
</table>
</div>
<div class="row justify-content-center">
<div class="row justify-content-between">
<div class="col-auto">
<button class="btn btn-success" id="goExcel">엑셀다운</button>
</div>
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination">
@ -125,10 +128,9 @@
</th:block>
</ul>
</nav>
<div class="col-auto">
<input type="button" class="btn btn-success" value="등록" id="addPartWork" th:unless="${accessAuth eq 'ACC001'}">
<button id="goExcel">엑셀다운</button>
</div>
<div class="col-auto">
<input type="button" class="btn btn-primary" value="등록" id="addPartWork" th:unless="${accessAuth eq 'ACC001'}">
</div>
</div>
</div>

View File

@ -82,13 +82,15 @@
</div>
</form>
</div>
<div class="modal-footer">
<div class="modal-footer justify-content-between">
<div class="col-auto">
<button type="button" class="btn btn-secondary" id="btn-close" data-bs-dismiss="modal">닫기</button>
<th:block th:if="${userId eq pwInfo.wrtNm} or ${accessAuth eq 'ACC003'}">
<button type="button" class="btn btn-danger" id="deletePartWork">삭제</button>
</th:block>
</div>
<th:block th:if="${userId eq pwInfo.wrtNm} or ${accessAuth eq 'ACC003'}"><!--작성자 관리자일 경우 수정 허용-->
<button type="button" class="btn btn-primary" id="updateBtn">수정</button>
<button type="button" class="btn btn-warning" id="updateBtn">수정</button>
</th:block>
</div>
</html>

View File

@ -22,7 +22,7 @@
<input type="hidden" name="wrtNm" th:value="${info.wrtNm}">
<div class="mb-3 row">
<label for="ogCd" class="col-sm-2 col-form-label text-center">경찰서</label>
<div class="col-sm-3">
<div class="col-sm-10">
<select class="form-select form-select-sm" id="mgtOrgan" name="mgtOrgan" th:disabled="${accessAuth ne 'ACC003'}">
<option value="">선택</option>
<th:block th:each="organList:${organList}">
@ -38,13 +38,13 @@
</div>
<div class="mb-3 row">
<label for="ogCd" class="col-sm-2 col-form-label text-center">취약지명</label>
<div class="col-sm-4">
<div class="col-sm-10">
<input type="text" class="form-control" id="vulnNm" name="vulnNm" th:value="${info.vulnNm}" placeholder="직접입력">
</div>
</div>
<div class="mb-3 row">
<label for="ogCd" class="col-sm-2 col-form-label text-center">취약등급</label>
<div class="col-sm-3">
<div class="col-sm-10">
<select class="form-select form-select-sm" id="vulnType" name="vulnType">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('VULNT')}">
@ -55,7 +55,7 @@
</div>
<div class="mb-3 row">
<label for="ogCd" class="col-sm-2 col-form-label text-center">비고</label>
<div class="col-sm-4">
<div class="col-sm-10">
<input type="text" class="form-control" id="description" name="description" th:value="${info.description}">
</div>
</div>
@ -76,19 +76,19 @@
</div>
<input type="file" class="d-none" id="fileInputer" multiple>
</div>
</form>
</div>
<div class="modal-footer justify-content-between">
<div class="col-auto">
<th:block th:if="${info.vulnKey eq null}">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
</div>
<div class="col-auto">
<th:block th:if="${info.vulnKey eq null}">
<button type="button" class="btn btn-primary" id="saveVuln">저장</button>
</th:block>
<th:block th:unless="${info.vulnKey eq null}">
<button type="button" id="btn-close" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
<button type="button" class="btn btn-danger" id="deleteVuln" th:if="${accessAuth eq 'ACC003'} or ${info.wrtUserSeq eq userSeq}">삭제</button>
<button type="button" class="btn btn-primary" id="updateVuln" th:if="${accessAuth eq 'ACC003'} or ${info.wrtUserSeq eq userSeq}">수정</button>
<button type="button" class="btn btn-warning" id="updateVuln" th:if="${accessAuth eq 'ACC003'} or ${info.wrtUserSeq eq userSeq}">수정</button>
</th:block>
</div>
</div>

View File

@ -11,7 +11,7 @@
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row mx-0">
<div class="col-12 card text-center">
<div class="col-12 text-center">
<div class="card-body">
<form method="get" th:action="@{/userMgt/userMgtPage}">
<input type="hidden" name="userStatus" id="userStatus" >
@ -24,10 +24,9 @@
</form>
<div class="row justify-content-start">
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="row">
<table class="table table-striped">
<table class="table table-hover table-bordered">
<thead>
<tr>
<th rowspan="2">구분</th>
@ -40,7 +39,7 @@
<th>C급</th>
</tr>
</thead>
<tbody>
<tbody class="table-group-divider">
<tr class="" th:each="vuln:${vulnerableList}">
<td class="table_id" th:text="${vuln.gubun}"></td>
<td id="infoModal" style="color: blue; cursor:pointer;" th:data-mgtOrgan="${vuln.item_cd}" th:text="${vuln.item_value}"></td>
@ -52,7 +51,7 @@
</table>
</div>
<div class="col-auto">
<input type="button" class="btn btn-success" value="작성" id="addVuln" th:unless="${accessAuth eq 'ACC001'}">
<input type="button" class="btn btn-primary" value="등록" id="addVuln" th:unless="${accessAuth eq 'ACC001'}">
</div>
<div class="row justify-content-center">
</div>
@ -62,7 +61,6 @@
</div>
</div>
</div>
</div>
</main>
<div class="modal fade" id="vulnEditModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="userEditModalLabel" aria-hidden="true">

View File

@ -9,10 +9,10 @@
</li>
</ul>
<div class="card-body">
<button id="showMenu">검색조건열기</button>
<button id="fieldDownExcel">엑셀다운</button>
<button class="btn btn-primary" id="showMenu">검색조건열기</button>
<button class="btn btn-success" id="fieldDownExcel">엑셀다운</button>
<div class="row" id="statisticsDiv">
<table class="table table-hover table-bordered border-dark"
<table class="table table-hover table-bordered"
id="tableData">
<thead>
<tr>
@ -66,7 +66,7 @@
</th:block>
</tr>
</thead>
<tbody>
<tbody class="table-group-divider">
<th:block th:each="total:${totalList}">
<tr>
<td th:text="${total.itemValue}"></td>

View File

@ -9,11 +9,10 @@
</li>
</ul>
<div class="card-body">
<button id="showMenu">검색조건열기</button>
<button id="ratingDownExcel">엑셀다운</button>
<button class="btn btn-primary" id="showMenu">검색조건열기</button>
<button class="btn btn-success" id="ratingDownExcel">엑셀다운</button>
<div class="row" id="statisticsDiv">
<table class="table table-hover table-bordered border-dark"
id="tableData">
<table class="table table-hover table-bordered" id="tableData">
<thead>
<tr>
<th rowspan="2">구분</th>
@ -42,7 +41,7 @@
</th:block>
</tr>
</thead>
<tbody>
<tbody class="table-group-divider">
<th:block th:each="total:${totalList}">
<tr>
<td th:text="${total.itemValue}"></td>

View File

@ -56,7 +56,7 @@
<body class="d-flex flex-column h-100">
<header th:replace="fragments/header :: headerFragment"></header>
<div sec:authorize="isAnonymous()" layout:fragment="content"></div>
<div sec:authorize="isAuthenticated()" class="row h-100 mx-0">
<div sec:authorize="isAuthenticated()" class="row mx-0">
<div class="col-2 border-end">
<div th:replace="fragments/leftMenu :: leftMenuFragment"></div>
</div>

View File

@ -16,19 +16,19 @@
<form id="searchFm" method="get" th:action="@{/translator/info}">
<input type="hidden" name="excel">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between pe-3 py-1">
<div class="col-auto">
<div class="row pe-3 py-1">
<div class="col-1">
<select class="form-select" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<div class="row justify-content-end">
<div class="col-10">
<div class="row justify-content-end pb-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="dmlYn">
<option value="">-해촉 선택-</option>
<option value="">해촉 선택</option>
<option value="O" th:selected="${'O' eq searchParams.dmlYn}">O</option>
<option value="X" th:selected="${'X' eq searchParams.dmlYn}">X</option>
</select>
@ -52,17 +52,7 @@
</select>
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" name="trName" th:value="${searchParams.trName}" placeholder="성명">
</div>
<input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">
</div>
</div>
</div>
<div class="row justify-content-between py-1">
<div class="col-auto">
<div class="row justify-content-end">
<div class="col-auto">
<select class="form-select form-select-sm" id="trVisa" name="trVisa">
<select class="form-select form-select-sm" name="trVisa">
<option value="">비자 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('VISA')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.trVisa}"></option>
@ -70,18 +60,27 @@
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" id="trNny" name="trNny">
<select class="form-select form-select-sm" name="trNny">
<option value="">국적선택</option>
<th:block th:each="commonCode:${session.commonCode.get('NNY')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.trNny}"></option>
</th:block>
</select>
</div>
</div>
<div class="row justify-content-end">
<div class="col-auto">
<input type="text" class="form-control" id="aptDt" name="aptDt" th:value="${searchParams.aptDt}" placeholder="위촉일">
<input type="text" class="form-control form-select-sm" name="trName" th:value="${searchParams.trName}" placeholder="성명">
</div>
<div class="col-auto">
<input type="text" class="form-control form-select-sm" name="aptDt" th:value="${searchParams.aptDt}" placeholder="위촉일" readonly>
</div>
</div>
</div>
<div class="col-1 d-grid gap-2">
<input type="submit" class="btn btn-lg btn-primary col-auto" id="searchBtn" value="검색">
</div>
</div>
</form>
<div class="row justify-content-start">
@ -91,7 +90,7 @@
<div class="row">
<input type="hidden" id="selectedKey">
<input type="hidden" id="selectedVerNo">
<table class="table table-striped">
<table class="table table-hover table-bordered">
<thead>
<tr>
<th>연번</th>
@ -110,7 +109,7 @@
<th>연락처</th>
</tr>
</thead>
<tbody>
<tbody class="table-group-divider">
<tr class="userInfoTr" data-bs-toggle="dropdown" aria-expanded="false" th:each="trInfo:${translatorList}">
<input type="hidden" class="trKey" th:value="${trInfo.translatorKey}">
<input type="hidden" class="verNo" th:value="${trInfo.versionNo}">
@ -139,7 +138,10 @@
</tbody>
</table>
</div>
<div class="row justify-content-center">
<div class="row justify-content-between">
<div class="col-auto">
<button id="goExcel" class="btn btn-success">엑셀다운</button>
</div>
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination">
@ -164,10 +166,9 @@
</th:block>
</ul>
</nav>
<div class="col-auto">
<button data-bs-toggle="modal" data-bs-target="#translatorInsertModal" th:unless="${accessAuth eq 'ACC001'}">등록</button>
<button id="goExcel">엑셀다운</button>
</div>
<div class="col-auto">
<button data-bs-toggle="modal" class="btn btn-primary" data-bs-target="#translatorInsertModal" th:unless="${accessAuth eq 'ACC001'}">등록</button>
</div>
</div>
</div>
@ -186,13 +187,15 @@
<h5 class="modal-title" id="translatorInsertModalLabel">통역인 등록</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<form id="translatorInsert" action="#" method="post">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<br>
<div class="mb-3 row">
<label for="ogCd" class="col-sm-2 col-form-label text-center">관서</label>
<div class="col-sm-2">
<select class="form-select form-select-sm" id="ogdp1" name="ogdp1" th:disabled="${accessAuth ne 'ACC003'}">
<label for="ogdp1" class="col-sm-1 col-form-label text-center fsw-13">관서</label>
<div class="col-sm-3">
<select class="form-select" id="ogdp1" name="ogdp1" th:disabled="${accessAuth ne 'ACC003'}">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
@ -201,56 +204,56 @@
</th:block>
</select>
</div>
<label for="ofcCd" class="col-sm-1 col-form-label text-center">언어</label>
<div class="col-sm-2">
<select class="form-select form-select-sm" id="lang" name="trLang">
<label for="lang" class="col-sm-1 col-form-label text-center fsw-13">언어</label>
<div class="col-sm-3">
<select class="form-select" id="lang" name="trLang">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('LGG')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
</th:block>
</select>
</div>
<label for="ofcCd" class="col-sm-1 col-form-label text-center">경력</label>
<div class="col-sm-4">
<label for="trCareer" class="col-sm-1 col-form-label text-center fsw-13">경력</label>
<div class="col-sm-3">
<input type="text" class="form-control" id="trCareer" name="trCareer">
</div>
</div>
<div class="mb-3 row">
<label for="ogCd" class="col-sm-2 col-form-label text-center">성명</label>
<div class="col-sm-2">
<label for="trName" class="col-sm-1 col-form-label text-center fsw-13">성명</label>
<div class="col-sm-3">
<input type="text" class="form-control" id="trName" name="trName">
</div>
<label for="ofcCd" class="col-sm-1 col-form-label text-center">성별</label>
<div class="col-sm-2">
<select class="form-select form-select-sm" name="trSex">
<label for="trSex" class="col-sm-1 col-form-label text-center fsw-13">성별</label>
<div class="col-sm-3">
<select class="form-select" id="trSex" name="trSex">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('SEX')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
</th:block>
</select>
</div>
<label for="ofcCd" class="col-sm-1 col-form-label text-center">연락처</label>
<div class="col-sm-4">
<label for="trPhone" class="col-sm-1 col-form-label text-center fsw-13">연락처</label>
<div class="col-sm-3">
<input type="text" class="form-control" id="trPhone" name="trPhone">
</div>
</div>
<div class="mb-3 row">
<label for="ogCd" class="col-sm-2 col-form-label text-center">국적</label>
<div class="col-sm-2">
<select class="form-select form-select-sm" id="trNny" name="trNny">
<label for="trNny" class="col-sm-1 col-form-label text-center fsw-13">국적</label>
<div class="col-sm-3">
<select class="form-select" id="trNny" name="trNny">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('NNY')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
</th:block>
</select>
</div>
<label for="ofcCd" class="col-sm-1 col-form-label text-center">나이</label>
<div class="col-sm-2">
<label for="trAge" class="col-sm-1 col-form-label text-center fsw-13">나이</label>
<div class="col-sm-3">
<input type="text" class="form-control" id="trAge" name="trAge">
</div>
<label for="ofcCd" class="col-sm-1 col-form-label text-center">학력</label>
<div class="col-sm-4">
<select class="form-select form-select-sm" name="trEdu">
<label for="trEdu" class="col-sm-1 col-form-label text-center fsw-13">학력</label>
<div class="col-sm-3">
<select class="form-select" id="trEdu" name="trEdu">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('EDU')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
@ -259,41 +262,41 @@
</div>
</div>
<div class="mb-3 row">
<label for="ogCd" class="col-sm-2 col-form-label text-center">자격증</label>
<div class="col-sm-2">
<label for="trCft" class="col-sm-1 col-form-label text-center fsw-13">자격증</label>
<div class="col-sm-3">
<input type="text" class="form-control" id="trCft" name="trCft">
</div>
<label for="ofcCd" class="col-sm-1 col-form-label text-center">비자</label>
<div class="col-sm-2">
<select class="form-select form-select-sm" id="trVisa" name="trVisa">
<label for="trVisa" class="col-sm-1 col-form-label text-center fsw-13">비자</label>
<div class="col-sm-3">
<select class="form-select" id="trVisa" name="trVisa">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('VISA')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
</th:block>
</select>
</div>
<label for="ofcCd" class="col-sm-1 col-form-label text-center">위촉일</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="aptDt" name="aptDt">
<label for="aptDt" class="col-sm-1 col-form-label text-center fsw-13">위촉일</label>
<div class="col-sm-3">
<input type="text" class="form-control" id="aptDt" name="aptDt" readonly>
</div>
</div>
<div class="mb-3 row">
<label for="ogCd" class="col-sm-2 col-form-label text-center">해촉</label>
<div class="col-sm-2">
<select class="form-select form-select-sm" id="dmlYn" name="dmlYn">
<div class="mb-2 row">
<label for="dmlYn" class="col-sm-1 col-form-label text-center fsw-13">해촉</label>
<div class="col-sm-3">
<select class="form-select" id="dmlYn" name="dmlYn">
<option value="">선택</option>
<option value="O">O</option>
<option value="X">X</option>
</select>
</div>
</div>
<div class="mb-3 row">
<label for="tel" class="col-sm-2 col-form-label text-center">비고</label>
<div class="col-sm-4">
<textarea class="form-control" id="remark" name="remark"></textarea>
<label for="remark" class="col-sm-1 col-form-label text-center fsw-13">비고</label>
<div class="col-sm-7">
<input type="text" class="form-control" id="remark" name="remark">
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal" id="closeModalBtn">닫기</button>
<button type="button" class="btn btn-primary" id="saveBtn">등록</button>
@ -333,7 +336,7 @@
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="tab-content border border-top-0" id="careerView">
<div class="tab-content" id="careerView">
</div>
</div>
</div>

View File

@ -1,6 +1,5 @@
<!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
<main class="pt-3">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row mx-0">
@ -27,5 +26,4 @@
</div>
</div>
</div>
</main>
</html>

View File

@ -6,13 +6,18 @@
<div class="col-12 card">
<div class="card-body">
<div class="row justify-content-start">
<h6>통역인이름</h6>
<div class="mb-3 row">
<label class="col-sm-2 col-form-label text-center">통역인이름</label>
<div class="col-sm-2">
<input type="text" class="form-control text-center" th:value="${trName}">
</div>
</div>
<div class="card">
<div class="card-body">
<div class="row">
<h5>해양경찰청 이력</h5>
<input type="hidden" id="tcmKey" th:value="${trKey}">
<table class="table table-striped" id="categoryTable">
<table class="table table-hover table-bordered" id="categoryTable">
<thead>
<tr>
<th>연번</th>
@ -22,20 +27,20 @@
<th></th>
</tr>
</thead>
<tbody class="overflow-scroll">
<tr class="" th:each="crrInfo:${policeCrr}">
<td th:text="${crrInfo.careerSeq}"></td>
<td th:text="${crrInfo.tcDt}"></td>
<tbody class="overflow-scroll table-group-divider text-center">
<tr class="" th:each="crrInfo,i:${policeCrr}">
<td th:text="${policeCrr.size()-i.index}"></td>
<td th:text="${crrInfo.tcDt}"></td>
<td th:text="${crrInfo.contents}"></td>
<td th:text="${crrInfo.remark}"></td>
<td><button type="button" class="btn btn-danger m-0" id="deleteCareerBtn" th:onclick="|javascript:deleteCareerBtn('${crrInfo.careerSeq}','${crrInfo.translatorKey}')|" th:if="${accessAuth eq 'ACC003'} or ${wrtId eq userId}">삭제</button></td>
<td><button type="button" class="btn btn-danger m-0" id="deleteCareerBtn" th:onclick="|javascript:deleteCareerBtn('${crrInfo.careerSeq}','${crrInfo.translatorKey}')|" th:if="${accessAuth eq 'ACC003'} or ${wrtUserSeq eq userSeq}">삭제</button></td>
</tr>
</tbody>
</table>
</div>
<div class="row">
<h5>타기관 이력</h5>
<table class="table table-striped" id="categoryTable">
<table class="table table-hover table-bordered text-center" id="categoryTable">
<thead>
<tr>
<th>연번</th>
@ -45,13 +50,13 @@
<th></th>
</tr>
</thead>
<tbody class="overflow-scroll">
<tr class="" th:each="crrInfo:${anotherCrr}">
<td th:text="${crrInfo.careerSeq}"></td>
<tbody class="overflow-scroll table-group-divider">
<tr class="" th:each="crrInfo,i:${anotherCrr}">
<td th:text="${anotherCrr.size()-i.index}"></td>
<td th:text="${crrInfo.tcDt}"></td>
<td th:text="${crrInfo.contents}"></td>
<td th:text="${crrInfo.remark}"></td>
<td><button type="button" class="btn btn-danger m-0" id="deleteCareerBtn" th:onclick="|javascript:deleteCareerBtn('${crrInfo.careerSeq}','${crrInfo.translatorKey}')|" th:if="${accessAuth eq 'ACC003'} or ${wrtId eq userId}">삭제</button></td>
<td><button type="button" class="btn btn-danger m-0" id="deleteCareerBtn" th:onclick="|javascript:deleteCareerBtn('${crrInfo.careerSeq}','${crrInfo.translatorKey}')|" th:if="${accessAuth eq 'ACC003'} or ${wrtUserSeq eq userSeq}">삭제</button></td>
</tr>
</tbody>
</table>
@ -60,7 +65,7 @@
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" id="crrInsertBtn" th:if="${accessAuth eq 'ACC003'} or ${wrtId eq userId}">이력등록</button>
<button type="button" class="btn btn-primary" id="crrInsertBtn" th:if="${accessAuth eq 'ACC003'} or ${wrtUserSeq eq userSeq}">이력등록</button>
</div>
</div>
</div>

View File

@ -1,73 +1,74 @@
<!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
<div class="modal-dialog modal-lg">
<div class="modal-content ">
<form id="trInfoUpdate" method="post">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<input type="hidden" class="translatorKey" name="translatorKey" th:value="${trInfo.translatorKey}"/>
<input type="hidden" class="versionNo" name="versionNo" th:value="${trInfo.versionNo}"/>
<br>
<div class="pl-15">
<div class="mb-3 row">
<div class="mb-3 row">
<label for="ogCd" class="col-sm-2 col-form-label text-center">관서</label>
<label for="eOgdp1" class="col-sm-1 col-form-label text-center">관서</label>
<div class="col-sm-2">
<select class="form-select form-select-sm" id="eOgdp1" name="ogdp1" th:disabled="${accessAuth ne 'ACC003'}">
<select class="form-select" id="eOgdp1" name="ogdp1" th:disabled="${accessAuth ne 'ACC003'}">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd} == ${trInfo.ogdp1}"></option>
</th:block>
</th:block>
</select>
</div>
<label for="ofcCd" class="col-sm-1 col-form-label text-center">언어</label>
<label for="eTrLang" class="col-sm-1 col-form-label text-center">언어</label>
<div class="col-sm-2">
<select class="form-select form-select-sm" id="trLang" name="trLang">
<select class="form-select" id="eTrLang" name="trLang">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('LGG')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd} == ${trInfo.trLang}"></option>
</th:block>
</select>
</div>
<label for="ofcCd" class="col-sm-1 col-form-label text-center">경력</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="trCareer" name="trCareer" th:value="${trInfo.trCareer}">
<label for="eTrCareer" class="col-sm-1 col-form-label text-center">경력</label>
<div class="col-sm-2">
<input type="text" class="form-control" id="eTrCareer" name="trCareer" th:value="${trInfo.trCareer}">
</div>
</div>
<div class="mb-3 row">
<label for="ogCd" class="col-sm-2 col-form-label text-center">성명</label>
<label for="eTrEname" class="col-sm-1 col-form-label text-center">성명</label>
<div class="col-sm-2">
<input type="text" class="form-control" id="trEname" name="trName" th:value="${trInfo.trName}">
<input type="text" class="form-control" id="eTrEname" name="trName" th:value="${trInfo.trName}">
</div>
<label for="ofcCd" class="col-sm-1 col-form-label text-center">성별</label>
<label for="eTrSex" class="col-sm-1 col-form-label text-center">성별</label>
<div class="col-sm-2">
<select class="form-select form-select-sm" name="trSex">
<select class="form-select" id="eTrSex" name="trSex">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('SEX')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd} == ${trInfo.trSex}"></option>
</th:block>
</select>
</div>
<label for="ofcCd" class="col-sm-1 col-form-label text-center">연락처</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="trPhone" name="trPhone" th:value="${trInfo.trPhone}">
<label for="eTrPhone" class="col-sm-1 col-form-label text-center">연락처</label>
<div class="col-sm-2">
<input type="text" class="form-control" id="eTrPhone" name="trPhone" th:value="${trInfo.trPhone}">
</div>
</div>
<div class="mb-3 row">
<label for="ogCd" class="col-sm-2 col-form-label text-center">국적</label>
<label for="eTrNny" class="col-sm-1 col-form-label text-center">국적</label>
<div class="col-sm-2">
<select class="form-select form-select-sm" name="trNny">
<select class="form-select" id="eTrNny" name="trNny">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('NNY')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd} == ${trInfo.trNny}"></option>
</th:block>
</select>
</div>
<label for="ofcCd" class="col-sm-1 col-form-label text-center">나이</label>
<label for="eTrAge" class="col-sm-1 col-form-label text-center">나이</label>
<div class="col-sm-2">
<input type="text" class="form-control" id="trAge" name="trAge" th:value="${trInfo.trAge}">
<input type="text" class="form-control" id="eTrAge" name="trAge" th:value="${trInfo.trAge}">
</div>
<label for="ofcCd" class="col-sm-1 col-form-label text-center">학력</label>
<div class="col-sm-4">
<select class="form-select form-select-sm" name="trEdu">
<label for="eTrEdu" class="col-sm-1 col-form-label text-center">학력</label>
<div class="col-sm-2">
<select class="form-select" id="eTrEdu" name="trEdu">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('EDU')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd} == ${trInfo.trEdu}"></option>
@ -76,46 +77,43 @@
</div>
</div>
<div class="mb-3 row">
<label for="ogCd" class="col-sm-2 col-form-label text-center">자격증</label>
<label for="eTrCft" class="col-sm-1 col-form-label text-center">자격증</label>
<div class="col-sm-2">
<input type="text" class="form-control" id="trCft" name="trCft" th:value="${trInfo.trCft}">
<input type="text" class="form-control" id="eTrCft" name="trCft" th:value="${trInfo.trCft}">
</div>
<label for="ofcCd" class="col-sm-1 col-form-label text-center">비자</label>
<label for="eTrVisa" class="col-sm-1 col-form-label text-center">비자</label>
<div class="col-sm-2">
<select class="form-select form-select-sm" name="trVisa">
<select class="form-select" id="eTrVisa" name="trVisa">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('VISA')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd} == ${trInfo.trVisa}"></option>
</th:block>
</select>
</div>
<label for="ofcCd" class="col-sm-1 col-form-label text-center">위촉일</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="viewAptDt" name="aptDt" th:value="${trInfo.aptDt}">
</div>
</div>
<label for="ogCd" class="col-sm-2 col-form-label text-center">해촉</label>
<label for="viewAptDt" class="col-sm-1 col-form-label text-center">위촉일</label>
<div class="col-sm-2">
<select class="form-select form-select-sm" name="dmlYn">
<input type="text" class="form-control" id="viewAptDt" name="aptDt" th:value="${trInfo.aptDt}" readonly>
</div>
</div>
<div class="mb-2 row">
<label for="eDmlYn" class="col-sm-1 col-form-label text-center">해촉</label>
<div class="col-sm-2">
<select class="form-select" id="eDmlYn" name="dmlYn">
<option value="">선택</option>
<option value="O" th:selected="'O' == ${trInfo.dmlYn}"></option>
<option value="X" th:selected="'X' == ${trInfo.dmlYn}">아니오</option>
<option value="O" th:selected="'O' == ${trInfo.dmlYn}">O</option>
<option value="X" th:selected="'X' == ${trInfo.dmlYn}">X</option>
</select>
</div>
<div class="mb-3 row">
<label for="tel" class="col-sm-2 col-form-label text-center">비고</label>
<div class="col-sm-4">
<textarea class="form-control" id="remark" name="remark" th:text="${trInfo.remark}"></textarea>
<label for="eRemark" class="col-sm-1 text-center">비고</label>
<div class="col-sm-5">
<input type="text" class="form-control" id="eRemark" name="remark" th:text="${trInfo.remark}">
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" id="trDeleteBtn" th:unless="${accessAuth eq 'ACC001'}">해임</button>
<button type="button" class="btn btn-primary" id="updateBtn" th:if="${accessAuth eq 'ACC003'} or ${wrtId eq userId}">수정</button>
<button type="button" class="btn btn-secondary" id="trDeleteBtn" th:if="${accessAuth eq 'ACC003'} or ${wrtUserSeq eq userSeq}">해임</button>
<button type="button" class="btn btn-warning" id="updateBtn" th:if="${accessAuth eq 'ACC003'} or ${wrtUserSeq eq userSeq}">수정</button>
</div>
</form>
</div>
</div>
</html>

View File

@ -1,6 +1,5 @@
<!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
<main class="pt-3">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row mx-0">
@ -22,13 +21,13 @@
</tr>
</thead>
<tbody class="overflow-scroll">
<tr class="historyInfoTr" th:each="trInfo:${HistoryList}">
<tr class="historyInfoTr" th:each="trInfo:${historyList}">
<td><input type="checkbox" class="hisChk">
<input type="hidden" class="trKey" th:value="${trInfo.translatorKey}">
<input type="hidden" class="verNo" th:value="${trInfo.versionNo}">
</td>
<td th:text="${trInfo.wrtNm}"></td>
<td th:text="${#temporals.format(trInfo.wrtDt, 'yyyy-MM-dd')}"></td>
<td th:text="|${trInfo.wrtTitle} ${trInfo.wrtNm}|"></td>
<td th:text="${#temporals.format(trInfo.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
</tr>
</tbody>
</table>
@ -37,7 +36,7 @@
</div>
</div>
<div class="col-8" id="valueDiv">
<div class="mb-5 row">
<div class="mb-3 row">
<label for="ogCd" class="col-sm-1 col-form-label text-center">관서</label>
<div class="col-sm-3">
<input type="text" class="form-control" id="ogdp1V" readonly>
@ -57,21 +56,21 @@
<input type="text" class="form-control" id="trNameV" readonly>
</div>
<label for="ofcCd" class="col-sm-1 col-form-label text-center">성별</label>
<div class="col-sm-2">
<div class="col-sm-3">
<input type="text" class="form-control" id="trSexV"readonly>
</div>
<label for="ofcCd" class="col-sm-1 col-form-label text-center">연락처</label>
<div class="col-sm-4">
<div class="col-sm-3">
<input type="text" class="form-control" id="trPhoneV" readonly>
</div>
</div>
<div class="mb-3 row">
<label for="ogCd" class="col-sm-1 col-form-label text-center">국적</label>
<div class="col-sm-4">
<div class="col-sm-3">
<input type="text" class="form-control" id="trNnyV" readonly>
</div>
<label for="ofcCd" class="col-sm-1 col-form-label text-center">나이</label>
<div class="col-sm-2">
<div class="col-sm-3">
<input type="text" class="form-control" id="trAgeV" readonly>
</div>
<label for="ofcCd" class="col-sm-1 col-form-label text-center">학력</label>
@ -85,11 +84,11 @@
<input type="text" class="form-control" id="trCftV"readonly>
</div>
<label for="ofcCd" class="col-sm-1 col-form-label text-center">비자</label>
<div class="col-sm-2">
<div class="col-sm-3">
<input type="text" class="form-control" id="trVisaV" readonly>
</div>
<label for="ofcCd" class="col-sm-1 col-form-label text-center">위촉일</label>
<div class="col-sm-4">
<div class="col-sm-3">
<input type="text" class="form-control" id="aptDtV" name="aptDt">
</div>
</div>
@ -98,11 +97,9 @@
<div class="col-sm-3">
<input type="text" class="form-control" id="dmlYnV" readonly>
</div>
</div>
<div class="mb-3 row">
<label for="tel" class="col-sm-1 col-form-label text-center">비고</label>
<div class="col-sm-11">
<textarea class="form-control" id="remarkV" readonly></textarea>
<div class="col-sm-7">
<input type="text" class="form-control" id="remarkV" readonly>
</div>
</div>
</div>
@ -110,5 +107,4 @@
</div>
</div>
</div>
</main>
</html>

View File

@ -17,8 +17,13 @@
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="row justify-content-end">
<div class="col-auto">
<button id="excelDown" class="btn btn-success">엑셀다운</button>
</div>
</div>
<div class="row">
<table class="table table-striped">
<table class="table table-hover table-bordered">
<thead>
<tr>
<th colspan="2">어권별 구분</th>
@ -50,7 +55,7 @@
</th:block>
</tr>
</thead>
<tbody>
<tbody class="table-group-divider">
<tr class="" th:each="cnt,index:${cntList}">
<td th:text="${index.index+1}"></td>
<td th:text="${cnt.lang}"></td>
@ -64,13 +69,6 @@
</tbody>
</table>
</div>
<div class="row justify-content-center">
<div class="col-auto">
<div class="col-auto">
<button id="excelDown">엑셀다운</button>
</div>
</div>
</div>
</div>
</div>
</div>