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.uat.uia.service.SsoLoginVO;
|
||||||
import kcc.let.utl.fcc.service.EgovCryptoUtil;
|
import kcc.let.utl.fcc.service.EgovCryptoUtil;
|
||||||
import kcc.ve.aplct.adultVisitEdu.eduAplct.service.EduAplctAdultService;
|
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.aplct.sspnIdtmt.service.SspnIdtmtService;
|
||||||
import kcc.ve.cmm.VeConstants;
|
import kcc.ve.cmm.VeConstants;
|
||||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctOnlnService;
|
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctOnlnService;
|
||||||
@ -114,6 +115,10 @@ public class SspnIdtmtController {
|
|||||||
private VEPrcsAplctPrdService vEPrcsAplctPrdService;
|
private VEPrcsAplctPrdService vEPrcsAplctPrdService;
|
||||||
|
|
||||||
|
|
||||||
|
//온라인콘텐츠과정 관리
|
||||||
|
@Resource(name = "fndtnEnhanceTrnService")
|
||||||
|
private FndtnEnhanceTrnService fndtnEnhanceTrnService;
|
||||||
|
|
||||||
|
|
||||||
//교육과정순번
|
//교육과정순번
|
||||||
@Resource(name="prcsGnrService")
|
@Resource(name="prcsGnrService")
|
||||||
@ -142,6 +147,9 @@ public class SspnIdtmtController {
|
|||||||
@Resource(name = "cndtnTrgtInfoMngService")
|
@Resource(name = "cndtnTrgtInfoMngService")
|
||||||
private CndtnTrgtMngService cndtnTrgtInfoMngService;
|
private CndtnTrgtMngService cndtnTrgtInfoMngService;
|
||||||
|
|
||||||
|
//qna순번
|
||||||
|
@Resource(name="prcsAplctPrdQnaOrdGnrService")
|
||||||
|
private EgovIdGnrService prcsAplctPrdQnaOrdGnrService;
|
||||||
|
|
||||||
//코드
|
//코드
|
||||||
@Resource(name="cmmUseDAO")
|
@Resource(name="cmmUseDAO")
|
||||||
@ -221,6 +229,14 @@ public class SspnIdtmtController {
|
|||||||
model.addAttribute("list", vEPrcsDetailVOList);
|
model.addAttribute("list", vEPrcsDetailVOList);
|
||||||
model.addAttribute("countMap", countMap);
|
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";
|
return "/web/ve/aplct/sspnIdtmt/main";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -703,6 +719,55 @@ public class SspnIdtmtController {
|
|||||||
return "/web/ve/aplct/sspnIdtmt/eduInfo";
|
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.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);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1345,7 +1345,7 @@
|
|||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
<select id="VEEduAplctDAO.selectVeEduQna" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO">
|
<select id="VEEduAplctDAO.selectVeEduQna" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO">
|
||||||
|
/* VEEduAplctDAO.selectVeEduQna */
|
||||||
SELECT
|
SELECT
|
||||||
PRCS_APLCT_PRD_QNA_ORD as prcsAplctPrdQnaOrd
|
PRCS_APLCT_PRD_QNA_ORD as prcsAplctPrdQnaOrd
|
||||||
, LCTR_DIV_CD as lctrDivCd
|
, LCTR_DIV_CD as lctrDivCd
|
||||||
@ -1353,9 +1353,9 @@
|
|||||||
, QNA_CN as qnaCn
|
, QNA_CN as qnaCn
|
||||||
, QNA_ANSWER_CN as qnaAnswerCn
|
, QNA_ANSWER_CN as qnaAnswerCn
|
||||||
, QNA_ANSWERER as qnaAnswerer
|
, QNA_ANSWERER as qnaAnswerer
|
||||||
, FRST_REGIST_PNTTM as frstRegistPnttm
|
, TO_CHAR(FRST_REGIST_PNTTM, 'YYYY-MM-DD') as frstRegistPnttm
|
||||||
, FRST_REGISTER_ID as frstRegisterId
|
, 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
|
, 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#
|
||||||
|
|||||||
@ -259,7 +259,7 @@
|
|||||||
, IF(b.stndrd_schol_cd IS null,'N','Y') AS isltnScholYn
|
, IF(b.stndrd_schol_cd IS null,'N','Y') AS isltnScholYn
|
||||||
*/
|
*/
|
||||||
, NVL2(b.schol_isltn_ord,'Y','N') 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
|
FROM
|
||||||
<include refid="ScholInfoDAO.table_name"/> a
|
<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>
|
<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>
|
||||||
|
|||||||
@ -100,7 +100,7 @@
|
|||||||
<!-- 서브페이지 -->
|
<!-- 서브페이지 -->
|
||||||
<!-- <link rel="stylesheet" href="/kccadrPb/usr/css/content.css">
|
<!-- <link rel="stylesheet" href="/kccadrPb/usr/css/content.css">
|
||||||
<link rel="stylesheet" href="/kccadrPb/usr/css/content_media.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>
|
</c:if>
|
||||||
|
|
||||||
<script type="text/javascript" src="<c:url value='/js/web_common.js'/>"></script>
|
<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="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="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="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>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
@ -791,7 +793,7 @@
|
|||||||
<label for="emailType" class="label">이메일공급자 선택</label>
|
<label for="emailType" class="label">이메일공급자 선택</label>
|
||||||
<ve:select codeId="ADR030" id="emailType" name="emailType" styleClass="selType1" defaultValue="" defaultText="직접입력" onChange="emailSelect(this);"/>
|
<ve:select codeId="ADR030" id="emailType" name="emailType" styleClass="selType1" defaultValue="" defaultText="직접입력" onChange="emailSelect(this);"/>
|
||||||
<span class="table_req_text">
|
<span class="table_req_text">
|
||||||
※ 교내에서 확인 가능한 메일 계정 입력 (예) 교육청 도메인
|
※ 교내에서 확인 가능한 메일 계정 입력 (예) 공직자 통합메일
|
||||||
</span>
|
</span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -981,7 +983,7 @@
|
|||||||
</th>
|
</th>
|
||||||
<td>
|
<td>
|
||||||
<label for="needTxtbNum" class="label">필요 교재 수량 입력</label>
|
<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>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<%-- <tr>
|
<%-- <tr>
|
||||||
|
|||||||
@ -206,11 +206,15 @@
|
|||||||
<div class="tb_tit02_left">
|
<div class="tb_tit02_left">
|
||||||
<div class="t_best q_title">Q&A</div>
|
<div class="t_best q_title">Q&A</div>
|
||||||
</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>
|
||||||
<div class="btn_right">
|
<div class="btn_right">
|
||||||
<button type="button" class="btnType04" data-tooltip="target_confirm_popup">교육문의</button>
|
<button type="button" class="btnType04" data-tooltip="target_confirm_popup">교육문의</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<c:if test="${not empty qnaList}">
|
||||||
<div class="tb_list02">
|
<div class="tb_list02">
|
||||||
<div class="faq_wrap">
|
<div class="faq_wrap">
|
||||||
<ul class="faq">
|
<ul class="faq">
|
||||||
@ -229,8 +233,10 @@
|
|||||||
<p class="qst_text"><span>답변</span>A</p>
|
<p class="qst_text"><span>답변</span>A</p>
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="${not empty list.qnaAnswerCn }">
|
<c:when test="${not empty list.qnaAnswerCn }">
|
||||||
<p class="awr_cont">${list.qnaAnswerCn }</p>
|
<div>
|
||||||
|
<p class="awr_cont">${list.qnaAnswerCn }11</p>
|
||||||
<p class="date">${list.lastUpdtPnttm }</p>
|
<p class="date">${list.lastUpdtPnttm }</p>
|
||||||
|
</div>
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:otherwise>
|
<c:otherwise>
|
||||||
<p class="awr_cont">내용이 없습니다.</p>
|
<p class="awr_cont">내용이 없습니다.</p>
|
||||||
@ -241,12 +247,15 @@
|
|||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
<c:if test="${empty list}">
|
|
||||||
<li><spring:message code="common.nodata.msg" /></li>
|
|
||||||
</c:if>
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${empty qnaList}">
|
||||||
|
<div class="q_text">
|
||||||
|
- 내용이 없습니다.
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</form:form>
|
</form:form>
|
||||||
|
|||||||
@ -39,6 +39,64 @@
|
|||||||
$(this).val('');
|
$(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>
|
</script>
|
||||||
|
|
||||||
<!-- content -->
|
<!-- content -->
|
||||||
@ -134,5 +192,104 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</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>
|
</form:form>
|
||||||
</div>
|
</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&A 추가*/
|
||||||
.q_wrap .btn_layout01{margin: 50px 0 0 0;}
|
.q_wrap .btn_layout01{margin: 50px 0 0 0;}
|
||||||
.q_wrap .btn_right{margin: 0 0 10px 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_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{border-bottom: 1px solid #d5d5d5;}
|
||||||
.q_wrap .tb_list02 .faq_wrap .faq li{background-color: #f5f5f5;}
|
.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 .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_pop .popup_cont table tbody{border-top: 1px solid #e5e5e5;}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*나의 강의실 > Q&A 내용 없을때 추가*/
|
/*나의 강의실 > Q&A 내용 없을때 추가*/
|
||||||
.q_wrap .q_text{padding: 25px 35px; border-top: 2px solid #222; border-bottom: 1px solid #d5d5d5; font-size: 18px; color: #666;}
|
.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