This commit is contained in:
ITN_디자인팀 2024-01-12 18:21:55 +09:00
commit 6f1584524e
36 changed files with 1005 additions and 181 deletions

View File

@ -841,6 +841,7 @@ public class CommonWebController {
System.out.println("===대상차시 가져오기===");
System.out.println(s_query);
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
vEEduAplctVO.setSelectPagingListQuery(s_query);
@ -857,8 +858,9 @@ public class CommonWebController {
}
}
//modelAndView.addObject("rsCnt", rs);
System.out.println("p");
System.out.println(p);
modelAndView.addObject("cnt", p); //처리된 수량
modelAndView.addObject("result", "success");
return modelAndView;
}

View File

@ -187,7 +187,6 @@ public class ExprnClsrmEndController {
model.addAttribute("paginationInfo", paginationInfo);
//대상 리스트, 페이징 정보 전달
model.addAttribute("list", vEEduAplctVOList);
model.addAttribute("cnt", vEEduAplctVOList.size());
return "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmEnd/exprnClsrmEndList";
}

View File

@ -139,7 +139,7 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
if (cndtnTrgtMngVOList==null || cndtnTrgtMngVOList.size()<=0) { //step3.기존 이력이 없으면 관리자에게 문의 하도록 한다.
result = "fail";
msg = "대상자 정보가 없습니다. 자세한 사항은 담당자에게 문의 바랍니다.";
msg = "대상자 정보가 없습니다. 관리자에게 문의 바랍니다.";
next = "Y"; //?
}else if (cndtnTrgtMngVOList.size()>0) {
@ -148,7 +148,7 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
msg = "기존 이력을 전달한다.------";
if ("20".equals(cndtnTrgtMngVOList.get(0).getEduStateCd())) {
msg = "이미 이수한 이력이 있습니다. 자세한 사항은 담당자에게 문의 바랍니다.";
msg = "이미 이수한 이력이 있습니다. 관리자에게 문의 바랍니다.";
next = "Y"; //?
}else if ("25".equals(cndtnTrgtMngVOList.get(0).getEduStateCd())) {
@ -160,11 +160,11 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
next = ""; //?
}else if ("40".equals(cndtnTrgtMngVOList.get(0).getEduStateCd())) {
msg = "미이수 상태입니다. 자세한 사항은 담당자에게 문의 바랍니다.";
msg = "미이수한 이력이 있습니다. 관리자에게 문의 바랍니다.";
next = "Y"; //?
}else if ("60".equals(cndtnTrgtMngVOList.get(0).getEduStateCd())) {
msg = "교육취소 이력이 있습니다. 자세한 사항은 담당자에게 문의 바랍니다.";
msg = "교육취소 이력이 있습니다. 관리자에게 문의 바랍니다.";
next = "Y"; //?
}

View File

@ -32,6 +32,8 @@ public class VEInstrExcelVO extends ComDefaultVO implements Serializable {
private String YNowMtwoStsfc;
private String YNowMthreeStsfc;
private String YNowMfourStsfc;
private String memo;
public String getInstrNm() {
return instrNm;
}
@ -146,6 +148,12 @@ public class VEInstrExcelVO extends ComDefaultVO implements Serializable {
public void setYNowMfourStsfc(String yNowMfourStsfc) {
YNowMfourStsfc = yNowMfourStsfc;
}
public String getMemo() {
return memo;
}
public void setMemo(String memo) {
this.memo = memo;
}

View File

@ -115,7 +115,6 @@ public interface VEInstrMixService {
List<VEInstrDetailVO> selectInstrExcelList(VEInstrDetailVO vEInstrDetailVO);
//청소년 통계
//교육실정통계- 월별 횟수/교육인원(그래프 포함)
List<VELctrDetailVO> selectEduPrfrmInfo_tngr_no1(VEInstrDetailVO vEInstrDetailVO) throws Exception;
@ -134,5 +133,5 @@ public interface VEInstrMixService {
//성인 통계
//교육실정통계- 월별 교육대상별 교육횟수(그래프 포함),월별 교육대상별 교육횟수(그래프 포함),월별 교육대상별 교육인원(그래프 포함)
List<VELctrDetailVO> selectEduPrfrmInfo_adult_no5_no6_no7(VEInstrDetailVO vEInstrDetailVO) throws Exception;
List<VELctrDetailVO> selectEduPrfrmInfo_adult_no5_no6_no7(VEInstrDetailVO vEInstrDetailVO) throws Exception;
}

View File

@ -259,6 +259,7 @@ public class VEInstrMixDAO extends EgovAbstractDAO {
return tlist;
}
//교육실정통계- 월별 강사종류별,강사별 교육횟수(그래프 포함)
public List<VELctrDetailVO> selectEduPrfrmInfo_tngr_no4(VEInstrDetailVO vEInstrDetailVO) throws Exception {
List<VELctrDetailVO> tlist = (List<VELctrDetailVO>) list("VESttstMixDAO.selectEduPrfrmInfo_tngr_no4", vEInstrDetailVO);
@ -281,6 +282,5 @@ public class VEInstrMixDAO extends EgovAbstractDAO {
public List<VELctrDetailVO> selectEduPrfrmInfo_adult_no5_no6_no7(VEInstrDetailVO vEInstrDetailVO) throws Exception {
List<VELctrDetailVO> tlist = (List<VELctrDetailVO>) list("VESttstMixDAO.selectEduPrfrmInfo_adult_no5_no6_no7", vEInstrDetailVO);
return tlist;
}
}
}

View File

@ -713,13 +713,13 @@ public class EduAsgnmCnfrmMngAdultController {
// 헤더
String[] header = {
"교육희망일자", "시간", "온·오프라인", "지역", "기관(단체)명"
, "기관구분", "신청자명", "핸드폰", "전화번호", "강사명"
, "기관구분", "신청자명", "핸드폰", "전화번호", "강사명", "강사료"
};
// 컬럼명
String[] order = {
"EduHopeDt", "StrtTm", "EduSlctCd", "EduSlctAreaCd", "InsttNm"
, "InsttDivCd", "ChrgNm", "Clphone", "Phone", "InstrNm"
, "InsttDivCd", "ChrgNm", "Clphone", "Phone", "InstrNm", ""
};
// 호출

View File

@ -739,22 +739,26 @@ public class EduRsltMngAdultController {
// 너비
int[] width = {
4000, 4000, 4000, 6000, 6000
, 4000, 4000, 4000, 4000, 4000, 4000, 4000
// 4000, 4000, 4000, 6000, 6000
4000, 4000, 6000, 6000
// , 4000, 4000, 4000, 4000, 4000, 4000, 4000
, 4000, 4000, 4000
, 4000, 4000
};
// 헤더
String[] header = {
"교육일자", "차시", "학교구분", "지역", "학교(기관)명"
, "강사이름", "강사료", "편도거리", "도서벽지 수당", "거리 수당", "교통비", "식비"
"교육일자", "차시", "지역", "학교(기관)명"
, "강사이름", "강사료", "교통비"
,"숙박비", "강사료 합계"
};
// 컬럼명
String[] order = {
"EduHopeDt", "ChasiCnt", "ScholDivCd", "EduSlctAreaCd", "ScholInsttNm"
, "InstrNm", "InstrFeeOrd", "OnewayDstnc", "SpecialWorkAllow", "DistanceAllow" , "TrafficFee", "FoodExpenses"
// "EduHopeDt", "ChasiCnt", "ScholDivCd", "EduSlctAreaCd", "ScholInsttNm"
"EduHopeDt", "ChasiCnt", "EduSlctAreaCd", "ScholInsttNm"
// , "InstrNm", "InstrFeeOrd", "OnewayDstnc", "SpecialWorkAllow", "DistanceAllow" , "TrafficFee", "FoodExpenses"
, "InstrNm", "InstrFeeOrd", "TrafficFee"
, "AcmdtFee", "InstrFeeSum"
};

View File

@ -1164,6 +1164,7 @@ public class OprtnInstrAdultPrflContoller {
vEInstrExcelVO.setYNowMtwoStsfc( aa.getyNowMtwoStsfc());
vEInstrExcelVO.setYNowMthreeStsfc( aa.getyNowMthreeStsfc());
vEInstrExcelVO.setYNowMfourStsfc( aa.getyNowMfourStsfc());
vEInstrExcelVO.setMemo( aa.getMemo());
vEInstrExcelVOList.add(vEInstrExcelVO);
}
@ -1176,7 +1177,7 @@ public class OprtnInstrAdultPrflContoller {
int[] width = {
4000, 4000, 4000, 4000, 4000
, 4000, 4000, 4000, 4000, 4000
, 4000, 4000, 4000, 4000, 4000
, 4000, 4000, 4000, 4000, 4000, 4000
}; // 너비
@ -1185,14 +1186,14 @@ public class OprtnInstrAdultPrflContoller {
String[] header = {
"강사명", "위촉년도", "생년월일", "소속", "직함"
,"연락처", "이메일", "전문분야", "주소"
,"연락처", "이메일", "전문분야", "주소", "비공개메모"
, "교육횟수("+currentYear+")", "교육횟수("+(currentYear-1)+")", "교육횟수("+(currentYear-2)+")", "교육횟수("+(currentYear-3)+")", "교육횟수("+(currentYear-4)+")"
, "교육만족도("+currentYear+")", "교육만족도("+(currentYear-1)+")", "교육만족도("+(currentYear-2)+")", "교육만족도("+(currentYear-3)+")", "교육만족도("+(currentYear-4)+")"
};
String[] order = {
"InstrNm", "ApptYr", "DBirth", "Blng", "Pstn"
, "Phone", "Email", "PrfsnFld", "Addr"
, "Phone", "Email", "PrfsnFld", "Addr", "Memo"
, "YNowEduCnt", "YNowMoneEduCnt", "YNowMtwoEduCnt", "YNowMthreeEduCnt", "YNowMfourEduCnt"
, "YNowStsfc", "YNowMoneStsfc", "YNowMtwoStsfc", "YNowMthreeStsfc", "YNowMfourStsfc"
};

View File

@ -377,6 +377,129 @@ public class NewEduCnfrmMngTngrController {
return modelAndView;
}
/**
* 강사 배정(전체)NEW
* fncSpcfcInstrAsgnmInfo
*/
@RequestMapping("popup/instrMassAsgnm20240112Popup.do")
public String instrMassAsgnm20240112Popup(
ModelMap model
, HttpServletRequest request
) throws Exception {
//Step1.자동배정 차시 대상가져오기
//List<VEEduAplctVO> vEEduAplctVOList = null;
{
String s_searchStartDt = request.getParameter("searchStartDt");
String s_searchEndDt = request.getParameter("searchEndDt");
String s_searchScholNm = request.getParameter("searchScholNm");
/*
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
vEEduAplctVO.setInstrDiv("10"); //청소년
vEEduAplctVO.setLctrDivCd("10"); //청소년강의
vEEduAplctVO.setAprvlCd("60"); //확정코드
vEEduAplctVO.setSearchStartDt(s_searchStartDt);
vEEduAplctVO.setSearchEndDt(s_searchEndDt);
if(!"".equals(vEEduAplctVO.getSearchInstrNm())) {
vEEduAplctVO.setSearchInstrNm(egovCryptoUtil.encrypt(vEEduAplctVO.getSearchInstrNm()));
}
//모든 리스트를 페이징 없이 가져온다.
vEEduAplctVO.setPageIndex(0);
//강사가 할당안된 리스트만 가져온다.
vEEduAplctVO.setSearchAsgnmAprvlCd("90");
//Step1.자동배정 대상 차시가져오기
//강사할당이 없는 배정 대상 차시를 가져온다.
vEEduAplctVOList = vEEduMIXService.selectTngrRsltPagingList(vEEduAplctVO);
*/
//대상 리스트, 페이징 정보 전달
model.addAttribute("searchStartDt", s_searchStartDt);
model.addAttribute("searchEndDt", s_searchEndDt);
model.addAttribute("searchScholNm", s_searchScholNm);
}
return "oprtn/tngrVisitEdu/popup/instrMassAsgnm20240112Popup";
}
/**
* 강사 배정 조건 관리 팝업
* fncSpcfcInstrAsgnmInfo
*/
@RequestMapping("popup/instrMassAsgnm20240112PopupAjax.do")
public ModelAndView instrMassAsgnm20240112PopupAjax(ModelMap model
, HttpServletRequest request
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 처리====================================
//로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) {
modelAndView.addObject("result", "fail");
return modelAndView;
}
//로그인 처리====================================
//Step1.자동배정 차시 대상가져오기
List<VEEduAplctVO> vEEduAplctVOList = null;
{
String s_searchStartDt = request.getParameter("searchStartDt");
String s_searchEndDt = request.getParameter("searchEndDt");
String s_searchScholNm = request.getParameter("searchScholNm");
System.out.println("s_searchStartDt");
System.out.println(s_searchStartDt);
System.out.println(s_searchEndDt);
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
vEEduAplctVO.setInstrDiv("10"); //청소년
vEEduAplctVO.setLctrDivCd("10"); //청소년강의
vEEduAplctVO.setAprvlCd("60"); //확정코드
vEEduAplctVO.setSearchStartDt(s_searchStartDt);
vEEduAplctVO.setSearchEndDt(s_searchEndDt);
vEEduAplctVO.setSearchScholNm(s_searchScholNm);
if(!"".equals(vEEduAplctVO.getSearchInstrNm())) {
vEEduAplctVO.setSearchInstrNm(egovCryptoUtil.encrypt(vEEduAplctVO.getSearchInstrNm()));
}
//모든 리스트를 페이징 없이 가져온다.
vEEduAplctVO.setPageIndex(0);
//강사가 할당안된 리스트만 가져온다.
vEEduAplctVO.setSearchAsgnmAprvlCd("90");
//Step1.자동배정 대상 차시가져오기
//강사할당이 없는 배정 대상 차시를 가져온다.
if (!"".equals(s_searchStartDt) && !"".equals(s_searchEndDt)) {
vEEduAplctVOList = vEEduMIXService.selectTngrRsltPagingList(vEEduAplctVO);
}
//대상 리스트, 페이징 정보 전달
modelAndView.addObject("vEEduAplctVOList", vEEduAplctVOList);
}
modelAndView.addObject("result", "success");
return modelAndView;
}
/**
* 강사 월별 시수계산 관리 팝업
* fncSpcfcInstrAsgnmInfo

View File

@ -5759,19 +5759,8 @@
AND A.SBMT_YN = 'Y'
AND A.LCTR_DIV_CD = #lctrDivCd#
<isNotEmpty property="aprvlCd">
AND A.APRVL_CD=#aprvlCd#
</isNotEmpty>
<isNotEmpty property="searchCpyAprvlCd">
AND A.APRVL_CD=#searchCpyAprvlCd#
</isNotEmpty>
<isEmpty property="searchCpyAprvlCd">
<isNotEmpty property="searchClass">
AND A.APRVL_CD >= 20
</isNotEmpty>
</isEmpty>
<isNotEmpty property="searchYear">
AND TO_CHAR(A.SBMT_PNTTM,'YYYY') = #searchYear#
</isNotEmpty>
AND A.APRVL_CD=#aprvlCd#
</isNotEmpty>
ORDER BY A.EDU_APLCT_ORD DESC
</select>

View File

@ -1092,6 +1092,7 @@
, vid.PHONE as phone /*연락처*/
, vid.EMAIL as email /*이메일*/
, vid.PRFSN_FLD as prfsnFld /*분야*/
, vid.MEMO as memo /*비공개 메모*/
, CASE
WHEN vid.POST IS NOT NULL THEN '(' || vid.POST || ')'
ELSE ''

View File

@ -463,6 +463,11 @@ function jstreeRefresh() {
//코드 정보 저장. 등록/수정
function fn_save_menuInfo(menuNo) {
var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?.]/gi;
if(special_pattern.test(document.menuForm.menuNo.value) == true){
alert("코드 코드는 특수문자를 쓸수 없습니다.") ;
return;
}
if(menuNo == null || "undefined"== menuNo){
alert("저장 하려는 코드를 먼저 코드트리에서 생성해 주세요."); return ;

View File

@ -34,6 +34,7 @@
background-color: #ededed;
}
</style>
<script src="<c:url value='/js/echarts.min.js' />"></script>
<script type="text/javascript">
$(document).ready(function(){
@ -321,7 +322,108 @@
</div>
<!-- //list -->
<!-- 월별 횟수/교육인원 차트 -->
<!-- 횟수합계 - dataNOT / 인원합계 = dataNOP -->
<c:forEach var="list" items="${list_no1}" varStatus="status">
<c:if test="${status.count eq '3'}">
<script type="text/javascript">
var dataNOT = ['${list.mnt01}', '${list.mnt02}', '${list.mnt03}', '${list.mnt04}', '${list.mnt05}', '${list.mnt06}', '${list.mnt07}', '${list.mnt08}', '${list.mnt09}', '${list.mnt10}', '${list.mnt11}', '${list.mnt12}'];
var dataNOTSum = 0;
for(var i = 0; i<12; i++){
dataNOTSum += parseInt(dataNOT[i]);
}
if(isNaN(dataNOTSum)){
dataNOTSum = 0;
}
</script>
</c:if>
<c:if test="${status.count eq '6'}">
<script type="text/javascript">
var dataNOP = ['${list.mnt01}', '${list.mnt02}', '${list.mnt03}', '${list.mnt04}', '${list.mnt05}', '${list.mnt06}', '${list.mnt07}', '${list.mnt08}', '${list.mnt09}', '${list.mnt10}', '${list.mnt11}', '${list.mnt12}'];
var dataNOPSum = 0;
for(var x = 0; x<12; x++){
dataNOPSum += parseInt(dataNOP[x]);
}
if(isNaN(dataNOPSum)){
dataNOPSum = 0;
}
</script>
</c:if>
</c:forEach>
<!-- 횟수 차트 -->
<div id="chartContainer" style="display:flex; width:100%;">
<div id="chartNumOfTime" style="float:left; width: 50%; height:600px;">
</div>
<script type="text/javascript">
<!-- 차트 선언 -->
var chartNOT = echarts.init(document.getElementById('chartNumOfTime'))
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'
}
},
],
}
<!-- 차트 옵션 적용 -->
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);
</script>
</div>
<!-- /인원 차트 -->
<!-- /월별 횟수/교육인원 차트 -->
<!-- list util -->

View File

@ -32,7 +32,6 @@
<head>
<link href="/offedu/visitEdu/adm/publish/css/select2.min.css" rel="stylesheet"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.10.2.min.js" /></script>
<script src="${pageContext.request.contextPath}/js/ve/sendSmsEmailUtil.js"></script>
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/js/select2.min.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
@ -266,53 +265,10 @@
$(".memoTr").fadeIn();
}
}
function chkAll(thisObj){
$("input[name=chk]").prop("checked" , $(thisObj).is(":checked"));
}
function openSmsPopup(){
var chkLen = $(listForm).find("input[name=chk]:checked").length;
if(chkLen == 0){
alert("선택된 항목이 없습니다.");
return;
}
document.popForm.action = "<c:url value='/oprtn/cndtnSspnIdtmt/popup/trgtSendSmsPopup.do'/>";
window.open("#", "_trgtSendSmsPopup", "scrollbars = no, top=100px, left=100px, height=550px, width=750px");
document.popForm.target = "_trgtSendSmsPopup";
document.popForm.submit();
}
function chkSendSms(cn){
var chkLen = $(listForm).find("input[name=chk]:checked").length;
if(chkLen == 0){
alert("선택된 항목이 없습니다.");
return;
}
$('input:checkbox[name="chk"]:checked').each(function() {
sendSms(
$(this).val(),
cn,
$(this).data('sspnidtmttrgtord'),
$(this).data('userid'),
"N"
);
});
alert("발송되었습니다.");
}
</script>
<title>교육과정관리</title>
</head>
<body>
<form id="popForm" name="popForm" method="post">
<input type="hidden" name="sspnIdtmtTrgtOrd" value=""/>
<input type="hidden" name="targetId" value=""/>
<input type="hidden" name="type" value=""/>
<input type="hidden" name="phone" value=""/>
</form>
<form id="detailForm" name="detailForm" method="post" >
<input type="hidden" id="sspnIdtmtTrgtOrd" name="sspnIdtmtTrgtOrd" value="" />
</form>
@ -487,7 +443,6 @@
<div class="tb_type01">
<table>
<colgroup>
<col style="width: 1px;">
<col style="width: 10%">
<col style="width: 10%">
<col style="width: 2px">
@ -502,7 +457,6 @@
</colgroup>
<thead>
<tr>
<th><input type="checkbox" name="checkAll" id="checkAll" onclick="chkAll(this);" /><label for="checkAll"></label></th>
<th>의뢰일</th>
<th>사건번호</th>
<th>관할청</th>
@ -532,11 +486,6 @@
<%-- <td onclick="fncGoDetail('<c:out value="${list.sspnIdtmtTrgtOrd}"/>');" style="cursor:pointer;"> --%>
<%-- <c:out value='${list.prcsNm}'/> --%>
<!-- </td> -->
<td onclick="event.cancelBubble=true">
<input name="chk" class="${list.atchFileId}" value="${list.clphone}"
data-userid="<c:out value='${list.userId}' />" data-sspnidtmttrgtord="<c:out value='${list.sspnIdtmtTrgtOrd}' />"
title="Check" type="checkbox"/>
</td>
<td><!-- 의뢰일 -->
<c:set var="reqPnttm" value="${fn:substring(list.reqPnttm, 0, 10)}" />
@ -584,7 +533,7 @@
</tr>
<c:if test="${!empty list.rmrks }">
<tr class="memoTr" style="display:none;">
<td colspan="12" style="text-align:left; background-color:#131de14a;">
<td colspan="11" style="text-align:left; background-color:#131de14a;">
<c:out value="${list.rmrks}" />
</td>
@ -605,7 +554,6 @@
</div>
<div class="btn_wrap btn_layout01">
<div class="btn_left">
<button type="button" class="btn_type06" onclick="openSmsPopup();">문자발송</button>
</div>
<div class="btn_center">
</div>

View File

@ -144,7 +144,7 @@
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEPrcsDetailVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEPrcsDetailVO.searchSortOrd}" />" />
<input type="hidden" name="eduAplctOrd" value="" />
<input type="hidden" name="searchClass" value="Y" /> <!-- 신청목록과 운영목록 엑셀 다운로드 구분을 위한 값. 운영 목록은 상태코드가 20 이상만 조회 -->
<input type="hidden" name="aprvlCd" value="60" />
<div class="cont_wrap">
<div class="box">

View File

@ -534,7 +534,8 @@
<c:out value="${list.fld}"/>
</td>
<td>
<c:out value="${list.lctrYn}"/>
<ve:code codeId="VEA018" code="${list.lctrYn}"/>
<%-- <ve:code codeId="VEA003" code="${list.aplctStateCd}"/> --%>
</td>
<td>
<c:out value="${list.prvsQs}"/>

View File

@ -28,11 +28,12 @@
%>
<html lang="ko">
<head>
<script src="<c:url value='/js/echarts.min.js' />"></script>
<script type="text/javascript">
function linkPage(){
var listForm = document.listForm ;
listForm.year.value = $('#year').val();
listForm.action = "<c:url value='/ve/stts/sttsEduCnt.do'/>";
listForm.action = "<c:url value='/oprtn/stts/sttsEduCnt.do'/>";
listForm.submit();
}
</script>
@ -151,6 +152,129 @@
</div>
<!-- //list_상세 -->
<!-- 월별 횟수/교육인원 차트 -->
<!-- 횟수합계 - dataNOT / 인원합계 = dataNOP -->
<script type="text/javascript">
var dataNOT = [
'${eduCntVO.jan}'
, '${eduCntVO.feb}'
, '${eduCntVO.mar}'
, '${eduCntVO.apr}'
, '${eduCntVO.may}'
, '${eduCntVO.jun}'
, '${eduCntVO.jul}'
, '${eduCntVO.aug}'
, '${eduCntVO.sep}'
, '${eduCntVO.oct}'
, '${eduCntVO.nov}'
, '${eduCntVO.decm}'
, '${eduCntVO.tot}' ];
var dataNOTSum = 0;
for(var i = 0; i<12; i++){
dataNOTSum += parseInt(dataNOT[i]);
}
if(isNaN(dataNOTSum)){
dataNOTSum = 0;
}
var dataNOP = [
'${eduPrsnlCntVO.jan}'
, '${eduPrsnlCntVO.feb}'
, '${eduPrsnlCntVO.mar}'
, '${eduPrsnlCntVO.apr}'
, '${eduPrsnlCntVO.may}'
, '${eduPrsnlCntVO.jun}'
, '${eduPrsnlCntVO.jul}'
, '${eduPrsnlCntVO.aug}'
, '${eduPrsnlCntVO.sep}'
, '${eduPrsnlCntVO.oct}'
, '${eduPrsnlCntVO.nov}'
, '${eduPrsnlCntVO.decm}'
, '${eduPrsnlCntVO.tot}'
];
var dataNOPSum = 0;
for(var x = 0; x<12; x++){
dataNOPSum += parseInt(dataNOP[x]);
}
if(isNaN(dataNOPSum)){
dataNOPSum = 0;
}
</script>
<!-- 횟수 차트 -->
<div id="chartContainer" style="display:flex; width:100%;">
<div id="chartNumOfTime" style="float:left; width: 50%; height:600px;">
</div>
<script type="text/javascript">
<!-- 차트 선언 -->
var chartNOT = echarts.init(document.getElementById('chartNumOfTime'));
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'
}
},
],
}
<!-- 차트 옵션 적용 -->
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);
</script>
</div>
<!-- /인원 차트 -->
<!-- /월별 횟수/교육인원 차트 -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>

View File

@ -376,8 +376,8 @@
//"searchStartDt"
varEduHopeDtStrt = $('#searchStartDt').val();
varEduHopeDtEnd = $('#searchEndDt').val();
varEduHopeDtStrt = $('#listForm #searchStartDt').val();
varEduHopeDtEnd = $('#listForm #searchEndDt').val();
//alert(varEduHopeDtStrt);
//alert(varEduHopeDtEnd);
@ -428,6 +428,36 @@
});
}
//강사배정(전체)-팝업을 통한 수량 카운팅 기능 변환용
function fncInstrMassAsgnm20240112Popup() {
varEduHopeDtStrt = $('#listForm #searchStartDt').val();
varEduHopeDtEnd = $('#listForm #searchEndDt').val();
varSearchScholNm = $('#listForm #searchScholNm').val();
if (varEduHopeDtStrt=='' || varEduHopeDtEnd==''){
alert("대상의 교육일자 기간은 반드시 선택해야 합니다.");
return ;
}
var form = document.pop2Form;
form.searchStartDt.value = varEduHopeDtStrt;
form.searchEndDt.value = varEduHopeDtEnd;
form.searchScholNm.value = varSearchScholNm;
form.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/instrMassAsgnm20240112Popup.do'/>";
window.open("#", "_instrMassAsgnm20240112Pop", "scrollbars = no, top=100px, left=100px, height=350px, width=800px");
form.target = "_instrMassAsgnm20240112Pop";
form.submit();
}
//강사배정(전체)
function fncInstrMassAsgnm20231109(){ //교육일자를 확인 해서 있는 경우만 처리한다.
var varEduHopeDtStrt = '';
@ -437,8 +467,8 @@
//"searchStartDt"
varEduHopeDtStrt = $('#searchStartDt').val();
varEduHopeDtEnd = $('#searchEndDt').val();
varEduHopeDtStrt = $('#listForm #searchStartDt').val();
varEduHopeDtEnd = $('#listForm #searchEndDt').val();
//alert(varEduHopeDtStrt);
//alert(varEduHopeDtEnd);
@ -561,6 +591,7 @@
});
}
//강사배정(개별)
function fncInstrMassAsgnmEA20231115(){ //개별 선택한 경우만 처리한다.
@ -881,6 +912,11 @@
<title>신청관리</title>
</head>
<body>
<form:form id="pop2Form" name="pop2Form" method="post" onsubmit="return false;">
<input type="hidden" name="searchStartDt" id="searchStartDt" value=""/>
<input type="hidden" name="searchEndDt" id="searchEndDt" value=""/>
<input type="hidden" name="searchScholNm" id="searchScholNm" value=""/>
</form:form>
<form:form id="popForm" name="popForm" method="post" onsubmit="return false;">
<input type="hidden" name="pageIndex" value="1"/>
<input type="hidden" name="eduAplctOrd" value="" />
@ -978,7 +1014,9 @@
</div>
<div class="right_box">
<!-- <button type="button" class="btn_type06" onclick="fncInstrMassAsgnm(); return false;">강사배정(전체)X</button>-->
<button type="button" class="btn_type06" onclick="fncInstrMassAsgnm20231109(); return false;">강사배정(전체)</button>
<button type="button" class="btn_type06" onclick="fncInstrMassAsgnm20240112Popup(); return false;">강사배정(전체)</button>
<!-- <button type="button" class="btn_type06" onclick="fncInstrMassAsgnm20231109(); return false;">강사배정(전체)</button> -->
<!-- <button type="button" class="btn_type06" onclick="fncInstrMassAsgnmEA(); return false;">강사배정(개별)X</button> -->
<button type="button" class="btn_type06" onclick="fncInstrMassAsgnmEA20231115(); return false;">강사배정(개별)</button>
<button type="button" style="width:200px;" class="btn_type06" onclick="fncSpcfcInstrAsgnmInfo(); return false;">특정강사배정</button>

View File

@ -34,10 +34,10 @@
background-color: #ededed;
}
</style>
<script src="<c:url value='/js/echarts.min.js' />"></script>
<script type="text/javascript">
$(document).ready(function(){
});
function press(event) {
@ -316,6 +316,108 @@
<!-- //list -->
<!-- 월별 횟수/교육인원 차트 -->
<!-- 횟수합계 - dataNOT / 인원합계 = dataNOP -->
<c:forEach var="list" items="${list_no1}" varStatus="status">
<c:if test="${status.count eq '3'}">
<script type="text/javascript">
var dataNOT = ['${list.mnt01}', '${list.mnt02}', '${list.mnt03}', '${list.mnt04}', '${list.mnt05}', '${list.mnt06}', '${list.mnt07}', '${list.mnt08}', '${list.mnt09}', '${list.mnt10}', '${list.mnt11}', '${list.mnt12}'];
var dataNOTSum = 0;
for(var i = 0; i<12; i++){
dataNOTSum += parseInt(dataNOT[i]);
}
if(isNaN(dataNOTSum)){
dataNOTSum = 0;
}
</script>
</c:if>
<c:if test="${status.count eq '6'}">
<script type="text/javascript">
var dataNOP = ['${list.mnt01}', '${list.mnt02}', '${list.mnt03}', '${list.mnt04}', '${list.mnt05}', '${list.mnt06}', '${list.mnt07}', '${list.mnt08}', '${list.mnt09}', '${list.mnt10}', '${list.mnt11}', '${list.mnt12}'];
var dataNOPSum = 0;
for(var x = 0; x<12; x++){
dataNOPSum += parseInt(dataNOP[x]);
}
if(isNaN(dataNOPSum)){
dataNOPSum = 0;
}
</script>
</c:if>
</c:forEach>
<!-- 횟수 차트 -->
<div id="chartContainer" style="display:flex; width:100%;">
<div id="chartNumOfTime" style="float:left; width: 50%; height:600px;">
</div>
<script type="text/javascript">
<!-- 차트 선언 -->
var chartNOT = echarts.init(document.getElementById('chartNumOfTime'));
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'
}
},
],
}
//차트 옵션 적용
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);
</script>
</div>
<!-- /인원 차트 -->
<!-- /월별 횟수/교육인원 차트 -->
<!-- list util -->

