Merge branch 'advc' of http://yongjoon.cho@vcs.iten.co.kr:9999/hylee/offedu into advc
This commit is contained in:
commit
599bf2e2f7
@ -28,6 +28,7 @@ import kcc.com.utl.user.service.CheckLoginUtil;
|
||||
import kcc.let.uat.uia.service.SsoLoginVO;
|
||||
import kcc.let.utl.fcc.service.EgovCryptoUtil;
|
||||
import kcc.ve.aplct.adultVisitEdu.eduAplct.service.EduAplctAdultService;
|
||||
import kcc.ve.aplct.fndtnEnhanceTrn.service.FndtnEnhanceTrnService;
|
||||
import kcc.ve.aplct.sspnIdtmt.service.SspnIdtmtService;
|
||||
import kcc.ve.cmm.VeConstants;
|
||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctOnlnService;
|
||||
@ -114,6 +115,10 @@ public class SspnIdtmtController {
|
||||
private VEPrcsAplctPrdService vEPrcsAplctPrdService;
|
||||
|
||||
|
||||
//온라인콘텐츠과정 관리
|
||||
@Resource(name = "fndtnEnhanceTrnService")
|
||||
private FndtnEnhanceTrnService fndtnEnhanceTrnService;
|
||||
|
||||
|
||||
//교육과정순번
|
||||
@Resource(name="prcsGnrService")
|
||||
@ -142,6 +147,9 @@ public class SspnIdtmtController {
|
||||
@Resource(name = "cndtnTrgtInfoMngService")
|
||||
private CndtnTrgtMngService cndtnTrgtInfoMngService;
|
||||
|
||||
//qna순번
|
||||
@Resource(name="prcsAplctPrdQnaOrdGnrService")
|
||||
private EgovIdGnrService prcsAplctPrdQnaOrdGnrService;
|
||||
|
||||
//코드
|
||||
@Resource(name="cmmUseDAO")
|
||||
@ -221,6 +229,14 @@ public class SspnIdtmtController {
|
||||
model.addAttribute("list", vEPrcsDetailVOList);
|
||||
model.addAttribute("countMap", countMap);
|
||||
|
||||
|
||||
|
||||
// Q&A 영역
|
||||
vEPrcsDetailVO.setQnaRegist(loginVO.getUniqId());
|
||||
List<VEPrcsDetailVO> vEPrcsDetailQnaVOList = fndtnEnhanceTrnService.selectVeEduQna(vEPrcsDetailVO);
|
||||
model.addAttribute("qnaList", vEPrcsDetailQnaVOList);
|
||||
|
||||
|
||||
return "/web/ve/aplct/sspnIdtmt/main";
|
||||
}
|
||||
|
||||
@ -703,6 +719,55 @@ public class SspnIdtmtController {
|
||||
return "/web/ve/aplct/sspnIdtmt/eduInfo";
|
||||
}
|
||||
|
||||
|
||||
@RequestMapping("/web/ve/aplct/sspnIdtmt/qnaRegAjax.do")
|
||||
public ModelAndView qnaSspnIdtmtRegAjax(
|
||||
@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.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
|
||||
vEPrcsDetailVO.setQnaRegist(loginVO.getUniqId()); //esntl_id
|
||||
vEPrcsDetailVO.setLctrDivCd("60"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
vEPrcsDetailVO.setPrcsAplctPrdQnaOrd(prcsAplctPrdQnaOrdGnrService.getNextStringId());
|
||||
vEPrcsDetailVO.setQnaRegist(loginVO.getUniqId());
|
||||
|
||||
String msg = "등록되었습니다";
|
||||
try {
|
||||
fndtnEnhanceTrnService.insertVeEduQna(vEPrcsDetailVO);
|
||||
|
||||
} catch (Exception e) {
|
||||
// TODO: handle exception
|
||||
e.printStackTrace();
|
||||
msg = "등록에 실패하였습니다. 관리자에게 문의해주세요";
|
||||
}
|
||||
|
||||
|
||||
modelAndView.addObject("msg", msg);
|
||||
modelAndView.addObject("result", "success");
|
||||
|
||||
return modelAndView;
|
||||
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
//
|
||||
|
||||
@ -19,6 +19,7 @@ import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
||||
|
||||
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
|
||||
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.CheckLoginUtil;
|
||||
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.VEPrcsCntntVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsOnlnCntntService;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService;
|
||||
@ -111,6 +114,10 @@ public class CndtnTrgtMngController {
|
||||
@Resource(name = "EgovCmmUseService")
|
||||
private EgovCmmUseService egovCmmUseService;
|
||||
|
||||
//암복호화 유틸
|
||||
@Resource(name = "egovCryptoUtil")
|
||||
EgovCryptoUtil egovCryptoUtil;
|
||||
|
||||
/*
|
||||
|
||||
// 교육신청 서비스단
|
||||
@ -773,6 +780,135 @@ public class CndtnTrgtMngController {
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
//페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기
|
||||
private PaginationInfo setPagingStep3(
|
||||
List<VEPrcsDetailVO> p_vEPrcsDetailVOList
|
||||
|
||||
@ -567,6 +567,7 @@ public class FndthPrcsInfoMngController {
|
||||
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||
|
||||
vEPrcsDetailVO.setLastUpdusrId(loginVO.getUniqId()); //esntl_id
|
||||
vEPrcsDetailVO.setQnaAnswerer(loginVO.getUniqId()); //esntl_id
|
||||
vEPrcsService.qnaUpdate(vEPrcsDetailVO);
|
||||
|
||||
|
||||
|
||||
@ -1345,7 +1345,7 @@
|
||||
</insert>
|
||||
|
||||
<select id="VEEduAplctDAO.selectVeEduQna" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO">
|
||||
|
||||
/* VEEduAplctDAO.selectVeEduQna */
|
||||
SELECT
|
||||
PRCS_APLCT_PRD_QNA_ORD as prcsAplctPrdQnaOrd
|
||||
, LCTR_DIV_CD as lctrDivCd
|
||||
@ -1353,9 +1353,9 @@
|
||||
, QNA_CN as qnaCn
|
||||
, QNA_ANSWER_CN as qnaAnswerCn
|
||||
, QNA_ANSWERER as qnaAnswerer
|
||||
, FRST_REGIST_PNTTM as frstRegistPnttm
|
||||
, TO_CHAR(FRST_REGIST_PNTTM, 'YYYY-MM-DD') as frstRegistPnttm
|
||||
, FRST_REGISTER_ID as frstRegisterId
|
||||
, LAST_UPDT_PNTTM as lastUpdtPnttm
|
||||
, TO_CHAR(LAST_UPDT_PNTTM, 'YYYY-MM-DD') as lastUpdtPnttm
|
||||
, LAST_UPDUSR_ID as lastUpdusrId
|
||||
FROM
|
||||
VEA_PRCS_APLCT_PRD_QNA
|
||||
|
||||
@ -419,6 +419,7 @@
|
||||
|
||||
UPDATE VEA_PRCS_APLCT_PRD_QNA SET
|
||||
QNA_ANSWER_CN = #qnaAnswerCn#
|
||||
, QNA_ANSWERER = #qnaAnswerer#
|
||||
, LAST_UPDUSR_ID = #lastUpdusrId#
|
||||
, LAST_UPDT_PNTTM = SYSDATE
|
||||
WHERE PRCS_APLCT_PRD_QNA_ORD = #prcsAplctPrdQnaOrd#
|
||||
|
||||
@ -259,7 +259,7 @@
|
||||
, IF(b.stndrd_schol_cd IS null,'N','Y') AS isltnScholYn
|
||||
*/
|
||||
, NVL2(b.schol_isltn_ord,'Y','N') AS isltnScholYn
|
||||
, DECODE(schol_grade_nm, '초등학교','10', '중학교','20', '고등학교','30',CASE WHEN INSTR(schol_grade_nm, '각종학교') > 0 THEN '40' ELSE '50' END) AS scholDivCd
|
||||
, DECODE(schol_grade_nm, '초등학교','10', '중학교','20', '고등학교','30',CASE WHEN INSTR(schol_grade_nm, '각종학교') > 0 THEN '50' ELSE '40' END) AS scholDivCd
|
||||
|
||||
FROM
|
||||
<include refid="ScholInfoDAO.table_name"/> a
|
||||
|
||||
@ -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>
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${empty list.lastUpdtPnttm }">
|
||||
<c:when test="${empty info.lastUpdtPnttm }">
|
||||
-
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<c:out value='${list.lastUpdtPnttm }'/>
|
||||
<c:out value='${info.lastUpdtPnttm }'/>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
|
||||
@ -100,7 +100,7 @@
|
||||
<!-- 서브페이지 -->
|
||||
<!-- <link rel="stylesheet" href="/kccadrPb/usr/css/content.css">
|
||||
<link rel="stylesheet" href="/kccadrPb/usr/css/content_media.css"> -->
|
||||
<script src="${pageContext.request.contextPath}/visitEdu/usr/publish/script/content.js"></script>
|
||||
<%-- <script src="${pageContext.request.contextPath}/visitEdu/usr/publish/script/content.js"></script> --%>
|
||||
</c:if>
|
||||
|
||||
<script type="text/javascript" src="<c:url value='/js/web_common.js'/>"></script>
|
||||
|
||||
@ -712,6 +712,8 @@
|
||||
<input type="radio" id="scholDivCd01" name="scholDivCd" value="10" disabled="disabled" <c:if test="${info.scholDivCd eq '10' }">checked</c:if>> <label class="" for="scholDivCd01">초등</label>
|
||||
<input type="radio" id="scholDivCd012" name="scholDivCd" value="20" disabled="disabled" <c:if test="${info.scholDivCd eq '20' }">checked</c:if>> <label class="" for="scholDivCd012">중등</label>
|
||||
<input type="radio" id="scholDivCd0123" name="scholDivCd" value="30" disabled="disabled" <c:if test="${info.scholDivCd eq '30' }">checked</c:if>> <label class="" for="scholDivCd0123">고등</label>
|
||||
<input type="radio" id="scholDivCd01234" name="scholDivCd" value="40" disabled="disabled" <c:if test="${info.scholDivCd eq '40' }">checked</c:if>> <label class="" for="scholDivCd01234">특수</label>
|
||||
<input type="radio" id="scholDivCd012345" name="scholDivCd" value="50" disabled="disabled" <c:if test="${info.scholDivCd eq '50' }">checked</c:if>> <label class="" for="scholDivCd012345">기타</label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@ -791,7 +793,7 @@
|
||||
<label for="emailType" class="label">이메일공급자 선택</label>
|
||||
<ve:select codeId="ADR030" id="emailType" name="emailType" styleClass="selType1" defaultValue="" defaultText="직접입력" onChange="emailSelect(this);"/>
|
||||
<span class="table_req_text">
|
||||
※ 교내에서 확인 가능한 메일 계정 입력 (예) 교육청 도메인
|
||||
※ 교내에서 확인 가능한 메일 계정 입력 (예) 공직자 통합메일
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
@ -981,7 +983,7 @@
|
||||
</th>
|
||||
<td>
|
||||
<label for="needTxtbNum" class="label">필요 교재 수량 입력</label>
|
||||
<input type="text" name="needTxtbNum" id="needTxtbNum" onkeyup="onlyNumber(this);" value="${info.trgtPrsnlReal}" title="전체 교육인원" size="20" maxlength="4">
|
||||
<input type="text" name="needTxtbNum" id="needTxtbNum" onkeyup="onlyNumber(this);" value="${info.needTxtbNum}" title="필요 교재 수량" size="20" maxlength="4">
|
||||
</td>
|
||||
</tr>
|
||||
<%-- <tr>
|
||||
|
||||
@ -206,47 +206,56 @@
|
||||
<div class="tb_tit02_left">
|
||||
<div class="t_best q_title">Q&A</div>
|
||||
</div>
|
||||
<div class="btn_wrap1">
|
||||
<button type="button" title="최근 교육 목록 더보기" class="con_more" onclick="location.href='/offedu/web/ve/aplct/fndtnEnhanceTrn/fndtnEduAplctList.do'">더보기</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn_right">
|
||||
<button type="button" class="btnType04" data-tooltip="target_confirm_popup">교육문의</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tb_list02">
|
||||
<div class="faq_wrap">
|
||||
<ul class="faq">
|
||||
<c:forEach var="list" items="${qnaList}" varStatus="status">
|
||||
<li <c:if test="${status.index == 0}"> class='first' </c:if>>
|
||||
<button type="button" title="답변 열기" class="question" onclick="faqOpen(this);">
|
||||
<p class="qst_text"><span>질문</span>Q</p>
|
||||
<div>
|
||||
<p class="qst_cont">${list.qnaCn }</p>
|
||||
<p class="date">${list.frstRegistPnttm }</p>
|
||||
</div>
|
||||
</button>
|
||||
<c:if test="${not empty qnaList}">
|
||||
<div class="tb_list02">
|
||||
<div class="faq_wrap">
|
||||
<ul class="faq">
|
||||
<c:forEach var="list" items="${qnaList}" varStatus="status">
|
||||
<li <c:if test="${status.index == 0}"> class='first' </c:if>>
|
||||
<button type="button" title="답변 열기" class="question" onclick="faqOpen(this);">
|
||||
<p class="qst_text"><span>질문</span>Q</p>
|
||||
<div>
|
||||
<p class="qst_cont">${list.qnaCn }</p>
|
||||
<p class="date">${list.frstRegistPnttm }</p>
|
||||
</div>
|
||||
</button>
|
||||
|
||||
<div class="answer">
|
||||
<div class="answer_in">
|
||||
<p class="qst_text"><span>답변</span>A</p>
|
||||
<c:choose>
|
||||
<c:when test="${not empty list.qnaAnswerCn }">
|
||||
<p class="awr_cont">${list.qnaAnswerCn }</p>
|
||||
<p class="date">${list.lastUpdtPnttm }</p>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<p class="awr_cont">내용이 없습니다.</p>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
<div class="answer">
|
||||
<div class="answer_in">
|
||||
<p class="qst_text"><span>답변</span>A</p>
|
||||
<c:choose>
|
||||
<c:when test="${not empty list.qnaAnswerCn }">
|
||||
<div>
|
||||
<p class="awr_cont">${list.qnaAnswerCn }11</p>
|
||||
<p class="date">${list.lastUpdtPnttm }</p>
|
||||
</div>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<p class="awr_cont">내용이 없습니다.</p>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</c:forEach>
|
||||
<c:if test="${empty list}">
|
||||
<li><spring:message code="common.nodata.msg" /></li>
|
||||
</c:if>
|
||||
</ul>
|
||||
</li>
|
||||
</c:forEach>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</c:if>
|
||||
<c:if test="${empty qnaList}">
|
||||
<div class="q_text">
|
||||
- 내용이 없습니다.
|
||||
</div>
|
||||
</c:if>
|
||||
</div>
|
||||
|
||||
</form:form>
|
||||
|
||||
@ -39,6 +39,64 @@
|
||||
$(this).val('');
|
||||
});
|
||||
}
|
||||
//FAQ 답변 open&close
|
||||
function faqOpen(item) {
|
||||
if($(item).is(".slide_open") == true) {
|
||||
$(item).removeClass("slide_open");
|
||||
$(item).next(".answer").slideUp(300);
|
||||
$(item).attr("title","답변 열기");
|
||||
} else {
|
||||
$(item).addClass("slide_open");
|
||||
$(item).next(".answer").slideDown(300);
|
||||
$(item).attr("title","답변 닫기");
|
||||
$(item).closest("li").siblings("li").children(".question").removeClass("slide_open");
|
||||
$(item).closest("li").siblings("li").children(".answer").slideUp(300);
|
||||
$(item).closest("li").siblings("li").children(".question").attr("title","답변 열기");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function fn_qnaReg(){
|
||||
if(!confirm("문의 등록을 하시겠습니까?")){
|
||||
$('#qnaCn').val('');
|
||||
$('.btn_popup_close').click();
|
||||
return false;
|
||||
}
|
||||
|
||||
var data = new FormData(document.getElementById("qnaForm"));
|
||||
|
||||
var url = "${pageContext.request.contextPath}/web/ve/aplct/sspnIdtmt/qnaRegAjax.do";
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
url: url,
|
||||
data: data,
|
||||
dataType:'json',
|
||||
async: false,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
cache: false,
|
||||
success:function(returnData){
|
||||
console.log('returnData : ', returnData);
|
||||
if(returnData.result == "success"){
|
||||
// 대상자 테이블 pk 값
|
||||
var sspnIdtmtTrgtOrd = returnData.id;
|
||||
alert(returnData.msg);
|
||||
}else{
|
||||
alert(returnData.msg);
|
||||
}
|
||||
// fn_target_confirm_clean();
|
||||
location.reload();
|
||||
},
|
||||
error:function(request , status, error){
|
||||
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
$('#target_confirm_popup-close').click();
|
||||
}
|
||||
</script>
|
||||
|
||||
<!-- content -->
|
||||
@ -134,5 +192,104 @@
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<!--Q&A 내용 있을때-->
|
||||
<div class="q_wrap">
|
||||
<div class="btn_wrap btn_layout01">
|
||||
<div class="tb_tit02">
|
||||
<div class="tb_tit02_left">
|
||||
<div class="t_best q_title">Q&A</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn_right">
|
||||
<button type="button" class="btnType04" data-tooltip="target_confirm_popup">교육문의</button>
|
||||
</div>
|
||||
</div>
|
||||
<c:if test="${not empty qnaList}">
|
||||
<div class="tb_list02">
|
||||
<div class="faq_wrap">
|
||||
<ul class="faq">
|
||||
<c:forEach var="list" items="${qnaList}" varStatus="status">
|
||||
<li <c:if test="${status.index == 0}"> class='first' </c:if>>
|
||||
<button type="button" title="답변 열기" class="question" onclick="faqOpen(this);">
|
||||
<p class="qst_text"><span>질문</span>Q</p>
|
||||
<div>
|
||||
<p class="qst_cont">${list.qnaCn }</p>
|
||||
<p class="date">${list.frstRegistPnttm }</p>
|
||||
</div>
|
||||
</button>
|
||||
|
||||
<div class="answer">
|
||||
<div class="answer_in">
|
||||
<p class="qst_text"><span>답변</span>A</p>
|
||||
<c:choose>
|
||||
<c:when test="${not empty list.qnaAnswerCn }">
|
||||
<p class="awr_cont">${list.qnaAnswerCn }</p>
|
||||
<p class="date">${list.lastUpdtPnttm }</p>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<p class="awr_cont">내용이 없습니다.</p>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</c:forEach>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</c:if>
|
||||
<c:if test="${empty qnaList}">
|
||||
<div class="q_text">
|
||||
- 내용이 없습니다.
|
||||
</div>
|
||||
</c:if>
|
||||
</div>
|
||||
|
||||
</form:form>
|
||||
</div>
|
||||
|
||||
|
||||
<form id="qnaForm" name="qnaForm" method="post">
|
||||
<!-- 교육대상자 확인 -->
|
||||
<div class="tooltip-wrap q_pop">
|
||||
<div class="popup_wrap popType01" tabindex="0" data-tooltip-con="target_confirm_popup" data-focus="target_confirm_popup" data-focus-prev="target_confirm_popup_close">
|
||||
<div class="popup_tit">
|
||||
<p>교육문의하기</p>
|
||||
<button class="btn_popup_close tooltip-close" data-focus="target_confirm_popup_close" title="팝업 닫기"><i></i></button>
|
||||
</div>
|
||||
<div class="popup_cont">
|
||||
<div class="cont_body">
|
||||
<div class="pop_tb_type01" style="overflow:visible;">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>문의내용</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<textarea type="text" id="qnaCn" name="qnaCn" style="height: 220px;width: 100%;"></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="pop_btn_wrap btn_layout01">
|
||||
<div class="btn_left">
|
||||
</div>
|
||||
<div class="btn_center">
|
||||
<button type="button" class="btnType05" onclick="fn_qnaReg()">문의</button>
|
||||
<button type="button" class="btnType02 tooltip-close" id="target_confirm_popup-close" data-focus="target_confirm_popup-close" data-focus-next="target_confirm_popup">취소</button>
|
||||
</div>
|
||||
<div class="btn_right">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--// 신청 클릭 > 기소유예 대상자 확인 팝업 -->
|
||||
</form>
|
||||
@ -776,6 +776,11 @@ select.selType1 {height: 40px; border: 1px solid #d5d5d5; border-radius: 5px; pa
|
||||
/*나의 강의실 > Q&A 추가*/
|
||||
.q_wrap .btn_layout01{margin: 50px 0 0 0;}
|
||||
.q_wrap .btn_right{margin: 0 0 10px 0;}
|
||||
|
||||
.q_wrap .tb_tit02{justify-content: left;}
|
||||
.q_wrap .tb_tit02 .btn_wrap1 button.con_more{margin: 0 0 0 10px;}
|
||||
.q_wrap .faq li p{text-align: left;}
|
||||
|
||||
.q_wrap .tb_tit02 .tb_tit02_left .q_title{height: 28px; background-image: url(/offedu/visitEdu/usr/publish/images/content/q&a_icon.png); background-repeat: no-repeat;}
|
||||
.q_wrap .tb_list02 .faq_wrap .faq{border-bottom: 1px solid #d5d5d5;}
|
||||
.q_wrap .tb_list02 .faq_wrap .faq li{background-color: #f5f5f5;}
|
||||
@ -791,6 +796,8 @@ select.selType1 {height: 40px; border: 1px solid #d5d5d5; border-radius: 5px; pa
|
||||
.q_pop .popup_cont .cont_body table thead tr th{width: 100%; padding: 12px 16px; border-top: 2px solid #222; background-color: #f5f5f5; text-align: left; font-size: 15px;}
|
||||
.q_pop .popup_cont table tbody{border-top: 1px solid #e5e5e5;}
|
||||
|
||||
|
||||
|
||||
/*나의 강의실 > Q&A 내용 없을때 추가*/
|
||||
.q_wrap .q_text{padding: 25px 35px; border-top: 2px solid #222; border-bottom: 1px solid #d5d5d5; font-size: 18px; color: #666;}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user