대시보드 수정중. 결재대기함 작업중.

master
강석 최 2023-04-18 18:45:56 +09:00
parent 2fd4fb2d2e
commit 5c0f3d069b
58 changed files with 513 additions and 254 deletions

View File

@ -3,7 +3,9 @@ package com.dbnt.faisp.config;
import com.dbnt.faisp.main.authMgt.service.AuthMgtService; import com.dbnt.faisp.main.authMgt.service.AuthMgtService;
import com.dbnt.faisp.main.codeMgt.model.CodeMgt; import com.dbnt.faisp.main.codeMgt.model.CodeMgt;
import com.dbnt.faisp.main.faRpt.model.FaRptBoard; import com.dbnt.faisp.main.faRpt.model.FaRptBoard;
import com.dbnt.faisp.main.faRpt.model.Sri;
import com.dbnt.faisp.main.faRpt.service.FaRptService; import com.dbnt.faisp.main.faRpt.service.FaRptService;
import com.dbnt.faisp.main.faRpt.service.SriService;
import com.dbnt.faisp.main.fpiMgt.affair.model.AffairBoard; import com.dbnt.faisp.main.fpiMgt.affair.model.AffairBoard;
import com.dbnt.faisp.main.fpiMgt.affair.model.DashboardAffair; import com.dbnt.faisp.main.fpiMgt.affair.model.DashboardAffair;
import com.dbnt.faisp.main.fpiMgt.affair.service.AffairService; import com.dbnt.faisp.main.fpiMgt.affair.service.AffairService;
@ -17,6 +19,7 @@ import com.dbnt.faisp.main.codeMgt.service.CodeMgtService;
import com.dbnt.faisp.main.userInfo.service.UserAlarmService; import com.dbnt.faisp.main.userInfo.service.UserAlarmService;
import com.dbnt.faisp.main.userInfo.service.UserInfoService; import com.dbnt.faisp.main.userInfo.service.UserInfoService;
import com.dbnt.faisp.main.userInfo.service.UserLogService;
import com.dbnt.faisp.util.Utils; import com.dbnt.faisp.util.Utils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.security.core.annotation.AuthenticationPrincipal;
@ -38,9 +41,11 @@ public class BaseController {
private final MenuMgtService menuMgtService; private final MenuMgtService menuMgtService;
private final PublicBoardService publicBoardService; private final PublicBoardService publicBoardService;
private final FaRptService faRptService; private final FaRptService faRptService;
private final SriService sriService;
private final AffairService affairService; private final AffairService affairService;
private final UserAlarmService userAlarmService; private final UserAlarmService userAlarmService;
private final AuthMgtService authMgtService; private final AuthMgtService authMgtService;
private final UserLogService userLogService;
@GetMapping("/") @GetMapping("/")
public ModelAndView loginCheck(@AuthenticationPrincipal UserInfo loginUser) { public ModelAndView loginCheck(@AuthenticationPrincipal UserInfo loginUser) {
@ -78,34 +83,42 @@ public class BaseController {
setSession(loginUser, session); setSession(loginUser, session);
PublicBoard noticeParams = new PublicBoard(); mav.addObject("lastLoginDt", userLogService.selectLastLoginDt((String) session.getAttribute("belongValue")));
noticeParams.setPublicType("PLB001");
noticeParams.setRowCnt(8); DashboardAffair affair = new DashboardAffair();
noticeParams.setDownOrganCdList(loginUser.getDownOrganCdList()); affair.setUserSeq(loginUser.getUserSeq());
noticeParams.setUpOrganCdList(loginUser.getUpOrganCdList()); affair.setOgCd(loginUser.getOgCd());
mav.addObject("noticeList", publicBoardService.selectContentList(noticeParams)); mav.addObject("apprvStayList", affairService.selectApprvStayList(affair));
UserAlarm alarm = new UserAlarm(); UserAlarm alarm = new UserAlarm();
alarm.setUserSeq(loginUser.getUserSeq()); alarm.setUserSeq(loginUser.getUserSeq());
alarm.setViewYn("N"); alarm.setViewYn("N");
alarm.setRowCnt(8); alarm.setRowCnt(9);
mav.addObject("dashboardAlarmList", userAlarmService.selectAlarmList(alarm)); mav.addObject("dashboardAlarmList", userAlarmService.selectAlarmList(alarm));
FaRptBoard faRpt = new FaRptBoard(); FaRptBoard faRpt = new FaRptBoard();
faRpt.setActiveTab("receive"); faRpt.setActiveTab("receive");
faRpt.setRowCnt(8); faRpt.setRowCnt(9);
faRpt.setStatus("DST007"); faRpt.setStatus("DST007");
faRpt.setReceiveUserSeq(loginUser.getUserSeq()); faRpt.setReceiveUserSeq(loginUser.getUserSeq());
mav.addObject("faRptList", faRptService.selectFaRptList(faRpt)); mav.addObject("faRptList", faRptService.selectFaRptList(faRpt));
Sri sri = new Sri();
sri.setActiveTab("receive");
sri.setRowCnt(9);
sri.setStatus("DST007");
sri.setReceiveUserSeq(loginUser.getUserSeq());
mav.addObject("sriList", sriService.selectSriList(sri));
PublicBoard params = new PublicBoard();
params.setPublicType("PLB001");
params.setRowCnt(12);
params.setDownOrganCdList(loginUser.getDownOrganCdList());
params.setUpOrganCdList(loginUser.getUpOrganCdList());
mav.addObject("noticeList", publicBoardService.selectContentList(params));
params.setPublicType("PLB003");
params.setRowCnt(6);
mav.addObject("referenceList", publicBoardService.selectContentList(params));
DashboardAffair affair = new DashboardAffair();
affair.setPlanApprv(authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairPlan/planMgt").get(0).getApprovalAuth());
affair.setAffairApprv(authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affair/affairMgt/myReport?affairCategory=CAT215").get(0).getApprovalAuth());
affair.setResultApprv(authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affairResult/resultMgt").get(0).getApprovalAuth());
affair.setUserSeq(loginUser.getUserSeq());
affair.setOgCd(loginUser.getOgCd());
mav.addObject("affair1List", affairService.selectDashboardAffairList(affair));
affair.setAffairApprv(authMgtService.selectApprovalConfigList(loginUser.getUserSeq(), "/affair/affairMgt/myReport?affairCategory=CAT216").get(0).getApprovalAuth());
mav.addObject("affair2List", affairService.selectDashboardIntelligenceNetworkList(affair));
return mav; return mav;
} }

View File

@ -22,4 +22,6 @@ public interface AffairMapper {
List<DashboardAffair> selectDashboardAffairList(DashboardAffair affair); List<DashboardAffair> selectDashboardAffairList(DashboardAffair affair);
List<DashboardAffair> selectDashboardIntelligenceNetworkList(DashboardAffair affair); List<DashboardAffair> selectDashboardIntelligenceNetworkList(DashboardAffair affair);
List<DashboardAffair> selectApprvStayList(DashboardAffair affair);
} }

View File

@ -4,6 +4,8 @@ import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import java.time.LocalDateTime;
@Getter @Getter
@Setter @Setter
@NoArgsConstructor @NoArgsConstructor
@ -13,10 +15,15 @@ public class DashboardAffair{
private String title; private String title;
private String wrtUserNm; private String wrtUserNm;
private String wrtUserGrd; private String wrtUserGrd;
private LocalDateTime wrtDt;
private String planApprv; private String plan1Apprv;
private String affairApprv; private String affair1Apprv;
private String resultApprv; private String resultApprv;
private String plan2Apprv;
private String affair2Apprv;
private String analyzeApprv;
private String fireExtensionApprv;
private Integer userSeq; private Integer userSeq;
private String ogCd; private String ogCd;
} }

View File

@ -352,4 +352,7 @@ public class AffairService extends BaseService { // 견문보고
return affairRating; return affairRating;
} }
public List<DashboardAffair> selectApprvStayList(DashboardAffair affair) {
return affairMapper.selectApprvStayList(affair);
}
} }