View File

@ -0,0 +1,362 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%
/**
* @Class Name : instrMassAsgnm20240112Popup.jsp
* @Description : 강사배정(전체) 수량카운트용 팝업
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.08.09 김봉호 최초 생성
* @author 안주영
* @since 2022.1.8
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<%-- <script type="text/javascript" src="<c:url value='/js/ve/tmapJS.js'/>"></script> --%>
<script type="text/javascript">
</script>
<title>강사배치 팝업</title>
<script type="text/javaScript" language="javascript">
$(document).ready(function() {
// ID를 alpreah_input로 가지는 곳에서 키를 누를 경우
$("#instrNm").keydown(function(key) {
if (key.keyCode == 13) {
linkPage(1);
return false;
}
});
});
function press(event) {
//alert(event.keyCode);
if (event.keyCode==13) {
linkPage(1);
}
return;
}
function fncPopClose(){
self.close();
}
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/spcfcInstrAsgnmPopup.do'/>";
listForm.submit();
}
function reloadLinkPage(){
$("#btnDstnc").show();
/*
var listForm = document.listForm ;
//listForm.pageIndex.value = pageNo ;
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/spcfcInstrAsgnmPopup.do'/>";
listForm.submit();
*/
}
function fncInstrAsgnmCndtnMng(p_yrMnt) {
$("#yrMnt").val(p_yrMnt);
var data1 = new FormData(document.getElementById("createForm"));
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/instrMntTmMngPopupAjax.do",
data: data1,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == 'success'){
alert("저장 되었습니다.");
//opener.location.reload();
//fncPopClose();
location.reload();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
function fncInstrAsgnmCndtnInitMng(p_yrMnt) {
$("#yrMnt").val(p_yrMnt);
var data1 = new FormData(document.getElementById("createForm"));
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/instrMntTmInitMngPopupAjax.do",
data: data1,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == 'success'){
alert("저장 되었습니다.");
//opener.location.reload();
//fncPopClose();
location.reload();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
//동일 학교 여부 체크
function fncInstrAsgnm_bef(id, p_rank) {
$("#userId").val(id);
$("#rmrks").val("배정기준"+p_rank+"순위");
var data1 = new FormData(document.getElementById("createForm"));
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/instrAsgnmAjax_bef.do",
data: data1,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.message == ''){
if(confirm("강사를 선택 하시겠습니까?")){
fncInstrAsgnm(id, p_rank)
}
}else{
if(confirm("동일한 일자에 다른 학교 강의가 있습니다.\n("+returnData.message+")\n강사를 선택 하시겠습니까?")){
fncInstrAsgnm(id, p_rank);
}
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
function reloadPage(){
location.reload();
}
function fncGoListReset(){
$("#rndsOrd").val('');
linkPage(1);
}
function fncGoList(){
linkPage(1);
}
function linkPage(pageNo){
var listForm = document.createForm ;
//listForm.searchCondition.value = $('#searchCondition').val();
//listForm.searchKeyword.value = $('#searchKeyword').val();
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/instrMntTmMngPopup.do'/>";
listForm.submit();
}
function fncInstrMassAsgnmEA20231115_Bef(){
$('#ingInfoBtn').html('');
fncInstrMassAsgnmEA20231115(v_returnDatavEEduAplctVOList[v_asgnmCnt].eduAplctOrd+'@'+v_returnDatavEEduAplctVOList[v_asgnmCnt].eduChasiOrd);
}
//강사배정(개별)
function fncInstrMassAsgnmEA20231115(p_varEduAplctOrd){ //개별 선택한 경우만 처리한다.
//alert(p_varEduAplctOrd);
//return;
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/web/ve/comm/instrMassAsgnmEAAjax20231115.do",
data: {
"eduAplctOrd":p_varEduAplctOrd,
//"strtOprtnDt" : varEduHopeDtStrt ,
//"endOprtnDt" : varEduHopeDtEnd ,
//"instrDiv" : "10" ,
},
dataType:'json',
success:function(returnData){
if(returnData.result=="success"){
//alert("상태가 변경 되었습니다.");
//linkPage(pageIndex);
v_cnt = v_cnt + returnData.cnt*1;
v_asgnmCnt = v_asgnmCnt + 1;
if (v_asgnmCnt*1>=v_returnDatavEEduAplctVOList.length*1){
alert("모든 내용을 처리했습니다.");
$('#ingInfo').text("자동 배정 완료..."+v_asgnmCnt+'/'+v_returnDatavEEduAplctVOList.length);
$('#ingInfoBtn').html("<p>실제 배정된 수량 : "+v_cnt+"</p>");
top.window.opener.location.reload();
}else{
$('#ingInfo').text("자동 배정 진행 중..."+v_asgnmCnt+'/'+v_returnDatavEEduAplctVOList.length);
fncInstrMassAsgnmEA20231115(v_returnDatavEEduAplctVOList[v_asgnmCnt].eduAplctOrd+'@'+v_returnDatavEEduAplctVOList[v_asgnmCnt].eduChasiOrd);
}
}else{
alert("강사 자동 배정 중에 오류가 발생 되었습니다.-in");
//linkPage(pageIndex);
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
//배정 대상 데이터 가져오기
function fncGetAsgnmData(p_searchStartDt, p_searchEndDt, p_searchScholNm){ //개별 선택한 경우만 처리한다.
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/instrMassAsgnm20240112PopupAjax.do",
data: {
"searchStartDt" :p_searchStartDt,
"searchEndDt" :p_searchEndDt,
"searchScholNm" :p_searchScholNm,
//"strtOprtnDt" : varEduHopeDtStrt ,
//"endOprtnDt" : varEduHopeDtEnd ,
//"instrDiv" : "10" ,
},
dataType:'json',
success:function(returnData){
if(returnData.result=="success"){
//alert(returnData.vEEduAplctVOList.length);
//alert("상태가 변경 되었습니다.");
v_returnDatavEEduAplctVOList = returnData.vEEduAplctVOList;
$('#ingInfo').text("배정 대상 확인..."+v_asgnmCnt+'/'+v_returnDatavEEduAplctVOList.length);
$('#ingInfoBtn').html('<button type="button" class="btn_type06" onclick="fncInstrMassAsgnmEA20231115_Bef(); return false;">자동배정시작</button>');
//$('#ingInfoBtn').html('<button type="button" class="btn_type06" onclick="fncInstrMassAsgnmEA20231115(\''+v_returnDatavEEduAplctVOList[0].eduAplctOrd+'@'+v_returnDatavEEduAplctVOList[0].eduChasiOrd+'\'); return false;">자동배정시작</button>');
//"배정 대상 확인..."+v_asgnmCnt+'/'+v_returnDatavEEduAplctVOList.length);
//fncInstrMassAsgnmEA20231115(v_returnDatavEEduAplctVOList[0].eduAplctOrd+'@'+v_returnDatavEEduAplctVOList[0].eduChasiOrd);
}else{
alert("강사 자동 배정 중에 오류가 발생 되었습니다.");
//linkPage(pageIndex);
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
var v_asgnmCnt = 0; //현재 처리 배열번호
var v_cnt = 0; //실제 처리된 수량
var v_returnDatavEEduAplctVOList; //처리할 전체 배열 정보
fncGetAsgnmData('${searchStartDt }','${searchEndDt }','${searchScholNm }');
</script>
</head>
<body>
<div class="area_popup supm_popup">
<div class="cont_popup">
<form:form id="createForm" name="createForm" method="post" commandName="vEInstrAsgnmVO" onsubmit="return false;">
<input type="hidden" name="eduAplctOrd" value="<c:out value="${vEEduAplctVO.eduAplctOrd}" />" />
<input type="hidden" name="eduChasiOrd" value="<c:out value="${vEEduAplctVO.eduChasiOrd}" />" />
<input type="hidden" name="instrDiv" id="instrDiv" value="<c:out value="${vEEduAplctVO.instrDiv}" />">
<input type="hidden" name="userId" id="userId" />
<input type="hidden" name="rmrks" id="rmrks" />
<input type="hidden" name="asgnmAprvlCd" value="${vEEduAplctVO.asgnmAprvlCd}"/>
<input type="hidden" name="yrMnt" id="yrMnt" />
<div class="area_popup">
<div class="cont_popup">
<div class="pop_tb_tit01">
<p>강사배정(전체)</p>
</div>
<!-- list_top -->
<div class="list_top">
<div class="list_top_1">
<div class="util_left" style="width: 300px;">
<p id="ingInfo">
배정 대상 확인 중...
</p>
</div>
<div class="util_right" id="ingInfoBtn">
</div>
</div>
</div>
<!--
<div class="btn_wrap_pop btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btn_type06" onclick="self.close();">저장</button>
<button type="button" class="btn_type04" onclick="self.close();">닫기</button>
</div>
<div class="btn_right">
</div>
</div>
-->
</div>
</div>
</form:form>
</div>
</div>
<!-- 강사 거리계산용 끝 -->
</body>
</html>

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)">
@ -200,8 +200,7 @@
</thead>
<tbody>
<c:forEach var="list" items="${tngrList}" varStatus="status" begin="0" end="2">
<tr onclick="goTngrDetail('<c:out value="${list.eduAplctOrd}"/>', '<c:out value="${list.eduChasiOrd}"/>');"
tabindex="0" onkeypress="if(event.keyCode == 13){goTngrDetail('<c:out value="${list.eduAplctOrd}"/>', '<c:out value="${list.eduChasiOrd}"/>');}">
<tr onclick="goTngrDetail('<c:out value="${list.eduAplctOrd}"/>', '<c:out value="${list.eduChasiOrd}"/>');">
<!-- <tr > -->
<td>${list.eduHopeDt}</td>
<td><kc:code codeId="VE0007" code="${list.eduSlctCd}"/></td>
@ -283,8 +282,7 @@
</tr>
</thead>
<c:forEach var="list" items="${adultList}" varStatus="status" begin="0" end="2">
<tr onclick="goAdultDetail('<c:out value="${list.eduAplctOrd}"/>')"
tabindex="0" onkeypress="if(event.keyCode == 13){goAdultDetail('<c:out value="${list.eduAplctOrd}"/>')}">
<tr onclick="goAdultDetail('<c:out value="${list.eduAplctOrd}"/>')">
<!-- <tr > -->
<td>${list.eduHopeDt}</td>
<td><kc:code codeId="VE0007" code="${list.eduSlctCd}"/></td>
@ -369,7 +367,7 @@
<c:forEach var="list" items="${exprnList}" varStatus="status" begin="0" end="2">
<tr onclick="fncGoDetail('${list.eduAplctOrd}')">
<td>
<a href="javascript:fncGoDetail('${list.eduAplctOrd}');">
<a href="javascript:fncGoDetail('${list.eduAplctOrd}');" >
<fmt:parseDate value="${list.frstRegistPnttm}" var="year" pattern="yyyy.MM.dd"/>
<fmt:formatDate value="${year}" pattern="yyyy년"/>
</a>
@ -409,7 +407,7 @@
</thead>
<tbody>
<c:forEach var="list" items="${fndtnList}" varStatus="status" begin="0" end="2">
<tr onclick="fncFndtnGoDetail('${list.prcsAplctPrdOrd}')" tabindex="0" onkeypress="if(event.keyCode == 13){fncFndtnGoDetail('${list.prcsAplctPrdOrd}')}">
<tr onclick="fncFndtnGoDetail('${list.prcsAplctPrdOrd}')">
<td>
<c:out value="${list.prcsNm}"/>
</td>
@ -462,10 +460,10 @@
<tbody>
<c:forEach var="list" items="${qnaList}" varStatus="status" begin="0" end="2">
<tr>
<td onclick="qnaGoDetail('<c:out value="${list.prcsAplctPrdQnaOrd }" />');" style="cursor:pointer;" tabindex="0" onkeypress="if(event.keyCode == 13){qnaGoDetail('<c:out value="${list.prcsAplctPrdQnaOrd }" />');}">
<td onclick="qnaGoDetail('<c:out value="${list.prcsAplctPrdQnaOrd }" />');" style="cursor:pointer;">
<ve:code codeId="VE0011" code="${list.lctrDivCd }" />
</td>
<td onclick="qnaGoDetail('<c:out value="${list.prcsAplctPrdQnaOrd }" />');" style="cursor:pointer;" tabindex="0" onkeypress="if(event.keyCode == 13){qnaGoDetail('<c:out value="${list.prcsAplctPrdQnaOrd }" />');}">
<td onclick="qnaGoDetail('<c:out value="${list.prcsAplctPrdQnaOrd }" />');" style="cursor:pointer;">
<c:out value="${list.qnaCn }" />
</td>
<td>

View File

@ -94,10 +94,10 @@ function fncGoDetail(p_pk){
<tbody>
<c:forEach var="list" items="${list}">
<tr>
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdQnaOrd }" />');" style="cursor:pointer;" tabindex="0" onkeypress="if(event.keyCode == 13){fncGoDetail('<c:out value="${list.prcsAplctPrdQnaOrd }" />');}">
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdQnaOrd }" />');" style="cursor:pointer;">
<ve:code codeId="VE0011" code="${list.lctrDivCd }" />
</td>
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdQnaOrd }" />');" style="cursor:pointer;" tabindex="0" onkeypress="if(event.keyCode == 13){fncGoDetail('<c:out value="${list.prcsAplctPrdQnaOrd }" />');}">
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdQnaOrd }" />');" style="cursor:pointer;">
<c:out value="${list.qnaCn }" />
</td>
<td>

View File

@ -1331,8 +1331,10 @@
<!-- <th scope="col">대상</th> -->
<th scope="col">배정강사</th>
<!-- <th scope="col">인원</th> -->
<th scope="col">만족도조사(학생)</th>
<th scope="col">만족도조사(신청인)</th>
<!-- <th scope="col">만족도조사(학생)</th> -->
<!-- <th scope="col">만족도조사(신청인)</th> -->
<th scope="col">설문조사(학생)</th>
<th scope="col">설문조사(신청인)</th>
</tr>
</thead>
<tbody>

View File

@ -13,13 +13,6 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javaScript" language="javascript">
$(document).ready(function(){
var cnt = ${cnt}
if(cnt == 0){
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

@ -66,7 +66,7 @@
<th scope="row">
<p>교육일정</p>
</th>
<td>(신청) 2월말 ~ 3월초, (운영) 3월 ~ 11월</td>
<td>연중</td>
</tr>
<tr>
<th scope="row">

View File

@ -128,7 +128,7 @@
</div>
<div class="tb_type01 tb_write">
<table>
<caption>운영신청 상세 : 신청일, 처리상태 등의 정보제공</caption>
<caption>운영신청 상세 (th 명)을 보여주는 표</caption>
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
@ -209,7 +209,6 @@
</div>
<div class="tb_type01 tb_write">
<table>
<caption>신청자 정보 : 학교(기관)명, 학교지역특성, 교사명, 성별, 휴대폰, 전화, 이메일, 주소, 담당교과, 생년월일, 체험교실운영여부, 신청경로 등의 정보제공</caption>
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">

View File

@ -105,7 +105,7 @@
</div>
</div>
<c:out value="${fn:replace(fn:replace(fn:replace(detailVO.anncmCn, crlt , '<'), crgt , '>'), crlf , '<br/>')}" escapeXml="false"/>
<c:out value="${fn:replace(fn:replace(fn:replace(info.anncmCn, crlt , '<'), crgt , '>'), crlf , '<br/>')}" escapeXml="false"/>
<div class="btn_wrap btn_layout01">
<div class="btn_center" style="width: 100%;">

View File

@ -72,9 +72,11 @@
<li><span class="number">2.</span>신청 시 공문양식을 다운로드 받아서 반드시 학교장 직인된 공문을 첨부해야 합니다.</li>
<li><span class="number">3.</span>신청 시 반드시 본인 계정으로 신청해야 하며, 타인 계정으로 신청 시 신청 취소 처리됩니다.</li>
<li><span class="number">4.</span>체험교실 신규 운영 교사는 체험교실 운영 교사 연수(1일, 8시간)를 반드시 이수해야 하며, 체험교실 운영 기간내에 저작권 e-배움터에서 제공하는 온라인 강좌를 의무 이수해야 합니다.</li>
<li><span class="number">5.</span>신청교사가 교내에서 확인 가능한 메일 계정을 기재해 주시기 바랍니다.</li>
<li><span class="number">6.</span>선정 후 취소(신규 운영 교사 사전 연수 불참 등) 및 운영 포기교실은 차년도 참여를 제한합니다.<br>(해당 내용 학교 공문 발송 예정)</li>
<li><span class="number">7.</span>신청 시작시간과 마감시간에 유의하시기 바라며, 문의사항은 위원회 업무시간(09:00~18:00) 중<br>체험교실 담당자(055-792-0234)에게 연락주시기 바랍니다.</li>
<li><span class="number">5.</span>신청기간 내 위원회 업무시간(09:00 ~ 18:00)동안 이용이 가능합니다.</li>
<!-- <li><span class="number">6.</span>신청기간 내 학교급별(초등, 중등, 고등) 게시판을 반드시 확인 후 신청해 주시기 바랍니다.</li> -->
<li><span class="number">6.</span>신청교사가 교내에서 확인 가능한 메일 계정을 기재해 주시기 바랍니다.</li>
<li><span class="number">7.</span>신청 중 문의사항은 위원회 체험교실 담당자에게 연락을 주시기 바랍니다(055-792-0234)</li>
<li><span class="number">8.</span>선정 후 취소(신규 운영 교사 사전 연수 불참 등) 및 운영 포기교실은 차년도 참여를 제한합니다.<br>(해당 내용 학교 공문 발송 예정)</li>
</ol>
</div>
</c:if>

View File

@ -445,7 +445,7 @@ $(document).ready(function(){
<td>
<kc:code codeId="VEA001" code="${list.prcsDiv}"/>
</td>
<td class="prcsNm_popNm" onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;" tabindex="0" onkeypress="if(event.keyCode == 13){fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');}">
<td class="prcsNm_popNm" onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;">
<c:out value="${list.prcsNm}"/>(<c:out value="${list.prcsAplctPrdOrd}"/>)
</td>
<td>

View File

@ -164,7 +164,7 @@ $(document).ready(function(){
</div>
<div class="popup_cont">
<div class="cont_body">
<div class="pop_tb_type01" style="overflow:visible; margin-bottom: 15px;">
<div class="pop_tb_type01" style="overflow:visible;">
<table>
<caption>신청인정보 : 성명, 생년월일, 핸드폰, 이메일, 소속기업, 분야, 저작권 교육 수강 여부, 교육관련 사전질의 등의 정보입력</caption>
<colgroup>
@ -179,7 +179,6 @@ $(document).ready(function(){
<p>성명</p>
</th>
<td>
<label for="chrgNm" class="label">성명 입력</label>
<input type="text" class="twoRow" name="chrgNm" id="chrgNm"/>
</td>
<th scope="row">
@ -196,14 +195,12 @@ $(document).ready(function(){
<p>핸드폰</p>
</th>
<td>
<label for="phone" class="label">핸드폰 번호 입력</label>
<input type="text" class="twoRow" name="phone" id="phone"/>
</td>
<th scope="row">
<p>이메일</p>
</th>
<td>
<label for="email" class="label">이메일 입력</label>
<input type="text" class="twoRow" name="email" id="email"/>
</td>
</tr>
@ -212,7 +209,6 @@ $(document).ready(function(){
<p>소속기업</p>
</th>
<td>
<label for="insttNm" class="label">소속기업 입력</label>
<input type="text" class="twoRow" name="insttNm" id="insttNm"/>
</td>
</tr>
@ -221,7 +217,6 @@ $(document).ready(function(){
<p>분야</p>
</th>
<td>
<label for="fldSelect" class="label">분야 선택</label>
<ve:select codeId="VEA014" id="fldSelect" css="class='selType1'"
selectedValue="" defaultValue=''
defaultText="선택"
@ -236,8 +231,8 @@ $(document).ready(function(){
<p>저작권 교육 수강 여부</p>
</th>
<td>
<label for="lctrYn" class="label">저작권 교육 수강 여부 입력</label>
<input type="text" class="lctrYn" name="lctrYn" id="lctrYn"/>
<ve:radio name="lctrYn" id="lctrYn" codeId="VEA018"/>
<!-- <input type="text" class="lctrYn" name="lctrYn" id="lctrYn"/> -->
</td>
</tr>
<tr>
@ -245,7 +240,6 @@ $(document).ready(function(){
<p>교육관련 사전질의</p>
</th>
<td colspan="2">
<label for="prvsQs" class="label">교육관련 사전질의 입력</label>
<input type="text" name="prvsQs" id="prvsQs" style="width: 100%;"/>
</td>
</tr>
@ -257,24 +251,17 @@ $(document).ready(function(){
</tbody>
</table>
</div>
<div class="pop_text">
<p class="title">개인정보 처리 동의서
<p class="sub_te">한국저작권위원회에서는 귀하의 개인정보를 중요시하며, 개인정보보호법 제15조, 제17조, 제22조, 제23조 및 제24조에 따라 아래와 같이 개인정보 처리에 관하여 동의를 얻고자 합니다.</p>
<ul>
<li>
&lt;개인정보 수집 및 이용에 대한 동의&gt;
<ul>
<li>ο 개인정보의 수집 이용 목적 : 이수증 발급, 이수자 관리 </li>
<li>ο 수집하는 개인정보 항목 : 성명, 생년월일, 휴대전화, 이메일</li>
<li>ο 개인정보의 보유 및 이용기간 : 사업 종료시까지</li>
<li>ο 동의를 거부할 권리가 있다는 사실 및 동의 거부에 따른 불이익이 있는 경우에는 그 불이익의 내용 : 귀하의 개인정보 제공 및 동의를 거부할 권리가 있으며, 위 항목 동의 거부시 수강신청 및 이수증 발급이 어려워질 수 있음</li>
</ul>
</li>
</ul>
</div>
<div class="pop_btn_wrap btn_layout01 ar_bt">
<pre>개인정보 처리 동의서
한국저작권위원회에서는 귀하의 개인정보를 중요시하며, 개인정보보호법 제15조, 제17조, 제22조, 제23조 및 제24조에 따라 아래와 같이 개인정보 처리에 관하여 동의를 얻고자 합니다.
&lt;개인정보 수집 및 이용에 대한 동의 &gt;
ο 개인정보의 수집 이용 목적 : 이수증 발급, 이수자 관리
ο 수집하는 개인정보 항목 : 성명, 생년월일, 휴대전화, 이메일
ο 개인정보의 보유 및 이용기간 : 사업 종료시까지
ο 동의를 거부할 권리가 있다는 사실 및 동의 거부에 따른 불이익이 있는 경우에는 그 불이익의 내용 : 귀하의 개인정보 제공 및 동의를 거부할 권리가 있으며, 위 항목 동의 거부시 수강신청 및 이수증 발급이 어려워질 수 있음
</pre>
<div class="pop_btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">

View File

@ -618,7 +618,6 @@ $(document).ready(function(){
<!-- list -->
<div class="tb_list01">
<table>
<caption>강의목록 : 교육구분, 과정명, 신청기간, 교육일자, 신청자/정원, 상태, 교육신청 등의 정보제공</caption>
<colgroup>
<%-- <col style="width: 5%"> --%>
<col style="width: 10%">
@ -632,13 +631,13 @@ $(document).ready(function(){
<thead>
<tr>
<!-- <th>NO</th> -->
<th scope=“col”>교육구분</th>
<th scope=“col”>과정명</th>
<th scope=“col”>신청기간</th>
<th scope=“col”>교육일자</th>
<th scope=“col”>신청자/정원</th>
<th scope=“col”>상태</th>
<th scope=“col”>교육신청</th>
<th>교육구분</th>
<th>과정명</th>
<th>신청기간</th>
<th>교육일자</th>
<th>신청자/정원</th>
<th>상태</th>
<th>교육신청</th>
</tr>
</thead>
<tbody>
@ -650,7 +649,7 @@ $(document).ready(function(){
<td>
<kc:code codeId="VEA001" code="${list.prcsDiv}"/>
</td>
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;" tabindex="0" onkeypress="if(event.keyCode == 13){fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');}">
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;">
<c:out value="${list.prcsNm}"/>(<c:out value="${list.prcsAplctPrdOrd}"/>)
</td>
<td>

45
src/main/webapp/js/echarts.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -56,8 +56,8 @@ header.scroll{box-shadow: 0 5px 8px rgba(0,0,0,0.15);}
.gnb_wrap .top_link ul{display: inline-block;}
.gnb_wrap .top_link ul li{display: inline-block;width: auto;}
.gnb_wrap .top_link ul li a{display:block;font-size:15px;padding: 0 30px;line-height: 46px;text-align: center;color: #555555;transition: 0.1s;}
.gnb_wrap .top_link ul li.on::after{content: '';display: block;width: 100%;height: 3px;background-color: #ed5908;}
.gnb_wrap .top_link ul li.on a, .gnb_wrap .top_link ul li a:hover{color: #ed5908;font-weight: 500;}
.gnb_wrap .top_link ul li.on::after{content: '';display: block;width: 100%;height: 3px;background-color: #d64309;}
.gnb_wrap .top_link ul li.on a, .gnb_wrap .top_link ul li a:hover{color: #d64309;font-weight: 500;}
.header{padding: 0; box-sizing: border-box;}
.header .header_top{width:100%; border-bottom:2px solid #f1f1f1;}
@ -83,15 +83,15 @@ header.scroll{box-shadow: 0 5px 8px rgba(0,0,0,0.15);}
.header .dep_li_07 .depth01_li{width: auto;}
.header .menu_link{font-size: 20px; font-weight: 300; letter-spacing: -0.5px; display: flex; align-items: center; justify-content: center;/* height: 100%; */position: relative;font-family: 'GmarketSansMedium'; line-height: 1.25;}
.header .menu_link::before{position: absolute; content: " "; display: block; width: 0; /*height: 2px; background-color: #E95504; left: 50%; transform: translateX(-50%); transition: width .4s ease-in-out; top: 32px;*/ z-index: 1;}
.header .menu_link .menu_link_br {color: #ed5908;font-family: 'GmarketSansMedium'; padding:0 0 0 5px;}
.header .on .menu_link{color: #ed5908;}
.header .menu_link .menu_link_br {color: #d64309;font-family: 'GmarketSansMedium'; padding:0 0 0 5px;}
.header .on .menu_link{color: #d64309;}
.on .nav_wrap .on .menu_link::before{width: 100%;}
.header .depth02{position: absolute; top:53px; text-align: center; padding: 15px 0; width: 100%; left: 50%; transform: translateX(-50%);border-right: 1px solid #d5d5d5;}
.header .depth01_li:first-child .depth02{border-left: 1px solid #d5d5d5;}
.header .depth01_li:hover .depth02::after{position:absolute;content:"";width:calc(100% + 4px); height:100%; background-color:#fff8f4;left:-2px;top:0;}
.header .depth01_li:hover .depth02 li{ position:relative;z-index:1;}
.header .depth02 a{font-size: 17px; font-weight: 300; line-height: 1.3; height: 45px; display: flex; align-items: center; justify-content: center; word-break: keep-all;white-space:nowrap;}
.header .depth02 a:hover,.header .depth02 a:focus{color: #ed5908;font-weight:500;}
.header .depth02 a:hover,.header .depth02 a:focus{color: #d64309;font-weight:500;}
.header_inner button{width: 27px; height: 26px; background-repeat: no-repeat;}
.header_inner .btn_search{background-image: url(../images/common/btn_search.png); margin-right: 25px; margin-top: -2px;}
@ -124,7 +124,7 @@ header.scroll{box-shadow: 0 5px 8px rgba(0,0,0,0.15);}
.full_menu .depth01_li:first-child{padding: 0 0 20px 0;}
.full_menu .depth01_li:last-child{border-bottom: 0;}
.full_menu .depth01_li .menu_link{width:350px;font-size: 20px; font-weight: 500; color: #222;}
.full_menu .depth01_li:hover .menu_link,.full_menu .depth01_li .depth02 li:hover{color: #ed5908;}
.full_menu .depth01_li:hover .menu_link,.full_menu .depth01_li .depth02 li:hover{color: #d64309;}
.full_menu .depth01_li .depth02 li:hover{font-weight: 500;}
.full_menu .depth01_li .depth02{display: flex; width: calc(100% - 138px); font-size: 18px; font-weight: 300; color: #666; justify-content:flex-start; flex-wrap: wrap;}
.full_menu .depth01_li .depth02 li{width:calc(100% / 4); height:40px;}
@ -177,7 +177,7 @@ header.scroll{box-shadow: 0 5px 8px rgba(0,0,0,0.15);}
.navigation .list > li .navi_depth {display:none;position:absolute;left:-1px;top:50px;width:100%;border:1px solid #d5d5d5;background:#fff;z-index:2;}
.navigation .list > li .navi_depth li a {display:block;height:40px;padding:0 20px;font-size:16px;line-height:40px;}
.navigation .list > li .navi_depth li a:hover,
.navigation .list > li .navi_depth li a:focus {font-weight:500;color:#ed5908;background:#fff3ec;}
.navigation .list > li .navi_depth li a:focus {font-weight:500;color:#d64309;background:#fff3ec;}
/* footer */
/* footer{width: 100%; background-color: #eef0f3; position: relative; padding: 0 10px; box-sizing: border-box; color: #666; position: relative; margin: 80px auto 0 auto;} */

View File

@ -383,7 +383,7 @@ select.selType1 {height: 40px; border: 1px solid #d5d5d5; border-radius: 5px; pa
.ex_process {display:flex; justify-content:space-between;}
.ex_process li {border-radius: 10px; width:13.5%; text-align: center; color:#fff; padding:15px 0 18px 0; font-size:22px;}
.ex_process li.p {background-color: #a7acb6;}
.ex_process li.p_on {background-color:#f37632;}
.ex_process li.p_on {/*background-color:#f37632;*/ background-color:#f05f0f;}
/* 첨부파일 */
@ -839,7 +839,7 @@ select.selType1 {height: 40px; border: 1px solid #d5d5d5; border-radius: 5px; pa
.tb_type01 table tbody .short_bt{margin-top: 0px;}
/*알림마당 > 교육자료실 > 첨부파일 수정*/
.fileView a{margin: 0 0 10px 0; white-space: normal; background-image: url(../images/content/file_img.png); background-repeat: no-repeat; background-position: left 48%; padding-left: 23px; letter-spacing: -0.5px; font-size: 18px; font-weight: 300;}
.fileView a{margin: 0 0 10px 0; white-space: normal; background-image: url(../images/content/file_img.png); background-repeat: no-repeat; background-position: left 48%; padding-left: 23px; letter-spacing: -0.5px; font-size: 16px; font-weight: 400; color:#555; line-height:20px;}
@media all and (max-width: 1300px){
/*교육소개 추가*/

View File

@ -110,15 +110,6 @@
/* 기소유예 - 교육취소 */
.btnType01.right {float:right; margin:0 0 5px 0;}
/*신청인 정보 팝업 수정 */
.pop_text{border: 1px solid #d5d5d5; padding: 15px; margin: 0 0 -5px 0;}
.pop_text .title{margin: 0 0 10px 0; font-weight: 500;}
.pop_text .sub_te{font-size: 15px; color :#666; margin: 0 0 10px 0; line-height: 1.2;}
.pop_text ul{color :#666; line-height: 1.4; font-size: 14px;}
.ar_bt{background-color: #f5f5f5; padding: 10px 0; margin: 0 0 -5px 0;}
@media all and (max-width: 767px){
.popup_cont {padding: 10px;}