This commit is contained in:
myname 2023-10-13 09:21:55 +09:00
commit 2318e21808
57 changed files with 2825 additions and 138 deletions

View File

@ -343,4 +343,30 @@ public class EgovFileMngController {
return "cmm/fms/selectSimpleDownInfs";
}
/**
* 저작권 체험교실 결과보고 파일 조회
*
* @param fileVO
* @param commandMap
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/cmm/fms/selectRsltRprtFile.do")
public String selectRsltRprtFile(@ModelAttribute("searchVO") FileVO fileVO, @RequestParam Map<String, Object> commandMap, ModelMap model) throws Exception {
String atchFileId = (String) commandMap.get("param_atchFileId");
String eduAplctOrd = (String) commandMap.get("eduAplctOrd");
String type = (String) commandMap.get("type");
fileVO.setAtchFileId(atchFileId);
List<FileVO> result = fileService.selectFileInfs(fileVO);
model.addAttribute("fileList", result);
model.addAttribute("updateFlag", "N");
model.addAttribute("fileListCnt", result.size());
model.addAttribute("atchFileId", atchFileId);
model.addAttribute("eduAplctOrd", eduAplctOrd);
model.addAttribute("type", type);
return "cmm/fms/selectRsltRprtFile";
}
}

View File

@ -55,7 +55,8 @@ public class AdrInnorixFileVO extends ComDefaultVO implements Serializable {
public List<InnorixFileVO> innorixFileListVO = new ArrayList<InnorixFileVO>();
// 전체 교육인원 - 저작권 체험교실 결과보고서 항목
public String trgtPrsnlReal = "";
public String getFileType() {
@ -122,6 +123,14 @@ public class AdrInnorixFileVO extends ComDefaultVO implements Serializable {
this.atchFileId = atchFileId;
}
public String getTrgtPrsnlReal() {
return trgtPrsnlReal;
}
public void setTrgtPrsnlReal(String trgtPrsnlReal) {
this.trgtPrsnlReal = trgtPrsnlReal;
}

View File

@ -234,6 +234,7 @@ public class InnorixFileServiceImpl extends EgovAbstractServiceImpl implements I
vEEduAplctVO.setFrstRegisterId(adrInnorixFileVO.getUniqId());
vEEduAplctVO.setLastUpdusrId(adrInnorixFileVO.getUniqId());
vEEduAplctVO.setEduAplctOrd(adrInnorixFileVO.getEduAplctOrd());
vEEduAplctVO.setTrgtPrsnlReal(adrInnorixFileVO.getTrgtPrsnlReal());
//저장
vEEduMIXService.insertExprnClsrmEndInfo(vEEduAplctVO);
@ -354,6 +355,7 @@ public class InnorixFileServiceImpl extends EgovAbstractServiceImpl implements I
vEEduAplctVO.setAprvlCd(adrInnorixFileVO.getAprvlCd());
vEEduAplctVO.setLastUpdusrId(adrInnorixFileVO.getUniqId());
vEEduAplctVO.setEduAplctOrd(adrInnorixFileVO.getEduAplctOrd());
vEEduAplctVO.setTrgtPrsnlReal(adrInnorixFileVO.getTrgtPrsnlReal());
//저장
vEEduMIXService.updateRsltRprtFileId(vEEduAplctVO);

View File

@ -339,7 +339,12 @@ public class ExprnClsrmAplctController {
vEEduAplctVO = egovCryptoUtil.decryptVEEduAplctVOInfo(vEEduAplctVO);
model.addAttribute("info", vEEduAplctVO);
VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO();
vEPrcsDetailVO.setPrcsAplctPrdOrd(vEEduAplctVO.getPrcsOrd());
vEPrcsDetailVO = vEPrcsAplctPrdService.selectDetailByOrd(vEPrcsDetailVO);
if(vEPrcsDetailVO != null) {
model.addAttribute("endPnttm", vEPrcsDetailVO.getEndPnttm());
}
//등록일이 과정신청기간에 포함 되는지 확인 - 신청기간에 포함되며 신청 단계의 경우 수정 기능 추가
int cnt = vEEduAplctService.selectCntAplctPrd(vEEduAplctVO);
model.addAttribute("cnt", cnt);
@ -477,6 +482,126 @@ public class ExprnClsrmAplctController {
}
/**
* 체험교실 대시보드
*/
@RequestMapping("exprnClsrmAplctDashboard.do")
public String exprnClsrmAplctDashboard( @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO , ModelMap model , HttpServletRequest request ) throws Exception {
//현재 진행중인 체험교실 운영 조회
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
String eduAplctOrd = vEEduAplctService.selectProceedingOrd(loginVO.getUniqId());
if(eduAplctOrd != null) {
//데이터 복호화 - VO 단위로 만들어서 사용
vEEduAplctVO.setEduAplctOrd(eduAplctOrd);
vEEduAplctVO = vEEduAplctService.selectOprtnDetail(vEEduAplctVO);
vEEduAplctVO = egovCryptoUtil.decryptVEEduAplctVOInfo(vEEduAplctVO);
model.addAttribute("info", vEEduAplctVO);
//등록일이 과정신청기간에 포함 되는지 확인 - 신청기간에 포함되며 신청 단계의 경우 수정 기능 추가
int cnt = vEEduAplctService.selectCntAplctPrd(vEEduAplctVO);
model.addAttribute("cnt", cnt);
}
return "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctDashboard";
}
/**
* 체험교실 대시보드 load
*/
@RequestMapping("exprnDashboardLoadAjax.do")
public String exprnDashboardLoadAjax( @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO , ModelMap model , HttpServletRequest request ) throws Exception {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
// 종류
String Type = vEEduAplctVO.getLoadType();
//기본데이터 불러오기
vEEduAplctVO = vEEduAplctService.selectOprtnDetail(vEEduAplctVO);
//데이터 복호화 - VO 단위로 만들어서 사용
vEEduAplctVO = egovCryptoUtil.decryptVEEduAplctVOInfo(vEEduAplctVO);
model.addAttribute("info", vEEduAplctVO);
//접수종료일 조회 - 교육신청과정기간 종료일
VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO();
vEPrcsDetailVO.setPrcsAplctPrdOrd(vEEduAplctVO.getPrcsOrd());
vEPrcsDetailVO = vEPrcsAplctPrdService.selectDetailByOrd(vEPrcsDetailVO);
if(vEPrcsDetailVO != null) {
model.addAttribute("endPnttm", vEPrcsDetailVO.getEndPnttm());
}
if("1".equals(Type)) { //type1 - 신청정보
return "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnAplctDashboard";
}else if("2".equals(Type)) { //type2 - 운영계획
return "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnPlanDashboard";
}else if("3".equals(Type)) { //type3 - 거래선
//거래선 파일 정보 가져오기
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(vEEduAplctVO.getTransAtchFileId());
List<FileVO> result = fileService.selectFileInfs(fileVO);
model.addAttribute("transFileList", result);
model.addAttribute("transFileListCnt", result.size());
//서약서 파일 정보 가져오기
fileVO.setAtchFileId(vEEduAplctVO.getOathAtchFileId());
result = fileService.selectFileInfs(fileVO);
model.addAttribute("oathFileList", result);
model.addAttribute("oathFileListCnt", result.size());
//계획서 파일 정보 가져오기
fileVO.setAtchFileId(vEEduAplctVO.getPlanAtchFileId());
result = fileService.selectFileInfs(fileVO);
model.addAttribute("planFileList", result);
model.addAttribute("planFileListCnt", result.size());
return "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnDocumentDashboard";
}else if("4".equals(Type)) { //type4 - 결과보고
FileVO fileVO = new FileVO();
if(vEEduAplctVO.getOrgnlRsltAtchFileId() != null){
fileVO.setAtchFileId(vEEduAplctVO.getOrgnlRsltAtchFileId());
fileVO.setFileSn("0");
vEEduAplctVO.setOrgnlRsltAtchFileDetail(fileService.selectFileInf(fileVO));
}
if(vEEduAplctVO.getCpyRsltAtchFileId() != null){
fileVO.setAtchFileId(vEEduAplctVO.getCpyRsltAtchFileId());
fileVO.setFileSn("0");
vEEduAplctVO.setCpyRsltAtchFileDetail(fileService.selectFileInf(fileVO));
}
if(vEEduAplctVO.getEvdncPhtAtchFileId() != null){
fileVO.setAtchFileId(vEEduAplctVO.getEvdncPhtAtchFileId());
fileVO.setFileSn("0");
vEEduAplctVO.setEvdncPhtAtchFileDetail(fileService.selectFileInf(fileVO));
}
if(vEEduAplctVO.getRmtTrnAtchFileId() != null){
fileVO.setAtchFileId(vEEduAplctVO.getRmtTrnAtchFileId());
fileVO.setFileSn("0");
vEEduAplctVO.setRmtTrnAtchFileDetail(fileService.selectFileInf(fileVO));
}
return "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnRprtDashboard";
}else { //type5 - 최종결과
FileVO fileVO = new FileVO();
if(vEEduAplctVO.getOrgnlRsltAtchFileId() != null){
fileVO.setAtchFileId(vEEduAplctVO.getOrgnlRsltAtchFileId());
fileVO.setFileSn("0");
vEEduAplctVO.setOrgnlRsltAtchFileDetail(fileService.selectFileInf(fileVO));
}
if(vEEduAplctVO.getCpyRsltAtchFileId() != null){
fileVO.setAtchFileId(vEEduAplctVO.getCpyRsltAtchFileId());
fileVO.setFileSn("0");
vEEduAplctVO.setCpyRsltAtchFileDetail(fileService.selectFileInf(fileVO));
}
if(vEEduAplctVO.getEvdncPhtAtchFileId() != null){
fileVO.setAtchFileId(vEEduAplctVO.getEvdncPhtAtchFileId());
fileVO.setFileSn("0");
vEEduAplctVO.setEvdncPhtAtchFileDetail(fileService.selectFileInf(fileVO));
}
if(vEEduAplctVO.getRmtTrnAtchFileId() != null){
fileVO.setAtchFileId(vEEduAplctVO.getRmtTrnAtchFileId());
fileVO.setFileSn("0");
vEEduAplctVO.setRmtTrnAtchFileDetail(fileService.selectFileInf(fileVO));
}
return "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnRsltDashboard";
}
}
//체험교실 운영신청 초기화 첨부파일 삭제
@RequestMapping(value = "/fmsfileMultipleDeleteAjax.do", method = RequestMethod.POST)
public ModelAndView fmsfileMultipleDeleteAjax(@RequestBody FileVO fileVo) throws Exception {

View File

@ -40,6 +40,8 @@ import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsMIXService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsOnlnCntntService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService;
@ -146,6 +148,9 @@ public class ExprnClsrmEndController {
@Resource(name = "egovQustnrRespondManageService")
private EgovQustnrRespondManageService egovQustnrRespondManageService;
@Resource(name = "vEPrcsAplctPrdService")
private VEPrcsAplctPrdService vEPrcsAplctPrdService;
/**
* 체험교실 완료목록
*/
@ -211,6 +216,13 @@ public class ExprnClsrmEndController {
model.addAttribute("planFileListCnt", result.size());
model.addAttribute("info", vEEduAplctVO);
VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO();
vEPrcsDetailVO.setPrcsAplctPrdOrd(vEEduAplctVO.getPrcsOrd());
vEPrcsDetailVO = vEPrcsAplctPrdService.selectDetailByOrd(vEPrcsDetailVO);
if(vEPrcsDetailVO != null) {
model.addAttribute("endPnttm", vEPrcsDetailVO.getEndPnttm());
}
return "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmEnd/exprnClsrmEndDetail";
}

View File

@ -485,10 +485,14 @@ public class SspnIdtmtController {
String id = sspnIdtmtService.findByTrgtNm(cndtnTrgtInfoMngVO);
modelAndView.addObject("result", "success");
String result="";
if(StringUtils.isNotEmpty(id)) {
result = "success";
}
modelAndView.addObject("result", result);
modelAndView.addObject("id", id);
return modelAndView;
}

View File

@ -45,4 +45,7 @@ public interface VEEduAplctService {
int selectMngNoMax(VEEduAplctVO veEduAplctVO) throws Exception;
int selectCntAplctPrd(VEEduAplctVO veEduAplctVO) throws Exception;
//사용자 진행중인 체험교실 조회하기
String selectProceedingOrd(String userId) throws Exception;
}

View File

@ -303,6 +303,8 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
private String vs_clphone; //기소유예 대상자 폰번호
private String lastYear; //불성실여부 작년
public String getPrcsAplctPrdOrd() {
return prcsAplctPrdOrd;
@ -356,8 +358,12 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
private String adminInsert;
//운영계획 필요 교재 수량
private String needTxtbNum;
//결과보고 제출 코드
private String rprtAprvlCd;
//대시보드 load 타입
private String loadType;
//전체 교육인원(결과보고 제출 )
private String trgtPrsnlReal;
public String getSpecialWorkAllow() {
return specialWorkAllow;
@ -1539,6 +1545,31 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
public void setVs_clphone(String vs_clphone) {
this.vs_clphone = vs_clphone;
}
public String getRprtAprvlCd() {
return rprtAprvlCd;
}
public void setRprtAprvlCd(String rprtAprvlCd) {
this.rprtAprvlCd = rprtAprvlCd;
}
public String getLoadType() {
return loadType;
}
public void setLoadType(String loadType) {
this.loadType = loadType;
}
public String getTrgtPrsnlReal() {
return trgtPrsnlReal;
}
public void setTrgtPrsnlReal(String trgtPrsnlReal) {
this.trgtPrsnlReal = trgtPrsnlReal;
}
public String getLastYear() {
return lastYear;
}
public void setLastYear(String lastYear) {
this.lastYear = lastYear;
}
}

View File

@ -270,5 +270,5 @@ public class VEEduOprtnVO extends ComDefaultVO implements Serializable {
public void setNeedTxtbNum(String needTxtbNum) {
this.needTxtbNum = needTxtbNum;
}
}

View File

@ -130,5 +130,9 @@ public class VEEduAplctDAO extends EgovAbstractDAO {
public VEEduAplctVO findByAprvlCd(VEEduAplctVO vEEduAplctReqVO) {
return (VEEduAplctVO) select("VEEduAplctDAO.findByAprvlCd", vEEduAplctReqVO);
}
public String selectProceedingOrd(String userId) {
return (String) select("VEEduAplctDAO.selectProceedingOrd", userId);
}
}

View File

@ -158,4 +158,9 @@ public class VEEduAplctServiceImpl implements VEEduAplctService {
public int selectCntAplctPrd(VEEduAplctVO veEduAplctVO) throws Exception {
return vEEduAplctDAO.selectCntAplctPrd(veEduAplctVO);
}
@Override
public String selectProceedingOrd(String userId) throws Exception {
return vEEduAplctDAO.selectProceedingOrd(userId);
}
}

View File

@ -2,6 +2,8 @@ package kcc.ve.instr.tngrVisitEdu.instrInfo.service;
import java.util.List;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
public interface VEInstrDetailService {
//C
@ -41,5 +43,6 @@ public interface VEInstrDetailService {
//EgovMap selectAdrRpplInfo(AdjstChangeDateVO adjstChangeDateVO) throws Exception;
//List<?> selectPagingList(AdjstChangeDateVO adjstChangeDateVO) throws Exception;
VEInstrDetailVO selectLastYearDetail(VEEduAplctVO vEEduAplctVO) throws Exception;
}

View File

@ -134,6 +134,7 @@ public class VEInstrDetailVO extends ComDefaultVO implements Serializable {
private String unfthYn; // 불성실여부
private String extraPayYn; // 수당지급여부
private String rmrks; // 비고
private String rprtScore; // 보고서 평가
//강사거리
private String onewayDstnc;
@ -803,5 +804,11 @@ public class VEInstrDetailVO extends ComDefaultVO implements Serializable {
public void setSigMemo(String sigMemo) {
this.sigMemo = sigMemo;
}
public String getRprtScore() {
return rprtScore;
}
public void setRprtScore(String rprtScore) {
this.rprtScore = rprtScore;
}
}

View File

@ -5,6 +5,7 @@ import java.util.List;
import org.springframework.stereotype.Repository;
import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
@Repository("vEInstrDetailDAO")
@ -104,4 +105,7 @@ public class VEInstrDetailDAO extends EgovAbstractDAO {
}
*/
public VEInstrDetailVO selectLastYearDetail(VEEduAplctVO vEEduAplctVO) throws Exception {
return (VEInstrDetailVO) select("VEInstrDetailDAO.selectLastYearDetail", vEEduAplctVO);
}
}

View File

@ -8,6 +8,8 @@ import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import kcc.com.cmm.service.impl.FileManageDAO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailService;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
@ -22,6 +24,9 @@ public class VEInstrDetailServiceImpl implements VEInstrDetailService {
@Resource(name = "instrDetailGnrService")
private EgovIdGnrService instrDetailGnrService;
//첨부파일
@Resource(name = "FileManageDAO")
private FileManageDAO fileMngDAO;
//C
public void insert(VEInstrDetailVO vEInstrDetailVO) throws Exception {
@ -90,7 +95,8 @@ public class VEInstrDetailServiceImpl implements VEInstrDetailService {
return vEInstrDetailDAO.updateInstrSigMemo(vEInstrDetailVO);
}
public VEInstrDetailVO selectLastYearDetail(VEEduAplctVO vEEduAplctVO) throws Exception {
return vEInstrDetailDAO.selectLastYearDetail(vEEduAplctVO);
}
}

View File

@ -42,5 +42,7 @@ public interface VEPrcsAplctPrdService {
List<VEPrcsDetailVO> findByAprvlList(VEPrcsDetailVO vEPrcsDetailVO);
Map<String, Object> findAllDashboardCnt(VEPrcsDetailVO vEPrcsDetailVO);
VEPrcsDetailVO selectDetailByOrd(VEPrcsDetailVO vEPrcsDetailVO) throws Exception;
}

View File

@ -100,5 +100,8 @@ public class VEPrcsAplctPrdDAO extends EgovAbstractDAO {
return (Map<String, Object>) select("VEPrcsAplctPrdDAO.findAllDashboardCnt", vEPrcsDetailVO);
}
public VEPrcsDetailVO selectDetailByOrd(VEPrcsDetailVO vEPrcsDetailVO) throws Exception {
return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetailByOrd", vEPrcsDetailVO);
}
}

View File

@ -100,4 +100,7 @@ public class VEPrcsAplctPrdServiceImpl implements VEPrcsAplctPrdService {
return vEPrcsAplctPrdDAO.findAllDashboardCnt(vEPrcsDetailVO);
}
public VEPrcsDetailVO selectDetailByOrd(VEPrcsDetailVO vEPrcsDetailVO) throws Exception {
return vEPrcsAplctPrdDAO.selectDetailByOrd(vEPrcsDetailVO);
}
}

View File

@ -49,6 +49,8 @@ public class VEEduRprtVO extends ComDefaultVO implements Serializable {
private String userId; // 강사ID
private String rprtFileType;// 결과보고 첨부파일 종류
public String getUserId() {
return userId;
}
@ -199,5 +201,11 @@ public class VEEduRprtVO extends ComDefaultVO implements Serializable {
public void setOrderByQuery(String orderByQuery) {
this.orderByQuery = orderByQuery;
}
public String getRprtFileType() {
return rprtFileType;
}
public void setRprtFileType(String rprtFileType) {
this.rprtFileType = rprtFileType;
}
}

View File

@ -2,6 +2,9 @@ package kcc.ve.instr.tngrVisitEdu.rprtInfo.service;
import java.util.List;
import kcc.com.cmm.service.FileVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduOprtnVO;
public interface VEEduRsltRprtService {
//C
@ -21,5 +24,8 @@ public interface VEEduRsltRprtService {
//Page List
List<VEEduRprtVO> selectPagingList(VEEduRprtVO paramVO) throws Exception;
//결과보고 첨부파일 삭제 처리
public void deleteRsltRprtFileInf(FileVO fileVO, VEEduRprtVO vEEduRprtVO) throws Exception;
}

View File

@ -5,6 +5,7 @@ import java.util.List;
import org.springframework.stereotype.Repository;
import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduOprtnVO;
import kcc.ve.instr.tngrVisitEdu.rprtInfo.service.VEEduRprtVO;
@Repository("vEEduRsltRprtDAO")
@ -66,4 +67,8 @@ public class VEEduRsltRprtDAO extends EgovAbstractDAO {
return tlist;
}
public int updateNullFile(VEEduRprtVO vEEduRprtVO) throws Exception {
return update("VEEduRsltRprtDAO.updateNullFile", vEEduRprtVO);
}
}

View File

@ -1,12 +1,16 @@
package kcc.ve.instr.tngrVisitEdu.rprtInfo.service.impl;
import java.io.File;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import kcc.com.cmm.service.FileVO;
import kcc.com.cmm.service.impl.FileManageDAO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduOprtnVO;
import kcc.ve.instr.tngrVisitEdu.rprtInfo.service.VEEduRprtVO;
import kcc.ve.instr.tngrVisitEdu.rprtInfo.service.VEEduRsltRprtService;
@ -17,6 +21,9 @@ public class VEEduRsltRprtServiceImpl implements VEEduRsltRprtService {
@Resource(name="vEEduRsltRprtDAO")
private VEEduRsltRprtDAO vEEduRsltRprtDAO;
//첨부파일
@Resource(name = "FileManageDAO")
private FileManageDAO fileMngDAO;
//C
public void insert(VEEduRprtVO paramVO) throws Exception {
@ -49,4 +56,17 @@ public class VEEduRsltRprtServiceImpl implements VEEduRsltRprtService {
return vEEduRsltRprtDAO.selectPagingList(paramVO);
}
public void deleteRsltRprtFileInf(FileVO fileVO, VEEduRprtVO vEEduRprtVO) throws Exception {
//결과 보고 첨부파일 ID 삭제 처리
vEEduRsltRprtDAO.updateNullFile(vEEduRprtVO);
//파일 삭제처리
FileVO returnFileVO = new FileVO();
returnFileVO = fileMngDAO.selectFileInf(fileVO);
if(returnFileVO !=null) {
File delFile = new File(returnFileVO.getFileStreCours()+returnFileVO.getStreFileNm());
delFile.delete();
}
fileMngDAO.deleteFileInf(fileVO); //DB삭제
}
}

View File

@ -174,7 +174,6 @@ public class CndtnTrgtMngController {
//3.pageing step3
paginationInfo = this.setCndtnPagingStep3(cndtnTrgtInfoMngVOList, paginationInfo);
System.out.println("paginationInfo :: "+ paginationInfo.getTotalRecordCount());
model.addAttribute("paginationInfo", paginationInfo);

View File

@ -192,8 +192,12 @@ public class OprtnAplctMngServiceImpl implements OprtnAplctMngService {
//step3.파일 처리====================================
vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_30); //강의 구분 코드 체험교실
vEEduAplctVO.setOprtnFileId(s_scholSealAtchFileId); //학교장직인 첨부파일
vEEduAplctVO.setUserId(loginVO.getUniqId());
vEEduAplctVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
if(!"Y".equals(vEEduAplctVO.getAdminInsert())) {
vEEduAplctVO.setUserId(loginVO.getUniqId());
vEEduAplctVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
}else {
vEEduAplctVO.setFrstRegisterId(vEEduAplctVO.getUserId());
}
//저장전 암호화 - VO 단위로 만들어서 사용
vEEduAplctVO = egovCryptoUtil.encryptVEEduAplctVOInfo(vEEduAplctVO);

View File

@ -9,6 +9,7 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLEncoder;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
@ -158,6 +159,13 @@ public class OprtnAplctMngController {
vEEduAplctVO.setMenuNo(session.getAttribute("menuNo").toString());
//List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectPagingList(vEEduAplctVO);
vEEduAplctVO.setLctrDivCd("30");
//작년도 불성실 여부 조건
LocalDate now = LocalDate.now();
int nowYear = now.getYear();
String lastYear = Integer.toString(nowYear-1);
vEEduAplctVO.setLastYear(lastYear);
List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectExprnPagingList(vEEduAplctVO);
//List복호화
vEEduAplctVOList = egovCryptoUtil.decryptVEEduAplctVOList(vEEduAplctVOList);
@ -233,6 +241,13 @@ public class OprtnAplctMngController {
model.addAttribute("info", vEEduAplctVO);
//접수종료일 조회 - 교육신청과정기간 종료일
VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO();
vEPrcsDetailVO.setPrcsAplctPrdOrd(vEEduAplctVO.getPrcsOrd());
vEPrcsDetailVO = vEPrcsAplctPrdService.selectDetailByOrd(vEPrcsDetailVO);
if(vEPrcsDetailVO != null) {
model.addAttribute("endPnttm", vEPrcsDetailVO.getEndPnttm());
}
//20220223 우영두 추가
//강의내역 NOTI 입력
VEAsgnmNotiVO vEAsgnmNotiVO = new VEAsgnmNotiVO();

View File

@ -1,5 +1,6 @@
package kcc.ve.oprtn.cpyrgExprnClsrm.oprtnStateMng.web;
import java.time.LocalDate;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -13,6 +14,7 @@ import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
@ -20,6 +22,7 @@ import kcc.com.cmm.LoginVO;
import kcc.com.cmm.service.EgovFileMngService;
import kcc.com.cmm.service.EgovFileMngUtil;
import kcc.com.cmm.service.FileVO;
import kcc.com.uss.ion.fms.service.FmsFileVO;
import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.uss.olp.qri.service.EgovQustnrRespondInfoService;
import kcc.let.uss.olp.qri.service.QustnrRespondInfoVO;
@ -191,6 +194,7 @@ public class OprtnStateMngController {
//로그인 처리====================================
//기본데이터 불러오기
vEEduAplctVO = vEEduAplctService.selectOprtnDetail(vEEduAplctVO);
@ -199,13 +203,15 @@ public class OprtnStateMngController {
model.addAttribute("info", vEEduAplctVO);
// 결과보고
VEEduRprtVO vEEduRprtVOInfo = new VEEduRprtVO();
vEEduRprtVOInfo.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd());
vEEduRprtVOInfo = vEEduRsltRprtService.selectDetail(vEEduRprtVOInfo);
model.addAttribute("resultInfo",vEEduRprtVOInfo);
// 첨부파일 조회
int fileCnt = 0;
List<FileVO> result = null;
@ -229,7 +235,14 @@ public class OprtnStateMngController {
model.addAttribute("vEInstrDetailVO",vEInstrDetailVO);
//작년도 선정교사 정보
LocalDate now = LocalDate.now();
int nowYear = now.getYear();
String lastYear = Integer.toString(nowYear-1);
vEEduAplctVO.setLastYear(lastYear);
VEInstrDetailVO lastVEInstrDetailVO = vEInstrDetailService.selectLastYearDetail(vEEduAplctVO);
model.addAttribute("lastVEInstrDetailVO",lastVEInstrDetailVO);
return "oprtn/cpyrgExprnClsrm/oprtnStateMngDetail";
}
@ -452,6 +465,31 @@ public class OprtnStateMngController {
}
/* 관리자 결과보고 첨부파일 삭제 */
@RequestMapping(value = "rsltRprtfileDeleteAjax.do")
public ModelAndView fmsfileDeleteAjax(
FmsFileVO fmsFileVO,
@ModelAttribute("fileVO") FileVO fileVO,
VEEduRprtVO vEEduRprtVO
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
vEEduRprtVO.setLastUpdusrId(loginVO.getUniqId());
try {
vEEduRsltRprtService.deleteRsltRprtFileInf(fileVO, vEEduRprtVO);
modelAndView.addObject("result", "success");
}catch (Exception e) {
modelAndView.addObject("result", "fail");
System.out.println("Exception Occured!!!");
return modelAndView;
}
return modelAndView;
}
//페이징을 위한 처리 step1 - 페이징 기본 정보 설정
private PaginationInfo setPagingStep1(
VEEduAplctVO p_vEEduAplctVO

View File

@ -72,7 +72,7 @@
#sspnIdtmtTrgtOrd#
, #userId#
, #eduStateCd#
, now()
, SYSDATE
, #frstRegisterId#
, #lastUpdtPnttm#
, #lastUpdusrId#

View File

@ -396,6 +396,7 @@
, C.evdnc_pht_atch_file_id AS evdncPhtAtchFileId
, C.rmt_trn_atch_file_id AS rmtTrnAtchFileId
, C.frst_regist_pnttm AS cpyrprtSbmtDt
, C.trgt_prsnl_real AS trgtPrsnlReal
,(SELECT
F.qustnr_respond_id
FROM
@ -1157,4 +1158,20 @@
AND a.LCTR_DIV_CD = '30'
AND REPLACE(#sbmtPnttm#, '-', '') BETWEEN SUBSTR(a.strt_pnttm,3,6) AND SUBSTR(a.end_pnttm,3,6);
</select>
<select id="VEEduAplctDAO.selectProceedingOrd" parameterClass="String" resultClass="String">
/* VEEduAplctDAO.selectProceedingOrd */
SELECT
MAX(EDU_APLCT_ORD)
FROM
VE_EDU_APLCT a
WHERE USER_ID = #userId#
AND LCTR_DIV_CD = '30'
AND APRVL_CD = '60'
AND PRCS_ORD = (SELECT
MAX(PRCS_APLCT_PRD_ORD)
FROM VE_PRCS_APLCT_PRD
WHERE LCTR_DIV_CD = '30'
AND USE_YN = 'Y')
</select>
</sqlMap>

View File

@ -300,6 +300,8 @@
, A.CORPS_EDU AS corpsEdu
, A.BROADROOM_EDU AS broadroomEdu
, A.ADMIN_UPDT_YN AS adminUpdtYn
, A.OATH_ATCH_FILE_ID AS oathAtchFileId
, A.PLAN_ATCH_FILE_ID AS planAtchFileId
,(
SELECT
MAX(S2.PRCS_NM)||
@ -340,6 +342,7 @@
, E.OPRTN_STRT_DT AS oprtnStrtDt
, E.OPRTN_END_DT AS oprtnEndDt
, E.OPRTN_FILE_ID AS oprtnFileId
, H.APRVL_CD AS rprtAprvlCd
, (
SELECT
S3.end_pnttm
@ -2794,6 +2797,7 @@ INTO ve_edu_rslt_rprt
,cpy_rslt_atch_file_id
,evdnc_pht_atch_file_id
,rmt_trn_atch_file_id
,trgt_prsnl_real
,frst_regist_pnttm
,frst_register_id
@ -2810,6 +2814,7 @@ VALUES
, #cpyRsltAtchFileId#
, #evdncPhtAtchFileId#
, #rmtTrnAtchFileId#
, #trgtPrsnlReal#
, SYSDATE
, #frstRegisterId#
@ -3524,6 +3529,7 @@ VALUES
<isNotEmpty property="rmtTrnAtchFileId">
rmt_trn_atch_file_id = #rmtTrnAtchFileId#,
</isNotEmpty>
trgt_prsnl_real = #trgtPrsnlReal#,
last_updusr_id = #lastUpdusrId#,
last_updt_pnttm = SYSDATE
WHERE
@ -3586,15 +3592,27 @@ VALUES
LEFT OUTER JOIN VE_EDU_OPRTN C
ON A.EDU_APLCT_ORD = C.EDU_APLCT_ORD
LEFT JOIN (
SELECT MAX(dd.edu_aplct_ord) AS edu_aplct_ord
FROM ve_edu_aplct dd
JOIN ve_edu_scltn_teacher ddd
ON dd.edu_aplct_ord = ddd.edu_aplct_ord
GROUP BY dd.FRST_REGISTER_ID
) dddd
ON a.EDU_APLCT_ORD = dddd.EDU_APLCT_ORD
LEFT JOIN ve_edu_scltn_teacher D
ON D.EDU_APLCT_ORD = dddd.EDU_APLCT_ORD
SELECT
DD.EDU_APLCT_ORD, DD.UNFTH_YN, DDD.USER_ID
FROM
VE_EDU_SCLTN_TEACHER DD
LEFT JOIN
VE_EDU_APLCT DDD
ON
DD.EDU_APLCT_ORD = DDD.EDU_APLCT_ORD
WHERE
DD.EDU_APLCT_ORD IN(
SELECT
MAX(EDU_APLCT_ORD)
FROM
VE_EDU_APLCT
WHERE
TO_CHAR(SBMT_PNTTM,'YYYY') = #lastYear#
GROUP BY
USER_ID)
)D
ON a.USER_ID = D.USER_ID
WHERE 1=1
<isNotEmpty property="lctrDivCd" prepend="AND">
A.lctr_div_cd = #lctrDivCd#

View File

@ -505,7 +505,7 @@
,rmrks
,frst_regist_pnttm
,frst_register_id
,rprt_score
)VALUES(
#eduAplctOrd#,
#divCd#,
@ -514,7 +514,8 @@
#extraPayYn#,
#rmrks#,
SYSDATE,
#frstRegisterId#
#frstRegisterId#,
#rprtScore#
)
</insert>
@ -537,6 +538,7 @@
,a.unfth_yn AS unfthYn
,a.extra_pay_yn AS extraPayYn
,a.rmrks AS rmrks
,a.rprt_score AS rprtScore
,TO_CHAR(a.frst_regist_pnttm,'YYYY-MM-DD') AS frstRegistPnttm
,a.frst_register_id AS frstRegisterId
FROM
@ -573,5 +575,25 @@
AND
INSTR_DIV = #instrDiv#
</update>
<select id="VEInstrDetailDAO.selectLastYearDetail" parameterClass="vEEduAplctVO" resultClass="VEInstrDetailVO">
/* VEInstrDetailDAO.selectSlctnTeacher */
SELECT
a.edu_aplct_ord AS eduAplctOrd
,a.div_cd AS divCd
,a.awards_hist AS awardsHist
,a.unfth_yn AS unfthYn
,a.extra_pay_yn AS extraPayYn
,a.rmrks AS rmrks
,a.rprt_score AS rprtScore
,TO_CHAR(a.frst_regist_pnttm,'YYYY-MM-DD') AS frstRegistPnttm
,a.frst_register_id AS frstRegisterId
FROM
VE_EDU_SCLTN_TEACHER a
WHERE
a.edu_aplct_ord = (SELECT MAX(edu_aplct_ord)
FROM VE_EDU_APLCT
WHERE user_id = #userId#
AND TO_CHAR(SBMT_PNTTM,'YYYY') = #lastYear#)
</select>
</sqlMap>

View File

@ -121,8 +121,7 @@
UPDATE VE_EDU_APLCT
SET aprvl_cd = #aprvlCd#
WHERE prcs_aplct_prd_ord = #prcsAplctPrdOrd#
AND edu_aplct_ord IN
WHERE edu_aplct_ord IN
<iterate property="eduAplctOrdList" open="(" close=")" conjunction=",">
#eduAplctOrdList[]#
</iterate>
@ -134,8 +133,7 @@
UPDATE VEA_APLCT_DETAIL_INFO
SET aplct_state_cd = #aplctStateCd#
WHERE prcs_aplct_prd_ord = #prcsAplctPrdOrd#
AND edu_aplct_ord IN
WHERE edu_aplct_ord IN
<iterate property="eduAplctOrdList" open="(" close=")" conjunction=",">
#eduAplctOrdList[]#
</iterate>

View File

@ -615,5 +615,38 @@
a.lctr_div_cd = #lctrDivCd#
AND a.user_id = #userId#
</select>
<select id="VEPrcsAplctPrdDAO.selectDetailByOrd" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO">
/* VEPrcsAplctPrdDAO.selectDetailNewOne */
SELECT COUNT(1) OVER() AS totCnt ,
a.prcs_aplct_prd_ord AS prcsAplctPrdOrd,
a.lctr_div_cd AS lctrDivCd,
TO_CHAR(TO_DATE(a.strt_pnttm,'YYYYMMDDHH24MISS'), 'YYYY-MM-dd') AS strtPnttm,
TO_CHAR(TO_DATE(a.end_pnttm,'YYYYMMDDHH24MISS'), 'YYYY-MM-dd') AS endPnttm,
a.use_yn AS useYn,
TO_CHAR(a.frst_regist_pnttm,'YYYY-MM-DD') AS frstRegistPnttm,
a.frst_register_id AS frstRegisterId,
TO_CHAR(a.last_updt_pnttm,'YYYY-MM-DD') AS lastUpdtPnttm,
a.last_updusr_id AS lastUpdusrId,
a.anncm_cn AS anncmCn,
a.popup_cn AS popupCn,
a.atch_file_id AS atchFileId,
a.title AS title ,
(SELECT orignl_file_nm
FROM lettnfiledetail
WHERE atch_file_id = a.atch_file_id LIMIT 1
)
AS atchFileNm
FROM ve_prcs_aplct_prd a
WHERE 1 = 1
<isNotEmpty property="lctrDivCd">
AND a.lctr_div_cd=#lctrDivCd#
</isNotEmpty>
AND
a.use_yn = 'Y'
AND
a.prcs_aplct_prd_ord = #prcsAplctPrdOrd#
ORDER BY a.strt_pnttm DESC
LIMIT 1
</select>
</sqlMap>

View File

@ -249,4 +249,28 @@
</select>
<!-- 강사 정보 U -->
<update id="VEEduRsltRprtDAO.updateNullFile" parameterClass="VEEduRprtVO">
UPDATE
<include refid="VEEduRsltRprtDAO.table_name"/>
SET
APRVL_CD = '230'
,LAST_UPDT_PNTTM = SYSDATE
,LAST_UPDUSR_ID = #lastUpdusrId#
<isEqual property="rprtFileType" compareValue="rslt">
,ORGNL_RSLT_ATCH_FILE_ID = null
</isEqual>
<isEqual property="rprtFileType" compareValue="cpy">
,CPY_RSLT_ATCH_FILE_ID = null
</isEqual>
<isEqual property="rprtFileType" compareValue="evdnc">
,EVDNC_PHT_ATCH_FILE_ID = null
</isEqual>
<isEqual property="rprtFileType" compareValue="rmt">
,RMT_TRN_ATCH_FILE_ID = null
</isEqual>
WHERE
edu_aplct_ord = #eduAplctOrd#
</update>
</sqlMap>

View File

@ -155,6 +155,8 @@
<pattern>*/kccadr/oprtn/cpyrgExprnClsrm/cautionGuidePreView.do</pattern> <!-- 관리자 저작권체험교실 교육과정안내 미리보기 팝업 -->
<pattern>*/kccadr/oprtn/cpyrgExprnClsrm/popup/slctnTeacherPopup.do</pattern> <!-- 관리자 저작권체험교실 교육과정안내 미리보기 팝업 -->
<!-- <pattern>*/tngrVisitEdu/popup/*Popup.do</pattern>
<pattern>*/adultVisitEdu/popup/*Popup.do</pattern> -->

View File

@ -0,0 +1,93 @@
<%@ 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"%>
<%
/**
* @Class Name : selectScholSealInfs.jsp
* @Description : 파일 목록화면
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ---------- ------ ---------------------------
* @ 2009.03.26 이삼섭 최초 생성
* @ 2011.07.20 옥찬우 <Input> Tag id속성 추가( Line : 68 )
*
* @author 공통서비스 개발팀 이삼섭
* @since 2009.03.26
* @version 1.0
* @see
*
*/
%>
<!-- link href="<c:url value='/css/egovframework/com/com.css' />" rel="stylesheet" type="text/css"-->
<script type="text/javascript">
function fn_egov_downFile(atchFileId, fileSn){
window.open("<c:url value='/cmm/fms/FileDown.do?atchFileId="+atchFileId+"&fileSn="+fileSn+"'/>");
}
/* 등록되어 있는 파일 삭제버튼 클릭시 */
function delRsltRprtFile(itemId , fileSn, rprtFileType){
if(!confirm("삭제하시겠습니까?")){
return false;
}
$.ajax({
type: "POST",
url: "<c:url value='/kccadr/oprtn/cpyrgExprnClsrm/rsltRprtfileDeleteAjax.do' />",
data:{ "atchFileId" : itemId , "fileSn" : fileSn, "eduAplctOrd" : "${eduAplctOrd}", "rprtFileType" : rprtFileType},
dataType:'json',
cache: false,
async: false,
timeout: 600000,
success: function (returnData, status) {
if(status == 'success'){
if(returnData.result == 'fail'){
alert("삭제처리가 실패하였습니다.");
}else if(returnData.result == 'auth_fail'){
alert("세션이 종료되었습니다.");
}else if(returnData.result =='success'){
$('.item_'+returnData.fmsFileVO.atchFileId+"_"+returnData.fmsFileVO.fileSn).remove();
alert("삭제되었습니다.");
window.location.reload()
}
}else{
alert("삭제처리에 실패하였습니다.");
}
},
error: function (e) {
console.log("ERROR : ", e);
alert("삭제처리에 실패하였습니다.");
}
});
}
</script>
<style type="text/css">
.cursor {
cursor: pointer;
vertical-align: middle;
}
</style>
<!-- <form name="fileForm" action="" method="post" > -->
<input type="hidden" name="atchFileId" value="${atchFileId}">
<input type="hidden" name="fileSn" >
<input type="hidden" name="fileListCnt" id="fileListCnt" value="${fileListCnt}">
<c:set var="fileCount" value="${fn:length(fileList) }" />
<!-- </form> -->
<!--<title>파일목록</title> -->
<c:forEach var="fileVO" items="${fileList}" varStatus="status">
<a href="javascript:fn_egov_downFile('<c:out value="${fileVO.atchFileId}"/>','<c:out value="${fileVO.fileSn}"/>')" class="file_download_a" title="다운로드" style="display:inline-block;">
<c:out value="${fileVO.orignlFileNm}"/>
</a>
<img src="<c:url value='/images/egovframework/com/cmm/btn/btn_del.png' />" class="cursor" onClick="delRsltRprtFile('<c:out value="${fileVO.atchFileId}"/>','<c:out value="${fileVO.fileSn}" />', '<c:out value="${type}"/>'); return false;" alt="첨부파일">
<br/>
</c:forEach>
<c:if test="${fn:length(fileList) == 0}">
</c:if>

View File

@ -342,9 +342,9 @@
<!-- //list -->
<!-- page -->
<%-- <div class="page">
<div class="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</div> --%>
</div>
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>

View File

@ -31,7 +31,7 @@
<script type="text/javascript">
//세부과정 추가 버튼 클릭 시 세부과정 추가
$(document).ready(function() {
$('#dBirth').on('input', function() {
/* $('#dBirth').on('input', function() {
var input = $(this).val();
var length = input.length;
var lastChar = input.charAt(length - 1);
@ -46,7 +46,7 @@
if (length === 4 || length === 7) {
$(this).val(input + '-');
}
});
}); */
});
function fncSave(){
@ -185,7 +185,7 @@
<!-- cont_tit -->
<div class="cont_tit">
<h2>대상자 록</h2>
<h2>대상자 록</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>

View File

@ -173,16 +173,7 @@
<p>접수종료일</p>
</th>
<td>
<c:choose>
<c:when test="${not empty info.endPnttm}">
<%-- <fmt:parseDate value="${info.endPnttm}" var="endPnttm" pattern="yyMMddHHmmss"/>
<fmt:formatDate value="${endPnttm}" pattern="yyyy.MM.dd"/> --%>
<c:out value="${info.endPnttm}" />
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
<c:out value="${endPnttm}"/>
</td>
</tr>
<tr>

View File

@ -74,10 +74,41 @@
);
}
function updateHiddenMemo(){
$("#prvtMemoCn").val($("#hiddenMemo").val());
var data1 = new FormData(document.getElementById("hiddenMemoForm"));
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/unqIsuesRegPopupAjax.do",
data:data1,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("저장 되었습니다.");
location.reload();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
</script>
</head>
<body>
<form id="hiddenMemoForm" name="hiddenMemoForm" method="post">
<input type="hidden" name="eduAplctOrd" value="<c:out value="${info.eduAplctOrd}" />" />
<input type="hidden" name="prvtMemoCn" id="prvtMemoCn" value="" />
</form>
<form id="popForm1" name="popForm1" method="post">
<input type="hidden" name="pageIndex" value="<c:out value='${info.pageIndex}' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${info.searchSortCnd}" />" />
@ -332,8 +363,10 @@
<p>결과보고서 원본</p>
</th>
<td class="file_download" colspan="3">
<c:import url="/cmm/fms/selectSimpleDownInfs.do" charEncoding="utf-8">
<c:import url="/cmm/fms/selectRsltRprtFile.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${info.orgnlRsltAtchFileId}" />
<c:param name="eduAplctOrd" value="${info.eduAplctOrd}" />
<c:param name="type" value="rslt" />
</c:import>
</td>
</tr>
@ -342,8 +375,10 @@
<p>결과보고서 평가용</p>
</th>
<td class="file_download" colspan="3">
<c:import url="/cmm/fms/selectSimpleDownInfs.do" charEncoding="utf-8">
<c:import url="/cmm/fms/selectRsltRprtFile.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${info.cpyRsltAtchFileId}" />
<c:param name="eduAplctOrd" value="${info.eduAplctOrd}" />
<c:param name="type" value="cpy" />
</c:import>
</td>
</tr>
@ -352,8 +387,10 @@
<p>증빙사진</p>
</th>
<td class="file_download" colspan="3">
<c:import url="/cmm/fms/selectSimpleDownInfs.do" charEncoding="utf-8">
<c:import url="/cmm/fms/selectRsltRprtFile.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${info.evdncPhtAtchFileId}" />
<c:param name="eduAplctOrd" value="${info.eduAplctOrd}" />
<c:param name="type" value="evdnc" />
</c:import>
</td>
</tr>
@ -362,8 +399,10 @@
<p>원격연수 이수증</p>
</th>
<td class="file_download" colspan="3">
<c:import url="/cmm/fms/selectSimpleDownInfs.do" charEncoding="utf-8">
<c:import url="/cmm/fms/selectRsltRprtFile.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${info.rmtTrnAtchFileId}" />
<c:param name="eduAplctOrd" value="${info.eduAplctOrd}" />
<c:param name="type" value="rmt" />
</c:import>
</td>
</tr>
@ -408,16 +447,12 @@
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 210px;">
<col style="width: auto;">
<col style="width: 20%;">
<col style="width: 30%;">
<col style="width: 20%;">
<col style="width: 30%;">
</colgroup>
<tbody>
<tr>
<th scope="row">
<p>수상이력</p>
</th>
<td><c:out value="${vEInstrDetailVO.awardsHist}" /></td>
</tr>
<tr>
<th scope="row">
<p>불성실 여부</p>
@ -431,6 +466,52 @@
</c:choose>
</p>
</td>
<th scope="row">
<p>전년도 불성실 여부</p>
</th>
<td>
<p>
<c:choose>
<c:when test="${lastVEInstrDetailVO.unfthYn eq 'Y'}">불성실</c:when>
<c:when test="${lastVEInstrDetailVO.unfthYn eq 'N'}">성실</c:when>
<c:otherwise>-</c:otherwise>
</c:choose>
</p>
</td>
</tr>
<tr>
<th scope="row">
<p>보고서 평가</p>
</th>
<td>
<p>
<c:choose>
<c:when test="${vEInstrDetailVO.rprtScore eq '3'}">상</c:when>
<c:when test="${vEInstrDetailVO.rprtScore eq '2'}">중</c:when>
<c:when test="${vEInstrDetailVO.rprtScore eq '1'}">하</c:when>
<c:otherwise>-</c:otherwise>
</c:choose>
</p>
</td>
<th scope="row">
<p>전년도 보고서 평가</p>
</th>
<td>
<p>
<c:choose>
<c:when test="${lastVEInstrDetailVO.rprtScore eq '3'}">상</c:when>
<c:when test="${lastVEInstrDetailVO.rprtScore eq '2'}">중</c:when>
<c:when test="${lastVEInstrDetailVO.rprtScore eq '1'}">하</c:when>
<c:otherwise>-</c:otherwise>
</c:choose>
</p>
</td>
</tr>
<tr>
<th scope="row">
<p>수상이력</p>
</th>
<td><c:out value="${vEInstrDetailVO.awardsHist}" /></td>
</tr>
<tr>
<th scope="row">
@ -457,6 +538,30 @@
</tbody>
</table>
</div>
<!-- 비공개 메보 정보 -->
<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="hiddenMemo" id="hiddenMemo"><c:out value="${info.prvtMemoCn}" /></textarea>
<button type="button" class="btn_type08" onclick="updateHiddenMemo(); return false;">메모 저장</button>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- //list_상세 -->
<!-- btn_wrap -->

View File

@ -271,27 +271,33 @@
<c:out value="${list.sbmtPnttm}"/>
</td>
<td>
<%-- <ve:code codeId="VE0003" code="${list.aprvlCd}" /> --%>
<jsp:useBean id="date" class="java.util.Date" />
<fmt:formatDate value="${date}" pattern="yyyyMMdd" var="now" />
<c:choose>
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_10}">
<span class="app_status1">운영신청</span>
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_60 && list.oprtnStrtDt <= now && now <= list.oprtnEndDt}">
<span >운영진행</span>
</c:when>
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_70}">
<span class="app_status2">수정요청</span>
</c:when>
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_80}">
<span class="app_status4">수정완료</span>
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_60 && now > list.oprtnEndDt}">
<span >운영종료</span>
</c:when>
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_60}">
<span class="app_status4">운영확정</span>
<span >운영확정</span>
</c:when>
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_90}">
<span class="app_status4">운영미확정</span>
<c:when test="${list.aprvlCd eq list.aprvlCd eq VeConstants.APRVL_CD_90}">
<span >운영취소</span>
</c:when>
<c:otherwise>
-
-
</c:otherwise>
</c:choose>
<c:choose>
<c:when test="${list.rprtAprvlCd eq '10'}">
<span >(결과보고)</span>
</c:when>
<c:when test="${list.oathAtchFileId ne null || list.planAtchFileId ne null}">
<span >(서류제출)</span>
</c:when>
</c:choose>
</td>
</tr>
</c:forEach>

View File

@ -7,6 +7,7 @@
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<script src="${pageContext.request.contextPath}/visitEdu/adm/publish/script/jquery-3.5.0.js"></script>
<html lang="ko">
<head>
<meta charset="UTF-8">
@ -59,6 +60,11 @@
return false;
}
if (!$('input:radio[name=rprtScore]').is(':checked')) {
alert("보고서 평가를 선택해주세요.");
return false;
}
if ($("[name='rmrks']").val() == '') {
alert("비고를 입력해주세요.");
@ -104,6 +110,23 @@
<label for="extraPayN">비지급</label>
</div>
</div>
<div class="pop_tb_tit01">
<p>보고서 평가${vEInstrDetailVO.extraPayYn}</p>
</div>
<div class="pop_cbx_wrap">
<div class="check_wrap">
<input type="radio" name="rprtScore" id="rprtScore3" value="3" <c:if test="${vEInstrDetailVO.rprtScore eq '3'}">checked</c:if>>
<label for="rprtScore3">상</label>
</div>
<div class="check_wrap">
<input type="radio" name="rprtScore" id="rprtScore2" value="2" <c:if test="${vEInstrDetailVO.rprtScore eq '2'}">checked</c:if>>
<label for="rprtScore2">중</label>
</div>
<div class="check_wrap">
<input type="radio" name="rprtScore" id="rprtScore1" value="1" <c:if test="${vEInstrDetailVO.rprtScore eq '1'}">checked</c:if>>
<label for="rprtScore1">하</label>
</div>
</div>
<div class="pop_tb_tit01">
<p>비고</p>
</div>

View File

@ -283,15 +283,7 @@
<p>접수종료일</p>
</th>
<td>
<c:choose>
<c:when test="${not empty info.prcsEndPnttm}">
<fmt:parseDate value="${info.prcsEndPnttm}" var="prcsEndPnttm" pattern="yyMMddHHmm"/>
<fmt:formatDate value="${prcsEndPnttm}" pattern="yyyy.MM.dd"/>
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
<c:out value="${endPnttm }"/>
</td>
</tr>
<tr>
@ -701,6 +693,14 @@
</c:import>
</td>
</tr>
<tr>
<th scope="row">
<p>전체 교육인원</p>
</th>
<td colspan="3">
${info.trgtPrsnlReal}
</td>
</tr>
</tbody>
</table>
</div>

View File

@ -128,26 +128,32 @@
</a>
</td>
<td>
<jsp:useBean id="date" class="java.util.Date" />
<fmt:formatDate value="${date}" pattern="yyyyMMdd" var="now" />
<c:choose>
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_10}">
<span class="app_status1">운영신청</span>
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_60 && list.oprtnStrtDt <= now && now <= list.oprtnEndDt}">
<span class="app_status1">운영진행</span>
</c:when>
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_70}">
<span class="app_status3">수정요청</span>
</c:when>
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_80}">
<span class="app_status3">수정완료</span>
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_60 && now > list.oprtnEndDt}">
<span class="app_status1">운영종료</span>
</c:when>
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_60}">
<span class="app_status1">운영확정</span>
</c:when>
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_90}">
<span class="app_status1">운영미확정</span>
<c:when test="${list.aprvlCd eq list.aprvlCd eq VeConstants.APRVL_CD_90}">
<span class="app_status1">운영취소</span>
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
<c:choose>
<c:when test="${list.rprtAprvlCd eq '10'}">
<span class="app_status1">(결과보고)</span>
</c:when>
<c:when test="${list.oathAtchFileId ne null || list.planAtchFileId ne null}">
<span class="app_status1">(서류제출)</span>
</c:when>
</c:choose>
</td>
</tr>
@ -197,25 +203,30 @@
<span>처리상태</span>
<span>
<c:choose>
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_10}">
<span class="app_status1">운영신청</span>
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_60 && list.oprtnStrtDt <= now && now <= list.oprtnEndDt}">
<span class="app_status1">운영진행</span>
</c:when>
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_70}">
<span class="app_status3">수정요청</span>
</c:when>
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_80}">
<span class="app_status3">수정요청완료</span>
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_60 && now > list.oprtnEndDt}">
<span class="app_status1">운영종료</span>
</c:when>
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_60}">
<span class="app_status1">교육확정</span>
<span class="app_status1">운영확정</span>
</c:when>
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_90}">
<span class="app_status1">교육미확정</span>
<c:when test="${list.aprvlCd eq list.aprvlCd eq VeConstants.APRVL_CD_90}">
<span class="app_status1">운영취소</span>
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
<c:choose>
<c:when test="${list.rprtAprvlCd eq '10'}">
<span class="app_status1">(결과보고)</span>
</c:when>
<c:when test="${list.oathAtchFileId ne null || list.planAtchFileId ne null}">
<span class="app_status1">(서류제출)</span>
</c:when>
</c:choose>
</span>
</li>
</ul>

