관리자/사용자 기소유예 교육문의 기능
This commit is contained in:
parent
41ff71b2da
commit
54669eda30
@ -19,6 +19,7 @@ import org.springframework.web.bind.annotation.ModelAttribute;
|
|||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
||||||
|
|
||||||
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
|
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
|
||||||
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
|
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
|
||||||
@ -33,7 +34,9 @@ import kcc.com.cmm.util.StringUtil;
|
|||||||
import kcc.com.utl.user.service.CheckFileUtil;
|
import kcc.com.utl.user.service.CheckFileUtil;
|
||||||
import kcc.com.utl.user.service.CheckLoginUtil;
|
import kcc.com.utl.user.service.CheckLoginUtil;
|
||||||
import kcc.let.uat.uia.service.SsoLoginVO;
|
import kcc.let.uat.uia.service.SsoLoginVO;
|
||||||
|
import kcc.let.utl.fcc.service.EgovCryptoUtil;
|
||||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
|
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
|
||||||
|
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsCntntVO;
|
||||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
|
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
|
||||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsOnlnCntntService;
|
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsOnlnCntntService;
|
||||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService;
|
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService;
|
||||||
@ -111,6 +114,10 @@ public class CndtnTrgtMngController {
|
|||||||
@Resource(name = "EgovCmmUseService")
|
@Resource(name = "EgovCmmUseService")
|
||||||
private EgovCmmUseService egovCmmUseService;
|
private EgovCmmUseService egovCmmUseService;
|
||||||
|
|
||||||
|
//암복호화 유틸
|
||||||
|
@Resource(name = "egovCryptoUtil")
|
||||||
|
EgovCryptoUtil egovCryptoUtil;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
// 교육신청 서비스단
|
// 교육신청 서비스단
|
||||||
@ -773,6 +780,135 @@ public class CndtnTrgtMngController {
|
|||||||
return "oprtn/cndtnSspnIdtmt/trgtMngMdfy";
|
return "oprtn/cndtnSspnIdtmt/trgtMngMdfy";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduQnaMngList.do")
|
||||||
|
public String cndtnEduQnaMngList(
|
||||||
|
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||||
|
, ModelMap model
|
||||||
|
) throws Exception {
|
||||||
|
|
||||||
|
//로그인 처리====================================
|
||||||
|
//로그인 정보 가져오기
|
||||||
|
|
||||||
|
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
|
||||||
|
if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo;
|
||||||
|
|
||||||
|
//로그인 처리====================================
|
||||||
|
|
||||||
|
//1.pageing step1
|
||||||
|
PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO);
|
||||||
|
|
||||||
|
//임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함
|
||||||
|
//paginationInfo.setRecordCountPerPage(10000);
|
||||||
|
|
||||||
|
//2. pageing step2
|
||||||
|
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
|
||||||
|
|
||||||
|
//기반강화 조회
|
||||||
|
vEPrcsDetailVO.setLctrDivCd("60"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||||
|
|
||||||
|
// if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){
|
||||||
|
// String selectCondition = "AND a.PRCS_NM LIKE CONCAT ('%', '" +vEPrcsDetailVO.getSearchKeyword() + "', '%')";
|
||||||
|
// vEPrcsDetailVO.setSelectPagingListQuery(selectCondition);
|
||||||
|
// }
|
||||||
|
|
||||||
|
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsService.selectQnaPagingList(vEPrcsDetailVO);
|
||||||
|
|
||||||
|
//3.pageing step3
|
||||||
|
paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo);
|
||||||
|
|
||||||
|
|
||||||
|
model.addAttribute("paginationInfo", paginationInfo);
|
||||||
|
|
||||||
|
// 사용자 이름 디코딩
|
||||||
|
vEPrcsDetailVOList.stream().forEach(t->t.setMberNm(egovCryptoUtil.decrypt(t.getMberNm())));
|
||||||
|
|
||||||
|
|
||||||
|
//대상 리스트, 페이징 정보 전달
|
||||||
|
model.addAttribute("list", vEPrcsDetailVOList);
|
||||||
|
|
||||||
|
|
||||||
|
return "oprtn/cndtnSspnIdtmt/cndtnEduQnaMngList";
|
||||||
|
// return "oprtn/fndthEnhanceTrn/fndthEduQnaMngList";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @methodName : cndtnEduQnaMngDetail
|
||||||
|
* @author : 이호영
|
||||||
|
* @date : 2023.11.21
|
||||||
|
* @description :
|
||||||
|
* @param vEPrcsDetailVO
|
||||||
|
* @param model
|
||||||
|
* @param redirectAttributes
|
||||||
|
* @param session
|
||||||
|
* @param request
|
||||||
|
* @return
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduQnaMngDetail.do")
|
||||||
|
public String cndtnEduQnaMngDetail(
|
||||||
|
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||||
|
|
||||||
|
, ModelMap model
|
||||||
|
, RedirectAttributes redirectAttributes
|
||||||
|
, HttpSession session
|
||||||
|
, HttpServletRequest request
|
||||||
|
) throws Exception {
|
||||||
|
|
||||||
|
//로그인 처리====================================
|
||||||
|
//로그인 정보 가져오기
|
||||||
|
System.out.println("vEPrcsDetailVO.getPrcsAplctPrdQnaOrd() : "+ vEPrcsDetailVO.getPrcsAplctPrdQnaOrd());
|
||||||
|
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||||
|
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||||
|
|
||||||
|
//로그인 처리====================================
|
||||||
|
|
||||||
|
//과정 조회
|
||||||
|
VEPrcsDetailVO vEPrcsQnaDetail = vEPrcsService.selectQnaDetail(vEPrcsDetailVO);
|
||||||
|
vEPrcsQnaDetail.setMberNm(egovCryptoUtil.decrypt(vEPrcsQnaDetail.getMberNm()));
|
||||||
|
|
||||||
|
model.addAttribute("info", vEPrcsQnaDetail);
|
||||||
|
//세부과정 목록 조회
|
||||||
|
|
||||||
|
return "oprtn/cndtnSspnIdtmt/cndtnEduQnaMngDetail";
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduQnaMngUpdateAjax.do")
|
||||||
|
public ModelAndView cndtnEduQnaMngUpdateAjax(
|
||||||
|
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||||
|
, ModelMap model
|
||||||
|
, HttpServletRequest request
|
||||||
|
) throws Exception {
|
||||||
|
|
||||||
|
ModelAndView modelAndView = new ModelAndView();
|
||||||
|
modelAndView.setViewName("jsonView");
|
||||||
|
|
||||||
|
//로그인 처리====================================
|
||||||
|
//로그인 정보 가져오기
|
||||||
|
|
||||||
|
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
|
||||||
|
if (!"".equals(s_oprtnLoginCheckNInfo)) {
|
||||||
|
modelAndView.addObject("result", "loginFail");
|
||||||
|
return modelAndView;
|
||||||
|
}
|
||||||
|
|
||||||
|
//로그인 처리====================================
|
||||||
|
|
||||||
|
|
||||||
|
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||||
|
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||||
|
|
||||||
|
vEPrcsDetailVO.setLastUpdusrId(loginVO.getUniqId()); //esntl_id
|
||||||
|
vEPrcsDetailVO.setQnaAnswerer(loginVO.getUniqId()); //esntl_id
|
||||||
|
vEPrcsService.qnaUpdate(vEPrcsDetailVO);
|
||||||
|
|
||||||
|
|
||||||
|
//세부과정 지우고 다시 생성
|
||||||
|
VEPrcsCntntVO vEPrcsCntntVO = new VEPrcsCntntVO();
|
||||||
|
vEPrcsCntntVO.setPrcsOrd(vEPrcsDetailVO.getPrcsOrd());
|
||||||
|
modelAndView.addObject("result", "success");
|
||||||
|
return modelAndView;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -816,7 +952,6 @@ public class CndtnTrgtMngController {
|
|||||||
return p_vEPrcsDetailVO;
|
return p_vEPrcsDetailVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기
|
//페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기
|
||||||
private PaginationInfo setPagingStep3(
|
private PaginationInfo setPagingStep3(
|
||||||
List<VEPrcsDetailVO> p_vEPrcsDetailVOList
|
List<VEPrcsDetailVO> p_vEPrcsDetailVOList
|
||||||
|
|||||||
@ -567,6 +567,7 @@ public class FndthPrcsInfoMngController {
|
|||||||
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||||
|
|
||||||
vEPrcsDetailVO.setLastUpdusrId(loginVO.getUniqId()); //esntl_id
|
vEPrcsDetailVO.setLastUpdusrId(loginVO.getUniqId()); //esntl_id
|
||||||
|
vEPrcsDetailVO.setQnaAnswerer(loginVO.getUniqId()); //esntl_id
|
||||||
vEPrcsService.qnaUpdate(vEPrcsDetailVO);
|
vEPrcsService.qnaUpdate(vEPrcsDetailVO);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1355,7 +1355,7 @@
|
|||||||
, QNA_ANSWERER as qnaAnswerer
|
, QNA_ANSWERER as qnaAnswerer
|
||||||
, TO_CHAR(FRST_REGIST_PNTTM, 'YYYY-MM-DD') as frstRegistPnttm
|
, TO_CHAR(FRST_REGIST_PNTTM, 'YYYY-MM-DD') as frstRegistPnttm
|
||||||
, FRST_REGISTER_ID as frstRegisterId
|
, FRST_REGISTER_ID as frstRegisterId
|
||||||
, TO_CHAR(LAST_UPDT_PNTTM, 'YYYY-MM-DD') as frstRegistPnttm
|
, TO_CHAR(LAST_UPDT_PNTTM, 'YYYY-MM-DD') as lastUpdtPnttm
|
||||||
, LAST_UPDUSR_ID as lastUpdusrId
|
, LAST_UPDUSR_ID as lastUpdusrId
|
||||||
FROM
|
FROM
|
||||||
VEA_PRCS_APLCT_PRD_QNA
|
VEA_PRCS_APLCT_PRD_QNA
|
||||||
|
|||||||
@ -419,6 +419,7 @@
|
|||||||
|
|
||||||
UPDATE VEA_PRCS_APLCT_PRD_QNA SET
|
UPDATE VEA_PRCS_APLCT_PRD_QNA SET
|
||||||
QNA_ANSWER_CN = #qnaAnswerCn#
|
QNA_ANSWER_CN = #qnaAnswerCn#
|
||||||
|
, QNA_ANSWERER = #qnaAnswerer#
|
||||||
, LAST_UPDUSR_ID = #lastUpdusrId#
|
, LAST_UPDUSR_ID = #lastUpdusrId#
|
||||||
, LAST_UPDT_PNTTM = SYSDATE
|
, LAST_UPDT_PNTTM = SYSDATE
|
||||||
WHERE PRCS_APLCT_PRD_QNA_ORD = #prcsAplctPrdQnaOrd#
|
WHERE PRCS_APLCT_PRD_QNA_ORD = #prcsAplctPrdQnaOrd#
|
||||||
|
|||||||
@ -0,0 +1,197 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=utf-8"
|
||||||
|
pageEncoding="utf-8"%>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||||
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||||
|
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||||
|
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||||
|
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
|
||||||
|
<%
|
||||||
|
/**
|
||||||
|
* @Class Name : fndthEduPrcsMngDetail.jsp
|
||||||
|
* @Description : 기반강화연수 상세화면
|
||||||
|
* @Modification Information
|
||||||
|
* @
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------- -------- ---------------------------
|
||||||
|
* @ 2021.12.16 조용준 최초 생성
|
||||||
|
* @author 조용주
|
||||||
|
* @since 2021.12.16
|
||||||
|
* @version 1.0
|
||||||
|
* @see
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
%>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title>교육과정관리</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function fncGoList(){
|
||||||
|
var listForm = document.listForm ;
|
||||||
|
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduQnaMngList.do'/>";
|
||||||
|
listForm.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateQnaAnswerCn(){
|
||||||
|
$("#prvtMemoCn").val($("#hiddenMemo").val());
|
||||||
|
|
||||||
|
var data1 = new FormData(document.getElementById("detailForm"));
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type:"POST",
|
||||||
|
url:"${pageContext.request.contextPath}/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduQnaMngUpdateAjax.do",
|
||||||
|
data:data1,
|
||||||
|
dataType:'json',
|
||||||
|
async: false,
|
||||||
|
processData: false,
|
||||||
|
contentType: false,
|
||||||
|
cache: false,
|
||||||
|
success:function(returnData){
|
||||||
|
if(returnData.result == "success"){
|
||||||
|
alert("저장 되었습니다.");
|
||||||
|
// location.reload();
|
||||||
|
fncGoList();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error:function(request , status, error){
|
||||||
|
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<form id="listForm" name="listForm" method="post">
|
||||||
|
</form>
|
||||||
|
<form:form id="detailForm" name="detailForm" commandName="vEPrcsDetailVO" method="post">
|
||||||
|
<input type="hidden" name="prcsAplctPrdQnaOrd" id="prcsAplctPrdQnaOrd" value="<c:out value='${vEPrcsDetailVO.prcsAplctPrdQnaOrd}' />"/>
|
||||||
|
<!-- cont -->
|
||||||
|
<div class="cont_wrap">
|
||||||
|
<div class="box">
|
||||||
|
|
||||||
|
<!-- cont_tit -->
|
||||||
|
<div class="cont_tit">
|
||||||
|
<h2>교육문의상세</h2>
|
||||||
|
<ul class="cont_nav">
|
||||||
|
<li class="home"><a href="/"><i></i></a></li>
|
||||||
|
<li>
|
||||||
|
<p>조건부기소유예관리</p>
|
||||||
|
</li>
|
||||||
|
<li><span class="cur_nav">교육문의상세</span></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<!-- //cont_tit -->
|
||||||
|
|
||||||
|
<div class="cont">
|
||||||
|
<!-- list_상세 -->
|
||||||
|
<div class="tb_tit01">
|
||||||
|
<p>교육문의상세</p>
|
||||||
|
</div>
|
||||||
|
<div class="tb_type02">
|
||||||
|
<table>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 210px;">
|
||||||
|
<col style="width: auto;">
|
||||||
|
<col style="width: 210px;">
|
||||||
|
<col style="width: auto;">
|
||||||
|
</colgroup>
|
||||||
|
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th scope="row">질문자ID</th>
|
||||||
|
<td>
|
||||||
|
<c:out value='${info.qnaRegist}' />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th scope="row">질문자 이름</th>
|
||||||
|
<td>
|
||||||
|
<c:out value='${info.mberNm}' />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th scope="row">질문내용</th>
|
||||||
|
<td>
|
||||||
|
<c:out value='${info.qnaCn}' />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th scope="row">답변상태</th>
|
||||||
|
<td>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${empty info.qnaAnswerCn }">
|
||||||
|
미완료
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
완료
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th scope="row">답변일시</th>
|
||||||
|
<td>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${empty info.lastUpdtPnttm }">
|
||||||
|
-
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<c:out value='${info.lastUpdtPnttm }'/>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- //list_상세 -->
|
||||||
|
<!-- 비공개 메보 정보 -->
|
||||||
|
<div class="tb_tit01">
|
||||||
|
<p>답변</p>
|
||||||
|
</div>
|
||||||
|
<div class="tb_type02">
|
||||||
|
<table>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 220px;">
|
||||||
|
<col style="width: auto;">
|
||||||
|
</colgroup>
|
||||||
|
<tr>
|
||||||
|
<th scope="row">
|
||||||
|
<p>내용</p>
|
||||||
|
</th>
|
||||||
|
<td class="tb_alram">
|
||||||
|
<div>
|
||||||
|
<textarea name="qnaAnswerCn" id="qnaAnswerCn"><c:out value="${info.qnaAnswerCn}" /></textarea>
|
||||||
|
<button type="button" class="btn_type08" onclick="updateQnaAnswerCn(); return false;">답변 등록</button>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- //list_상세 -->
|
||||||
|
|
||||||
|
<!-- btn_wrap -->
|
||||||
|
<div class="btn_wrap btn_layout01">
|
||||||
|
<div class="btn_left">
|
||||||
|
</div>
|
||||||
|
<div class="btn_center">
|
||||||
|
</div>
|
||||||
|
<div class="btn_right">
|
||||||
|
<button type="button" class="btn_type03" onclick="fncGoList(); return false;">목록</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form:form>
|
||||||
|
<!-- //cont -->
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -0,0 +1,260 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||||
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||||
|
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||||
|
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
|
||||||
|
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||||
|
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
|
||||||
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
|
||||||
|
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||||
|
<un:useConstants var="KccadrStatus" className="kcc.kccadr.cmm.KccadrConstants" />
|
||||||
|
<%
|
||||||
|
/**
|
||||||
|
* @Class Name : fndthEduQnaMngList.jsp
|
||||||
|
* @Description : 기반강화연수 과정관리 목록
|
||||||
|
* @Modification Information
|
||||||
|
* @
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------- -------- ---------------------------
|
||||||
|
* @ 2023.11.17 이호영 최초 생성
|
||||||
|
* @author 조용준
|
||||||
|
* @since 2021.12.14
|
||||||
|
* @version 1.0
|
||||||
|
* @see
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
%>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
|
<style>
|
||||||
|
input:read-only{
|
||||||
|
background-color: #ededed;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
function fncGoList(){
|
||||||
|
linkPage(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
function linkPage(pageNo){
|
||||||
|
var listForm = document.listForm ;
|
||||||
|
listForm.pageIndex.value = pageNo ;
|
||||||
|
listForm.searchKeyword.value = $('#searchKeyword').val();
|
||||||
|
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduQnaMngList.do'/>";
|
||||||
|
listForm.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function fncGoDetail(prcsAplctPrdQnaOrd){
|
||||||
|
var form = document.detailForm ;
|
||||||
|
form.prcsAplctPrdQnaOrd.value = prcsAplctPrdQnaOrd ;
|
||||||
|
form.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduQnaMngDetail.do'/>";
|
||||||
|
form.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
function fncDelete(prcsOrd){
|
||||||
|
document.listForm.prcsOrd.value = prcsOrd ;
|
||||||
|
|
||||||
|
var pageIndex = document.listForm.pageIndex.value;
|
||||||
|
if($(".listCount").length == '1'){
|
||||||
|
pageIndex = pageIndex -1;
|
||||||
|
}
|
||||||
|
var data = new FormData(document.getElementById("listForm"));
|
||||||
|
if(confirm("삭제하시겠습니까?")){
|
||||||
|
var url = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngDeleteAjax.do'/>";
|
||||||
|
console.log(data);
|
||||||
|
$.ajax({
|
||||||
|
type:"POST",
|
||||||
|
url: url,
|
||||||
|
data: data,
|
||||||
|
dataType:'json',
|
||||||
|
async: false,
|
||||||
|
processData: false,
|
||||||
|
contentType: false,
|
||||||
|
cache: false,
|
||||||
|
success:function(returnData){
|
||||||
|
if(returnData.result == "success"){
|
||||||
|
alert("삭제되었습니다.");
|
||||||
|
document.listForm.prcsOrd.value = ""; //리스트 이동시 prcsOrd 초기화
|
||||||
|
linkPage(pageIndex);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error:function(request , status, error){
|
||||||
|
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
event.stopImmediatePropagation();
|
||||||
|
|
||||||
|
} */
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<title>교육문의</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<form id="detailForm" name="detailForm" method="post">
|
||||||
|
<input type="hidden" id="prcsAplctPrdQnaOrd" name="prcsAplctPrdQnaOrd" value="" />
|
||||||
|
|
||||||
|
</form>
|
||||||
|
<form:form id="listForm" name="listForm" method="post" commandName="vEPrcsDetailVO" onsubmit="return false;">
|
||||||
|
<input type="hidden" name="pageIndex" value="<c:out value='${vEPrcsDetailVO.pageIndex}' default='1' />"/>
|
||||||
|
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEPrcsDetailVO.searchSortCnd}" />" />
|
||||||
|
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEPrcsDetailVO.searchSortOrd}" />" />
|
||||||
|
<input type="hidden" id="prcsOrd" name="prcsOrd" value="" />
|
||||||
|
<input type="hidden" id="prcsSortNo" name="prcsSortNo" value="" />
|
||||||
|
|
||||||
|
<div class="cont_wrap">
|
||||||
|
<div class="box">
|
||||||
|
|
||||||
|
<!-- cont_tit -->
|
||||||
|
<div class="cont_tit">
|
||||||
|
<h2>교육문의목록</h2>
|
||||||
|
<ul class="cont_nav">
|
||||||
|
<li class="home"><a href="/"><i></i></a></li>
|
||||||
|
<li>
|
||||||
|
<p>조건부기소유예관리</p>
|
||||||
|
</li>
|
||||||
|
<li><span class="cur_nav">교육문의목록</span></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<!-- //cont_tit -->
|
||||||
|
|
||||||
|
<div class="cont">
|
||||||
|
<div class="tb_tit01">
|
||||||
|
<p>교육 문의 관리</p>
|
||||||
|
</div>
|
||||||
|
<!-- list_top -->
|
||||||
|
<div class="list_top search-only">
|
||||||
|
<div class="list_top_1">
|
||||||
|
<div class="util_right">
|
||||||
|
|
||||||
|
<ve:select codeId="VEA001" name="searchStatus" id="searchStatus" css="class='sel_type1'"
|
||||||
|
selectedValue="${vEPrcsDetailVO.searchStatus }" defaultValue=""
|
||||||
|
defaultText="전체"
|
||||||
|
/>
|
||||||
|
<div class="calendar_wrap">
|
||||||
|
<input type="text" class="calendar" title="시작일 선택" id="searchSmbtStartDt" name="searchSmbtStartDt" value="${vEPrcsDetailVO.searchSmbtStartDt}">
|
||||||
|
</div>
|
||||||
|
~
|
||||||
|
<div class="calendar_wrap">
|
||||||
|
<input type="text" class="calendar" title="종료일 선택" id="searchSmbtEndDt" name="searchSmbtEndDt" value="${vEPrcsDetailVO.searchSmbtEndDt}">
|
||||||
|
</div>
|
||||||
|
<input type="text" id="searchKeyword" name="searchKeyword" placeholder="과정명를 입력하세요." title="검색어 입력" class="search_input" value="<c:out value='${vEEduAplctVO.searchFullName}'/>">
|
||||||
|
<button type="button" class="btn_type08" onclick="fncGoList(); return false;">검색</button>
|
||||||
|
<button class="btn_type03" onclick="fncReset(this); return false;">초기화</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="list_util">
|
||||||
|
<p class="list_util_p"><span><c:out value="${paginationInfo.totalRecordCount}" /></span>건의 접수가 검색되었습니다.</p>
|
||||||
|
<div>
|
||||||
|
<select class="sel_type1" name="pageUnit" id="pageUnit" onchange="linkPage(1);" title="줄 선택" style="width: 140px" class="sel_type1">
|
||||||
|
<option value='10' <c:if test="${vEPrcsDetailVO.pageUnit == '10' or vEPrcsDetailVO.pageUnit == ''}">selected</c:if>>10줄</option>
|
||||||
|
<option value='20' <c:if test="${vEPrcsDetailVO.pageUnit == '20'}">selected</c:if>>20줄</option>
|
||||||
|
<option value='30' <c:if test="${vEPrcsDetailVO.pageUnit == '30'}">selected</c:if>>30줄</option>
|
||||||
|
<option value='100' <c:if test="${vEPrcsDetailVO.pageUnit == '100'}">selected</c:if>>100줄</option>
|
||||||
|
</select>
|
||||||
|
<%--<button type="button" class="btn_down_excel">엑셀 다운로드</button>--%>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- //list_top -->
|
||||||
|
|
||||||
|
|
||||||
|
<!-- list -->
|
||||||
|
<div class="tb_type01">
|
||||||
|
<table>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 20%">
|
||||||
|
<col style="width: 10%">
|
||||||
|
<col style="width: auto">
|
||||||
|
<col style="width: 10%">
|
||||||
|
<col style="width: 10%">
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>질문자ID</th>
|
||||||
|
<th>질문자이름</th>
|
||||||
|
<th>질문내용</th>
|
||||||
|
<th>답변상태</th>
|
||||||
|
<th>질문일시</th>
|
||||||
|
<th>답변일시</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:forEach var="list" items="${list}" varStatus="status">
|
||||||
|
<tr class="listCount">
|
||||||
|
<td>
|
||||||
|
<c:out value='${list.qnaRegist }'/>
|
||||||
|
</td>
|
||||||
|
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdQnaOrd}"/>');" style="cursor:pointer;">
|
||||||
|
<c:out value='${list.mberNm}'/>
|
||||||
|
</td>
|
||||||
|
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdQnaOrd}"/>');" style="cursor:pointer;">
|
||||||
|
<c:out value='${list.qnaCn}'/>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${empty list.qnaAnswerCn }">
|
||||||
|
미완료
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
완료
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<c:out value='${list.frstRegistPnttm }'/>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${empty list.lastUpdtPnttm }">
|
||||||
|
-
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<c:out value='${list.lastUpdtPnttm }'/>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
<c:if test="${empty list}">
|
||||||
|
<tr><td colspan="5"><spring:message code="common.nodata.msg" /></td></tr>
|
||||||
|
</c:if>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- //list -->
|
||||||
|
|
||||||
|
<!-- page -->
|
||||||
|
<div class="page">
|
||||||
|
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
|
||||||
|
</div>
|
||||||
|
<div class="btn_wrap btn_layout01">
|
||||||
|
<div class="btn_left">
|
||||||
|
</div>
|
||||||
|
<div class="btn_center">
|
||||||
|
</div>
|
||||||
|
<div class="btn_right">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- //page -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- //cont -->
|
||||||
|
<!-- //cont -->
|
||||||
|
|
||||||
|
</form:form>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -139,11 +139,11 @@
|
|||||||
<th scope="row">답변일시</th>
|
<th scope="row">답변일시</th>
|
||||||
<td>
|
<td>
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="${empty list.lastUpdtPnttm }">
|
<c:when test="${empty info.lastUpdtPnttm }">
|
||||||
-
|
-
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:otherwise>
|
<c:otherwise>
|
||||||
<c:out value='${list.lastUpdtPnttm }'/>
|
<c:out value='${info.lastUpdtPnttm }'/>
|
||||||
</c:otherwise>
|
</c:otherwise>
|
||||||
</c:choose>
|
</c:choose>
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user