대시보드 수정중. 결재대기함 작업중.
|
|
@ -3,7 +3,9 @@ package com.dbnt.faisp.config;
|
|||
import com.dbnt.faisp.main.authMgt.service.AuthMgtService;
|
||||
import com.dbnt.faisp.main.codeMgt.model.CodeMgt;
|
||||
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.SriService;
|
||||
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.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.UserInfoService;
|
||||
import com.dbnt.faisp.main.userInfo.service.UserLogService;
|
||||
import com.dbnt.faisp.util.Utils;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.security.core.annotation.AuthenticationPrincipal;
|
||||
|
|
@ -38,9 +41,11 @@ public class BaseController {
|
|||
private final MenuMgtService menuMgtService;
|
||||
private final PublicBoardService publicBoardService;
|
||||
private final FaRptService faRptService;
|
||||
private final SriService sriService;
|
||||
private final AffairService affairService;
|
||||
private final UserAlarmService userAlarmService;
|
||||
private final AuthMgtService authMgtService;
|
||||
private final UserLogService userLogService;
|
||||
|
||||
@GetMapping("/")
|
||||
public ModelAndView loginCheck(@AuthenticationPrincipal UserInfo loginUser) {
|
||||
|
|
@ -78,34 +83,42 @@ public class BaseController {
|
|||
|
||||
setSession(loginUser, session);
|
||||
|
||||
PublicBoard noticeParams = new PublicBoard();
|
||||
noticeParams.setPublicType("PLB001");
|
||||
noticeParams.setRowCnt(8);
|
||||
noticeParams.setDownOrganCdList(loginUser.getDownOrganCdList());
|
||||
noticeParams.setUpOrganCdList(loginUser.getUpOrganCdList());
|
||||
mav.addObject("noticeList", publicBoardService.selectContentList(noticeParams));
|
||||
mav.addObject("lastLoginDt", userLogService.selectLastLoginDt((String) session.getAttribute("belongValue")));
|
||||
|
||||
DashboardAffair affair = new DashboardAffair();
|
||||
affair.setUserSeq(loginUser.getUserSeq());
|
||||
affair.setOgCd(loginUser.getOgCd());
|
||||
mav.addObject("apprvStayList", affairService.selectApprvStayList(affair));
|
||||
|
||||
UserAlarm alarm = new UserAlarm();
|
||||
alarm.setUserSeq(loginUser.getUserSeq());
|
||||
alarm.setViewYn("N");
|
||||
alarm.setRowCnt(8);
|
||||
alarm.setRowCnt(9);
|
||||
mav.addObject("dashboardAlarmList", userAlarmService.selectAlarmList(alarm));
|
||||
|
||||
FaRptBoard faRpt = new FaRptBoard();
|
||||
faRpt.setActiveTab("receive");
|
||||
faRpt.setRowCnt(8);
|
||||
faRpt.setRowCnt(9);
|
||||
faRpt.setStatus("DST007");
|
||||
faRpt.setReceiveUserSeq(loginUser.getUserSeq());
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -22,4 +22,6 @@ public interface AffairMapper {
|
|||
List<DashboardAffair> selectDashboardAffairList(DashboardAffair affair);
|
||||
|
||||
List<DashboardAffair> selectDashboardIntelligenceNetworkList(DashboardAffair affair);
|
||||
|
||||
List<DashboardAffair> selectApprvStayList(DashboardAffair affair);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,8 @@ import lombok.Getter;
|
|||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
|
|
@ -13,10 +15,15 @@ public class DashboardAffair{
|
|||
private String title;
|
||||
private String wrtUserNm;
|
||||
private String wrtUserGrd;
|
||||
private LocalDateTime wrtDt;
|
||||
|
||||
private String planApprv;
|
||||
private String affairApprv;
|
||||
private String plan1Apprv;
|
||||
private String affair1Apprv;
|
||||
private String resultApprv;
|
||||
private String plan2Apprv;
|
||||
private String affair2Apprv;
|
||||
private String analyzeApprv;
|
||||
private String fireExtensionApprv;
|
||||
private Integer userSeq;
|
||||
private String ogCd;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -352,4 +352,7 @@ public class AffairService extends BaseService { // 견문보고
|
|||
return affairRating;
|
||||
}
|
||||
|
||||
public List<DashboardAffair> selectApprvStayList(DashboardAffair affair) {
|
||||
return affairMapper.selectApprvStayList(affair);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,9 @@ package com.dbnt.faisp.main.userInfo.repository;
|
|||
import com.dbnt.faisp.main.userInfo.model.UserInoutLog;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
public interface UserInoutLogRepository extends JpaRepository<UserInoutLog, String> {
|
||||
List<UserInoutLog> findTop2ByUserBelongOrderByWrtDtDesc(String belongValue);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,4 +50,13 @@ public class UserLogService {
|
|||
public Integer selectInoutLogListCnt(UserInoutLog 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -288,4 +288,7 @@
|
|||
order by wrt_dt desc
|
||||
limit 8
|
||||
</select>
|
||||
<select id="selectApprvStayList" parameterType="DashboardAffair" resultType="DashboardAffair">
|
||||
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
@ -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;}
|
||||
|
After Width: | Height: | Size: 265 B |
|
After Width: | Height: | Size: 259 B |
|
After Width: | Height: | Size: 496 B |
|
|
@ -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 |
|
After Width: | Height: | Size: 566 B |
|
|
@ -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 |
|
|
@ -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 |
|
After Width: | Height: | Size: 186 B |
|
After Width: | Height: | Size: 124 B |
|
|
@ -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 |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
|
@ -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 (){
|
||||
location.href = "/faRpt/faRptBoard?activeTab=receive&refDocKey="+$(this).find('.faRptKey').val();
|
||||
})
|
||||
|
|
|
|||
|
|
@ -1,23 +1,24 @@
|
|||
|
||||
$(document).on('click', '.referenceTab', function (){
|
||||
location.href = "/publicBoard/referencePage?tabStatus="+$(this).attr('data-tabcd')
|
||||
})
|
||||
|
||||
$(document).on('click', '#addReferenceBtn', function (){
|
||||
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 (){
|
||||
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 (){
|
||||
$("#viewModal").modal('hide')
|
||||
getEditModal($("#viewModalPublicKey").val(), "PLB003")
|
||||
})
|
||||
$(document).on('click', '.referenceTab', function (){
|
||||
location.href = "/publicBoard/referencePage?tabStatus="+$(this).attr('data-tabcd')
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -4,8 +4,6 @@
|
|||
<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>
|
||||
</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">
|
||||
<ul class="nav nav-tabs" id="userTab" role="tablist">
|
||||
<li class="nav-item" role="presentation">
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@
|
|||
</label>
|
||||
<hr class="my-1">
|
||||
<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>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -27,10 +27,8 @@
|
|||
<!--bootstrap-->
|
||||
<script type="text/javascript" th:src="@{/vendor/bootstrap-5.2.0-dist/js/bootstrap.bundle.min.js}"></script>
|
||||
<!--bootstrap-datepicker-->
|
||||
<script type="text/javascript"
|
||||
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/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>
|
||||
<!--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.js}"></script>
|
||||
|
|
|
|||
|
|
@ -2,7 +2,13 @@
|
|||
<html lang="ko" xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/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">
|
||||
<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>
|
||||
</th:block>
|
||||
<div layout:fragment="content">
|
||||
|
|
@ -19,161 +25,86 @@
|
|||
<div class="row mx-0">
|
||||
<div class="col-12">
|
||||
<div class="card-body">
|
||||
<div class="row justify-content-center pt-2">
|
||||
<div class="col-3 py-1 text-center align-middle align-self-center" id="subPage2">
|
||||
<img src="img/dash01.png" alt="대시보드이미지" class="mb-4">
|
||||
<h4 style="font-weight: bold">안녕하세요, <th:block th:each="commonCode:${session.commonCode.get('JT')}">
|
||||
<th:block th:if="${commonCode.itemCd eq #authentication.principal.titleCd}">
|
||||
<span class="d-lg-inline d-md-none" th:text="|${commonCode.itemValue} ${#authentication.principal.userNm}|">관리기능</span>님
|
||||
</th:block></th:block> :D</h4>
|
||||
<h5>해양경찰청의 외사포털에 오신것을 환영합니다.</h5>
|
||||
<div class="row">
|
||||
<div class="col-12 py-1">
|
||||
<th:block th:if="${lastLoginDt eq null}">
|
||||
<p>이전 접속 기록이 없습니다.</p>
|
||||
</th:block>
|
||||
<th:block th:if="${lastLoginDt ne null}">
|
||||
<p th:text="|마지막 접속 일자 : ${#temporals.format(lastLoginDt, 'yyyy년 MM월 dd일 HH:mm:ss')}|"></p>
|
||||
</th:block>
|
||||
<h4 style="font-weight: bold">
|
||||
안녕하세요,
|
||||
<span class="d-lg-inline d-md-none" th:text="${session.belongValue}"></span>
|
||||
님 :D
|
||||
</h4>
|
||||
</div>
|
||||
<div class="col-4 py-1" id="subPage0">
|
||||
<script type="text/javascript" th:src="@{/js/publicBoard/publicBoard.js}"></script>
|
||||
<script type="text/javascript" th:src="@{/js/publicBoard/notice.js}"></script>
|
||||
<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="/publicBoard/noticePage" 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>
|
||||
</thead>
|
||||
</div>
|
||||
<div class="row">
|
||||
<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)}">
|
||||
<!--<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)>25}" th:text="|${#strings.substring(notice.title, 0, 25)}...|"></th:block>
|
||||
<th:block th:unless="${#strings.length(notice.title)>25}" 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>
|
||||
</tbody>
|
||||
</th:block>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4 py-1" id="subPage4">
|
||||
<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="/affair/affairMgt/myReport?affairCategory=CAT215" 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>
|
||||
</thead>
|
||||
<tbody>
|
||||
<th:block th:if="${#lists.isEmpty(affair1List)}">
|
||||
<tr>
|
||||
<td colspan="2">외사경찰 견문관리가 없습니다.</td>
|
||||
<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>
|
||||
<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>
|
||||
</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>
|
||||
</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>
|
||||
<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>
|
||||
<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>
|
||||
</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>
|
||||
</tr>
|
||||
</thead>
|
||||
</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>
|
||||
|
|
@ -181,67 +112,150 @@
|
|||
</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)>25}" th:text="|${#strings.substring(faRpt.title, 0, 25)}...|"></th:block>
|
||||
<th:block th:unless="${#strings.length(faRpt.title)>25}" th:text="${faRpt.title}"></th:block>
|
||||
</td>
|
||||
<td th:text="${#temporals.format(faRpt.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
|
||||
</tr>
|
||||
</th:block>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4 py-1" id="subPage5">
|
||||
<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="/affair/affairMgt/myReport?affairCategory=CAT216" 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>
|
||||
</thead>
|
||||
<tbody>
|
||||
<th:block th:if="${#lists.isEmpty(affair2List)}">
|
||||
<tr>
|
||||
<td colspan="2">외사첩보망 견문관리가 없습니다.</td>
|
||||
<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>
|
||||
<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>
|
||||
</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="dashtit">
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto">공지사항</div>
|
||||
<div class="col-auto"><a href="/publicBoard/noticePage" class="link-dark"><img src="img/dashboard/plus.png" alt="공지사항 더보기 아이콘" /></a></div>
|
||||
</div>
|
||||
</div>
|
||||
<table class="table-hover">
|
||||
<colgroup>
|
||||
<col style="width: 64%">
|
||||
<col style="width: 18%">
|
||||
<col style="width: 18%">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>제목</th>
|
||||
<th>작성자</th>
|
||||
<th>작성일시</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<th:block th:if="${#lists.isEmpty(noticeList)}">
|
||||
<tr>
|
||||
<td colspan="3">공지사항이 없습니다.</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>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4 py-1">
|
||||
<div class="card">
|
||||
<div class="dashtit">
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto">자료실</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>
|
||||
|
||||
<table class="table-hover">
|
||||
<colgroup>
|
||||
<col style="width: 64%">
|
||||
<col style="width: 18%">
|
||||
<col style="width: 18%">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>제목</th>
|
||||
<th>작성자</th>
|
||||
<th>작성일시</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<th:block th:if="${#lists.isEmpty(referenceList)}">
|
||||
<tr>
|
||||
<td colspan="3">자료가 없습니다.</td>
|
||||
</tr>
|
||||
</th:block>
|
||||
<th:block th:unless="${#lists.isEmpty(referenceList)}">
|
||||
<tr class="referenceTr" th:each="reference:${referenceList}">
|
||||
<input type="hidden" class="publicKey" th:value="${reference.publicKey}">
|
||||
<td>
|
||||
<i class="bi bi-dot" style="color: #3d73d7"></i>
|
||||
<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 th:text="${reference.wrtUserNm}"></td>
|
||||
<td th:text="${#temporals.format(reference.wrtDt, 'yyyy-MM-dd')}"></td>
|
||||
</tr>
|
||||
</th:block>
|
||||
</tbody>
|
||||
</table>
|
||||
</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 class="card iconmenu style2">
|
||||
<ul>
|
||||
<li><a href="#"><img src="img/dashboard/auction.svg" alt="" />법령정보</a></li>
|
||||
<li><a href="#"><img src="img/dashboard/handshake.svg" alt="" />수사지원</a></li>
|
||||
<li><a href="#"><img src="img/dashboard/방첩정보포털 아이콘.png" alt="" />방첩 정보포털</a></li>
|
||||
<li><a href="#"><img src="img/dashboard/형사사법 정보시스템 아이콘.png" alt="" />형사사법<br />정보시스템</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -249,7 +263,6 @@
|
|||
</div>
|
||||
</div>
|
||||
</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-dialog modal-xl modal-dialog-scrollable">
|
||||
<div class="modal-content" id="viewContent">
|
||||
|
|
@ -257,21 +270,5 @@
|
|||
</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>
|
||||
</html>
|
||||
|
|
@ -27,10 +27,8 @@
|
|||
<li>
|
||||
<img src="img/login.png" alt="login" class="pt-5" >
|
||||
<div class="pt-5">
|
||||
<input type="text" name="username" id="username" placeholder="아이디" onfocus="this.placeholder=''"
|
||||
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="text" name="username" id="username" placeholder="아이디" onfocus="this.placeholder=''" 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">
|
||||
</div>
|
||||
|
||||
<!-- <input name="idcchk" type="checkbox" id="idcchk" class="form_02"> 아이디저장-->
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@
|
|||
</label>
|
||||
<hr class="my-1">
|
||||
<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>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@
|
|||
</label>
|
||||
<hr class="my-1">
|
||||
<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>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@
|
|||
</label>
|
||||
<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>
|
||||
<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>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -83,8 +83,8 @@
|
|||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
<tr class="planTr" th:each="reference,cnt:${referenceList}">
|
||||
<input type="hidden" class="planKey" th:value="${reference.publicKey}">
|
||||
<tr class="referenceTr" th:each="reference,cnt:${referenceList}">
|
||||
<input type="hidden" class="publicKey" th:value="${reference.publicKey}">
|
||||
<!--
|
||||
<td><input type="checkbox" class="trChkBox"></td>
|
||||
-->
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@
|
|||
</label>
|
||||
<hr class="my-1">
|
||||
<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>
|
||||
</div>
|
||||
|
|
|
|||