View File

@ -298,6 +298,7 @@
var sendData = {
"eduAplctOrd": $('#eduAplctOrd').val()
, "aprvlCd" : $('#aprvlCd').val() //결과제출 - 10, 임시제출 - 230
, "trgtPrsnlReal" : $('#trgtPrsnlRealTxt').val()
, "innorixFileListVO": data
, "successMsg" : "제출 완료되었습니다."
}
@ -359,6 +360,7 @@
var sendData = {
"eduAplctOrd": $('#eduAplctOrd').val()
, "aprvlCd" : $('#aprvlCd').val()
, "trgtPrsnlReal" : $('#trgtPrsnlRealTxt').val()
, "successMsg" : "제출 완료되었습니다."
}
if(fn_innorixCmmAjax(sendData, url) == "OK")
@ -405,6 +407,7 @@
document.getElementById('aprvlCd').value = '230';
document.getElementById('trgtPrsnlReal').value = $("trgtPrsnlRealTxt").val()
//업로드 경로 설정 -upload.jsp에서 uploader.setDirectory(innoDirPath) 식으로 사용
//230810 기준 : innoDirPath = globals_local.properties = /usr/local/tomcat/file/sht/ 경로지만
//upload.jsp에서 /app/doc/offedu/sht/로 다시 set. context-properties.xml에서 파일 경로도 /app/doc/offedu/sht/
@ -418,6 +421,7 @@
<form:form id="linkForm" name="linkForm" commandName="vEEduAplctVO" onsubmit="return false;" method="post">
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="${info.eduAplctOrd}" />
<input type="hidden" name="aprvlCd" id="aprvlCd" value="" />
<input type="hidden" name="trgtPrsnlReal" id="trgtPrsnlReal" value="" />
<input type="hidden" id="innoDirPath" value="<spring:eval expression="@globalSettings['Globals.Innorix.FilePath']"/>" />
</form:form>
@ -523,6 +527,13 @@
</div>
</dd>
</dl>
<dl class="filewrap_div">
<dt>전체 교육인원</dt>
<dd>
<label for="trgtGrade" class="label">전체 교육인원</label>
<input type="text" id="trgtPrsnlRealTxt" onkeyup="onlyNumber(this);" value="${info.trgtPrsnlReal}" title="전체 교육인원" size="20" maxlength="3">
</dd>
</dl>
</div>
<div class="btn_wrap btn_layout01">

View File

@ -0,0 +1,281 @@
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
<% pageContext.setAttribute("replaceChar", "\n"); %>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<style>
input:disabled {
background-color: #f9f9f9 !important;
}
input:read-only {
background-color: #f9f9f9 !important;
}
</style>
<script type="text/javaScript" language="javascript">
$( document ).ready(function(){
});
function fncGoEdit(){
var linkForm = document.linkForm ;
linkForm.action = "<c:url value='/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctMdfy.do'/>";
linkForm.submit();
}
</script>
<form:form id="linkForm" name="linkForm" commandName="vEEduAplctVO" onsubmit="return false;" method="post">
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="${info.eduAplctOrd}" />
</form:form>
<div class="cont_wrap" id="sub">
<div class="tb_tit01">
<div class="tb_tit01_left">
<p>운영신청 상세</p>
</div>
</div>
<div class="tb_type01 tb_write">
<table>
<caption>운영신청 상세 (th 명)을 보여주는 표</caption>
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr class="trLength4">
<th scope="row">
<p>신청일</p>
</th>
<td>
<c:choose>
<c:when test="${not empty info.sbmtPnttmDetail}">
<fmt:parseDate value="${info.sbmtPnttmDetail}" var="sbmtPnttm" pattern="yyyy-MM-dd HH:mm:ss"/>
<fmt:formatDate value="${sbmtPnttm}" pattern="yyyy.MM.dd HH시 mm분"/>
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
</td>
<th scope="row">
<p>접수종료일</p>
</th>
<td>
<c:out value="${endPnttm }"/>
</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>신청일</p>
</th>
<td colspan="3">
<c:choose>
<c:when test="${not empty info.sbmtPnttm}">
<fmt:parseDate value="${info.sbmtPnttm}" var="sbmtPnttm" pattern="yyyy-MM-dd"/>
<fmt:formatDate value="${sbmtPnttm}" pattern="20yy.MM.dd"/>
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>접수종료일</p>
</th>
<td colspan="3">
<c:choose>
<c:when test="${not empty info.endPnttm}">
<fmt:parseDate value="${info.endPnttm}" var="endPnttm" pattern="yyyyMMddHHmm"/>
<fmt:formatDate value="${endPnttm}" pattern="yyyy.MM.dd"/>
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
</td>
</tr>
<tr>
<th scope="row">
<p>처리상태</p>
</th>
<td colspan="3">
<c:choose>
<c:when test="${info.aprvlCd eq VeConstants.APRVL_CD_10}">
<span class="app_status1">운영신청</span>
</c:when>
<c:when test="${info.aprvlCd eq VeConstants.APRVL_CD_70}">
<span class="app_status3">수정요청</span>
</c:when>
<c:when test="${info.aprvlCd eq VeConstants.APRVL_CD_80}">
<span class="app_status3">수정요청완료</span>
</c:when>
<c:when test="${info.aprvlCd eq VeConstants.APRVL_CD_60}">
<span class="app_status1">교육확정</span>
</c:when>
<c:when test="${info.aprvlCd eq VeConstants.APRVL_CD_90}">
<span class="app_status1">교육미확정</span>
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
</td>
</tr>
<c:if test="${info.aprvlCd eq '30'}">
<tr>
<th scope="row">
<p>반려사유</p>
</th>
<td colspan="3">${info.aprvlCn}</td>
</tr>
</c:if>
</tbody>
</table>
</div>
<div class="tb_tit01">
<div class="tb_tit01_left">
<p>신청자 정보</p>
</div>
<%--<c:if test="${info.aprvlCd eq VeConstants.STATUS_CD_SBMT}">
<div class="btn_wrap">
<button type="button" class="btnType06" onclick="chrgInfoUpdatePop();">담당자 정보 수정</button>
</div>
</c:if>--%>
</div>
<div class="tb_type01 tb_write">
<table>
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">
<p>학교(기관)명</p>
</th>
<td>${info.scholInsttNm}</td>
</tr>
<tr>
<th scope="row">
<p>학교지역특성</p>
</th>
<td>
<input type="checkbox" id="islandsYn" name="islandsYn" disabled="disabled" <c:if test="${info.islandsYn eq 'Y'}">checked</c:if> /><label for="islandsYn"> 도서지역</label>
<input type="checkbox" id="remoteYn" name="remoteYn" disabled="disabled" <c:if test="${info.remoteYn eq 'Y'}">checked</c:if> /><label for="remoteYn"> 벽지지역</label>
<input type="checkbox" id="clsCmbtYn" name="clsCmbtYn" disabled="disabled" <c:if test="${info.clsCmbtYn eq 'Y'}">checked</c:if> /><label for="clsCmbtYn"> 접적지역</label>
<input type="checkbox" id="ppulDclnYn" name="ppulDclnYn" disabled="disabled" <c:if test="${info.ppulDclnYn eq 'Y'}">checked</c:if> /><label for="ppulDclnYn"> 인구감소지역</label>
</td>
</tr>
<tr>
<th scope="row">
<p>교사명</p>
</th>
<td>${info.chrgNm}</td>
</tr>
<tr>
<th scope="row">
<p>성별</p>
</th>
<td>
<kc:code codeId="COM014" code="${info.chrgSexCd}"/>
</td>
</tr>
<tr>
<th scope="row">
<p>이메일</p>
</th>
<td>${info.email}</td>
</tr>
<tr>
<th scope="row">
<p>휴대폰</p>
</th>
<td>${info.clphone}</td>
</tr>
<tr>
<th scope="row">
<p>전화</p>
</th>
<td>${info.phone}</td>
</tr>
<tr>
<th scope="row">
<p>주소</p>
</th>
<td>(${info.post}) ${info.addr} ${info.addrDetail}</td>
</tr>
<tr>
<th scope="row">
<p>담당교과</p>
</th>
<td>${info.chrgMjr}</td>
</tr>
<tr>
<th scope="row">
<p>생년월일</p>
</th>
<td>
<c:if test="${not empty info.dBirth}">
<c:set var="birthYear" value="${fn:substring(info.dBirth, 0, 4)}"/>
<c:set var="birthMonth" value="${fn:substring(info.dBirth, 4, 6)}"/>
<c:set var="birthDay" value="${fn:substring(info.dBirth, 6, 8)}"/>
</c:if>
${birthYear}년 ${birthMonth}월 ${birthDay}일
</td>
</tr>
<tr>
<th scope="row">
<p>체험교실운영여부</p>
</th>
<td>
운영구분코드 : <kc:code codeId="VE0031" code="${info.exprnClsrnCd}"/> <br/>
운영구분년도 : ${info.exprnClsrnYear}
</td>
</tr>
<tr>
<th scope="row">
<p>신청경로</p>
</th>
<td>
<kc:code codeId="VE0030" code="${info.exprnClsrnAplct}"/>
<c:if test="${not empty info.exprnClsrnAplctCn}">
&nbsp;&nbsp;&nbsp;(기타 내용 : ${info.exprnClsrnAplctCn})
</c:if>
</td>
</tr>
</tbody>
</table>
</div>
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<c:if test="${info.aprvlCd eq VeConstants.STATUS_CD_EDT_REQ or info.sbmtYn ne 'Y'}">
<button type="button" class="btnType06" onclick="fncGoEdit();">수정</button>
</c:if>
<!-- 23.07031 - 신청기간 내 수정 기능 추가 - 요청중일때만 수정 가능 -->
<c:if test="${info.aprvlCd eq VeConstants.STATUS_CD_SBMT and cnt > 0}">
<button type="button" class="btnType06" onclick="fncGoEdit();">수정</button>
</c:if>
</div>
</div>
</div>

