2025-09-25 17:49 설문 및 예방교육 관리자 화면 수정

This commit is contained in:
myname 2025-09-25 17:49:52 +09:00
parent a000e14e35
commit 0fdd3859f5
15 changed files with 3793 additions and 10 deletions

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<sqlMap resource="egovframework/sqlmap/let/uss/olp/qim/EgovQustnrItemManage_SQL_Postgresql.xml"/>
</sqlMapConfig>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<sqlMap resource="egovframework/sqlmap/let/uss/olp/qqm/EgovQustnrQestnManage_SQL_Postgresql.xml"/>
</sqlMapConfig>

View File

@ -0,0 +1,212 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="QustnrItemManage">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="comDefaultVO" type="kcc.com.cmm.ComDefaultVO"/>
<typeAlias alias="QustnrItemManageVO" type="kcc.let.uss.olp.qim.service.QustnrItemManageVO"/>
<!-- 설문정보::설문템플릿정보 -->
<select id="QustnrItemManage.selectQustnrTmplatManage" parameterClass="QustnrItemManageVO" resultClass="egovMap">
SELECT
QUSTNR_TMPLAT_ID qestnrTmplatId,
QUSTNR_TMPLAT_TY qestnrTmplatTy
FROM LETTNQUSTNRTMPLAT
</select>
<!-- 설문조사(설문결과) 삭제 -->
<delete id="QustnrItemManage.deleteQustnrRespondInfo">
DELETE FROM LETTNQUSTNRRSPNSRESULT WHERE QUSTNR_IEM_ID = #qustnrIemId#
</delete>
<!-- 설문정보::삭제 -->
<delete id="QustnrItemManage.deleteQustnrItemManage">
<![CDATA[
DELETE FROM LETTNQUSTNRIEM
WHERE QUSTNR_IEM_ID = #qustnrIemId#
]]>
</delete>
<!-- 설문정보::수정 -->
<update id="QustnrItemManage.updateQustnrItemManage">
UPDATE LETTNQUSTNRIEM
SET
IEM_SN=#iemSn#,
IEM_CN=#iemCn#,
ETC_ANSWER_AT=#etcAnswerAt#,
LAST_UPDT_PNTTM = NOW(),
LAST_UPDUSR_ID = #lastUpdusrId#
WHERE QUSTNR_IEM_ID = #qustnrIemId#
</update>
<!-- 설문정보::상세보기 -->
<select id="QustnrItemManage.selectQustnrItemManageDetail" parameterClass="QustnrItemManageVO" resultClass="egovMap">
SELECT
A.QUSTNR_QESITM_ID qestnrQesitmId,
(SELECT QESTN_CN FROM LETTNQUSTNRQESITM WHERE QUSTNR_QESITM_ID = A.QUSTNR_QESITM_ID) QESTNR_QESITM_CN,
A.QESTNR_ID,
(SELECT QUSTNR_SJ FROM LETTNQESTNRINFO WHERE QESTNR_ID = A.QESTNR_ID) QESTNR_CN,
A.IEM_SN,
A.QUSTNR_IEM_ID,
A.IEM_CN,
A.ETC_ANSWER_AT,
A.QUSTNR_TMPLAT_ID qestnrTmplatId,
A.FRST_REGIST_PNTTM frstRegisterPnttm,
A.FRST_REGISTER_ID,
A.LAST_UPDT_PNTTM,
A.LAST_UPDUSR_ID
FROM LETTNQUSTNRIEM A
WHERE 1=1
AND A.QUSTNR_IEM_ID = #qustnrIemId#
</select>
<!-- 설문정보::목록조회_게시물정보 -->
<select id="QustnrItemManage.selectQustnrItemManage" parameterClass="comDefaultVO" resultClass="egovMap">
<![CDATA[
SELECT
A.QUSTNR_QESITM_ID qestnrQesitmId,
A.QESTNR_ID,
A.IEM_SN,
A.QUSTNR_IEM_ID,
A.IEM_CN,
A.ETC_ANSWER_AT,
A.QUSTNR_TMPLAT_ID qestnrTmplatId,
A.FRST_REGIST_PNTTM frstRegisterPnttm,
A.FRST_REGISTER_ID,
(SELECT USER_NM FROM COMVNUSERMASTER WHERE ESNTL_ID = A.FRST_REGISTER_ID ORDER BY USER_NM DESC LIMIT 1) FRST_REGISTER_NM,
A.LAST_UPDT_PNTTM,
A.LAST_UPDUSR_ID,
(SELECT QUSTNR_SJ FROM LETTNQESTNRINFO WHERE QESTNR_ID = A.QESTNR_ID LIMIT 1) QUSTNR_SJ,
(SELECT QESTN_CN FROM LETTNQUSTNRQESITM WHERE QUSTNR_QESITM_ID = A.QUSTNR_QESITM_ID LIMIT 1) QESTN_CN
FROM LETTNQUSTNRIEM A
WHERE 1=1
]]>
<isNotEmpty property="searchKeyword">
<isNotEqual property="searchKeyword" compareValue="">
<isNotEqual property="searchCondition" compareValue="FRST_REGISTER_ID">
<isEqual property="searchCondition" compareValue="IEM_CN">
AND IEM_CN LIKE CONCAT(CONCAT('%', #searchKeyword#), '%')
</isEqual>
</isNotEqual>
<isEqual property="searchCondition" compareValue="FRST_REGISTER_ID">
AND FRST_REGISTER_ID IN (SELECT ESNTL_ID FROM COMVNUSERMASTER WHERE USER_NM LIKE CONCAT(CONCAT('%', #searchKeyword#), '%') )
</isEqual>
<isEqual property="searchCondition" compareValue="QUSTNR_QESITM_ID">
AND QUSTNR_QESITM_ID = #searchKeyword#
</isEqual>
</isNotEqual>
</isNotEmpty>
<![CDATA[
ORDER BY A.FRST_REGIST_PNTTM DESC
/*
LIMIT recordCountPerPage OFFSET firstIndex
*/
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
]]>
</select>
<!-- 설문정보::목록조회_게시물 총갯수 -->
<select id="QustnrItemManage.selectQustnrItemManageCnt" parameterClass="comDefaultVO" resultClass="int">
SELECT
COUNT(*) totcnt
FROM LETTNQUSTNRIEM
WHERE 1=1
<isNotEmpty property="searchKeyword">
<isNotEqual property="searchKeyword" compareValue="">
<isNotEqual property="searchCondition" compareValue="FRST_REGISTER_ID">
<isEqual property="searchCondition" compareValue="IEM_CN">
AND IEM_CN LIKE CONCAT(CONCAT('%', #searchKeyword#), '%')
</isEqual>
</isNotEqual>
<isEqual property="searchCondition" compareValue="FRST_REGISTER_ID">
AND FRST_REGISTER_ID IN (SELECT ESNTL_ID FROM COMVNUSERMASTER WHERE USER_NM LIKE CONCAT(CONCAT('%', #searchKeyword#), '%') )
</isEqual>
</isNotEqual>
</isNotEmpty>
</select>
<!-- 설문정보::입력 -->
<insert id="QustnrItemManage.insertQustnrItemManage">
/* QustnrItemManage.insertQustnrItemManage */
<![CDATA[
INSERT INTO LETTNQUSTNRIEM (
QUSTNR_QESITM_ID,
QESTNR_ID,
IEM_SN,
QUSTNR_IEM_ID,
IEM_CN,
ETC_ANSWER_AT,
QUSTNR_TMPLAT_ID,
FRST_REGIST_PNTTM,
FRST_REGISTER_ID,
LAST_UPDT_PNTTM,
LAST_UPDUSR_ID
)VALUES(
#qestnrQesitmId#,
#qestnrId#,
#iemSn#,
#qustnrIemId#,
#iemCn#,
#etcAnswerAt#,
#qestnrTmplatId#,
NOW(),
#frstRegisterId#,
NOW(),
#lastUpdusrId#
)
]]>
</insert>
<!-- 설문정보::입력 -->
<insert id="QustnrItemManage.insertItnQustnrItemManage">
/* QustnrItemManage.insertItnQustnrItemManage */
<![CDATA[
INSERT INTO LETTNQUSTNRIEM (
QUSTNR_QESITM_ID,
QESTNR_ID,
IEM_SN,
QUSTNR_IEM_ID,
IEM_CN,
ETC_ANSWER_AT,
QUSTNR_TMPLAT_ID,
FRST_REGIST_PNTTM,
FRST_REGISTER_ID,
LAST_UPDT_PNTTM,
LAST_UPDUSR_ID
)VALUES(
#qestnrQesitmId#,
#qestnrId#,
#iemSn#,
#qustnrIemId#,
#iemCn#,
#etcAnswerAt#,
#qestnrTmplatId#,
NOW(),
#frstRegisterId#,
NOW(),
#lastUpdusrId#
)
]]>
</insert>
<!-- 설문정보::삭제 -->
<delete id="QustnrItemManage.deleteAllQustnrItemManage">
<![CDATA[
DELETE FROM LETTNQUSTNRIEM
WHERE QUSTNR_QESITM_ID = #qestnrQesitmId#
]]>
</delete>
<!-- 설문조사(설문결과) 삭제 -->
<delete id="QustnrItemManage.deleteAllQustnrRespondInfo">
DELETE FROM LETTNQUSTNRRSPNSRESULT WHERE QESTNR_ID = #qestnrId#
</delete>
</sqlMap>

View File

@ -34,14 +34,15 @@
<!-- 설문정보::목록조회_게시물정보 -->
<select id="QustnrManage.selectQustnrManageDetailModel" resultMap="QustnrManage">
/* QustnrManage.selectQustnrManageDetailModel */
/* WHEN TO_DATE(A.QUSTNR_ENDDE,'YYYYMMDD') TO_CHAR(NOW(), 'YYYYMMDD') THEN '2' */
<![CDATA[
SELECT
A.QESTNR_ID,
A.QUSTNR_SJ,
A.QUSTNR_PURPS,
A.QUSTNR_WRITNG_GUIDANCE_CN,
TO_DATE(A.QUSTNR_BGNDE,'YYYY-MM-DD') QUSTNR_BGNDE,
TO_DATE(A.QUSTNR_ENDDE,'YYYY-MM-DD') QUSTNR_ENDDE,
TO_DATE(A.QUSTNR_BGNDE,'YYYYMMDD') QUSTNR_BGNDE,
TO_DATE(A.QUSTNR_ENDDE,'YYYYMMDD') QUSTNR_ENDDE,
A.QUSTNR_TRGET,
A.QUSTNR_TMPLAT_ID,
(SELECT QUSTNR_TMPLAT_TY FROM LETTNQUSTNRTMPLAT WHERE QUSTNR_TMPLAT_ID = A.QUSTNR_TMPLAT_ID) QUSTNR_TMPLAT_TY,
@ -56,7 +57,7 @@
CASE
WHEN A.STTUS = '1' THEN
CASE
WHEN TO_DATE(A.QUSTNR_ENDDE,'YYYYMMDD') < TO_CHAR(SYSDATE, 'YYYYMMDD') THEN '2'
WHEN TO_DATE(A.QUSTNR_ENDDE,'YYYYMMDD') < NOW() THEN '2'
ELSE '1'
END
ELSE A.STTUS
@ -191,6 +192,7 @@
<!-- 설문정보::삭제 -->
<delete id="QustnrManage.deleteQustnrManage">
/* QustnrManage.deleteQustnrManage */
<![CDATA[
DELETE FROM LETTNQESTNRINFO
WHERE QESTNR_ID = #qestnrId#
@ -199,6 +201,7 @@
<!-- 설문정보::수정 -->
<update id="QustnrManage.updateQustnrManage">
/* QustnrManage.updateQustnrManage */
UPDATE LETTNQESTNRINFO
SET
QUSTNR_SJ=#qestnrSj#,
@ -209,7 +212,7 @@
QUSTNR_TRGET=#qestnrTrget#,
QUSTNR_VIEW_TRGET=#qestnrViewTrget#,
QUSTNR_ENDDE=REPLACE(#qestnrEndDe#,'-',''),
LAST_UPDT_PNTTM = SYSDATE,
LAST_UPDT_PNTTM = NOW(),
SITE_ID = #siteId#,
LAST_UPDUSR_ID = #lastUpdusrId#,
STTUS = #sttus#,
@ -227,8 +230,8 @@
A.QUSTNR_SJ qestnrSj,
A.QUSTNR_PURPS qestnrPurps,
A.QUSTNR_WRITNG_GUIDANCE_CN qestnrWritngGuidanceCn,
TO_DATE(A.QUSTNR_BGNDE,'YYYY-MM-DD') QESTNR_BEGIN_DE,
TO_DATE(A.QUSTNR_ENDDE,'YYYY-MM-DD') QESTNR_END_DE,
TO_DATE(A.QUSTNR_BGNDE,'YYYYMMDD') QESTNR_BEGIN_DE,
TO_DATE(A.QUSTNR_ENDDE,'YYYYMMDD') QESTNR_END_DE,
TO_CHAR(A.FRST_REGIST_PNTTM,'YYYY-MM-DD HH24') frstRegisterPnttm,
A.FRST_REGISTER_ID,
TO_CHAR(A.LAST_UPDT_PNTTM,'YYYY-MM-DD HH24') LAST_UPDT_PNTTM,
@ -240,7 +243,7 @@
( SELECT COUNT(*) FROM LETTNQUSTNRQESITM WHERE QESTNR_ID = A.QESTNR_ID ) qustnrQesitmCnt ,
( SELECT COUNT(*) FROM LETTNQUSTNRRESPONDINFO WHERE QESTNR_ID = A.QESTNR_ID ) rrspnsResultCnt,
CASE
WHEN A.QUSTNR_ENDDE < TO_CHAR(SYSDATE, 'YYYY.MM.DD') THEN '2' /* */
WHEN A.QUSTNR_ENDDE < TO_CHAR(NOW(), 'YYYY.MM.DD') THEN '2' /* */
ELSE A.STTUS
END AS STTUS,
(SELECT QUSTNR_TMPLAT_PATH_NM FROM LETTNQUSTNRTMPLAT WHERE QUSTNR_TMPLAT_ID = A.QUSTNR_TMPLAT_ID ) TEMPLATE_URL
@ -252,6 +255,7 @@
<!-- 설문정보::입력 -->
<insert id="QustnrManage.insertQustnrManage">
/* QustnrManage.insertQustnrManage */
INSERT INTO LETTNQESTNRINFO (
QESTNR_ID,
QUSTNR_SJ,
@ -279,9 +283,9 @@
#qestnrViewTrget#,
#qestnrTmplatId#,
#siteId#,
SYSDATE,
NOW(),
#frstRegisterId#,
SYSDATE,
NOW(),
#lastUpdusrId#,
#atchFileId#
)

View File

@ -0,0 +1,204 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="QustnrQestnManage">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="comDefaultVO" type="kcc.com.cmm.ComDefaultVO"/>
<typeAlias alias="QustnrQestnManageVO" type="kcc.let.uss.olp.qqm.service.QustnrQestnManageVO"/>
<!-- 설문문항:: 객관식 통계 -->
<select id="QustnrQestnManage.selectQustnrManageStatistics" parameterClass="java.util.Map" resultClass="egovMap">
<![CDATA[
SELECT
( SELECT IEM_CN FROM LETTNQUSTNRIEM
WHERE 1=1
AND QUSTNR_IEM_ID = A.QUSTNR_IEM_ID ) IEM_CN,
COUNT(A.QUSTNR_IEM_ID) QUSTNR_IEM_ID_CNT,
ROUND((100/(SELECT COUNT(*) CNT
FROM LETTNQUSTNRRSPNSRESULT
WHERE QUSTNR_QESITM_ID = #qestnrQesitmId#)) * COUNT(A.QUSTNR_IEM_ID)) QUSTNR_PERCENT
FROM LETTNQUSTNRRSPNSRESULT A
WHERE 1=1
AND A.QUSTNR_QESITM_ID = #qestnrQesitmId#
GROUP BY A.QUSTNR_IEM_ID
]]>
</select>
<!-- 설문문항:: 응답자답변내용 결과/기타답변내용 결과 통계 -->
<select id="QustnrQestnManage.selectQustnrManageStatistics2" parameterClass="java.util.Map" resultClass="egovMap">
<![CDATA[
SELECT
RESPOND_ANSWER_CN,
ETC_ANSWER_CN
FROM LETTNQUSTNRRSPNSRESULT A
WHERE 1=1
AND A.QUSTNR_QESITM_ID = #qestnrQesitmId#
]]>
</select>
<!-- 설문문항:: 설문지 제목 검색 -->
<select id="QustnrQestnManage.selectQustnrManageQestnrSj" parameterClass="java.util.Map" resultClass="egovMap">
SELECT QUSTNR_SJ
FROM LETTNQESTNRINFO
WHERE QESTNR_ID = #qestnrId#
</select>
<!-- 설문조사(설문결과) 삭제 -->
<delete id="QustnrQestnManage.deleteQustnrRespondInfo">
DELETE FROM LETTNQUSTNRRSPNSRESULT
WHERE QUSTNR_QESITM_ID = #qestnrQesitmId#
</delete>
<!-- 설문항목 삭제 -->
<delete id="QustnrQestnManage.deleteQustnrItemManage">
DELETE FROM LETTNQUSTNRIEM
WHERE QUSTNR_QESITM_ID = #qestnrQesitmId#
</delete>
<!-- 설문문항::삭제 -->
<delete id="QustnrQestnManage.deleteQustnrQestnManage">
<![CDATA[
DELETE FROM LETTNQUSTNRQESITM
WHERE QUSTNR_QESITM_ID = #qestnrQesitmId#
]]>
</delete>
<!-- 설문문항::수정 -->
<update id="QustnrQestnManage.updateQustnrQestnManage">
UPDATE LETTNQUSTNRQESITM
SET
QESTN_SN=#qestnSn#,
QESTN_TY_CODE=#qestnTyCode#,
QESTN_CN=#qestnCn#,
MXMM_CHOISE_CO=#mxmmChoiseCo#,
LAST_UPDT_PNTTM = NOW(),
LAST_UPDUSR_ID = #lastUpdusrId#
WHERE QUSTNR_QESITM_ID = #qestnrQesitmId#
</update>
<!-- 설문문항::상세보기 -->
<select id="QustnrQestnManage.selectQustnrQestnManageDetail" parameterClass="QustnrQestnManageVO" resultClass="egovMap">
/* QustnrQestnManage.selectQustnrQestnManageDetail */
SELECT
A.QUSTNR_QESITM_ID qestnrQesitmId,
A.QESTNR_ID,
(SELECT QUSTNR_SJ FROM LETTNQESTNRINFO WHERE QESTNR_ID=A.QESTNR_ID) QESTNR_SJ,
A.QESTN_SN "qestnSn",
A.QESTN_TY_CODE "qestnTyCode",
A.QESTN_CN "qestnCn",
A.MXMM_CHOISE_CO "mxmmChoiseCo",
A.QUSTNR_TMPLAT_ID "qestnrTmplatId",
TO_CHAR(A.FRST_REGIST_PNTTM,'YYYY-MM-DD HH24:MI:SS') FRST_REGIST_PNTTM,
A.FRST_REGISTER_ID,
TO_CHAR(A.LAST_UPDT_PNTTM,'YYYY-MM-DD HH24:MI:SS') LAST_UPDT_PNTTM,
A.LAST_UPDUSR_ID
FROM LETTNQUSTNRQESITM A
WHERE 1=1
AND QUSTNR_QESITM_ID = #qestnrQesitmId#
</select>
<!-- 설문문항::목록조회_게시물정보 -->
<select id="QustnrQestnManage.selectQustnrQestnManage" parameterClass="comDefaultVO" resultClass="egovMap">
/* QustnrQestnManage.selectQustnrQestnManage */
<![CDATA[
SELECT
A.QUSTNR_QESITM_ID "qestnrQesitmId",
A.QESTNR_ID,
(SELECT QUSTNR_SJ FROM LETTNQESTNRINFO WHERE QESTNR_ID=A.QESTNR_ID) "QESTNR_SJ",
A.QESTN_SN,
A.QESTN_TY_CODE,
A.QESTN_CN,
A.MXMM_CHOISE_CO,
A.QUSTNR_TMPLAT_ID "qestnrTmplatId",
TO_CHAR(A.FRST_REGIST_PNTTM,'YYYY-MM-DD') FRST_REGIST_PNTTM,
A.FRST_REGISTER_ID,
(SELECT USER_NM FROM COMVNUSERMASTER WHERE ESNTL_ID = A.FRST_REGISTER_ID ORDER BY USER_NM DESC LIMIT 1) FRST_REGISTER_NM,
TO_CHAR(A.LAST_UPDT_PNTTM,'YYYY-MM-DD') LAST_UPDT_PNTTM,
A.LAST_UPDUSR_ID,
( SELECT COUNT(*) FROM LETTNQUSTNRIEM WHERE QUSTNR_QESITM_ID = A.QUSTNR_QESITM_ID ) QUSTNRIEM_CNT
FROM LETTNQUSTNRQESITM A
WHERE 1=1
]]>
<isNotEmpty property="searchKeyword">
<isNotEqual property="searchKeyword" compareValue="">
<isNotEqual property="searchCondition" compareValue="">
<isEqual property="searchCondition" compareValue="QESTN_CN">
AND QESTN_CN LIKE CONCAT(CONCAT('%', #searchKeyword#), '%')
</isEqual>
<isEqual property="searchCondition" compareValue="MXMM_CHOISE_CO">
AND MXMM_CHOISE_CO LIKE CONCAT(CONCAT('%', #searchKeyword#), '%')
</isEqual>
<isEqual property="searchCondition" compareValue="QESTNR_ID">
AND QESTNR_ID = #searchKeyword#
</isEqual>
</isNotEqual>
</isNotEqual>
</isNotEmpty>
<![CDATA[
ORDER BY A.QESTN_SN ASC
/*
LIMIT recordCountPerPage OFFSET firstIndex
*/
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
]]>
</select>
<!-- 설문문항::목록조회_게시물 총갯수 -->
<select id="QustnrQestnManage.selectQustnrQestnManageCnt" parameterClass="comDefaultVO" resultClass="int">
SELECT
COUNT(*) totcnt
FROM LETTNQUSTNRQESITM
WHERE 1=1
<isNotEmpty property="searchKeyword">
<isNotEqual property="searchKeyword" compareValue="">
<isNotEqual property="searchCondition" compareValue="">
<isEqual property="searchCondition" compareValue="QESTN_CN">
AND QESTN_CN LIKE CONCAT(CONCAT('%', #searchKeyword#), '%')
</isEqual>
<isEqual property="searchCondition" compareValue="MXMM_CHOISE_CO">
AND MXMM_CHOISE_CO LIKE CONCAT(CONCAT('%', #searchKeyword#), '%')
</isEqual>
</isNotEqual>
</isNotEqual>
</isNotEmpty>
</select>
<!-- 설문문항::입력 -->
<insert id="QustnrQestnManage.insertQustnrQestnManage">
/* QustnrQestnManage.insertQustnrQestnManage */
<![CDATA[
INSERT INTO LETTNQUSTNRQESITM (
QUSTNR_QESITM_ID,
QESTNR_ID,
QESTN_SN,
QESTN_TY_CODE,
QESTN_CN,
MXMM_CHOISE_CO,
QUSTNR_TMPLAT_ID,
FRST_REGIST_PNTTM,
FRST_REGISTER_ID,
LAST_UPDT_PNTTM,
LAST_UPDUSR_ID
)VALUES(
#qestnrQesitmId#,
#qestnrId#,
#qestnSn#,
#qestnTyCode#,
#qestnCn#,
#mxmmChoiseCo#,
#qestnrTmplatId#,
NOW(),
#frstRegisterId#,
NOW(),
#lastUpdusrId#
)
]]>
</insert>
</sqlMap>

View File

@ -36,6 +36,7 @@
<!-- 응답자정보(설문조사)::상세보기 -->
<select id="QustnrRespondManage.selectQustnrRespondManageDetail" parameterClass="QustnrRespondManageVO" resultClass="egovMap">
/* QustnrRespondManage.selectQustnrRespondManageDetail */
SELECT
( SELECT QUSTNR_SJ FROM LETTNQESTNRINFO WHERE 1=1 AND QESTNR_ID = A.QESTNR_ID ) QESTNR_SJ
, A.QESTNR_ID
@ -52,6 +53,7 @@
<!-- 응답자정보(설문조사)::목록조회_게시물정보 -->
<select id="QustnrRespondManage.selectQustnrRespondManage" parameterClass="comDefaultVO" resultClass="egovMap">
/* QustnrRespondManage.selectQustnrRespondManage */
<![CDATA[
SELECT
( SELECT QUSTNR_SJ FROM LETTNQESTNRINFO WHERE 1=1 AND QESTNR_ID = A.QESTNR_ID ) QESTNR_SJ

View File

@ -42,6 +42,7 @@
<pattern>*/oprtn/fndthEnhanceTrn/popup/**</pattern>
<pattern>*/oprtn/cndtnSspnIdtmt/popup/**</pattern>
<pattern>*/oprtn/cmdTrgt/popup/*</pattern> <!-- 시정명령 화면 -->
<pattern>*/oprtn/prevent/popup/*</pattern> <!-- 예방교육 화면 -->
<pattern>*/oprtn/instr/tngrVisitEdu/popup/**</pattern>
<pattern>*/oprtn/cmm/scholPopListBower.jsp</pattern> <!-- 청소년찾아가는저작권 교육 > 교육신청관리 > 교육신청 등록 > 학교검색 팝업 -->
<pattern>*/oprtn/cmm/SchduleManagerPopDetail.jsp</pattern> <!-- 청소년찾아가는저작권 교육 > 교육일정관리 > 교육내용 팝업 -->

View File

@ -51,7 +51,7 @@
function fncGoList(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/cmdTrgt/cndtnEduPrcsAplctPrdMngList.do'/>";
listForm.action = "<c:url value='/kccadr/oprtn/cmdTrgt/cndtnEduPrcsAplctCfnMngList.do'/>";
listForm.submit();
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,801 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%pageContext.setAttribute("crlf", "\r\n"); %>
<%pageContext.setAttribute("crlt", "&lt;"); %>
<%pageContext.setAttribute("crgt", "&gt;"); %>
<%
/**
* @Class Name : cndtnEduPrcsAplctPrdMngDetail.jsp
* @Description : 기반강화연수 기간 상세화면
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.12.16 조용준 최초 생성
* @author 조용주
* @since 2021.12.16
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<title>교육과정관리</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="<c:url value='/js/web/popup.js'/>" ></script>
<script type="text/javascript">
$(document).ready(function(){
// 상태값 확인
ddlnCdSttsChk();
});
function ddlnCdSttsChk(){
var $ddlnCdStts = $("#ddlnCdStts");
// 텍스트가 비어있는지 확인
if ($ddlnCdStts.text().trim() === "") {
var dateText = $ddlnCdStts.closest('table').find("td:eq(2)").text().trim();
var strtPnttm = new Date(dateText.split("~")[0].trim().replace(/\./g, '-'));
var endPnttm = new Date(dateText.split("~")[1].trim().replace(/\./g, '-'));
var currentDate = new Date();
// 시간, 분, 초 초기화
strtPnttm.setHours(0, 0, 0, 0);
endPnttm.setHours(0, 0, 0, 0);
currentDate.setHours(0, 0, 0, 0);
if (currentDate < strtPnttm) {
$ddlnCdStts.text("접수전");
} else if (currentDate >= strtPnttm && currentDate <= endPnttm) {
$ddlnCdStts.text("접수중");
} else if (currentDate > endPnttm) {
$ddlnCdStts.text("접수종료");
}
}
}
function fncGoList(){
var listForm = document.listForm ;
listForm.prcsAplctPrdOrd.value="";
listForm.action = "<c:url value='/kccadr/oprtn/prevent/cndtnEduPrcsAplctPrdMngList.do'/>";
listForm.submit();
}
function fncGoDetail(){
var form = document.detailForm ;
form.action = "<c:url value='/kccadr/oprtn/prevent/cndtnEduPrcsAplctPrdMngDetail.do'/>";
form.submit();
}
function fncMdfy(){
var detailForm = document.detailForm ;
detailForm.action = "<c:url value='/kccadr/oprtn/prevent/cndtnEduPrcsAplctPrdMngMdfy.do'/>";
detailForm.submit();
}
//삭제 - useYn-D 처리
function fncDel(){
var data = new FormData(document.getElementById("modyfiForm"));
if(confirm("삭제하시겠습니까?\n데이터 복구가 안됩니다.")){
var url = "<c:url value='/kccadr/oprtn/prevent/cndtnEduPrcsAplctPrdMngDelAjax.do'/>";
console.log(data);
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("삭제되었습니다.");
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
function fn_delInstr(data){
document.instrForm.userId.value = data ;
var data = new FormData(document.getElementById("instrForm"));
if(confirm("삭제하시겠습니까?")){
// var url = "<c:url value='/kccadr/oprtn/prevent/instrDelAjax.do'/>";
var url = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/instrDelAjax.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("삭제되었습니다.");
// 새로고침
window.location.reload();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
event.stopImmediatePropagation();
}
function chkAll(obj) {
// 모든 체크박스의 상태를 헤더 체크박스의 상태와 동일하게 설정
$("input[name='chk']").prop('checked', $(obj).prop('checked'));
}
// 사용자 승인 반려 처리 : 체크박스X
function updateEduAplctOrd(p_aprvlCd, p_eduAplctOrd, p_prcsAplctPrdOrd){
// 기존에 있던 updateEduAplctOrdList function 사용하기 위한 function
var selectedEduAplctOrd = [];
selectedEduAplctOrd.push(p_eduAplctOrd);
var dataToSend = {
"eduAplctOrdList": selectedEduAplctOrd,
"aprvlCd": p_aprvlCd,
"prcsAplctPrdOrd": p_prcsAplctPrdOrd,
"lctrDivCd" : $("#lctrDivCd").val()
};
commAjax(dataToSend);
}
// 사용자 승인 반려 처리 : 체크박스O
function updateEduAplctOrdList(p_aprvlCd, p_prcsAplctPrdOrd) {
if (p_aprvlCd=='30'){
if(!confirm("접수취소(반려)처리 합니까?\n\n교육희망시 사용자가 재신청을 진행해야 합니다.")){
return;
}
}
var selectedEduAplctOrd = [];
// "chk" 이름을 가진 체크박스가 체크된 항목들을 순회
$("input[name='chk']:checked").each(function() {
var eduAplctOrdValue = $(this).val();
selectedEduAplctOrd.push(eduAplctOrdValue);
});
// 선택된 항목이 없으면 경고 메시지를 표시하고 함수를 종료
if (selectedEduAplctOrd.length === 0) {
alert("선택된 항목이 없습니다. 선택 후 다시 시도하세요.");
return false;
}
var dataToSend = {
"eduAplctOrdList": selectedEduAplctOrd,
"aprvlCd": p_aprvlCd,
"prcsAplctPrdOrd": p_prcsAplctPrdOrd,
"lctrDivCd" : $("#lctrDivCd").val()
};
commAjax(dataToSend);
}
function commAjax(dataToSend){
var url = "<c:url value='/kccadr/oprtn/prevent/updateEduAplctAprvlCdAjax.do'/>";
// AJAX 호출을 통해 서버에 데이터 전송
$.ajax({
type:"POST",
url: url,
data: $.param(dataToSend, true), // 직렬화 , 컨트롤러에서 @ModelAttribute로 받을 수 있음
// contentType : 'application/json',
dataType:'json',
success:function(returnData){
if(returnData.result == "success"){
alert("변경 처리 되었습니다.");
window.location.reload();
}else{
alert("변경 중 오류가 발생하였습니다.");
}
},
error: function(jqXHR, textStatus, errorThrown) {
console.error("AJAX Error:", textStatus, errorThrown);
console.error("Response:", jqXHR.responseText);
}
});
}
function fncDdlnCdSave(data){
$('#modyDdlnCd').val(data);
var data = new FormData(document.getElementById("modyfiForm"));
if(confirm("상태를 변경하시겠습니까?")){
var url = "<c:url value='/kccadr/oprtn/prevent/updateDdlnCdAjax.do'/>";
console.log(data);
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("변경되었습니다.");
location.reload();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
// 강사 배치
function fncInstrAsgnmInfo(prcsAplctPrdOrd) {
var form = document.popForm;
form.prcsAplctPrdOrd.value = prcsAplctPrdOrd;
// form.action = "<c:url value='/kccadr/oprtn/prevent/popup/fndthInstrAsgnmPopup.do'/>";
form.action = "<c:url value='/kccadr/oprtn/prevent/popup/cndtnInstrAsgnmPopup.do'/>";
window.open("#", "_securityPop", "scrollbars = no, top=100px, left=100px, height=750px, width=950px");
form.target = "_securityPop";
form.submit();
}
function fn_goDetailPop(p_eduAplctOrd, p_mberId, p_cmdTrgtInfoOrd) {
var form = document.detailPopForm;
form.eduAplctOrd.value = p_eduAplctOrd;
form.userId.value = p_mberId;
form.cmdTrgtInfoOrd.value = p_cmdTrgtInfoOrd;
form.action = "<c:url value='/kccadr/oprtn/prevent/popup/detailPopup.do'/>";
openPopupAndSubmitForm('detailPopForm', 'detailPopForm', 1000, 720);
}
function fnCnclPopup(eduAplctOrd, prcsAplctPrdOrd) {
var form = document.cnclPopupForm;
form.eduAplctOrd.value = eduAplctOrd;
form.prcsAplctPrdOrd.value = prcsAplctPrdOrd;
form.action = "<c:url value='/kccadr/oprtn/prevent/popup/cnclPopup.do'/>";
openPopupAndSubmitForm('cnclPopupForm', 'cnclPopupForm', 700, 380);
}
// 엑셀다운로드
function excelDownLoad() {
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/prevent/eduAplctExcelDownLoad.do'/>";
listForm.submit();
}
// 사용자 승인 반려 처리 : 체크박스X
function fncCancelUserList(
p_prcsAplctPrdOrd
, p_reqNo
){
// 기존에 있던 updateEduAplctOrdList function 사용하기 위한 function
var selectedEduAplctOrd = [];
// "chk" 이름을 가진 체크박스가 체크된 항목들을 순회
$("input[name='chk']:checked").each(function() {
var eduAplctOrdValue = $(this).val();
selectedEduAplctOrd.push(eduAplctOrdValue);
});
// 선택된 항목이 없으면 경고 메시지를 표시하고 함수를 종료
if (selectedEduAplctOrd.length === 0) {
alert("선택된 항목이 없습니다. 선택 후 다시 시도하세요.");
return false;
}
var dataToSend = {
"eduAplctOrdList": selectedEduAplctOrd,
"prcsAplctPrdOrd": p_prcsAplctPrdOrd,
"reqNo" : p_reqNo
};
var url = "<c:url value='/kccadr/oprtn/prevent/eduAplctStatusChange4UserListAjax.do'/>";
commAjax_url(dataToSend, url);
}
function fncCancelUser(
p_eduAplctOrd
, p_prcsAplctPrdOrd
, p_reqNo
){
var dataToSend = {
"eduAplctOrd" : p_eduAplctOrd
, "prcsAplctPrdOrd" : p_prcsAplctPrdOrd
, "reqNo" : p_reqNo
};
var url = "<c:url value='/kccadr/oprtn/prevent/eduAplctStatusChange4UserAjax.do'/>";
commAjax_url(dataToSend, url);
}
function commAjax_url(dataToSend, p_url){
//var url = "<c:url value='/kccadr/oprtn/prevent/updateEduAplctAprvlCdAjax.do'/>";
var url = p_url;
// AJAX 호출을 통해 서버에 데이터 전송
$.ajax({
type:"POST",
url: url,
data: $.param(dataToSend, true), // 직렬화 , 컨트롤러에서 @ModelAttribute로 받을 수 있음
// contentType : 'application/json',
dataType:'json',
success:function(returnData){
if(returnData.result == "success"){
alert("변경 처리 되었습니다.");
window.location.reload();
}else{
alert("변경 중 오류가 발생하였습니다.");
}
},
error: function(jqXHR, textStatus, errorThrown) {
console.error("AJAX Error:", textStatus, errorThrown);
console.error("Response:", jqXHR.responseText);
}
});
}
</script>
</head>
<body>
<form id="detailPopForm" name="detailPopForm" method="post">
<input type="hidden" id="eduAplctOrd" name="eduAplctOrd" />
<input type="hidden" id="userId" name="userId" />
<input type="hidden" id="cmdTrgtInfoOrd" name="cmdTrgtInfoOrd" />
</form>
<form id="cnclPopupForm" name="cnclPopupForm" method="post">
<input type="hidden" id="eduAplctOrd" name="eduAplctOrd" />
<input type="hidden" name="prcsAplctPrdOrd" id="prcsAplctPrdOrd" />
</form>
<form id="modyfiForm" name="modyfiForm">
<input type="hidden" id="modyDdlnCd" name="ddlnCd" />
<input type="hidden" name="prcsAplctPrdOrd" id="prcsAplctPrdOrd" value="<c:out value='${vEPrcsDetailVO.prcsAplctPrdOrd}' />"/>
</form>
<form id="instrForm" name="instrForm" method="post">
<input type="hidden" name="prcsAplctPrdOrd" id="prcsAplctPrdOrd" value="<c:out value='${vEPrcsDetailVO.prcsAplctPrdOrd}' />"/>
<input type="hidden" name="userId" id="userId"/>
</form>
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO" method="post">
<input type="hidden" name="prcsAplctPrdOrd" id="prcsAplctPrdOrd" value="<c:out value='${vEPrcsDetailVO.prcsAplctPrdOrd}' />"/>
</form:form>
<form id="popForm" name="popForm" method="post">
<input type="hidden" name="pageIndex" value="1"/>
<input type="hidden" name="prcsAplctPrdOrd" value="" />
<input type="hidden" name="pageUnit" value="5" />
</form>
<form:form id="detailForm" name="detailForm" commandName="vEPrcsDetailVO" method="post">
<input type="hidden" name="prcsAplctPrdOrd" id="prcsAplctPrdOrd" value="<c:out value='${vEPrcsDetailVO.prcsAplctPrdOrd}' />"/>
<input type="hidden" name="lctrDivCd" id="lctrDivCd" value="60"/>
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<!-- 메뉴에 등록된 URL을 넣으면 해당 메뉴명까지 자동 노출 해줌 -->
<!-- 메뉴에 등록되지 않은 메뉴를 마지막에 넣을떄 1 -->
<!-- 메뉴에 등록되지 않은 메뉴를 마지막에 넣을떄 2 -->
<!-- 메뉴에 등록되지 않은 메뉴를 마지막에 넣을떄 3 -->
<c:import url="/cmm/navi/adminContNav.do">
<c:param name="url" value="/kccadr/oprtn/prevent/cndtnEduPrcsMngList.do"/>
<c:param name="name1" value="과정신청기간관리"/>
<c:param name="name2" value="과정 신청기간 상세"/>
<c:param name="name3" value=""/>
</c:import>
<!-- cont_tit
<div class="cont_tit">
<h2>과정 신청기간 상세</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>조건부기소유예관리</p>
</li>
<li><span class="cur_nav">과정신청기간관리 신청기간 상세</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_상세 -->
<div class="tb_tit01">
<p>교육과정관리</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 210px;">
<col style="width: auto;">
<col style="width: 210px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">교육부분</th>
<td>
<ve:code codeId="VEA001" code="${info.prcsDiv}"/>
</td>
</tr>
<tr>
<th scope="row">과정</th>
<td>
<c:out value="${info.prcsNm}"/>
</td>
</tr>
<tr>
<th scope="row">과정명</th>
<td>
<c:out value="${info.title}"/>
</td>
</tr>
<tr>
<th scope="row">신청기간</th>
<td>
<c:out value="${info.strtPnttm}"/>~<c:out value="${info.endPnttm}"/>
</td>
</tr>
<tr>
<c:if test="${info.prcsDiv eq 10}">
<th scope="row">교육장소</th>
</c:if>
<c:if test="${info.prcsDiv eq 20}">
<th scope="row">관련URL</th>
</c:if>
<td class="addPro_wrap">
<c:out value="${info.eduPlace}"/>
</td>
</tr>
<tr>
<th scope="row">교육기간</th>
<td>
<c:out value="${info.eduStrtPnttm}"/>
</td>
</tr>
<tr>
<th scope="row">상세교육과정</th>
<td>
<c:out value="${fn:replace(info.prcsCn , crlf , '<br/>')}" escapeXml="false" />
</td>
</tr>
<tr>
<th scope="row">정원</th>
<td class="addPro_wrap">
<c:out value="${info.nos}"/>
</td>
</tr>
<tr>
<th scope="row">상태</th>
<td id="ddlnCdStts">
<ve:code codeId="VEA004" code="${info.ddlnCd}"/>
</td>
</tr>
<tr>
<th scope="row">
<p>공개여부(사용여부)</p>
</th>
<td>
${empty info.useYn or info.useYn eq 'Y' ? '공개' : ''}
${info.useYn eq 'N' ? '비공개' : ''}
</td>
</tr>
<tr>
<th scope="row">
<p>첨부파일</p>
</th>
<td>
<c:import url="/cmm/fms/selectBBSFileInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${info.atchFileId}" />
<c:param name="pdf_view" value="Y" />
</c:import>
</td>
</tr>
<%-- <tr>
<th scope="row">
<p>공개여부(사용여부)</p>
</th>
<td>
<c:if test="${empty info.useYn or info.useYn eq 'Y'}">예</c:if>
<c:if test="${info.useYn eq 'N'}">아니오</c:if>
</td>
</tr> --%>
</tbody>
</table>
</div>
<!-- //list_상세 -->
<!-- btn_wrap -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
<button type="button" class="btn_type02" onclick="fncDel(); return false;">삭제</button>
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type02" onclick="fncMdfy(); return false;">수정</button>
<button type="button" class="btn_type03" onclick="fncGoList(); return false;">목록</button>
</div>
</div>
<!--
강사 배치 정보
강사 배치 정보
-->
<div class="tb_tit01">
<p>강사 배치 정보</p>
</div>
<div class="tb_type01">
<table>
<colgroup>
<col style="width: 210px;"><!-- name -->
<col style="width: auto;"><!-- 제출일 -->
<col style="width: 210px;"><!-- 신청상태 -->
<col style="width: 410px;"><!-- 강의계획서 -->
<col style="width: 210px;"><!-- 신청상태 -->
</colgroup>
<thead>
<tr>
<th>강사명</th>
<th>연락처</th>
<th>확정여부</th>
<th>강의계획서</th>
<th>삭제</th>
</tr>
</thead>
<tbody>
<c:choose>
<c:when test="${!empty instrAsgnmList }">
<c:forEach var="list" items="${instrAsgnmList}" varStatus="status">
<tr>
<td>
<c:out value="${list.instrNm }"/>
</td>
<td>
<c:out value="${list.phone }"/>
</td>
<td>
<ve:code codeId="VE0019" code="${list.asgnmAprvlCd}"/>
</td>
<td>
<c:import url="/cmm/fms/selectBBSFileInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${list.lctrPlanAtchFileId}" />
</c:import>
</td>
<td>
<button type="button" class="btn_type01" onclick="fn_delInstr('<c:out value="${list.userId }" />')">삭제</button>
</td>
</tr>
</c:forEach>
</c:when>
<c:otherwise>
<tr>
<td colspan="5">강사 배치 정보가 없습니다.</td>
</tr>
</c:otherwise>
</c:choose>
</tbody>
</table>
</div>
<!-- btn_wrap -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type02" onclick="fncInstrAsgnmInfo('<c:out value="${info.prcsAplctPrdOrd }" />'); return false;">강사배치</button>
</div>
</div>
<!--
교육 신청자 list_상세
교육 신청자 list_상세
-->
<div class="tb_tit01">
<p>교육신청자</p> <!-- ${listPrcsAplct } -->
</div>
<!-- list_top -->
<div class="list_top search-only">
<div class="list_top_1">
<div class="util_right">
<ve:select codeId="VE0003" name="searchSelStatus" id="searchSelStatus" css="class='sel_type1'"
selectedValue="${vEPrcsDetailVO.searchSelStatus}" defaultValue='' includes="10,20,30,60"
defaultText='전체'
/>
<div class="calendar_wrap">
<input type="text" class="calendar" title="시작일 선택" id="searchSmbtStartDt" name="searchSmbtStartDt" value="${vEPrcsDetailVO.searchSmbtStartDt}">
</div>
~
<div class="calendar_wrap">
<input type="text" class="calendar" title="종료일 선택" id="searchSmbtEndDt" name="searchSmbtEndDt" value="${vEPrcsDetailVO.searchSmbtEndDt}">
</div>
<%-- <input type="text" id="searchKeyword" name="searchKeyword" placeholder="검색어를 입력하세요." title="검색어 입력" class="search_input" value="<c:out value='${vEPrcsDetailVO.searchKeyword}'/>"> --%>
<button type="button" class="btn_type08" onclick="fncGoDetail(); return false;">검색</button>
<!-- <button class="btn_type03" onclick="fncReset(this); return false;">초기화</button> -->
</div>
</div>
</div>
<div class="tb_type01">
<table>
<colgroup>
<col style="width: 4%">
<col style="width: 4%">
<col style="width: 5%">
<col style="width: 14%">
<col style="width: 20%">
<col style="width: 17%">
<col style="width: 10%">
<col style="width: 90px;">
<col style="width: auto;">
<col style="width: 180px;">
</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>
<th>이메일</th>
<th>핸드폰</th>
<th>신청일</th>
<th>확정여부</th>
<th>교육상태</th>
<th>승인처리</th>
</tr>
</thead>
<tbody>
<c:choose>
<c:when test="${!empty listPrcsAplct}">
<c:forEach var="list" items="${listPrcsAplct}" varStatus="status">
<tr>
<td>
<!-- 반려인 경우는 처리안되도록 check box을 노출하지 않는다. -->
<c:choose>
<c:when test="${list.aprvlCd ne 30}">
<input name="chk" class="${list.asgnmAprvlCd}"
value="${list.eduAplctOrd}" title="Check" type="checkbox"/>
</c:when>
<c:otherwise>
</c:otherwise>
</c:choose>
</td>
<td>
<c:out value="${list.rowNo}"/>
</td>
<td>
<c:out value="${list.trgtNm}"/>
</td>
<td>
<a href="#none" onclick="fn_goDetailPop('${list.eduAplctOrd}','${list.mberId}','${list.cmdTrgtInfoOrd}')"><c:out value="${list.mberId}"/></a>
</td>
<td>
<c:out value="${list.email}"/>
</td>
<td>
<c:out value="${list.phone}"/>
</td>
<td>
<c:out value="${list.sbmtPnttm}"/>
</td>
<td>
<ve:code codeId="VE0003" code="${list.aprvlCd}"/>
</td>
<td>
<ve:code codeId="VEA003" code="${list.aplctStateCd}"/>
<!-- 취소요청 내용이 있고 미이수, 이수인 상태 -->
<c:if test="${not empty list.cnclCn and (list.aplctStateCd eq 10 or list.aplctStateCd eq 20)}">
(취소-반려)
</c:if>
</td>
<td>
<!-- 반려인 경우는 처리안되도록 check box을 노출하지 않는다. -->
<c:choose>
<c:when test="${list.aprvlCd ne 30}">
<button type="button" class="btn_type04" onclick="updateEduAplctOrd('20', '<c:out value="${list.eduAplctOrd }" />', '<c:out value="${info.prcsAplctPrdOrd }"/>')">승인</button>
<button type="button" class="btn_type05" onclick="fncCancelUser('${list.eduAplctOrd}', '${info.prcsAplctPrdOrd}', '4')">반려</button>
</c:when>
<c:otherwise>
</c:otherwise>
</c:choose>
</td>
</c:forEach>
</c:when>
<c:otherwise>
<tr>
<td colspan="6">신청자가 없습니다.</td>
</tr>
</c:otherwise>
</c:choose>
</tbody>
</table>
</div>
<!-- //list_상세 -->
<!-- btn_wrap -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
<button type="button" class="btn_type02" onclick="excelDownLoad(); return false;">엑셀다운로드</button>
<button type="button" class="btn_type04" onclick="fncDdlnCdSave(10); return false;">신청마감</button>
<button type="button" class="btn_type04" onclick="fncDdlnCdSave(20); return false;">교육확정</button>
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type04" onclick="location.href='<c:url value="/kccadr/oprtn/prevent/cndtnEduPrcsAplctPrdMngList.do" />'; return false;">강의목록</button>
<%-- <button type="button" class="btn_type04" onclick="updateEduAplctOrdList(30, '<c:out value="${info.prcsAplctPrdOrd }" />'); return false;">접수취소(반려)</button> --%>
<button type="button" class="btn_type04" onclick="fncCancelUserList('<c:out value="${info.prcsAplctPrdOrd }" />','4'); return false;">접수취소(반려)</button>
<button type="button" class="btn_type04" onclick="updateEduAplctOrdList(20, '<c:out value="${info.prcsAplctPrdOrd }" />'); return false;">교육승인</button>
</div>
</div>
</div>
</div>
</div>
</form:form>
<!-- //cont -->
</body>
</html>

View File

@ -0,0 +1,456 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%
/**
* @Class Name : fndthEduPrcsAplctPrdMngMdfy.jsp
* @Description : 기반강화연수 기간 정보 수정
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.12.16 조용준 최초 생성
* @author 조용주
* @since 2021.12.16
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<title>교육과정관리</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
//세부과정 추가 버튼 클릭 시 세부과정 추가
$(document).ready(function(){
$('#prcsOrd').change(function(){
fnSelectDivAndCn($(this).val());
});
var prcsDiv = "<c:out value='${info.prcsDiv }' />";
prcsDivChk(prcsDiv)
$(".btn_type01").on('click', function(){
$("#file_temp").click();
});
});
/*
* prcsDivChk
* 10:대면 20:비대면
* 10:대면 20:비대면
* */
function prcsDivChk(prcsDiv){
console.log('prcsDiv : ', prcsDiv);
if(prcsDiv==10){
$('#tr_eduPlace #thId').text('교육장소');
}else{
$('#tr_eduPlace #thId').text('관련URL');
}
}
// div codeNm 가져오는 function
function fnSelectDivAndCn(prcsOrdVal){
var url = "${pageContext.request.contextPath}/kccadr/oprtn/prevent/cndtnEduPrcsAplctSelectDivAndCnAjax.do";
$.ajax({
type:"POST",
url: url,
data:{ "prcsOrd" : prcsOrdVal},
dataType:'json',
async: false,
success:function(returnData){
if(returnData.result == "success"){
// 대면인지 비대면인지
var prcsDiv = returnData.prcsDivCd;
prcsDivChk(prcsDiv);
$('#prcsDiv').val(returnData.prcsDiv);
$('#prcsCn').val(returnData.prcsCn);
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
function addPro() {
var addQuest = $(".addPro_wrap");
var questLen = addQuest.children("div").length;
questLen = Number(questLen+1);
var trHtml="";
trHtml += '<div class="tbody_one">';
trHtml += '<span><span class="span_num3">'+ questLen +'</span>.</span>';
trHtml += '<div>';
trHtml += '<input type="text" name="detailPrcsNm" id="detailPrcsNm"> ';
trHtml += '<button type="button" class="table_del3" onclick="delPro(this)"><img src="${pageContext.request.contextPath}/visitEdu/adm/publish/image/content/btn_del.png"></button>';
trHtml += '</div>';
trHtml += '</div>';
addQuest.append(trHtml);
}
//삭제 버튼 클릭 시 현재 div 삭제 후 지문 숫자 재선언
function delPro(item) {
var bodyThis = $(item).closest('.tbody_one');
var tb = $(item).closest('.addPro_wrap').find('.tbody_one');
var len = $(item).closest('.addPro_wrap').children('.tbody_one').length;
var idx = bodyThis.index();
if(len == 1){
alert("세부과정은 최소1개가 존재해야합니다.");
return false;
}else{
bodyThis.remove();
for(var i=0;i<len;i++){
if(idx>i){
tb.eq(i).find('.span_num3').text(i+1);
}else{
tb.eq(i).find('.span_num3').text(i);
}
}
}
}
function fncAddUser(){
var obj = $(".memList:first").clone(true);
obj.children('input').val('')
/*
var len = $(".memList").length;
$.each(obj.find("input"), function(idx, objInput){
objInput.name = objInput.name.replace(/\[.*\]/,'['+(len+1)+']');
console.log(objInput.name);
if(objInput.name.indexOf("memGrade") < 0){
objInput.value = '';
}
});
obj.find("button").attr("id", obj.find("button").attr("id").replace(/[0-9]/gi, len+2));
obj.find("tr:last > td").text("");
*/
$(".memList:last").after(obj);
}
function fncDelUser(obj){
if($(".memList").length <= 1){
alert("담당자은 최소1개가 존재해야합니다.");
}else{
$(obj).closest("td").remove();
}
}
function fncSave(){
if ($('#prcsCn').val().length>1000){
alert("상세교육과정은 1000자 까지만 저장가능합니다.");
return;
}
var data = new FormData(document.getElementById("createForm"));
//첨부파일 등록 처리-step2
_fileForm2.forEach(function(obj, idx) {
if (obj) data.append("file"+idx, obj.fileObj);
});
if(confirm("저장하시겠습니까?")){
var url = "<c:url value='/kccadr/oprtn/prevent/cndtnEduPrcsAplctPrdMngMdfyAjax.do'/>";
console.log(data);
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("저장되었습니다.");
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
function fncGoList(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/prevent/cndtnEduPrcsAplctPrdMngList.do'/>";
listForm.submit();
}
</script>
</head>
<body>
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO" method="post">
</form:form>
<form:form id="createForm" name="createForm" commandName="vEPrcsDetailVO" method="post">
<input type="hidden" name="prcsAplctPrdOrd" value="<c:out value='${vEPrcsDetailVO.prcsAplctPrdOrd}' default='1' />"/>
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<!-- 메뉴에 등록된 URL을 넣으면 해당 메뉴명까지 자동 노출 해줌 -->
<!-- 메뉴에 등록되지 않은 메뉴를 마지막에 넣을떄 1 -->
<!-- 메뉴에 등록되지 않은 메뉴를 마지막에 넣을떄 2 -->
<!-- 메뉴에 등록되지 않은 메뉴를 마지막에 넣을떄 3 -->
<c:import url="/cmm/navi/adminContNav.do">
<c:param name="url" value="/kccadr/oprtn/prevent/cndtnEduPrcsMngList.do"/>
<c:param name="name1" value="과정신청기간관리"/>
<c:param name="name2" value="과정신청기간수정"/>
<c:param name="name3" value=""/>
</c:import>
<!-- cont_tit
<div class="cont_tit">
<h2>과정 신청기간 상세</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>조건부기소유예관리</p>
</li>
<li><span class="cur_nav">과정신청기간관리 신청기간 수정</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_상세 -->
<div class="tb_tit01">
<p>교육과정관리</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 210px;">
<col style="width: auto;">
<col style="width: 210px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">교육부분</th>
<td>
<input type="text" id="prcsDiv" readonly="readonly" value="${prcsDivNm }"/>
<%-- <ve:select codeId="VEA001" name="prcsDiv" id="prcsDiv" css="class='sel_type1'" selectedValue="${info.prcsDiv}"/> --%>
</td>
</tr>
<tr>
<th scope="row">과정</th>
<td>
<%-- <ve:select codeId="VE0015" name="prcsDiv" id="prcsDiv" css="class='sel_type1'" selectedValue="<c:out value='${info.prcsDiv}'/>" defaultValue='10'/> --%>
<select name="prcsOrd" id="prcsOrd" class="sel_type1">
<c:forEach var="listPrcs" items="${listPrcs}" varStatus="status">
<option value='<c:out value="${listPrcs.prcsOrd}"/>'<c:if test="${listPrcs.prcsOrd eq info.prcsOrd}"> selected</c:if>><c:out value="${listPrcs.prcsOrd}"/>_<c:out value="${listPrcs.prcsNm}"/></option>
</c:forEach>
</select>
</td>
</tr>
<tr>
<th scope="row">과정명</th>
<td class="addPro_wrap">
<input type="text" name="title" id="title" value="${info.title}" style="width:500px;" maxLength="30">
</td>
</tr>
<tr>
<th scope="row">교육기간</th>
<td>
<div class="calendar_wrap">
<input type="text" class="calendar" title="시작일 선택" id="eduStrtPnttm" name="eduStrtPnttm" value="${info.eduStrtPnttm}">
</div>
<%-- ~
<div class="calendar_wrap">
<input type="text" class="calendar" title="종료일 선택" id="eduDdlnPnttm" name="eduDdlnPnttm" value="${info.eduDdlnPnttm}">
</div> --%>
</td>
</tr>
<tr id="tr_eduPlace">
<th scope="row" id="thId">교육장소</th>
<td class="addPro_wrap">
<input type="text" name="eduPlace" id="eduPlace" value="${info.eduPlace}" style="width:800px;" maxlength="80">
</td>
</tr>
<tr>
<th scope="row">신청기간</th>
<td>
<div class="calendar_wrap">
<input type="text" class="calendar" title="시작일 선택" id="strtPnttm" name="strtPnttm" value="${info.strtPnttm}">
</div>
~
<div class="calendar_wrap">
<input type="text" class="calendar" title="종료일 선택" id="endPnttm" name="endPnttm" value="${info.endPnttm}">
</div>
</td>
</tr>
<tr>
<th scope="row">상세교육과정</th>
<td>
<textarea name="prcsCn" id="prcsCn" class="memo" class="inputLight" style="height: 200px;"><c:out value="${info.prcsCn }" /></textarea>
</td>
</tr>
<tr>
<th scope="row">정원</th>
<td class="addPro_wrap">
<input type="text" name="nos" id="nos" value="${info.nos}" style="width:100px;" maxLength="6">
</td>
</tr>
<tr>
<th scope="row">상태</th>
<td>
<ve:select codeId="VEA004" name="ddlnCd" id="ddlnCd" css="class='sel_type1'" selectedValue="${info.ddlnCd}" defaultValue="100" defaultText="기본"/>
</td>
</tr>
<tr>
<th scope="row">
<p>공개여부(사용여부)</p>
</th>
<td>
<input type="radio" name="useYn" id="useY" value="Y" ${empty info.useYn or info.useYn eq 'Y' ? 'checked' : info.useYn}>
<label for="useY">예</label>
<input type="radio" name="useYn" id="useN" value="N" ${info.useYn eq 'N' ? 'checked' : info.useYn}>
<label for="useN">아니오</label>
</td>
</tr>
<tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>첨부파일</p>
</th>
<td class="upload_area" colspan="3">
<!-- <input type="text" id="fileNm" size="30" class="file_input" readonly> --><!-- <button type="button" class="btnType01 btn_add_file">파일 첨부하기</button> -->
<input type="file" id="file_temp" name="file_temp" class="uploadFile" style="display:none"/>
<button type="button" id="filebutton" class="btn_type01">파일 첨부하기</button>
<p style="padding-left:30px;">첨부파일 가능 용량은 20MB입니다. </p><!-- <p style="color:red;font-weight:500">업로드 순서는 1.신청서 2.안내문 입니다.</p> -->
<div class="file_wrap file_upload_box no_img_box">
<table class="tbType02">
<caption>첨부파일 리스트 : 파일명, 종류, 크기, 삭제</caption>
<colgroup>
<col style="width: 60%;">
<col style="width: auto;">
<col style="width: 20%;">
<col style="width: 10%;">
</colgroup>
<thead>
<!-- <th>
<input type="checkbox" id="all_check"><label for="all_check"></label>
</th> -->
<th scope="col">파일 명</th>
<th scope="col">종류</th>
<th scope="col">크기</th>
<th scope="col">삭제</th>
</thead>
<tbody class="tb_file_before">
<tr>
<td colspan="4">
<p>첨부하실 파일을 <span>마우스로 끌어서</span> 넣어주세요.</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="file_wrap fileAfter file_list_div">
<table class="tbType02">
<caption>첨부파일 리스트 : 파일명, 종류, 크기, 삭제</caption>
<colgroup>
<col style="width: 60%">
<col style="width: 10%">
<col style="width: 20%">
<col style="width: 10%">
</colgroup>
<thead>
<!-- <th>
<input type="checkbox" id="all_check"><label for="all_check"></label>
</th> -->
<th scope="col">파일 명</th>
<th scope="col">종류</th>
<th scope="col">크기</th>
<th scope="col">삭제</th>
</thead>
<tbody id="tbody_fiielist" class="tb_file_after">
<c:forEach var="fileList" items="${fileList}" varStatus="status">
<tr class="item_<c:out value='${fileList.atchFileId}' />_<c:out value='${fileList.fileSn}' /> uploaded_obj">
<input type="hidden" name="fileSize" class="item_file_size" value="${fileList.fileSize}">
<td class="td_filename">
<!-- <img src="/direct/img/upload_hwp_img.png" alt="" /> -->
<span class="file_name_text"><c:out value='${fileList.orignlFileNm}' /></span>
</td>
<td class="td_filesort">
<span class="file_filesort_text" value="<c:out value="${fileList.fileExtsn}"/>"><c:out value="${fileList.fileExtsn}"/></span>
</td>
<td class="td_filesize">
<span class="file_size_text" value="<c:out value="${fileList.fileMg}"/>"><c:out value="${fileList.fileMg}"/></span>
</td>
<td>
<button type="button" class="btn_del" onclick="delAtchFile('<c:out value='${fileList.atchFileId}' />', '<c:out value='${fileList.fileSn}' />'); return false;" title="파일삭제"><i></i></button>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- //list_상세 -->
<!-- btn_wrap -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type02" onclick="fncSave(); return false;">수정</button>
<button type="button" class="btn_type03" onclick="fncGoList(); return false;">취소</button>
</div>
</div>
</div>
</div>
</div>
</form:form>
<!-- //cont -->
</body>
</html>

View File

@ -0,0 +1,411 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%
/**
* @Class Name : cndtnEduPrcsAplctPrdMngReg.jsp
* @Description : 기반강화연수 과정 신청기간 등록
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.12.16 조용준 최초 생성
* @author 조용주
* @since 2021.12.16
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<title>교육과정관리</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
$(document).ready(function(){
$('#prcsOrd').change(function(){
fnSelectDivAndCn($(this).val());
});
$('#nos').on('input', function() {
// 숫자만 허용
$(this).val($(this).val().replace(/[^0-9]/g, ''));
// 값이 0으로 시작하면 제거
if ($(this).val().charAt(0) == '0') {
$(this).val($(this).val().substring(1));
}
});
var prcsDiv = "<c:out value='${prcsDiv }' />";
prcsDivChk(prcsDiv);
$(".btn_type01").on('click', function(){
$("#file_temp").click();
});
});
/*
* prcsDivChk
* 10:대면 20:비대면
* 10:대면 20:비대면
* */
function prcsDivChk(prcsDiv){
if(prcsDiv==10){
$('#tr_eduPlace #thId').text('교육장소');
}else{
$('#tr_eduPlace #thId').text('관련URL');
}
}
function fncSave(){
if ($('#prcsCn').val().length>1000){
alert("상세교육과정은 1000자 까지만 저장가능합니다.");
return;
}
var data = new FormData(document.getElementById("createForm"));
//첨부파일 등록 처리-step2
_fileForm2.forEach(function(obj, idx) {
if (obj) data.append("file"+idx, obj.fileObj);
});
if(confirm("저장하시겠습니까?")){
var url = "${pageContext.request.contextPath}/kccadr/oprtn/prevent/cndtnEduPrcsAplctPrdMngRegAjax.do";
$.ajax({
type:"POST",
enctype: 'multipart/form-data',
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("저장되었습니다.");
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
// div codeNm 가져오는 function
function fnSelectDivAndCn(prcsOrdVal){
var url = "${pageContext.request.contextPath}/kccadr/oprtn/prevent/cndtnEduPrcsAplctSelectDivAndCnAjax.do";
$.ajax({
type:"POST",
url: url,
data:{ "prcsOrd" : prcsOrdVal},
dataType:'json',
async: false,
success:function(returnData){
if(returnData.result == "success"){
// 대면인지 비대면인지
var prcsDiv = returnData.prcsDivCd;
prcsDivChk(prcsDiv);
$('#prcsDiv').val(returnData.prcsDiv);
$('#prcsCn').val(returnData.prcsCn);
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
function fncGoList(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/prevent/cndtnEduPrcsAplctPrdMngList.do'/>";
listForm.submit();
}
/* 파일등록 */
var _fileIdx = 0;
var _fileForm2 = new Array();
function handleFileUpload(files,obj) //업로드 function
{
console.log('files', files);
var limitsize = 20*1024*1024; //파일 제한 체크(1개, 20MB)
for (var i = 0; i < files.length; i++){
if(files[i].size > limitsize){
alert(files[i].name+"파일 사이즈가"+getStrFileSize(files[i].size)+"로 20MB이하만 업로드 가능합니다.");
return ;
}
}
for (var i = 0; i < files.length; i++)
{
var fd = new FormData();
fd.append('file', files[i]);
var tmpObj = new Object();
tmpObj.name = "file_" + _fileIdx;
tmpObj.fileObj = files[i];
_fileForm2.push(tmpObj);
sendFileToServer(fd, obj, files[i], _fileIdx);
_fileIdx++;
var totalfileSize = 0;
$('.totalfileCount').text($('.item_file_size').length) ;
$('.item_file_size').each(function(){
totalfileSize += $(this).val()*1 ;
});
$('.totalfileSize').text(getStrFileSize(totalfileSize)) ;
}
}
</script>
</head>
<body>
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO" method="post">
</form:form>
<form:form id="createForm" name="createForm" commandName="adjustDeptManageVO" method="post">
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>과정 신청기간 등록</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>조건부기소유예관리</p>
</li>
<li><span class="cur_nav"> 과정 신청기간 등록</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_상세 -->
<div class="tb_tit01">
<p>과정 신청기간 등록</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 210px;">
<col style="width: auto;">
<col style="width: 210px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">대면구분</th>
<td>
<input type="text" name="prcsDiv" id="prcsDiv" readonly="readonly" value="${prcsDivNm }"/>
</td>
</tr>
<tr>
<th scope="row">교육과정</th>
<td>
<%-- <ve:select codeId="VE0015" name="prcsDiv" id="prcsDiv" css="class='sel_type1'" selectedValue="<c:out value='${info.prcsDiv}'/>" defaultValue='10'/> --%>
<select name="prcsOrd" id="prcsOrd" class="sel_type1">
<c:forEach var="listPrcs" items="${listPrcs}" varStatus="status">
<option value='<c:out value="${listPrcs.prcsOrd}"/>'><c:out value="${listPrcs.prcsOrd}"/>_<c:out value="${listPrcs.prcsNm}"/></option>
</c:forEach>
</select>
</td>
</tr>
<tr>
<th scope="row">과정명</th>
<td class="addPro_wrap">
<input type="text" name="title" id="title" value="${vEEduAplctVO.title}" style="width:500px;" maxLength="30">
</td>
</tr>
<tr>
<th scope="row">교육기간</th>
<td>
<div class="calendar_wrap">
<input type="text" class="calendar" title="교육일 선택" id="eduStrtPnttm" name="eduStrtPnttm" />
</div>
<%-- ~
<div class="calendar_wrap">
<input type="text" class="calendar" title="종료일 선택" id="endPnttm" name="endPnttm" value="${vEEduAplctVO.endPnttm}">
</div> --%>
</td>
</tr>
<tr id="tr_eduPlace">
<th scope="row" id="thId">교육장소</th>
<td class="addPro_wrap">
<input type="text" name="eduPlace" id="eduPlace" value="${vEEduAplctVO.eduPlace}" style="width:800px;" maxlength="80">
</td>
</tr>
<tr>
<th scope="row">신청기간</th>
<td>
<div class="calendar_wrap">
<input type="text" class="calendar" title="시작일 선택" id="strtPnttm" name="strtPnttm" value="${vEEduAplctVO.eduStrtPnttm}">
</div>
~
<div class="calendar_wrap">
<input type="text" class="calendar" title="종료일 선택" id="endPnttm" name="endPnttm" value="${vEEduAplctVO.eduDdlnPnttm}">
</div>
</td>
</tr>
<tr>
<th scope="row">상세교육과정</th>
<td>
<textarea name="prcsCn" id="prcsCn" class="memo" class="inputLight" style="height: 200px;"><c:out value="${prcsCn }" /></textarea>
</td>
</tr>
<tr>
<th scope="row">정원</th>
<td class="addPro_wrap">
<input type="text" name="nos" id="nos" value="${vEEduAplctVO.nos}" style="width:100px;" maxLength="6">
</td>
</tr>
<tr>
<th scope="row">
<p>상태</p>
</th>
<td>
<kc:select codeId="VEA004" name="ddlnCd" id="ddlnCd" defaultText="전체" defaultValue="" css="class='sel_type1'" />
</td>
</tr>
<tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>첨부파일</p>
</th>
<td class="upload_area" colspan="3">
<!-- <input type="text" id="fileNm" size="30" class="file_input" readonly> --><!-- <button type="button" class="btnType01 btn_add_file">파일 첨부하기</button> -->
<div class="file_top">
<div class="left_area">
<input type="file" id="file_temp" name="file_temp" class="uploadFile" style="display:none"/>
<button type="button" id="filebutton" class="btn_type01 btn line blue md">파일 첨부하기</button>
</div>
<p class="cf_text2" style="padding-left:30px;">첨부파일 가능 용량은 20MB입니다. </p><!-- <p style="color:red;font-weight:500">업로드 순서는 1.신청서 2.안내문 입니다.</p> -->
</div>
<div class="file_wrap file_upload_box no_img_box">
<table class="tbType02">
<caption>첨부파일 리스트 : 파일명, 종류, 크기, 삭제</caption>
<colgroup>
<col style="width: 60%;">
<col style="width: auto;">
<col style="width: 20%;">
<col style="width: 10%;">
</colgroup>
<thead>
<!-- <th>
<input type="checkbox" id="all_check"><label for="all_check"></label>
</th> -->
<th scope="col">파일 명</th>
<th scope="col">종류</th>
<th scope="col">크기</th>
<th scope="col">삭제</th>
</thead>
<tbody class="tb_file_before">
<tr>
<td colspan="4">
<p>첨부하실 파일을 <span>마우스로 끌어서</span> 넣어주세요.</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="file_wrap fileAfter file_list_div">
<table class="tbType02">
<caption>첨부파일 리스트 : 파일명, 종류, 크기, 삭제</caption>
<colgroup>
<col style="width: 60%">
<col style="width: 10%">
<col style="width: 20%">
<col style="width: 10%">
</colgroup>
<thead>
<!-- <th>
<input type="checkbox" id="all_check"><label for="all_check"></label>
</th> -->
<th scope="col">파일 명</th>
<th scope="col">종류</th>
<th scope="col">크기</th>
<th scope="col">삭제</th>
</thead>
<tbody id="tbody_fiielist" class="tb_file_after">
<c:forEach var="fileList" items="${fileList}" varStatus="status">
<tr class="item_<c:out value='${fileList.atchFileId}' />_<c:out value='${fileList.fileSn}' /> uploaded_obj">
<input type="hidden" name="fileSize" class="item_file_size" value="${fileList.fileSize}">
<td class="td_filename">
<!-- <img src="/direct/img/upload_hwp_img.png" alt="" /> -->
<span class="file_name_text"><c:out value='${fileList.orignlFileNm}' /></span>
</td>
<td class="td_filesort">
<span class="file_filesort_text" value="<c:out value="${fileList.fileExtsn}"/>"><c:out value="${fileList.fileExtsn}"/></span>
</td>
<td class="td_filesize">
<span class="file_size_text" value="<c:out value="${fileList.fileMg}"/>"><c:out value="${fileList.fileMg}"/></span>
</td>
<td>
<button type="button" class="btn_del" onclick="delAtchFile('<c:out value='${fileList.atchFileId}' />', '<c:out value='${fileList.fileSn}' />'); return false;" title="파일삭제"><i></i></button>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- //list_상세 -->
<!-- btn_wrap -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type01" onclick="fncSave(); return false;">저장</button>
<button type="button" class="btn_type03" onclick="fncGoList(); return false;">목록</button>
</div>
</div>
</div>
</div>
</div>
</form:form>
<!-- //cont -->
</body>
</html>

View File

@ -0,0 +1,193 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%pageContext.setAttribute("crlf", "\r\n"); %>
<%
/**
* @Class Name : fndthEduPrcsMngDetail.jsp
* @Description : 기반강화연수 상세화면
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.12.16 조용준 최초 생성
* @author 조용주
* @since 2021.12.16
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<title>교육과정관리</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
function fncGoList(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/prevent/cndtnEduPrcsMngList.do'/>";
listForm.submit();
}
function fncMdfy(){
var detailForm = document.detailForm ;
detailForm.action = "<c:url value='/kccadr/oprtn/prevent/cndtnEduPrcsMngMdfy.do'/>";
detailForm.submit();
}
//삭제 - useYn-D 처리
function fncDel(){
var data = new FormData(document.getElementById("detailForm"));
if(confirm("삭제하시겠습니까?\n데이터 복구가 안됩니다.")){
var url = "<c:url value='/kccadr/oprtn/prevent/cndtnEduPrcsMngDelAjax.do'/>";
console.log(data);
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("삭제되었습니다.");
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
</script>
</head>
<body>
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO" method="post">
</form:form>
<form:form id="detailForm" name="detailForm" commandName="vEPrcsDetailVO" method="post">
<input type="hidden" name="prcsOrd" value="<c:out value='${vEPrcsDetailVO.prcsOrd}' default='1' />"/>
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<!-- 메뉴에 등록된 URL을 넣으면 해당 메뉴명까지 자동 노출 해줌 -->
<!-- 메뉴에 등록되지 않은 메뉴를 마지막에 넣을떄 1 -->
<!-- 메뉴에 등록되지 않은 메뉴를 마지막에 넣을떄 2 -->
<!-- 메뉴에 등록되지 않은 메뉴를 마지막에 넣을떄 3 -->
<c:import url="/cmm/navi/adminContNav.do">
<c:param name="url" value="/kccadr/oprtn/prevent/cndtnEduPrcsMngList.do"/>
<c:param name="name1" value="과정관리"/>
<c:param name="name2" value="과정관리상세"/>
<c:param name="name3" value=""/>
</c:import>
<!-- cont_tit
<div class="cont_tit">
<h2>교육 과정 등록</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>조건부기소유예관리</p>
</li>
<li><span class="cur_nav">과정관리상세</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_상세 -->
<div class="tb_tit01">
<p>교육과정관리</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 210px;">
<col style="width: auto;">
<col style="width: 210px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">교육부문</th>
<td colspan="3" style="position: relative;">
<ve:code codeId="VEA001" code="${info.prcsDiv}"/>
<div class="put_photo">
<div class="put_photo_in">
<div class="put_photo_box">
<c:if test="${empty info.imageAtchFileId}">
<img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/img_add.png" alt="이미지를 넣어주세요">
</c:if>
<c:if test="${not empty info.imageAtchFileId}">
<img id="instrPhoto" class="id_pic" alt="사진" src='<c:url value='/uss/ion/pwm/getImage.do'/>?atchFileId=<c:out value="${info.imageAtchFileId}"/>' />
</c:if>
<input type="hidden" name="imageAtchFileId" id="imageAtchFileId" value="<c:out value='${info.imageAtchFileId}'/>"/>
</div>
<!-- <button type="button" class="btnType01" onclick="fncPhotoPopup(); return false;">사진등록</button> -->
</div>
</div>
</td>
</tr>
<tr>
<th scope="row">과정명</th>
<td>
<c:out value='${info.prcsNm}' />
</td>
</tr>
<tr>
<th scope="row">과정설명</th>
<td>
<%-- <c:out value='${info.prcsCn}' /> --%>
<c:out value="${fn:replace(info.prcsCn , crlf , '<br/>')}" escapeXml="false" />
</td>
</tr>
<tr>
<th scope="row">사용여부</th>
<td>
<c:if test="${info.useYn eq 'Y'}">
사용
</c:if>
<c:if test="${info.useYn ne 'Y'}">
미사용
</c:if>
</td>
</tr>
</tbody>
</table>
</div>
<!-- //list_상세 -->
<!-- btn_wrap -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
<button type="button" class="btn_type07" onclick="fncDel(); return false;">삭제</button>
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type01" onclick="fncMdfy(); return false;">수정</button>
<button type="button" class="btn_type03" onclick="fncGoList(); return false;">목록</button>
</div>
</div>
</div>
</div>
</div>
</form:form>
<!-- //cont -->
</body>
</html>

View File

@ -0,0 +1,267 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%
/**
* @Class Name : fndthEduPrcsMngMdfy.jsp
* @Description : 기반강화연수 수정
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.12.16 조용준 최초 생성
* @author 조용주
* @since 2021.12.16
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<title>교육과정관리</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
//세부과정 추가 버튼 클릭 시 세부과정 추가
function addPro() {
var addQuest = $(".addPro_wrap");
var questLen = addQuest.children("div").length;
questLen = Number(questLen+1);
var trHtml="";
trHtml += '<div class="tbody_one">';
trHtml += '<span><span class="span_num3">'+ questLen +'</span>.</span>';
trHtml += '<div>';
trHtml += '<input type="text" name="detailPrcsNm" id="detailPrcsNm"> ';
trHtml += '<button type="button" class="table_del3" onclick="delPro(this)"><img src="${pageContext.request.contextPath}/visitEdu/adm/publish/image/content/btn_del.png"></button>';
trHtml += '</div>';
trHtml += '</div>';
addQuest.append(trHtml);
}
//삭제 버튼 클릭 시 현재 div 삭제 후 지문 숫자 재선언
function delPro(item) {
var bodyThis = $(item).closest('.tbody_one');
var tb = $(item).closest('.addPro_wrap').find('.tbody_one');
var len = $(item).closest('.addPro_wrap').children('.tbody_one').length;
var idx = bodyThis.index();
if(len == 1){
alert("세부과정은 최소1개가 존재해야합니다.");
return false;
}else{
bodyThis.remove();
for(var i=0;i<len;i++){
if(idx>i){
tb.eq(i).find('.span_num3').text(i+1);
}else{
tb.eq(i).find('.span_num3').text(i);
}
}
}
}
function fncAddUser(){
var obj = $(".memList:first").clone(true);
obj.children('input').val('')
/*
var len = $(".memList").length;
$.each(obj.find("input"), function(idx, objInput){
objInput.name = objInput.name.replace(/\[.*\]/,'['+(len+1)+']');
console.log(objInput.name);
if(objInput.name.indexOf("memGrade") < 0){
objInput.value = '';
}
});
obj.find("button").attr("id", obj.find("button").attr("id").replace(/[0-9]/gi, len+2));
obj.find("tr:last > td").text("");
*/
$(".memList:last").after(obj);
}
function fncDelUser(obj){
if($(".memList").length <= 1){
alert("담당자은 최소1개가 존재해야합니다.");
}else{
$(obj).closest("td").remove();
}
}
function fncSave(){
var data = new FormData(document.getElementById("createForm"));
if(confirm("수정하시겠습니까?")){
var url = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsMngMdfyAjax.do'/>";
console.log(data);
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("저장되었습니다.");
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
function fncGoList(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/prevent/cndtnEduPrcsMngList.do'/>";
listForm.submit();
}
function fncPhotoPopup() {
var pop = document.createForm;
commonPopWindowopenForm("${pageContext.request.contextPath}/kccadr/oprtn/fndthEnhanceTrn/popup/fndthEduPhotoPopup.do", "750", "660", "fncPhotoPopup", $('#createForm'));
}
</script>
</head>
<body>
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO" method="post">
</form:form>
<form:form id="createForm" name="createForm" commandName="vEPrcsDetailVO" method="post">
<input type="hidden" name="prcsOrd" value="<c:out value='${vEPrcsDetailVO.prcsOrd}' default='1' />"/>
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<!-- 메뉴에 등록된 URL을 넣으면 해당 메뉴명까지 자동 노출 해줌 -->
<!-- 메뉴에 등록되지 않은 메뉴를 마지막에 넣을떄 1 -->
<!-- 메뉴에 등록되지 않은 메뉴를 마지막에 넣을떄 2 -->
<!-- 메뉴에 등록되지 않은 메뉴를 마지막에 넣을떄 3 -->
<c:import url="/cmm/navi/adminContNav.do">
<c:param name="url" value="/kccadr/oprtn/prevent/cndtnEduPrcsMngList.do"/>
<c:param name="name1" value="과정관리수정"/>
<c:param name="name2" value=""/>
<c:param name="name3" value=""/>
</c:import>
<!-- cont_tit
<div class="cont_tit">
<h2>교육 과정 등록</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>조건부기소유예관리</p>
</li>
<li><span class="cur_nav">과정관리수정</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_상세 -->
<div class="tb_tit01">
<p>교육과정관리</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 210px;">
<col style="width: auto;">
<col style="width: 210px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">대면구분</th>
<td colspan="3" style="position: relative;">
<ve:select codeId="VEA001" name="prcsDiv" id="prcsDiv" css="class='sel_type1'"
selectedValue="${info.prcsDiv }" defaultValue=''
defaultText="선택"
/>
<!-- <input type="text" name="instrNm"/> -->
<div class="put_photo">
<div class="put_photo_in">
<div class="put_photo">
<div class="put_photo_in">
<div class="put_photo_box">
<c:if test="${empty info.imageAtchFileId}">
<img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/img_add.png" alt="이미지를 넣어주세요">
</c:if>
<c:if test="${not empty info.imageAtchFileId}">
<img id="instrPhoto" class="id_pic" alt="사진" src='<c:url value='/uss/ion/pwm/getImage.do'/>?atchFileId=<c:out value="${info.imageAtchFileId}"/>' />
</c:if>
<input type="hidden" name="imageAtchFileId" id="imageAtchFileId" value="<c:out value='${info.imageAtchFileId}'/>"/>
</div>
<div>
<button type="button" class="btn_type01" onclick="fncPhotoPopup(); return false;">사진등록</button>
</div>
</div>
</div>
</div>
</div>
<%-- <ve:select codeId="VE0015" name="prcsDiv" id="prcsDiv" css="class='sel_type1'" selectedValue="<c:out value='${info.prcsDiv}'/>" defaultValue='10'/> --%>
</td>
</tr>
<tr>
<th scope="row">과정명</th>
<td>
<input type="text" name="prcsNm" value="${info.prcsNm }"/>
</td>
</tr>
<tr>
<th scope="row">상세교육과정</th>
<td>
<textarea placeholder="과정설명을 입력해주세요." name="prcsCn" id="prcsCn" class="memo" onfocus="this.placeholder=''" onblur="this.placeholder='과정설명을 입력해주세요.'" class="inputLight" style="height: 200px;"><c:out value="${info.prcsCn }" /></textarea>
</td>
</tr>
<tr>
<th scope="row">상태</th>
<td>
<select name="useYn" class="sel_type1">
<option value="Y" <c:if test="${info.useYn=='Y' }">selected="selected"</c:if>>사용</option>
<option value="N" <c:if test="${info.useYn=='N' }">selected="selected"</c:if>>미사용</option>
</select>
</td>
</tr>
</tbody>
</tbody>
</table>
</div>
<!-- //list_상세 -->
<!-- btn_wrap -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type02" onclick="fncSave(); return false;">수정</button>
<button type="button" class="btn_type03" onclick="fncGoList(); return false;">취소</button>
</div>
</div>
</div>
</div>
</div>
</form:form>
<!-- //cont -->
</body>
</html>

View File

@ -0,0 +1,213 @@
<!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 : instrAsgnmPopup.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 fncPopClose(){
self.close();
}
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
if($('#searchEduSlctAreaCd option:selected').text() != '전체'){
listForm.rsdne.value = $('#searchEduSlctAreaCd option:selected').text();
}
listForm.action = "<c:url value='/kccadr/oprtn/prevent/popup/cndtnInstrAsgnmPopup.do'/>";
listForm.submit();
}
function fncInstrAsgnm(p_id) {
$("#userId").val(p_id);
var data1 = new FormData(document.getElementById("createForm"));
if(confirm("강사를 선택 하시겠습니까?")){
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/prevent/cndtnInstrAsgnmAjax.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();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
</script>
</head>
<body>
<div class="area_popup supm_popup">
<div class="cont_popup">
<form:form id="createForm" name="createForm" method="post" onsubmit="return false;">
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd"/>
<input type="hidden" name="eduChasiOrd" id="eduChasiOrd"/>
<input type="hidden" name="userId" id="userId" />
<input type="hidden" name="asgnmAprvlCd" id="asgnmAprvlCd" value="30"/> <!-- VE0019 배정 승인 코드 30 확정 -->
<input type="hidden" name="prcsAplctPrdOrd" id="prcsAplctPrdOrd" value="<c:out value="${vEPrcsDetailVO.prcsAplctPrdOrd}" />" />
</form:form>
<form:form id="listForm" name="listForm" method="post" onsubmit="return false;">
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd"/>
<input type="hidden" name="eduChasiOrd" id="eduChasiOrd"/>
<input type="hidden" name="userId" id="userId" />
<input type="hidden" name="asgnmAprvlCd" id="asgnmAprvlCd" value="30"/> <!-- VE0019 배정 승인 코드 30 확정 -->
<input type="hidden" name="prcsAplctPrdOrd" id="prcsAplctPrdOrd" value="<c:out value="${vEPrcsDetailVO.prcsAplctPrdOrd}" />" />
<input type="hidden" name="pageIndex" value="<c:out value='${vEEduAplctVO.pageIndex}' default='1' />"/>
<input type="hidden" name="pageUnit" value="5" />
<input type="hidden" name="rsdne" value="" />
<div class="area_popup">
<div class="cont_popup">
<!-- list_top -->
<div class="list_top">
<div class="list_top_1">
<div class="util_left">
<p>강사검색</p>
</div>
<%-- <ve:select codeId="VE0008" name="searchEduSlctAreaCd" id="searchEduSlctAreaCd" css="class='sel_type1'" --%>
<%-- selectedText="${vEEduAplctVO.rsdne}" defaultValue='' --%>
<%-- defaultText='전체' --%>
<%-- /> --%>
<div class="util_right">
<input type="text" id="searchKeyword" name="searchKeyword" class="search_input" placeholder="검색어를 입력하세요" value="${vEPrcsDetailVO.searchKeyword }">
<button type="button" class="btn_type08" onclick="linkPage(1); return false;">검색</button>
</div>
</div>
</div>
<div class="pop_tb_tit01">
<p>강사 목록</p>(*선호분야 일치여부, 적은 할당시수 순입니다.)
</div>
<div class="pop_tb_type01">
<table>
<colgroup>
<col style="width: 11%;">
<col style="width: 15%;">
<%-- <col style="width: 10%"> --%>
<col style="width: auto;">
<col style="width: 15%;">
<col style="width: 15%;">
<%-- <col style="width: 9%;"> --%>
<col style="width: 9%;">
</colgroup>
<thead>
<tr>
<th scope="col">이름</th>
<th scope="col">거주<br>지역</th>
<!-- <th scope="col">이동<br>거리</th> -->
<th scope="col">선호분야</th>
<th scope="col">온라인</th>
<th scope="col">구분</th>
<!-- <th scope="col">Penalty 횟수</th> -->
<th scope="col">선택</th>
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<tr>
<td><c:out value='${list.instrNm}'/></td>
<td><c:out value='${list.rsdne}'/></td>
<%-- <td><c:out value='${list.onewayDstnc}'/>Km</td> --%>
<td><ve:code codeId="VE0004" code="${list.prfrnFldCd}"/></td>
<td><c:out value='${list.onlnPsblYn}'/></td>
<td><ve:code codeId="VE0018" code="${list.divCd}"/></td>
<td>
<c:if test='${empty list.chrgNm}'>
<button class="btn_type06"
onclick="fncInstrAsgnm('<c:out value="${list.userId}" />'); return false;">선택</button>
</c:if>
</td>
</tr>
</c:forEach>
<c:if test="${empty list}">
<tr><td colspan="6"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- page -->
<div class="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</div>
<!-- //page -->
<div class="btn_wrap_pop btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<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>