수정요청사항 작업중.
parent
efddb3c7b7
commit
ff4bfb9dee
|
|
@ -11,6 +11,7 @@ import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||||
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
||||||
|
import org.springframework.security.core.session.SessionRegistryImpl;
|
||||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||||
import org.springframework.security.crypto.password.Pbkdf2PasswordEncoder;
|
import org.springframework.security.crypto.password.Pbkdf2PasswordEncoder;
|
||||||
import org.springframework.security.web.AuthenticationEntryPoint;
|
import org.springframework.security.web.AuthenticationEntryPoint;
|
||||||
|
|
@ -111,43 +112,43 @@ public class SecurityConfig{
|
||||||
@Bean
|
@Bean
|
||||||
protected SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
|
protected SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
|
||||||
http.authorizeRequests() // 페이지 권한 설정
|
http.authorizeRequests() // 페이지 권한 설정
|
||||||
.antMatchers(
|
.antMatchers(
|
||||||
"/dashboard",
|
"/css/**",
|
||||||
"/myInfo/**",
|
"/img/**",
|
||||||
"/modal/**",
|
"/js/**",
|
||||||
"/selectBoxOptions",
|
"/vendor/**",
|
||||||
"/publicBoard/**",
|
"/login",
|
||||||
"/faRpt/**",
|
"/Crosseditor/uploadImg"
|
||||||
"/ivsgt/**",
|
).permitAll() // 권한 없이 접근 허용
|
||||||
"/target/**",
|
.antMatchers(
|
||||||
"/equip/**",
|
"/dashboard",
|
||||||
"/affairPlan/**",
|
"/myInfo/**",
|
||||||
"/affair/**",
|
"/modal/**",
|
||||||
"/affairResult/**",
|
"/selectBoxOptions",
|
||||||
"/faStatistics/**",
|
"/publicBoard/**",
|
||||||
"/translator/**",
|
"/faRpt/**",
|
||||||
"/police/**",
|
"/ivsgt/**",
|
||||||
"/sri/**",
|
"/target/**",
|
||||||
"/counterIntelligence/**",
|
"/equip/**",
|
||||||
"/resetSession"
|
"/affairPlan/**",
|
||||||
).hasRole(Role.USER.name()) // USER 접근 허용
|
"/affair/**",
|
||||||
.antMatchers(
|
"/affairResult/**",
|
||||||
"/authMgt/**",
|
"/faStatistics/**",
|
||||||
"/userMgt/**"
|
"/translator/**",
|
||||||
).hasRole(Role.SUB_ADMIN.name()) // SUB_ADMIN 접근 허용
|
"/police/**",
|
||||||
.antMatchers(
|
"/sri/**",
|
||||||
"/codeMgt/**",
|
"/counterIntelligence/**",
|
||||||
"/organMgt/**",
|
"/resetSession"
|
||||||
"/menuMgt/**"
|
).hasRole(Role.USER.name()) // USER 접근 허용
|
||||||
).hasRole(Role.ADMIN.name()) // ADMIN 접근 허용
|
.antMatchers(
|
||||||
.antMatchers(
|
"/authMgt/**",
|
||||||
"/login",
|
"/userMgt/**"
|
||||||
"/css/**",
|
).hasRole(Role.SUB_ADMIN.name()) // SUB_ADMIN 접근 허용
|
||||||
"/img/**",
|
.antMatchers(
|
||||||
"/js/**",
|
"/codeMgt/**",
|
||||||
"/vendor/**",
|
"/organMgt/**",
|
||||||
"/Crosseditor/uploadImg"
|
"/menuMgt/**"
|
||||||
).permitAll() // 로그인 페이지는 권한 없이 접근 허용
|
).hasRole(Role.ADMIN.name()) // ADMIN 접근 허용
|
||||||
.and() // 로그인 설정
|
.and() // 로그인 설정
|
||||||
.formLogin().loginPage("/login") // Custom login form 사용
|
.formLogin().loginPage("/login") // Custom login form 사용
|
||||||
.failureHandler(loginFailureHandler()) // 로그인 실패시 동작 수행
|
.failureHandler(loginFailureHandler()) // 로그인 실패시 동작 수행
|
||||||
|
|
@ -169,6 +170,7 @@ public class SecurityConfig{
|
||||||
http.headers().frameOptions().sameOrigin();
|
http.headers().frameOptions().sameOrigin();
|
||||||
// 나모에디터 이미지 업로드시 csrf 토큰을 추가할 수 없어서 예외처리.
|
// 나모에디터 이미지 업로드시 csrf 토큰을 추가할 수 없어서 예외처리.
|
||||||
http.csrf().ignoringAntMatchers("/Crosseditor/uploadImg");
|
http.csrf().ignoringAntMatchers("/Crosseditor/uploadImg");
|
||||||
|
|
||||||
return http.build();
|
return http.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -98,7 +98,29 @@ public class CodeMgtService{
|
||||||
}
|
}
|
||||||
public String searchCodeToCategoryAndValue(String categoryCd, String value){
|
public String searchCodeToCategoryAndValue(String categoryCd, String value){
|
||||||
CodeMgt code = codeMgtRepository.findByCategoryCdAndItemValue(categoryCd, value).orElse(null);
|
CodeMgt code = codeMgtRepository.findByCategoryCdAndItemValue(categoryCd, value).orElse(null);
|
||||||
return code==null?null:code.getItemCd();
|
if(code==null){
|
||||||
|
List<CodeMgt> codeList = codeMgtRepository.findByCategoryCdOrderByItemCdAsc(categoryCd);
|
||||||
|
Integer codeNum = 1;
|
||||||
|
String itemCd="";
|
||||||
|
for(CodeMgt savedCode : codeList){
|
||||||
|
if(!savedCode.getItemValue().equals("기타") && !savedCode.getItemValue().equals("직접입력")){
|
||||||
|
codeNum = Integer.parseInt(savedCode.getItemCd().replace(categoryCd, ""));
|
||||||
|
}
|
||||||
|
if(codeNum==1){
|
||||||
|
itemCd = savedCode.getItemCd().replace(categoryCd, "").replace("1", "");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
codeNum++;
|
||||||
|
itemCd = categoryCd+(itemCd.substring((int)Math.log10((double)codeNum)))+codeNum;
|
||||||
|
CodeMgt newCode = new CodeMgt();
|
||||||
|
newCode.setCategoryCd(categoryCd);
|
||||||
|
newCode.setItemCd(itemCd);
|
||||||
|
newCode.setItemValue(value);
|
||||||
|
newCode.setUseChk("T");
|
||||||
|
codeMgtRepository.save(newCode);
|
||||||
|
return newCode.getItemCd();
|
||||||
|
}
|
||||||
|
return code.getItemCd();
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<CodeCatg> selectAllCategoryList() {
|
public List<CodeCatg> selectAllCategoryList() {
|
||||||
|
|
|
||||||
|
|
@ -185,6 +185,7 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관
|
||||||
affairBoard.setWrtPart(loginUser.getOfcCd());
|
affairBoard.setWrtPart(loginUser.getOfcCd());
|
||||||
affairBoard.setWrtUserSeq(loginUser.getUserSeq());
|
affairBoard.setWrtUserSeq(loginUser.getUserSeq());
|
||||||
affairBoard.setWrtUserNm(loginUser.getUserNm());
|
affairBoard.setWrtUserNm(loginUser.getUserNm());
|
||||||
|
affairBoard.setWrtUserGrd(loginUser.getTitleCd());
|
||||||
affairBoard.setWrtDt(LocalDateTime.now());
|
affairBoard.setWrtDt(LocalDateTime.now());
|
||||||
affairBoard.setReportDt(LocalDate.now());
|
affairBoard.setReportDt(LocalDate.now());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -61,6 +61,8 @@ public class AffairBoard extends BaseModel {
|
||||||
private String viewStatus;
|
private String viewStatus;
|
||||||
@Column(name = "affair_category")
|
@Column(name = "affair_category")
|
||||||
private String affairCategory;
|
private String affairCategory;
|
||||||
|
@Column(name = "wrt_user_grd")
|
||||||
|
private String wrtUserGrd;
|
||||||
|
|
||||||
@Transient
|
@Transient
|
||||||
private String organUp;
|
private String organUp;
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -19,24 +19,6 @@
|
||||||
background-color: #ffffff;
|
background-color: #ffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
#fadeSearchDiv{
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
background-color: #00000050;
|
|
||||||
z-index: 2090;
|
|
||||||
}
|
|
||||||
|
|
||||||
#fadeSearchDiv > div{
|
|
||||||
position: absolute;
|
|
||||||
left: 50%;
|
|
||||||
top: 50%;
|
|
||||||
transform: translate(-50%, -50%);
|
|
||||||
background-color: #ffffff;
|
|
||||||
}
|
|
||||||
|
|
||||||
#alarmCntDiv{
|
#alarmCntDiv{
|
||||||
width: 16px;
|
width: 16px;
|
||||||
height: 16px;
|
height: 16px;
|
||||||
|
|
|
||||||
|
|
@ -8,15 +8,11 @@ function contentFade(action){
|
||||||
$("#fadeDiv").hide()
|
$("#fadeDiv").hide()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
$(document).on('mouseenter', '.leftMenuItem', function (e){
|
||||||
function searchFade(action){
|
if($(this).attr("aria-expanded")==='false'){
|
||||||
if(action === "in"){
|
$(this).click();
|
||||||
$("#fadeSearchDiv").show()
|
|
||||||
}else{
|
|
||||||
$("#fadeSearchDiv").hide()
|
|
||||||
}
|
}
|
||||||
}
|
})
|
||||||
|
|
||||||
$(document).on('click', '#bellIcon', function (){
|
$(document).on('click', '#bellIcon', function (){
|
||||||
const alarmListDiv = $("#alarmListDiv")[0];
|
const alarmListDiv = $("#alarmListDiv")[0];
|
||||||
if(alarmListDiv.className.includes('d-none')){
|
if(alarmListDiv.className.includes('d-none')){
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,7 @@ $(document).on('click', '#sailorAddBtn', function (e){
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
$('#sailorDiv').append(
|
$('#sailorDiv').append(
|
||||||
'<div class="row">'
|
'<div class="row">'
|
||||||
+ '<label class="col-sm-1 col-form-label col-form-label-sm text-center">선원이름</label>'
|
+ '<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">선원이름</label>'
|
||||||
+ '<div class="col-sm-2">'
|
+ '<div class="col-sm-2">'
|
||||||
+ '<input class="form-control form-control-sm" name="sailorNameKr">'
|
+ '<input class="form-control form-control-sm" name="sailorNameKr">'
|
||||||
+ '</div>'
|
+ '</div>'
|
||||||
|
|
|
||||||
|
|
@ -79,19 +79,19 @@ $(document).on('click', '#spiAddBtn', function (){
|
||||||
|
|
||||||
$("#spiDiv").append(
|
$("#spiDiv").append(
|
||||||
'<div class="row dynamic spi-list pb-1">'
|
'<div class="row dynamic spi-list pb-1">'
|
||||||
+ '<label class="col-sm-1 col-form-label col-form-label-sm text-center">성별</label>'
|
+ '<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">성별</label>'
|
||||||
+ '<div class="col-sm-2" id="sexFormDiv">'
|
+ '<div class="col-sm-2" id="sexFormDiv">'
|
||||||
+ '<select class="form-select form-select-sm" name="sex">'
|
+ '<select class="form-select form-select-sm" name="sex">'
|
||||||
+ sex
|
+ sex
|
||||||
+ '</select>'
|
+ '</select>'
|
||||||
+ '</div>'
|
+ '</div>'
|
||||||
+ '<label class="col-sm-1 col-form-label col-form-label-sm text-center">나이</label>'
|
+ '<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">나이</label>'
|
||||||
+ '<div class="col-sm-2" id="ageFormDiv">'
|
+ '<div class="col-sm-2" id="ageFormDiv">'
|
||||||
+ '<select class="form-select form-select-sm" name="age">'
|
+ '<select class="form-select form-select-sm" name="age">'
|
||||||
+ age
|
+ age
|
||||||
+ '</select>'
|
+ '</select>'
|
||||||
+ '</div>'
|
+ '</div>'
|
||||||
+ '<label class="col-sm-1 col-form-label col-form-label-sm text-center">국적</label>'
|
+ '<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">국적</label>'
|
||||||
+ '<div class="col-sm-2" id="countryFormDiv">'
|
+ '<div class="col-sm-2" id="countryFormDiv">'
|
||||||
+ '<select class="form-select form-select-sm country" name="country">'
|
+ '<select class="form-select form-select-sm country" name="country">'
|
||||||
+ country
|
+ country
|
||||||
|
|
@ -148,7 +148,7 @@ $(document).on('change', '#crimeType', function (){
|
||||||
if ($(this).val() == 'CTH2') {
|
if ($(this).val() == 'CTH2') {
|
||||||
makeArrestAreaDiv('장소');
|
makeArrestAreaDiv('장소');
|
||||||
$('#smugglingAmountDiv').append(
|
$('#smugglingAmountDiv').append(
|
||||||
'<label class="col-sm-2 col-form-label col-form-label-sm text-center">밀수입출 품목</label>'
|
'<label class="col-sm-2 col-form-label col-form-label-sm text-center fw-bold">밀수입출 품목</label>'
|
||||||
+ '<div class="col-sm-2">'
|
+ '<div class="col-sm-2">'
|
||||||
+ '<select class="form-select form-select-sm" name="smuggledGoods" id="smugglingAmount">'
|
+ '<select class="form-select form-select-sm" name="smuggledGoods" id="smugglingAmount">'
|
||||||
+ '<option>선택</option>'
|
+ '<option>선택</option>'
|
||||||
|
|
@ -156,11 +156,11 @@ $(document).on('change', '#crimeType', function (){
|
||||||
+ '<option value="etc">기타</option>'
|
+ '<option value="etc">기타</option>'
|
||||||
+ '</select>'
|
+ '</select>'
|
||||||
+ '</div>'
|
+ '</div>'
|
||||||
+ '<label class="col-sm-2 col-form-label col-form-label-sm text-center">밀수가액</label>'
|
+ '<label class="col-sm-2 col-form-label col-form-label-sm text-center fw-bold">밀수가액</label>'
|
||||||
+ '<div class="col-sm-2">'
|
+ '<div class="col-sm-2">'
|
||||||
+ '<input class="form-control form-control-sm" type="number" min="0" name="smugglingAmount">'
|
+ '<input class="form-control form-control-sm" type="number" min="0" name="smugglingAmount">'
|
||||||
+ '</div>'
|
+ '</div>'
|
||||||
+ '<label class="col-sm-2 col-form-label col-form-label-sm text-center">단속 인원(경찰관)</label>'
|
+ '<label class="col-sm-2 col-form-label col-form-label-sm text-center fw-bold">단속 인원(경찰관)</label>'
|
||||||
+ '<div class="col-sm-2">'
|
+ '<div class="col-sm-2">'
|
||||||
+ '<input class="form-control form-control-sm" type="number" min="0" name="caseNum">'
|
+ '<input class="form-control form-control-sm" type="number" min="0" name="caseNum">'
|
||||||
+ '</div>'
|
+ '</div>'
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ $(document).on('change', '#autoDeleteSelector', function (){
|
||||||
})
|
})
|
||||||
|
|
||||||
$(document).on('click', '#saveAffairBtn', function (){
|
$(document).on('click', '#saveAffairBtn', function (){
|
||||||
saveAffair('DST002')
|
saveAffair($(this).attr("data-status"))
|
||||||
})
|
})
|
||||||
$(document).on('click', '#saveTempBtn', function (){
|
$(document).on('click', '#saveTempBtn', function (){
|
||||||
saveAffair('DST001')
|
saveAffair('DST001')
|
||||||
|
|
@ -94,6 +94,7 @@ $(document).on('click', '.apprvBtn', function (){
|
||||||
$(document).on('click', '#tableApprvBtn', function (){
|
$(document).on('click', '#tableApprvBtn', function (){
|
||||||
const ratingList = [];
|
const ratingList = [];
|
||||||
const apprvAuth = $(this).attr("data-apprvauth")
|
const apprvAuth = $(this).attr("data-apprvauth")
|
||||||
|
let affairRateFlag = true;
|
||||||
$.each($(".apprvTd"), function (idx, el) {
|
$.each($(".apprvTd"), function (idx, el) {
|
||||||
if (apprvAuth === "APC003" || apprvAuth === "APC004") {
|
if (apprvAuth === "APC003" || apprvAuth === "APC004") {
|
||||||
const chkbox = $(el).find(".apprvChkbox:checked")
|
const chkbox = $(el).find(".apprvChkbox:checked")
|
||||||
|
|
@ -113,12 +114,21 @@ $(document).on('click', '#tableApprvBtn', function (){
|
||||||
if(selectorValue !== ""){
|
if(selectorValue !== ""){
|
||||||
affairRating["affairRate"] = selectorValue;
|
affairRating["affairRate"] = selectorValue;
|
||||||
affairRating["organUp"] = $(el).find(".organUpChkBox").prop("checked")?"T":"F";
|
affairRating["organUp"] = $(el).find(".organUpChkBox").prop("checked")?"T":"F";
|
||||||
|
}else{
|
||||||
|
if(chkbox.val()==="DST006"){
|
||||||
|
//부장승인 & 평가 미입력.
|
||||||
|
affairRateFlag = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ratingList.push(affairRating);
|
ratingList.push(affairRating);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
affairStateChange(ratingList);
|
if(affairRateFlag){
|
||||||
|
affairStateChange(ratingList);
|
||||||
|
}else{
|
||||||
|
alert("평가가 선택되지 않은 항목이 있습니다.")
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
$(document).on('change', '.apprvChkbox', function (){
|
$(document).on('change', '.apprvChkbox', function (){
|
||||||
|
|
@ -182,8 +192,12 @@ function getAffairEditModal(affairKey){
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
function saveAffair(affairStatus){
|
function saveAffair(affairStatus){
|
||||||
if(contentCheck()){
|
if(confirm("저장하시겠습니까?")){
|
||||||
if(confirm("저장하시겠습니까?")){
|
let flag = true;
|
||||||
|
if(affairStatus!=="DST001"){
|
||||||
|
flag = contentCheck()
|
||||||
|
}
|
||||||
|
if(flag){
|
||||||
$("#affairStatus").val(affairStatus);
|
$("#affairStatus").val(affairStatus);
|
||||||
contentFade("in");
|
contentFade("in");
|
||||||
const formData = new FormData($("#affairEditForm")[0]);
|
const formData = new FormData($("#affairEditForm")[0]);
|
||||||
|
|
@ -242,35 +256,33 @@ function affairStateChange(ratingList){
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
function contentCheck(){
|
function contentCheck(){
|
||||||
let flag = true;
|
|
||||||
if(!$("#title").val()){
|
if(!$("#title").val()){
|
||||||
alert("제목을 입력해주세요.")
|
alert("제목을 입력해주세요.")
|
||||||
flag = false;
|
return false;
|
||||||
}
|
}
|
||||||
if(!$("#affairType1").val()){
|
if(!$("#affairType1").val()){
|
||||||
alert("분야1을 입력해주세요.")
|
alert("분야1을 입력해주세요.")
|
||||||
flag = false;
|
return false;
|
||||||
}
|
}
|
||||||
if(!$("#affairType2").val()){
|
if(!$("#affairType2").val()){
|
||||||
alert("분야2을 입력해주세요.")
|
alert("분야2을 입력해주세요.")
|
||||||
flag = false;
|
return false;
|
||||||
}
|
}
|
||||||
if(!$("#affairType3").val()){
|
if(!$("#affairType3").val()){
|
||||||
alert("분야3을 입력해주세요.")
|
alert("분야3을 입력해주세요.")
|
||||||
flag = false;
|
return false;
|
||||||
}
|
}
|
||||||
if(!$("#affairType4").val()){
|
if(!$("#affairType4").val()){
|
||||||
alert("분야4을 입력해주세요.")
|
alert("분야4을 입력해주세요.")
|
||||||
flag = false;
|
return false;
|
||||||
}
|
}
|
||||||
if(!$("#viewStatus").val()){
|
if(!$("#viewStatus").val()){
|
||||||
alert("공개여부를 입력해주세요.")
|
alert("공개여부를 입력해주세요.")
|
||||||
flag = false;
|
return false;
|
||||||
}
|
}
|
||||||
if(!$("#hashTags").val()){
|
if(!$("#hashTags").val()){
|
||||||
alert("해시태그를 입력해주세요.")
|
alert("해시태그를 입력해주세요.")
|
||||||
flag = false;
|
return false;
|
||||||
}
|
}
|
||||||
flag = fileCheck(flag, files);
|
return fileCheck(true, files);
|
||||||
return flag;
|
|
||||||
}
|
}
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
<li class="mb-1" th:each="firstMenu:${session.menuList}">
|
<li class="mb-1" th:each="firstMenu:${session.menuList}">
|
||||||
<th:block th:each="cat1Code:${session.commonCode.get('CAT1')}">
|
<th:block th:each="cat1Code:${session.commonCode.get('CAT1')}">
|
||||||
<th:block th:if="${cat1Code.itemCd eq firstMenu.cat1Cd}">
|
<th:block th:if="${cat1Code.itemCd eq firstMenu.cat1Cd}">
|
||||||
<button class="btn btn-toggle align-items-center rounded collapsed text-light"
|
<button class="btn btn-toggle align-items-center rounded collapsed leftMenuItem text-light"
|
||||||
data-bs-toggle="collapse" aria-expanded="false"
|
data-bs-toggle="collapse" aria-expanded="false"
|
||||||
th:data-bs-target="'#collapse'+${cat1Code.itemCd}" th:text="${cat1Code.itemValue}">
|
th:data-bs-target="'#collapse'+${cat1Code.itemCd}" th:text="${cat1Code.itemValue}">
|
||||||
</button>
|
</button>
|
||||||
|
|
@ -18,7 +18,7 @@
|
||||||
<ul class="list-unstyled ps-0">
|
<ul class="list-unstyled ps-0">
|
||||||
<li class="mb-1">
|
<li class="mb-1">
|
||||||
<th:block th:unless="${#lists.isEmpty(secondMenu.childList)}">
|
<th:block th:unless="${#lists.isEmpty(secondMenu.childList)}">
|
||||||
<button class="btn btn-toggle align-items-center rounded collapsed text-light"
|
<button class="btn btn-toggle align-items-center rounded collapsed leftMenuItem text-light"
|
||||||
data-bs-toggle="collapse" aria-expanded="false" th:onclick="location.href='#'"
|
data-bs-toggle="collapse" aria-expanded="false" th:onclick="location.href='#'"
|
||||||
th:data-bs-target="'#collapse'+${cat2Code.itemCd}" th:text="${cat2Code.itemValue}">
|
th:data-bs-target="'#collapse'+${cat2Code.itemCd}" th:text="${cat2Code.itemValue}">
|
||||||
</button>
|
</button>
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@
|
||||||
<input type="hidden" name="wrtOrgan" th:value="${affair.wrtOrgan}">
|
<input type="hidden" name="wrtOrgan" th:value="${affair.wrtOrgan}">
|
||||||
<input type="hidden" name="wrtPart" th:value="${affair.wrtPart}">
|
<input type="hidden" name="wrtPart" th:value="${affair.wrtPart}">
|
||||||
<input type="hidden" name="wrtUserSeq" th:value="${affair.wrtUserSeq}">
|
<input type="hidden" name="wrtUserSeq" th:value="${affair.wrtUserSeq}">
|
||||||
|
<input type="hidden" name="wrtUserGrd" th:value="${affair.wrtUserGrd}">
|
||||||
<input type="hidden" name="affairStatus" id="affairStatus" th:value="${affair.affairStatus}">
|
<input type="hidden" name="affairStatus" id="affairStatus" th:value="${affair.affairStatus}">
|
||||||
<input type="hidden" name="wrtDt" id="wrtDt" th:value="${#temporals.format(affair.wrtDt, 'yyyy-MM-dd HH:mm')}">
|
<input type="hidden" name="wrtDt" id="wrtDt" th:value="${#temporals.format(affair.wrtDt, 'yyyy-MM-dd HH:mm')}">
|
||||||
<div class="row mb-1">
|
<div class="row mb-1">
|
||||||
|
|
@ -119,6 +120,8 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer bg-light">
|
<div class="modal-footer bg-light">
|
||||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
|
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
|
||||||
<button type="button" class="btn btn-warning" id="saveTempBtn">임시저장</button>
|
<th:block th:if="${affair.affairKey eq null or (affair.affairStatus eq 'DST001' or affair.affairStatus eq 'DST002')}">
|
||||||
<button type="button" class="btn btn-primary" id="saveAffairBtn">저장</button>
|
<button type="button" class="btn btn-warning" id="saveTempBtn">임시저장</button>
|
||||||
|
</th:block>
|
||||||
|
<button type="button" class="btn btn-primary" id="saveAffairBtn" th:data-status="${(affair.affairStatus eq 'DST004' or affair.affairStatus eq 'DST006')?affair.affairStatus:'DST002'}">저장</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -130,6 +130,7 @@
|
||||||
<thead>
|
<thead>
|
||||||
<tr class="table-secondary">
|
<tr class="table-secondary">
|
||||||
<th></th>
|
<th></th>
|
||||||
|
<th>문서번호</th>
|
||||||
<th>분야1</th>
|
<th>분야1</th>
|
||||||
<th>분야2</th>
|
<th>분야2</th>
|
||||||
<th>분야3</th>
|
<th>분야3</th>
|
||||||
|
|
@ -154,31 +155,46 @@
|
||||||
<tr class="affairTr" th:each="affair:${affairList}">
|
<tr class="affairTr" th:each="affair:${affairList}">
|
||||||
<input type="hidden" class="affairKey" th:value="${affair.affairKey}">
|
<input type="hidden" class="affairKey" th:value="${affair.affairKey}">
|
||||||
<td><input type="checkbox" class="trChkBox"></td>
|
<td><input type="checkbox" class="trChkBox"></td>
|
||||||
<th:block th:each="commonCode:${session.commonCode.get('DC01')}">
|
<td th:text="|해양경찰청외사-${affair.affairKey}|"></td>
|
||||||
<td th:if="${affair.affairType1 eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
|
<td>
|
||||||
</th:block>
|
<th:block th:each="commonCode:${session.commonCode.get('DC01')}">
|
||||||
<th:block th:each="commonCode:${session.commonCode.get('DC02')}">
|
<th:block th:if="${affair.affairType1 eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></th:block>
|
||||||
<td th:if="${affair.affairType2 eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
|
</th:block>
|
||||||
</th:block>
|
</td>
|
||||||
<th:block th:each="commonCode:${session.commonCode.get('DC03')}">
|
<td>
|
||||||
<td th:if="${affair.affairType3 eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
|
<th:block th:each="commonCode:${session.commonCode.get('DC02')}">
|
||||||
</th:block>
|
<th:block th:if="${affair.affairType2 eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></th:block>
|
||||||
<th:block th:each="commonCode:${session.commonCode.get('DC04')}">
|
</th:block>
|
||||||
<td th:if="${affair.affairType4 eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
|
</td>
|
||||||
</th:block>
|
<td>
|
||||||
|
<th:block th:each="commonCode:${session.commonCode.get('DC03')}">
|
||||||
|
<th:block th:if="${affair.affairType3 eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></th:block>
|
||||||
|
</th:block>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<th:block th:each="commonCode:${session.commonCode.get('DC04')}">
|
||||||
|
<th:block th:if="${affair.affairType4 eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></th:block>
|
||||||
|
</th:block>
|
||||||
|
</td>
|
||||||
<td th:text="${affair.title}"></td>
|
<td th:text="${affair.title}"></td>
|
||||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
<td>
|
||||||
<td th:if="${affair.wrtOrgan eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
|
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||||
</th:block>
|
<th:block th:if="${affair.wrtOrgan eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></th:block>
|
||||||
<th:block th:each="commonCode:${session.commonCode.get('OFC')}">
|
</th:block>
|
||||||
<td th:if="${affair.wrtPart eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
|
</td>
|
||||||
</th:block>
|
<td>
|
||||||
|
<th:block th:each="commonCode:${session.commonCode.get('OFC')}">
|
||||||
|
<th:block th:if="${affair.wrtPart eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></th:block>
|
||||||
|
</th:block>
|
||||||
|
</td>
|
||||||
<td th:text="${affair.wrtUserNm}"></td>
|
<td th:text="${affair.wrtUserNm}"></td>
|
||||||
<td th:text="${#temporals.format(affair.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
|
<td th:text="${#temporals.format(affair.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
|
||||||
<td th:text="${affair.fileCnt eq null?'파일 없음':#strings.concat(affair.fileCnt,' 건')}"></td>
|
<td th:text="${affair.fileCnt eq null?'파일 없음':#strings.concat(affair.fileCnt,' 건')}"></td>
|
||||||
<th:block th:each="commonCode:${session.commonCode.get('DST')}">
|
<td>
|
||||||
<td th:if="${affair.affairStatus eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
|
<th:block th:each="commonCode:${session.commonCode.get('DST')}">
|
||||||
</th:block>
|
<th:block th:if="${affair.affairStatus eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></th:block>
|
||||||
|
</th:block>
|
||||||
|
</td>
|
||||||
<th:block th:if="${page eq 'stay'}">
|
<th:block th:if="${page eq 'stay'}">
|
||||||
<th:block th:if="${apprvAuth eq 'APC004' or apprvAuth eq 'APC003'}">
|
<th:block th:if="${apprvAuth eq 'APC004' or apprvAuth eq 'APC003'}">
|
||||||
<td class="apprvTd">
|
<td class="apprvTd">
|
||||||
|
|
|
||||||
|
|
@ -17,17 +17,26 @@
|
||||||
<div class="tab-content bg-white border border-top-0 p-2">
|
<div class="tab-content bg-white border border-top-0 p-2">
|
||||||
<div class="tab-pane fade p-2 show active" id="boardTabPanel" role="tabpanel" tabindex="0">
|
<div class="tab-pane fade p-2 show active" id="boardTabPanel" role="tabpanel" tabindex="0">
|
||||||
<div class="row mb-1">
|
<div class="row mb-1">
|
||||||
<label class="col-sm-1 col-form-label col-form-label-sm text-center">작성자</label>
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">문서번호</label>
|
||||||
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${affair.wrtUserNm}"></label>
|
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="|해양경찰청외사-${affair.affairKey}|"></label>
|
||||||
<label class="col-sm-1 col-form-label col-form-label-sm text-center">보고일자</label>
|
</div>
|
||||||
|
<div class="row mb-1">
|
||||||
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">작성자</label>
|
||||||
|
<label class="col-sm-2 col-form-label col-form-label-sm text-start">
|
||||||
|
<th:block th:each="code:${session.commonCode.get('JT')}">
|
||||||
|
<th:block th:if="${code.itemCd eq affair.wrtUserGrd}" th:text="${code.itemValue}"></th:block>
|
||||||
|
</th:block>
|
||||||
|
<th:block th:text="${affair.wrtUserNm}"></th:block>
|
||||||
|
</label>
|
||||||
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">보고일자</label>
|
||||||
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${#temporals.format(affair.reportDt, 'yyyy-MM-dd')}"></label>
|
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${#temporals.format(affair.reportDt, 'yyyy-MM-dd')}"></label>
|
||||||
<label class="col-sm-1 col-form-label col-form-label-sm text-center">공개여부</label>
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">공개여부</label>
|
||||||
<th:block th:each="code:${session.commonCode.get('AVS')}">
|
<th:block th:each="code:${session.commonCode.get('AVS')}">
|
||||||
<th:block th:if="${code.itemCd eq affair.viewStatus}">
|
<th:block th:if="${code.itemCd eq affair.viewStatus}">
|
||||||
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${code.itemValue}"></label>
|
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${code.itemValue}"></label>
|
||||||
</th:block>
|
</th:block>
|
||||||
</th:block>
|
</th:block>
|
||||||
<label class="col-sm-1 col-form-label col-form-label-sm text-center">상태</label>
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">상태</label>
|
||||||
<th:block th:each="code:${session.commonCode.get('DST')}">
|
<th:block th:each="code:${session.commonCode.get('DST')}">
|
||||||
<th:block th:if="${code.itemCd eq affair.affairStatus}">
|
<th:block th:if="${code.itemCd eq affair.affairStatus}">
|
||||||
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${code.itemValue}"></label>
|
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${code.itemValue}"></label>
|
||||||
|
|
@ -36,27 +45,27 @@
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<label class="col-sm-1 col-form-label col-form-label-sm text-center">제목</label>
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">제목</label>
|
||||||
<label class="col-sm-11 col-form-label col-form-label-sm text-start" th:text="${affair.title}"></label>
|
<label class="col-sm-11 col-form-label col-form-label-sm text-start" th:text="${affair.title}"></label>
|
||||||
<label class="col-sm-1 col-form-label col-form-label-sm text-center">분야1</label>
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">분야1</label>
|
||||||
<th:block th:each="code:${session.commonCode.get('DC01')}">
|
<th:block th:each="code:${session.commonCode.get('DC01')}">
|
||||||
<th:block th:if="${code.itemCd eq affair.affairType1}">
|
<th:block th:if="${code.itemCd eq affair.affairType1}">
|
||||||
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${code.itemValue}"></label>
|
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${code.itemValue}"></label>
|
||||||
</th:block>
|
</th:block>
|
||||||
</th:block>
|
</th:block>
|
||||||
<label class="col-sm-1 col-form-label col-form-label-sm text-center">분야2</label>
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">분야2</label>
|
||||||
<th:block th:each="code:${session.commonCode.get('DC02')}">
|
<th:block th:each="code:${session.commonCode.get('DC02')}">
|
||||||
<th:block th:if="${code.itemCd eq affair.affairType2}">
|
<th:block th:if="${code.itemCd eq affair.affairType2}">
|
||||||
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${code.itemValue}"></label>
|
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${code.itemValue}"></label>
|
||||||
</th:block>
|
</th:block>
|
||||||
</th:block>
|
</th:block>
|
||||||
<label class="col-sm-1 col-form-label col-form-label-sm text-center">분야3</label>
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">분야3</label>
|
||||||
<th:block th:each="code:${session.commonCode.get('DC03')}">
|
<th:block th:each="code:${session.commonCode.get('DC03')}">
|
||||||
<th:block th:if="${code.itemCd eq affair.affairType3}">
|
<th:block th:if="${code.itemCd eq affair.affairType3}">
|
||||||
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${code.itemValue}"></label>
|
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${code.itemValue}"></label>
|
||||||
</th:block>
|
</th:block>
|
||||||
</th:block>
|
</th:block>
|
||||||
<label class="col-sm-1 col-form-label col-form-label-sm text-center">분야4</label>
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">분야4</label>
|
||||||
<th:block th:each="code:${session.commonCode.get('DC04')}">
|
<th:block th:each="code:${session.commonCode.get('DC04')}">
|
||||||
<th:block th:if="${code.itemCd eq affair.affairType4}">
|
<th:block th:if="${code.itemCd eq affair.affairType4}">
|
||||||
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${code.itemValue}"></label>
|
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${code.itemValue}"></label>
|
||||||
|
|
@ -65,18 +74,18 @@
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<label class="col-sm-1 col-form-label col-form-label-sm text-center">내용</label>
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">내용</label>
|
||||||
<div class="col-sm-11 form-control-sm" id="contentDiv">
|
<div class="col-sm-11 form-control-sm" id="contentDiv">
|
||||||
<div th:utext="${affair.content}"></div>
|
<div th:utext="${affair.content}"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
<div class="row mb-1">
|
<div class="row mb-1">
|
||||||
<label class="col-sm-1 col-form-label col-form-label-sm text-center">해시태그</label>
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">해시태그</label>
|
||||||
<label class="col-sm-11 col-form-label col-form-label-sm text-start" th:text="${affair.hashTags}"></label>
|
<label class="col-sm-11 col-form-label col-form-label-sm text-start" th:text="${affair.hashTags}"></label>
|
||||||
</div>
|
</div>
|
||||||
<div class="row mb-1">
|
<div class="row mb-1">
|
||||||
<label class="col-sm-1 col-form-label col-form-label-sm text-center">비고</label>
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">비고</label>
|
||||||
<label class="col-sm-11 col-form-label col-form-label-sm text-start" th:text="${affair.etc}"></label>
|
<label class="col-sm-11 col-form-label col-form-label-sm text-start" th:text="${affair.etc}"></label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -111,7 +120,7 @@
|
||||||
<hr>
|
<hr>
|
||||||
<th:block th:each="rate:${affair.rateList}">
|
<th:block th:each="rate:${affair.rateList}">
|
||||||
<div class="row py-1">
|
<div class="row py-1">
|
||||||
<label class="col-sm-1 col-form-label col-form-label-sm text-center">
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">
|
||||||
<th:block th:each="code:${session.commonCode.get('OG')}">
|
<th:block th:each="code:${session.commonCode.get('OG')}">
|
||||||
<th:block th:if="${code.itemCd eq rate.ratingOrgan}" th:text="${code.itemValue}"></th:block>
|
<th:block th:if="${code.itemCd eq rate.ratingOrgan}" th:text="${code.itemValue}"></th:block>
|
||||||
</th:block>
|
</th:block>
|
||||||
|
|
@ -121,24 +130,24 @@
|
||||||
<label class="col-sm-auto col-form-label col-form-label-sm text-center">결재정보가 없습니다.</label>
|
<label class="col-sm-auto col-form-label col-form-label-sm text-center">결재정보가 없습니다.</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="row" th:if="${rate.sectionApprv ne null}">
|
<div class="row" th:if="${rate.sectionApprv ne null}">
|
||||||
<label class="col-sm-auto col-form-label col-form-label-sm text-center">결재결과: </label>
|
<label class="col-sm-auto col-form-label col-form-label-sm text-center fw-bold">결재결과: </label>
|
||||||
<label class="col-sm-auto col-form-label col-form-label-sm text-start">
|
<label class="col-sm-auto col-form-label col-form-label-sm text-start">
|
||||||
<th:block th:each="code:${session.commonCode.get('DST')}">
|
<th:block th:each="code:${session.commonCode.get('DST')}">
|
||||||
<th:block th:if="${code.itemCd eq rate.sectionApprv}" th:text="${code.itemValue}"></th:block>
|
<th:block th:if="${code.itemCd eq rate.sectionApprv}" th:text="${code.itemValue}"></th:block>
|
||||||
</th:block>
|
</th:block>
|
||||||
</label>
|
</label>
|
||||||
<label class="col-sm-auto col-form-label col-form-label-sm text-center">결재자: </label>
|
<label class="col-sm-auto col-form-label col-form-label-sm text-center fw-bold">결재자: </label>
|
||||||
<label class="col-sm-auto col-form-label col-form-label-sm text-start" th:text="${rate.sectionNm}"></label>
|
<label class="col-sm-auto col-form-label col-form-label-sm text-start" th:text="${rate.sectionNm}"></label>
|
||||||
<label class="col-sm-auto col-form-label col-form-label-sm text-center">결재일시: </label>
|
<label class="col-sm-auto col-form-label col-form-label-sm text-center fw-bold">결재일시: </label>
|
||||||
<label class="col-sm-auto col-form-label col-form-label-sm text-start" th:text="${#temporals.format(rate.sectionApprvDt, 'yyyy-MM-dd HH:mm:ss')}"></label>
|
<label class="col-sm-auto col-form-label col-form-label-sm text-start" th:text="${#temporals.format(rate.sectionApprvDt, 'yyyy-MM-dd HH:mm:ss')}"></label>
|
||||||
</div>
|
</div>
|
||||||
<div class="row" th:if="${rate.sectionApprv ne null and !#strings.isEmpty(rate.sectionEtc)}">
|
<div class="row" th:if="${rate.sectionApprv ne null and !#strings.isEmpty(rate.sectionEtc)}">
|
||||||
<label class="col-sm-auto col-form-label col-form-label-sm text-center">기타의견: </label>
|
<label class="col-sm-auto col-form-label col-form-label-sm text-center fw-bold">기타의견: </label>
|
||||||
<label class="col-sm-auto col-form-label col-form-label-sm text-start" th:text="${rate.sectionEtc}"></label>
|
<label class="col-sm-auto col-form-label col-form-label-sm text-start" th:text="${rate.sectionEtc}"></label>
|
||||||
</div>
|
</div>
|
||||||
<div class="row" th:if="${rate.headApprv ne null}">
|
<div class="row" th:if="${rate.headApprv ne null}">
|
||||||
<th:block th:if="${rate.headApprv eq 'DST006'}">
|
<th:block th:if="${rate.headApprv eq 'DST006'}">
|
||||||
<label class="col-sm-auto col-form-label col-form-label-sm text-center">견문평가: </label>
|
<label class="col-sm-auto col-form-label col-form-label-sm text-center fw-bold">견문평가: </label>
|
||||||
<label class="col-sm-auto col-form-label col-form-label-sm text-start">
|
<label class="col-sm-auto col-form-label col-form-label-sm text-start">
|
||||||
<th:block th:each="code:${session.commonCode.get('AAR')}">
|
<th:block th:each="code:${session.commonCode.get('AAR')}">
|
||||||
<th:block th:if="${code.itemCd eq rate.affairRate}" th:text="|${code.itemValue}${rate.organUp eq 'T'?'(상보)':''}|"></th:block>
|
<th:block th:if="${code.itemCd eq rate.affairRate}" th:text="|${code.itemValue}${rate.organUp eq 'T'?'(상보)':''}|"></th:block>
|
||||||
|
|
@ -146,20 +155,20 @@
|
||||||
</label>
|
</label>
|
||||||
</th:block>
|
</th:block>
|
||||||
<th:block th:if="${rate.headApprv eq 'DST005'}">
|
<th:block th:if="${rate.headApprv eq 'DST005'}">
|
||||||
<label class="col-sm-auto col-form-label col-form-label-sm text-center">결재결과: </label>
|
<label class="col-sm-auto col-form-label col-form-label-sm text-center fw-bold">결재결과: </label>
|
||||||
<label class="col-sm-auto col-form-label col-form-label-sm text-start">
|
<label class="col-sm-auto col-form-label col-form-label-sm text-start">
|
||||||
<th:block th:each="code:${session.commonCode.get('DST')}">
|
<th:block th:each="code:${session.commonCode.get('DST')}">
|
||||||
<th:block th:if="${code.itemCd eq rate.headApprv}" th:text="${code.itemValue}"></th:block>
|
<th:block th:if="${code.itemCd eq rate.headApprv}" th:text="${code.itemValue}"></th:block>
|
||||||
</th:block>
|
</th:block>
|
||||||
</label>
|
</label>
|
||||||
</th:block>
|
</th:block>
|
||||||
<label class="col-sm-auto col-form-label col-form-label-sm text-center">결재자: </label>
|
<label class="col-sm-auto col-form-label col-form-label-sm text-center fw-bold">결재자: </label>
|
||||||
<label class="col-sm-auto col-form-label col-form-label-sm text-start" th:text="${rate.headNm}"></label>
|
<label class="col-sm-auto col-form-label col-form-label-sm text-start" th:text="${rate.headNm}"></label>
|
||||||
<label class="col-sm-auto col-form-label col-form-label-sm text-center">결재일시: </label>
|
<label class="col-sm-auto col-form-label col-form-label-sm text-center fw-bold">결재일시: </label>
|
||||||
<label class="col-sm-auto col-form-label col-form-label-sm text-start" th:text="${#temporals.format(rate.headApprvDt, 'yyyy-MM-dd HH:mm:ss')}"></label>
|
<label class="col-sm-auto col-form-label col-form-label-sm text-start" th:text="${#temporals.format(rate.headApprvDt, 'yyyy-MM-dd HH:mm:ss')}"></label>
|
||||||
</div>
|
</div>
|
||||||
<div class="row" th:if="${rate.headApprv ne null and !#strings.isEmpty(rate.headEtc)}">
|
<div class="row" th:if="${rate.headApprv ne null and !#strings.isEmpty(rate.headEtc)}">
|
||||||
<label class="col-sm-auto col-form-label col-form-label-sm text-center">기타의견: </label>
|
<label class="col-sm-auto col-form-label col-form-label-sm text-center fw-bold">기타의견: </label>
|
||||||
<label class="col-sm-auto col-form-label col-form-label-sm text-start" th:text="${rate.headEtc}"></label>
|
<label class="col-sm-auto col-form-label col-form-label-sm text-start" th:text="${rate.headEtc}"></label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -217,8 +226,16 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer bg-light">
|
<div class="modal-footer bg-light">
|
||||||
<th:block th:unless="${affair.affairStatus eq 'DST004' or affair.affairStatus eq 'DST006'}"><!--승인 상태일때는 수정 불가-->
|
<th:block th:unless="${affair.affairStatus eq 'DST004' or affair.affairStatus eq 'DST006'}">
|
||||||
<th:block th:if="${userSeq eq affair.wrtUserSeq or accessAuth eq 'ACC003'}"><!--작성자일 경우 수정 허용--><!--관리자일 경우 수정 허용-->
|
<!--승인 상태일때는 수정 불가-->
|
||||||
|
<th:block th:if="${userSeq eq affair.wrtUserSeq or accessAuth eq 'ACC003'}">
|
||||||
|
<!--작성자일 경우 수정 허용--><!--관리자일 경우 수정 허용-->
|
||||||
|
<button type="button" class="btn btn-warning" id="editAffairBtn">수정</button>
|
||||||
|
</th:block>
|
||||||
|
</th:block>
|
||||||
|
<th:block th:if="${affair.affairStatus eq 'DST004' or affair.affairStatus eq 'DST006'}">
|
||||||
|
<!--승인 상태일때 본청 관리자 수정 허용-->
|
||||||
|
<th:block th:if="${userOrgan eq 'OG001' and accessAuth eq 'ACC003'}">
|
||||||
<button type="button" class="btn btn-warning" id="editAffairBtn">수정</button>
|
<button type="button" class="btn btn-warning" id="editAffairBtn">수정</button>
|
||||||
</th:block>
|
</th:block>
|
||||||
</th:block>
|
</th:block>
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
<div class="mb-3 mt-3 row">
|
<div class="mb-3 mt-3 row">
|
||||||
<label for="dicCode" class="col-sm-2 col-form-label col-form-label-sm text-center ">공무원식별번호</label>
|
<label for="dicCode" class="col-sm-2 col-form-label col-form-label-sm text-center ">공무원식별번호</label>
|
||||||
<div class="col-sm-3">
|
<div class="col-sm-3">
|
||||||
<input type="text" class="form-control form-control-sm" id="dicCode" name="dicCode" autocomplete="off" th:value="${userInfo.dicCode}">
|
<input type="text" class="form-control form-control-sm" id="dicCode" name="dicCode" autocomplete="off" th:value="${userInfo.dic}">
|
||||||
<label for="dicCode" style="font-size: 12px" th:text="${msg}"></label>
|
<label for="dicCode" style="font-size: 12px" th:text="${msg}"></label>
|
||||||
</div>
|
</div>
|
||||||
<button type="button" class="btn btn-sm btn-outline-primary col-sm-1" id="dicCodeSearchBtn">검색</button>
|
<button type="button" class="btn btn-sm btn-outline-primary col-sm-1" id="dicCodeSearchBtn">검색</button>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue