This commit is contained in:
subsub 2024-01-19 17:09:24 +09:00
commit 660d9005cd
29 changed files with 872 additions and 131 deletions

View File

@ -16,6 +16,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.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
@ -493,7 +494,42 @@ public class MyPageController {
return "web/my/myQnaMngDetail";
}
@RequestMapping(value = { "/web/my/myNotifyMngDeleteAjax.do"})
public ModelAndView myNotifyMngDeleteAjax(
@ModelAttribute("notifyManageVO") NotifyManageVO notifyManageVO
, ModelMap model
, RedirectAttributes redirectAttributes
, HttpSession session
, HttpServletRequest request
, String[] chk
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 처리====================================
//로그인 정보 가져오기
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
if (loginVO == null || ssoLoginVO == null) {
modelAndView.addObject("result", "loginFail");
}
//로그인 처리====================================
try {
notifyManageVO.setCmmNotifyOrdArr(chk);
notifyManageService.updateChkedUseYnN(notifyManageVO);
modelAndView.addObject("result", "success");
}catch(Exception e) {
e.printStackTrace();
modelAndView.addObject("result", "fail");
}
//세부과정 목록 조회
return modelAndView;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//

View File

@ -61,6 +61,8 @@ public interface NotifyManageService {
void updateM7DaysUseYnN();
void updateChkedUseYnN(NotifyManageVO notifyManageVO);
}

View File

@ -46,6 +46,7 @@ public class NotifyManageVO extends ComDefaultVO implements Serializable {
private String mngUserId;
private String mngUserNm;
private String[] cmmNotifyOrdArr;
public String getCmmNotifyOrd() {
return cmmNotifyOrd;
@ -143,6 +144,12 @@ public class NotifyManageVO extends ComDefaultVO implements Serializable {
public void setMngUserNm(String mngUserNm) {
this.mngUserNm = mngUserNm;
}
public String[] getCmmNotifyOrdArr() {
return cmmNotifyOrdArr;
}
public void setCmmNotifyOrdArr(String[] cmmNotifyOrdArr) {
this.cmmNotifyOrdArr = cmmNotifyOrdArr;
}

View File

@ -5,8 +5,6 @@ import java.util.List;
import org.springframework.stereotype.Repository;
import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
import kcc.com.cmm.service.CmmnDetailCode;
import kcc.let.sym.ccm.cde.service.CmmnDetailCodeVO;
import kcc.let.uss.notify.service.NotifyManageVO;
/**
@ -85,6 +83,9 @@ public class NotifyManageDAO extends EgovAbstractDAO {
public void updateM7DaysUseYnN() {
update("VEANotifyDAO.updateM7DaysUseYnN");
}
public void updateChkedUseYnN(NotifyManageVO notifyManageVO) {
update("VEANotifyDAO.updateChkedUseYnN", notifyManageVO);
}
}

View File

@ -392,4 +392,10 @@ public class NotifyManageServiceImpl extends EgovAbstractServiceImpl implements
notifyManageDAO.updateM7DaysUseYnN();
}
@Override
public void updateChkedUseYnN(NotifyManageVO notifyManageVO) {
notifyManageDAO.updateChkedUseYnN(notifyManageVO);
}
}

View File

@ -24,6 +24,15 @@ public class VEEduSatisfactionExcelVO {
private String srt; //정렬순서
private String qestnSn; //정렬순서
private String qestnCn; //정렬순서
private String verySatisfied; //정렬순서
private String satisfied; //정렬순서
private String neither; //정렬순서
private String disSatisfied; //정렬순서
private String veryDisSatisfied; //정렬순서
public String getEduHopeDt() {
return eduHopeDt;
}
@ -152,4 +161,60 @@ public class VEEduSatisfactionExcelVO {
this.srt = srt;
}
public String getQestnSn() {
return qestnSn;
}
public void setQestnSn(String qestnSn) {
this.qestnSn = qestnSn;
}
public String getQestnCn() {
return qestnCn;
}
public void setQestnCn(String qestnCn) {
this.qestnCn = qestnCn;
}
public String getVerySatisfied() {
return verySatisfied;
}
public void setVerySatisfied(String verySatisfied) {
this.verySatisfied = verySatisfied;
}
public String getSatisfied() {
return satisfied;
}
public void setSatisfied(String satisfied) {
this.satisfied = satisfied;
}
public String getNeither() {
return neither;
}
public void setNeither(String neither) {
this.neither = neither;
}
public String getDisSatisfied() {
return disSatisfied;
}
public void setDisSatisfied(String disSatisfied) {
this.disSatisfied = disSatisfied;
}
public String getVeryDisSatisfied() {
return veryDisSatisfied;
}
public void setVeryDisSatisfied(String veryDisSatisfied) {
this.veryDisSatisfied = veryDisSatisfied;
}
}

View File

@ -165,6 +165,8 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
private List<String> eduAplctOrdList; //교육신청순번
private List<String> sspnIdtmtTrgtOrdList; //교육신청순번
private String siteIdCd; //10-학생, 20-선생, 30-강사
public int getChasi() {
return chasi;
}
@ -2058,6 +2060,12 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
public void setMberId(String mberId) {
this.mberId = mberId;
}
public String getSiteIdCd() {
return siteIdCd;
}
public void setSiteIdCd(String siteIdCd) {
this.siteIdCd = siteIdCd;
}
}

View File

@ -69,6 +69,8 @@ public interface VEEduMIXService {
List<VEEduSatisfactionExcelVO> selectSatisfactionExcelList(VEEduAplctVO vEEduAplctVO) throws Exception;
List<VEEduSatisfactionExcelVO> selectSatisfaction202401ExcelList(VEEduAplctVO vEEduAplctVO) throws Exception;
List<VEEduExcelVO> selectOprtnExcelList(VEEduAplctVO vEEduAplctVO) throws Exception;
void insertExprnClsrmEndInfo(VEEduAplctVO vEEduAplctVO) throws Exception;

View File

@ -173,6 +173,12 @@ public class VEEduMIXDAO extends EgovAbstractDAO {
return tlist;
}
public List<VEEduSatisfactionExcelVO> selectSatisfaction202401ExcelList(VEEduAplctVO vEEduAplctVO) throws Exception {
@SuppressWarnings("unchecked")
List<VEEduSatisfactionExcelVO> tlist = (List<VEEduSatisfactionExcelVO>) list("VEEduMIXDAO.selectSatisfaction202401ExcelList", vEEduAplctVO);
return tlist;
}
public List<VEEduExcelVO> selectOprtnExcelList(VEEduAplctVO vEEduAplctVO) throws Exception {
@SuppressWarnings("unchecked")
List<VEEduExcelVO> tlist = (List<VEEduExcelVO>) list("VEEduMIXDAO.selectOprtnExcelList", vEEduAplctVO);

View File

@ -146,6 +146,11 @@ public class VEEduMIXServiceImpl implements VEEduMIXService {
return vEEduMIXDAO.selectSatisfactionExcelList(vEEduAplctVO);
}
@Override
public List<VEEduSatisfactionExcelVO> selectSatisfaction202401ExcelList(VEEduAplctVO vEEduAplctVO) throws Exception {
return vEEduMIXDAO.selectSatisfaction202401ExcelList(vEEduAplctVO);
}
@Override
public List<VEEduExcelVO> selectOprtnExcelList(VEEduAplctVO vEEduAplctVO) throws Exception {
return vEEduMIXDAO.selectOprtnExcelList(vEEduAplctVO);

View File

@ -8,8 +8,6 @@ import java.util.Collections;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import org.apache.poi.EncryptedDocumentException;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.Cell;
@ -21,10 +19,7 @@ import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import kcc.com.cmm.ComDefaultCodeVO;
import kcc.com.cmm.service.EgovCmmUseService;
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO;
public class TrgtExcelReader {
@ -49,30 +44,38 @@ public class TrgtExcelReader {
Row row = sheet.getRow(i);
if (row != null) {
CndtnTrgtMngVO cndtnTrgtMngVO = new CndtnTrgtMngVO();
try {
CndtnTrgtMngVO cndtnTrgtMngVO = new CndtnTrgtMngVO();
// cndtnTrgtMngVO.set getCellValue(row.getCell(0));
cndtnTrgtMngVO.setReqPnttm(getCellValue(row.getCell(1))); // 의뢰번호
// cndtnTrgtMngVO.set getCellValue(row.getCell(0));
cndtnTrgtMngVO.setReqPnttm(getCellValue(row.getCell(1))); // 의뢰번호
String vntInfo[] = getCellValue(row.getCell(2)).split("형제");
cndtnTrgtMngVO.setVntYear( vntInfo[0] ); // 사건번호
cndtnTrgtMngVO.setVntNmbr( vntInfo[1] ); // 사건번호 번호
cndtnTrgtMngVO.setCmptntAthrt( getCellValue(row.getCell(3)));
cndtnTrgtMngVO.setdBirth( getCellValue(row.getCell(4)).replaceAll("-", "")); // 생년월일
cndtnTrgtMngVO.setTrgtNm( getCellValue(row.getCell(5))); // 대상자 이름
cndtnTrgtMngVO.setSex( getCellValue(row.getCell(6)));
cndtnTrgtMngVO.setAddr( getCellValue(row.getCell(7))); // 주소, detail과 구분해야함
cndtnTrgtMngVO.setPost( getCellValue(row.getCell(8))); // 우편번호
cndtnTrgtMngVO.setClphone( getCellValue(row.getCell(9)).replaceAll("-", "")); // 핸드폰
cndtnTrgtMngVO.setReqNmbr( getCellValue(row.getCell(10))); // 의뢰번호
cndtnTrgtMngVO.setPrsctrNm( getCellValue(row.getCell(11))); // 담당검사 이름
System.out.println("row.getCell(2)");
System.out.println(row.getCell(2));
cndtnTrgtMngVO.setReqStateCd( getCellValue(row.getCell(12)) ); // 의뢰상태 코드 , if로 구분해야함
cndtnTrgtMngVO.setEduStateCd( getCellValue(row.getCell(13))); // 교육 상태 코드
cndtnTrgtMngVO.setPrcsAplctPrdOrdCmplt( getCellValue(row.getCell(14))); // 병합상태코드
cndtnTrgtMngVO.setRmrks( getCellValue(row.getCell(15))); // 비고
String vntInfo[] = getCellValue(row.getCell(2)).split("형제");
cndtnTrgtMngVO.setVntYear( vntInfo[0] ); // 사건번호
cndtnTrgtMngVO.setVntNmbr( vntInfo[1] ); // 사건번호 번호
cndtnTrgtMngVO.setCmptntAthrt( getCellValue(row.getCell(3)));
cndtnTrgtMngVO.setdBirth( getCellValue(row.getCell(4)).replaceAll("-", "")); // 생년월일
cndtnTrgtMngVO.setTrgtNm( getCellValue(row.getCell(5))); // 대상자 이름
cndtnTrgtMngVO.setSex( getCellValue(row.getCell(6)));
cndtnTrgtMngVO.setAddr( getCellValue(row.getCell(7))); // 주소, detail과 구분해야함
cndtnTrgtMngVO.setPost( getCellValue(row.getCell(8))); // 우편번호
cndtnTrgtMngVO.setClphone( getCellValue(row.getCell(9)).replaceAll("-", "")); // 핸드폰
cndtnTrgtMngVO.setReqNmbr( getCellValue(row.getCell(10))); // 의뢰번호
cndtnTrgtMngVO.setPrsctrNm( getCellValue(row.getCell(11))); // 담당검사 이름
cndtnTrgtInfoMngVOList.add(cndtnTrgtMngVO);
cndtnTrgtMngVO.setReqStateCd( getCellValue(row.getCell(12)) ); // 의뢰상태 코드 , if로 구분해야함
cndtnTrgtMngVO.setEduStateCd( getCellValue(row.getCell(13))); // 교육 상태 코드
cndtnTrgtMngVO.setPrcsAplctPrdOrdCmplt( getCellValue(row.getCell(14))); // 병합상태코드
cndtnTrgtMngVO.setRmrks( getCellValue(row.getCell(15))); // 비고
cndtnTrgtInfoMngVOList.add(cndtnTrgtMngVO);
}catch(Exception ex) {
ex.printStackTrace();
}
}
}

View File

@ -1671,6 +1671,67 @@ public class EduRsltMngTngrController {
return modelAndView;
}
//강사만족도 excel download
@SuppressWarnings("rawtypes")
@RequestMapping(value = "eduRsltSatisfaction202401ExcelDownLoad.do")
public ModelAndView eduRsltSatisfaction202401ExcelDownLoad(@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO, ModelMap model) throws Exception {
try {
// 요청, 반려건
vEEduAplctVO.setSearchNotStatusArr(new String[]{"60"});
// 청소년
vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_10);
vEEduAplctVO.setMode(VeConstants.MODE_EXCEL);
vEEduAplctVO.setSiteId("10");
vEEduAplctVO.setSiteIdCd("10");
vEEduAplctVO.setInstrDiv("10");
List<VEEduSatisfactionExcelVO> list = vEEduMIXService.selectSatisfaction202401ExcelList(vEEduAplctVO);
// 복호화
list = egovCryptoUtil.decryptVEEduSatisfactionExcelVOList(list);
System.out.println("out-list-2");
List<Object> excelData = new ArrayList<>();
excelData.addAll(list);
// 세팅값
String title = "청소년 찾아가는 저작권 교육 강사만족도";
int[] width = {
4000, 4000, 4000, 4000, 4000
, 4000, 4000, 4000, 4000, 4000
}; // 너비
//33개 항목
String[] header = {
"교육일자", "학교명", "강사명", "순번", "질문"
, "매우만족", "만족", "보통", "불만족", "매우불만족"
};
String[] order = {
"EduHopeDt", "ScholInsttNm", "InstrNm", "QestnSn", "QestnCn"
, "VerySatisfied", "Satisfied", "Neither", "DisSatisfied", "VeryDisSatisfied"
};
// 호출
SXSSFWorkbook workbook = ExcelUtil.makeSimpleFruitExcelWorkbook(excelData , header, order, width, title);
model.addAttribute("locale", Locale.KOREA);
model.addAttribute("workbook", workbook);
model.addAttribute("workbookName", title);
}catch(Exception ep) {
ep.getStackTrace();
}
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("excelDownloadView");
modelAndView.addObject(model);
return modelAndView;
}
/**
* 교육설문 삭제 - 청소년, 성인 공통 - 사용자 개인별 만족도 등록자 삭제
*/

View File

@ -165,4 +165,10 @@
WHERE FRST_REGIST_PNTTM <![CDATA[ <= ]]> SYSDATE - 7;
</update>
<delete id="VEANotifyDAO.updateChkedUseYnN" parameterClass="notifyManageVO">
UPDATE VEA_CMM_NOTIFY
SET USE_YN = 'N'
WHERE <iterate open="(" close=")" conjunction="," property="cmmNotifyOrdArr" prepend="cmm_notify_ord IN " > #cmmNotifyOrdArr[]#</iterate>
</delete>
</sqlMap>

View File

@ -6516,6 +6516,451 @@ VALUES
, srt
</select>
<!-- 강사만족도 excel-->
<select id="VEEduMIXDAO.selectSatisfaction202401ExcelList" parameterClass="VEEduAplctVO" resultClass="VEEduSatisfactionExcelVO">
/* VEEduMIXDAO.selectSatisfaction202401ExcelList */
SELECT
AA.*,
NVL(BB.qustnrRsltCnt,0) AS qustnrRsltCnt ,
2
, cc.qestn_sn AS qestnSn
, cc.qestn_ty_code AS qestnTyCode
, cc.qestn_cn AS qestnCn
, cc.verySatisfied
, cc.satisfied
, cc.neither
, cc.dissatisfied
, cc.veryDissatisfied
FROM (
SELECT
a.edu_aplct_ord AS eduAplctOrd ,
TO_CHAR(a.aprvl_pnttm,'YYYY-MM-DD') AS aprvlPnttm ,
a.edu_slct_cd AS eduSlctCd ,
a.edu_slct_area_cd AS eduSlctAreaCd ,
a.schol_instt_nm AS scholInsttNm ,
a.instt_div_cd AS insttDivCd ,
a.instt_nm AS insttNm ,
a.addr AS addr ,
a.strt_oprtn_dt AS strtOprtnDt ,
a.end_oprtn_dt AS endOprtnDt ,
a.chrg_nm AS chrgNm ,
a.schol_div_cd AS scholDivCd ,
a.stndrd_schol_cd AS stndrdScholCd ,
a.edu_trgt AS eduTrgt ,
a.clphone AS clphone ,
a.email AS email ,
a.hope_sbjct AS hopeSbjct,
a.phone AS phone,
a.edu_md AS eduMd,
a.edu_md_cd AS eduMdCd,
b.edu_chasi_ord AS eduChasiOrd ,
b.lrn_tm AS lrnTm ,
b.edu_hope_dt AS eduHopeDt ,
b.instr_cnfrm_cd AS instrCnfrmCd ,
b.strt_tm AS strtTm ,
b.end_tm AS endTm ,
b.trgt AS trgt ,
b.prsnl AS eduPrsnl ,
b.div_cd AS lctrDivCd ,
NVL(b.chasi, 0) AS chasi,
c.sbmt_yn AS sbmtYn ,
d.user_id AS userId ,
d.asgnm_aprvl_cd AS asgnmAprvlCd,
e.instr_nm AS instrNm,
e.phone AS instrPhone,
e.email AS instrEmail,
e.appt_div AS apptDiv,
g.atch_file_id AS atchFileId,
g.APRVL_CD AS acmdtAprvlCd,
d.rmrks AS rmrks,
c.atch_file_id AS rprtAtchFileId,
(select
count(1)
from
ve_edu_rslt_rprt
where 1=1
AND edu_aplct_ord = a.edu_aplct_ord
AND edu_chasi_ord = b.edu_chasi_ord
AND frst_register_id = d.user_id
AND sbmt_yn = 'Y') as cnt
<isEqual property="asgnmAprvlCd" compareValue="30">
,
f.sbmt_yn AS feeSbmtYn,
f.aprvl_cd AS feeAprvlCd,
NVL(TO_NUMBER(IF(f.instr_fee='',0,f.instr_fee)),0)
+ NVL(TO_NUMBER(IF(f.bsns_trip_fee='',0,f.bsns_trip_fee)),0)
+ NVL(TO_NUMBER(IF(f.spare_fee='',0,f.spare_fee)),0)
+ NVL(TO_NUMBER(IF(f.special_work_allow='',0,f.special_work_allow)),0)
+ NVL(TO_NUMBER(IF(f.distance_allow='',0,f.distance_allow)),0)
+ NVL(TO_NUMBER(IF(f.traffic_fee='',0,f.traffic_fee)),0)
- NVL(TO_NUMBER(IF(f.income_tax='',0,f.income_tax)),0)
- NVL(TO_NUMBER(IF(f.local_income_tax='',0,f.local_income_tax)),0)
AS totFee
</isEqual>
, (
SELECT COUNT(1)
FROM ve_new_noti e
WHERE (b.edu_aplct_ord = e.tbl_uniq_ord OR b.edu_chasi_ord = e.tbl_uniq_ord)
AND e.menu_no = #menuNo#
AND e.frst_register_id = #notiUserId#
)
AS notiCnt
, h.oneway_dstnc AS onewayDstnc
,NVL((
SELECT
COUNT(1)
FROM
ve_instr a
INNER JOIN ve_instr_detail e
ON (
a.user_id = e.user_id
AND e.use_yn = 'Y'
AND e.instr_div = '10'
)
INNER JOIN ve_edu_chasi_instr_asgnm_hstry i
ON(
/* 추가 강사 인원은 선정완료(20), 선정제외(30), 강의신청(50) 모두 나와야 한다. */
e.user_id = i.user_id
AND i.hstry_cd in ('20', '30', '50')
/*
AND i.hstry_cd in ('50')
*/
)
WHERE 1=1
AND e.instr_div ='10'
AND b.edu_aplct_ord = i.edu_aplct_ord
AND b.edu_chasi_ord = i.edu_chasi_ord
GROUP BY i.edu_aplct_ord , i.edu_chasi_ord
),0) AS rowNo
, e.rsdne as rsdne
, o.vea_rslt_rprt_ord AS veaRsltRprtOrd
FROM ve_edu_aplct a
, ve_edu_chasi b
LEFT OUTER JOIN ve_edu_rslt_rprt c
ON( b.edu_aplct_ord=c.edu_aplct_ord
AND b.edu_chasi_ord=c.edu_chasi_ord)
LEFT OUTER JOIN ve_edu_chasi_instr_asgnm d
ON( b.edu_aplct_ord=d.edu_aplct_ord
AND b.edu_chasi_ord=d.edu_chasi_ord)
<isNotEmpty property="searchTableJoin">
<isEqual property="searchTableJoin" compareValue="tngrResult">
INNER JOIN ve_instr_detail e
</isEqual>
</isNotEmpty>
<isEmpty property="searchTableJoin">
LEFT OUTER JOIN ve_instr_detail e
</isEmpty>
ON( d.user_id=e.user_id
AND e.instr_div=#instrDiv#
AND e.use_yn='Y'
)
<isEqual property="asgnmAprvlCd" compareValue="30">
LEFT OUTER JOIN ve_instr_fee f
ON( b.edu_aplct_ord = f.edu_aplct_ord
AND b.edu_chasi_ord = f.edu_chasi_ord
)
</isEqual>
/*
LEFT OUTER JOIN ve_acmdt_aplct g
*/
LEFT OUTER JOIN (
SELECT B00.*
FROM (
SELECT edu_aplct_ord, edu_chasi_ord, MAX(acmdt_aplct_ord) acmdt_aplct_ord
FROM ve_acmdt_aplct
GROUP BY edu_aplct_ord, edu_chasi_ord
)A00
, ve_acmdt_aplct B00
WHERE a00.edu_aplct_ord=b00.edu_aplct_ord
AND a00.edu_chasi_ord=b00.edu_chasi_ord
AND a00.acmdt_aplct_ord=b00.acmdt_aplct_ord
) g
ON ( b.edu_aplct_ord=g.edu_aplct_ord
AND b.edu_chasi_ord=g.edu_chasi_ord
)
LEFT OUTER JOIN ve_edu_instr_dstnc h
ON b.edu_aplct_ord = h.edu_aplct_ord AND d.user_id = h.user_id
LEFT OUTER JOIN vea_rslt_rprt o
ON b.edu_aplct_ord = o.edu_aplct_ord
WHERE 1=1
AND a.edu_aplct_ord=b.edu_aplct_ord
AND NVL(A.USE_YN, 'Y') <![CDATA[ <> ]]> 'N'
<isNotEmpty property="lctrDivCd">
AND a.LCTR_DIV_CD = #lctrDivCd#
</isNotEmpty>
<isNotEmpty property="aprvlCd">
AND a.aprvl_cd = #aprvlCd#
</isNotEmpty>
<isNotEmpty property="instrCnfrmCd">
AND b.instr_cnfrm_cd = #instrCnfrmCd#
</isNotEmpty>
<isNotEmpty property="searchInsttDivCd">
AND a.instt_div_cd = #searchInsttDivCd#
</isNotEmpty>
<isNotEmpty property="searchEduSlctCd">
AND a.edu_slct_cd = #searchEduSlctCd#
</isNotEmpty>
<isNotEmpty property="feeSbmtYn">
AND f.sbmt_yn = #feeSbmtYn#
</isNotEmpty>
<isNotEmpty property="selectPagingListQuery">
$selectPagingListQuery$
</isNotEmpty>
<isNotEmpty property="searchAsgnmAprvlCd">
<isEqual property="searchAsgnmAprvlCd" compareValue="90">
AND d.asgnm_aprvl_cd is null
</isEqual>
<isNotEqual property="searchAsgnmAprvlCd" compareValue="90">
AND d.asgnm_aprvl_cd = #searchAsgnmAprvlCd#
</isNotEqual>
</isNotEmpty>
<isNotEmpty property="searchStartDt">
/*
AND b.EDU_HOPE_DT <![CDATA[ >= ]]> REPLACE(searchStartDt, '.' , '')
*/
AND b.EDU_HOPE_DT <![CDATA[ >= ]]> #searchStartDt#
</isNotEmpty>
<isNotEmpty property="searchEndDt">
/*
AND b.EDU_HOPE_DT <![CDATA[ <= ]]> REPLACE(searchEndDt, '.' , '')
*/
AND b.EDU_HOPE_DT <![CDATA[ <= ]]> #searchEndDt#
</isNotEmpty>
<isEmpty property="searchStartDt">
<isEmpty property="searchEndDt">
AND 1=1
</isEmpty>
</isEmpty>
) AA
,
(
SELECT b0.EDU_APLCT_ORD
, b0.EDU_CHASI_ORD
, count(*) qustnrRsltCnt
FROM LETTNQESTNRRSLTDETAIL b0
GROUP BY b0.EDU_APLCT_ORD
, b0.EDU_CHASI_ORD
)bb
,(
SELECT
b.QUSTNR_QESITM_ID AS qestnrQesitmId
, c.QUSTNR_RSLT_ID AS qustnrRsltId
, NVL(c.VERY_SATISFIED, cVERY_SATISFIED) AS verySatisfied
, NVL(c.SATISFIED, cSATISFIED) AS satisfied
, NVL(c.NEITHER, cNEITHER) AS neither
, NVL(c.DISSATISFIED, cDISSATISFIED) AS dissatisfied
, NVL(c.VERY_DISSATISFIED, cVERY_DISSATISFIED) AS veryDissatisfied
, c.ANSWER AS answer
, c.QUSTNR_IEM_ID AS qustnrIemId
, b.qestn_sn AS qestnSn
, e.QESTNR_RESPONDENT_COUNT AS qestnrParticipant
, e.QESTNR_PARTICIPANT_COUNT AS qestnrRespondent
, d.QUSTNR_RESPOND_ID AS qestnrRespondId
, g.qestn_sn
, g.qestn_ty_code
, g.qestn_cn
, c.EDU_APLCT_ORD
, c.EDU_CHASI_ORD
FROM LETTNQESTNRINFO a
, LETTNQUSTNRQESITM b
LEFT OUTER join LETTNQESTNRRSLTDetail c
on(
b.QUSTNR_TMPLAT_ID =c.QUSTNR_TMPLAT_ID
AND b.QESTNR_ID =c.QESTNR_ID
AND b.QUSTNR_QESITM_ID =c.QUSTNR_QESITM_ID
)
/* 중복답변 처리 */
LEFT OUTER JOIN (
SELECT d0.QUSTNR_TMPLAT_ID
, d0.QESTNR_ID
, d0.EDU_APLCT_ORD
, d0.EDU_CHASI_ORD
, MAX(d0.QUSTNR_RESPOND_ID) AS QUSTNR_RESPOND_ID
FROM LETTNQUSTNRRESPONDINFO d0
GROUP BY d0.QUSTNR_TMPLAT_ID
, d0.QESTNR_ID
, d0.EDU_APLCT_ORD
, d0.EDU_CHASI_ORD
) d
ON (
c.QESTNR_ID = d.QESTNR_ID
AND c.EDU_APLCT_ORD = d.EDU_APLCT_ORD
AND c.EDU_CHASI_ORD = d.EDU_CHASI_ORD
)
LEFT OUTER JOIN LETTNQUSTNRRESPONDINFO e
on
(
d.QUSTNR_TMPLAT_ID =e.QUSTNR_TMPLAT_ID
AND d.QESTNR_ID =e.QESTNR_ID
AND d.QUSTNR_RESPOND_ID =e.QUSTNR_RESPOND_ID
AND d.EDU_APLCT_ORD = e.EDU_APLCT_ORD
AND d.EDU_CHASI_ORD = e.EDU_CHASI_ORD
)
LEFT OUTER JOIN (
SELECT
c.QUSTNR_TMPLAT_ID
, c.QESTNR_ID
, c.QUSTNR_QESITM_ID
, c.EDU_APLCT_ORD
, c.EDU_CHASI_ORD
, sum(c.very_satisfied) AS cvery_satisfied
, sum(c.satisfied) AS csatisfied
, sum(c.neither) AS cneither
, sum(c.dissatisfied) AS cdissatisfied
, sum(c.very_dissatisfied) AS cvery_dissatisfied
FROM LETTNQESTNRRSLTEADetail c
GROUP BY
c.QUSTNR_TMPLAT_ID
, c.QESTNR_ID
, c.QUSTNR_QESITM_ID
, c.EDU_APLCT_ORD
, c.EDU_CHASI_ORD
)F
on(
b.QUSTNR_TMPLAT_ID =f.QUSTNR_TMPLAT_ID
AND b.QESTNR_ID =f.QESTNR_ID
AND b.QUSTNR_QESITM_ID =f.QUSTNR_QESITM_ID
)
, LETTNQUSTNRQESITM G
WHERE a.site_id=#siteId#
AND a.SITE_ID_CD =#siteIdCd#
AND b.QUSTNR_TMPLAT_ID =a.QUSTNR_TMPLAT_ID
AND b.QESTNR_ID =a.QESTNR_ID
AND b.QUSTNR_QESITM_ID = g.QUSTNR_QESITM_ID
)cc
WHERE 1=1
AND aa.eduAplctOrd = bb.edu_aplct_ord
AND aa.eduChasiOrd = bb.edu_chasi_ord
AND aa.eduAplctOrd = cc.edu_aplct_ord
AND aa.eduChasiOrd = cc.edu_chasi_ord
<isNotEmpty property="checkListQuery">
$checkListQuery$
</isNotEmpty>
<isNotEmpty property="selectRsdneQuery">
$selectRsdneQuery$
</isNotEmpty>
<isEqual property="searchSubmitYn" compareValue="Y">
AND AA.CNT <![CDATA[ >= ]]> 1
</isEqual>
<isEqual property="searchSubmitYn" compareValue="N">
AND AA.CNT = 0
</isEqual>
<isNotEmpty property="searchScholDivCd">
AND AA.scholDivCd = #searchScholDivCd#
</isNotEmpty>
<isNotEmpty property="searchEduSlctAreaCd">
AND (
(
AA.eduSlctAreaCd = #searchEduSlctAreaCd#
AND AA.eduSlctCd = '20'
)
OR
(
'400' = #searchEduSlctAreaCd#
AND AA.eduSlctCd = '10'
)
)
</isNotEmpty>
<isNotEmpty property="searchScholNm">
AND AA.scholInsttNm LIKE '%' || #searchScholNm# || '%'
</isNotEmpty>
<isNotEmpty property="searchInsttNm">
AND AA.insttNm LIKE '%' || #searchInsttNm# || '%'
</isNotEmpty>
<isNotEmpty property="searchInstrNm">
AND AA.instrNm LIKE '%' || #searchInstrNm# || '%'
</isNotEmpty>
<isEmpty property="searchCondition">
<isNotEmpty property="searchKeyword">
AND (
A.SCHOL_INSTT_NM LIKE '%' || #searchKeyword# || '%' OR
A.INSTT_NM LIKE '%' || #searchKeyword# || '%'
)
</isNotEmpty>
</isEmpty>
<isNotEmpty property="searchKeyword">
<isEqual property="searchCondition" compareValue="0">
AND (AA.scholInsttNm LIKE '%' || #searchKeyword# || '%' OR AA.instrNm LIKE '%' || #instrNm# || '%')
</isEqual>
<isEqual property="searchCondition" compareValue="1">
AND AA.scholInsttNm LIKE '%' || #searchKeyword# || '%'
</isEqual>
<isEqual property="searchCondition" compareValue="2">
AND AA.instrNm LIKE '%' || #instrNm# || '%'
</isEqual>
<isEqual property="searchCondition" compareValue="3">
AND (AA.insttNm LIKE '%' || #searchKeyword# || '%' OR AA.instrNm LIKE '%' || #searchKeyword# || '%')
</isEqual>
<isEqual property="searchCondition" compareValue="4">
AND AA.insttNm LIKE '%' || #searchKeyword# || '%'
</isEqual>
</isNotEmpty>
ORDER BY 1
<isEmpty property="orderByQuery">
, eduhopedt
, scholinsttnm
, cc.edu_chasi_ord
, cc.qestnSn
</isEmpty>
<isNotEmpty property="orderByQuery">
, $orderByQuery$
</isNotEmpty>
</select>
<insert id="VEEduMIXDAO.updateRsltRprtFileIdNull" parameterClass="VEEduAplctVO">

View File

@ -213,8 +213,8 @@
d.QUSTNR_TMPLAT_ID =e.QUSTNR_TMPLAT_ID
AND d.QESTNR_ID =e.QESTNR_ID
AND d.QUSTNR_RESPOND_ID =e.QUSTNR_RESPOND_ID
AND d.EDU_APLCT_ORD = d.EDU_APLCT_ORD
AND d.EDU_CHASI_ORD = d.EDU_CHASI_ORD
AND d.EDU_APLCT_ORD = e.EDU_APLCT_ORD
AND d.EDU_CHASI_ORD = e.EDU_CHASI_ORD
)
LEFT OUTER JOIN (

View File

@ -304,10 +304,24 @@
});
alert("발송되었습니다.");
}
function fn_excel_upload() {
var form = document.excelForm;
// form.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/popup/duplChkPopup.do'/>";
form.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/popup/excelUploadPopup.do'/>";
window.open("#", "_duplChkPopup", "scrollbars = no, top=100px, left=100px, height=750px, width=950px");
form.target = "_duplChkPopup";
form.submit();
}
</script>
<title>교육과정관리</title>
</head>
<body>
<form id="excelForm" name="excelForm" method="post" >
</form>
<form id="popForm" name="popForm" method="post">
<input type="hidden" name="sspnIdtmtTrgtOrd" value=""/>
<input type="hidden" name="targetId" value=""/>
@ -606,9 +620,10 @@
</div>
<div class="btn_wrap btn_layout01">
<div class="btn_left">
<button type="button" class="btn_type06" onclick="openSmsPopup();">문자발송</button>
<button type="button" class="btn_type04" onclick="fn_excel_upload(); return false;">엑셀 업로드</button>
</div>
<div class="btn_center">
<button type="button" class="btn_type06" onclick="openSmsPopup();">문자발송</button>
</div>
<div class="btn_right">
<button type="button" class="btn_type01" onclick="fncCreate(); return false;">등록</button>

View File

@ -279,6 +279,12 @@
listForm.submit();
}
function fncSatisfaction202401ExcelDownLoad(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/eduRsltSatisfaction202401ExcelDownLoad.do'/>";
listForm.submit();
}
//숙박영수증 첨부파일 일괄 다운로드(zip) - 파일ID 다름, SN 동일 : type A
function fnAcmdtFileZipDownload(){
var frm = document.listForm;
@ -546,7 +552,7 @@
<div class="btn_wrap btn_layout01">
<div class="btn_left">
<button type="button" class="btn_type06" onclick="fncSatisfactionExcelDownLoad();return false;">강사만족도다운로드</button>
<button type="button" class="btn_type06" onclick="fncSatisfaction202401ExcelDownLoad();return false;">강사만족도다운로드</button>
(*교육일자 조건만 지원)
</div>

View File

@ -344,79 +344,90 @@
</script>
</c:if>
</c:forEach>
<!-- 횟수 차트 -->
<div id="chartContainer" style="display:flex; width:100%;">
<div id="chartNumOfTime" style="float:left; width: 50%; height:600px;">
<div id="chartAll" style="float:left; width: 100%; height:600px;">
</div>
<script type="text/javascript">
<!-- 차트 선언 -->
var chartNOT = echarts.init(document.getElementById('chartNumOfTime'));
var chartAll = echarts.init(document.getElementById('chartAll'));
var month = ['1월', '2월', '3월', '4월', '5월','6월','7월','8월', '9월','10월','11월', '12월'];
//차트 옵션 지정하기
var optionNOT = {
// 차트 제목
title: {
text: '월별 횟수 차트 (총합 :' + dataNOTSum +')',
},
// x축 라벨
xAxis: {
data: month,
},
yAxis: {},
series: [
{
name: '개수',
type: 'bar', // 막대 그래프
data: dataNOT,
label: {
show: true,
position: 'top'
var optionAll = {
toolbox: {
feature: {
//dataView: { show: true, readOnly: false },
magicType: { show: true, type: ['line', 'bar'] },
restore: { show: true },
saveAsImage: { show: true }
}
},
legend: {
data: ['횟수', '인원']
},
xAxis: [
{
type: 'category',
data: month,
axisPointer: {
type: 'shadow'
}
}
],
yAxis: [
{
type: 'value',
name: '횟수',
interval: 50,
max : dataNOTSum,
axisLabel: {
formatter: '{value}회'
}
},
{
type: 'value',
name: '인원',
interval: 50,
mas : dataNOTSum,
axisLabel: {
formatter: '{value}명'
}
}
],
series: [
{
name: '횟수',
type: 'bar',
tooltip: {
valueFormatter: function (value) {
return value + '회';
}
},
label: {
show: true,
position: 'top'
},
data: dataNOT
},
{
name: '인원',
type: 'line',
yAxisIndex: 1,
tooltip: {
valueFormatter: function (value) {
return value + '명';
}
},
label: {
show: true,
position: 'top'
},
data: dataNOP
}
]
}
},
],
}
//차트 옵션 적용
chartNOT.setOption(optionNOT);
</script>
<!-- /횟수 차트 -->
<!-- 인원 차트 -->
<div id="chartNumOfPeople" style="float:right; width: 50%; height:600px;">
</div>
<script type="text/javascript">
<!-- 차트 선언 -->
var chartNOP = echarts.init(document.getElementById('chartNumOfPeople'));
<!-- 차트 옵션 지정하기 -->
var optionNOP = {
// 차트 제목
title: {
text: '월별 인원 차트(총합 :' + dataNOPSum +')',
},
// x축 라벨
xAxis: {
data: month,
},
yAxis: {},
series: [
{
name: '개수',
type: 'bar', // 막대 그래프
data: dataNOP,
label: {
show: true,
position: 'top'
}
},
],
}
<!-- 차트 옵션 적용 -->
chartNOP.setOption(optionNOP);
//차트 옵션 적용
chartAll.setOption(optionAll);
</script>
</div>
<!-- /인원 차트 -->
<!-- /월별 횟수/교육인원 차트 -->

View File

@ -240,14 +240,13 @@ function usrJoin(){
<div class="inner">
<div class="top_link">
<ul>
<!-- <li><a href="https://edu-copyright.or.kr/portal/main.do">포털사이트</a></li>
<li><a href="https://edu-copyright.or.kr/user/main/main.do">저작권e배움터</a></li>
<li><a href="https://edu-copyright.or.kr/dsprUser/main/main.do">장애인e배움터</a></li>
<li class="on"><a href="https://www.edu-copyright.or.kr/offedu/web/main/mainPage.do">저작권배움터</a></li> -->
<li><a href="#goLink" onclick="goLink('portal');return false;" onkeypress="this.onclick;" title="새창열림" target="_blank">포털사이트</a></li>
<li><a href="#goLink" onclick="goLink('user');return false;" onkeypress="this.onclick;" title="새창열림" target="_blank">저작권e배움터</a></li>
<li><a href="#goLink" onclick="goLink('dsprUser');return false;" onkeypress="this.onclick;" title="새창열림" target="_blank">장애인e배움터</a></li>
<li class="on"><a href="#goLink" onclick="goLink('offedu');return false;" onkeypress="this.onclick;" title="새창열림" target="_blank">저작권배움터</a></li>
<!-- 240119 요청으로 인하여 운영서버는 링크 제외 -->
<c:if test="${environment ne 'real' }">
<li><a href="#goLink" onclick="goLink('portal');return false;" onkeypress="this.onclick;" title="새창열림" target="_blank">포털사이트</a></li>
<li><a href="#goLink" onclick="goLink('user');return false;" onkeypress="this.onclick;" title="새창열림" target="_blank">저작권e배움터</a></li>
<li><a href="#goLink" onclick="goLink('dsprUser');return false;" onkeypress="this.onclick;" title="새창열림" target="_blank">장애인e배움터</a></li>
<li class="on"><a href="#goLink" onclick="goLink('offedu');return false;" onkeypress="this.onclick;" title="새창열림" target="_blank">저작권배움터</a></li>
</c:if>
</ul>
</div>
<!-- <div class="area_left">
@ -311,14 +310,13 @@ function usrJoin(){
<div class="inner">
<div class="top_link">
<ul>
<!-- <li><a href="https://edu-copyright.or.kr/portal/main.do">포털사이트</a></li>
<li><a href="https://edu-copyright.or.kr/user/main/main.do">저작권e배움터</a></li>
<li><a href="https://edu-copyright.or.kr/dsprUser/main/main.do">장애인e배움터</a></li>
<li class="on"><a href="https://edu-copyright.or.kr/offedu/web/main/mainPage.do">저작권배움터</a></li> -->
<li><a href="#goLink" onclick="goLink('portal');return false;" onkeypress="this.onclick;" title="새창열림" target="_blank">포털사이트</a></li>
<li><a href="#goLink" onclick="goLink('user');return false;" onkeypress="this.onclick;" title="새창열림" target="_blank">저작권e배움터</a></li>
<li><a href="#goLink" onclick="goLink('dsprUser');return false;" onkeypress="this.onclick;" title="새창열림" target="_blank">장애인e배움터</a></li>
<li class="on"><a href="#goLink" onclick="goLink('offedu');return false;" onkeypress="this.onclick;" title="새창열림" target="_blank">저작권배움터</a></li>
<!-- 240119 요청으로 인하여 운영서버는 링크 제외 -->
<c:if test="${environment ne 'real' }">
<li><a href="#goLink" onclick="goLink('portal');return false;" onkeypress="this.onclick;" title="새창열림" target="_blank">포털사이트</a></li>
<li><a href="#goLink" onclick="goLink('user');return false;" onkeypress="this.onclick;" title="새창열림" target="_blank">저작권e배움터</a></li>
<li><a href="#goLink" onclick="goLink('dsprUser');return false;" onkeypress="this.onclick;" title="새창열림" target="_blank">장애인e배움터</a></li>
<li class="on"><a href="#goLink" onclick="goLink('offedu');return false;" onkeypress="this.onclick;" title="새창열림" target="_blank">저작권배움터</a></li>
</c:if>
</ul>
</div>
<!--<div class="area_left">

View File

@ -40,7 +40,42 @@ function fn_goDetail(cmmNotifyOrd){
form.submit();
}
function chkDelete(){
var chkLen = $(listForm).find("input[name=chk]:checked").length;
if(chkLen == 0){
alert("선택된 항목이 없습니다.");
return;
}
if(confirm("삭제하시겠습니까?")){
var data = new FormData(document.getElementById("listForm"));
var url = "<c:url value='/web/my/myNotifyMngDeleteAjax.do'/>"
$.ajax({
type : "Post",
url : url,
data : data,
dataType : 'json',
async : false,
processData : false,
contentType : false,
cache : false,
success : function(returnData){
if(returnData.result == "success"){
alert("삭제되었습니다.");
location.reload();
}else{
alert("실패하였습니다.")
}
},
error : function(request, status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
})
}
}
@ -81,12 +116,15 @@ function fn_goDetail(cmmNotifyOrd){
<table>
<caption>내알림 : 분야, 메시지, 등록일 등의 정보제공</caption>
<colgroup>
<col style="width:3%;">
<col style="width:13%;">
<col style="width:13%;">
<col style="width:10%;">
<col style="width:13%;">
<col style="width:13%;">
</colgroup>
<thead>
<tr>
<th scope="col"></th>
<th scope="col">분야</th>
<th scope="col">메시지</th>
<th scope="col">등록일</th>
@ -95,6 +133,9 @@ function fn_goDetail(cmmNotifyOrd){
<tbody>
<c:forEach var="list" items="${list}">
<tr onclick="fn_goDetail('${list.cmmNotifyOrd}')" onkeypress="if(event.keyCode == 13){fn_goDetail('${list.cmmNotifyOrd}');}" style="cursor: pointer;" tabindex="0" >
<td onclick="event.cancelBubble=true">
<input name="chk" id="<c:out value="${list.cmmNotifyOrd}"/>" type="checkbox" value="<c:out value="${list.cmmNotifyOrd}"/>"/> <label for="<c:out value="${list.cmmNotifyOrd}"/>"></label>
</td>
<td>
<c:if test="${list.notifyChk ne 'Y'}">
<span class="mypage_new">NEW</span>
@ -126,6 +167,7 @@ function fn_goDetail(cmmNotifyOrd){
<div class="btn_wrap btn_layout01">
<div class="btn_left">
<button type="button" class="btnType01" onclick="chkDelete();" />삭제</button>
</div>
<div class="btn_center">
</div>

View File

@ -143,7 +143,7 @@
<li>
<div class="wrap">
<div class="title">
<p><img src="/offedu/visitEdu/usr/publish/images/content/mypage_icon03.png" alt="체험교실 마이페이지 아이콘">체험교실</p>
<p><img src="/offedu/visitEdu/usr/publish/images/content/mypage_icon03.png" alt="체험교실 마이페이지 아이콘"> 체험교실</p>
</div>
<div class="inner_text" style="text-align: left;">
<a href="#" onclick="fn_goExprnListForm(20)">

View File

@ -56,6 +56,7 @@
.popup_cont .tb_type01.tb_write {margin:0 0 20px 0;}
.popup_cont .popup_cont.upload_area {margin:-20px 0 0 0;}
.popup_cont .pop_btn_wrap.btn_layout01 {margin:-20px 0 0 0;}
.popup_cont .pop_btn_wrap .qr_btn{margin: 40px 0 0 0;}
</style>
<script type="text/javaScript" language="javascript">

View File

@ -13,6 +13,16 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javaScript" language="javascript">
$( document ).ready(function(){
if (${empty list}){
alert("운영 중인 체험교실이 없습니다.");
location.href = "<c:url value='/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctGuide.do'/>";
}
});
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;

View File

@ -550,7 +550,7 @@
<dt>전체 교육인원</dt>
<dd>
<label for="trgtPrsnlRealTxt" class="label">전체 교육인원</label>
<input type="text" id="trgtPrsnlRealTxt" onkeyup="onlyNumber(this);" value="${info.trgtPrsnlReal}" title="전체 교육인원" size="20" maxlength="3">
<input type="text" id="trgtPrsnlRealTxt" onblur="onlyNumber(this);" value="${info.trgtPrsnlReal}" title="전체 교육인원" size="20" maxlength="3">
</dd>
</dl>
</div>

View File

@ -20,7 +20,7 @@
}
</style>
<script type="text/javaScript" language="javascript">
var aprvlCd = ${info.aprvlCd}
var aprvlCd = "${info.aprvlCd}";
$( document ).ready(function(){
if(${info == null}){

View File

@ -750,7 +750,7 @@
<div class="tb_type02 tb_type02_write">
<table class="addClassRow" rowLimit="1" >
<colgroup>
<col style="width: 13%;">
<col style="width: 14%;">
<col style="width: 25%;">
<col style="width: auto;">
<col style="width: 15%;">

View File

@ -272,7 +272,7 @@ $(document).ready(function(){
<div class="popup_cont">
<div class="cont_body">
<div class="pop_tb_type02">
<div class="pop_tb_type02 qr_wrap">
<!--
<table>
<caption>교육일, 차시, 구분, 대상, 배정강사, 인원, 설문완료 여부 등의 정보제공</caption>
@ -474,7 +474,7 @@ $(document).ready(function(){
});
</script>
<div id="qrcode"></div>
<div id="qrcode" class="qr_img"></div>
<br/>
@ -485,7 +485,7 @@ $(document).ready(function(){
<div class="pop_btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<div class="btn_center qr_btn">
<!-- <button type="button" class="btnType05" id="popupSubmin" onclick="popupSrvySendSubmit();">제출</button> -->
<button type="button" class="btnType05" id="popupSubmin" onclick="onclickPrint();" title="새창 열림">출력</button>

View File

@ -778,7 +778,7 @@ select.selType1 {height: 40px; border: 1px solid #d5d5d5; border-radius: 5px; pa
.mypage_wrap .mypage .wrap{height: 178px; border-radius: 10px; background-color: #eaedf1;}
.mypage_wrap .mypage .wrap .title{border-radius: 10px 10px 0 0; background-color: #3a72db; text-align: center; font-size: 20px; color: #fff; font-weight: 500; line-height: 53px;}
.mypage_wrap .mypage .wrap .title p img{margin: 0 0 4px 0;}
.mypage_wrap .mypage .wrap .inner_text{width: calc(100% - 68px); height: calc(100% - 116px); padding: 7px 7px 10px 7px; margin: 23px auto 0 auto; border-radius: 10px; background-color: #fff; font-size: 18px; font-weight: 400; color: #666; text-align: center; line-height: 1.4;}
.mypage_wrap .mypage .wrap .inner_text{width: calc(100% - 68px); height: calc(100% - 116px); padding: 7px 7px 10px 17px; margin: 23px auto 0 auto; border-radius: 10px; background-color: #fff; font-size: 18px; font-weight: 400; color: #666; text-align: center; line-height: 1.4;}
.mypage_wrap .mypage .wrap .inner_text a i{display: inline-block; width: 4px; height: 4px; background-color: #3a72db; margin: 0 5px 4px 0; border-radius: 100%;}
.mypage_wrap .mypage .wrap .inner_text a p span{margin: 0 0 0 20px; font-size: 22px; font-weight: 500; color: #222;}
.mypage_wrap .mypage .wrap .inner_text a:hover *{color: #e95504;}
@ -876,7 +876,7 @@ select.selType1 {height: 40px; border: 1px solid #d5d5d5; border-radius: 5px; pa
/*마이페이지 추가*/
.mypage_wrap .mypage{margin: 0 0 20px 0;}
.mypage_wrap .mypage li{width: calc((100% - 45px)/2); margin: 0 0 40px 0;}
.mypage_wrap .mypage .wrap .inner_text{width: calc(100% - 67px); height: calc(100% - 116px); padding: 7px 7px 11px 7px; margin: 21px auto 0 auto;}
.mypage_wrap .mypage .wrap .inner_text{width: calc(100% - 67px); height: calc(100% - 116px); padding: 7px 7px 11px 17px; margin: 21px auto 0 auto;}
/*.mypage_wrap .mypage_table .right{margin: 0 40px 0 0;}*/
.tb_tit01{display: block;}
@ -1137,7 +1137,7 @@ select.selType1 {height: 40px; border: 1px solid #d5d5d5; border-radius: 5px; pa
/*마이페이지 추가*/
/*.mypage_wrap .mypage{margin: 0 0 -40px 0;}*/
.mypage_wrap .mypage li{width: calc((100% - 26px)/2); margin: 0 0 25px 0;}
.mypage_wrap .mypage .wrap .inner_text{width: calc(100% - 63px); height: calc(100% - 113px); padding: 9px 7px 8px 7px; margin: 21px auto 0 auto;}
.mypage_wrap .mypage .wrap .inner_text{width: calc(100% - 63px); height: calc(100% - 113px); padding: 9px 7px 8px 17px; margin: 21px auto 0 auto;}
.time_layer.on{position:fixed; width:100%; top:calc(100% - 143px); left:0; border:0;}
}

View File

@ -130,6 +130,11 @@
/*성인 > 완료상세 > 교육완료 내용 > 강사 참석 확인서 업로드 팝업 > 확인, 취소 버튼 여백 수정*/
.upload_pop .upload_btn{margin: 20px 0 0 0;}
/*청소년, 성인 > 완료상세 > 설문QR 레이어팝업 > QR코드 가운데 정렬 수정 + 스크롤 없앰*/
.popup_cont .cont_body .qr_wrap{margin-bottom: 0px; overflow-y: hidden;}
.popup_cont .cont_body .qr_wrap .qr_img img{margin: 0 auto; /*display: block;*/}
@media all and (max-width: 767px){
.popup_cont {padding: 10px;}
.popup_wrap.popType02 {width: 360px;}