View File

@ -0,0 +1,75 @@
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
<% pageContext.setAttribute("replaceChar", "\n"); %>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<style>
input:disabled {
background-color: #f9f9f9 !important;
}
input:read-only {
background-color: #f9f9f9 !important;
}
</style>
<script type="text/javaScript" language="javascript">
$( document ).ready(function(){
if(${info == null}){
alert("진행 중인 체험교실이 없습니다.");
location.href = "<c:url value='/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctGuide.do'/>"
}else{
$("#p_1").click();
}
});
function tabLoad(tab, type){
if($("#loadType").val() != type){
$("#loadType").val(type);
var sendData = $("#loadForm").serializeArray() ;
$("#loadArea").load("<c:url value='/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnDashboardLoadAjax.do' />", sendData ,function(response, status, xhr){
if(status == 'success'){
$(tab).parent().siblings().each(function(index){
var className = $(this).attr('class').split('_on')[0];
$(this).removeClass();
$(this).attr('class', className);
});
$(tab).parent().attr('class',$(tab).parent().attr('class')+'_on')
}else{
alert("조회 실패");
location.href="<c:url value='/web/main/mainPage.do'/>"
}
});
}
}
</script>
<form id="loadForm" name="loadForm" method="post">
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="${info.eduAplctOrd}" />
<input type="hidden" name="loadType" id="loadType" value="" />
</form>
<div class="cont_wrap" id="sub">
<div class="cont_tit">
<h2>체험교실 대시보드</h2>
</div>
<!-- 체험교실 프로세스 -->
<ul class="ex_process">
<li class="p_1"><a href="#" id="p_1" onclick="tabLoad(this,'1');">신청정보</a></li>
<li class="p_2"><a href="#" onclick="tabLoad(this,'2');">운영계획</a></li>
<li class="p_3"><a href="#" onclick="tabLoad(this,'3');">서류 제출</a></li>
<li class="p_4"><a href="#" onclick="tabLoad(this,'4');">결과보고</a></li>
<li class="p_5"><a href="#" onclick="tabLoad(this,'5');">최종결과</a></li>
</ul>
<div id="loadArea">
</div>
</div>

