first commit
This commit is contained in:
265
src/main/webapp/WEB-INF/jsp/dms/dmsHdb/DmsHdbDetail.jsp
Normal file
265
src/main/webapp/WEB-INF/jsp/dms/dmsHdb/DmsHdbDetail.jsp
Normal file
@@ -0,0 +1,265 @@
|
||||
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"
|
||||
%><%@ include file="/common/taglib.jsp"
|
||||
%><%@ page import="egovframework.main.MainGlobals"
|
||||
%><%
|
||||
/**
|
||||
* @Class Name : DmsHdbDetail.jsp
|
||||
* @Description : DmsHdb Detail 화면
|
||||
* @Modification Information
|
||||
*
|
||||
* @author 한돈희
|
||||
* @since 2017-06-16
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* Copyright (C) All right reserved.
|
||||
*/
|
||||
%><script type="text/javascript" src="/js/dms/dmsHdb.js"></script>
|
||||
<script type="text/javascript" src="/js/common/calendar/jquery-ui.js"></script>
|
||||
<script type="text/javascript" src="/js/common/calendar/jquery.ui.datepicker-ko.js"></script>
|
||||
<link type="text/css" href="/css/common/calendar/smoothness/jquery-ui.css" rel="stylesheet" />
|
||||
<form:form commandName="searchVO" id="detailForm" action="${searchVO.parentUrl}">
|
||||
<form:hidden path="bmode" />
|
||||
<form:hidden path="pageIndex" />
|
||||
<form:hidden path="hdbSeq" />
|
||||
<form:hidden path="searchCondition" />
|
||||
<form:hidden path="searchKeyword" />
|
||||
</form:form>
|
||||
|
||||
<div class="location_box">
|
||||
<div class="loc_h3"><h3>${prjNm} <%=MainGlobals.MENU_HDB%></h3><span></span></div>
|
||||
<span class="loccation"><img src="/images/admin/loccation_home.png" alt="홈" /> > <strong><%=MainGlobals.MENU_HDB%></strong></span>
|
||||
</div>
|
||||
|
||||
<div class="contents">
|
||||
<table class="tbl_basic_view">
|
||||
<caption>상세</caption>
|
||||
<colgroup>
|
||||
<col style="width:15%">
|
||||
<col style="width:35%">
|
||||
<col style="width:15%">
|
||||
<col style="width:*">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row">제목</th>
|
||||
<td class="left">${dmsHdbVO.title}</td>
|
||||
<th scope="row">등록일</th>
|
||||
<td class="left">${dmsHdbVO.createDate}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">작성자</th>
|
||||
<td class="left">${dmsHdbVO.userNm}</td>
|
||||
<th scope="row">진행상태</th>
|
||||
<td class="left">
|
||||
<c:if test="${dmsHdbVO.hdbSts == 'A'}">
|
||||
접수
|
||||
</c:if>
|
||||
<c:if test="${dmsHdbVO.hdbSts == 'B'}">
|
||||
처리중(완료예정일 : ${dmsHdbVO.compScdDate })
|
||||
</c:if>
|
||||
<c:if test="${dmsHdbVO.hdbSts == 'C'}">
|
||||
완료(완료일 : ${dmsHdbVO.compDate })
|
||||
</c:if>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">연락처</th>
|
||||
<td class="left">${dmsHdbVO.tel}</td>
|
||||
<th scope="row">이메일</th>
|
||||
<td class="left">${dmsHdbVO.email}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">첨부파일</th>
|
||||
<td colspan="3" class="left">
|
||||
<c:import url="/common/fms/selectFileInfs.do" charEncoding="utf-8">
|
||||
<c:param name="param_atchFileId" value="${dmsHdbVO.atchFileId}" />
|
||||
</c:import>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">내용</th>
|
||||
<td colspan="3" class="left"><edosiFmt:formatHtml value="${dmsHdbVO.contents}"/></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div class="mt10 tR">
|
||||
<%-- <c:if test="${ROLE_EMP }"> --%>
|
||||
<span class="btn_type_blue"><a href="#modify" onclick="return fn_egov_replyView();">답변</a></span>
|
||||
<%-- </c:if> --%>
|
||||
<c:if test="${checkWriteAuth && empty dmsHdbReplyList}">
|
||||
<span class="btn_type_blue"><a href="#modify" onclick="return fn_egov_updateView();">수정</a></span>
|
||||
<span class="btn_type_blue"><a href="#delete" onclick="return fn_egov_delete('${searchVO.parentUrl}');">삭제</a></span>
|
||||
</c:if>
|
||||
<span class="btn_type_gray"><a href="#list" onclick="return fn_egov_selectList();">목록</a></span>
|
||||
</div>
|
||||
|
||||
<h1>답변</h1>
|
||||
<c:if test="${ROLE_EMP }">
|
||||
<form:form commandName="statusVO" id="statusForm" action="${searchVO.parentUrl}" class="form-horizontal">
|
||||
<form:hidden path="bmode" />
|
||||
<form:hidden path="pageIndex" />
|
||||
<form:hidden path="hdbSeq" value="${dmsHdbVO.hdbSeq }"/>
|
||||
<form:hidden path="searchCondition" />
|
||||
<form:hidden path="searchKeyword" />
|
||||
<div>
|
||||
진행상태 :
|
||||
<script>
|
||||
$(function (){
|
||||
var radioChk = "${dmsHdbVO.hdbSts}";
|
||||
|
||||
if(radioChk == ''){
|
||||
$("input:radio[id='statusA']").attr("checked", true);
|
||||
}else{
|
||||
$("#status"+radioChk).attr("checked", true);
|
||||
}
|
||||
|
||||
|
||||
if($(".hdbSts:checked").val() == 'B'){
|
||||
$("#statusBdate").show();
|
||||
}
|
||||
|
||||
$(".hdbSts").change(function(){
|
||||
if($(".hdbSts:checked").val() == 'B'){
|
||||
$("#statusBdate").show();
|
||||
}else{
|
||||
$("#statusBdate").hide();
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<form:radiobutton path="hdbSts" class="hdbSts" id="statusA" value="A" label="접수"/>
|
||||
<form:radiobutton path="hdbSts" class="hdbSts" id="statusB" value="B" label="처리중"/>
|
||||
<form:radiobutton path="hdbSts" class="hdbSts" id="statusC" value="C" label="완료"/>
|
||||
|
||||
<span id="statusBdate" style="display: none;">
|
||||
완료예정일 :
|
||||
<form:input type="text" path="compScdDate" id="compScdDate" style="width:100px;" title="완료예정일" value="${dmsHdbVO.compScdDate }" />
|
||||
</span>
|
||||
<span class="btn_type_blue"><a href="#modify" onclick="return fn_hdb_status_update('${searchVO.parentUrl}');">상태변경</a></span>
|
||||
</div>
|
||||
</form:form>
|
||||
</c:if>
|
||||
|
||||
<c:if test="${empty dmsHdbReplyList }">
|
||||
<div>
|
||||
답변 없음.
|
||||
</div>
|
||||
</c:if>
|
||||
<c:if test="${!empty dmsHdbReplyList }">
|
||||
<c:forEach items="${dmsHdbReplyList }" var="list">
|
||||
<table class="tbl_basic_view">
|
||||
<caption>상세</caption>
|
||||
<colgroup>
|
||||
<col style="width:15%">
|
||||
<col style="width:35%">
|
||||
<col style="width:15%">
|
||||
<col style="width:*">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row">제목</th>
|
||||
<td colspan="3" class="left">${list.title}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">작성자</th>
|
||||
<td class="left">${list.userNm}</td>
|
||||
<th scope="row">연락처</th>
|
||||
<td class="left">${list.tel}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">내용</th>
|
||||
<td colspan="3" class="left"><edosiFmt:formatHtml value="${list.contents}"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">첨부파일</th>
|
||||
<td colspan="3" class="left">
|
||||
<c:import url="/common/fms/selectFileInfs.do" charEncoding="utf-8">
|
||||
<c:param name="param_atchFileId" value="${list.atchFileId}" />
|
||||
</c:import>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div class="mt10 tR">
|
||||
<c:if test="${loginVO.id == list.userId}">
|
||||
<span class="btn_type_blue"><a href="#modify" onclick="return fn_egov_delete_reply('${searchVO.parentUrl}', '${list.hdbReplySeq }');">삭제</a></span>
|
||||
</c:if>
|
||||
</div>
|
||||
</c:forEach>
|
||||
</c:if>
|
||||
<div id="replyView" style="display: none;">
|
||||
<form:form commandName="dmsHdbReplyVO" id="replyForm" action="${searchVO.parentUrl}" enctype="multipart/form-data" class="form-horizontal">
|
||||
<form:hidden path="bmode" />
|
||||
<form:hidden path="pageIndex" />
|
||||
<form:hidden path="hdbReplySeq" />
|
||||
<form:hidden path="hdbSeq" value="${dmsHdbVO.hdbSeq }"/>
|
||||
<form:hidden path="searchCondition" />
|
||||
<form:hidden path="searchKeyword" />
|
||||
<table class="tbl_basic_view">
|
||||
<caption>답변작성</caption>
|
||||
<colgroup>
|
||||
<col style="width:15%">
|
||||
<col style="width:35%">
|
||||
<col style="width:15%">
|
||||
<col style="width:*">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row"><span class="fCred">*</span> <label for="title">제목</label></th>
|
||||
<td colspan="3" class="left"><form:input path="title" cssStyle="width:99%;"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="userNm">내용</label></th>
|
||||
<td colspan="3" class="left">
|
||||
<form:textarea path="contents" cssStyle="width:99%" rows="10" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><span class="fCred">*</span> <label for="userNm">첨부파일</label></th>
|
||||
<td colspan="3" class="left">
|
||||
<c:import url="/common/fms/selectFileInfsForUpdate.do" charEncoding="utf-8">
|
||||
<c:param name="param_atchFileId"/>
|
||||
</c:import>
|
||||
<div><input name="file_" id="egovComFileUploaderReply" type="file" /></div>
|
||||
<div id="egovComFileListReply"></div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div class="mt10 tR">
|
||||
<span class="btn_type_blue"><a href="#modify" onclick="return fn_egov_add_reply('${searchVO.parentUrl}');">등록</a></span>
|
||||
</div>
|
||||
</form:form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
function fn_egov_replyView(){
|
||||
if($("#replyView").css("display") == 'none'){
|
||||
$("#replyView").show();
|
||||
}else{
|
||||
$("#replyView").hide();
|
||||
}
|
||||
}
|
||||
|
||||
//팝업달력
|
||||
$("#compScdDate").datepicker({
|
||||
showOn: "button",
|
||||
buttonImage: "/images/dms/btn_calendar.gif",
|
||||
buttonImageOnly: true,
|
||||
changeMonth: true,
|
||||
changeYear: true,
|
||||
showOtherMonths: true,
|
||||
pageDirectLink: true,
|
||||
selectOtherMonths: true
|
||||
});
|
||||
|
||||
var defaultEndDate = $.datepicker.formatDate('yy-mm-dd', new Date());
|
||||
if($('#compScdDate').val() == ''){
|
||||
$('#compScdDate').val(defaultEndDate);
|
||||
}
|
||||
</script>
|
||||
310
src/main/webapp/WEB-INF/jsp/dms/dmsHdb/DmsHdbList.jsp
Normal file
310
src/main/webapp/WEB-INF/jsp/dms/dmsHdb/DmsHdbList.jsp
Normal file
@@ -0,0 +1,310 @@
|
||||
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"
|
||||
%><%@ include file="/common/taglib.jsp"
|
||||
%><%@ page import="egovframework.main.MainGlobals"
|
||||
%><%
|
||||
/**
|
||||
* @Class Name : DmsHdbList.jsp
|
||||
* @Description : DmsHdb List 화면
|
||||
* @Modification Information
|
||||
*
|
||||
* @author 한돈희
|
||||
* @since 2017-06-16
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* Copyright (C) All right reserved.
|
||||
*/
|
||||
%><script type="text/javascript" src="/js/dms/dmsHdb.js"></script>
|
||||
|
||||
<%@ page import="java.util.List" %>
|
||||
<%@ page import="egovframework.dms.hdb.vo.DmsHdbGraphVO" %>
|
||||
|
||||
<!-- Chart.js CDN -->
|
||||
<script src="/js/common/chart.umd.min.js"></script>
|
||||
<script src="/js/common/charts-plugin-datalabels.js"></script>
|
||||
|
||||
<c:set var="now" value="<%= new java.util.Date() %>" />
|
||||
<div class="location_box">
|
||||
<div class="loc_h3"><h3>${prjNm} <%=MainGlobals.MENU_HDB%>
|
||||
(<span class="year-text"><fmt:formatDate value="${now}" pattern="yyyy" /> 년 - </span><span class="sts-a">접수: ${hdbStsA}</span>,
|
||||
<span class="sts-b">처리중: ${hdbStsB}</span>,
|
||||
<span class="sts-c">완료: ${hdbStsC}</span> )
|
||||
</h3><span></span></div>
|
||||
<span class="loccation"><img src="/images/admin/loccation_home.png" alt="홈" /> > <strong><%=MainGlobals.MENU_HDB%></strong></span>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<div class="boardHead">
|
||||
<form:form commandName="searchVO" id="searchForm" action="${searchVO.parentUrl}" cssClass="form-inline" onsubmit="return fn_egov_searchSelectList('search', true);">
|
||||
<form:hidden path="bmode" />
|
||||
<form:hidden path="pageIndex" />
|
||||
<form:hidden path="hdbSeq" />
|
||||
|
||||
<label for="searchCondition" class="labHide">검색항목 선택</label>
|
||||
|
||||
<form:select path="searchCondition" title="검색분류">
|
||||
<form:option value="1">제목</form:option>
|
||||
</form:select>
|
||||
<form:input path="searchKeyword" title="검색" placeholder="검색어를 입력하세요" />
|
||||
<a href="#search" class="btn_search_gray" onclick="return fn_egov_searchSelectList('search', false);">검색</a>
|
||||
<div class="border_right">
|
||||
<span class="right_mar_10">Total ${paginationInfo.totalRecordCount} |<strong class="fCorange">${paginationInfo.currentPageNo}</strong> / ${paginationInfo.totalPageCount}</span>
|
||||
</div>
|
||||
</form:form>
|
||||
</div>
|
||||
|
||||
<table class="tbl_basic" summary="">
|
||||
<caption></caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>번호</th>
|
||||
<th>제목</th>
|
||||
<th>작성자</th>
|
||||
<th>첨부</th>
|
||||
<th>작성일</th>
|
||||
<th>조회수</th>
|
||||
<!-- <th>완료예정일</th> -->
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:if test="${empty resultList && empty searchVO.searchKeyword}">
|
||||
<tr>
|
||||
<td colspan="6" class="text-center">조회된 내용이 없습니다.</td>
|
||||
</tr>
|
||||
</c:if>
|
||||
<c:if test="${empty resultList && !empty searchVO.searchKeyword}">
|
||||
<tr>
|
||||
<td colspan="6" class="text-center"><mark>'${searchVO.searchKeyword }'</mark>으로 조회된 내용이 없습니다.</td>
|
||||
</tr>
|
||||
</c:if>
|
||||
<c:set var="number" value="${paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo-1) * paginationInfo.recordCountPerPage)}" />
|
||||
<c:forEach var="list" items="${resultList}" varStatus="status">
|
||||
<tr>
|
||||
<td>${number - status.index}</td>
|
||||
<td>
|
||||
<c:if test="${list.hdbSts == 'A' }">
|
||||
<span style="color:green;">(접수)</span>
|
||||
</c:if>
|
||||
<c:if test="${list.hdbSts == 'B' }">
|
||||
<span style="color:red;">(처리중)</span>
|
||||
</c:if>
|
||||
<c:if test="${list.hdbSts == 'C' }">
|
||||
<span style="color:blue;">(완료)</span>
|
||||
</c:if>
|
||||
|
||||
<a href="#view" onclick="return fn_egov_select('${list.hdbSeq}')">
|
||||
<c:choose>
|
||||
<c:when test="${empty list.title}">
|
||||
제목없음
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
${list.title}
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</a>
|
||||
</td>
|
||||
<td>${list.userNm }</td>
|
||||
<td>
|
||||
<c:if test="${empty list.atchFileId }">
|
||||
|
||||
</c:if>
|
||||
<c:if test="${!empty list.atchFileId }">
|
||||
<img src="/images/admin/cf_tit_ic.png">
|
||||
</c:if>
|
||||
</td>
|
||||
<td>${list.createDate}</td>
|
||||
<td>${list.rdCnt }</td>
|
||||
<%-- <td>${list.compScdDate}</td> --%>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div class="pagination"><ui:pagination paginationInfo="${paginationInfo}" type="image" jsFunction="fn_egov_link_page" /></div>
|
||||
|
||||
<div class="tR">
|
||||
<c:if test="${ROLE_CUS}">
|
||||
<span class="btn_type_blue"><a href="#add" onclick="return fn_egov_addView();">등록</a></span>
|
||||
</c:if>
|
||||
<c:if test="${!empty searchVO.searchKeyword}">
|
||||
<span class="btn_type_blue"><a href="#list" onclick="return fn_egov_searchSelectList('init', false);">목록</a></span>
|
||||
</c:if>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<%
|
||||
// 연간 월별 집계
|
||||
List<DmsHdbGraphVO> annualList =
|
||||
(List<DmsHdbGraphVO>) request.getAttribute("annualList");
|
||||
|
||||
StringBuilder sbLabels = new StringBuilder("[");
|
||||
StringBuilder sbData = new StringBuilder("[");
|
||||
|
||||
for (int i = 0; i < annualList.size(); i++) {
|
||||
DmsHdbGraphVO row = annualList.get(i);
|
||||
|
||||
sbLabels.append("\"").append(row.getMonth()).append("\"");
|
||||
sbData.append(row.getCnt());
|
||||
|
||||
if (i < annualList.size() - 1) {
|
||||
sbLabels.append(",");
|
||||
sbData.append(",");
|
||||
}
|
||||
}
|
||||
sbLabels.append("]");
|
||||
sbData.append("]");
|
||||
|
||||
// 한달 현황 (도넛)
|
||||
DmsHdbGraphVO monthlyList = (DmsHdbGraphVO) request.getAttribute("monthlyList");
|
||||
|
||||
int cntA = monthlyList.getHdbStsA(); // 접수
|
||||
int cntB = monthlyList.getHdbStsB(); // 처리중
|
||||
int cntC = monthlyList.getHdbStsC(); // 완료
|
||||
%>
|
||||
|
||||
<div class="chart-container">
|
||||
<!-- 막대 그래프 -->
|
||||
<div class="chart-box" style="flex:2;">
|
||||
<canvas id="yearChart"></canvas>
|
||||
</div>
|
||||
|
||||
<!-- 도넛 그래프 -->
|
||||
<div class="chart-box" style="flex:1; position:relative;">
|
||||
<canvas id="monthChart"></canvas>
|
||||
|
||||
<!-- 한달간 요청 0건 문구 -->
|
||||
<div id="noDataMsg"
|
||||
style="display:none; position:absolute; top:50%; left:50%;
|
||||
transform: translate(-50%, -50%);
|
||||
font-size:18px; color:#555; text-align:center;">
|
||||
한달간 요청이 0건입니다.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
/****************************************
|
||||
* 1) 연간 월별 바 차트
|
||||
****************************************/
|
||||
Chart.register(ChartDataLabels);
|
||||
|
||||
const annualLabels = <%= sbLabels.toString() %>;
|
||||
const annualData = <%= sbData.toString() %>;
|
||||
|
||||
new Chart(
|
||||
document.getElementById('yearChart'),
|
||||
{
|
||||
type: 'bar',
|
||||
data: {
|
||||
labels: annualLabels,
|
||||
datasets: [{
|
||||
label: '월별 요청수',
|
||||
data: annualData,
|
||||
backgroundColor: 'rgba(255, 206, 86, 0.6)', // 노란색
|
||||
borderColor: 'rgba(255, 206, 86, 1)',
|
||||
borderWidth: 1,
|
||||
borderRadius: 4
|
||||
}]
|
||||
},
|
||||
options: {
|
||||
responsive: true,
|
||||
|
||||
plugins: {
|
||||
title: {
|
||||
display: true,
|
||||
text: '2025년 월별 요청 통계',
|
||||
font: { size: 20, weight: 'bold' },
|
||||
padding: { top: 10, bottom: 20 }
|
||||
},
|
||||
tooltip: {
|
||||
callbacks: {
|
||||
title: function(tooltipItems) {
|
||||
const label = tooltipItems[0].label;
|
||||
return label + '월';
|
||||
},
|
||||
|
||||
label: function(context) {
|
||||
return '요청건수: ' + context.parsed.y;
|
||||
}
|
||||
}
|
||||
},
|
||||
datalabels: {
|
||||
anchor: 'end',
|
||||
align: 'end',
|
||||
color: '#333',
|
||||
font: { size: 12, weight: 'bold' },
|
||||
formatter: function(value) {
|
||||
return value + '건';
|
||||
}
|
||||
}
|
||||
},
|
||||
scales: {
|
||||
x: {
|
||||
title: {
|
||||
display: true,
|
||||
text: '월',
|
||||
color: '#333',
|
||||
font: { size: 14 }
|
||||
}
|
||||
},
|
||||
|
||||
y: {
|
||||
title: { display: true,
|
||||
text: '요청건수',
|
||||
color: '#333',
|
||||
font: { size: 14 }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
/****************************************
|
||||
* 2) 한달 현황 도넛 차트
|
||||
****************************************/
|
||||
const cntA = <%= cntA %>; // 접수
|
||||
const cntB = <%= cntB %>; // 처리중
|
||||
const cntC = <%= cntC %>; // 완료
|
||||
|
||||
const monthChartCanvas = document.getElementById('monthChart');
|
||||
const noDataMsg = document.getElementById('noDataMsg');
|
||||
|
||||
// 0건 여부 체크
|
||||
if (cntA === 0 && cntB === 0 && cntC === 0) {
|
||||
// 차트 숨기고 문구 표시
|
||||
monthChartCanvas.style.display = "none";
|
||||
noDataMsg.style.display = "block";
|
||||
} else {
|
||||
// 차트 표시
|
||||
monthChartCanvas.style.display = "block";
|
||||
noDataMsg.style.display = "none";
|
||||
|
||||
new Chart(monthChartCanvas, {
|
||||
type: 'doughnut',
|
||||
data: {
|
||||
labels: ['접수', '처리중', '완료'],
|
||||
datasets: [{
|
||||
data: [cntA, cntB, cntC],
|
||||
backgroundColor: [
|
||||
'rgba(75,192,192,0.7)', // 접수 - 초록
|
||||
'rgba(255,99,132,0.7)', // 처리중 - 빨강
|
||||
'rgba(54,162,235,0.7)' // 완료 - 파랑
|
||||
],
|
||||
borderWidth: 1
|
||||
}]
|
||||
},
|
||||
options: {
|
||||
responsive: true,
|
||||
plugins: {
|
||||
legend: { position: 'bottom' },
|
||||
title: {
|
||||
display: true,
|
||||
text: '최근 한달간 요청현황',
|
||||
font: { size: 20, weight: 'bold' },
|
||||
padding: { top: 10, bottom: 20 }
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
163
src/main/webapp/WEB-INF/jsp/dms/dmsHdb/DmsHdbRegister.jsp
Normal file
163
src/main/webapp/WEB-INF/jsp/dms/dmsHdb/DmsHdbRegister.jsp
Normal file
@@ -0,0 +1,163 @@
|
||||
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"
|
||||
%><%@ include file="/common/taglib.jsp"
|
||||
%><%@ page import="egovframework.main.MainGlobals"
|
||||
%><%
|
||||
/**
|
||||
* @Class Name : DmsHdbRegist.jsp
|
||||
* @Description : DmsHdb Regist 화면
|
||||
* @Modification Information
|
||||
*
|
||||
* @author 한돈희
|
||||
* @since 2017-06-16
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* Copyright (C) All right reserved.
|
||||
*/
|
||||
%><script type="text/javascript" src="/js/dms/dmsHdb.js"></script>
|
||||
<script type="text/javascript" src="/js/common/EgovMultiFile.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
function validateLocal() {
|
||||
var title = document.getElementsByName("title")[0].value.trim();
|
||||
var contents = document.getElementsByName("contents")[0].value.trim();
|
||||
|
||||
if (title === "") {
|
||||
alert("제목을 입력해 주십시오.");
|
||||
return false;
|
||||
}
|
||||
if (contents === "") {
|
||||
alert("내용을 입력해 주십시오.");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
</script>
|
||||
|
||||
<form:form commandName="dmsHdbVO" id="detailForm" action="${searchVO.parentUrl}" enctype="multipart/form-data" class="form-horizontal">
|
||||
<input type="hidden" name="bmode" value="${searchVO.bmode}" />
|
||||
<input type="hidden" name="searchCondition" value="${searchVO.searchCondition}" />
|
||||
<input type="hidden" name="searchKeyword" value="${searchVO.searchKeyword}" />
|
||||
<input type="hidden" name="pageIndex" value="${searchVO.pageIndex}" />
|
||||
<form:hidden path="prjSeq" value="${prjSeq }" />
|
||||
<div class="location_box">
|
||||
<div class="loc_h3"><h3>${prjNm} <%=MainGlobals.MENU_HDB%></h3><span></span></div>
|
||||
<span class="loccation"><img src="/images/admin/loccation_home.png" alt="홈" /> > <strong><%=MainGlobals.MENU_HDB%></strong></span>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<table class="tbl_basic_view">
|
||||
<caption>글작성</caption>
|
||||
<colgroup>
|
||||
<col style="width:15%">
|
||||
<col style="width:35%">
|
||||
<col style="width:15%">
|
||||
<col style="width:*">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row"><span class="fCred">*</span> <label for="title">제목</label></th>
|
||||
<td colspan="3" class="left"><form:input path="title" cssStyle="width:99%;"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><span class="fCred">*</span> <label for="userNm">작성자</label></th>
|
||||
<td class="left">
|
||||
<input type="text" name="userNm" value="${loginVO.name }" readonly>
|
||||
<input type="hidden" name="userId" value="${loginVO.id }">
|
||||
</td>
|
||||
<th scope="row"><span class="fCred">*</span> <label for="tel">SMS수신여부</label></th>
|
||||
<td class="left">
|
||||
<form:select path="smsYn">
|
||||
<form:option value="Y">Y</form:option>
|
||||
<form:option value="N">N</form:option>
|
||||
</form:select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><span class="fCred">*</span> <label for="tel">연락처</label></th>
|
||||
<td class="left">
|
||||
<input type="text" name="tel" value="${loginVO.tel }">
|
||||
</td>
|
||||
<th scope="row"><span class="fCred">*</span> <label for="email">이메일</label></th>
|
||||
<td class="left">
|
||||
<input type="text" name="email" value="${loginVO.email }">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="userNm">내용</label></th>
|
||||
<td colspan="3" class="left">
|
||||
<form:textarea path="contents" cssStyle="width:99%" rows="10" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><span class="fCred">*</span> <label for="userNm">첨부파일</label></th>
|
||||
<td colspan="3" class="left">
|
||||
<div><input name="file_" id="egovComFileUploader" type="file" /></div>
|
||||
<c:import url="/common/fms/selectFileInfsForUpdate.do" charEncoding="utf-8">
|
||||
<c:param name="param_atchFileId" value="${dmsHdbVO.atchFileId }"/>
|
||||
</c:import>
|
||||
<div id="egovComFileList"></div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<div class="mt10 tR">
|
||||
<c:if test="${empty dmsHdbVO.hdbSeq}">
|
||||
<span class="btn_type_blue">
|
||||
<a href="#add" onclick="return validateLocal() && fn_egov_add('${searchVO.parentUrl}');">저장</a>
|
||||
</span>
|
||||
</c:if>
|
||||
<c:if test="${!empty dmsHdbVO.hdbSeq}">
|
||||
<span class="btn_type_blue">
|
||||
<a href="#modify" onclick="return validateLocal() && fn_egov_update('${searchVO.parentUrl}');">저장</a>
|
||||
</span>
|
||||
</c:if>
|
||||
<span class="btn_type_gray"><a href="#list" onclick="return fn_egov_selectList();">목록</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</form:form>
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
//첨부파일
|
||||
var maxFileNum = 100;
|
||||
var multi_selector = new MultiSelector( document.getElementById( 'egovComFileList' ), maxFileNum );
|
||||
multi_selector.addElement( document.getElementById( 'egovComFileUploader' ) );
|
||||
});
|
||||
</script>
|
||||
|
||||
<%--
|
||||
// 첨부파일
|
||||
<script type="text/javascript" src="/js/common/EgovMultiFile.js"></script>
|
||||
<c:import url="/common/fms/selectFileInfsForUpdate.do" charEncoding="utf-8">
|
||||
<c:param name="param_atchFileId" value="${dmsHdbVO.attachFileId }"/>
|
||||
</c:import>
|
||||
<div><input name="file_" id="egovComFileUploader" type="file" /></div>
|
||||
<div id="egovComFileList"></div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var maxFileNum = 100;
|
||||
var multi_selector = new MultiSelector( document.getElementById( 'egovComFileList' ), maxFileNum );
|
||||
multi_selector.addElement( document.getElementById( 'egovComFileUploader' ) );
|
||||
</script>
|
||||
|
||||
// 팝업달력
|
||||
<script type="text/javascript" src="/js/common/calendar/jquery-ui.js"></script>
|
||||
<script type="text/javascript" src="/js/common/calendar/jquery.ui.datepicker-ko.js"></script>
|
||||
<link type="text/css" href="/css/common/calendar/smoothness/jquery-ui.css" rel="stylesheet" />
|
||||
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
// 팝업달력 설정
|
||||
$("#createDate").datepicker({
|
||||
showOn: "button",
|
||||
buttonImage: "/images/contents/btn_calendar.gif",
|
||||
buttonImageOnly: true,
|
||||
changeMonth: true,
|
||||
changeYear: true,
|
||||
showOtherMonths: true,
|
||||
pageDirectLink: true,
|
||||
selectOtherMonths: true
|
||||
});
|
||||
</script>
|
||||
--%>
|
||||
Reference in New Issue
Block a user