수정요청사항 작업중.
parent
efddb3c7b7
commit
ff4bfb9dee
|
|
@ -11,6 +11,7 @@ import org.springframework.context.annotation.Bean;
|
|||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||
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.Pbkdf2PasswordEncoder;
|
||||
import org.springframework.security.web.AuthenticationEntryPoint;
|
||||
|
|
@ -111,6 +112,14 @@ public class SecurityConfig{
|
|||
@Bean
|
||||
protected SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
|
||||
http.authorizeRequests() // 페이지 권한 설정
|
||||
.antMatchers(
|
||||
"/css/**",
|
||||
"/img/**",
|
||||
"/js/**",
|
||||
"/vendor/**",
|
||||
"/login",
|
||||
"/Crosseditor/uploadImg"
|
||||
).permitAll() // 권한 없이 접근 허용
|
||||
.antMatchers(
|
||||
"/dashboard",
|
||||
"/myInfo/**",
|
||||
|
|
@ -140,14 +149,6 @@ public class SecurityConfig{
|
|||
"/organMgt/**",
|
||||
"/menuMgt/**"
|
||||
).hasRole(Role.ADMIN.name()) // ADMIN 접근 허용
|
||||
.antMatchers(
|
||||
"/login",
|
||||
"/css/**",
|
||||
"/img/**",
|
||||
"/js/**",
|
||||
"/vendor/**",
|
||||
"/Crosseditor/uploadImg"
|
||||
).permitAll() // 로그인 페이지는 권한 없이 접근 허용
|
||||
.and() // 로그인 설정
|
||||
.formLogin().loginPage("/login") // Custom login form 사용
|
||||
.failureHandler(loginFailureHandler()) // 로그인 실패시 동작 수행
|
||||
|
|
@ -169,6 +170,7 @@ public class SecurityConfig{
|
|||
http.headers().frameOptions().sameOrigin();
|
||||
// 나모에디터 이미지 업로드시 csrf 토큰을 추가할 수 없어서 예외처리.
|
||||
http.csrf().ignoringAntMatchers("/Crosseditor/uploadImg");
|
||||
|
||||
return http.build();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -98,7 +98,29 @@ public class CodeMgtService{
|
|||
}
|
||||
public String searchCodeToCategoryAndValue(String categoryCd, String value){
|
||||
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() {
|
||||
|
|
|
|||
|
|
@ -185,6 +185,7 @@ public class AffairController { // 첩보수집활동 > 외사경찰 견문관
|
|||
affairBoard.setWrtPart(loginUser.getOfcCd());
|
||||
affairBoard.setWrtUserSeq(loginUser.getUserSeq());
|
||||
affairBoard.setWrtUserNm(loginUser.getUserNm());
|
||||
affairBoard.setWrtUserGrd(loginUser.getTitleCd());
|
||||
affairBoard.setWrtDt(LocalDateTime.now());
|
||||
affairBoard.setReportDt(LocalDate.now());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -61,6 +61,8 @@ public class AffairBoard extends BaseModel {
|
|||
private String viewStatus;
|
||||
@Column(name = "affair_category")
|
||||
private String affairCategory;
|
||||
@Column(name = "wrt_user_grd")
|
||||
private String wrtUserGrd;
|
||||
|
||||
@Transient
|
||||
private String organUp;
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -19,24 +19,6 @@
|
|||
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{
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
|
|
|
|||
|
|
@ -8,15 +8,11 @@ function contentFade(action){
|
|||
$("#fadeDiv").hide()
|
||||
}
|
||||
}
|
||||
|
||||
function searchFade(action){
|
||||
if(action === "in"){
|
||||
$("#fadeSearchDiv").show()
|
||||
}else{
|
||||
$("#fadeSearchDiv").hide()
|
||||
$(document).on('mouseenter', '.leftMenuItem', function (e){
|
||||
if($(this).attr("aria-expanded")==='false'){
|
||||
$(this).click();
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
$(document).on('click', '#bellIcon', function (){
|
||||
const alarmListDiv = $("#alarmListDiv")[0];
|
||||
if(alarmListDiv.className.includes('d-none')){
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ $(document).on('click', '#sailorAddBtn', function (e){
|
|||
e.preventDefault();
|
||||
$('#sailorDiv').append(
|
||||
'<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">'
|
||||
+ '<input class="form-control form-control-sm" name="sailorNameKr">'
|
||||
+ '</div>'
|
||||
|
|
|
|||
|
|
@ -79,19 +79,19 @@ $(document).on('click', '#spiAddBtn', function (){
|
|||
|
||||
$("#spiDiv").append(
|
||||
'<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">'
|
||||
+ '<select class="form-select form-select-sm" name="sex">'
|
||||
+ sex
|
||||
+ '</select>'
|
||||
+ '</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">'
|
||||
+ '<select class="form-select form-select-sm" name="age">'
|
||||
+ age
|
||||
+ '</select>'
|
||||
+ '</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">'
|
||||
+ '<select class="form-select form-select-sm country" name="country">'
|
||||
+ country
|
||||
|
|
@ -148,7 +148,7 @@ $(document).on('change', '#crimeType', function (){
|
|||
if ($(this).val() == 'CTH2') {
|
||||
makeArrestAreaDiv('장소');
|
||||
$('#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">'
|
||||
+ '<select class="form-select form-select-sm" name="smuggledGoods" id="smugglingAmount">'
|
||||
+ '<option>선택</option>'
|
||||
|
|
@ -156,11 +156,11 @@ $(document).on('change', '#crimeType', function (){
|
|||
+ '<option value="etc">기타</option>'
|
||||
+ '</select>'
|
||||
+ '</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">'
|
||||
+ '<input class="form-control form-control-sm" type="number" min="0" name="smugglingAmount">'
|
||||
+ '</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">'
|
||||
+ '<input class="form-control form-control-sm" type="number" min="0" name="caseNum">'
|
||||
+ '</div>'
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ $(document).on('change', '#autoDeleteSelector', function (){
|
|||
})
|
||||
|
||||
$(document).on('click', '#saveAffairBtn', function (){
|
||||
saveAffair('DST002')
|
||||
saveAffair($(this).attr("data-status"))
|
||||
})
|
||||
$(document).on('click', '#saveTempBtn', function (){
|
||||
saveAffair('DST001')
|
||||
|
|
@ -94,6 +94,7 @@ $(document).on('click', '.apprvBtn', function (){
|
|||
$(document).on('click', '#tableApprvBtn', function (){
|
||||
const ratingList = [];
|
||||
const apprvAuth = $(this).attr("data-apprvauth")
|
||||
let affairRateFlag = true;
|
||||
$.each($(".apprvTd"), function (idx, el) {
|
||||
if (apprvAuth === "APC003" || apprvAuth === "APC004") {
|
||||
const chkbox = $(el).find(".apprvChkbox:checked")
|
||||
|
|
@ -113,12 +114,21 @@ $(document).on('click', '#tableApprvBtn', function (){
|
|||
if(selectorValue !== ""){
|
||||
affairRating["affairRate"] = selectorValue;
|
||||
affairRating["organUp"] = $(el).find(".organUpChkBox").prop("checked")?"T":"F";
|
||||
}else{
|
||||
if(chkbox.val()==="DST006"){
|
||||
//부장승인 & 평가 미입력.
|
||||
affairRateFlag = false;
|
||||
}
|
||||
}
|
||||
ratingList.push(affairRating);
|
||||
}
|
||||
}
|
||||
})
|
||||
if(affairRateFlag){
|
||||
affairStateChange(ratingList);
|
||||
}else{
|
||||
alert("평가가 선택되지 않은 항목이 있습니다.")
|
||||
}
|
||||
})
|
||||
|
||||
$(document).on('change', '.apprvChkbox', function (){
|
||||
|
|
@ -182,8 +192,12 @@ function getAffairEditModal(affairKey){
|
|||
});
|
||||
}
|
||||
function saveAffair(affairStatus){
|
||||
if(contentCheck()){
|
||||
if(confirm("저장하시겠습니까?")){
|
||||
let flag = true;
|
||||
if(affairStatus!=="DST001"){
|
||||
flag = contentCheck()
|
||||
}
|
||||
if(flag){
|
||||
$("#affairStatus").val(affairStatus);
|
||||
contentFade("in");
|
||||
const formData = new FormData($("#affairEditForm")[0]);
|
||||
|
|
@ -242,35 +256,33 @@ function affairStateChange(ratingList){
|
|||
})
|
||||
}
|
||||
function contentCheck(){
|
||||
let flag = true;
|
||||
if(!$("#title").val()){
|
||||
alert("제목을 입력해주세요.")
|
||||
flag = false;
|
||||
return false;
|
||||
}
|
||||
if(!$("#affairType1").val()){
|
||||
alert("분야1을 입력해주세요.")
|
||||
flag = false;
|
||||
return false;
|
||||
}
|
||||
if(!$("#affairType2").val()){
|
||||
alert("분야2을 입력해주세요.")
|
||||
flag = false;
|
||||
return false;
|
||||
}
|
||||
if(!$("#affairType3").val()){
|
||||
alert("분야3을 입력해주세요.")
|
||||
flag = false;
|
||||
return false;
|
||||
}
|
||||
if(!$("#affairType4").val()){
|
||||
alert("분야4을 입력해주세요.")
|
||||
flag = false;
|
||||
return false;
|
||||
}
|
||||
if(!$("#viewStatus").val()){
|
||||
alert("공개여부를 입력해주세요.")
|
||||
flag = false;
|
||||
return false;
|
||||
}
|
||||
if(!$("#hashTags").val()){
|
||||
alert("해시태그를 입력해주세요.")
|
||||
flag = false;
|
||||
return false;
|
||||
}
|
||||
flag = fileCheck(flag, files);
|
||||
return flag;
|
||||
return fileCheck(true, files);
|
||||
}
|
||||
|
|
@ -6,7 +6,7 @@
|
|||
<li class="mb-1" th:each="firstMenu:${session.menuList}">
|
||||
<th:block th:each="cat1Code:${session.commonCode.get('CAT1')}">
|
||||
<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"
|
||||
th:data-bs-target="'#collapse'+${cat1Code.itemCd}" th:text="${cat1Code.itemValue}">
|
||||
</button>
|
||||
|
|
@ -18,7 +18,7 @@
|
|||
<ul class="list-unstyled ps-0">
|
||||
<li class="mb-1">
|
||||
<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='#'"
|
||||
th:data-bs-target="'#collapse'+${cat2Code.itemCd}" th:text="${cat2Code.itemValue}">
|
||||
</button>
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
<input type="hidden" name="wrtOrgan" th:value="${affair.wrtOrgan}">
|
||||
<input type="hidden" name="wrtPart" th:value="${affair.wrtPart}">
|
||||
<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="wrtDt" id="wrtDt" th:value="${#temporals.format(affair.wrtDt, 'yyyy-MM-dd HH:mm')}">
|
||||
<div class="row mb-1">
|
||||
|
|
@ -119,6 +120,8 @@
|
|||
</div>
|
||||
<div class="modal-footer bg-light">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</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-warning" id="saveTempBtn">임시저장</button>
|
||||
<button type="button" class="btn btn-primary" id="saveAffairBtn">저장</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>
|
||||
|
|
@ -130,6 +130,7 @@
|
|||
<thead>
|
||||
<tr class="table-secondary">
|
||||
<th></th>
|
||||
<th>문서번호</th>
|
||||
<th>분야1</th>
|
||||
<th>분야2</th>
|
||||
<th>분야3</th>
|
||||
|
|
@ -154,31 +155,46 @@
|
|||
<tr class="affairTr" th:each="affair:${affairList}">
|
||||
<input type="hidden" class="affairKey" th:value="${affair.affairKey}">
|
||||
<td><input type="checkbox" class="trChkBox"></td>
|
||||
<td th:text="|해양경찰청외사-${affair.affairKey}|"></td>
|
||||
<td>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('DC01')}">
|
||||
<td th:if="${affair.affairType1 eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
|
||||
<th:block th:if="${affair.affairType1 eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></th:block>
|
||||
</th:block>
|
||||
</td>
|
||||
<td>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('DC02')}">
|
||||
<td th:if="${affair.affairType2 eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
|
||||
<th:block th:if="${affair.affairType2 eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></th:block>
|
||||
</th:block>
|
||||
</td>
|
||||
<td>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('DC03')}">
|
||||
<td th:if="${affair.affairType3 eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
|
||||
<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')}">
|
||||
<td th:if="${affair.affairType4 eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
|
||||
<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:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<td th:if="${affair.wrtOrgan eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
|
||||
<th:block th:if="${affair.wrtOrgan eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></th:block>
|
||||
</th:block>
|
||||
</td>
|
||||
<td>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OFC')}">
|
||||
<td th:if="${affair.wrtPart eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
|
||||
<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="${#temporals.format(affair.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
|
||||
<td th:text="${affair.fileCnt eq null?'파일 없음':#strings.concat(affair.fileCnt,' 건')}"></td>
|
||||
<td>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('DST')}">
|
||||
<td th:if="${affair.affairStatus eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
|
||||
<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="${apprvAuth eq 'APC004' or apprvAuth eq 'APC003'}">
|
||||
<td class="apprvTd">
|
||||
|
|
|
|||
|
|
@ -17,17 +17,26 @@
|
|||
<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="row mb-1">
|
||||
<label class="col-sm-1 col-form-label col-form-label-sm text-center">작성자</label>
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${affair.wrtUserNm}"></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>
|
||||
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="|해양경찰청외사-${affair.affairKey}|"></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-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: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>
|
||||
</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: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>
|
||||
|
|
@ -36,27 +45,27 @@
|
|||
</div>
|
||||
<hr>
|
||||
<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-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: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>
|
||||
</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: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>
|
||||
</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: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>
|
||||
</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: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>
|
||||
|
|
@ -65,18 +74,18 @@
|
|||
</div>
|
||||
<hr>
|
||||
<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 th:utext="${affair.content}"></div>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<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>
|
||||
</div>
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -111,7 +120,7 @@
|
|||
<hr>
|
||||
<th:block th:each="rate:${affair.rateList}">
|
||||
<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:if="${code.itemCd eq rate.ratingOrgan}" th:text="${code.itemValue}"></th:block>
|
||||
</th:block>
|
||||
|
|
@ -121,24 +130,24 @@
|
|||
<label class="col-sm-auto col-form-label col-form-label-sm text-center">결재정보가 없습니다.</label>
|
||||
</div>
|
||||
<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">
|
||||
<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>
|
||||
</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-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>
|
||||
</div>
|
||||
<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>
|
||||
</div>
|
||||
<div class="row" th:if="${rate.headApprv ne null}">
|
||||
<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">
|
||||
<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>
|
||||
|
|
@ -146,20 +155,20 @@
|
|||
</label>
|
||||
</th:block>
|
||||
<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">
|
||||
<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>
|
||||
</label>
|
||||
</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-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>
|
||||
</div>
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -217,8 +226,16 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="modal-footer bg-light">
|
||||
<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:unless="${affair.affairStatus eq 'DST004' or affair.affairStatus eq 'DST006'}">
|
||||
<!--승인 상태일때는 수정 불가-->
|
||||
<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>
|
||||
</th:block>
|
||||
</th:block>
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
<div class="mb-3 mt-3 row">
|
||||
<label for="dicCode" class="col-sm-2 col-form-label col-form-label-sm text-center ">공무원식별번호</label>
|
||||
<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>
|
||||
</div>
|
||||
<button type="button" class="btn btn-sm btn-outline-primary col-sm-1" id="dicCodeSearchBtn">검색</button>
|
||||
|
|
|
|||
Loading…
Reference in New Issue