View File

@ -3,6 +3,9 @@ package com.dbnt.faisp.main.userInfo.repository;
import com.dbnt.faisp.main.userInfo.model.UserInoutLog; import com.dbnt.faisp.main.userInfo.model.UserInoutLog;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface UserInoutLogRepository extends JpaRepository<UserInoutLog, String> { public interface UserInoutLogRepository extends JpaRepository<UserInoutLog, String> {
List<UserInoutLog> findTop2ByUserBelongOrderByWrtDtDesc(String belongValue);
} }

View File

@ -50,4 +50,13 @@ public class UserLogService {
public Integer selectInoutLogListCnt(UserInoutLog inoutLog) { public Integer selectInoutLogListCnt(UserInoutLog inoutLog) {
return userInfoMapper.selectInoutLogListCnt(inoutLog); return userInfoMapper.selectInoutLogListCnt(inoutLog);
} }
public LocalDateTime selectLastLoginDt(String belongValue) {
List<UserInoutLog> inoutLog = inoutLogRepository.findTop2ByUserBelongOrderByWrtDtDesc(belongValue);
if(inoutLog.size()==2){
return inoutLog.get(inoutLog.size()-1).getWrtDt();
}else{
return null;
}
}
} }

View File

@ -288,4 +288,7 @@
order by wrt_dt desc order by wrt_dt desc
limit 8 limit 8
</select> </select>
<select id="selectApprvStayList" parameterType="DashboardAffair" resultType="DashboardAffair">
</select>
</mapper> </mapper>

View File