View File

@ -162,15 +162,7 @@
<p>접수종료일</p>
</th>
<td>
<c:choose>
<c:when test="${not empty info.endPnttm}">
<fmt:parseDate value="${info.endPnttm}" var="endPnttm" pattern="yyyyMMddHHmm"/>
<fmt:formatDate value="${endPnttm}" pattern="yyyy.MM.dd"/>
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
<c:out value="${endPnttm }"/>
</td>
</tr>
<tr class="trLength2">

View File

@ -154,17 +154,8 @@
</td>
<td>
<a href="javascript:fncGoDetail('${list.eduAplctOrd}');" >
<fmt:parseDate value="${list.endPnttm}" var="endPnttm" pattern="yyyyMMddHHmm"/>
<fmt:formatDate value="${endPnttm}" pattern="yyyy.MM.dd"/>
<%--<c:choose>
<c:when test="${not empty list.rprtSbmtDt}">
<fmt:parseDate value="${list.rprtSbmtDt}" var="eduHopeDt" pattern="yyyyMMdd"/>
<fmt:formatDate value="${eduHopeDt}" pattern="yyyy.MM.dd"/>
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>--%>
<fmt:parseDate value="${list.prcsEndPnttm}" var="prcsEndPnttm" pattern="yyyyMMddHHmm"/>
<fmt:formatDate value="${prcsEndPnttm}" pattern="yyyy.MM.dd"/>
</a>
</td>
<td>

View File

@ -968,7 +968,7 @@
</th>
<td>
<label for="trgtGrade" class="label">필요 교재 수량 입력</label>
<input type="text" name="needTxtbNum" id="needTxtbNum" onkeyup="onlyNumber(this);" value="${info.needTxtbNum}" title="필요 교재 수량" size="20" maxlength="3">
<input type="text" name="trgtPrsnlReal" id="trgtPrsnlReal" onkeyup="onlyNumber(this);" value="${info.trgtPrsnlReal}" title="전체 교육인원" size="20" maxlength="4">
</td>
</tr>
<%-- <tr>

View File

@ -0,0 +1,129 @@
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
<% pageContext.setAttribute("replaceChar", "\n"); %>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<spring:eval expression="@property['Globals.Innorix.License']" var="license"/>
<script src="<c:url value='/innorix/innorix_${license}.js' />"></script>
<script src="<c:url value='/js/kccadr/innorixCommon.js' />"></script>
<style>
input:disabled {
background-color: #f9f9f9 !important;
}
input:read-only {
background-color: #f9f9f9 !important;
}
.file_list .file_download_a {
margin-bottom: 10px;
}
.onlyFile .file_download_a {
margin-bottom: 0;
}
</style>
<script type="text/javaScript" language="javascript">
$( document ).ready(function(){
//파일첨부버튼
$(".btn_add_file").on('click', function(){
$("#file_temp").click();
});
});
function filePopupLayer(type){
commonPopLayeropen(
"${pageContext.request.contextPath}/web/ve/comm/popup/fileUploadPop.do"
, 650
, 464
, {'eduAplctOrd' : '<c:out value='${info.eduAplctOrd}'/>','fileType' : type}
, "Y"
, "fileUploadPop"
);
}
function fileDown(atchFileId){
if(atchFileId == ''){
alert("등록된 설문지가 없습니다.");
return;
}
window.open("<c:url value='/cmm/fms/FileDown.do?atchFileId="+atchFileId+"&fileSn=0'/>");
}
</script>
<form:form id="listForm" name="listForm" commandName="vEEduAplctVO" onsubmit="return false;" method="post">
<input type="hidden" name="pageIndex" value="<c:out value='${vEEduAplctVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEEduAplctVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEEduAplctVO.searchSortOrd}" />" />
<input type="hidden" name="searchStatus" value="<c:out value="${vEEduAplctVO.searchStatus}" />" />
<input type="hidden" name="eduAplctOrd" value="${info.eduAplctOrd}">
</form:form>
<form:form id="linkForm" name="linkForm" commandName="vEEduAplctVO" onsubmit="return false;" method="post">
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="${info.eduAplctOrd}" />
</form:form>
<div class="cont_wrap" id="sub">
<div class="tb_tit01">
<div class="tb_tit01_left">
<p>거래선 및 서약서 정보</p>
</div>
</div>
<div class="tb_type01 tb_write">
<table>
<caption>거래선 및 서약서 (th 명)을 보여주는 표</caption>
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row"><p>거래선 양식</p></th>
<td>
<button type="button" class="btnType01" onclick="location.href='${pageContext.request.contextPath}/cmm/fms/FileDown.do?atchFileId=FILE_000000000015299&amp;fileSn=2'" title="거래선 양식 다운로드">거래선 양식 다운로드</button>
<p>
<span class="cf_text">※ 거래선 파일은 개인정보 수집 및 보호를 위해 반드시 메일(entt@copyright.or.kr)로 제출하시기 바랍니다.</span>
</p>
</td>
</tr>
<tr>
<th scope="row"><p>서약서 제출</p></th>
<td>
<c:choose>
<c:when test="${info.oathAtchFileId ne null}">
<c:import url="/cmm/fms/selectScholSealInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${info.oathAtchFileId}" />
</c:import>
<button type="button" class="btnType01" data-tooltip="sub35_pop01" id="OATH" onclick="filePopupLayer('OATH')" title="팝업 열림">서약서 파일 변경</button>
</c:when>
<c:otherwise>
<button type="button" class="btnType01" data-tooltip="sub35_pop01" id="OATH" onclick="filePopupLayer('OATH')" title="팝업 열림">서약서 업로드</button>
</c:otherwise>
</c:choose>
<button type="button" class="btnType01" onclick="location.href='${pageContext.request.contextPath}/cmm/fms/FileDown.do?atchFileId=FILE_000000000015299&amp;fileSn=1'" title="서약서 양식 다운로드">서약서 양식 다운로드</button>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
</div>
</div>
</div>

View File

@ -0,0 +1,184 @@
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<spring:eval expression="@property['Globals.Innorix.License']" var="license"/>
<script src="<c:url value='/innorix/innorix_${license}.js' />"></script>
<script src="<c:url value='/js/kccadr/innorixCommon.js' />"></script>
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
<% pageContext.setAttribute("replaceChar", "\n"); %>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<style>
input:disabled {
background-color: #f9f9f9 !important;
}
input:read-only {
background-color: #f9f9f9 !important;
}
</style>
<script type="text/javaScript" language="javascript">
$( document ).ready(function(){
});
function fncGoEdit(){
var linkForm = document.linkForm ;
linkForm.action = "<c:url value='/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctMdfy.do'/>";
linkForm.submit();
}
function filePopupLayer(type){
commonPopLayeropen(
"${pageContext.request.contextPath}/web/ve/comm/popup/fileUploadPop.do"
, 650
, 464
, {'eduAplctOrd' : '<c:out value='${info.eduAplctOrd}'/>','fileType' : type}
, "Y"
, "fileUploadPop"
);
}
</script>
<form:form id="linkForm" name="linkForm" commandName="vEEduAplctVO" onsubmit="return false;" method="post">
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="${info.eduAplctOrd}" />
</form:form>
<div class="cont_wrap" id="sub">
<div class="tb_tit01">
<div class="tb_tit01_left">
<p>운영계획</p>
</div>
</div>
<div class="tb_type01 tb_write">
<table>
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr class="trLength4">
<th scope="row">
<p>대상학년</p>
</th>
<td>${info.trgtGrade}</td>
<th scope="row">
<p>대상반</p>
</th>
<td>${info.trgtClsrm}</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>대상학년</p>
</th>
<td colspan="3">${info.trgtGrade}</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>대상반</p>
</th>
<td colspan="3">${info.trgtClsrm}</td>
</tr>
<tr class="trLength4">
<th scope="row">
<p>대상학생수</p>
</th>
<td>
${info.trgtPrsnl}
</td>
<th scope="row">
<p>운영시기</p>
</th>
<td>
<fmt:parseDate value="${info.oprtnStrtDt}" var="oprtnStrtDt" pattern="yyyyMMdd"/>
<fmt:formatDate value="${oprtnStrtDt}" pattern="yyyy.MM.dd"/>
~
<fmt:parseDate value="${info.oprtnEndDt}" var="oprtnEndDt" pattern="yyyyMMdd"/>
<fmt:formatDate value="${oprtnEndDt}" pattern="yyyy.MM.dd"/>
</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>대상학생수</p>
</th>
<td colspan="3">
${info.trgtPrsnl}
</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>운영시기</p>
</th>
<td colspan="3">
<fmt:parseDate value="${info.oprtnStrtDt}" var="oprtnStrtDt" pattern="yyyyMMdd"/>
<fmt:formatDate value="${oprtnStrtDt}" pattern="yyyy.MM.dd"/>
~
<fmt:parseDate value="${info.oprtnEndDt}" var="oprtnEndDt" pattern="yyyyMMdd"/>
<fmt:formatDate value="${oprtnEndDt}" pattern="yyyy.MM.dd"/>
</td>
</tr>
<tr class="trLength4">
<th scope="row">
<p>필요 교재 수량</p>
</th>
<td>
${info.needTxtbNum}
</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>필요 교재 수량</p>
</th>
<td colspan="3">
${info.needTxtbNum}
</td>
</tr>
<tr>
<th scope="row">
<p>첨부파일</p>
</th>
<td class="file_download" colspan="3">
<c:import url="/cmm/fms/selectScholSealInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${info.oprtnFileId}" />
</c:import>
</td>
</tr>
<tr>
<th scope="row"><p>차시별 계획서 제출</p></th>
<td colspan="3">
<c:if test="${info.planAtchFileId ne null}">
<c:import url="/cmm/fms/selectScholSealInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${info.planAtchFileId}" />
</c:import>
</c:if>
<button type="button" class="btnType01" data-tooltip="sub35_pop01" id="PLAN" onclick="filePopupLayer('PLAN')" title="팝업 열림">계획서 업로드</button>
<button type="button" class="btnType01" onclick="location.href='${pageContext.request.contextPath}/cmm/fms/FileDown.do?atchFileId=FILE_000000000015299&amp;fileSn=0'" title="계획서 양식 다운로드">계획서 양식 다운로드</button>
</td>
</tr>
</tbody>
</table>
</div>
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<c:if test="${info.aprvlCd eq VeConstants.STATUS_CD_EDT_REQ or info.sbmtYn ne 'Y'}">
<button type="button" class="btnType06" onclick="fncGoEdit();">수정</button>
</c:if>
<!-- 23.07031 - 신청기간 내 수정 기능 추가 - 요청중일때만 수정 가능 -->
<c:if test="${info.aprvlCd eq VeConstants.STATUS_CD_SBMT and cnt > 0}">
<button type="button" class="btnType06" onclick="fncGoEdit();">수정</button>
</c:if>
</div>
</div>
</div>

View File

@ -0,0 +1,610 @@
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
<% pageContext.setAttribute("replaceChar", "\n"); %>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<spring:eval expression="@property['Globals.Innorix.License']" var="license"/>
<script>
/* js에 전달용 */
var contextPath = '${pageContext.request.contextPath}';
var eduAplctOrd = "<c:out value='${info.eduAplctOrd}'/>";
</script>
<script src="<c:url value='/innorix/innorix_${license}.js' />"></script>
<script src="<c:url value='/js/kccadr/innorixCommon.js' />"></script>
<link rel="stylesheet" href="<c:url value='/innorix/innorix.css'/>" type="text/css">
<style>
input:disabled {
background-color: #f9f9f9 !important;
}
input:read-only {
background-color: #f9f9f9 !important;
}
#orgn{margin: 8px 0 0 0; border: 1px solid #d5d5d5; border-radius: 5px; height: 150px !important; background-color: #fafafa;}
.innorix_basic div.irx_filetree.empty-uploader{background: url(/offeduadvc/visitEdu/usr/publish/images/content/dropzone_file_before.png) no-repeat center; height: 150px !important;}
.irx_filetree,.innorix_basic div.irx_infoBox{height: 150px !important;}
#cpy{margin: 8px 0 0 0; border: 1px solid #d5d5d5; border-radius: 5px; height: 150px !important; background-color: #fafafa;}
#evdnc{margin: 8px 0 0 0; border: 1px solid #d5d5d5; border-radius: 5px; height: 150px !important; background-color: #fafafa;}
#evdnc div.irx_filetree.empty-uploader{background: url(/offeduadvc/visitEdu/usr/publish/images/content/dropzone_file_before_only_zip.png) no-repeat center; height: 150px !important;}
#rmttrn{margin: 8px 0 0 0; border: 1px solid #d5d5d5; border-radius: 5px; height: 150px !important; background-color: #fafafa;}
</style>
<script type="text/javaScript" language="javascript">
//대용량 업로드 솔루션
var control1 = new Object();
var control2 = new Object();
var control3 = new Object();
var control4 = new Object();
var control5 = new Object();
//첨부파일 변화 유무
var control1Chg = 'N';
var control2Chg = 'N';
var control3Chg = 'N';
var control4Chg = 'N';
//임시파일 유무 설정
var control1Tmprr = 'N';
var control2Tmprr = 'N';
var control3Tmprr = 'N';
var control4Tmprr = 'N';
//기존 임시저장 확인 여부 - tmprrYn이 == N 테이블 insert / tmprrYn == Y 테이블 update
var tmprrYn = 'N';
var control1Id = '${info.orgnlRsltAtchFileId}';
var control2Id = '${info.cpyRsltAtchFileId}';
var control3Id = '${info.evdncPhtAtchFileId}';
var control4Id = '${info.rmtTrnAtchFileId}';
if(control1Id != null && control1Id != ''){
control1Tmprr = 'Y';
tmprrYn = 'Y';
}
if(control2Id != null && control2Id != ''){
control2Tmprr = 'Y';
tmprrYn = 'Y';
}
if(control3Id != null && control3Id != ''){
control3Tmprr = 'Y';
tmprrYn = 'Y';
}
if(control4Id != null && control4Id != ''){
control4Tmprr = 'Y';
tmprrYn = 'Y';
}
//임시파일 다운로드 jsp 기본 경로
var urlBase = "<c:url value='/innorix/exam/'/>"
$(document).ready(function(){
//대용량 업로드 솔루션 innorix
//원본 결과 보고서 컨트롤 생성
control1 = innorix.create({
el : '#orgn', // 컨트롤 출력 객체 ID
installUrl: '<c:url value="/innorix/install/install.html" />', // Agent 설치 페이지
uploadUrl: '<c:url value="/innorix/exam/upload.jsp?el=orgn" />', // 업로드 URL
maxFileCount : 1, // 첨부가능 파일 전체 개수
width : 870, // 컨트롤 출력 너비(pixel)
height : 80, // 컨트롤 출력 높이(pixel)
allowExtension : ["txt","xls","xlsx","png","jpg","jpeg","doc","ppt","hwp","pdf","zip"],
useContextMenu : 'false' //우클릭을 이용한 개별 업로드 방지
});
// 파일 추가 이벤트
control1.on('afterAddFiles', function (p) {
$('.orgnl_totalfileSize').text(getStrFileSize(p[0].fileSize)) ;
$('.orgnl_totalfileCount').text(p.length);
control1Chg = 'Y';
});
// 파일 삭제 이벤트
// 임시 저장이 아닌, 새로 afterAddFiles(업로드 전 파일추가) - control1Chg 'N'
// 임시 저장 파일 삭제 시 - control1Chg 'Y'
control1.on('removeFiles', function (p) {
$('.orgnl_totalfileSize').text('0MB') ;
$('.orgnl_totalfileCount').text('0');
control1Chg = 'N';
if(control1Tmprr == 'Y'){
if(confirm("삭제하시겠습니까?")){
innorixDelRprtAtchFile(p[0].uniqueFileName, 'orgnl_rslt_atch_file_id')
control1Tmprr = 'N';
control1Chg = 'Y';
$("#control1DownBtn").css('display', 'none');
}else{
return false;
}
}
});
//평가용 결과 보고서 컨트롤 생성
control2 = innorix.create({
el : '#cpy', // 컨트롤 출력 객체 ID
installUrl: '<c:url value="/innorix/install/install.html" />', // Agent 설치 페이지
uploadUrl: '<c:url value="/innorix/exam/upload.jsp?el=cpy" />', // 업로드 URL
maxFileCount : 1, // 첨부가능 파일 전체 개수
width : 870, // 컨트롤 출력 너비(pixel)
height : 80, // 컨트롤 출력 높이(pixel)
allowExtension : ["txt","xls","xlsx","png","jpg","jpeg","doc","ppt","hwp","pdf","zip"],
useContextMenu : 'false'
});
// 파일 추가 이벤트
control2.on('afterAddFiles', function (p) {
$('.cpy_totalfileSize').text(getStrFileSize(p[0].fileSize)) ;
$('.cpy_totalfileCount').text(p.length);
control2Chg = 'Y';
});
// 파일 삭제 이벤트
control2.on('removeFiles', function (p) {
$('.cpy_totalfileSize').text('0MB') ;
$('.cpy_totalfileCount').text('0');
control2Chg = 'N';
if(control2Tmprr == 'Y'){
if(confirm("삭제하시겠습니까?")){
innorixDelRprtAtchFile(p[0].uniqueFileName, 'cpy_rslt_atch_file_id')
control2Tmprr = 'N';
control2Chg = 'Y';
$("#control2DownBtn").css('display', 'none');
}else{
return false;
}
}
});
//증빙사진 컨트롤 생성
control3 = innorix.create({
el : '#evdnc', // 컨트롤 출력 객체 ID
installUrl: '<c:url value="/innorix/install/install.html" />', // Agent 설치 페이지
uploadUrl: '<c:url value="/innorix/exam/upload.jsp?el=evdnc" />', // 업로드 URL
maxFileCount : 1, // 첨부가능 파일 전체 개수
width : 870, // 컨트롤 출력 너비(pixel)
height : 80, // 컨트롤 출력 높이(pixel)
allowExtension : ["zip"],
useContextMenu : 'false'
});
// 파일 추가 이벤트
control3.on('afterAddFiles', function (p) {
$('.evdnc_totalfileSize').text(getStrFileSize(p[0].fileSize)) ;
$('.evdnc_totalfileCount').text(p.length);
control3Chg = 'Y';
});
// 파일 삭제 이벤트
control3.on('removeFiles', function (p) {
$('.evdnc_totalfileSize').text('0MB') ;
$('.evdnc_totalfileCount').text('0');
control3Chg = 'N';
if(control3Tmprr == 'Y'){
if(confirm("삭제하시겠습니까?")){
innorixDelRprtAtchFile(p[0].uniqueFileName, 'evdnc_pht_atch_file_id')
control3Tmprr = 'N';
control3Chg = 'Y';
$("#control3DownBtn").css('display', 'none');
}else{
return false;
}
}
});
//원격연수 이수증 컨트롤 생성
control4 = innorix.create({
el : '#rmttrn', // 컨트롤 출력 객체 ID
installUrl: '<c:url value="/innorix/install/install.html" />', // Agent 설치 페이지
uploadUrl: '<c:url value="/innorix/exam/upload.jsp?el=rmttrn" />', // 업로드 URL
maxFileCount : 1, // 첨부가능 파일 전체 개수
width : 870, // 컨트롤 출력 너비(pixel)
height : 80, // 컨트롤 출력 높이(pixel)
allowExtension : ["txt","xls","xlsx","png","jpg","jpeg","doc","ppt","hwp","pdf","zip"],
useContextMenu : 'false'
});
// 파일 추가 이벤트
control4.on('afterAddFiles', function (p) {
$('.rmtTrn_totalfileSize').text(getStrFileSize(p[0].fileSize)) ;
$('.rmtTrn_totalfileCount').text(p.length);
control4Chg = 'Y';
});
// 파일 삭제 이벤트
control4.on('removeFiles', function (p) {
$('.rmtTrn_totalfileSize').text('0MB') ;
$('.rmtTrn_totalfileCount').text('0');
control4Chg = 'N';
if(control4Tmprr == 'Y'){
if(confirm("삭제하시겠습니까?")){
innorixDelRprtAtchFile(p[0].uniqueFileName, 'rmt_trn_atch_file_id')
control4Tmprr = 'N';
control4Chg = 'Y';
$("#control4DownBtn").css('display', 'none');
}else{
return false;
}
}
});
//멀티 컨트롤 생성 - hidden으로 화면 비노출, 제출 시 컨트롤 1~4를 add하여 업로드
control5 = innorix.create({
el : '#fileControl5', // 컨트롤 출력 객체 ID
installUrl: '<c:url value="/innorix/install/install.html" />', // Agent 설치 페이지
uploadUrl: '<c:url value="/innorix/exam/upload.jsp" />', // 업로드 URL
maxFileCount : 4, // 첨부가능 파일 전체 개수
});
//임시저장 데이터가 있을 시 임시저장 파일 처리
if(control1Tmprr == 'Y'){
control1.presetDownloadFiles([{
printFileName: '${info.orgnlRsltAtchFileDetail.orignlFileNm}',
fileSize: '${info.orgnlRsltAtchFileDetail.fileSize}',
downloadUrl: urlBase + "download.jsp?fileName=" + '${info.orgnlRsltAtchFileDetail.streFileNm}',
uniqueFileName : '${info.orgnlRsltAtchFileDetail.atchFileId}'
}]);
control1Chg = 'N'; //임시저장 파일 세팅 시 'afterAddFiles' 이벤트에서 control1Chg = 'Y' 처리가 되어 다시 N으로 설정
}
if(control2Tmprr == 'Y'){
control2.presetDownloadFiles([{
printFileName: '${info.cpyRsltAtchFileDetail.orignlFileNm}',
fileSize: '${info.cpyRsltAtchFileDetail.fileSize}',
downloadUrl: urlBase + "download.jsp?fileName=" + '${info.cpyRsltAtchFileDetail.streFileNm}',
uniqueFileName : '${info.cpyRsltAtchFileDetail.atchFileId}'
}]);
control2Chg = 'N';
}
if(control3Tmprr == 'Y'){
control3.presetDownloadFiles([{
printFileName: '${info.evdncPhtAtchFileDetail.orignlFileNm}',
fileSize: '${info.evdncPhtAtchFileDetail.fileSize}',
downloadUrl: urlBase + "download.jsp?fileName=" + '${info.evdncPhtAtchFileDetail.streFileNm}',
uniqueFileName : '${info.evdncPhtAtchFileDetail.atchFileId}'
}]);
control3Chg = 'N';
}
if(control4Tmprr == 'Y'){
control4.presetDownloadFiles([{
printFileName: '${info.rmtTrnAtchFileDetail.orignlFileNm}',
fileSize: '${info.rmtTrnAtchFileDetail.fileSize}',
downloadUrl: urlBase + "download.jsp?fileName=" + '${info.rmtTrnAtchFileDetail.streFileNm}',
uniqueFileName : '${info.rmtTrnAtchFileDetail.atchFileId}'
}]);
control4Chg = 'N';
}
//첨부파일 업로드 후속조치 - 결과제출 시 처리
control5.on('uploadComplete', function (p) {
fn_callBackInnorixInsert(p.files);
});
});
function fn_callBackInnorixInsert(data){
var url = "<c:url value='/web/common/insertRprtInnorixFileAjax.do' />";
if(tmprrYn == 'Y'){ //임시 저장 데이터가 있을 시 테이블 update 처리
var url = "<c:url value='/web/common/updateRprtInnorixFileAjax.do' />";
}
var sendData = {
"eduAplctOrd": $('#eduAplctOrd').val()
, "aprvlCd" : $('#aprvlCd').val() //결과제출 - 10, 임시제출 - 230
, "trgtPrsnlReal" : $('#trgtPrsnlRealTxt').val()
, "innorixFileListVO": data
, "successMsg" : "제출 완료되었습니다."
}
if(fn_innorixCmmAjax(sendData, url) == "OK")
{
fncGoList();
}
}
function fncGoList(){
var linkForm = document.linkForm ;
linkForm.action = "<c:url value='/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctDashboard.do'/>";
linkForm.submit();
}
function fncSave(){
if(control1.getFileCount() == 0){
alert("원본 결과보고서를 첨부해주세요.")
return false;
}
if(control2.getFileCount() == 0){
alert("평가용 결과보고서를 첨부해주세요.")
return false;
}
if(control3.getFileCount() == 0){
alert("증빙사진을 첨부해주세요.")
return false;
}
document.getElementById('aprvlCd').value = '10';
//임시저장 파일이 아닌 새로 추가한 파일만 업로드 처리
control5.removeAllFiles(); //control5 초기화
if(control1Chg == 'Y'){
control5.addFiles(control1.getAllFiles());
}
if(control2Chg == 'Y'){
control5.addFiles(control2.getAllFiles());
}
if(control3Chg == 'Y'){
control5.addFiles(control3.getAllFiles());
}
if(control4Chg == 'Y'){
control5.addFiles(control4.getAllFiles());
}
//업로드 파일 사이즈 500MB 제한
//임시로 저장되어 있던 파일들 용량까지 체크하기 위하여 control5.getTotalSize()가 아닌 각각 파일의 사이즈를 더하여 비교
if(control1.getTotalSize() + control2.getTotalSize() + control3.getTotalSize() + control4.getTotalSize()> 524288000){
alert("업로드 가능한 용량은 전체 파일을 합산한 기준으로 500MB 제한이 있습니다.")
return false;
}
//기존 임시 저장상태에서 새로 등록한 파일이 없다면, 상태 값만 10으로 update 처리
if(control5.getFileCount() == '0'){
var url = "<c:url value='/web/common/updateRprtInnorixFileAjax.do' />";
var sendData = {
"eduAplctOrd": $('#eduAplctOrd').val()
, "aprvlCd" : $('#aprvlCd').val()
, "trgtPrsnlReal" : $('#trgtPrsnlRealTxt').val()
, "successMsg" : "제출 완료되었습니다."
}
if(fn_innorixCmmAjax(sendData, url) == "OK")
{
fncGoList();
}
}else{
//업로드 경로 설정 -upload.jsp에서 uploader.setDirectory(innoDirPath) 식으로 사용
//230810 기준 : innoDirPath = globals_local.properties = /usr/local/tomcat/file/sht/ 경로지만
//upload.jsp에서 /app/doc/offedu/sht/로 다시 set. context-properties.xml에서 파일 경로도 /app/doc/offedu/sht/
var postObj = new Object();
postObj.innoDirPath = $('#innoDirPath').val();
control5.setPostData(postObj); // 업로드시 함께 전달될 POST Param 추가
control5.upload();
}
}
function fncTmprrSave(){
//첨부파일이 변경됐을시만 업로드. 임시저장으로 인하여 비교 필요
control5.removeAllFiles(); //control5 초기화
if(control1Chg == 'Y'){
control5.addFiles(control1.getAllFiles());
}
if(control2Chg == 'Y'){
control5.addFiles(control2.getAllFiles());
}
if(control3Chg == 'Y'){
control5.addFiles(control3.getAllFiles());
}
if(control4Chg == 'Y'){
control5.addFiles(control4.getAllFiles());
}
//업로드 파일 사이즈 500MB 제한
if(control1.getTotalSize() + control2.getTotalSize() + control3.getTotalSize() + control4.getTotalSize()> 524288000){
alert("업로드 가능한 용량은 전체 파일을 합산한 기준으로 500MB 제한이 있습니다.")
return false;
}
if((control1Chg == 'N' && control2Chg == 'N'
&& control3Chg == 'N' && control4Chg == 'N') || control5.getFileCount() == '0'){
alert("임시저장할 파일을 첨부해주세요.")
return false;
}
document.getElementById('aprvlCd').value = '230';
document.getElementById('trgtPrsnlReal').value = $("trgtPrsnlRealTxt").val()
//업로드 경로 설정 -upload.jsp에서 uploader.setDirectory(innoDirPath) 식으로 사용
//230810 기준 : innoDirPath = globals_local.properties = /usr/local/tomcat/file/sht/ 경로지만
//upload.jsp에서 /app/doc/offedu/sht/로 다시 set. context-properties.xml에서 파일 경로도 /app/doc/offedu/sht/
var postObj = new Object();
postObj.innoDirPath = $('#innoDirPath').val();
control5.setPostData(postObj); // 업로드시 함께 전달될 POST Param 추가
control5.upload();
}
</script>
<form:form id="linkForm" name="linkForm" commandName="vEEduAplctVO" onsubmit="return false;" method="post">
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="${info.eduAplctOrd}" />
<input type="hidden" name="aprvlCd" id="aprvlCd" value="" />
<input type="hidden" name="trgtPrsnlReal" id="trgtPrsnlReal" value="" />
<input type="hidden" id="innoDirPath" value="<spring:eval expression="@globalSettings['Globals.Innorix.FilePath']"/>" />
</form:form>
<div class="cont_wrap" id="sub">
<div class="tb_tit01">
<div class="tb_tit01_left">
<p>결과보고</p>
</div>
</div>
<c:if test="${info.exprnAprvlCd == '10'}">
<div class="tb_type01 tb_write">
<table>
<caption>결과보고 (th 명)을 보여주는 표</caption>
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">
<p>결과보고서 원본</p>
</th>
<td class="file_download onlyFile" colspan="3">
<c:import url="/cmm/fms/selectScholSealInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${info.orgnlRsltAtchFileId}" />
</c:import>
</td>
</tr>
<tr>
<th scope="row">
<p>결과보고서 평가용</p>
</th>
<td class="file_download onlyFile" colspan="3">
<c:import url="/cmm/fms/selectScholSealInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${info.cpyRsltAtchFileId}" />
</c:import>
</td>
</tr>
<tr>
<th scope="row">
<p>증빙사진</p>
</th>
<td class="file_download onlyFile" colspan="3">
<c:import url="/cmm/fms/selectScholSealInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${info.evdncPhtAtchFileId}" />
</c:import>
</td>
</tr>
<tr>
<th scope="row">
<p>원격연수 이수증</p>
</th>
<td class="file_download onlyFile" colspan="3">
<c:import url="/cmm/fms/selectScholSealInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${info.rmtTrnAtchFileId}" />
</c:import>
</td>
</tr>
<tr>
<th scope="row">
<p>전체 교육인원</p>
</th>
<td colspan="3">
${info.trgtPrsnlReal}
</td>
</tr>
</tbody>
</table>
</div>
</c:if>
<c:if test="${info.exprnAprvlCd != '10'}">
<div class="tb_tit01">
<div class="tb_tit01_left">
<span class="cf_text" style="font-size: 16px; font-weight: 400; color: #e40000;line-height: 1.5;">※ 업로드 가능한 용량은 전체 파일을 합산한 기준으로 500MB 제한이 있습니다.
<br/>&nbsp;&nbsp;&nbsp;&nbsp;용량을 초과할 경우, 오류 발생으로 인해 업로드가 되지 않으니 유의하시기 바랍니다. </span>
</div>
</div>
<div class="exprnClsrmEndRslt_wrap">
<dl class="filewrap_div">
<dt><p class="req_text"><span>필수입력 항목</span>*</p>원본 결과보고서</dt>
<dd>
<div class="btn_wrap">
<button type="button" onclick="control1.openFileDialogSingle();" class="btnType01 orgnl_btn_add_file">원본 결과보고서 파일찾기</button>
<c:if test="${info.orgnlRsltAtchFileId != null && info.orgnlRsltAtchFileId != ''}">
<button type="button" id="control1DownBtn" onclick="control1.download();" class="btnType01 cpy_btn_add_file">다운로드</button>
</c:if>
</div>
<div id="orgn"></div><br/>
<div class="file_cf">
<div class="cf_left">
<p>최대 <span class="orgnl_limitFileCount">1</span>개</p>
</div>
<div class="cf_right">
<p>등록된 파일 <span class="upload_number orgnl_totalfileCount">0</span>개</p>
<span class="upload_number orgnl_totalfileSize">0MB</span>
</div>
</div>
</dd>
</dl>
<dl class="filewrap_div">
<dt><p class="req_text"><span>필수입력 항목</span>*</p>평가용 결과보고서</dt>
<dd>
<div class="btn_wrap">
<button type="button" onclick="control2.openFileDialogSingle();" class="btnType01 cpy_btn_add_file">평가용 결과보고서 파일찾기</button>
<c:if test="${info.cpyRsltAtchFileId != null && info.cpyRsltAtchFileId != ''}">
<button type="button" id="control2DownBtn" onclick="control2.download();" class="btnType01 cpy_btn_add_file">다운로드</button>
</c:if>
</div>
<div id="cpy"></div><br/>
<div class="file_cf">
<div class="cf_left">
<p>최대 <span class="cpy_limitFileCount">1</span>개</p>
</div>
<div class="cf_right">
<p>등록된 파일 <span class="upload_number cpy_totalfileCount">0</span>개</p>
<span class="upload_number cpy_totalfileSize">0MB</span>
</div>
</div>
</dd>
</dl>
<dl class="filewrap_div">
<dt><p class="req_text"><span>필수입력 항목</span>*</p>증빙사진</dt>
<dd>
<div class="btn_wrap">
<button type="button" onclick="control3.openFileDialogSingle();" class="btnType01 evdnc_btn_add_file">증빙 사진 파일찾기</button>
<c:if test="${info.evdncPhtAtchFileId != null && info.evdncPhtAtchFileId != ''}">
<button type="button" id="control3DownBtn" onclick="control3.download();" class="btnType01 cpy_btn_add_file">다운로드</button>
</c:if>
</div>
<div id="evdnc"></div><br/>
<div class="file_cf">
<div class="cf_left">
<p>최대 <span class="evdnc_limitFileCount">1</span>개</p>
</div>
<div class="cf_right">
<p>등록된 파일 <span class="upload_number evdnc_totalfileCount">0</span>개</p>
<span class="upload_number evdnc_totalfileSize">0MB</span>
</div>
</div>
</dd>
</dl>
<dl class="filewrap_div">
<dt>원격연수 이수증</dt>
<dd>
<div class="btn_wrap">
<button type="button" onclick="control4.openFileDialogSingle();" class="btnType01 rmtTrn_btn_add_file">원격연수 이수증 파일찾기</button>
<c:if test="${info.rmtTrnAtchFileId != null && info.rmtTrnAtchFileId != ''}">
<button type="button" id="control4DownBtn" onclick="control4.download();" class="btnType01 cpy_btn_add_file">다운로드</button>
</c:if>
</div>
<div id="rmttrn"></div><br/>
<div class="file_cf">
<div class="cf_left">
<p>최대 <span class="rmtTrn_limitFileCount">1</span>개</p>
</div>
<div class="cf_right">
<p>등록된 파일 <span class="upload_number rmtTrn_totalfileCount">0</span>개</p>
<span class="upload_number rmtTrn_totalfileSize">0MB</span>
</div>
</div>
</dd>
</dl>
<dl class="filewrap_div">
<dt>전체 교육인원</dt>
<dd>
<label for="trgtGrade" class="label">전체 교육인원</label>
<input type="text" id="trgtPrsnlRealTxt" onkeyup="onlyNumber(this);" value="${info.trgtPrsnlReal}" title="전체 교육인원" size="20" maxlength="3">
</dd>
</dl>
</div>
<div class="btn_wrap btn_layout01">
<div class="btn_left"></div>
<div class="btn_center">
<button type="button" class="btnType06" onclick="fncSave();">결과제출</button>
<button type="button" class="btnType06" onclick="fncTmprrSave();">임시저장</button>
</div>
<div class="btn_right">
<div id="fileControl5" style="display:none"></div>
</div>
</div>
</c:if>
</div>