@ -0,0 +1,147 @@
tr:hover{
cursor: pointer;
}
@font-face {
font-family: 'Pretendard-Thin';
src: url("font/Pretendard-Thin.otf");
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Pretendard-Regular';
src: url("font/Pretendard-Regular.otf");
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Pretendard-Medium';
src: url("font/Pretendard-Medium.otf");
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Pretendard-Light';
src: url("font/Pretendard-Light.otf");
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Montserrat-Medium';
src: url("font/Montserrat-Medium.ttf");
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Pretendard-SemiBold';
src: url("font/Pretendard-SemiBold.otf");
font-weight: normal;
font-style: normal;
}
.bg-light {font-family: 'Pretendard-Regular';--bs-bg-opacity: 0;}
h4 {color:#16169E; font-size:24px;}
.allpadding {padding:40px 30px;}
.accordion{box-shadow:rgba(149,157,165,0.2)3px 3px 8px;}
.accordion dt{
border:1px solid #E0E7EE; padding:18px 24px;
background:#F8FBFF url(img/dashboard/acco_arrow.png) no-repeat 95% 50%;
margin:-1px;
font-size:16px; font-weight:550;
border-radius:4px;
text-transform:uppercase;
}
.accordion dt.closed {cursor:pointer; background:#F8FBFF url(img/dashboard/acco_arrow_closed.png) no-repeat 95% 50%; color:#000000; border:1px solid #E0E7EE; padding:18px 24px; font-size:16px; font-weight:550; margin:-1px;}
.accordion dt img {display:inline-block; margin-right:10px;}
.accordion dt .new {display:inline-block; width:6px; height:6px; background:#FF4600; border-radius:6px; margin-bottom:3px; margin-left:8px;}
.accordion dd{
padding:8px 10px 12px;
border:none;
background:#FBFDFF;
margin:2px 0 3px;
}
.accordion dd.closed {display:none;}
.accordion dd table {width:92%; margin:0 auto;}
.dashtit {padding:32px 32px 0px; font-size:20px; font-weight:600; color:#363858;}
.dashtit2 {padding-top:14px;}
.card {border:1px solid #E0E7EE; border-radius:4px; box-shadow:rgba(149,157,165,0.2)3px 3px 8px; }
.card-body {padding:26px; padding-top:0;}
.card-body table {margin:20px 32px;}
.table-hover th {color:#888;}
.table-hover td {color:#333;}
.col-4 {width:33%;}
.card-body table>:not(caption)>*>* {padding:12px 0;}
.dashTr td:nth-child(2) {display: block;
width:260px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.dashTr td {cursor:pointer;}
.dashTr:hover {background:#fafafa;}
.iconmenu {margin-top:10px;}
.iconmenu ul {list-style:none; width:96%; margin:0 auto;}
.iconmenu ul:after {content:''; display:block; clear:both;}
.iconmenu ul li {
float:left;
width:48%;
padding:6px 0 ;
background:url('img/dashboard/iconmenuarrow.png')no-repeat 80% 50%;
margin:0 1%;
}
.iconmenu ul a {display:block; color:#000; text-decoration:none; line-height:14px;}
.iconmenu ul a img {display:inline-block; width:40px; margin:0 auto; width:40px; margin:12px 14px 12px 0; }
.style2 ul {padding:10px 0 18px 0;}
.style2 ul li {width:25%; background:none; border-right:1px solid #E0E7EE; margin:14px 0; height:70px; line-height:70px;}
.style2 ul li:last-child { border-right:none; }
.style2 ul a {text-align:center; }
.style2 ul a img {display:block; width:40px; margin:0 auto 5px; }
.style2 ul li:last-child a img {width:60px; }
#footerRow {position:absolute; bottom:0; left:300px;}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 496 B

View File

@ -0,0 +1 @@
<svg viewBox="0 0 512 512.00123" xmlns="http://www.w3.org/2000/svg"><path d="m480.5 490.398438h-207l34.199219-68.398438h138.601562zm0 0" fill="#68544f"/><path d="m480.5 490.398438h-103.5v-68.398438h69.300781zm0 0" fill="#53433f"/><path d="m302.6875 222.738281-260.261719 258.6875-42.425781-42.425781 260.261719-258.6875zm0 0" fill="#68544f"/><path d="m302.6875 222.738281-260.261719 258.6875-21.210937-21.210937 260.261718-258.6875zm0 0" fill="#53433f"/><path d="m143.585938 148.496094 106.066406-106.066406 190.917968 190.917968-106.066406 106.0625zm0 0" fill="#ffd400"/><path d="m239.046875 243.953125 106.0625-106.0625 95.460937 95.457031-106.066406 106.066406zm0 0" fill="#fdbf00"/><path d="m249.65625 0 42.425781 42.425781-148.492187 148.492188-42.425782-42.425781zm0 0" fill="#725d57"/><path d="m440.574219 190.917969 42.425781 42.425781-148.492188 148.488281-42.425781-42.425781zm0 0" fill="#68544f"/><path d="m242 482h270v30h-270zm0 0" fill="#725d57"/><path d="m377 482h135v30h-135zm0 0" fill="#68544f"/></svg>

After

Width:  |  Height:  |  Size: 1018 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 566 B

View File

@ -0,0 +1 @@
<svg height="464pt" viewBox="0 -16 464 464" width="464pt" xmlns="http://www.w3.org/2000/svg"><path d="m256 128h-240v-64l64-64h176zm0 0" fill="#f49758"/><path d="m464 384h-464v-288h224l16 32h224zm0 0" fill="#fdbd40"/><path d="m0 384h464v48h-464zm0 0" fill="#f49758"/><path d="m256 128v-48l48-48 96 96zm0 0" fill="#e26b29"/><path d="m80 64v-64l-64 64zm0 0" fill="#e26b29"/><path d="m328 56 24-24 96 96h-48zm0 0" fill="#f49758"/><path d="m232 160-80 36v66.214844c-.21875 25.449218 12.886719 49.160156 34.550781 62.511718l45.449219 27.273438 45.449219-27.273438c21.664062-13.351562 34.769531-37.0625 34.550781-62.511718v-66.214844zm0 0" fill="#f49758"/><g fill="#fdbd40"><path d="m232 322.679688c-3.59375.003906-6.75-2.394532-7.714844-5.859376-.960937-3.460937.503906-7.144531 3.585938-8.996093l8-4.800781c3.789062-2.273438 8.707031-1.046876 10.980468 2.742187 2.277344 3.785156 1.050782 8.703125-2.738281 10.976563l-8 4.800781c-1.242187.746093-2.664062 1.140625-4.113281 1.136719zm0 0"/><path d="m262.984375 304c-3.496094-.003906-6.582031-2.273438-7.628906-5.609375-1.042969-3.335937.199219-6.964844 3.070312-8.957031 8.652344-6.34375 13.714844-16.472656 13.597657-27.203125v-40.367188l-43.304688-19.464843c-3.96875-1.84375-5.71875-6.539063-3.925781-10.535157 1.796875-3.992187 6.46875-5.800781 10.488281-4.054687l48 21.597656c2.871094 1.292969 4.71875 4.148438 4.71875 7.296875v45.527344c.203125 15.996093-7.445312 31.078125-20.472656 40.363281-1.332032.921875-2.921875 1.414062-4.542969 1.40625zm0 0"/></g></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 511.994 511.994" style="enable-background:new 0 0 511.994 511.994;" xml:space="preserve">
<path style="fill:#CFD8DC;" d="M428.897,285.514l-156.48-107.488l-40.32-23.68c-2.432-1.44-5.248-2.208-8.096-2.208h-64.64
c-5.984,0-11.488,3.328-14.208,8.672l-68.8,133.408c-3.584,7.008-1.6,15.52,4.704,20.224l126.752,93.76
c14.176,10.464,31.072,15.68,47.936,15.68c17.152,0,34.24-5.408,48.416-16.192l125.44-96.32c4.064-3.136,6.368-8,6.24-13.12
C435.713,293.162,433.121,288.426,428.897,285.514z"/>
<path style="fill:#B0BEC5;" d="M434.049,291.402L366.817,160.81c-2.72-5.344-8.192-8.672-14.176-8.672h-64.64
c-4.256,0-8.32,1.696-11.328,4.672l-96,96c-5.824,5.856-6.272,15.2-0.992,21.536l12.512,15.072
c14.56,17.472,39.424,22.4,59.072,11.936l34.944-18.208l78.912,62.656c2.912,2.304,6.4,3.456,9.952,3.456
c3.424,0,6.912-1.088,9.792-3.328l44.8-34.56C435.713,306.666,437.601,298.218,434.049,291.402z"/>
<g>
<path style="fill:#2196F3;" d="M167.169,113.834l-48-24c-7.904-3.936-17.504-0.768-21.472,7.136l-96,192
c-3.968,7.904-0.736,17.504,7.168,21.472l48,24c2.272,1.152,4.704,1.696,7.136,1.696c5.888,0,11.52-3.264,14.336-8.832l96-192
C178.273,127.402,175.073,117.77,167.169,113.834z"/>
<path style="fill:#2196F3;" d="M510.305,288.97l-96-192c-3.968-7.936-13.536-11.104-21.472-7.168l-48,24
c-7.904,3.968-11.104,13.568-7.168,21.472l96,192c2.816,5.6,8.48,8.832,14.304,8.832c2.4,0,4.832-0.544,7.168-1.696l48-24
C511.073,306.474,514.241,296.874,510.305,288.97z"/>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="464pt" viewBox="0 -48 464 464" width="464pt"><path d="m232 192h152v48l80-64-64-104-168-72-168 72-64 104 80 64v-48zm0 0" fill="#195c85"/><path d="m80.136719 240s-8 128 151.925781 128c159.929688 0 151.9375-128 151.9375-128zm0 0" fill="#5a6470"/><path d="m232 32-56 24v44.144531c0 17.226563 9.226562 33.132813 24.183594 41.679688l31.816406 18.175781 31.816406-18.175781c14.957032-8.546875 24.183594-24.453125 24.183594-41.679688v-44.144531zm0 0" fill="#aabece"/><path d="m256 112c-4.417969 0-8-3.582031-8-8v-19.054688l-11.574219-5.746093c-3.957031-1.972657-5.5625-6.78125-3.585937-10.734375 1.976562-3.957032 6.78125-5.558594 10.734375-3.585938l16 8c2.703125 1.351563 4.410156 4.101563 4.425781 7.121094v24c0 4.417969-3.582031 8-8 8zm0 0" fill="#5a6470"/><g fill="#aabece"><path d="m128 168c-2.585938.003906-5.015625-1.246094-6.519531-3.351562l-40-56c-2.566407-3.597657-1.734375-8.59375 1.863281-11.160157 3.597656-2.566406 8.59375-1.734375 11.160156 1.863281l40 56c1.738282 2.4375 1.972656 5.644532.601563 8.308594-1.367188 2.660156-4.109375 4.335938-7.105469 4.339844zm0 0"/><path d="m336 168c-2.996094-.003906-5.738281-1.679688-7.105469-4.339844-1.371093-2.664062-1.136719-5.871094.601563-8.308594l40-56c2.566406-3.597656 7.5625-4.429687 11.160156-1.863281 3.597656 2.566407 4.429688 7.5625 1.863281 11.160157l-40 56c-1.503906 2.105468-3.933593 3.355468-6.519531 3.351562zm0 0"/></g><path d="m80 192h304v48h-304zm0 0" fill="#fdbd40"/></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

@ -1,3 +1,29 @@
$(document).ready(function(){
$('.accordion').each(function(){
const dl = $(this);
const allDt = dl.find('dt');
const allDd = dl.find('dd');
function closeAll(){
allDt.addClass('closed');
allDd.addClass('closed');
}
function open(a,b){
a.removeClass('closed');
b.removeClass('closed');
}
closeAll();
allDt.click(function(){
var dt = $(this);
var dd = dt.next();
closeAll();
open(dt,dd);
});
});
});
$(document).on('click', '.faRptTr', function (){ $(document).on('click', '.faRptTr', function (){
location.href = "/faRpt/faRptBoard?activeTab=receive&refDocKey="+$(this).find('.faRptKey').val(); location.href = "/faRpt/faRptBoard?activeTab=receive&refDocKey="+$(this).find('.faRptKey').val();
}) })

View File

@ -1,23 +1,24 @@
$(document).on('click', '.referenceTab', function (){
location.href = "/publicBoard/referencePage?tabStatus="+$(this).attr('data-tabcd')
})
$(document).on('click', '#addReferenceBtn', function (){ $(document).on('click', '#addReferenceBtn', function (){
getEditModal(null, "PLB003") getEditModal(null, "PLB003")
}) })
$(document).on('click', '.planTr', function (){
$(".trChkBox").prop("checked", false);
$(this).find(".trChkBox").prop("checked", true);
getViewModal(Number($(this).find(".planKey").val()), "PLB003");
})
$(document).on('click', '#saveBtn', function (){ $(document).on('click', '#saveBtn', function (){
savePublicBoard("referenceEditForm", "PLB003") savePublicBoard("referenceEditForm", "PLB003")
}) })
$(document).on('click', '.referenceTr', function (){
$(".trChkBox").prop("checked", false);
$(this).find(".trChkBox").prop("checked", true);
getViewModal(Number($(this).find(".publicKey").val()), "PLB003");
})
$(document).on('click', '#editBtn', function (){ $(document).on('click', '#editBtn', function (){
$("#viewModal").modal('hide') $("#viewModal").modal('hide')
getEditModal($("#viewModalPublicKey").val(), "PLB003") getEditModal($("#viewModalPublicKey").val(), "PLB003")
}) })
$(document).on('click', '.referenceTab', function (){
location.href = "/publicBoard/referencePage?tabStatus="+$(this).attr('data-tabcd')
})

View File

@ -4,8 +4,6 @@
<h5 class="modal-title text-white" id="ciaSafetyDemandViewModalLabel">치안수요 열람</h5> <h5 class="modal-title text-white" id="ciaSafetyDemandViewModalLabel">치안수요 열람</h5>
<button type="button" class="btn-close f-invert" data-bs-dismiss="modal" aria-label="Close"></button> <button type="button" class="btn-close f-invert" data-bs-dismiss="modal" aria-label="Close"></button>
</div> </div>
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="modal-body" id="ciaSafetyDemandViewBody"> <div class="modal-body" id="ciaSafetyDemandViewBody">
<ul class="nav nav-tabs" id="userTab" role="tablist"> <ul class="nav nav-tabs" id="userTab" role="tablist">
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">

View File

@ -41,7 +41,7 @@
</label> </label>
<hr class="my-1"> <hr class="my-1">
<label for="contentInfo" class="col-sm-1 col-form-label col-form-label-sm text-center">내용</label> <label for="contentInfo" class="col-sm-1 col-form-label col-form-label-sm text-center">내용</label>
<div class="col-sm-11 form-control-sm"> <div class="col-sm-11 form-control-sm view-modal-content">
<div id="contentInfo" th:utext="${majorStatus.contentInfo}"></div> <div id="contentInfo" th:utext="${majorStatus.contentInfo}"></div>
</div> </div>
</div> </div>

View File

@ -27,10 +27,8 @@
<!--bootstrap--> <!--bootstrap-->
<script type="text/javascript" th:src="@{/vendor/bootstrap-5.2.0-dist/js/bootstrap.bundle.min.js}"></script> <script type="text/javascript" th:src="@{/vendor/bootstrap-5.2.0-dist/js/bootstrap.bundle.min.js}"></script>
<!--bootstrap-datepicker--> <!--bootstrap-datepicker-->
<script type="text/javascript" <script type="text/javascript" th:src="@{/vendor/bootstrap-datepicker-1.9.0-dist/js/bootstrap-datepicker.min.js}"></script>
th:src="@{/vendor/bootstrap-datepicker-1.9.0-dist/js/bootstrap-datepicker.min.js}"></script> <script type="text/javascript" th:src="@{/vendor/bootstrap-datepicker-1.9.0-dist/locales/bootstrap-datepicker.ko.min.js}"></script>
<script type="text/javascript"
th:src="@{/vendor/bootstrap-datepicker-1.9.0-dist/locales/bootstrap-datepicker.ko.min.js}"></script>
<!--datetimepicker--> <!--datetimepicker-->
<script type="text/javascript" th:src="@{/vendor/datetimepicker/js/datetimepicker.full.min.js}"></script> <script type="text/javascript" th:src="@{/vendor/datetimepicker/js/datetimepicker.full.min.js}"></script>
<script type="text/javascript" th:src="@{/vendor/datetimepicker/js/datetimepicker.js}"></script> <script type="text/javascript" th:src="@{/vendor/datetimepicker/js/datetimepicker.js}"></script>

View File

@ -2,7 +2,13 @@
<html lang="ko" xmlns:th="http://www.thymeleaf.org" <html lang="ko" xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout/layout}"> layout:decorate="~{layout/layout}">
<th:block layout:fragment="css">
<link rel="stylesheet" th:href="@{/css/dashboard/dashboard.css}">
</th:block>
<th:block layout:fragment="script"> <th:block layout:fragment="script">
<script type="text/javascript" th:src="@{/js/publicBoard/publicBoard.js}"></script>
<script type="text/javascript" th:src="@{/js/publicBoard/reference.js}"></script>
<script type="text/javascript" th:src="@{/js/publicBoard/notice.js}"></script>
<script type="text/javascript" th:src="@{/js/dashboard.js}"></script> <script type="text/javascript" th:src="@{/js/dashboard.js}"></script>
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
@ -19,27 +25,151 @@
<div class="row mx-0"> <div class="row mx-0">
<div class="col-12"> <div class="col-12">
<div class="card-body"> <div class="card-body">
<div class="row justify-content-center pt-2"> <div class="row">
<div class="col-3 py-1 text-center align-middle align-self-center" id="subPage2"> <div class="col-12 py-1">
<img src="img/dash01.png" alt="대시보드이미지" class="mb-4"> <th:block th:if="${lastLoginDt eq null}">
<h4 style="font-weight: bold">안녕하세요, <th:block th:each="commonCode:${session.commonCode.get('JT')}"> <p>이전 접속 기록이 없습니다.</p>
<th:block th:if="${commonCode.itemCd eq #authentication.principal.titleCd}"> </th:block>
<span class="d-lg-inline d-md-none" th:text="|${commonCode.itemValue} ${#authentication.principal.userNm}|">관리기능</span> <th:block th:if="${lastLoginDt ne null}">
</th:block></th:block> :D</h4> <p th:text="|마지막 접속 일자 : ${#temporals.format(lastLoginDt, 'yyyy년 MM월 dd일 HH:mm:ss')}|"></p>
<h5>해양경찰청의 외사포털에 오신것을 환영합니다.</h5> </th:block>
<h4 style="font-weight: bold">
안녕하세요,
<span class="d-lg-inline d-md-none" th:text="${session.belongValue}"></span>
님 :D
</h4>
</div> </div>
<div class="col-4 py-1" id="subPage0"> </div>
<script type="text/javascript" th:src="@{/js/publicBoard/publicBoard.js}"></script> <div class="row">
<script type="text/javascript" th:src="@{/js/publicBoard/notice.js}"></script> <div class="col-4 py-1">
<dl class="accordion">
<dt><img src="img/dashboard/accordionicon.png" alt="결제 대기함 "/> 결재 대기함</dt>
<dd>
<table class="">
<colgroup>
<col style="width: 80%">
<col style="width: 20%">
</colgroup>
<tbody>
<!--<th:block th:if="${#lists.isEmpty(noticeList)}">
<tr>
<td colspan="2">공지사항이 없습니다.</td>
</tr>
</th:block>
<th:block th:unless="${#lists.isEmpty(noticeList)}">
<tr class="noticeTr" th:each="notice:${noticeList}">
<input type="hidden" class="publicKey" th:value="${notice.publicKey}">
<td>
<i class="bi bi-dot" style="color: #3d73d7"></i>
<th:block th:if="${#strings.length(notice.title)>20}" th:text="|${#strings.substring(notice.title, 0, 20)}...|"></th:block>
<th:block th:unless="${#strings.length(notice.title)>20}" th:text="${notice.title}"></th:block>
</td>
<td th:text="${notice.wrtUserNm}"></td>
<td th:text="${#temporals.format(notice.wrtDt, 'yyyy-MM-dd')}"></td>
</tr>
</th:block>-->
</tbody>
</table>
</dd>
<dt><img src="img/dashboard/bell.png" alt="미확인 수신알람 "/> 미확인 수신알람</dt>
<dd>
<table class="">
<colgroup>
<col style="width: 80%">
<col style="width: 20%">
</colgroup>
<tbody>
<th:block th:if="${#lists.isEmpty(dashboardAlarmList)}">
<tr>
<td colspan="2">수신알람이 없습니다.</td>
</tr>
</th:block>
<th:block th:unless="${#lists.isEmpty(dashboardAlarmList)}">
<tr class="alarmTr" th:each="alarm:${dashboardAlarmList}">
<input type="hidden" class="alarmKey" th:value="${alarm.alarmKey}">
<input type="hidden" class="userSeq" th:value="${alarm.userSeq}">
<td>
<i class="bi bi-dot" style="color: #3d73d7"></i>
<th:block th:text="${alarm.alarmMsg}"></th:block>
</td>
<td th:text="${#temporals.format(alarm.wrtDt, 'MM-dd HH:mm')}"></td>
</tr>
</th:block>
</tbody>
</table>
</dd>
<dt><img src="img/dashboard/accordionicon.png" alt="외사정보보고 수신문서 "/> 외사정보보고 수신문서</dt>
<dd>
<table class="">
<colgroup>
<col style="width: 80%">
<col style="width: 20%">
</colgroup>
<tbody>
<th:block th:if="${#lists.isEmpty(faRptList)}">
<tr>
<td colspan="2">외사정보보고 수신문서가 없습니다.</td>
</tr>
</th:block>
<th:block th:unless="${#lists.isEmpty(faRptList)}">
<tr class="faRptTr" th:each="faRpt:${faRptList}">
<input type="hidden" class="faRptKey" th:value="${faRpt.faRptKey}">
<td>
<i class="bi bi-dot" style="color: #3d73d7"></i>
<th:block th:if="${#strings.length(faRpt.title)>20}" th:text="|${#strings.substring(faRpt.title, 0, 20)}...|"></th:block>
<th:block th:unless="${#strings.length(faRpt.title)>20}" th:text="${faRpt.title}"></th:block>
</td>
<!--<td th:text="${faRpt.wrtUserNm}"></td>-->
<td th:text="${#temporals.format(faRpt.wrtDt, 'MM-dd HH:mm')}"></td>
</tr>
</th:block>
</tbody>
</table>
</dd>
<dt><img src="img/dashboard/accordionicon.png" alt="sri 수신문서 "/> sri 수신문서</dt>
<dd>
<table class="">
<colgroup>
<col style="width: 80%">
<col style="width: 20%">
</colgroup>
<tbody>
<th:block th:if="${#lists.isEmpty(sriList)}">
<tr>
<td colspan="2">SRI 수신 문서가 없습니다.</td>
</tr>
</th:block>
<th:block th:unless="${#lists.isEmpty(sriList)}">
<tr class="faSriTr" th:each="sri:${sriList}">
<input type="hidden" class="faSriKey" th:value="${sri.faSriKey}">
<td>
<i class="bi bi-dot" style="color: #3d73d7"></i>
<th:block th:if="${#strings.length(sri.title)>20}" th:text="|${#strings.substring(sri.title, 0, 20)}...|"></th:block>
<th:block th:unless="${#strings.length(sri.title)>20}" th:text="${sri.title}"></th:block>
</td>
<!--<td th:text="${sri.wrtUserNm}"></td>-->
<td th:text="${#temporals.format(sri.wrtDt, 'MM-dd hh:mm')}"></td>
</tr>
</th:block>
</tbody>
</table>
</dd>
</dl>
</div>
<div class="col-4 py-1">
<div class="card"> <div class="card">
<div class="card-header gray5"> <div class="dashtit">
<div class="row justify-content-between"> <div class="row justify-content-between">
<div class="col-auto dash-title">공지사항</div> <div class="col-auto">공지사항</div>
<div class="col-auto"><a href="/publicBoard/noticePage" class="link-dark"><i class="bi bi-list"></i></a></div> <div class="col-auto"><a href="/publicBoard/noticePage" class="link-dark"><img src="img/dashboard/plus.png" alt="공지사항 더보기 아이콘" /></a></div>
</div> </div>
</div> </div>
<div class="card-body" style="height: 320px;"> <table class="table-hover">
<table class="table table-sm table-hover"> <colgroup>
<col style="width: 64%">
<col style="width: 18%">
<col style="width: 18%">
</colgroup>
<thead> <thead>
<tr> <tr>
<th>제목</th> <th>제목</th>
@ -50,7 +180,7 @@
<tbody> <tbody>
<th:block th:if="${#lists.isEmpty(noticeList)}"> <th:block th:if="${#lists.isEmpty(noticeList)}">
<tr> <tr>
<td colspan="2">공지사항이 없습니다.</td> <td colspan="3">공지사항이 없습니다.</td>
</tr> </tr>
</th:block> </th:block>
<th:block th:unless="${#lists.isEmpty(noticeList)}"> <th:block th:unless="${#lists.isEmpty(noticeList)}">
@ -58,190 +188,74 @@
<input type="hidden" class="publicKey" th:value="${notice.publicKey}"> <input type="hidden" class="publicKey" th:value="${notice.publicKey}">
<td> <td>
<i class="bi bi-dot" style="color: #3d73d7"></i> <i class="bi bi-dot" style="color: #3d73d7"></i>
<th:block th:if="${#strings.length(notice.title)>25}" th:text="|${#strings.substring(notice.title, 0, 25)}...|"></th:block> <th:block th:if="${#strings.length(notice.title)>20}" th:text="|${#strings.substring(notice.title, 0, 20)}...|"></th:block>
<th:block th:unless="${#strings.length(notice.title)>25}" th:text="${notice.title}"></th:block> <th:block th:unless="${#strings.length(notice.title)>20}" th:text="${notice.title}"></th:block>
</td> </td>
<td th:text="${notice.wrtUserNm}"></td> <td th:text="${notice.wrtUserNm}"></td>
<td th:text="${#temporals.format(notice.wrtDt, 'yyyy-MM-dd')}"></td> <td th:text="${#temporals.format(notice.wrtDt, 'yyyy-MM-dd')}"></td>
</tr> </tr>
</tbody>
</th:block> </th:block>
</tbody>
</table> </table>
</div> </div>
</div> </div>
</div> <div class="col-4 py-1">
<div class="col-4 py-1" id="subPage4">
<div class="card"> <div class="card">
<div class="card-header gray5"> <div class="dashtit">
<div class="row justify-content-between"> <div class="row justify-content-between">
<div class="col-auto dash-title">외사경찰 견문관리</div> <div class="col-auto">자료실</div>
<div class="col-auto"><a href="/affair/affairMgt/myReport?affairCategory=CAT215" class="link-dark"><i class="bi bi-list"></i></a></div> <div class="col-auto"><a href="/publicBoard/referencePage?tabStatus=RPC001" class="link-dark"><img src="img/dashboard/plus.png" alt="자료실 더보기 아이콘" /></a></div>
</div> </div>
</div> </div>
<div class="card-body" style="height: 320px;">
<table class="table table-sm table-hover"> <table class="table-hover">
<colgroup>
<col style="width: 64%">
<col style="width: 18%">
<col style="width: 18%">
</colgroup>
<thead> <thead>
<tr> <tr>
<th>게시판</th>
<th>제목</th> <th>제목</th>
<th>작성자</th> <th>작성자</th>
</tr>
</thead>
<tbody>
<th:block th:if="${#lists.isEmpty(affair1List)}">
<tr>
<td colspan="2">외사경찰 견문관리가 없습니다.</td>
</tr>
</th:block>
<th:block th:unless="${#lists.isEmpty(affair1List)}">
<tr class="affairTr" th:each="affair:${affair1List}">
<input type="hidden" class="board" th:value="${affair.board}">
<input type="hidden" class="key" th:value="${affair.key}">
<td>
<th:block th:if="${affair.board eq 'plan1'}">계획수립</th:block>
<th:block th:if="${affair.board eq 'affair1'}">견문관리</th:block>
<th:block th:if="${affair.board eq 'result'}">청산보고서</th:block>
</td>
<td ><i class="bi bi-dot" style="color: #3d73d7"></i>
<th:block th:if="${#strings.length(affair.title)>25}" th:text="|${#strings.substring(affair.title,0,25)}...|"></th:block>
<th:block th:unless="${#strings.length(affair.title)>25}" th:text="${affair.title}"></th:block>
</td>
<td>
<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>
</td>
</tr>
</th:block>
</tbody>
</table>
</div>
</div>
</div>
<div class="col-3 py-1" id="subPage1">
<div class="card">
<div class="card-header gray5">
<div class="row justify-content-between">
<div class="col-auto dash-title" th:text="${#strings.concat('미확인 수신알람(', alarmListCnt, ')')}"></div>
<div class="col-auto"><a href="/myInfo/myAlarm" class="link-dark"><i class="bi bi-list"></i></a></div>
</div>
</div>
<div class="card-body" style="height: 320px;">
<table class="table table-sm table-hover">
<thead>
<tr>
<th>메시지</th>
<th>발생일시</th>
</tr>
</thead>
<tbody>
<th:block th:if="${#lists.isEmpty(dashboardAlarmList)}">
<tr>
<td colspan="2">미확인 수신알람이 없습니다.</td>
</tr>
</th:block>
<th:block th:unless="${#lists.isEmpty(dashboardAlarmList)}">
<tr class="alarmTr" th:each="alarm:${dashboardAlarmList}">
<input type="hidden" class="alarmKey" th:value="${alarm.alarmKey}">
<input type="hidden" class="userSeq" th:value="${alarm.userSeq}">
<td>
<i class="bi bi-dot" style="color: #3d73d7"></i>
<th:block th:if="${#strings.length(alarm.alarmMsg)>11}" th:text="|${#strings.substring(alarm.alarmMsg, 0, 11)}...|"></th:block>
<th:block th:unless="${#strings.length(alarm.alarmMsg)>11}" th:text="${alarm.alarmMsg}"></th:block>
</td>
<td th:text="${#temporals.format(alarm.wrtDt, 'yyyy-MM-dd HH:mm:ss')}"></td>
</tr>
</th:block>
</tbody>
</table>
</div>
</div>
</div>
<div class="col-4 py-1" id="subPage3">
<div class="card">
<div class="card-header gray5">
<div class="row justify-content-between">
<div class="col-auto dash-title">외사정보보고 수신문서</div>
<div class="col-auto"><a href="/faRpt/faRptBoard?activeTab=receive" class="link-dark"><i class="bi bi-list"></i></a></div>
</div>
</div>
<div class="card-body" style="height: 320px;">
<table class="table table-sm table-hover">
<thead>
<tr>
<th>제목</th>
<th>작성일시</th> <th>작성일시</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<th:block th:if="${#lists.isEmpty(faRptList)}"> <th:block th:if="${#lists.isEmpty(referenceList)}">
<tr> <tr>
<td colspan="2">외사정보보고 수신문서가 없습니다.</td> <td colspan="3">자료가 없습니다.</td>
</tr> </tr>
</th:block> </th:block>
<th:block th:unless="${#lists.isEmpty(faRptList)}"> <th:block th:unless="${#lists.isEmpty(referenceList)}">
<tr class="faRptTr" th:each="faRpt:${faRptList}"> <tr class="referenceTr" th:each="reference:${referenceList}">
<input type="hidden" class="faRptKey" th:value="${faRpt.faRptKey}"> <input type="hidden" class="publicKey" th:value="${reference.publicKey}">
<td><i class="bi bi-dot" style="color: #3d73d7"></i> <td>
<th:block th:if="${#strings.length(faRpt.title)>25}" th:text="|${#strings.substring(faRpt.title, 0, 25)}...|"></th:block> <i class="bi bi-dot" style="color: #3d73d7"></i>
<th:block th:unless="${#strings.length(faRpt.title)>25}" th:text="${faRpt.title}"></th:block> <th:block th:if="${#strings.length(reference.title)>20}" th:text="|${#strings.substring(reference.title, 0, 20)}...|"></th:block>
<th:block th:unless="${#strings.length(reference.title)>20}" th:text="${reference.title}"></th:block>
</td> </td>
<td th:text="${#temporals.format(faRpt.wrtDt, 'yyyy-MM-dd HH:mm')}"></td> <td th:text="${reference.wrtUserNm}"></td>
<td th:text="${#temporals.format(reference.wrtDt, 'yyyy-MM-dd')}"></td>
</tr> </tr>
</th:block> </th:block>
</tbody> </tbody>
</table> </table>
</div> </div>
<div class="card iconmenu">
<div class="dashtit dashtit2">견문관리</div>
<ul>
<li><a href="#"><img src="img/dashboard/police-hat.svg" alt="" />외사경찰</a></li>
<li><a href="#"><img src="img/dashboard/folder.svg" alt="" />외사첩보망</a></li>
</ul>
</div> </div>
</div> <div class="card iconmenu style2">
<div class="col-4 py-1" id="subPage5"> <ul>
<div class="card"> <li><a href="#"><img src="img/dashboard/auction.svg" alt="" />법령정보</a></li>
<div class="card-header gray5"> <li><a href="#"><img src="img/dashboard/handshake.svg" alt="" />수사지원</a></li>
<div class="row justify-content-between"> <li><a href="#"><img src="img/dashboard/방첩정보포털 아이콘.png" alt="" />방첩 정보포털</a></li>
<div class="col-auto dash-title">외사첩보망 견문관리</div> <li><a href="#"><img src="img/dashboard/형사사법 정보시스템 아이콘.png" alt="" />형사사법<br />정보시스템</a></li>
<div class="col-auto"><a href="/affair/affairMgt/myReport?affairCategory=CAT216" class="link-dark"><i class="bi bi-list"></i></a></div> </ul>
</div>
</div>
<div class="card-body" style="height: 320px;">
<table class="table table-sm table-hover">
<thead>
<tr>
<th>게시판</th>
<th>제목</th>
<th>작성자</th>
</tr>
</thead>
<tbody>
<th:block th:if="${#lists.isEmpty(affair2List)}">
<tr>
<td colspan="2">외사첩보망 견문관리가 없습니다.</td>
</tr>
</th:block>
<th:block th:unless="${#lists.isEmpty(affair2List)}">
<tr class="affairTr" th:each="affair:${affair2List}">
<input type="hidden" class="affairKey" th:value="${affair.key}">
<td>
<th:block th:if="${affair.board eq 'plan2'}">운영계획</th:block>
<th:block th:if="${affair.board eq 'affair2'}">견문관리</th:block>
<th:block th:if="${affair.board eq 'analyze'}">운영실적</th:block>
<th:block th:if="${affair.board eq 'fire'}">해고/연장보고</th:block>
</td>
<td ><i class="bi bi-dot" style="color: #3d73d7"></i>
<th:block th:if="${#strings.length(affair.title)>25}" th:text="|${#strings.substring(affair.title, 0, 25)}...|"></th:block>
<th:block th:unless="${#strings.length(affair.title)>25}" th:text="${affair.title}"></th:block>
</td>
<td>
<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>
</td>
</tr>
</th:block>
</tbody>
</table>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -249,7 +263,6 @@
</div> </div>
</div> </div>
</main> </main>
<div class="modal fade" id="viewModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="viewModalLabel" aria-hidden="true"> <div class="modal fade" id="viewModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="viewModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl modal-dialog-scrollable"> <div class="modal-dialog modal-xl modal-dialog-scrollable">
<div class="modal-content" id="viewContent"> <div class="modal-content" id="viewContent">
@ -257,21 +270,5 @@
</div> </div>
</div> </div>
</div> </div>
<div class="modal fade" id="affairViewModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="affairViewModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl modal-dialog-scrollable">
<div class="modal-content" id="affairViewBody">
</div>
</div>
</div>
<div class="modal fade" id="faRptViewModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="faRptViewModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl modal-dialog-scrollable">
<div class="modal-content" id="faRptViewBody">
</div>
</div>
</div>
</div> </div>
</html> </html>

View File

@ -27,10 +27,8 @@
<li> <li>
<img src="img/login.png" alt="login" class="pt-5" > <img src="img/login.png" alt="login" class="pt-5" >
<div class="pt-5"> <div class="pt-5">
<input type="text" name="username" id="username" placeholder="아이디" onfocus="this.placeholder=''" <input type="text" name="username" id="username" placeholder="아이디" onfocus="this.placeholder=''" onblur="this.placeholder='아이디'" class="form_01 form_log">
onblur="this.placeholder='아이디'" class="form_01 form_log"> <input type="password" name="password" id="password" placeholder="비밀번호" onfocus="this.placeholder=''" onblur="this.placeholder='비밀번호'" class="form_01 form_pw">
<input type="password" name="password" id="password" placeholder="비밀번호" onfocus="this.placeholder=''"
onblur="this.placeholder='비밀번호'" class="form_01 form_pw">
</div> </div>
<!-- <input name="idcchk" type="checkbox" id="idcchk" class="form_02"> 아이디저장--> <!-- <input name="idcchk" type="checkbox" id="idcchk" class="form_02"> 아이디저장-->

View File

@ -34,7 +34,7 @@
</label> </label>
<hr class="my-1"> <hr class="my-1">
<label for="content" class="col-sm-1 col-form-label col-form-label-sm text-center">내용</label> <label for="content" class="col-sm-1 col-form-label col-form-label-sm text-center">내용</label>
<div class="col-sm-11 form-control-sm"> <div class="col-sm-11 form-control-sm view-modal-content view-modal-content">
<div id="content" th:utext="${info.content}"></div> <div id="content" th:utext="${info.content}"></div>
</div> </div>
</div> </div>

View File

@ -34,7 +34,7 @@
</label> </label>
<hr class="my-1"> <hr class="my-1">
<label for="content" class="col-sm-1 col-form-label col-form-label-sm text-center bg-lightB">내용</label> <label for="content" class="col-sm-1 col-form-label col-form-label-sm text-center bg-lightB">내용</label>
<div class="col-sm-11 form-control-sm"> <div class="col-sm-11 form-control-sm view-modal-content">
<div id="content" th:utext="${info.content}"></div> <div id="content" th:utext="${info.content}"></div>
</div> </div>
</div> </div>

View File

@ -34,7 +34,7 @@
</label> </label>
<hr class="my-1"> <hr class="my-1">
<label for="content border border-secondary" class="col-sm-1 col-form-label col-form-label-sm text-center border border-secondary">내용</label> <label for="content border border-secondary" class="col-sm-1 col-form-label col-form-label-sm text-center border border-secondary">내용</label>
<div class="col-sm-10 form-control-sm border border-secondary"> <div class="col-sm-10 form-control-sm border border-secondary view-modal-content">
<div id="content border border-secondary" th:utext="${info.content}"></div> <div id="content border border-secondary" th:utext="${info.content}"></div>
</div> </div>
</div> </div>

View File

@ -83,8 +83,8 @@
</tr> </tr>
</thead> </thead>
<tbody class="table-group-divider"> <tbody class="table-group-divider">
<tr class="planTr" th:each="reference,cnt:${referenceList}"> <tr class="referenceTr" th:each="reference,cnt:${referenceList}">
<input type="hidden" class="planKey" th:value="${reference.publicKey}"> <input type="hidden" class="publicKey" th:value="${reference.publicKey}">
<!-- <!--
<td><input type="checkbox" class="trChkBox"></td> <td><input type="checkbox" class="trChkBox"></td>
--> -->

View File

@ -40,7 +40,7 @@
</label> </label>
<hr class="my-1"> <hr class="my-1">
<label for="content" class="col-sm-1 col-form-label col-form-label-sm text-center">내용</label> <label for="content" class="col-sm-1 col-form-label col-form-label-sm text-center">내용</label>
<div class="col-sm-11 form-control-sm"> <div class="col-sm-11 form-control-sm view-modal-content">
<div id="content" th:utext="${info.content}"></div> <div id="content" th:utext="${info.content}"></div>
</div> </div>
</div> </div>