View File

@ -0,0 +1,714 @@
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
<% pageContext.setAttribute("replaceChar", "\n"); %>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<spring:eval expression="@property['Globals.Innorix.License']" var="license"/>
<script src="<c:url value='/innorix/innorix_${license}.js' />"></script>
<script src="<c:url value='/js/kccadr/innorixCommon.js' />"></script>
<style>
input:disabled {
background-color: #f9f9f9 !important;
}
input:read-only {
background-color: #f9f9f9 !important;
}
.file_list .file_download_a {
margin-bottom: 10px;
}
.onlyFile .file_download_a {
margin-bottom: 0;
}
</style>
<script type="text/javaScript" language="javascript">
$( document ).ready(function(){
setNumberOnly();
$('.focusout').focusout(function() {
replyCalculation();
});
/* beforeSrvyPopupAjax();
beforePrintPopupAjax();
afterSrvyPopupAjax();
afterPrintPopupAjax(); */
//파일첨부버튼
$(".btn_add_file").on('click', function(){
$("#file_temp").click();
});
});
var printDiv;
var initBody;
function onclickPrint(divId) {
var $container = $("#"+divId).clone();
var innerHtml = $container[0].innerHTML
var popupWindow = window.open("", "_blank", "width=800,height=800")
popupWindow.document.write(
"<!DOCTYPE html>"+
"<html>"+
"<head>"+
"<link rel='stylesheet' href='<c:url value='/visitEdu/usr/publish/css/popup.css'/>'>"+
"<script src='<c:url value='/visitEdu/usr/publish/script/jquery-3.5.0.js'/>'><\/script>"+
"<style>"+
"</style>"+
"<script>"+
"$( document ).ready( function() {" +
"$('div').removeClass('popup_wrap');"+
"$('.btn_layout01').hide();"+
"$('.pop_tb_type01').css('overflow-y','initial');"+
"});"+
"<\/script>"+
"</head>"+
"<body>"+innerHtml+"</body>"+
"</html>")
popupWindow.document.close()
popupWindow.focus()
setTimeout(function() {
popupWindow.print()
popupWindow.close()
}, 5000);
/* var initBody;
window.onbeforeprint = function(){
initBody = document.body.innerHTML;
document.body.innerHTML = document.getElementById('beforePrintDiv').innerHTML;
};
window.onafterprint = function(){
document.body.innerHTML = initBody;
};
window.print();
location.reload(); */
};
function beforePrint(){
initBody = document.body.innerHTML;
document.body.innerHTML = printDiv.innerHTML;
}
function afterPrint(){
document.body.innerHTML = initBody;
}
//설문조사 주석 임시로
function beforeSrvyPopupAjax(){
var sendData= $(document.listForm).serializeArray();
$("#beforeSrvyPopupLoad").load("${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmEnd/Popup/beforeSrvyPopup.do", sendData ,function(response, status, xhr){
});
}
function beforePrintPopupAjax(){
var sendData= $(document.listForm).serializeArray();
$("#beforePrintPopupLoad").load("${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmEnd/Popup/beforePrintPopupLoad.do", sendData ,function(response, status, xhr){
});
}
function afterSrvyPopupAjax(){
var sendData= $(document.listForm).serializeArray();
$("#afterSrvyPopupLoad").load("${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmEnd/Popup/afterSrvyPopup.do", sendData ,function(response, status, xhr){
});
}
function afterPrintPopupAjax(){
var sendData= $(document.listForm).serializeArray();
$("#afterPrintPopupLoad").load("${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmEnd/Popup/afterPrintPopup.do", sendData ,function(response, status, xhr){
});
}
function setNumberOnly(){ //숫자만 입력
$("input:text[numberOnly]").on("keyup", function(){
$(this).val($(this).val().replace(/[^0-9]/g,""));
});
}
function fncGoList(){
var listForm = document.listForm ;
listForm.eduAplctOrd.value = "";
listForm.action = "<c:url value='/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmEnd/exprnClsrmEndList.do'/>";
listForm.submit();
}
function fncGoRslt(){
var linkForm = document.linkForm ;
linkForm.action = "<c:url value='/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmEnd/exprnClsrmEndRslt.do'/>";
linkForm.submit();
}
function srvySendSubmit(type){
if(type == 'before'){
if(!beforeFromCheck()){
return;
}
}else if('after'){
if(!afterFromCheck()){
return;
}
}
if(confirm("설문결과를 등록 하시겠습니까?")){
var data;
if(type == 'before'){
data = new FormData(document.getElementById("beforeSrvyPopupForm"));
}else if('after'){
data = new FormData(document.getElementById("afterSrvyPopupForm"));
}
$.ajax({
type:"POST"
,url:"${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmEnd/insertSrvyInfoAjax.do"
,data: data
,dataType:'json'
,async: false
,processData: false
,contentType: false
,cache: false
,success:function(returnData){
if(returnData.result == 'success'){
alert("설문결과가 등록 되었습니다.");
window.location.reload();
}else if(returnData.result == 'fail'){
alert(returnData.msg);
location.href="${pageContext.request.contextPath}/web/user/login/ssoLogin.do?test=test";
}
}
,error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
function fncReject(){
// commonPopWindowopenForm("/kccadr/adjReqMgr/popup/adjReqMgrRegCompanionPopup.do" , "600", "340", "rejectPop",$("#detailForm"));
}
function filePopupLayer(type){
commonPopLayeropen(
"${pageContext.request.contextPath}/web/ve/comm/popup/fileUploadPop.do"
, 650
, 464
, {'eduAplctOrd' : '<c:out value='${info.eduAplctOrd}'/>','fileType' : type}
, "Y"
, "fileUploadPop"
);
}
function fncGoLctrAplctReg(){
var linkForm = document.linkForm ;
linkForm.action = "<c:url value='/web/ve/aplct/otsdCprtnPrcs/lctrAplct/lctrAplctReg.do'/>"
linkForm.submit();
}
function fileDown(atchFileId){
if(atchFileId == ''){
alert("등록된 설문지가 없습니다.");
return;
}
window.open("<c:url value='/cmm/fms/FileDown.do?atchFileId="+atchFileId+"&fileSn=0'/>");
}
</script>
<form:form id="listForm" name="listForm" commandName="vEEduAplctVO" onsubmit="return false;" method="post">
<input type="hidden" name="pageIndex" value="<c:out value='${vEEduAplctVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEEduAplctVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEEduAplctVO.searchSortOrd}" />" />
<input type="hidden" name="searchStatus" value="<c:out value="${vEEduAplctVO.searchStatus}" />" />
<input type="hidden" name="eduAplctOrd" value="${info.eduAplctOrd}">
</form:form>
<form:form id="linkForm" name="linkForm" commandName="vEEduAplctVO" onsubmit="return false;" method="post">
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="${info.eduAplctOrd}" />
</form:form>
<div id="beforeSrvyPopupLoad"></div>
<div id="afterSrvyPopupLoad"></div>
<div id="beforePrintPopupLoad"></div>
<div id="afterPrintPopupLoad"></div>
<div class="cont_wrap" id="sub">
<div class="tb_tit01">
<div class="tb_tit01_left">
<p>운영내역 상세</p>
</div>
</div>
<div class="tb_type01 tb_write">
<table>
<caption>운영내역 상세 (th 명)을 보여주는 표</caption>
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">
<p>신청일</p>
</th>
<td>
<c:choose>
<c:when test="${not empty info.sbmtPnttm}">
<fmt:parseDate value="${info.sbmtPnttm}" var="sbmtPnttm" pattern="yyyy-MM-dd"/>
<fmt:formatDate value="${sbmtPnttm}" pattern="20yy.MM.dd"/>
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
</td>
<th scope="row">
<p>접수종료일</p>
</th>
<td>
<c:out value="${endPnttm }"/>
</td>
</tr>
<tr>
<th scope="row">
<p>처리상태</p>
</th>
<td colspan="3">
<c:choose>
<c:when test="${info.aprvlCd eq VeConstants.STATUS_CD_SBMT}">
<span class="app_status1">교육신청</span>
</c:when>
<c:when test="${info.aprvlCd eq VeConstants.STATUS_CD_CFRM}">
<span class="app_status2">교육승인</span>
</c:when>
<c:when test="${info.aprvlCd eq VeConstants.STATUS_CD_RJT}">
<span class="app_status4">교육반려</span>
</c:when>
<c:when test="${info.aprvlCd eq VeConstants.STATUS_CD_CAN}">
<span class="app_status4">교육취소</span>
</c:when>
<c:when test="${info.aprvlCd eq VeConstants.STATUS_CD_CHI_CMPT}">
<span class="app_status4">선정완료</span>
</c:when>
<c:when test="${info.aprvlCd eq VeConstants.STATUS_CD_EDT_REQ}">
<span class="app_status3">수정요청</span>
</c:when>
<c:when test="${info.aprvlCd eq VeConstants.STATUS_CD_EDT_CMPT}">
<span class="app_status3">수정요청완료</span>
</c:when>
<c:when test="${info.aprvlCd eq VeConstants.STATUS_CD_EDU_SELCT}">
<span class="app_status1">교육확정</span>
</c:when>
<c:otherwise>
임시저장
</c:otherwise>
</c:choose>
</td>
</tr>
<c:if test="${info.aprvlCd eq '30'}">
<tr>
<th scope="row">
<p>반려사유</p>
</th>
<td colspan="3">${info.aprvlCn}</td>
</tr>
</c:if>
</tbody>
</table>
</div>
<div class="tb_tit01">
<div class="tb_tit01_left">
<p>신청자 정보</p>
</div>
</div>
<div class="tb_type01 tb_write">
<table>
<caption>신청자 정보 (th 명)을 보여주는 표</caption>
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">
<p>학교(기관)명</p>
</th>
<td>${info.scholInsttNm}</td>
</tr>
<tr>
<th scope="row">
<p>교사명</p>
</th>
<td>${info.chrgNm}</td>
</tr>
<tr>
<th scope="row">
<p>성별</p>
</th>
<td>
<kc:code codeId="COM014" code="${info.chrgSexCd}"/>
</td>
</tr>
<tr>
<th scope="row">
<p>이메일</p>
</th>
<td>${info.email}</td>
</tr>
<tr>
<th scope="row">
<p>휴대폰</p>
</th>
<td>${info.clphone}</td>
</tr>
<tr>
<th scope="row">
<p>전화</p>
</th>
<td>${info.phone}</td>
</tr>
<tr>
<th scope="row">
<p>주소</p>
</th>
<td>(${info.post}) ${info.addr} ${info.addrDetail}</td>
</tr>
<tr>
<th scope="row">
<p>담당교과</p>
</th>
<td>${info.chrgMjr}</td>
</tr>
<tr>
<th scope="row">
<p>생년월일</p>
</th>
<td>
<c:if test="${not empty info.dBirth}">
<c:set var="birthYear" value="${fn:substring(info.dBirth, 0, 4)}"/>
<c:set var="birthMonth" value="${fn:substring(info.dBirth, 4, 6)}"/>
<c:set var="birthDay" value="${fn:substring(info.dBirth, 6, 8)}"/>
</c:if>
${birthYear}년 ${birthMonth}월 ${birthDay}일
</td>
</tr>
<tr>
<th scope="row">
<p>체험교실운영여부</p>
</th>
<td>
운영구분코드 : <kc:code codeId="VE0031" code="${info.exprnClsrnCd}"/> <br/>
운영구분년도 : ${info.exprnClsrnYear}
</td>
</tr>
<tr>
<th scope="row">
<p>신청경로</p>
</th>
<td>
<kc:code codeId="VE0030" code="${info.exprnClsrnAplct}"/>
<c:if test="${not empty info.exprnClsrnAplctCn}">
&nbsp;&nbsp;&nbsp;(기타 내용 : ${info.exprnClsrnAplctCn})
</c:if>
</td>
</tr>
<tr>
<!-- <th scope="row"><p>거래선 등록 여부</p></th> -->
<th scope="row"><p>거래선 양식</p></th>
<td>
<!-- 22.03.22 고객사 요청으로 숨김 -->
<%--
<c:choose>
<c:when test="${info.transAtchFileId ne null}">
<c:import url="/cmm/fms/selectSimpleDownInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${info.transAtchFileId}" />
</c:import>
<button type="button" class="btnType01" onclick="filePopupLayer('TRANS')">거래선 파일 변경</button>
</c:when>
<c:otherwise>
<button type="button" class="btnType01" onclick="filePopupLayer('TRANS')">거래선 업로드</button>
</c:otherwise>
</c:choose>
--%>
<button type="button" class="btnType01" onclick="location.href='${pageContext.request.contextPath}/cmm/fms/FileDown.do?atchFileId=FILE_000000000015299&amp;fileSn=2'" title="거래선 양식 다운로드">거래선 양식 다운로드</button>
<p>
<span class="cf_text">※ 거래선 파일은 개인정보 수집 및 보호를 위해 반드시 메일(entt@copyright.or.kr)로 제출하시기 바랍니다.</span>
</p>
</td>
</tr>
<tr>
<th scope="row"><p>서약서 제출</p></th>
<td>
<c:choose>
<c:when test="${info.oathAtchFileId ne null}">
<c:import url="/cmm/fms/selectScholSealInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${info.oathAtchFileId}" />
</c:import>
<button type="button" class="btnType01" data-tooltip="sub35_pop01" id="OATH" onclick="filePopupLayer('OATH')" title="팝업 열림">서약서 파일 변경</button>
</c:when>
<c:otherwise>
<button type="button" class="btnType01" data-tooltip="sub35_pop01" id="OATH" onclick="filePopupLayer('OATH')" title="팝업 열림">서약서 업로드</button>
</c:otherwise>
</c:choose>
<button type="button" class="btnType01" onclick="location.href='${pageContext.request.contextPath}/cmm/fms/FileDown.do?atchFileId=FILE_000000000015299&amp;fileSn=1'" title="서약서 양식 다운로드">서약서 양식 다운로드</button>
</td>
</tr>
</tbody>
</table>
</div>
<div class="tb_tit01">
<div class="tb_tit01_left">
<p>운영계획</p>
</div>
</div>
<div class="tb_type01 tb_write">
<table>
<caption>운영계획 (th 명)을 보여주는 표</caption>
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">
<p>대상학년</p>
</th>
<td>${info.trgtGrade}</td>
<th scope="row">
<p>대상반</p>
</th>
<td>${info.trgtClsrm}</td>
</tr>
<tr>
<th scope="row">
<p>대상학생수</p>
</th>
<td>
${info.trgtPrsnl}
</td>
<th scope="row">
<p>운영시기</p>
</th>
<td>
<fmt:parseDate value="${info.oprtnStrtDt}" var="oprtnStrtDt" pattern="yyyyMMdd"/>
<fmt:formatDate value="${oprtnStrtDt}" pattern="yyyy.MM.dd"/>
~
<fmt:parseDate value="${info.oprtnEndDt}" var="oprtnEndDt" pattern="yyyyMMdd"/>
<fmt:formatDate value="${oprtnEndDt}" pattern="yyyy.MM.dd"/>
</td>
<!--
<th scope="row">
<p>보고서 제출일(예정)</p>
</th>
<td>
<fmt:parseDate value="${info.rprtSbmt}" var="rprtSbmt" pattern="yyyyMMdd"/>
<fmt:formatDate value="${rprtSbmt}" pattern="yyyy.MM.dd"/>
</td>
-->
</tr>
<tr>
<th scope="row">
<p>필요 교재 수량</p>
</th>
<td>
${info.needTxtbNum}
</td>
</tr>
<!--
<tr>
<th scope="row">
<p>운영시기</p>
</th>
<td colspan="3">
<fmt:parseDate value="${info.oprtnStrtDt}" var="oprtnStrtDt" pattern="yyyyMMdd"/>
<fmt:formatDate value="${oprtnStrtDt}" pattern="yyyy.MM.dd"/>
~
<fmt:parseDate value="${info.oprtnEndDt}" var="oprtnEndDt" pattern="yyyyMMdd"/>
<fmt:formatDate value="${oprtnEndDt}" pattern="yyyy.MM.dd"/>
</td>
</tr>
-->
<tr>
<th scope="row">
<p>첨부파일</p>
</th>
<td class="file_download onlyFile" colspan="3">
<c:import url="/cmm/fms/selectScholSealInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${info.oprtnFileId}" />
</c:import>
</td>
</tr>
<tr>
<th scope="row"><p>차시별 계획서 제출</p></th>
<td colspan="3">
<c:if test="${info.planAtchFileId ne null}">
<c:import url="/cmm/fms/selectScholSealInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${info.planAtchFileId}" />
</c:import>
</c:if>
<button type="button" class="btnType01" data-tooltip="sub35_pop01" id="PLAN" onclick="filePopupLayer('PLAN')" title="팝업 열림">계획서 업로드</button>
<button type="button" class="btnType01" onclick="location.href='${pageContext.request.contextPath}/cmm/fms/FileDown.do?atchFileId=FILE_000000000015299&amp;fileSn=0'" title="계획서 양식 다운로드">계획서 양식 다운로드</button>
</td>
</tr>
</tbody>
</table>
</div>
<!-- 220317 고객사 요청으로 숨김 -->
<%-- <div class="tb_tit01">
<div class="tb_tit01_left">
<p>설문조사</p>
</div>
</div>
<div class="tb_type01 tb_write">
<table>
<caption>결과보고 (th 명)을 보여주는 표</caption>
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">
<p>사전 설문조사</p>
</th>
<td>
<c:choose>
<c:when test="${not empty info.beforeQustnrRespondId}">
<button type="button" class="btnType01" data-tooltip="sub37_pop01" onclick="beforeReplyCalculation()">사전 설문완료</button>
</c:when>
<c:otherwise>
<button type="button" class="btnType01" data-tooltip="sub37_pop01">사전 설문조사</button>
</c:otherwise>
</c:choose>
</td>
<th scope="row">
<p>설문지 보기</p>
</th>
<td>
<button type="button" class="btnType01" onclick="fileDown('${info.beforeQustnrFileId}')">사전 설문지</button>
</td>
</tr>
<tr>
<th scope="row">
<p>사후 설문조사</p>
</th>
<td>
<c:choose>
<c:when test="${not empty info.afterQustnrRespondId}">
<button type="button" class="btnType01" data-tooltip="sub38_pop01" onclick="afterReplyCalculation()">사후 설문완료</button>
</c:when>
<c:otherwise>
<button type="button" class="btnType01" data-tooltip="sub38_pop01">사후 설문조사</button>
</c:otherwise>
</c:choose>
</td>
<th scope="row">
<p>설문지 보기</p>
</th>
<td>
<button type="button" class="btnType01" onclick="fileDown('${info.afterQustnrFileId}')">사후 설문지</button>
</td>
</tr>
</tbody>
</table>
</div> --%>
<c:if test="${info.orgnlRsltAtchFileId ne null}">
<div class="tb_tit01">
<div class="tb_tit01_left">
<p>결과보고</p>
</div>
</div>
<div class="tb_type01 tb_write">
<table>
<caption>결과보고 (th 명)을 보여주는 표</caption>
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">
<p>결과보고서 원본</p>
</th>
<td class="file_download onlyFile" colspan="3">
<c:import url="/cmm/fms/selectScholSealInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${info.orgnlRsltAtchFileId}" />
</c:import>
</td>
</tr>
<tr>
<th scope="row">
<p>결과보고서 평가용</p>
</th>
<td class="file_download onlyFile" colspan="3">
<c:import url="/cmm/fms/selectScholSealInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${info.cpyRsltAtchFileId}" />
</c:import>
</td>
</tr>
<tr>
<th scope="row">
<p>증빙사진</p>
</th>
<td class="file_download onlyFile" colspan="3">
<c:import url="/cmm/fms/selectScholSealInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${info.evdncPhtAtchFileId}" />
</c:import>
</td>
</tr>
<tr>
<th scope="row">
<p>원격연수 이수증</p>
</th>
<td class="file_download onlyFile" colspan="3">
<c:import url="/cmm/fms/selectScholSealInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${info.rmtTrnAtchFileId}" />
</c:import>
</td>
</tr>
<tr>
<th scope="row">
<p>전체 교육인원</p>
</th>
<td colspan="3">
${info.trgtPrsnlReal}
</td>
</tr>
</tbody>
</table>
</div>
</c:if>
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btnType04" onclick="fncGoLctrAplctReg();">교육콘텐츠 신청</button>
<c:if test="${info.exprnAprvlCd ne '10'}">
<button type="button" class="btnType05" onclick="fncGoRslt();">결과보고제출</button>
</c:if>
</div>
<div class="btn_right">
</div>
</div>
</div>

View File

@ -132,6 +132,7 @@ $(document).ready(function(){
function fn_confirm(){
console.log('??');
var form = document.confirmForm;
var dBirth = $('#dBirth').val().replace(/\./g, '');
@ -154,6 +155,7 @@ $(document).ready(function(){
contentType: false,
cache: false,
success:function(returnData){
console.log('returnData : ', returnData);
if(returnData.result == "success"){
// 대상자 테이블 pk 값
var sspnIdtmtTrgtOrd = returnData.id;
@ -166,6 +168,8 @@ $(document).ready(function(){
} else {
alert("대상자에 없습니다.");
}
}else{
alert("대상자에 없습니다.");
}
fn_target_confirm_clean();

View File

@ -54,9 +54,9 @@
<h2>기소유예 대시보드</h2>
</div>
<ul class="edu_process">
<li class="edu_apply"><i></i><div class="text_area">신청중 강의<p><span><c:out value="${countMap['COUNT_APRVL_CD_10']}" /></span>건</p></div></li>
<li class="edu_register"><i></i><div class="text_area">수강중 강의<p><span><c:out value="${countMap['COUNT_APRVL_CD_20']}" /></span>건</p></div></li>
<li class="edu_close"><i></i><div class="text_area">종료된 강의<p><span><c:out value="${countMap['COUNT_END_CD']}" /></span>건</p></div></li>
<li class="edu_apply"><i></i><div class="text_area">신청중 강의<p><span><c:out value="${empty countMap['COUNT_APRVL_CD_10'] ? '0' : countMap['COUNT_APRVL_CD_10']}" /></span>건</p></div></li>
<li class="edu_register"><i></i><div class="text_area">수강중 강의<p><span><c:out value="${empty countMap['COUNT_APRVL_CD_20'] ? '0' : countMap['COUNT_APRVL_CD_20']} " /></span>건</p></div></li>
<li class="edu_close"><i></i><div class="text_area">종료된 강의<p><span><c:out value="${empty countMap['COUNT_END_CD'] ? '0' : countMap['COUNT_END_CD']}" /></span>건</p></div></li>
</ul>
<div class="tb_tit02">

View File

@ -10,8 +10,8 @@ body {color: #222;}
.logo img {width: 200px;}
/* header */
header{width: 100%; height: 130px; position: fixed; top: 0; left: 0; transition: height .4s ease-in-out, background-color .4s ease-in-out, margin .4s ease-in-out; overflow: hidden; box-sizing: border-box;z-index: 20; background-color: #fff;}
header.on{background-color: #fff; box-shadow: 0 3px 10px rgba(0,0,0,0.1);}
header{width: 100%; height: 130px; position: fixed; top: 0; left: 0; transition: height .4s ease-in-out, background-color .4s ease-in-out, margin .4s ease-in-out; overflow: hidden; box-sizing: border-box;z-index: 20; background-color: #fff; border-bottom: 1px solid #e2e4e6;max-height: 350px;}
header.on{background-color: #fff; box-shadow: 0 3px 10px rgba(0,0,0,0.1); max-height: 350px;}
header::before{position: absolute; content: " "; display: block; top: 130px; left: 0; height: 1px; background-color: #ddd; opacity: 0; transition: opacity .4s ease-in-out;}
header::after{position: absolute; content: " "; display: block; width: 100%; height: 1px; background-color: #d5d5d5; top: 130px; left: 0; opacity: 0; transition: opacity .4s ease-in-out;}
header.on::after{top: 130px; opacity: 1;}
@ -54,20 +54,22 @@ header.scroll{box-shadow: 0 5px 8px rgba(0,0,0,0.15);}
.header_inner .depth01 {display: flex; height: 100%;}
.header_inner .dep_li_01,.header_inner .dep_li_02,.header_inner .dep_li_03 {justify-content:flex-start;}
.header_inner .dep_li_04,.header_inner .dep_li_05,.header_inner .dep_li_06,.header_inner .dep_li_07 {justify-content:space-between;}
.header_inner .depth01_li{position: relative; padding: 0; box-sizing: border-box;}
.header_inner .depth01_li{position: relative; height:100%; padding: 0; box-sizing: border-box;}
.header_inner .dep_li_04 .depth01_li{width: calc((100% - 40px)/4);}
.header_inner .dep_li_01 .depth01_li{width: 100%;}
.header_inner .dep_li_02 .depth01_li{width: calc((100% - 20px)/2);}
.header_inner .dep_li_03 .depth01_li{width: calc((100% - 30px)/3);max-width:270px;}
.header_inner .dep_li_05 .depth01_li{width: calc(100%/5);}
.header_inner .dep_li_06 .depth01_li{width: calc((100% - 60px)/6);}
.header_inner .dep_li_07 .depth01_li{width: auto;}
.header_inner .menu_link{font-size: 20px; font-weight: 600; letter-spacing: -0.5px; display: flex; align-items: center; justify-content: center; flex-flow: column; height: 100%; position: relative;font-family: 'nanumsquare', 'Noto Sans KR', sans-serif; line-height: 1.25;}
.header_inner .dep_li_07 .depth01_li:nth-child(n+2):nth-child(-n+4){width: 16%;}
.header_inner .dep_li_07 .depth01_li:nth-child(n+5){width: 12%; min-width: 85px;}
.header_inner .dep_li_07 .depth01_li:nth-child(1),.header_inner .dep_li_07 .depth01_li:nth-child(2){width:170px;}
.header_inner .menu_link{font-size: 18px; font-weight: 600; letter-spacing: -0.5px; display: flex; align-items: center; justify-content: center; flex-flow: column; height: 100%; position: relative;font-family: 'nanumsquare', 'Noto Sans KR', sans-serif; line-height: 1.25;}
.header_inner .menu_link::before{position: absolute; content: " "; display: block; width: 0; height: 4px; background-color: #E95504; left: 50%; transform: translateX(-50%); transition: width .4s ease-in-out; top: 87px; z-index: 1;}
.header_inner .menu_link .menu_link_br {color: #E95504;font-family: 'nanumsquare', 'Noto Sans KR', sans-serif; }
.header_inner .on .menu_link{color: #E95504;}
.on .nav_wrap .on .menu_link::before{width: 100%;}
.header_inner .depth02{position: absolute; text-align: center; padding: 15px 0; width: 100%; left: 50%; transform: translateX(-50%);border-right: 1px solid #d5d5d5;}
.header_inner .depth02{position: absolute; text-align: center; padding: 15px 0; width: 100%; left: 50%; transform: translateX(-50%);border-right: 1px solid #d5d5d5; max-height: 350px;}
.header_inner .depth01_li:first-child .depth02{border-left: 1px solid #d5d5d5;}
.header_inner .depth01_li:hover .depth02::after{position:absolute;content:"";width:calc(100% + 4px);height:100%;background-color:#fff8f4;left:-2px;top:0;}
.header_inner .depth01_li:hover .depth02 li{position:relative;z-index:1;}

View File

@ -159,16 +159,23 @@ function header() {
function open_gnb(item) {
var depth01 = item;
var depth01_li = depth01.closest(".depth01_li");
var depth02 = depth01_li.find(".depth02");
var height_array = gnb.find('.depth02').map(function(){
return $(this).outerHeight();
});
if($("body").hasClass("renewal") == true){
var h=Math.max.apply(Math, height_array)+130;
var h = Math.max.apply(Math, height_array)+150;
//console.log(height_array,Math.max.apply(Math, height_array)+150);
if(h+1>=Math.max.apply(Math, height_array)){
h;
header.addClass("on").css('height',h + 'px');
$("header .depth02").css('height',h+'px');
//console.log("1");
}else{
var h=Math.max.apply(Math, height_array)+180;
header.addClass("on").css('height',h + 'px');
$("header .depth02").css('height',h+'px');
//console.log("2");
}
header.addClass("on").css('height',h + 'px');
depth01_li.addClass("on");
}
@ -197,6 +204,7 @@ function header() {
header.on("mouseleave", function () {
header.removeClass("on").attr('style','');
$(".depth01_li").removeClass("on");
$("header .depth02").animate({height:'auto'},1000);
});
$("#menu .depth01_li:last-child .depth02 li:last-child").on("focusout", function () {
@ -283,7 +291,6 @@ function gnbOpen() {
var depth = target.find('.gnb .depth01');
var h = target.find('.gnb').outerHeight() - 60;
h += 178;
function gnbActive() {
target.addClass('active').css('height', h + 'px');