This commit is contained in:
myname 2022-10-14 17:57:44 +09:00
commit 40a7971683
71 changed files with 1628 additions and 1759 deletions

View File

@ -124,6 +124,8 @@ public class LoginVO implements Serializable{
/*20221012 대시보드를 위해 직급 코드 추가*/
private String ofcpsNm;
private String phone;
public String getId() {
return id;
}
@ -429,5 +431,13 @@ public class LoginVO implements Serializable{
public void setCertNum(String certNum) {
this.certNum = certNum;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
}

View File

@ -1,6 +1,8 @@
package kcc.kccadr.accdnt.ars.web;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
@ -28,6 +30,8 @@ import kcc.kccadr.accdnt.ai.service.AdjstIncidentService;
import kcc.kccadr.accdnt.ai.service.AdjstIncidentVO;
import kcc.kccadr.accdnt.ars.service.AdjstReqStatusService;
import kcc.kccadr.accdnt.ars.service.AdjstReqStatusVO;
import kcc.kccadr.adjPgrMgr.exmp.app.service.ExmpAppManageService;
import kcc.kccadr.adjPgrMgr.exmp.cmm.ExmpManageVO;
import kcc.kccadr.adjclsmgr.service.AdjClsMgrService;
import kcc.kccadr.adjclsmgr.service.AdjClsMgrVO;
import kcc.kccadr.advc.service.AdrHstryMgrService;
@ -83,6 +87,8 @@ public class AdjstReqStatusController {
@Resource(name = "adjClsMgrService")
private AdjClsMgrService adjClsMgrService;
@Resource(name = "ExmpAppManageService")
private ExmpAppManageService exmpAppManageService;
/**
* 조정진행 상태 관리 목록 화면
*/
@ -248,6 +254,21 @@ public class AdjstReqStatusController {
model.addAttribute("reqInfo" , reqPeson);
model.addAttribute("agenInfo" , agenPerson);
model.addAttribute("resInfo" , resInfo);
ExmpManageVO exmpManageVO = new ExmpManageVO();
exmpManageVO.setExmpCd("05");
/*
* 20221013 - 이호영
* 도움말 select
* */
List<ExmpManageVO> exmpManageListVO = exmpAppManageService.selectExmpAppManagerList(exmpManageVO);
HashMap<String, String> helpMap = (HashMap<String, String>) exmpManageListVO.stream().collect(
Collectors.toMap(ExmpManageVO::getExmpCcTy, ExmpManageVO::getExmpCn));
model.addAttribute("helpMap" , helpMap);
// --//도움말 select
//이력값 - 시작

View File

@ -646,9 +646,18 @@ public class ApmController {
@RequestMapping(value = "popup/adjstReqOpenExamplePop.do")
public String adjstReqOpenExamplePop(@ModelAttribute("adjstReqVO") AdjstReqVO adjstReqVO, ModelMap model) throws Exception {
model.addAttribute("ccTy", adjstReqVO.getCcTy());
model.addAttribute("exmpCd", adjstReqVO.getExmpCd());
List<AdjstReqVO> exmp = adjstReqService.selectAdjstReqOpenExamplePop(adjstReqVO);
// if (exmp != null && StringUtils.isNotBlank(exmp.getAtchFileId())) {
// FileVO fileVO = new FileVO();
// fileVO.setAtchFileId(exmp.getAtchFileId());
// List<FileVO> fileList = fileService.selectFileInfs(fileVO);
// model.addAttribute("fileList", fileList);
// }
model.addAttribute("exmp", exmp);
model.addAttribute("ccTy", adjstReqVO.getCcTy());
model.addAttribute("exmpCd", adjstReqVO.getExmpCd());
return "/kccadr/adjPgrMgr/apm/popup/adjstReqOpenExamplePop";
}
@ -664,7 +673,7 @@ public class ApmController {
@RequestMapping(value = "popup/adjstReqOpenExamplePop2.do")
public String adjstReqOpenExamplePop2(@ModelAttribute("adjstReqVO") AdjstReqVO adjstReqVO, ModelMap model) throws Exception {
AdjstReqVO exmp = adjstReqService.selectAdjstReqOpenExamplePop(adjstReqVO);
AdjstReqVO exmp = adjstReqService.selectAdjstReqOpenExamplePop(adjstReqVO).get(0);
if (exmp != null && StringUtils.isNotBlank(exmp.getAtchFileId())) {
FileVO fileVO = new FileVO();

View File

@ -64,7 +64,7 @@ public class ExmpAnswerManagerController {
exmpManageVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
// 답변서 코드
exmpManageVO.setCodeId("CC003");
exmpManageVO.setExmpCd("04");
paginationInfo.setTotalRecordCount(exmpAppManageService.selectExmpAppManagerCount(exmpManageVO));
model.addAttribute("paginationInfo", paginationInfo);

View File

@ -16,8 +16,6 @@ public interface ExmpAppManageService {
List<ExmpManageVO> selectExmpAppDetailList(ExmpManageVO exmpManageVO) throws Exception;
Map<String, Object> selectExmpAnswerManagerInfo(ExmpManageVO exmpManageVO);
RestResponse insertExmpAppManager(ExmpManageVO exmpManageVO) throws Exception;
void updateExmpManager(ExmpManageVO exmpManageVO);

View File

@ -36,10 +36,6 @@ public class ExmpAppManageDAO extends EgovAbstractDAO {
return (List<ExmpManageVO>)list("ExmpAppManageDAO.selectExmpDetailList", exmpManageVO);
}
public String selectOneAdjustExmpCcTy(ExmpManageVO exmpManageVO) {
return (String) select("ExmpAppManageDAO.selectOneAdjustExmpCcTy", exmpManageVO);
}
public void insertExmpAppManager(ExmpManageVO exmpManageVO) {
insert("ExmpAppManageDAO.insertExmpManager", exmpManageVO);

View File

@ -59,7 +59,7 @@ public class ExmpAppManageServiceImpl implements ExmpAppManageService {
}
map.put("mgrInfo", mgrInfo);
map.put("list", exmpAppManageDAO.selectExmpAppDetailList(exmpManageVO));
// map.put("list", exmpAppManageDAO.selectExmpAppDetailList(exmpManageVO));
return map;
}
@ -69,40 +69,20 @@ public class ExmpAppManageServiceImpl implements ExmpAppManageService {
return exmpAppManageDAO.selectExmpAppDetailList(exmpManageVO);
}
@Override
public Map<String, Object> selectExmpAnswerManagerInfo(ExmpManageVO exmpManageVO) {
Map<String, Object> map = new HashMap<String, Object>();
String ccTy = exmpAppManageDAO.selectOneAdjustExmpCcTy(exmpManageVO);
if(StringUtils.isEmpty(ccTy))
{
ccTy = "001";
}else {
int resutl = Integer.parseInt(ccTy)+1;
ccTy = Integer.toString(resutl);
}
map.put("ccTy", ccTy);
return map;
}
@Override
public RestResponse insertExmpAppManager(ExmpManageVO exmpManageVO) throws Exception {
try {
exmpManageVO.setExmpMgrId(idgenExmpMrgService.getNextStringId());
exmpAppManageDAO.insertExmpAppManager(exmpManageVO);
for(ExmpManageVO model : exmpManageVO.getExmpList()){
model.setExmpMgrId(exmpManageVO.getExmpMgrId());
model.setExmpDtlId(idgenExmpDtlService.getNextStringId());
model.setFrstRegisterId(exmpManageVO.getFrstRegisterId());
model.setLastUpdusrId(exmpManageVO.getLastUpdusrId());
model.setExmpCcTy(exmpManageVO.getExmpCcTy());
exmpAppManageDAO.insertExmpDetailList(model);
}
// for(ExmpManageVO model : exmpManageVO.getExmpList()){
// model.setExmpMgrId(exmpManageVO.getExmpMgrId());
// model.setExmpDtlId(idgenExmpDtlService.getNextStringId());
// model.setFrstRegisterId(exmpManageVO.getFrstRegisterId());
// model.setLastUpdusrId(exmpManageVO.getLastUpdusrId());
// model.setExmpCcTy(exmpManageVO.getExmpCcTy());
// exmpAppManageDAO.insertExmpDetailList(model);
// }
return new RestResponse(HttpStatus.OK, "정상적으로 등록되었습니다.", LocalDateTime.now());
} catch (Exception e) {
return new RestResponse(HttpStatus.BAD_REQUEST, "오류가 발생하였습니다. 관리자에게 문의해 주세요", LocalDateTime.now());
@ -112,13 +92,13 @@ public class ExmpAppManageServiceImpl implements ExmpAppManageService {
@Override
public void updateExmpManager(ExmpManageVO exmpManageVO) {
System.out.println(":::::::::::::::::");
exmpAppManageDAO.updateExmpManager(exmpManageVO);
for(ExmpManageVO model : exmpManageVO.getExmpList()){
model.setExmpMgrId(exmpManageVO.getExmpMgrId());
model.setLastUpdusrId(exmpManageVO.getLastUpdusrId());
exmpAppManageDAO.updateExmpAppDetails(model);
}
// for(ExmpManageVO model : exmpManageVO.getExmpList()){
// model.setExmpMgrId(exmpManageVO.getExmpMgrId());
// model.setLastUpdusrId(exmpManageVO.getLastUpdusrId());
// exmpAppManageDAO.updateExmpAppDetails(model);
// }
}

View File

@ -64,59 +64,59 @@ public class ExmpAppManagerController {
* @author : 이호영
* @date : 2022.10.11
* @description : 예문관리 LIST
* @param exmpAppManageVO
* @param exmpManageVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping(value = "/kccadr/adjPgrMgr/exmp/exmpAppManagerList.do")
public String exmpAppManagerList(@ModelAttribute("exmpAppManageVO") ExmpManageVO exmpAppManageVO , ModelMap model) throws Exception {
if(exmpAppManageVO.getPageUnit() != 10) {
exmpAppManageVO.setPageUnit(exmpAppManageVO.getPageUnit());
public String exmpAppManagerList(@ModelAttribute("exmpManageVO") ExmpManageVO exmpManageVO , ModelMap model) throws Exception {
if(exmpManageVO.getPageUnit() != 10) {
exmpManageVO.setPageUnit(exmpManageVO.getPageUnit());
}
if("".equals(exmpAppManageVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
exmpAppManageVO.setSearchSortCnd("T1.Exmp_CC_TY");
exmpAppManageVO.setSearchSortOrd("asc");
if("".equals(exmpManageVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
exmpManageVO.setSearchSortCnd("T1.Exmp_CC_TY");
exmpManageVO.setSearchSortOrd("asc");
}
/** paging */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(exmpAppManageVO.getPageIndex());
paginationInfo.setRecordCountPerPage(exmpAppManageVO.getPageUnit());
paginationInfo.setPageSize(exmpAppManageVO.getPageSize());
paginationInfo.setCurrentPageNo(exmpManageVO.getPageIndex());
paginationInfo.setRecordCountPerPage(exmpManageVO.getPageUnit());
paginationInfo.setPageSize(exmpManageVO.getPageSize());
exmpAppManageVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
exmpAppManageVO.setLastIndex(paginationInfo.getLastRecordIndex());
exmpAppManageVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
exmpManageVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
exmpManageVO.setLastIndex(paginationInfo.getLastRecordIndex());
exmpManageVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
exmpAppManageVO.setCodeId("CC002");
paginationInfo.setTotalRecordCount(exmpAppManageService.selectExmpAppManagerCount(exmpAppManageVO));
exmpManageVO.setExmpCd("02");
paginationInfo.setTotalRecordCount(exmpAppManageService.selectExmpAppManagerCount(exmpManageVO));
model.addAttribute("paginationInfo", paginationInfo);
model.addAttribute("list", exmpAppManageService.selectExmpAppManagerList(exmpAppManageVO));
model.addAttribute("list", exmpAppManageService.selectExmpAppManagerList(exmpManageVO));
return "kccadr/adjPgrMgr/exmp/app/exmpAppManagerList";
}
@RequestMapping(value = "/kccadr/adjPgrMgr/exmp/exmpAppManagerCreate.do")
public String exmpAppManagerCreate(ExmpManageVO exmpAppManageVO, ModelMap model) throws Exception {
public String exmpAppManagerCreate(ExmpManageVO exmpManageVO, ModelMap model) throws Exception {
return "kccadr/adjPgrMgr/exmp/app/exmpAppManagerCreate";
}
@RequestMapping(value = "/kccadr/adjPgrMgr/exmp/exmpAppManagerModify.do")
public String exmpAppManagerModify(@ModelAttribute("exmpAppManageVO") ExmpManageVO exmpAppManageVO , ModelMap model) throws Exception {
public String exmpAppManagerModify(@ModelAttribute("exmpManageVO") ExmpManageVO exmpManageVO , ModelMap model) throws Exception {
Map<String, Object> resultMap = exmpAppManageService.selectExmpAppManagerInfo(exmpAppManageVO);;
Map<String, Object> resultMap = exmpAppManageService.selectExmpAppManagerInfo(exmpManageVO);;
model.addAttribute("fileList", resultMap.get("fileList"));
model.addAttribute("mgrInfo", resultMap.get("mgrInfo"));
model.addAttribute("list", resultMap.get("list"));
// model.addAttribute("list", resultMap.get("list"));
return "kccadr/adjPgrMgr/exmp/app/exmpAppManagerModify";
}
@RequestMapping(value = "/kccadr/adjPgrMgr/exmp/updateExmpManager.do")
public ModelAndView updateExmpManager(@ModelAttribute("exmpAppManageVO") ExmpManageVO exmpAppManageVO
public ModelAndView updateExmpManager(@ModelAttribute("exmpManageVO") ExmpManageVO exmpManageVO
,ModelMap model, final MultipartHttpServletRequest multiRequest) throws Exception {
ModelAndView modelAndView = new ModelAndView();
@ -125,36 +125,37 @@ public class ExmpAppManagerController {
String uploadFolder = "";
String atchFileId = exmpAppManageVO.getAtchFileId();
String atchFileId = exmpManageVO.getAtchFileId();
List<FileVO> result = null;
final Map<String, MultipartFile> files = multiRequest.getFileMap();
if(!files.isEmpty() && StringUtils.isNotBlank(exmpAppManageVO.getAtchFileId())){
if(!files.isEmpty() && StringUtils.isNotBlank(exmpManageVO.getAtchFileId())){
FileVO fvo = new FileVO();
fvo.setAtchFileId(atchFileId);
int cnt = fileMngService.getMaxFileSN(fvo);
result = fileUtil.parseFileInf(files, "Exmp_" , cnt, atchFileId, uploadFolder, "");
fileMngService.updateFileInfs(result);
}
exmpAppManageVO.setAtchFileId(atchFileId);
exmpAppManageVO.setLastUpdusrId(loginVO.getUniqId());
exmpManageVO.setAtchFileId(atchFileId);
exmpManageVO.setLastUpdusrId(loginVO.getUniqId());
exmpAppManageService.updateExmpManager(exmpAppManageVO);
exmpAppManageService.updateExmpManager(exmpManageVO);
modelAndView.addObject("result", KccadrConstants.SUCCESS);
return modelAndView;
}
@RequestMapping(value = {"/kccadr/adjPgrMgr/exmp/existsExmpManagerDataCheck.do"}, method = RequestMethod.POST)
public ResponseEntity<RestResponse> exmpAppManagerCheck(HttpServletRequest request , @RequestBody ExmpManageVO exmpAppManageVO) throws Exception {
return ResponseEntity.ok().body(exmpAppManageService.existsExmpManagerDataCheck(exmpAppManageVO));
public ResponseEntity<RestResponse> exmpAppManagerCheck(HttpServletRequest request , @RequestBody ExmpManageVO exmpManageVO) throws Exception {
System.out.println("exmpManageVO.getExmpCcTy() :: "+ exmpManageVO.getExmpCcTy());
return ResponseEntity.ok().body(exmpAppManageService.existsExmpManagerDataCheck(exmpManageVO));
}
@RequestMapping(value="/kccadr/adjPgrMgr/exmp/insertExmpAppManager.do")
public ResponseEntity<RestResponse> insertExmpAppManager(ExmpManageVO exmpAppManageVO, final MultipartHttpServletRequest multiRequest) throws Exception {
public ResponseEntity<RestResponse> insertExmpAppManager(ExmpManageVO exmpManageVO, final MultipartHttpServletRequest multiRequest) throws Exception {
LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
String atchFileId = exmpAppManageVO.getAtchFileId();
String atchFileId = exmpManageVO.getAtchFileId();
List<FileVO> result = null;
final Map<String, MultipartFile> files = multiRequest.getFileMap();
@ -162,9 +163,9 @@ public class ExmpAppManagerController {
result = fileUtil.parseFileInf(files, "Exmp_" , 0, atchFileId, "", "");
atchFileId = fileMngService.insertFileInfs(result);
}
exmpAppManageVO.setAtchFileId(atchFileId);
exmpAppManageVO.setFrstRegisterId(loginVO.getUniqId());
return ResponseEntity.ok().body(exmpAppManageService.insertExmpAppManager(exmpAppManageVO));
exmpManageVO.setAtchFileId(atchFileId);
exmpManageVO.setFrstRegisterId(loginVO.getUniqId());
return ResponseEntity.ok().body(exmpAppManageService.insertExmpAppManager(exmpManageVO));
}
@RequestMapping(value = "/kccadr/adjPgrMgr/exmp/exmpAppManagerDetail.do")
@ -174,7 +175,7 @@ public class ExmpAppManagerController {
model.addAttribute("fileList", resultMap.get("fileList"));
model.addAttribute("mgrInfo", resultMap.get("mgrInfo"));
model.addAttribute("list", resultMap.get("list"));
// model.addAttribute("list", resultMap.get("list"));
return "kccadr/adjPgrMgr/exmp/app/exmpAppManagerDetail";
}

View File

@ -1,162 +1,131 @@
package kcc.kccadr.adjPgrMgr.exmp.cmm;
import kcc.kccadr.adjPgrMgr.cclt.service.ConciliatorManageVO;
import java.util.List;
public class ExmpManageVO extends ConciliatorManageVO {
/**
*
*/
private static final long serialVersionUID = -4650759575042493292L;
List<ExmpManageVO> exmpList;
/* 예문 관리 PK */
private String exmpMgrId;
/* 예문 관리 상세 PK */
private String exmpDtlId;
private String expmCcTy;
private String ccTyNm;
private String expmTit;
private String ccTy;
private String exmpNms;
private String exmpCd;
private String exmpCn;
private String atchFileId;
private String exmpCcTy;
private String exmpTit;
private String codeId;
public String getExmpMgrId() {
return exmpMgrId;
}
public void setExmpMgrId(String exmpMgrId) {
this.exmpMgrId = exmpMgrId;
}
public String getExmpDtlId() {
return exmpDtlId;
}
public void setExmpDtlId(String exmpDtlId) {
this.exmpDtlId = exmpDtlId;
}
public String getExpmCcTy() {
return expmCcTy;
}
public void setExpmCcTy(String expmCcTy) {
this.expmCcTy = expmCcTy;
}
public String getCcTyNm() {
return ccTyNm;
}
public void setCcTyNm(String ccTyNm) {
this.ccTyNm = ccTyNm;
}
public String getExpmTit() {
return expmTit;
}
public void setExpmTit(String expmTit) {
this.expmTit = expmTit;
}
public String getCcTy() {
return ccTy;
}
public void setCcTy(String ccTy) {
this.ccTy = ccTy;
}
public String getExmpNms() {
return exmpNms;
}
public void setExmpNms(String exmpNms) {
this.exmpNms = exmpNms;
}
public String getExmpCd() {
return exmpCd;
}
public void setExmpCd(String exmpCd) {
this.exmpCd = exmpCd;
}
public String getExmpCn() {
return exmpCn;
}
public void setExmpCn(String exmpCn) {
this.exmpCn = exmpCn;
}
public List<ExmpManageVO> getExmpList() {
return exmpList;
}
public void setExmpList(List<ExmpManageVO> exmpList) {
this.exmpList = exmpList;
}
public String getAtchFileId() {
return atchFileId;
}
public void setAtchFileId(String atchFileId) {
this.atchFileId = atchFileId;
}
public String getExmpCcTy() {
return exmpCcTy;
}
public void setExmpCcTy(String exmpCcTy) {
this.exmpCcTy = exmpCcTy;
}
public String getExmpTit() {
return exmpTit;
}
public void setExmpTit(String exmpTit) {
this.exmpTit = exmpTit;
}
public String getCodeId() {
return codeId;
}
public void setCodeId(String codeId) {
this.codeId = codeId;
}
}
package kcc.kccadr.adjPgrMgr.exmp.cmm;
import kcc.kccadr.adjPgrMgr.cclt.service.ConciliatorManageVO;
import java.util.List;
public class ExmpManageVO extends ConciliatorManageVO {
/**
*
*/
private static final long serialVersionUID = -4650759575042493292L;
List<ExmpManageVO> exmpList;
/* 예문 관리 PK */
private String exmpMgrId;
/* 예문 관리 상세 PK */
private String exmpDtlId;
private String exmpCcTy;
private String ccTyNm;
private String exmpTit;
private String ccTy;
private String exmpNms;
private String exmpCd;
private String exmpCn;
private String atchFileId;
public List<ExmpManageVO> getExmpList() {
return exmpList;
}
public void setExmpList(List<ExmpManageVO> exmpList) {
this.exmpList = exmpList;
}
public String getExmpMgrId() {
return exmpMgrId;
}
public void setExmpMgrId(String exmpMgrId) {
this.exmpMgrId = exmpMgrId;
}
public String getExmpDtlId() {
return exmpDtlId;
}
public void setExmpDtlId(String exmpDtlId) {
this.exmpDtlId = exmpDtlId;
}
public String getExmpCcTy() {
return exmpCcTy;
}
public void setExmpCcTy(String exmpCcTy) {
this.exmpCcTy = exmpCcTy;
}
public String getCcTyNm() {
return ccTyNm;
}
public void setCcTyNm(String ccTyNm) {
this.ccTyNm = ccTyNm;
}
public String getExmpTit() {
return exmpTit;
}
public void setExmpTit(String exmpTit) {
this.exmpTit = exmpTit;
}
public String getCcTy() {
return ccTy;
}
public void setCcTy(String ccTy) {
this.ccTy = ccTy;
}
public String getExmpNms() {
return exmpNms;
}
public void setExmpNms(String exmpNms) {
this.exmpNms = exmpNms;
}
public String getExmpCd() {
return exmpCd;
}
public void setExmpCd(String exmpCd) {
this.exmpCd = exmpCd;
}
public String getExmpCn() {
return exmpCn;
}
public void setExmpCn(String exmpCn) {
this.exmpCn = exmpCn;
}
public String getAtchFileId() {
return atchFileId;
}
public void setAtchFileId(String atchFileId) {
this.atchFileId = atchFileId;
}
}

View File

@ -92,8 +92,8 @@ public class ExmpEffectManagerController {
exmpManageVO.setLastIndex(paginationInfo.getLastRecordIndex());
exmpManageVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
// 의견 코드
exmpManageVO.setCodeId("05");
// 신청취지 코드
exmpManageVO.setExmpCd("01");
paginationInfo.setTotalRecordCount(exmpAppManageService.selectExmpAppManagerCount(exmpManageVO));
model.addAttribute("paginationInfo", paginationInfo);
@ -115,7 +115,6 @@ public class ExmpEffectManagerController {
model.addAttribute("fileList", resultMap.get("fileList"));
model.addAttribute("mgrInfo", resultMap.get("mgrInfo"));
model.addAttribute("list", resultMap.get("list"));
return "kccadr/adjPgrMgr/exmp/effect/exmpEffectManagerModify";
}
@ -126,7 +125,7 @@ public class ExmpEffectManagerController {
model.addAttribute("fileList", resultMap.get("fileList"));
model.addAttribute("mgrInfo", resultMap.get("mgrInfo"));
model.addAttribute("list", resultMap.get("list"));
// model.addAttribute("list", resultMap.get("list"));
return "kccadr/adjPgrMgr/exmp/effect/exmpEffectManagerDetail";
}

View File

@ -92,7 +92,7 @@ public class ExmpHelpManagerController {
exmpManageVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
// 의견 코드
exmpManageVO.setCodeId("05");
exmpManageVO.setExmpCd("05");
paginationInfo.setTotalRecordCount(exmpAppManageService.selectExmpAppManagerCount(exmpManageVO));
model.addAttribute("paginationInfo", paginationInfo);
@ -119,7 +119,7 @@ public class ExmpHelpManagerController {
}
@RequestMapping(value = "/kccadr/adjPgrMgr/exmp/exmpHelpManagerDetail.do")
public String exmpHelpManagerDetail( ExmpManageVO exmpManageVO , ModelMap model) throws Exception {
public String exmpHelpManagerDetail(@ModelAttribute("exmpManageVO") ExmpManageVO exmpManageVO , ModelMap model) throws Exception {
Map<String, Object> resultMap = exmpAppManageService.selectExmpAppManagerInfo(exmpManageVO);;
@ -130,5 +130,5 @@ public class ExmpHelpManagerController {
return "kccadr/adjPgrMgr/exmp/help/exmpHelpManagerDetail";
}
}

View File

@ -77,7 +77,7 @@ public class ExmpOpinionManagerController {
exmpManageVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
// 의견 코드
exmpManageVO.setCodeId("CC007");
exmpManageVO.setExmpCd("03");
paginationInfo.setTotalRecordCount(exmpAppManageService.selectExmpAppManagerCount(exmpManageVO));
model.addAttribute("paginationInfo", paginationInfo);

View File

@ -365,7 +365,16 @@ public class AdjstConciliatorController {
model.addAttribute("info", info);
return "/web/kccadr/adjcclt/adjstDrtDetail";
}
}
/**
* 기일조서 상세 > 자주쓰는 의견 목록 팝업
*/
@RequestMapping("/web/kccadr/adjcclt/popup/adjstOpinionsPopList.do")
public String adjstOpinionsPopList(@ModelAttribute("adjstConciliatorVO") AdjstConciliatorVO adjstConciliatorVO, ModelMap model) throws Exception {
// model.addAttribute("info", adjstConciliatorService.selectAdjstRecommendationCommentDetail(adjstConciliatorVO));
return "/web/kccadr/adjcclt/popup/adjstOpinionsPopList";
}
/**
* 조정사건 목록 화면

View File

@ -252,6 +252,10 @@ public class AdjReqMgrVO extends ComDefaultVO implements Serializable{
* */
private String smsSendSeq; // SMS 발송 로그 PK
private String phone; // 수신번호
private String userId;
private String smsSendTypeCd; // 발송유형 - CC052
private String certNum; // 인증번호
public AdjReqMgrVO getAdrVO() {
return adrVO;
@ -1193,9 +1197,30 @@ public class AdjReqMgrVO extends ComDefaultVO implements Serializable{
public void setSmsSendSeq(String smsSendSeq) {
this.smsSendSeq = smsSendSeq;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getSmsSendTypeCd() {
return smsSendTypeCd;
}
public void setSmsSendTypeCd(String smsSendTypeCd) {
this.smsSendTypeCd = smsSendTypeCd;
}
public String getCertNum() {
return certNum;
}
public void setCertNum(String certNum) {
this.certNum = certNum;
}
}

View File

@ -53,7 +53,7 @@ public interface AdjstReqService {
public AdjstReqVO selectAdjstReqOpenExamplePopCn(AdjstReqVO adjstReqVO) throws Exception;
public AdjstReqVO selectAdjstReqOpenExamplePop(AdjstReqVO adjstReqVO) throws Exception;
public List<AdjstReqVO> selectAdjstReqOpenExamplePop(AdjstReqVO adjstReqVO) throws Exception;
// 조정사건 대리인/신청인/피신청인 정보 불러오기
public List<AdjstReqVO> selectAdjsReqUserListByadjSeq(AdjstReqVO adjstReqVO) throws Exception;

View File

@ -165,6 +165,7 @@ public class AdjstReqVO extends ComDefaultVO implements Serializable {
private String reqDetail;
private String rejtReson;
private String edtStatus;
private String exmpMgrId;
private String exmpCd;
private String exmpCn;
private String exmpTit;
@ -881,6 +882,12 @@ public class AdjstReqVO extends ComDefaultVO implements Serializable {
public void setLoginNextUrl(String loginNextUrl) {
this.loginNextUrl = loginNextUrl;
}
public String getExmpMgrId() {
return exmpMgrId;
}
public void setExmpMgrId(String exmpMgrId) {
this.exmpMgrId = exmpMgrId;
}
}

View File

@ -176,8 +176,8 @@ public class AdjstReqDAO extends EgovAbstractDAO {
return (AdjstReqVO) select("AdjstReqDAO.selectAdjstReqOpenAnswerExamplePop",adjstReqVO);
}
public AdjstReqVO selectAdjstReqOpenExamplePop(AdjstReqVO adjstReqVO) throws Exception {
return (AdjstReqVO) select("AdjstReqDAO.selectAdjstReqOpenExamplePop",adjstReqVO);
public List<AdjstReqVO> selectAdjstReqOpenExamplePop(AdjstReqVO adjstReqVO) throws Exception {
return (List<AdjstReqVO>) list("AdjstReqDAO.selectAdjstReqOpenExamplePop",adjstReqVO);
}
public int selectRespondentSchChk(AdjstReqVO adjstReqVO) {

View File

@ -1177,7 +1177,7 @@ public class AdjstReqServiceImpl extends EgovAbstractServiceImpl implements Adj
}
@Override
public AdjstReqVO selectAdjstReqOpenExamplePop(AdjstReqVO adjstReqVO) throws Exception {
public List<AdjstReqVO> selectAdjstReqOpenExamplePop(AdjstReqVO adjstReqVO) throws Exception {
return adjstReqDAO.selectAdjstReqOpenExamplePop(adjstReqVO);
}
}

View File

@ -50,6 +50,7 @@ import kcc.com.utl.fcc.service.EgovStringUtil;
import kcc.com.utl.user.service.CheckAdrProcessUtil;
import kcc.kccadr.accdnt.crtfc.service.CrtfcService;
import kcc.kccadr.adjPgrMgr.exmp.cmm.ExmpManageVO;
import kcc.kccadr.adjReqMgrPast.service.AdjReqMgrPastVO;
import kcc.kccadr.adjst.service.AdjstReqService;
import kcc.kccadr.adjst.service.AdjstReqVO;
import kcc.kccadr.cmm.KccadrConstants;
@ -203,10 +204,34 @@ public class AdjstReqWebController {
*/
@RequestMapping("/web/kccadr/adjst/popup/adjstReqOpenExamplePop.do")
public String adjstReqOpenExamplePop(@ModelAttribute("adjstReqVO") AdjstReqVO adjstReqVO, ModelMap model) throws Exception {
model.addAttribute("ccTy", adjstReqVO.getCcTy());
model.addAttribute("exmpCd", adjstReqVO.getExmpCd());
List<AdjstReqVO> exmpList = adjstReqService.selectAdjstReqOpenExamplePop(adjstReqVO);
// if (exmpList != null && StringUtils.isNotBlank(exmpList.getAtchFileId())) {
// FileVO fileVO = new FileVO();
// fileVO.setAtchFileId(exmpList.getAtchFileId());
// List<FileVO> fileList = fileService.selectFileInfs(fileVO);
// model.addAttribute("fileList", fileList);
// }
model.addAttribute("exmpList", exmpList);
return "/web/kccadr/adjst/popup/adjstReqOpenExamplePop";
}
@RequestMapping(value = {"/web/kccadr/adjst/popup/adjstReqOpenExampleAjax.do"})
public ResponseEntity<RestResponse> saveAdjReqRecordAjax(AdjstReqVO adjstReqVO, HttpServletRequest request) throws Exception {
List<AdjstReqVO> exmpList = adjstReqService.selectAdjstReqOpenExamplePop(adjstReqVO);
// if (exmpList != null && StringUtils.isNotBlank(exmpList.getAtchFileId())) {
// FileVO fileVO = new FileVO();
// fileVO.setAtchFileId(exmpList.getAtchFileId());
// List<FileVO> fileList = fileService.selectFileInfs(fileVO);
// model.addAttribute("fileList", fileList);
// }
return ResponseEntity.ok(new RestResponse(HttpStatus.OK, exmpList, "", LocalDateTime.now()));
}
/**
@ -220,7 +245,7 @@ public class AdjstReqWebController {
@RequestMapping(value = "/web/kccadr/adjst/popup/adjstReqOpenExamplePop2.do")
public String adjstReqOpenExamplePop2(@ModelAttribute("adjstReqVO") AdjstReqVO adjstReqVO, ModelMap model) throws Exception {
AdjstReqVO exmp = adjstReqService.selectAdjstReqOpenExamplePop(adjstReqVO);
AdjstReqVO exmp = adjstReqService.selectAdjstReqOpenExamplePop(adjstReqVO).get(0);
if (exmp != null && StringUtils.isNotBlank(exmp.getAtchFileId())) {
FileVO fileVO = new FileVO();
@ -228,42 +253,46 @@ public class AdjstReqWebController {
List<FileVO> fileList = fileService.selectFileInfs(fileVO);
model.addAttribute("fileList", fileList);
}
System.out.println("exmp :: "+ exmp);
model.addAttribute("exmp", exmp);
return "/web/kccadr/adjst/popup/adjstReqOpenExamplePop2";
}
@RequestMapping("/web/kccadr/adjst/popup/adjstReqOpenExamplePopCn.do")
public ResponseEntity<RestResponse> adjstReqOpenExamplePopCn(@RequestBody AdjstReqVO adjstReqVO) throws Exception {
System.out.println("adjstReqVO.getExmpCd() :: "+ adjstReqVO.getExmpCd());
System.out.println("adjstReqVO.getExmpCcTy() :: "+ adjstReqVO.getExmpCcTy());
AdjstReqVO expm = adjstReqService.selectAdjstReqOpenExamplePopCn(adjstReqVO);
AdjstReqVO exmp = adjstReqService.selectAdjstReqOpenExamplePopCn(adjstReqVO);
// if (expm != null && StringUtils.isNotBlank(expm.getAtchFileId())) {
// if (exmp != null && StringUtils.isNotBlank(exmp.getAtchFileId())) {
// FileVO fileVO = new FileVO();
// fileVO.setAtchFileId(expm.getAtchFileId());
// fileVO.setAtchFileId(exmp.getAtchFileId());
// List<FileVO> fileList = fileService.selectFileInfs(fileVO);
// model.addAttribute("fileList", fileList);
// }
return ResponseEntity.ok().body(new RestResponse(HttpStatus.OK, expm.getExmpCn(), LocalDateTime.now()));
return ResponseEntity.ok().body(new RestResponse(HttpStatus.OK, exmp.getExmpCn(), LocalDateTime.now()));
}
/**
* 조정신청 구분선택 - 안내화면
/**
* @methodName : adjstReqOpenAnswerExamplePop
* @author : 이호영
* @date : 2022.10.14
* @description : 답변서 예문
* @param adjstReqVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/web/kccadr/adjst/popup/adjstReqOpenAnswerExamplePop.do")
public String adjstReqOpenAnswerExamplePop(@ModelAttribute("adjstReqVO") AdjstReqVO adjstReqVO, ModelMap model) throws Exception {
AdjstReqVO expm = adjstReqService.selectAdjstReqOpenAnswerExamplePop(adjstReqVO);
if (expm != null && StringUtils.isNotBlank(expm.getAtchFileId())) {
AdjstReqVO exmp = adjstReqService.selectAdjstReqOpenAnswerExamplePop(adjstReqVO);
if (exmp != null && StringUtils.isNotBlank(exmp.getAtchFileId())) {
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(expm.getAtchFileId());
fileVO.setAtchFileId(exmp.getAtchFileId());
List<FileVO> fileList = fileService.selectFileInfs(fileVO);
model.addAttribute("fileList", fileList);
}
model.addAttribute("expm", expm);
model.addAttribute("exmp", exmp);
return "/web/kccadr/adjst/popup/adjstReqOpenAnswerExamplePop";
}
/**
* 조정신청 구분선택 - 안내화면

View File

@ -398,17 +398,15 @@ public class AdjstExpController {
*/
@RequestMapping("/web/kccadr/adjstExp/popup/adjstReqOpenExamplePopCn.do")
public ResponseEntity<RestResponse> adjstReqOpenExamplePopCn(@RequestBody AdjstReqVO adjstReqVO) throws Exception {
System.out.println("adjstReqVO.getExmpCd() :: "+ adjstReqVO.getExmpCd());
System.out.println("adjstReqVO.getExmpCcTy() :: "+ adjstReqVO.getExmpCcTy());
AdjstReqVO expm = adjstReqService.selectAdjstReqOpenExamplePopCn(adjstReqVO);
AdjstReqVO exmp = adjstReqService.selectAdjstReqOpenExamplePopCn(adjstReqVO);
// if (expm != null && StringUtils.isNotBlank(expm.getAtchFileId())) {
// if (exmp != null && StringUtils.isNotBlank(exmp.getAtchFileId())) {
// FileVO fileVO = new FileVO();
// fileVO.setAtchFileId(expm.getAtchFileId());
// fileVO.setAtchFileId(exmp.getAtchFileId());
// List<FileVO> fileList = fileService.selectFileInfs(fileVO);
// model.addAttribute("fileList", fileList);
// }
return ResponseEntity.ok().body(new RestResponse(HttpStatus.OK, expm.getExmpCn(), LocalDateTime.now()));
return ResponseEntity.ok().body(new RestResponse(HttpStatus.OK, exmp.getExmpCn(), LocalDateTime.now()));
}

View File

@ -6,7 +6,6 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
@ -19,6 +18,7 @@ import kcc.com.cmm.util.StringUtil;
import kcc.kccadr.accdnt.acd.service.AdjstChangeDateVO;
import kcc.kccadr.accdnt.adr.service.AdjstDeputyReqVO;
import kcc.kccadr.accdnt.ai.service.AdjstIncidentVO;
import kcc.kccadr.accdnt.apm.service.AdjstPayMentVO;
import kcc.kccadr.accdnt.ars.service.AdjstReqStatusVO;
import kcc.kccadr.accdnt.crtfc.service.CrtfcService;
import kcc.kccadr.adjclsmgr.service.AdjClsMgrVO;
@ -170,16 +170,16 @@ public class AdjstExpDetailController {
* 조정신청 구분선택 - 안내화면
*/
@RequestMapping("/web/kccadr/adjstExpDetail/popup/adjstPayMentDetailPopup.do")
public String adjstPayMentDetailPopup(@ModelAttribute("adjDeputyReqVO") AdjstDeputyReqVO adjDeputyReqVO, ModelMap model) throws Exception {
public String adjstPayMentDetailPopup(@ModelAttribute("adjstPayMentVO") AdjstPayMentVO adjstPayMentVO, ModelMap model) throws Exception {
return null;
return "/web/kccadr/adjstExp/popup/adjstPayMentDetailPopup";
}
/**
* 조정신청 구분선택 - 안내화면
*/
@RequestMapping("/web/kccadr/adjstExpDetail/popup/openExpExamplePop.do")
public String adjstReqOpenAnswerExamplePop(@ModelAttribute("adjDeputyReqVO") AdjstDeputyReqVO adjDeputyReqVO, ModelMap model) throws Exception {
public String openExpExamplePop(@ModelAttribute("adjDeputyReqVO") AdjstDeputyReqVO adjDeputyReqVO, ModelMap model) throws Exception {
String returnUrl = "/web/kccadr/adjstExpDetail/";

View File

@ -41,4 +41,6 @@ public interface SMSOracleService {
// SMS OTP 인증번호 발송(저작위 SMS서버 DB등록)
public String insertSmsOtpCertNumSend(AdjReqMgrVO adjReqMgrVO) throws Exception;
public String selectAdrOtpCertNumSmsLog(AdjReqMgrVO adjReqMgrVO) throws Exception;
}

View File

@ -13,6 +13,7 @@ import java.net.URLEncoder;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import javax.annotation.Resource;
@ -705,15 +706,16 @@ public class SMSOracleServiceImpl extends EgovAbstractServiceImpl implements SM
int bytes = adjReqMgrVO.getSendMsg().getBytes("euc-kr").length; // 발송메시지 바이트수
if (bytes > 90) {
sMSOracleDAO.insertMmsCustomSend(adjReqMgrVO); // SMS 등록 장문 > SMS DB(오라클)
// sMSOracleDAO.insertMmsCustomSend(adjReqMgrVO); // SMS 등록 장문 > SMS DB(오라클)
adjReqMgrDAO.insertAdrMmsCustomSend(adjReqMgrVO); // SMS 이력 등록 장문 > 전자조정
} else {
sMSOracleDAO.insertSmsCustomSend(adjReqMgrVO); // SMS 등록 단문 > SMS DB(오라클)
// sMSOracleDAO.insertSmsCustomSend(adjReqMgrVO); // SMS 등록 단문 > SMS DB(오라클)
adjReqMgrDAO.insertAdrSmsCustomSend(adjReqMgrVO); // SMS 이력 등록 단문 > 전자조정
}
//sms 발송 관리 테이블에 저장
adjReqMgrVO.setRpplNm("");
// SMS 발송 로그 pk idgen
String smsSendSeq = idgenService.getNextStringId();
adjReqMgrVO.setSmsSendSeq(smsSendSeq);
@ -728,8 +730,11 @@ public class SMSOracleServiceImpl extends EgovAbstractServiceImpl implements SM
LOGGER.debug("SMS 전송DB 등록 결과:[" + result +"]");
return result;
}
@Override
public String selectAdrOtpCertNumSmsLog(AdjReqMgrVO adjReqMgrVO) throws Exception{
return msgMgrDAO.selectAdrOtpCertNumSmsLog(adjReqMgrVO);
}
}

View File

@ -0,0 +1,76 @@
package kcc.kccadr.kccadrCom.web;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
import kcc.com.cmm.LoginVO;
import kcc.kccadr.adjreqmgr.service.AdjReqMgrVO;
import kcc.kccadr.cmm.service.SMSOracleService;
@Component("OtpCertUtil")
public class OtpCertUtil {
@Resource(name = "SMSOracleService")
private SMSOracleService sMSOracleService;
/**
* @Method Name : otpCert
* @작성일 : 2022. 10. 12.
* @작성자 : 이준호
* @Method 설명 : OTP 문자인증 인증번호 검증
*/
public String otpCert(LoginVO loginVO_P, LoginVO loginVO_R) throws Exception{
try {
/*
* select 조건
* loginVO_P - certNum
* loginVO_P - phone
* loginVO_R - uniqId
* smsSendTypeCd = '001' (OTP인증번호 발송)
* limit 1
*
* */
AdjReqMgrVO adjReqMgrVO = new AdjReqMgrVO();
adjReqMgrVO.setCertNum(loginVO_P.getCertNum());
adjReqMgrVO.setPhone(loginVO_P.getPhone());
adjReqMgrVO.setFrstRegisterId(loginVO_R.getUniqId());
String frstRegistPnttm = "";
frstRegistPnttm = sMSOracleService.selectAdrOtpCertNumSmsLog(adjReqMgrVO);
if ("".equals(frstRegistPnttm) || frstRegistPnttm == null) {
return "empty";
} else {
// 시간 비교
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date nowdate = new Date();
Date compareDate = format.parse(frstRegistPnttm);
Calendar cal = Calendar.getInstance();
cal.setTime(nowdate);
// 5분 추가
cal.add(Calendar.MINUTE, +5);
nowdate = cal.getTime();
// 인증번호을 발송한지 5분 이내일때
if (compareDate.before(nowdate)) {
return "success";
} else {
return "timeOut";
}
}
} catch (Exception e) {
return "exception";
}
}
}

View File

@ -1,67 +0,0 @@
package kcc.kccadr.kccadrCom.web;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import kcc.let.uss.umt.service.UserManageVO;
public class otpCertUtil {
/**
* @Method Name : mjonSmsCertCheck
* @작성일 : 2022. 8. 25.
* @작성자 : 이준호
* @Method 설명 : 미허용 IP 관리자 페이지 로그인 SMS인증번호 체크
*/
public String otpCertUtil(String phone, String certNum, String mberId) throws Exception{
// try {
UserManageVO userManageVO = new UserManageVO();
// userManageVO set
userManageVO.setCertNum(certNum);
userManageVO.setMoblphonNo(phone);
userManageVO.setEmplyrId(mberId);
// // SendLogVO set
// SendLogVO sendLogVO = new SendLogVO();
// sendLogVO.setReceive(userManageVO.getMoblphonNo());
//
// // 인증번호 가져오기
// sendLogVO = mjonMsgDataService.selectSysMsgLog(sendLogVO);
// if (sendLogVO == null) {
// return "empty";
// } else {
// // 시간 비교
// SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// Date nowdate = new Date();
// Date compareDate = format.parse(sendLogVO.getFrstSendPnttm());
//
// Calendar cal = Calendar.getInstance();
// cal.setTime(compareDate);
// // 5분 추가
// cal.add(Calendar.MINUTE, +5);
//
// compareDate = cal.getTime();
//
// // 인증번호을 발송한지 5분 이내일때
// if (compareDate.after(nowdate)) {
// UserManageVO checkUser = userManageService.selectAdminUserSmsCertCheck(userManageVO);
//
// if (checkUser != null) {
// return "success";
// } else {
// return "checkNoFail";
// }
// } else {
// return "timeOut";
// }
// }
// } catch (Exception e) {
return "exception";
// }
// }
}
}

View File

@ -79,4 +79,10 @@ public class MsgMgrDAO extends EgovAbstractDAO {
insert("MsgMgrDAO.insertAdrOtpCertNumSmsLog", adjReqMgrVO);
}
public String selectAdrOtpCertNumSmsLog(AdjReqMgrVO adjReqMgrVO) throws Exception{
return (String) select("MsgMgrDAO.selectAdrOtpCertNumSmsLog", adjReqMgrVO);
}
}

View File

@ -88,4 +88,6 @@ public interface EgovLoginService {
void updatePassMissReset(LoginVO loginVO) throws Exception;
void updateEmplyrSttusCode(LoginVO loginVO) throws Exception;
String selectUniqueId(String str) throws Exception;
}

View File

@ -275,5 +275,10 @@ public class EgovLoginServiceImpl extends EgovAbstractServiceImpl implements
loginDAO.updateEmplyrSttusCode(loginVO);
}
@Override
public String selectUniqueId(String str) throws Exception{
return loginDAO.selectUniqueId(str);
}
}

View File

@ -133,4 +133,8 @@ public class LoginDAO extends EgovAbstractDAO {
return (String)select("loginDAO.selectLoginType", str);
}
public String selectUniqueId(String str) throws Exception{
return (String)select("loginDAO.selectUniqueId", str);
}
}

View File

@ -9,6 +9,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Random;
import javax.annotation.Resource;
import javax.script.ScriptEngineManager;
@ -67,6 +68,7 @@ import kcc.com.cmm.util.StringUtil;
import kcc.com.cmm.util.WebUtil;
import kcc.kccadr.adjreqmgr.service.AdjReqMgrVO;
import kcc.kccadr.cmm.service.SMSOracleService;
import kcc.kccadr.kccadrCom.web.OtpCertUtil;
import kcc.let.sym.log.clg.service.EgovLoginLogService;
import kcc.let.sym.log.clg.service.LoginLog;
import kcc.let.sym.mnu.mpm.service.MenuManageJTreeVO;
@ -175,6 +177,9 @@ public class EgovLoginController {
@Resource(name = "SMSOracleService")
private SMSOracleService sMSOracleService;
@Resource(name = "OtpCertUtil")
private OtpCertUtil otpCertUtil;
/*
@ -202,6 +207,7 @@ public class EgovLoginController {
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if (isAuthenticated)
return "redirect:/cmm/main/mainPage.do";
// initRsa(request);
//로그인 페이지 접근시 IP체크 제거_로그인 버튼 클릭 로그인 유형에 따라 체크로 변경_221011_이준호
@ -546,84 +552,56 @@ public class EgovLoginController {
LoginVO resultVO = loginService.actionLogin(loginVO);
/*
* 미허용 IP 인증번호 비교 flag
* OTP 인증번호 비교 flag
* false : 인증번호 비교 결과 맞음
* true : 인증번호 비교 결과 틀림
*
*/
Boolean otpCertFlag = false;
// if(StringUtil.isNotEmpty(loginVO.getCertNum()) && "002".equals(resultVO.getLoginTypeCd())) {
//
// //수신자
// String callTo = resultVO.getMoblphonNo();
// String checkNo = loginVO.getCheckNo();
// String mberId = resultVO.getId();
//
// /*
// * 인증번호 비교
// * return
// * empty = "인증번호 발송 내역이 없습니다. 최고관리자에게 문의하세요."
// * success = "5분이내 발송 내역 비교, 인증번호 비교 시 일치"
// * smsCertFlag = true
// * checkNoFail = "인증번호를 확인해 주세요"
// * timeOut = "인증번호 시간이 초과되었습니다. \\n 인증번호를 다시 발송합니다."
// * Exception = "에러가 발생하였습니다. 다시 시도해 주세요. \\n 에러가 지속될 시 최고관리자에게 문의하세요.";
// * final = "exception";
// *
// * 실패 passMiss 숫자++ update
// * loginService.updatePassMissPlus(loginVO);
// *
// * */
// String result = otpCertUtil.otpCertUtil(callTo, checkNo, mberId);
//
// if(result.equals("empty")) {
// loginService.updatePassMissPlus(loginVO);
// model.addAttribute("message", "인증번호 발송 내역이 없습니다. 최고관리자에게 문의하세요.");
// initRsa(request);
// return "uat/uia/EgovLoginUsr";
// } else if(result.equals("success")) {
// smsCertFlag = true;
// } else if(result.equals("checkNoFail")) {
// loginService.updatePassMissPlus(loginVO);
// model.addAttribute("message", "인증번호를 확인해 주세요");
// model.addAttribute("message_auth", "미허용 IP에서 접속하셨습니다. \\n등록 된 휴대폰 번호로 발송된 인증번호를 입력해주세요.");
// model.addAttribute("mode", "본인인증");
// model.addAttribute("id", resultVO.getId());
// model.addAttribute("password", authSelfPw);
//
// //인증문자 발송
// mjonSmsCertSendUtil.mjonSmsCertSend(callTo);
//
// initRsa(request);
// return "uat/uia/EgovLoginUsr";
// } else if(result.equals("timeOut")) {
// model.addAttribute("message", "인증번호 시간이 초과되었습니다. \\n 인증번호를 다시 발송합니다.");
// model.addAttribute("message_auth", "미허용 IP에서 접속하셨습니다. \\n등록 된 휴대폰 번호로 발송된 인증번호를 입력해주세요.");
// model.addAttribute("mode", "본인인증");
// model.addAttribute("id", resultVO.getId());
// model.addAttribute("password", authSelfPw);
//
// //인증문자 발송
// mjonSmsCertSendUtil.mjonSmsCertSend(callTo);
//
// initRsa(request);
// return "uat/uia/EgovLoginUsr";
// } else if(result.equals("Exception")) {
// model.addAttribute("message", "에러가 발생하였습니다. 다시 시도해 주세요. \\\\n 에러가 지속될 시 최고관리자에게 문의하세요.");
// model.addAttribute("message_auth", "미허용 IP에서 접속하셨습니다. \\n등록 된 휴대폰 번호로 발송된 인증번호를 입력해주세요.");
// model.addAttribute("mode", "본인인증");
// model.addAttribute("id", resultVO.getId());
// model.addAttribute("password", authSelfPw);
//
// //인증문자 발송
// mjonSmsCertSendUtil.mjonSmsCertSend(callTo);
//
// initRsa(request);
// return "uat/uia/EgovLoginUsr";
// }
// }
//
if(StringUtil.isNotEmpty(loginVO.getCertNum()) && "002".equals(resultVO.getLoginTypeCd())) {
/*
* 인증번호 비교
* return
* empty = "인증번호 발송 내역이 없습니다. 최고관리자에게 문의하세요."
* success = "5분이내 발송 내역 비교, 인증번호 비교 시 일치"
* smsCertFlag = true
* timeOut = "인증번호 시간이 초과되었습니다. \\n 인증번호를 다시 발송합니다."
* Exception = "에러가 발생하였습니다. 다시 시도해 주세요. \\n 에러가 지속될 시 최고관리자에게 문의하세요.";
* final = "exception";
*
* 실패 passMiss 숫자++ update
* loginService.updatePassMissPlus(loginVO);
*
* */
String result = otpCertUtil.otpCert(loginVO, resultVO);
if(result.equals("empty")) {
loginService.updatePassMissPlus(loginVO);
model.addAttribute("message", "인증번호가 일치하지 않습니다. \\n 다시 시도해주세요.");
return "uat/uia/EgovLoginUsr";
} else if(result.equals("success")) {
otpCertFlag = true;
} else if(result.equals("timeOut")) {
model.addAttribute("message", "인증번호 시간이 초과되었습니다.");
model.addAttribute("message_auth", "미허용 IP에서 접속하셨습니다. \\n 인증번호 받기를 다시 시도해주세요.");
model.addAttribute("mode", "OTP");
model.addAttribute("id", resultVO.getId());
model.addAttribute("password", authSelfPw);
return "uat/uia/EgovLoginUsr";
} else if(result.equals("Exception")) {
model.addAttribute("message", "에러가 발생하였습니다. 다시 시도해 주세요. \\\\n 에러가 지속될 시 최고관리자에게 문의하세요.");
model.addAttribute("message_auth", "미허용 IP에서 접속하셨습니다. \\n 인증번호 받기를 다시 시도해주세요.");
model.addAttribute("mode", "OTP");
model.addAttribute("id", resultVO.getId());
model.addAttribute("password", authSelfPw);
return "uat/uia/EgovLoginUsr";
}
}
if (loginService.getUserAuth(resultVO) != null) {
resultVO.setAuthority(loginService.getUserAuth(resultVO).getAuthority());
}
@ -648,13 +626,6 @@ public class EgovLoginController {
HttpServletRequest req = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
String userIp = EgovClntInfo.getClntIP(req);
// String userIp = req.getHeader("X-FORWARDED-FOR");
// if (userIp == null) {
// userIp = req.getRemoteAddr();
// }
// 개발중 IP 유형 테스트
// userIp = "123.456.789.000";
/*
* 관리자 로그인 유형 추가_221011
@ -693,7 +664,7 @@ public class EgovLoginController {
}
// OTP 로그인
else if("002".equals(resultVO.getLoginTypeCd()) && StringUtil.isEmpty(resultVO.getCertNum())){
else if("002".equals(resultVO.getLoginTypeCd()) && StringUtil.isEmpty(loginVO.getCertNum()) && !otpCertFlag){
model.addAttribute("mode","OTP");
@ -2293,11 +2264,57 @@ public class EgovLoginController {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
try {
String userId = adjReqMgrVO.getUserId();
//userId -> esntlId 조회후 frstregistId에 set
adjReqMgrVO.setFrstRegisterId(loginService.selectUniqueId(userId));
// data set
adjReqMgrVO = otpDataSet(adjReqMgrVO);
sMSOracleService.insertSmsOtpCertNumSend(adjReqMgrVO);
modelAndView.addObject("result", "SUCCESS");
} catch (Exception e) {
System.out.println("otpCertSmsAjax Exception!!!!!!!!");
modelAndView.addObject("message", "인증번호 발송에 실패하였습니다.");
}
return modelAndView;
}
/**
* (관리자) OTP인증 인증번호 발송 Ajax data set 함수
*
* @return AdjReqMgrVO
*/
private AdjReqMgrVO otpDataSet(AdjReqMgrVO adjReqMgrVO) {
// 인증번호 난수 생성
String contents = "전자조정시스템 OTP 인증 로그인 인증번호 문자입니다. 인증번호는 : %code% 입니다.";
String code = "";
long seed = System.currentTimeMillis();
Random random = new Random(seed);
StringBuffer randomCode = new StringBuffer();
for (int i = 0; i < 6; i++) {
code = randomCode.append(Integer.toString(random.nextInt(10))).toString();
}
contents = contents.replace("%code%", code);
// 문자내용 set
adjReqMgrVO.setSendMsg(contents);
// 인증번호 set
adjReqMgrVO.setCertNum(code);
// 문자 발송 로그
adjReqMgrVO.setSmsSendTypeCd("001");
return adjReqMgrVO;
}
}

View File

@ -1278,7 +1278,7 @@ public class MainController {
if(menuUrl.equals("/web/cop/org/selectOrgDetail.do")){
menuUrl = "/web/cop/org/selectOrgList.do" ;
}else if(menuUrl.equals("/web/kccadr/accdnt/ars/adjstReqStatusDetail.do")
|| menuUrl.equals("/web/kccadr/adjstExpDetail/adjstReqStatusDetail.do")
// || menuUrl.equals("/web/kccadr/adjstExpDetail/adjstReqStatusDetail.do")
|| menuUrl.equals("/web/kccadr/accdnt/acd/adjstChangeDateList.do")
|| menuUrl.equals("/web/kccadr/accdnt/acd/adjstChangeDateCreate.do")
|| menuUrl.equals("/web/kccadr/accdnt/arc/corReqList.do")
@ -1320,7 +1320,21 @@ public class MainController {
}else if(menuUrl.equals("/web/kccadr/accdnt/ai/adjstIncidentDashList.do")) { //나의사건관리 대시보드
menuUrl = "/web/kccadr/accdnt/ai/adjstIncidentList.do";
}
}else if(menuUrl.equals("/web/kccadr/adjstExpDetail/adjstReqStatusDetail.do") // 체험하기
||menuUrl.equals("/web/kccadr/adjstExp/adjstIncidentList.do")
||menuUrl.equals("/web/kccadr/adjstExpDetail/adjstIncidentDetail.do")
||menuUrl.equals("/web/kccadr/adjstExp/adjstReqRegistInformation.do")
||menuUrl.equals("/web/kccadr/adjstExp/adjstReqRegistStep1.do")
||menuUrl.equals("/web/kccadr/adjstExp/adjstReqRegistStep2.do")
||menuUrl.equals("/web/kccadr/adjstExp/adjstReqRegistStep3.do")
||menuUrl.equals("/web/kccadr/adjstExp/SsoLoginUsr.do")
||menuUrl.equals("")
||menuUrl.equals("")
||menuUrl.equals("")
||menuUrl.equals("")
) { //체험하기
menuUrl = "/web/kccadr/adjstExp/adjstExpMainPage.do";
}
@ -1343,7 +1357,7 @@ public class MainController {
}
}else { //조직도 상세
String menuUrl = request.getRequestURI() ;
if(menuUrl.equals("/web/cop/org/selectOrgDetail.do")){
if(menuUrl.equals("/web/cop/org/selectOrgDetail.do")){
menuUrl = "/web/cop/org/selectOrgList.do" ;
ComDefaultVO searchVO = new ComDefaultVO();
searchVO.setSearchKeyword(menuUrl);

View File

@ -8,7 +8,7 @@
SELECT
COUNT(1) AS TOT
FROM ADR_EXMP_MGR T1
WHERE CODE_ID = #codeId#
WHERE T1.EXMP_CD = #exmpCd#
<isNotEmpty property="searchKeyword">
<isEqual prepend="AND" property="searchCondition" compareValue="">
( T1.EXMP_TIT LIKE CONCAT('%' , #searchKeyword#, '%') OR
@ -25,42 +25,18 @@
<select id="ExmpAppManageDAO.selectExmpManagerList" parameterClass="exmpManageVO" resultClass="exmpManageVO">
SELECT
T1.EXMP_MGR_ID AS exmpMgrId
,T1.EXMP_CC_TY AS exmpCcTy
,T1.EXMP_TIT AS exmpTit
,T1.ATCH_FILE_ID AS atchFileId
,T1.EXMP_NMS AS exmpNms
,TO_CHAR(T1.FRST_REGIST_PNTTM,'YYYY-MM-DD') AS frstRegistPnttm
,T1.FRST_REGISTER_ID AS frstRegisterId
,T1.LAST_UPDT_PNTTM AS lastUpdtPnttm
,T1.LAST_UPDUSR_ID AS lastUpdusrId
,T1.CODE_ID AS codeId
FROM (
SELECT
T1.EXMP_MGR_ID
,T1.EXMP_CC_TY
,T1.EXMP_TIT
,T1.ATCH_FILE_ID
,(
SELECT
CASE
WHEN COUNT(*) <![CDATA[ <= ]]> 1 THEN GROUP_CONCAT(S2.CODE_NM SEPARATOR ',')
ELSE S2.CODE_NM ||' 외'|| (COUNT(*)-1) || '건'
END EXMP_NMS
FROM ADR_EXMP_DTL S1 INNER JOIN LETTCCMMNDETAILCODE S2
ON S1.EXMP_CD = S2.CODE AND CODE_ID = #codeId#
WHERE 1=1
AND S1.EXMP_CC_TY = T1.EXMP_CC_TY
GROUP BY S1.EXMP_CC_TY
) AS EXMP_NMS
,T1.FRST_REGIST_PNTTM
,T1.FRST_REGISTER_ID
,T1.LAST_UPDT_PNTTM
,T1.LAST_UPDUSR_ID
,T1.CODE_ID
FROM ADR_EXMP_MGR T1
) T1
WHERE T1.CODE_ID = #codeId#
EXMP_MGR_ID AS exmpMgrId
, T1.EXMP_CD AS exmpCd
, T1.EXMP_CC_TY AS exmpCcTy
, T1.EXMP_TIT AS exmpTit
, T1.EXMP_CN AS exmpCn
, T1.ATCH_FILE_ID AS atchFileId
, TO_CHAR(T1.FRST_REGIST_PNTTM, 'YYYY-MM-DD') AS frstRegistPnttm
, T1.FRST_REGISTER_ID AS frstRegisterId
, TO_CHAR(T1.LAST_UPDT_PNTTM, 'YYYY-MM-DD') AS lastUpdtPnttm
, T1.LAST_UPDUSR_ID AS lastUpdusrId
FROM ADR_EXMP_MGR T1
WHERE T1.EXMP_CD = #exmpCd#
<isNotEmpty property="searchKeyword">
<isEqual prepend="AND" property="searchCondition" compareValue="">
( T1.EXMP_TIT LIKE CONCAT('%' , #searchKeyword#, '%') OR
@ -88,6 +64,8 @@
ADR_EXMP_MGR
SET
EXMP_TIT = #exmpTit#
, EXMP_CN = #exmpCn#
, EXMP_CC_TY = #exmpCcTy#
, ATCH_FILE_ID = #atchFileId#
, LAST_UPDT_PNTTM = NOW()
, LAST_UPDUSR_ID = #lastUpdusrId#
@ -112,20 +90,22 @@
INSERT INTO ADR_EXMP_MGR (
EXMP_MGR_ID
, EXMP_CD
, EXMP_CC_TY
, EXMP_TIT
, EXMP_CN
, ATCH_FILE_ID
, FRST_REGIST_PNTTM
, FRST_REGISTER_ID
, CODE_ID
) VALUES (
#exmpMgrId#
, #exmpCd#
, #exmpCcTy#
, #exmpTit#
, #exmpCn#
, #atchFileId#
, NOW()
, #frstRegisterId#
, #codeId#
)
</insert>
@ -156,14 +136,15 @@
<select id="ExmpAppManageDAO.selectExmpManagerInfo" parameterClass="exmpManageVO" resultClass="exmpManageVO">
SELECT
EXMP_MGR_ID AS exmpMgrId
, EXMP_CD AS exmpCd
, EXMP_CC_TY AS exmpCcTy
, EXMP_TIT AS exmpTit
, EXMP_CN AS exmpCn
, ATCH_FILE_ID AS atchFileId
, FRST_REGIST_PNTTM AS frstRegistPnttm
, FRST_REGISTER_ID AS frstRegisterId
, LAST_UPDT_PNTTM AS lastUpdtPnttm
, LAST_UPDUSR_ID AS lastUpdusrId
, CODE_ID AS codeId
FROM ADR_EXMP_MGR
WHERE EXMP_MGR_ID = #exmpMgrId#
<!-- <isNotEmpty prepend="AND" property="exmpCcTy"> -->
@ -179,18 +160,10 @@
EXMP_MGR_ID
FROM ADR_EXMP_MGR
WHERE EXMP_CC_TY = #exmpCcTy#
AND CODE_ID = #codeId#
AND EXMP_CD = #exmpCd#
)
</select>
<select id="ExmpAppManageDAO.selectOneAdjustExmpCcTy" parameterClass="exmpManageVO" resultClass="String">
SELECT
EXMP_CC_TY AS exmpCcTy
FROM ADR_EXMP_MGR
WHERE CODE_ID = #codeId#
ORDER BY EXMP_CC_TY DESC
</select>
<select id="ExmpAppManageDAO.selectExmpDetailList" parameterClass="exmpManageVO" resultClass="exmpManageVO">
SELECT
EXMP_MGR_ID AS exmpMgrId

View File

@ -894,18 +894,19 @@
<select id="AdjstReqDAO.selectAdjstReqOpenExamplePop" parameterClass="AdjstReqVO" resultClass="AdjstReqVO">
SELECT
T1.EXMP_TIT AS exmpTit
T1.EXMP_MGR_ID AS exmpMgrId
,T1.EXMP_TIT AS exmpTit
,T1.ATCH_FILE_ID AS atchFileId
,T1.EXMP_CC_TY AS exmpCcTy
,T2.EXMP_CD AS exmpCd
,T2.EXMP_CN AS exmpCn
,T1.EXMP_CD AS exmpCd
,T1.EXMP_CN AS exmpCn
FROM
ADR_EXMP_MGR T1
INNER JOIN ADR_EXMP_DTL T2
ON T1.EXMP_CC_TY = T2.EXMP_CC_TY
WHERE 1=1
AND T1.EXMP_CC_TY = #ccTy#
AND T2.EXMP_CD = #exmpCd#
<isEqual property="exmpCd" compareValue="02">
AND T1.EXMP_CC_TY = #ccTy#
</isEqual>
AND T1.EXMP_CD = #exmpCd#
</select>
</sqlMap>

View File

@ -225,12 +225,41 @@
</insert>
<insert id="MsgMgrDAO.insertAdrOtpCertNumSmsLog" parameterClass="AdjReqMgrVO">
INSERT
INTO adr_sms_send_mgr
(
sms_send_seq,
sms_send_type_cd,
phone,
call_from,
cn,
cert_num,
frst_regist_pnttm,
frst_register_id
)
VALUES
(
#smsSendSeq#,
#smsSendTypeCd#,
#trPhone#,
#sendTelNo#,
#sendMsg#,
#certNum#,
now(),
#frstRegisterId#
)
</insert>
<select id="MsgMgrDAO.selectAdrOtpCertNumSmsLog" parameterClass="AdjReqMgrVO" resultClass="String">
SELECT a.frst_regist_pnttm AS frstRegistPnttm
FROM adr_sms_send_mgr a
WHERE a.phone = #phone#
AND a.frst_register_id = #frstRegisterId#
AND a.sms_send_type_cd = '001'
AND a.cert_num = #certNum#
ORDER BY frst_regist_pnttm DESC LIMIT 1
</select>
</sqlMap>

View File

@ -408,4 +408,12 @@
</select>
<select id="loginDAO.selectUniqueId" parameterClass="String" resultClass="String">
SELECT esntl_id as esntlId
FROM LETTNEMPLYRINFO
WHERE EMPLYR_ID = #id#
</select>
</sqlMap>

View File

@ -36,64 +36,7 @@ $(document).ready( function() {
});
});
function fncRowAdd(){
// 등록가능한 갯수
var len = $("select[name*=exmpCd]:first option").length;
var rowLen = $(".addTb > table > tbody > tr").length;
var obj = $(".addTb > table > tbody > tr:last");
var cloneObj = obj.clone(true);
console.log('cloneObj : ',cloneObj);
if(len == 0 || rowLen >= (len-1)){
alert("등록가능한 항목은 갯수는 " + (len-1) + "개 입니다.");
return false;
}
var exmpCd = cloneObj.find("select[name*=exmpCd]");
var exmpCn = cloneObj.find("textarea[name*=exmpCn]");
exmpCd.val("");
exmpCn.val("");
exmpCd.attr("name", exmpCd.attr("name").replace(/[0-9]/gi, rowLen));
exmpCn.attr("name", exmpCn.attr("name").replace(/[0-9]/gi, rowLen));
obj.after(cloneObj);
}
function fncRowDel(){
var rowLen = $(".addTb > table > tbody > tr").length;
if(rowLen == 1){
alert("더이상 삭제할 수 없습니다.");
return false;
}
$(".addTb > table > tbody > tr:last").remove();
}
// function fncSave(){
// var exmpCcTy = "<c:out value='${mgrInfo.exmpCcTy}' />";
// if(exmpCcTy != ''){
// saveProcess();
// }else{
// $.ajax({
// type: "POST",
// url: "/kccadr/adjPgrMgr/exmp/existsExmpManagerDataCheck.do",
// data: JSON.stringify({exmpCcTy : 0
// ,codeId : $('#codeId').val()}),
// dataType:'json',
// async: false,
// processData: false,
// contentType: "application/json",
// cache: false,
// success: function (data) {
// if(data.status == "OK"){
// saveProcess();
// }else{
// alert(data.message);
// return false;
// }
// },
// error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
// });
// }
// }
function saveProcess(){
if(!validation()){
return false;
@ -115,7 +58,7 @@ function saveProcess(){
success:function(returnData){
if(returnData.status == "OK"){
alert(returnData.data);
fncDetail();
fncGoList();
}else{
alert(returnData.data);
}
@ -140,38 +83,21 @@ function validation(){
return flag = false;
}
var cn = $('#exmpCn').val();
var validArr = [];
$.each(obj , function(idx, elm){
var cn = $(this).find("textarea[name*=exmpCn]").val();
var textLen = conByteLeng(cn); //예문 입력 내용 Byte 계산 처리
if(cn == ''){
alert("예문내용을 입력해주세요.");
return flag = false;
}
var textLen = conByteLeng(cn);
if(cn == ''){
alert("예문내용을 입력해주세요.["+(idx+1)+"]");
return flag = false;
}
if(Number(textLen) > 2000){
if(Number(textLen) > 2000){
alert("예문 내용의 길이는 2000자를 넘을 수 없습니다.");
return flag = false;
}
alert("예문 내용의 길이는 2000자를 넘을 수 없습니다.");
return flag = false;
});
var checkObj = validArr.reduce((accu, curr) => {
accu[curr] = (accu[curr] || 0)+1;
return accu;
}, {});
$.each(checkObj, function(key, value){
if(parseInt(value) > 1){
alert("동일한 항목을 중복으로 등록하실 수 없습니다.");
return flag = false;
}
});
}
return flag;
}
@ -180,13 +106,6 @@ function fncGoList(){
varFrom.action = "<c:url value='/kccadr/adjPgrMgr/exmp/exmpAnswerManagerList.do'/>";
varFrom.submit();
}
function fncDetail(){
var varFrom = document.getElementById("createForm");
varFrom.action = "<c:url value='/kccadr/adjPgrMgr/exmp/exmpAnswerManagerDetail.do'/>";
varFrom.submit();
}
</script>
<style>
#exmpTit{width: 95%}
@ -199,7 +118,7 @@ function fncDetail(){
<input type="hidden" name="searchCondition" value="<c:out value='${exmpManageVO.searchCondition}'/>"/>
<input type="hidden" name="searchKeyword" value="<c:out value='${exmpManageVO.searchKeyword}'/>"/>
<input type="hidden" name="pageIndex" value="<c:out value='${exmpManageVO.pageIndex}'/>"/>
<input type="hidden" name="codeId" id="codeId" value="<c:out value="${exmpManageVO.codeId}" />" />
<input type="hidden" name="exmpCd" value="<c:out value="${exmpManageVO.exmpCd}" />" />
<input type="hidden" name="exmpCcTy" id="exmpCcTy" value="" />
<!-- <input type="hidden" name="exmpTit" value="답변서예문" /> -->
@ -209,18 +128,17 @@ function fncDetail(){
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>답변서예문등록</h2>
<h2>답변서예문관리 등록</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li><p>조정진행관리</p></li>
<li><p>답변서예문관리</p></li>
<li><span class="cur_nav">답변서예문등록</span></li>
<li><span class="cur_nav">답변서예문관리 등록</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<p class="tb_tit">답변서</p>
<p class="tb_tit">기본 정보</p>
<div class="tbType02">
<table>
<colgroup>
@ -236,18 +154,6 @@ function fncDetail(){
<td>
<input type="text" placeholder="제목을 입력해주세요." name="exmpTit" id="exmpTit" value="<c:out value='${mgrInfo.exmpTit}' />">
</td>
<!-- <th>저작물종류</th> -->
<!-- <td> -->
<%-- <c:choose> --%>
<%-- <c:when test="${not empty mgrInfo}"> --%>
<%-- <kc:code codeId="CC002" code="${mgrInfo.exmpCcTy}"/> --%>
<%-- <input type="hidden" name="exmpCcTy" value="<c:out value='${mgrInfo.exmpCcTy}'/>"/> --%>
<%-- </c:when> --%>
<%-- <c:otherwise> --%>
<%-- <kc:select codeId="CC002" name="exmpCcTy" id="exmpCcTy" defaultText="선택" defaultValue="" selectedValue="${mgrInfo.exmpCcTy}"/> --%>
<%-- </c:otherwise> --%>
<%-- </c:choose> --%>
<!-- </td> -->
</tr>
<tr>
<th><span class="">첨부파일</span></th>
@ -324,49 +230,24 @@ function fncDetail(){
</div>
<!-- //list_상세 -->
<div class="tb_tit">
<p>예문내용</p>
<!-- <div class="btn_wrap"> -->
<!-- <button type="button" class="btn_plus" onclick="fncRowAdd(); return false;"><i></i></button> -->
<!-- <button type="button" class="btn_minus" onclick="fncRowDel(); return false;"><i></i></button> -->
<!-- </div> -->
<p>답변서</p>
</div>
<div class="list tbType01 addTb">
<table>
<colgroup>
<%-- <col style="width: 27%"> --%>
<col style="width: auto">
</colgroup>
<thead>
<tr>
<!-- <th>항목</th> -->
<th>예문내용</th>
</tr>
</thead>
<tbody>
<c:choose>
<c:when test="${fn:length(list) eq 0}">
<tr>
<!-- <td> -->
<%-- <kc:select codeId="CC040" name="exmpList[0].exmpCd" id="test" defaultText="선택" defaultValue="" selectedValue="" css="style='width:200px; height:38px;'"/> --%>
<!-- </td> -->
<td>
<textarea name="exmpList[0].exmpCn" placeholder="예문을 입력해주세요." style="resize: none; width:96%; margin: 10px 0;"></textarea>
</td>
</tr>
</c:when>
<c:otherwise>
<c:forEach var="list" items="${list}" varStatus="status">
<tr>
<!-- <td> -->
<%-- <kc:select codeId="CC040" name="exmpList[${status.index}].exmpCd" defaultText="선택" defaultValue="" selectedValue="${list.exmpCd}" css="style='width:200px; height:38px;'"/> --%>
<!-- </td> -->
<td>
<textarea name="exmpList[<c:out value='${status.index}' />].exmpCn" placeholder="예문을 입력해주세요." style="resize: none; width:96%; margin: 10px 0;"><c:out value='${list.exmpCn}' /></textarea>
</td>
</tr>
</c:forEach>
</c:otherwise>
</c:choose>
<tr>
<td>
<textarea name="exmpCn" id="exmpCn" placeholder="예문을 입력해주세요." style="resize: none; height: 250px; width:96%; margin: 10px 0;"></textarea>
</td>
</tr>
</tbody>
</table>
</div>

View File

@ -53,19 +53,18 @@
<input type="hidden" name="searchCondition" value="<c:out value='${exmpManageVO.searchCondition}'/>"/>
<input type="hidden" name="searchKeyword" value="<c:out value='${exmpManageVO.searchKeyword}'/>"/>
<input type="hidden" name="pageIndex" value="<c:out value='${exmpManageVO.pageIndex}'/>"/>
<input type="hidden" name="codeId" value="<c:out value="${exmpManageVO.codeId}" />" />
<input type="hidden" name="exmpCd" value="<c:out value="${exmpManageVO.exmpCd}" />" />
<input type="hidden" name="exmpMgrId" value="<c:out value="${exmpManageVO.exmpMgrId}" />" />
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>답변서예문상세</h2>
<h2>답변서예문관리 상세</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li><p>조정진행관리</p></li>
<li><p>답변서예문관리</p></li>
<li><span class="cur_nav">답변서예문상세</span></li>
<li><span class="cur_nav">답변서예문관리 상세</span></li>
</ul>
</div>
<!-- //cont_tit -->
@ -115,6 +114,7 @@
<div class="list tbType01 addTb">
<table>
<colgroup>
<%-- <col style="width: 20%"> --%>
<col style="width: auto">
</colgroup>
<thead>
@ -123,13 +123,11 @@
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<tr>
<td style="text-align: left; line-height: 30px; padding: 10px;">
<c:out value="${fn:replace(list.exmpCn, crlf , '<br/>')}" escapeXml="false" />
</td>
</tr>
</c:forEach>
<tr>
<td style="text-align: left; line-height: 30px; padding: 10px;">
<c:out value="${fn:replace(mgrInfo.exmpCn, crlf , '<br/>')}" escapeXml="false" />
</td>
</tr>
</tbody>
</table>
</div>

View File

@ -81,7 +81,7 @@
<input type="hidden" name="pageIndex" value="<c:out value='${exmpManageVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${exmpManageVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${exmpManageVO.searchSortOrd}" />" />
<input type="hidden" name="codeId" value="<c:out value="${exmpManageVO.codeId}" />" />
<input type="hidden" name="exmpCd" value="<c:out value="${exmpManageVO.exmpCd}" />" />
<input type="hidden" name="exmpMgrId" value="0" />
<div class="cont_wrap">
@ -89,13 +89,13 @@
<!-- cont_tit -->
<div class="cont_tit">
<h2>답변서예문관리</h2>
<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>
<li><span class="cur_nav">답변서예문관리 목록</span></li>
</ul>
</div>
<!-- //cont_tit -->

View File

@ -147,12 +147,12 @@
var textLen = conByteLeng(cn); //예문 입력 내용 Byte 계산 처리
if(cd == ''){
alert("항목을 선택해주세요.["+(idx+1)+"]");
alert("항목을 선택해주세요.");
return flag = false;
}
if(cn == ''){
alert("예문내용을 입력해주세요.["+(idx+1)+"]");
alert("예문내용을 입력해주세요.");
return flag = false;
}
@ -204,19 +204,18 @@
<input type="hidden" name="pageIndex" value="<c:out value='${exmpManageVO.pageIndex}'/>"/>
<input type="hidden" name="searchSortOrd" value="<c:out value="${exmpManageVO.searchSortOrd}" />"/>
<input type="hidden" name="exmpMgrId" value="<c:out value='${mgrInfo.exmpMgrId}' />">
<input type="hidden" name="codeId" id="codeId" value="<c:out value='${mgrInfo.codeId}' />">
<input type="hidden" name="exmpCd" value="<c:out value="${exmpManageVO.exmpCd}" />" />
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>답변서예문수정</h2>
<h2>답변서예문관리 수정</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li><p>조정진행관리</p></li>
<li><p>답변서예문관리</p></li>
<li><span class="cur_nav">답변서예문수정</span></li>
<li><span class="cur_nav">답변서예문관리 수정</span></li>
</ul>
</div>
<!-- //cont_tit -->
@ -328,14 +327,11 @@
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<tr>
<input type="hidden" name="exmpList[${status.index}].exmpDtlId" value="<c:out value='${list.exmpDtlId}' />">
<td>
<textarea name="exmpList[<c:out value='${status.index}' />].exmpCn" placeholder="예문을 입력해주세요." style="resize: none; width:96%; margin: 10px 0;"><c:out value='${list.exmpCn}' /></textarea>
</td>
</tr>
</c:forEach>
<tr>
<td style="text-align: left; line-height: 30px; padding: 10px;">
<textarea name="exmpCn" id="exmpCn" placeholder="예문을 입력해주세요." style="resize: none; height: 250px; width:96%; margin: 10px 0;"><c:out value='${mgrInfo.exmpCn}' /></textarea>
</td>
</tr>
</tbody>
</table>
</div>

View File

@ -26,7 +26,7 @@
%>
<html lang="ko">
<head>
<title>예문관리</title>
<title>신청원인예문관리</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
$(document).ready( function() {
@ -36,62 +36,27 @@
});
});
function fncRowAdd(){
// 등록가능한 갯수
var len = $("select[name*=exmpCd]:first option").length;
var rowLen = $(".addTb > table > tbody > tr").length;
var obj = $(".addTb > table > tbody > tr:last");
var cloneObj = obj.clone(true);
console.log('cloneObj : ',cloneObj);
if(len == 0 || rowLen >= (len-1)){
alert("등록가능한 항목은 갯수는 " + (len-1) + "개 입니다.");
return false;
}
var exmpCd = cloneObj.find("select[name*=exmpCd]");
var exmpCn = cloneObj.find("textarea[name*=exmpCn]");
exmpCd.val("");
exmpCn.val("");
exmpCd.attr("name", exmpCd.attr("name").replace(/[0-9]/gi, rowLen));
exmpCn.attr("name", exmpCn.attr("name").replace(/[0-9]/gi, rowLen));
obj.after(cloneObj);
}
function fncRowDel(){
var rowLen = $(".addTb > table > tbody > tr").length;
if(rowLen == 1){
alert("더이상 삭제할 수 없습니다.");
return false;
}
$(".addTb > table > tbody > tr:last").remove();
}
function fncSave(){
var exmpCcTy = "<c:out value='${mgrInfo.exmpCcTy}' />";
if(exmpCcTy != ''){
saveProcess();
}else{
$.ajax({
type: "POST",
url: "/kccadr/adjPgrMgr/exmp/existsExmpManagerDataCheck.do",
data: JSON.stringify({exmpCcTy : $("#exmpCcTy").val()
,codeId : $('#codeId').val()}),
dataType:'json',
async: false,
processData: false,
contentType: "application/json",
cache: false,
success: function (returnData) {
if(returnData.status == "OK"){
saveProcess();
}else{
alert(returnData.data);
return false;
}
},
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
});
}
$.ajax({
type: "POST",
url: "/kccadr/adjPgrMgr/exmp/existsExmpManagerDataCheck.do",
data: JSON.stringify({exmpCcTy : $("#exmpCcTy").val()
,codeId : $('#codeId').val()}),
dataType:'json',
async: false,
processData: false,
contentType: "application/json",
cache: false,
success: function (returnData) {
if(returnData.status == "OK"){
saveProcess();
}else{
alert(returnData.data);
return false;
}
},
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
});
}
function saveProcess(){
@ -208,18 +173,17 @@
<input type="hidden" name="searchCondition" value="<c:out value='${exmpManageVO.searchCondition}'/>"/>
<input type="hidden" name="searchKeyword" value="<c:out value='${exmpManageVO.searchKeyword}'/>"/>
<input type="hidden" name="pageIndex" value="<c:out value='${exmpManageVO.pageIndex}'/>"/>
<input type="hidden" name="codeId" id="codeId" value="<c:out value="${exmpManageVO.codeId}" />" />
<input type="hidden" name="exmpCd" id="exmpCd" value="<c:out value="${exmpManageVO.exmpCd}" />" />
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>신청서예문등록</h2>
<h2>신청원인예문관리 등록</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li><p>조정진행관리</p></li>
<li><p>신청서예문관리</p></li>
<li><span class="cur_nav">신청서예문등록</span></li>
<li><span class="cur_nav">신청원인예문관리 등록</span></li>
</ul>
</div>
<!-- //cont_tit -->
@ -304,31 +268,22 @@
</div>
<!-- //list_상세 -->
<div class="tb_tit">
<p>항목추가</p>
<div class="btn_wrap">
<button type="button" class="btn_plus" onclick="fncRowAdd(); return false;"><i></i></button>
<button type="button" class="btn_minus" onclick="fncRowDel(); return false;"><i></i></button>
</div>
<p>신청원인</p>
</div>
<div class="list tbType01 addTb">
<table>
<colgroup>
<col style="width: 27%">
<col style="width: auto">
</colgroup>
<thead>
<tr>
<th>항목</th>
<th>예문내용</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<kc:select codeId="CC040" name="exmpList[0].exmpCd" id="test" defaultText="선택" defaultValue="" selectedValue="" css="style='width:200px; height:38px;'"/>
</td>
<td>
<textarea name="exmpList[0].exmpCn" placeholder="예문을 입력해주세요." style="resize: none; width:96%; margin: 10px 0;"></textarea>
<textarea name="exmpCn" placeholder="예문을 입력해주세요." style="resize: none; height: 250px; width:96%; margin: 10px 0;"></textarea>
</td>
</tr>
</tbody>

View File

@ -53,19 +53,18 @@
<input type="hidden" name="searchCondition" value="<c:out value='${exmpManageVO.searchCondition}'/>"/>
<input type="hidden" name="searchKeyword" value="<c:out value='${exmpManageVO.searchKeyword}'/>"/>
<input type="hidden" name="pageIndex" value="<c:out value='${exmpManageVO.pageIndex}'/>"/>
<input type="hidden" name="codeId" value="<c:out value="${exmpManageVO.codeId}" />" />
<input type="hidden" name="exmpCd" value="<c:out value="${exmpManageVO.exmpCd}" />" />
<input type="hidden" name="exmpMgrId" value="<c:out value="${exmpManageVO.exmpMgrId}" />" />
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>신청서예문상세</h2>
<h2>신청원인예문관리 상세</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li><p>조정진행관리</p></li>
<li><p>신청서예문관리</p></li>
<li><span class="cur_nav">신청서예문상세</span></li>
<li><span class="cur_nav">신청원인예문관리 상세</span></li>
</ul>
</div>
<!-- //cont_tit -->
@ -110,49 +109,25 @@
</div>
<!-- //list_상세 -->
<div class="tb_tit">
<p>항목추가</p>
<%--<div class="btn_wrap">
<button type="button" class="btn_plus" onclick="fncRowAdd(); return false;"><i></i></button>
<button type="button" class="btn_minus" onclick="fncRowDel(); return false;"><i></i></button>
</div>--%>
<p><kc:code codeId="CC040" code="${mgrInfo.exmpCd}"/></p>
</div>
<div class="list tbType01 addTb">
<table>
<colgroup>
<col style="width: 20%">
<%-- <col style="width: 20%"> --%>
<col style="width: auto">
</colgroup>
<thead>
<tr>
<th>항목</th>
<th>예문내용</th>
</tr>
</thead>
<tbody>
<c:choose>
<c:when test="${fn:length(list) eq 0}">
<tr>
<td>
<kc:select codeId="CC040" name="exmpList[0].exmpCd" id="test" defaultText="선택" defaultValue="" selectedValue="" css="style='width:200px; height:38px;'"/>
</td>
<td>
<textarea name="exmpList[0].exmpCn" placeholder="예문을 입력해주세요." style="resize: none; width:96%; margin: 10px 0;"></textarea>
</td>
</tr>
</c:when>
<c:otherwise>
<c:forEach var="list" items="${list}" varStatus="status">
<tr>
<td>
<kc:code codeId="CC040" code="${list.exmpCd}"/>
</td>
<td style="text-align: left; line-height: 30px; padding: 10px;">
<c:out value="${fn:replace(list.exmpCn, crlf , '<br/>')}" escapeXml="false" />
</td>
</tr>
</c:forEach>
</c:otherwise>
</c:choose>
<tr>
<td style="text-align: left; line-height: 30px; padding: 10px;">
<c:out value="${fn:replace(mgrInfo.exmpCn, crlf , '<br/>')}" escapeXml="false" />
</td>
</tr>
</tbody>
</table>
</div>

View File

@ -10,20 +10,20 @@
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt_rt" %>
<%
/**
* @Class Name : AdjustDeptManagerList.jsp
* @Description : 조정부관리
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.08.09 김봉호 최초 생성
* @author 김봉호
* @since 2021.08.21
* @version 1.0
* @see
*
*/
/**
* @Class Name : exmpOpinionManagerList.jsp
* @Description : 신청원인 예문 관리
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2022.10.12 이호영 최초 생성
* @author 이호영
* @since 2021.10.12
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
@ -78,11 +78,11 @@
</head>
<body>
<form:form id="listForm" name="listForm" method="post">
<input type="hidden" name="pageIndex" value="<c:out value='${exmpAppManageVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${exmpAppManageVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${exmpAppManageVO.searchSortOrd}" />" />
<input type="hidden" name="codeId" value="<c:out value="${exmpAppManageVO.codeId}" />" />
<input type="hidden" name="expmCcTy" value="" />
<input type="hidden" name="pageIndex" value="<c:out value='${exmpManageVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${exmpManageVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${exmpManageVO.searchSortOrd}" />" />
<input type="hidden" name="exmpCd" value="<c:out value="${exmpManageVO.exmpCd}" />" />
<input type="hidden" name="exmpCcTy" value="" />
<input type="hidden" name="exmpMgrId" value="" />
<div class="cont_wrap">
@ -90,13 +90,13 @@
<!-- cont_tit -->
<div class="cont_tit">
<h2>신청원인예문관리</h2>
<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>
<li><span class="cur_nav">신청원인예문관리 목록</span></li>
</ul>
</div>
<!-- //cont_tit -->
@ -107,11 +107,11 @@
<p>총 건수 : <span><c:out value="${paginationInfo.totalRecordCount}"/></span>건</p>
<div class="list_util">
<select name="searchCondition" id="searchCondition">
<option value="" <c:if test="${empty exmpAppManageVO.searchCondition}">selected="selected"</c:if>>전체</option>
<option value="1" <c:if test="${exmpAppManageVO.searchCondition eq '1'}">selected="selected"</c:if>>제목</option>
<option value="2" <c:if test="${exmpAppManageVO.searchCondition eq '2'}">selected="selected"</c:if>>항목</option>
<option value="" <c:if test="${empty exmpManageVO.searchCondition}">selected="selected"</c:if>>전체</option>
<option value="1" <c:if test="${exmpManageVO.searchCondition eq '1'}">selected="selected"</c:if>>제목</option>
<option value="2" <c:if test="${exmpManageVO.searchCondition eq '2'}">selected="selected"</c:if>>항목</option>
</select>
<input type="text" id=searchKeyword name="searchKeyword" class="search_input" placeholder="검색어를 입력하세요" value="<c:out value='${exmpAppManageVO.searchKeyword}'/>">
<input type="text" id=searchKeyword name="searchKeyword" class="search_input" placeholder="검색어를 입력하세요" value="<c:out value='${exmpManageVO.searchKeyword}'/>">
<button class="btn_search" onclick="fncSelectConciliatorManageList(); return false;">검색</button>
</div>
</div>
@ -123,7 +123,6 @@
<col style="width: 10%">
<col style="width: 10%">
<col style="width: auto">
<col style="width: 25%">
<col style="width: 10%">
</colgroup>
<thead>
@ -131,7 +130,6 @@
<th>번호</th>
<th>저작물</th>
<th>제목</th>
<th>항목</th>
<th>등록일</th>
</tr>
</thead>
@ -139,22 +137,19 @@
<c:forEach var="list" items="${list}" varStatus="status">
<tr>
<td>
<c:if test="${exmpAppManageVO.searchSortOrd eq 'desc' }">
<c:out value="${ ( paginationInfo.totalRecordCount - ((exmpAppManageVO.pageIndex -1)*exmpAppManageVO.pageUnit) ) - status.index }"/>
<c:if test="${exmpManageVO.searchSortOrd eq 'desc' }">
<c:out value="${ ( paginationInfo.totalRecordCount - ((exmpManageVO.pageIndex -1)*exmpManageVO.pageUnit) ) - status.index }"/>
</c:if>
<c:if test="${exmpAppManageVO.searchSortOrd eq 'asc' }">
<c:out value="${(exmpAppManageVO.pageIndex - 1) * exmpAppManageVO.pageUnit + status.count}"/>
<c:if test="${exmpManageVO.searchSortOrd eq 'asc' }">
<c:out value="${(exmpManageVO.pageIndex - 1) * exmpManageVO.pageUnit + status.count}"/>
</c:if>
</td>
<td>
<kc:code codeId="${list.codeId}" code="${list.exmpCcTy}"/>
<kc:code codeId="CC002" code="${list.exmpCcTy}"/>
</td>
<td>
<a href="#" onclick="fncDetailPage('${list.exmpMgrId}');"><c:out value="${list.exmpTit}"/></a>
</td>
<td>
<c:out value="${list.exmpNms}"/>
</td>
<td>
<c:out value="${list.frstRegistPnttm}"/>
</td>

View File

@ -111,7 +111,7 @@
cache: false,
success:function(returnData){
if(returnData.result == "SUCCESS"){
alert("정상적으로 등록되었습니다.");
alert("정상적으로 수정되었습니다.");
fncDetail();
}
},
@ -147,12 +147,12 @@
var textLen = conByteLeng(cn); //예문 입력 내용 Byte 계산 처리
if(cd == ''){
alert("항목을 선택해주세요.["+(idx+1)+"]");
alert("항목을 선택해주세요.");
return flag = false;
}
if(cn == ''){
alert("예문내용을 입력해주세요.["+(idx+1)+"]");
alert("예문내용을 입력해주세요.");
return flag = false;
}
@ -196,27 +196,26 @@
</style>
</head>
<body>
<form:form id="modifyForm" name="modifyForm" commandName="exmpAppManageVO" method="post">
<form:form id="modifyForm" name="modifyForm" commandName="exmpManageVO" method="post">
<input type="hidden" name="atchFileId" value="<c:out value='${mgrInfo.atchFileId}'/>"/>
<input type="hidden" name="limitcount" value="3" /><!-- 최대 업로드 파일갯수 -->
<input type="hidden" name="searchCondition" value="<c:out value='${exmpAppManageVO.searchCondition}'/>"/>
<input type="hidden" name="searchKeyword" value="<c:out value='${exmpAppManageVO.searchKeyword}'/>"/>
<input type="hidden" name="pageIndex" value="<c:out value='${exmpAppManageVO.pageIndex}'/>"/>
<input type="hidden" name="searchSortOrd" value="<c:out value="${exmpAppManageVO.searchSortOrd}" />"/>
<input type="hidden" name="searchCondition" value="<c:out value='${exmpManageVO.searchCondition}'/>"/>
<input type="hidden" name="searchKeyword" value="<c:out value='${exmpManageVO.searchKeyword}'/>"/>
<input type="hidden" name="pageIndex" value="<c:out value='${exmpManageVO.pageIndex}'/>"/>
<input type="hidden" name="searchSortOrd" value="<c:out value="${exmpManageVO.searchSortOrd}" />"/>
<input type="hidden" name="exmpMgrId" value="<c:out value='${mgrInfo.exmpMgrId}' />">
<input type="hidden" name="codeId" id="codeId" value="<c:out value='${mgrInfo.codeId}' />">
<input type="hidden" name="exmpCd" value="<c:out value="${exmpManageVO.exmpCd}" />" />
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>신청서예문수정</h2>
<h2>신청원인예문관리 수정</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li><p>조정진행관리</p></li>
<li><p>신청서예문관리</p></li>
<li><span class="cur_nav">신청서예문수정</span></li>
<li><span class="cur_nav">신청원인예문관리 수정</span></li>
</ul>
</div>
<!-- //cont_tit -->
@ -322,36 +321,25 @@
</div>
<!-- //list_상세 -->
<div class="tb_tit">
<p>항목추가</p>
<div class="btn_wrap">
<button type="button" class="btn_plus" onclick="fncRowAdd(); return false;"><i></i></button>
<button type="button" class="btn_minus" onclick="fncRowDel(); return false;"><i></i></button>
</div>
<p><kc:code codeId="CC040" code="${mgrInfo.exmpCd}"/></p>
</div>
<div class="list tbType01 addTb">
<table>
<colgroup>
<col style="width: 27%">
<col style="width: auto">
</colgroup>
<thead>
<tr>
<th>항목</th>
<th>예문내용</th>
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<tr>
<input type="hidden" name="exmpList[${status.index}].exmpDtlId" value="<c:out value='${list.exmpDtlId}' />">
<td>
<kc:select codeId="CC040" name="exmpList[${status.index}].exmpCd" defaultText="선택" defaultValue="" selectedValue="${list.exmpCd}" css="style='width:200px; height:38px;'"/>
</td>
<td>
<textarea name="exmpList[<c:out value='${status.index}' />].exmpCn" placeholder="예문을 입력해주세요." style="resize: none; width:96%; margin: 10px 0;"><c:out value='${list.exmpCn}' /></textarea>
</td>
</tr>
</c:forEach>
<tr>
<td style="text-align: left; line-height: 30px; padding: 10px;">
<textarea name="exmpCn" placeholder="예문을 입력해주세요." style="resize: none; height: 250px; width:96%; margin: 10px 0;"><c:out value='${mgrInfo.exmpCn}' /></textarea>
</td>
</tr>
</tbody>
</table>
</div>
<!-- btn_wrap -->

View File

@ -36,65 +36,9 @@
});
});
function fncRowAdd(){
// 등록가능한 갯수
var len = $("select[name*=exmpCd]:first option").length;
var rowLen = $(".addTb > table > tbody > tr").length;
var obj = $(".addTb > table > tbody > tr:last");
var cloneObj = obj.clone(true);
console.log('cloneObj : ',cloneObj);
if(len == 0 || rowLen >= (len-1)){
alert("등록가능한 항목은 갯수는 " + (len-1) + "개 입니다.");
return false;
}
var exmpCd = cloneObj.find("select[name*=exmpCd]");
var exmpCn = cloneObj.find("textarea[name*=exmpCn]");
exmpCd.val("");
exmpCn.val("");
exmpCd.attr("name", exmpCd.attr("name").replace(/[0-9]/gi, rowLen));
exmpCn.attr("name", exmpCn.attr("name").replace(/[0-9]/gi, rowLen));
obj.after(cloneObj);
}
function fncRowDel(){
var rowLen = $(".addTb > table > tbody > tr").length;
if(rowLen == 1){
alert("더이상 삭제할 수 없습니다.");
return false;
}
$(".addTb > table > tbody > tr:last").remove();
}
function fncSave(){
var exmpCcTy = "<c:out value='${mgrInfo.exmpCcTy}' />";
if(exmpCcTy != ''){
saveProcess();
}else{
$.ajax({
type: "POST",
url: "/kccadr/adjPgrMgr/exmp/existsExmpManagerDataCheck.do",
data: JSON.stringify({exmpCcTy : $("#exmpCcTy").val()
,codeId : $('#codeId').val()}),
dataType:'json',
async: false,
processData: false,
contentType: "application/json",
cache: false,
success: function (returnData) {
if(returnData.status == "OK"){
saveProcess();
}else{
alert(returnData.data);
return false;
}
},
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
});
}
}
function saveProcess(){
if(!validation()){
return false;
}
@ -115,7 +59,7 @@
success:function(returnData){
if(returnData.status == "OK"){
alert(returnData.data);
fncDetail();
fncGoList();
}else{
alert(returnData.data);
}
@ -140,60 +84,27 @@
return flag = false;
}
if($("#exmpCcTy").val() == ''){
alert("저작물을 선택해주세요.");
var cn = $('#exmpCn').val();
if(cn == ''){
alert("예문내용을 입력해주세요.");
return flag = false;
}
var textLen = conByteLeng(cn);
var validArr = [];
$.each(obj , function(idx, elm){
var cd = $(this).find("select[name*=exmpCd]").val();
var cn = $(this).find("textarea[name*=exmpCn]").val();
validArr[idx] = cd;
if(Number(textLen) > 2000){
var textLen = conByteLeng(cn); //예문 입력 내용 Byte 계산 처리
alert("예문 내용의 길이는 2000자를 넘을 수 없습니다.");
return flag = false;
if(cd == ''){
alert("항목을 선택해주세요.["+(idx+1)+"]");
return flag = false;
}
if(cn == ''){
alert("예문내용을 입력해주세요.["+(idx+1)+"]");
return flag = false;
}
if(Number(textLen) > 2000){
alert("예문 내용의 길이는 2000자를 넘을 수 없습니다.");
return flag = false;
}
});
var checkObj = validArr.reduce((accu, curr) => {
accu[curr] = (accu[curr] || 0)+1;
return accu;
}, {});
$.each(checkObj, function(key, value){
if(parseInt(value) > 1){
alert("동일한 항목을 중복으로 등록하실 수 없습니다.");
return flag = false;
}
});
}
return flag;
}
function fncGoList(){
var varFrom = document.getElementById("createForm");
varFrom.action = "<c:url value='/kccadr/adjPgrMgr/exmp/exmpAppManagerList.do'/>";
varFrom.submit();
}
function fncDetail(){
var varFrom = document.getElementById("createForm");
varFrom.action = "<c:url value='/kccadr/adjPgrMgr/exmp/exmpAppManagerDetail.do'/>";
varFrom.action = "<c:url value='/kccadr/adjPgrMgr/exmp/exmpEffectManagerList.do'/>";
varFrom.submit();
}
@ -208,24 +119,23 @@
<input type="hidden" name="searchCondition" value="<c:out value='${exmpManageVO.searchCondition}'/>"/>
<input type="hidden" name="searchKeyword" value="<c:out value='${exmpManageVO.searchKeyword}'/>"/>
<input type="hidden" name="pageIndex" value="<c:out value='${exmpManageVO.pageIndex}'/>"/>
<input type="hidden" name="codeId" id="codeId" value="<c:out value="${exmpManageVO.codeId}" />" />
<input type="hidden" name="exmpCd" value="<c:out value="${exmpManageVO.exmpCd}" />" />
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>신청서예문등록</h2>
<h2>신청취지예문관리 등록</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li><p>조정진행관리</p></li>
<li><p>신청서예문관리</p></li>
<li><span class="cur_nav">신청서예문등록</span></li>
<li><span class="cur_nav">신청취지예문관리 등록</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<p class="tb_tit">예문 저작물종류</p>
<p class="tb_tit">기본 정보</p>
<div class="tbType02">
<table>
<colgroup>
@ -241,11 +151,6 @@
<td>
<input type="text" placeholder="제목을 입력해주세요." name="exmpTit" id="exmpTit" value="">
</td>
<th>저작물종류</th>
<td>
<kc:select codeId="CC002" name="exmpCcTy" id="exmpCcTy" defaultText="선택" defaultValue="" selectedValue="${mgrInfo.exmpCcTy}"/>
<%-- <kc:select codeId="CC002" name="exmpCcTy" id="exmpCcTy" defaultText="선택" defaultValue=""/> --%>
</td>
</tr>
<tr>
<th><span class="">첨부파일</span></th>
@ -304,31 +209,22 @@
</div>
<!-- //list_상세 -->
<div class="tb_tit">
<p>항목추가</p>
<div class="btn_wrap">
<button type="button" class="btn_plus" onclick="fncRowAdd(); return false;"><i></i></button>
<button type="button" class="btn_minus" onclick="fncRowDel(); return false;"><i></i></button>
</div>
<p>신청취지</p>
</div>
<div class="list tbType01 addTb">
<table>
<colgroup>
<col style="width: 27%">
<col style="width: auto">
</colgroup>
<thead>
<tr>
<th>항목</th>
<th>예문내용</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<kc:select codeId="CC040" name="exmpList[0].exmpCd" id="test" defaultText="선택" defaultValue="" selectedValue="" css="style='width:200px; height:38px;'"/>
</td>
<td>
<textarea name="exmpList[0].exmpCn" placeholder="예문을 입력해주세요." style="resize: none; width:96%; margin: 10px 0;"></textarea>
<textarea name="exmpCn" id="exmpCn" placeholder="예문을 입력해주세요." style="resize: none; height: 250px; width:96%; margin: 10px 0;"></textarea>
</td>
</tr>
</tbody>

View File

@ -36,13 +36,13 @@
function fncGoList(){
var varFrom = document.getElementById("detailForm");
varFrom.exmpCcTy.value = '';
varFrom.action = "<c:url value='/kccadr/adjPgrMgr/exmp/exmpAppManagerList.do'/>";
varFrom.action = "<c:url value='/kccadr/adjPgrMgr/exmp/exmpEffectManagerList.do'/>";
varFrom.submit();
}
function fncEdit(){
var varFrom = document.getElementById("detailForm");
varFrom.action = "<c:url value='/kccadr/adjPgrMgr/exmp/exmpAppManagerModify.do'/>";
varFrom.action = "<c:url value='/kccadr/adjPgrMgr/exmp/exmpEffectManagerModify.do'/>";
varFrom.submit();
}
</script>
@ -53,25 +53,24 @@
<input type="hidden" name="searchCondition" value="<c:out value='${exmpManageVO.searchCondition}'/>"/>
<input type="hidden" name="searchKeyword" value="<c:out value='${exmpManageVO.searchKeyword}'/>"/>
<input type="hidden" name="pageIndex" value="<c:out value='${exmpManageVO.pageIndex}'/>"/>
<input type="hidden" name="codeId" value="<c:out value="${exmpManageVO.codeId}" />" />
<input type="hidden" name="exmpCd" value="<c:out value="${exmpManageVO.exmpCd}" />" />
<input type="hidden" name="exmpMgrId" value="<c:out value="${exmpManageVO.exmpMgrId}" />" />
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>신청서예문상세</h2>
<h2>신청취지예문관리 상세</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li><p>조정진행관리</p></li>
<li><p>신청서예문관리</p></li>
<li><span class="cur_nav">신청서예문상세</span></li>
<li><span class="cur_nav">신청취지예문관리 상세</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<p class="tb_tit">예문 저작물종류</p>
<p class="tb_tit">기본정보</p>
<div class="tbType02">
<table>
<colgroup>
@ -87,10 +86,6 @@
<td>
<c:out value='${mgrInfo.exmpTit}' />
</td>
<th>저작물종류</th>
<td>
<kc:code codeId="CC002" code="${mgrInfo.exmpCcTy}"/>
</td>
</tr>
<c:if test="${not empty fileList }">
<tr>
@ -110,49 +105,25 @@
</div>
<!-- //list_상세 -->
<div class="tb_tit">
<p>항목추가</p>
<%--<div class="btn_wrap">
<button type="button" class="btn_plus" onclick="fncRowAdd(); return false;"><i></i></button>
<button type="button" class="btn_minus" onclick="fncRowDel(); return false;"><i></i></button>
</div>--%>
<p><kc:code codeId="CC040" code="${mgrInfo.exmpCd}"/></p>
</div>
<div class="list tbType01 addTb">
<table>
<colgroup>
<col style="width: 20%">
<%-- <col style="width: 20%"> --%>
<col style="width: auto">
</colgroup>
<thead>
<tr>
<th>항목</th>
<th>예문내용</th>
</tr>
</thead>
<tbody>
<c:choose>
<c:when test="${fn:length(list) eq 0}">
<tr>
<td>
<kc:select codeId="CC040" name="exmpList[0].exmpCd" id="test" defaultText="선택" defaultValue="" selectedValue="" css="style='width:200px; height:38px;'"/>
</td>
<td>
<textarea name="exmpList[0].exmpCn" placeholder="예문을 입력해주세요." style="resize: none; width:96%; margin: 10px 0;"></textarea>
</td>
</tr>
</c:when>
<c:otherwise>
<c:forEach var="list" items="${list}" varStatus="status">
<tr>
<td>
<kc:code codeId="CC040" code="${list.exmpCd}"/>
</td>
<td style="text-align: left; line-height: 30px; padding: 10px;">
<c:out value="${fn:replace(list.exmpCn, crlf , '<br/>')}" escapeXml="false" />
</td>
</tr>
</c:forEach>
</c:otherwise>
</c:choose>
<tr>
<td style="text-align: left; line-height: 30px; padding: 10px;">
<c:out value="${fn:replace(mgrInfo.exmpCn, crlf , '<br/>')}" escapeXml="false" />
</td>
</tr>
</tbody>
</table>
</div>

View File

@ -10,20 +10,20 @@
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt_rt" %>
<%
/**
* @Class Name : AdjustDeptManagerList.jsp
* @Description : 조정부관리
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.08.09 김봉호 최초 생성
* @author 김봉호
* @since 2021.08.21
* @version 1.0
* @see
*
*/
/**
* @Class Name : exmpOpinionManagerList.jsp
* @Description : 신청취지 예문 관리
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2022.10.12 이호영 최초 생성
* @author 이호영
* @since 2021.10.12
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
@ -39,13 +39,13 @@
listForm.pageIndex.value = pageNo ;
listForm.searchCondition.value = $('#searchCondition').val();
listForm.searchKeyword.value = $('#searchKeyword').val();
listForm.action = "<c:url value='/kccadr/adjPgrMgr/exmp/exmpAppManagerList.do'/>";
listForm.action = "<c:url value='/kccadr/adjPgrMgr/exmp/exmpEffectManagerList.do'/>";
listForm.submit();
}
function fncCreate() {
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/adjPgrMgr/exmp/exmpAppManagerCreate.do'/>";
listForm.action = "<c:url value='/kccadr/adjPgrMgr/exmp/exmpEffectManagerCreate.do'/>";
listForm.submit();
}
@ -69,7 +69,7 @@
function fncDetailPage(exmpMgrId){
var listForm = document.listForm ;
listForm.exmpMgrId.value = exmpMgrId;
listForm.action = "<c:url value='/kccadr/adjPgrMgr/exmp/exmpAppManagerDetail.do'/>";
listForm.action = "<c:url value='/kccadr/adjPgrMgr/exmp/exmpEffectManagerDetail.do'/>";
listForm.submit();
}
@ -78,10 +78,10 @@
</head>
<body>
<form:form id="listForm" name="listForm" method="post">
<input type="hidden" name="pageIndex" value="<c:out value='${exmpAppManageVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${exmpAppManageVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${exmpAppManageVO.searchSortOrd}" />" />
<input type="hidden" name="codeId" value="<c:out value="${exmpAppManageVO.codeId}" />" />
<input type="hidden" name="pageIndex" value="<c:out value='${exmpManageVO.pageIndex}' default='1' />" />
<input type="hidden" name="searchSortCnd" value="<c:out value="${exmpManageVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${exmpManageVO.searchSortOrd}" />" />
<input type="hidden" name="exmpCd" value="<c:out value="${exmpManageVO.exmpCd}" />" />
<input type="hidden" name="expmCcTy" value="" />
<input type="hidden" name="exmpMgrId" value="" />
@ -90,13 +90,13 @@
<!-- cont_tit -->
<div class="cont_tit">
<h2>신청취지예문관리</h2>
<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>
<li><span class="cur_nav">신청취지예문관리 목록</span></li>
</ul>
</div>
<!-- //cont_tit -->
@ -107,11 +107,11 @@
<p>총 건수 : <span><c:out value="${paginationInfo.totalRecordCount}"/></span>건</p>
<div class="list_util">
<select name="searchCondition" id="searchCondition">
<option value="" <c:if test="${empty exmpAppManageVO.searchCondition}">selected="selected"</c:if>>전체</option>
<option value="1" <c:if test="${exmpAppManageVO.searchCondition eq '1'}">selected="selected"</c:if>>제목</option>
<option value="2" <c:if test="${exmpAppManageVO.searchCondition eq '2'}">selected="selected"</c:if>>항목</option>
<option value="" <c:if test="${empty exmpManageVO.searchCondition}">selected="selected"</c:if>>전체</option>
<option value="1" <c:if test="${exmpManageVO.searchCondition eq '1'}">selected="selected"</c:if>>제목</option>
<option value="2" <c:if test="${exmpManageVO.searchCondition eq '2'}">selected="selected"</c:if>>항목</option>
</select>
<input type="text" id=searchKeyword name="searchKeyword" class="search_input" placeholder="검색어를 입력하세요" value="<c:out value='${exmpAppManageVO.searchKeyword}'/>">
<input type="text" id=searchKeyword name="searchKeyword" class="search_input" placeholder="검색어를 입력하세요" value="<c:out value='${exmpManageVO.searchKeyword}'/>">
<button class="btn_search" onclick="fncSelectConciliatorManageList(); return false;">검색</button>
</div>
</div>
@ -120,18 +120,14 @@
<div class="list tbType01">
<table>
<colgroup>
<col style="width: 10%">
<col style="width: 10%">
<col style="width: auto">
<col style="width: 25%">
<col style="width: 10%">
</colgroup>
<thead>
<tr>
<th>번호</th>
<th>저작물</th>
<th>제목</th>
<th>항목</th>
<th>등록일</th>
</tr>
</thead>
@ -139,29 +135,23 @@
<c:forEach var="list" items="${list}" varStatus="status">
<tr>
<td>
<c:if test="${exmpAppManageVO.searchSortOrd eq 'desc' }">
<c:out value="${ ( paginationInfo.totalRecordCount - ((exmpAppManageVO.pageIndex -1)*exmpAppManageVO.pageUnit) ) - status.index }"/>
<c:if test="${exmpManageVO.searchSortOrd eq 'desc' }">
<c:out value="${ ( paginationInfo.totalRecordCount - ((exmpManageVO.pageIndex -1)*exmpManageVO.pageUnit) ) - status.index }"/>
</c:if>
<c:if test="${exmpAppManageVO.searchSortOrd eq 'asc' }">
<c:out value="${(exmpAppManageVO.pageIndex - 1) * exmpAppManageVO.pageUnit + status.count}"/>
<c:if test="${exmpManageVO.searchSortOrd eq 'asc' }">
<c:out value="${(exmpManageVO.pageIndex - 1) * exmpManageVO.pageUnit + status.count}"/>
</c:if>
</td>
<td>
<kc:code codeId="${list.codeId}" code="${list.exmpCcTy}"/>
</td>
<td>
<a href="#" onclick="fncDetailPage('${list.exmpMgrId}');"><c:out value="${list.exmpTit}"/></a>
</td>
<td>
<c:out value="${list.exmpNms}"/>
</td>
<td>
<c:out value="${list.frstRegistPnttm}"/>
</td>
</tr>
</c:forEach>
<c:if test="${empty list}">
<tr><td colspan="5"><spring:message code="common.nodata.msg" /></td></tr>
<tr><td colspan="3"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>

View File

@ -36,60 +36,7 @@
});
});
function fncRowAdd(){
// 등록가능한 갯수
var len = $("select[name*=exmpCd]:first option").length;
var rowLen = $(".addTb > table > tbody > tr").length;
var obj = $(".addTb > table > tbody > tr:last");
var cloneObj = obj.clone(true);
if(len == 0 || rowLen >= (len-1)){
alert("등록가능한 항목은 갯수는 " + (len-1) + "개 입니다.");
return false;
}
var exmpCd = cloneObj.find("select[name*=exmpCd]");
var exmpCn = cloneObj.find("textarea[name*=exmpCn]");
exmpCd.val("");
exmpCn.val("");
exmpCd.attr("name", exmpCd.attr("name").replace(/[0-9]/gi, rowLen));
exmpCn.attr("name", exmpCn.attr("name").replace(/[0-9]/gi, rowLen));
obj.after(cloneObj);
}
function fncRowDel(){
var rowLen = $(".addTb > table > tbody > tr").length;
if(rowLen == 1){
alert("더이상 삭제할 수 없습니다.");
return false;
}
$(".addTb > table > tbody > tr:last").remove();
}
function fn_modifyBtn(){
var exmpCcTy = "<c:out value='${mgrInfo.exmpCcTy}' />";
if(exmpCcTy != ''){
saveProcess();
}else{
$.ajax({
type: "POST",
url: "/kccadr/adjPgrMgr/exmp/existsExmpManagerDataCheck.do",
data: JSON.stringify({exmpCcTy : $("#exmpCcTy").val()}),
dataType:'json',
async: false,
processData: false,
contentType: "application/json",
cache: false,
success: function (returnData) {
if(data.status == "OK"){
saveProcess();
}else{
alert(returnData.data);
return false;
}
},
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
});
}
}
function fn_modifyBtn(){
if(!validation()){
@ -111,7 +58,7 @@
cache: false,
success:function(returnData){
if(returnData.result == "SUCCESS"){
alert("정상적으로 등록되었습니다.");
alert("정상적으로 수정되었습니다.");
fncDetail();
}
},
@ -147,12 +94,12 @@
var textLen = conByteLeng(cn); //예문 입력 내용 Byte 계산 처리
if(cd == ''){
alert("항목을 선택해주세요.["+(idx+1)+"]");
alert("항목을 선택해주세요.");
return flag = false;
}
if(cn == ''){
alert("예문내용을 입력해주세요.["+(idx+1)+"]");
alert("예문내용을 입력해주세요.");
return flag = false;
}
@ -180,13 +127,13 @@
function fncGoList(){
var varFrom = document.getElementById("modifyForm");
varFrom.action = "<c:url value='/kccadr/adjPgrMgr/exmp/exmpAppManagerList.do'/>";
varFrom.action = "<c:url value='/kccadr/adjPgrMgr/exmp/exmpEffectManagerList.do'/>";
varFrom.submit();
}
function fncDetail(){
var varFrom = document.getElementById("modifyForm");
varFrom.action = "<c:url value='/kccadr/adjPgrMgr/exmp/exmpAppManagerDetail.do'/>";
varFrom.action = "<c:url value='/kccadr/adjPgrMgr/exmp/exmpEffectManagerDetail.do'/>";
varFrom.submit();
}
@ -196,27 +143,26 @@
</style>
</head>
<body>
<form:form id="modifyForm" name="modifyForm" commandName="exmpAppManageVO" method="post">
<form:form id="modifyForm" name="modifyForm" commandName="exmpManageVO" method="post">
<input type="hidden" name="atchFileId" value="<c:out value='${mgrInfo.atchFileId}'/>"/>
<input type="hidden" name="limitcount" value="3" /><!-- 최대 업로드 파일갯수 -->
<input type="hidden" name="searchCondition" value="<c:out value='${exmpAppManageVO.searchCondition}'/>"/>
<input type="hidden" name="searchKeyword" value="<c:out value='${exmpAppManageVO.searchKeyword}'/>"/>
<input type="hidden" name="pageIndex" value="<c:out value='${exmpAppManageVO.pageIndex}'/>"/>
<input type="hidden" name="searchSortOrd" value="<c:out value="${exmpAppManageVO.searchSortOrd}" />"/>
<input type="hidden" name="searchCondition" value="<c:out value='${exmpManageVO.searchCondition}'/>"/>
<input type="hidden" name="searchKeyword" value="<c:out value='${exmpManageVO.searchKeyword}'/>"/>
<input type="hidden" name="pageIndex" value="<c:out value='${exmpManageVO.pageIndex}'/>"/>
<input type="hidden" name="searchSortOrd" value="<c:out value="${exmpManageVO.searchSortOrd}" />"/>
<input type="hidden" name="exmpMgrId" value="<c:out value='${mgrInfo.exmpMgrId}' />">
<input type="hidden" name="codeId" id="codeId" value="<c:out value='${mgrInfo.codeId}' />">
<input type="hidden" name="exmpCd" value="<c:out value="${exmpManageVO.exmpCd}" />" />
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>신청서예문수정</h2>
<h2>신청취지예문관리 수정</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li><p>조정진행관리</p></li>
<li><p>신청서예문관리</p></li>
<li><span class="cur_nav">신청서예문수정</span></li>
<li><span class="cur_nav">신청취지예문관리 수정</span></li>
</ul>
</div>
<!-- //cont_tit -->
@ -322,36 +268,25 @@
</div>
<!-- //list_상세 -->
<div class="tb_tit">
<p>항목추가</p>
<div class="btn_wrap">
<button type="button" class="btn_plus" onclick="fncRowAdd(); return false;"><i></i></button>
<button type="button" class="btn_minus" onclick="fncRowDel(); return false;"><i></i></button>
</div>
<p><kc:code codeId="CC040" code="${mgrInfo.exmpCd}"/></p>
</div>
<div class="list tbType01 addTb">
<table>
<colgroup>
<col style="width: 27%">
<col style="width: auto">
</colgroup>
<thead>
<tr>
<th>항목</th>
<th>예문내용</th>
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<tr>
<input type="hidden" name="exmpList[${status.index}].exmpDtlId" value="<c:out value='${list.exmpDtlId}' />">
<td>
<kc:select codeId="CC040" name="exmpList[${status.index}].exmpCd" defaultText="선택" defaultValue="" selectedValue="${list.exmpCd}" css="style='width:200px; height:38px;'"/>
</td>
<td>
<textarea name="exmpList[<c:out value='${status.index}' />].exmpCn" placeholder="예문을 입력해주세요." style="resize: none; width:96%; margin: 10px 0;"><c:out value='${list.exmpCn}' /></textarea>
</td>
</tr>
</c:forEach>
<tr>
<td style="text-align: left; line-height: 30px; padding: 10px;">
<textarea name="exmpCn" placeholder="예문을 입력해주세요." style="resize: none; height: 250px; width:96%; margin: 10px 0;"><c:out value='${mgrInfo.exmpCn}' /></textarea>
</td>
</tr>
</tbody>
</table>
</div>
<!-- btn_wrap -->

View File

@ -26,7 +26,7 @@
%>
<html lang="ko">
<head>
<title>의견예문등록</title>
<title>진행단계도움말관리</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
$(document).ready( function() {
@ -36,73 +36,45 @@ $(document).ready( function() {
});
});
function fncRowAdd(){
// 등록가능한 갯수
var len = $("select[name*=exmpCd]:first option").length;
var rowLen = $(".addTb > table > tbody > tr").length;
var obj = $(".addTb > table > tbody > tr:last");
var cloneObj = obj.clone(true);
console.log('cloneObj : ',cloneObj);
if(len == 0 || rowLen >= (len-1)){
alert("등록가능한 항목은 갯수는 " + (len-1) + "개 입니다.");
return false;
}
var exmpCd = cloneObj.find("select[name*=exmpCd]");
var exmpCn = cloneObj.find("textarea[name*=exmpCn]");
exmpCd.val("");
exmpCn.val("");
exmpCd.attr("name", exmpCd.attr("name").replace(/[0-9]/gi, rowLen));
exmpCn.attr("name", exmpCn.attr("name").replace(/[0-9]/gi, rowLen));
obj.after(cloneObj);
}
function fncRowDel(){
var rowLen = $(".addTb > table > tbody > tr").length;
if(rowLen == 1){
alert("더이상 삭제할 수 없습니다.");
return false;
}
$(".addTb > table > tbody > tr:last").remove();
}
// function fncSave(){
// var exmpCcTy = "<c:out value='${mgrInfo.exmpCcTy}' />";
// if(exmpCcTy != ''){
// saveProcess();
// }else{
// $.ajax({
// type: "POST",
// url: "/kccadr/adjPgrMgr/exmp/existsExmpManagerDataCheck.do",
// data: JSON.stringify({exmpCcTy : 0
// ,codeId : $('#codeId').val()}),
// dataType:'json',
// async: false,
// processData: false,
// contentType: "application/json",
// cache: false,
// success: function (data) {
// if(data.status == "OK"){
// saveProcess();
// }else{
// alert(data.message);
// return false;
// }
// },
// error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
// });
// }
// }
function saveProcess(){
function fncSave(){
if(!validation()){
return false;
}
console.log($("#exmpCcTy option:selected").val());
console.log($("#exmpCcTy").val() == '');
$.ajax({
type: "POST",
url: "/kccadr/adjPgrMgr/exmp/existsExmpManagerDataCheck.do",
data: JSON.stringify({exmpCcTy : $("#exmpCcTy").val()
,exmpCd : $('#exmpCd').val()}),
dataType:'json',
async: false,
processData: false,
contentType: "application/json",
cache: false,
success: function (returnData) {
if(returnData.status == "OK"){
saveProcess();
}else{
alert(returnData.data);
return false;
}
},
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
});
}
function saveProcess(){
if(confirm("해당내용을 저장 하시겠습니까?")){
var data = new FormData(document.getElementById("createForm"));
_fileForm2.forEach(function(obj, idx) {
if (obj) data.append("file"+idx, obj.fileObj);
});
$.ajax({
type:"POST",
url: "/kccadr/adjPgrMgr/exmp/insertExmpAppManager.do",
@ -114,8 +86,9 @@ function saveProcess(){
cache: false,
success:function(returnData){
alert(returnData.data);
if(data.status == "OK"){
fncDetail();
console.log(returnData);
if(returnData.status == "OK"){
fncGoList();
}
},
error:function(request , status, error){
@ -130,60 +103,44 @@ function saveProcess(){
function validation(){
var obj = $(".addTb > table > tbody > tr");
var flag = true;
if($("#exmpTit").val() == ''){
alert("제목을 입력해주세요.");
$("#exmpTit").focus();
return flag = false;
}
if($("#exmpCcTy").val() == ''){
alert("적용할 진행상태를 선택해주세요.");
return flag = false;
}
var validArr = [];
$.each(obj , function(idx, elm){
var cn = $(this).find("textarea[name*=exmpCn]").val();
var textLen = conByteLeng(cn); //예문 입력 내용 Byte 계산 처리
var cn = $('#exmpCn').val();
if(cn == ''){
alert("예문내용을 입력해주세요.["+(idx+1)+"]");
return flag = false;
}
if(Number(textLen) > 2000){
alert("예문 내용의 길이는 2000자를 넘을 수 없습니다.");
return flag = false;
}
});
var checkObj = validArr.reduce((accu, curr) => {
accu[curr] = (accu[curr] || 0)+1;
return accu;
}, {});
if(cn == ''){
alert("예문내용을 입력해주세요.");
return flag = false;
}
var textLen = conByteLeng(cn);
$.each(checkObj, function(key, value){
if(parseInt(value) > 1){
alert("동일한 항목을 중복으로 등록하실 수 없습니다.");
return flag = false;
}
});
if(Number(textLen) > 2000){
alert("예문 내용의 길이는 2000자를 넘을 수 없습니다.");
return flag = false;
}
return flag;
}
function fncGoList(){
var varFrom = document.getElementById("createForm");
varFrom.action = "<c:url value='/kccadr/adjPgrMgr/exmp/exmpOpinionManagerList.do'/>";
varFrom.action = "<c:url value='/kccadr/adjPgrMgr/exmp/exmpHelpManagerList.do'/>";
varFrom.submit();
}
function fncDetail(){
var varFrom = document.getElementById("createForm");
varFrom.action = "<c:url value='/kccadr/adjPgrMgr/exmp/exmpOpinionManagerDetail.do'/>";
varFrom.submit();
}
</script>
<style>
@ -197,8 +154,7 @@ function fncDetail(){
<input type="hidden" name="searchCondition" value="<c:out value='${exmpManageVO.searchCondition}'/>"/>
<input type="hidden" name="searchKeyword" value="<c:out value='${exmpManageVO.searchKeyword}'/>"/>
<input type="hidden" name="pageIndex" value="<c:out value='${exmpManageVO.pageIndex}'/>"/>
<input type="hidden" name="codeId" id="codeId" value="<c:out value="${exmpManageVO.codeId}" />" />
<input type="hidden" name="exmpCcTy" id="exmpCcTy" value="" />
<input type="hidden" name="exmpCd" id="exmpCd" value="<c:out value="${exmpManageVO.exmpCd}" />" />
<!-- <input type="hidden" name="exmpTit" value="답변서예문" /> -->
<!-- <input type="hidden" name="allrowFileExtsn" value="JPG,GIF,PNG,BMP" /> --><!-- 허용 확장자 -->
@ -207,24 +163,23 @@ function fncDetail(){
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>의견예문등록</h2>
<h2>진행단계도움말관리 등록</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li><p>조정진행관리</p></li>
<li><p>의견예문관리</p></li>
<li><span class="cur_nav">의견예문등록</span></li>
<li><span class="cur_nav">진행단계도움말관리 등록</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<p class="tb_tit">의견</p>
<p class="tb_tit">기본 정보</p>
<div class="tbType02">
<table>
<colgroup>
<col style="width: 150px">
<col style="width: auto;">
<col style="width: 150px">
<col style="width: 200px">
<col style="width: auto;">
</colgroup>
@ -234,18 +189,10 @@ function fncDetail(){
<td>
<input type="text" placeholder="제목을 입력해주세요." name="exmpTit" id="exmpTit" value="<c:out value='${mgrInfo.exmpTit}' />">
</td>
<!-- <th>저작물종류</th> -->
<!-- <td> -->
<%-- <c:choose> --%>
<%-- <c:when test="${not empty mgrInfo}"> --%>
<%-- <kc:code codeId="CC002" code="${mgrInfo.exmpCcTy}"/> --%>
<%-- <input type="hidden" name="exmpCcTy" value="<c:out value='${mgrInfo.exmpCcTy}'/>"/> --%>
<%-- </c:when> --%>
<%-- <c:otherwise> --%>
<%-- <kc:select codeId="CC002" name="exmpCcTy" id="exmpCcTy" defaultText="선택" defaultValue="" selectedValue="${mgrInfo.exmpCcTy}"/> --%>
<%-- </c:otherwise> --%>
<%-- </c:choose> --%>
<!-- </td> -->
<th>적용할 진행상태</th>
<td>
<kc:select codeId="CC025" name="exmpCcTy" id="exmpCcTy" defaultText="선택" defaultValue="" selectedValue="${mgrInfo.exmpCcTy}"/>
</td>
</tr>
<tr>
<th><span class="">첨부파일</span></th>
@ -322,7 +269,7 @@ function fncDetail(){
</div>
<!-- //list_상세 -->
<div class="tb_tit">
<p>예문내용</p>
<p>진행단계도움말</p>
<!-- <div class="btn_wrap"> -->
<!-- <button type="button" class="btn_plus" onclick="fncRowAdd(); return false;"><i></i></button> -->
<!-- <button type="button" class="btn_minus" onclick="fncRowDel(); return false;"><i></i></button> -->
@ -331,40 +278,19 @@ function fncDetail(){
<div class="list tbType01 addTb">
<table>
<colgroup>
<%-- <col style="width: 27%"> --%>
<col style="width: auto">
</colgroup>
<thead>
<tr>
<!-- <th>항목</th> -->
<th>예문내용</th>
<th>내용</th>
</tr>
</thead>
<tbody>
<c:choose>
<c:when test="${fn:length(list) eq 0}">
<tr>
<!-- <td> -->
<%-- <kc:select codeId="CC040" name="exmpList[0].exmpCd" id="test" defaultText="선택" defaultValue="" selectedValue="" css="style='width:200px; height:38px;'"/> --%>
<!-- </td> -->
<td>
<textarea name="exmpList[0].exmpCn" placeholder="예문을 입력해주세요." style="resize: none; width:96%; margin: 10px 0;"></textarea>
</td>
</tr>
</c:when>
<c:otherwise>
<c:forEach var="list" items="${list}" varStatus="status">
<tr>
<!-- <td> -->
<%-- <kc:select codeId="CC040" name="exmpList[${status.index}].exmpCd" defaultText="선택" defaultValue="" selectedValue="${list.exmpCd}" css="style='width:200px; height:38px;'"/> --%>
<!-- </td> -->
<td>
<textarea name="exmpList[<c:out value='${status.index}' />].exmpCn" placeholder="예문을 입력해주세요." style="resize: none; width:96%; margin: 10px 0;"><c:out value='${list.exmpCn}' /></textarea>
</td>
</tr>
</c:forEach>
</c:otherwise>
</c:choose>
<tr>
<td>
<textarea name="exmpCn" id="exmpCn" placeholder="예문을 입력해주세요." style="resize: none; height: 250px; width:96%; margin: 10px 0;"></textarea>
</td>
</tr>
</tbody>
</table>
</div>
@ -373,7 +299,7 @@ function fncDetail(){
<div class="area_left">
</div>
<div class="area_right">
<button class="btnType06" onclick="saveProcess(); return false;">저장</button>
<button class="btnType06" onclick="fncSave(); return false;">저장</button>
<button class="btnType03" onclick="fncGoList(); return false;">목록</button>
</div>
</div>

View File

@ -36,13 +36,13 @@
function fncGoList(){
var varFrom = document.getElementById("detailForm");
varFrom.exmpCcTy.value = '';
varFrom.action = "<c:url value='/kccadr/adjPgrMgr/exmp/exmpOpinionManagerList.do'/>";
varFrom.action = "<c:url value='/kccadr/adjPgrMgr/exmp/exmpHelpManagerList.do'/>";
varFrom.submit();
}
function fncEdit(){
var varFrom = document.getElementById("detailForm");
varFrom.action = "<c:url value='/kccadr/adjPgrMgr/exmp/exmpOpinionManagerModify.do'/>";
varFrom.action = "<c:url value='/kccadr/adjPgrMgr/exmp/exmpHelpManagerModify.do'/>";
varFrom.submit();
}
</script>
@ -53,31 +53,30 @@
<input type="hidden" name="searchCondition" value="<c:out value='${exmpManageVO.searchCondition}'/>"/>
<input type="hidden" name="searchKeyword" value="<c:out value='${exmpManageVO.searchKeyword}'/>"/>
<input type="hidden" name="pageIndex" value="<c:out value='${exmpManageVO.pageIndex}'/>"/>
<input type="hidden" name="codeId" value="<c:out value="${exmpManageVO.codeId}" />" />
<input type="hidden" name="exmpCd" value="<c:out value="${exmpManageVO.exmpCd}" />" />
<input type="hidden" name="exmpMgrId" value="<c:out value="${exmpManageVO.exmpMgrId}" />" />
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>의견예문상세</h2>
<h2>진행단계도움말관리 상세</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li><p>조정진행관리</p></li>
<li><p>의견예문관리</p></li>
<li><span class="cur_nav">의견예문상세</span></li>
<li><span class="cur_nav">진행단계도움말관리 상세</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<p class="tb_tit">의견</p>
<p class="tb_tit">기본정보</p>
<div class="tbType02">
<table>
<colgroup>
<col style="width: 150px">
<col style="width: auto;">
<col style="width: 150px">
<col style="width: 200px">
<col style="width: auto;">
</colgroup>
@ -87,6 +86,10 @@
<td>
<c:out value='${mgrInfo.exmpTit}' />
</td>
<th>진행상태</th>
<td>
<kc:code codeId="CC025" code="${mgrInfo.exmpCcTy}"/>
</td>
</tr>
<c:if test="${not empty fileList }">
<tr>
@ -106,11 +109,7 @@
</div>
<!-- //list_상세 -->
<div class="tb_tit">
<p>예문</p>
<%--<div class="btn_wrap">
<button type="button" class="btn_plus" onclick="fncRowAdd(); return false;"><i></i></button>
<button type="button" class="btn_minus" onclick="fncRowDel(); return false;"><i></i></button>
</div>--%>
<p>도움말</p>
</div>
<div class="list tbType01 addTb">
<table>
@ -119,17 +118,15 @@
</colgroup>
<thead>
<tr>
<th>예문내용</th>
<th>내용</th>
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<tr>
<td style="text-align: left; line-height: 30px; padding: 10px;">
<c:out value="${fn:replace(list.exmpCn, crlf , '<br/>')}" escapeXml="false" />
</td>
</tr>
</c:forEach>
<tr>
<td style="text-align: left; line-height: 30px; padding: 10px;">
<c:out value="${fn:replace(mgrInfo.exmpCn, crlf , '<br/>')}" escapeXml="false" />
</td>
</tr>
</tbody>
</table>
</div>

View File

@ -10,20 +10,20 @@
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt_rt" %>
<%
/**
* @Class Name : AdjustDeptManagerList.jsp
* @Description : 조정부관리
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.08.09 김봉호 최초 생성
* @author 김봉호
* @since 2021.08.21
* @version 1.0
* @see
*
*/
/**
* @Class Name : exmpOpinionManagerList.jsp
* @Description : 도움말 예문 관리
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2022.10.12 이호영 최초 생성
* @author 이호영
* @since 2021.10.12
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
@ -81,7 +81,7 @@
<input type="hidden" name="pageIndex" value="<c:out value='${exmpManageVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${exmpManageVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${exmpManageVO.searchSortOrd}" />" />
<input type="hidden" name="codeId" value="<c:out value="${exmpManageVO.codeId}" />" />
<input type="hidden" name="exmpCd" value="<c:out value="${exmpManageVO.exmpCd}" />" />
<input type="hidden" name="exmpMgrId" value="0" />
<div class="cont_wrap">

View File

@ -36,62 +36,8 @@
});
});
function fncRowAdd(){
// 등록가능한 갯수
var len = $("select[name*=exmpCd]:first option").length;
var rowLen = $(".addTb > table > tbody > tr").length;
var obj = $(".addTb > table > tbody > tr:last");
var cloneObj = obj.clone(true);
if(len == 0 || rowLen >= (len-1)){
alert("등록가능한 항목은 갯수는 " + (len-1) + "개 입니다.");
return false;
}
var exmpCd = cloneObj.find("select[name*=exmpCd]");
var exmpCn = cloneObj.find("textarea[name*=exmpCn]");
exmpCd.val("");
exmpCn.val("");
exmpCd.attr("name", exmpCd.attr("name").replace(/[0-9]/gi, rowLen));
exmpCn.attr("name", exmpCn.attr("name").replace(/[0-9]/gi, rowLen));
obj.after(cloneObj);
}
function fncRowDel(){
var rowLen = $(".addTb > table > tbody > tr").length;
if(rowLen == 1){
alert("더이상 삭제할 수 없습니다.");
return false;
}
$(".addTb > table > tbody > tr:last").remove();
}
function fn_modifyBtn(){
var exmpCcTy = "<c:out value='${mgrInfo.exmpCcTy}' />";
if(exmpCcTy != ''){
saveProcess();
}else{
$.ajax({
type: "POST",
url: "/kccadr/adjPgrMgr/exmp/existsExmpManagerDataCheck.do",
data: JSON.stringify({exmpCcTy : $("#exmpCcTy").val()}),
dataType:'json',
async: false,
processData: false,
contentType: "application/json",
cache: false,
success: function (returnData) {
if(returnData.status == "OK"){
saveProcess();
}else{
alert(returnData.data);
return false;
}
},
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
});
}
}
function fn_modifyBtn(){
function fncSave(){
if(!validation()){
return false;
}
@ -110,8 +56,9 @@
contentType: false,
cache: false,
success:function(returnData){
if(returnData.status == "OK"){
alert("정상적으로 등록되었습니다.");
console.log('returnData : ', returnData);
if(returnData.result == "SUCCESS"){
alert("정상적으로 수정되었습니다.");
fncDetail();
}
},
@ -125,68 +72,46 @@
function validation(){
var obj = $(".addTb > table > tbody > tr");
var flag = true;
if($("#exmpTit").val() == ''){
alert("제목을 입력해주세요.");
$("#exmpTit").focus();
return flag = false;
}
if($("#exmpCcTy").val() == ''){
alert("저작물을 선택해주세요.");
alert("적용할 진행상태를 선택해주세요.");
return flag = false;
}
var validArr = [];
$.each(obj , function(idx, elm){
var cd = $(this).find("select[name*=exmpCd]").val();
var cn = $(this).find("textarea[name*=exmpCn]").val();
validArr[idx] = cd;
var textLen = conByteLeng(cn); //예문 입력 내용 Byte 계산 처리
if(cd == ''){
alert("항목을 선택해주세요.["+(idx+1)+"]");
return flag = false;
}
var cn = $('#exmpCn').val();
if(cn == ''){
alert("예문내용을 입력해주세요.["+(idx+1)+"]");
return flag = false;
}
if(Number(textLen) > 2000){
alert("예문 내용의 길이는 2000자를 넘을 수 없습니다.");
return flag = false;
}
});
var checkObj = validArr.reduce((accu, curr) => {
accu[curr] = (accu[curr] || 0)+1;
return accu;
}, {});
if(cn == ''){
alert("예문내용을 입력해주세요.");
return flag = false;
}
var textLen = conByteLeng(cn);
$.each(checkObj, function(key, value){
if(parseInt(value) > 1){
alert("동일한 항목을 중복으로 등록하실 수 없습니다.");
return flag = false;
}
});
if(Number(textLen) > 2000){
alert("예문 내용의 길이는 2000자를 넘을 수 없습니다.");
return flag = false;
}
return flag;
}
function fncGoList(){
var varFrom = document.getElementById("modifyForm");
varFrom.action = "<c:url value='/kccadr/adjPgrMgr/exmp/exmpOpinionManagerList.do'/>";
varFrom.action = "<c:url value='/kccadr/adjPgrMgr/exmp/exmpHelpManagerList.do'/>";
varFrom.submit();
}
function fncDetail(){
var varFrom = document.getElementById("modifyForm");
varFrom.action = "<c:url value='/kccadr/adjPgrMgr/exmp/exmpOpinionManagerDetail.do'/>";
varFrom.action = "<c:url value='/kccadr/adjPgrMgr/exmp/exmpHelpManagerDetail.do'/>";
varFrom.submit();
}
@ -204,19 +129,18 @@
<input type="hidden" name="pageIndex" value="<c:out value='${exmpManageVO.pageIndex}'/>"/>
<input type="hidden" name="searchSortOrd" value="<c:out value="${exmpManageVO.searchSortOrd}" />"/>
<input type="hidden" name="exmpMgrId" value="<c:out value='${mgrInfo.exmpMgrId}' />">
<input type="hidden" name="codeId" id="codeId" value="<c:out value='${mgrInfo.codeId}' />">
<input type="hidden" name="exmpCd" id="exmpCd" value="<c:out value="${exmpManageVO.exmpCd}" />" />
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>의견예문수정</h2>
<h2>진행단계도움말관리 수정</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li><p>조정진행관리</p></li>
<li><p>의견예문관리</p></li>
<li><span class="cur_nav">의견예문수정</span></li>
<li><span class="cur_nav">진행단계도움말관리 수정</span></li>
</ul>
</div>
<!-- //cont_tit -->
@ -228,7 +152,7 @@
<colgroup>
<col style="width: 150px">
<col style="width: auto;">
<col style="width: 150px">
<col style="width: 200px">
<col style="width: auto;">
</colgroup>
@ -238,6 +162,11 @@
<td>
<input type="text" placeholder="제목을 입력해주세요." name="exmpTit" id="exmpTit" value="<c:out value='${mgrInfo.exmpTit}' />">
</td>
<th>적용할 진행상태</th>
<td>
<kc:code codeId="CC025" code="${mgrInfo.exmpCcTy}"/>
<input type="hidden" name="exmpCcTy" value="<c:out value='${mgrInfo.exmpCcTy}'/>"/>
</td>
</tr>
<tr>
<th><span class="">첨부파일</span></th>
@ -328,14 +257,11 @@
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<tr>
<input type="hidden" name="exmpList[${status.index}].exmpDtlId" value="<c:out value='${list.exmpDtlId}' />">
<td>
<textarea name="exmpList[<c:out value='${status.index}' />].exmpCn" placeholder="예문을 입력해주세요." style="resize: none; width:96%; margin: 10px 0;"><c:out value='${list.exmpCn}' /></textarea>
</td>
</tr>
</c:forEach>
<tr>
<td style="text-align: left; line-height: 30px; padding: 10px;">
<textarea name="exmpCn" id="exmpCn" placeholder="예문을 입력해주세요." style="resize: none; height: 250px; width:96%; margin: 10px 0;"><c:out value='${mgrInfo.exmpCn}' /></textarea>
</td>
</tr>
</tbody>
</table>
</div>
@ -344,7 +270,7 @@
<div class="area_left">
</div>
<div class="area_right">
<button class="btnType06" onclick="fn_modifyBtn(); return false;">수정</button>
<button class="btnType06" onclick="fncSave(); return false;">수정</button>
<button class="btnType03" onclick="fncGoList(); return false;">목록</button>
</div>
</div>

View File

@ -36,63 +36,7 @@ $(document).ready( function() {
});
});
function fncRowAdd(){
// 등록가능한 갯수
var len = $("select[name*=exmpCd]:first option").length;
var rowLen = $(".addTb > table > tbody > tr").length;
var obj = $(".addTb > table > tbody > tr:last");
var cloneObj = obj.clone(true);
console.log('cloneObj : ',cloneObj);
if(len == 0 || rowLen >= (len-1)){
alert("등록가능한 항목은 갯수는 " + (len-1) + "개 입니다.");
return false;
}
var exmpCd = cloneObj.find("select[name*=exmpCd]");
var exmpCn = cloneObj.find("textarea[name*=exmpCn]");
exmpCd.val("");
exmpCn.val("");
exmpCd.attr("name", exmpCd.attr("name").replace(/[0-9]/gi, rowLen));
exmpCn.attr("name", exmpCn.attr("name").replace(/[0-9]/gi, rowLen));
obj.after(cloneObj);
}
function fncRowDel(){
var rowLen = $(".addTb > table > tbody > tr").length;
if(rowLen == 1){
alert("더이상 삭제할 수 없습니다.");
return false;
}
$(".addTb > table > tbody > tr:last").remove();
}
// function fncSave(){
// var exmpCcTy = "<c:out value='${mgrInfo.exmpCcTy}' />";
// if(exmpCcTy != ''){
// saveProcess();
// }else{
// $.ajax({
// type: "POST",
// url: "/kccadr/adjPgrMgr/exmp/existsExmpManagerDataCheck.do",
// data: JSON.stringify({exmpCcTy : 0
// ,codeId : $('#codeId').val()}),
// dataType:'json',
// async: false,
// processData: false,
// contentType: "application/json",
// cache: false,
// success: function (data) {
// if(data.status == "OK"){
// saveProcess();
// }else{
// alert(data.message);
// return false;
// }
// },
// error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
// });
// }
// }
function saveProcess(){
if(!validation()){
@ -115,7 +59,7 @@ function saveProcess(){
success:function(returnData){
alert(returnData.data);
if(data.status == "OK"){
fncDetail();
fncGoList();
}
},
error:function(request , status, error){
@ -138,52 +82,31 @@ function validation(){
return flag = false;
}
var cn = $('#exmpCn').val();
var validArr = [];
$.each(obj , function(idx, elm){
var cn = $(this).find("textarea[name*=exmpCn]").val();
var textLen = conByteLeng(cn); //예문 입력 내용 Byte 계산 처리
if(cn == ''){
alert("예문내용을 입력해주세요.");
return flag = false;
}
var textLen = conByteLeng(cn);
if(cn == ''){
alert("예문내용을 입력해주세요.["+(idx+1)+"]");
return flag = false;
}
if(Number(textLen) > 2000){
if(Number(textLen) > 2000){
alert("예문 내용의 길이는 2000자를 넘을 수 없습니다.");
return flag = false;
}
alert("예문 내용의 길이는 2000자를 넘을 수 없습니다.");
return flag = false;
});
var checkObj = validArr.reduce((accu, curr) => {
accu[curr] = (accu[curr] || 0)+1;
return accu;
}, {});
$.each(checkObj, function(key, value){
if(parseInt(value) > 1){
alert("동일한 항목을 중복으로 등록하실 수 없습니다.");
return flag = false;
}
});
}
return flag;
}
function fncGoList(){
var varFrom = document.getElementById("createForm");
varFrom.action = "<c:url value='/kccadr/adjPgrMgr/exmp/exmpOpinionManagerList.do'/>";
varFrom.submit();
}
function fncDetail(){
var varFrom = document.getElementById("createForm");
varFrom.action = "<c:url value='/kccadr/adjPgrMgr/exmp/exmpOpinionManagerDetail.do'/>";
varFrom.submit();
}
</script>
<style>
@ -197,7 +120,7 @@ function fncDetail(){
<input type="hidden" name="searchCondition" value="<c:out value='${exmpManageVO.searchCondition}'/>"/>
<input type="hidden" name="searchKeyword" value="<c:out value='${exmpManageVO.searchKeyword}'/>"/>
<input type="hidden" name="pageIndex" value="<c:out value='${exmpManageVO.pageIndex}'/>"/>
<input type="hidden" name="codeId" id="codeId" value="<c:out value="${exmpManageVO.codeId}" />" />
<input type="hidden" name="exmpCd" value="<c:out value="${exmpManageVO.exmpCd}" />" />
<input type="hidden" name="exmpCcTy" id="exmpCcTy" value="" />
<!-- <input type="hidden" name="exmpTit" value="답변서예문" /> -->
@ -207,18 +130,17 @@ function fncDetail(){
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>의견예문등록</h2>
<h2>의견관리 등록</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li><p>조정진행관리</p></li>
<li><p>의견예문관리</p></li>
<li><span class="cur_nav">의견예문등록</span></li>
<li><span class="cur_nav">의견관리 등록</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<p class="tb_tit">의견</p>
<p class="tb_tit">기본 정보</p>
<div class="tbType02">
<table>
<colgroup>
@ -322,7 +244,7 @@ function fncDetail(){
</div>
<!-- //list_상세 -->
<div class="tb_tit">
<p>예문내용</p>
<p>의견</p>
<!-- <div class="btn_wrap"> -->
<!-- <button type="button" class="btn_plus" onclick="fncRowAdd(); return false;"><i></i></button> -->
<!-- <button type="button" class="btn_minus" onclick="fncRowDel(); return false;"><i></i></button> -->
@ -331,40 +253,19 @@ function fncDetail(){
<div class="list tbType01 addTb">
<table>
<colgroup>
<%-- <col style="width: 27%"> --%>
<col style="width: auto">
</colgroup>
<thead>
<tr>
<!-- <th>항목</th> -->
<th>예문내용</th>
</tr>
</thead>
<tbody>
<c:choose>
<c:when test="${fn:length(list) eq 0}">
<tr>
<!-- <td> -->
<%-- <kc:select codeId="CC040" name="exmpList[0].exmpCd" id="test" defaultText="선택" defaultValue="" selectedValue="" css="style='width:200px; height:38px;'"/> --%>
<!-- </td> -->
<td>
<textarea name="exmpList[0].exmpCn" placeholder="예문을 입력해주세요." style="resize: none; width:96%; margin: 10px 0;"></textarea>
</td>
</tr>
</c:when>
<c:otherwise>
<c:forEach var="list" items="${list}" varStatus="status">
<tr>
<!-- <td> -->
<%-- <kc:select codeId="CC040" name="exmpList[${status.index}].exmpCd" defaultText="선택" defaultValue="" selectedValue="${list.exmpCd}" css="style='width:200px; height:38px;'"/> --%>
<!-- </td> -->
<td>
<textarea name="exmpList[<c:out value='${status.index}' />].exmpCn" placeholder="예문을 입력해주세요." style="resize: none; width:96%; margin: 10px 0;"><c:out value='${list.exmpCn}' /></textarea>
</td>
</tr>
</c:forEach>
</c:otherwise>
</c:choose>
<tr>
<td>
<textarea name="exmpCn" id="exmpCn" placeholder="예문을 입력해주세요." style="resize: none; height: 250px; width:96%; margin: 10px 0;"></textarea>
</td>
</tr>
</tbody>
</table>
</div>

View File

@ -53,25 +53,24 @@
<input type="hidden" name="searchCondition" value="<c:out value='${exmpManageVO.searchCondition}'/>"/>
<input type="hidden" name="searchKeyword" value="<c:out value='${exmpManageVO.searchKeyword}'/>"/>
<input type="hidden" name="pageIndex" value="<c:out value='${exmpManageVO.pageIndex}'/>"/>
<input type="hidden" name="codeId" value="<c:out value="${exmpManageVO.codeId}" />" />
<input type="hidden" name="exmpCd" value="<c:out value="${exmpManageVO.exmpCd}" />" />
<input type="hidden" name="exmpMgrId" value="<c:out value="${exmpManageVO.exmpMgrId}" />" />
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>의견예문상세</h2>
<h2>의견관리 상세</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li><p>조정진행관리</p></li>
<li><p>의견예문관리</p></li>
<li><span class="cur_nav">의견예문상세</span></li>
<li><span class="cur_nav">의견관리 상세</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<p class="tb_tit">의견</p>
<p class="tb_tit">기본정보</p>
<div class="tbType02">
<table>
<colgroup>
@ -106,7 +105,7 @@
</div>
<!-- //list_상세 -->
<div class="tb_tit">
<p>예문</p>
<p>의견</p>
<%--<div class="btn_wrap">
<button type="button" class="btn_plus" onclick="fncRowAdd(); return false;"><i></i></button>
<button type="button" class="btn_minus" onclick="fncRowDel(); return false;"><i></i></button>
@ -115,6 +114,7 @@
<div class="list tbType01 addTb">
<table>
<colgroup>
<%-- <col style="width: 20%"> --%>
<col style="width: auto">
</colgroup>
<thead>
@ -123,13 +123,11 @@
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<tr>
<td style="text-align: left; line-height: 30px; padding: 10px;">
<c:out value="${fn:replace(list.exmpCn, crlf , '<br/>')}" escapeXml="false" />
</td>
</tr>
</c:forEach>
<tr>
<td style="text-align: left; line-height: 30px; padding: 10px;">
<c:out value="${fn:replace(mgrInfo.exmpCn, crlf , '<br/>')}" escapeXml="false" />
</td>
</tr>
</tbody>
</table>
</div>

View File

@ -11,15 +11,15 @@
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt_rt" %>
<%
/**
* @Class Name : AdjustDeptManagerList.jsp
* @Description : 조정부관리
* @Class Name : exmpOpinionManagerList.jsp
* @Description : 의견 예문 관리
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.08.09 김봉호 최초 생성
* @author 김봉호
* @since 2021.08.21
* @ 2022.10.12 이호영 최초 생성
* @author 이호영
* @since 2021.10.12
* @version 1.0
* @see
*
@ -51,20 +51,6 @@
function fn_egov_checkAll(){
var FLength = document.getElementsByName("memSeqArr").length;
var checkAllValue = document.getElementById('checkAll').checked;
//undefined
if( FLength == 1){
document.getElementById("memSeqArr0").checked = checkAllValue;
} else {
for(var i=0; i < FLength; i++) {
document.getElementsByName("memSeqArr")[i].checked = checkAllValue;
}
}
}
function fncDetailPage(exmpMgrId){
var listForm = document.listForm ;
@ -81,7 +67,7 @@
<input type="hidden" name="pageIndex" value="<c:out value='${exmpManageVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${exmpManageVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${exmpManageVO.searchSortOrd}" />" />
<input type="hidden" name="codeId" value="<c:out value="${exmpManageVO.codeId}" />" />
<input type="hidden" name="exmpCd" value="<c:out value="${exmpManageVO.exmpCd}" />" />
<input type="hidden" name="exmpMgrId" value="0" />
<div class="cont_wrap">
@ -89,13 +75,13 @@
<!-- cont_tit -->
<div class="cont_tit">
<h2>의견예문관리</h2>
<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>
<li><span class="cur_nav">의견관리 목록</span></li>
</ul>
</div>
<!-- //cont_tit -->

View File

@ -64,32 +64,6 @@
$(".addTb > table > tbody > tr:last").remove();
}
function fn_modifyBtn(){
var exmpCcTy = "<c:out value='${mgrInfo.exmpCcTy}' />";
if(exmpCcTy != ''){
saveProcess();
}else{
$.ajax({
type: "POST",
url: "/kccadr/adjPgrMgr/exmp/existsExmpManagerDataCheck.do",
data: JSON.stringify({exmpCcTy : $("#exmpCcTy").val()}),
dataType:'json',
async: false,
processData: false,
contentType: "application/json",
cache: false,
success: function (returnData) {
if(returnData.status == "OK"){
saveProcess();
}else{
alert(returnData.data);
return false;
}
},
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
});
}
}
function fn_modifyBtn(){
if(!validation()){
@ -110,7 +84,8 @@
contentType: false,
cache: false,
success:function(returnData){
if(returnData.status == "OK"){
console.log('returnData : ', returnData);
if(returnData.result == "SUCCESS"){
alert("정상적으로 등록되었습니다.");
fncDetail();
}
@ -133,11 +108,6 @@
return flag = false;
}
if($("#exmpCcTy").val() == ''){
alert("저작물을 선택해주세요.");
return flag = false;
}
var validArr = [];
$.each(obj , function(idx, elm){
var cd = $(this).find("select[name*=exmpCd]").val();
@ -204,19 +174,18 @@
<input type="hidden" name="pageIndex" value="<c:out value='${exmpManageVO.pageIndex}'/>"/>
<input type="hidden" name="searchSortOrd" value="<c:out value="${exmpManageVO.searchSortOrd}" />"/>
<input type="hidden" name="exmpMgrId" value="<c:out value='${mgrInfo.exmpMgrId}' />">
<input type="hidden" name="codeId" id="codeId" value="<c:out value='${mgrInfo.codeId}' />">
<input type="hidden" name="exmpCd" value="<c:out value="${exmpManageVO.exmpCd}" />" />
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>의견예문수정</h2>
<h2>의견관리 수정</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li><p>조정진행관리</p></li>
<li><p>의견예문관리</p></li>
<li><span class="cur_nav">의견예문수정</span></li>
<li><span class="cur_nav">의견관리 수정</span></li>
</ul>
</div>
<!-- //cont_tit -->
@ -328,14 +297,11 @@
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<tr>
<input type="hidden" name="exmpList[${status.index}].exmpDtlId" value="<c:out value='${list.exmpDtlId}' />">
<td>
<textarea name="exmpList[<c:out value='${status.index}' />].exmpCn" placeholder="예문을 입력해주세요." style="resize: none; width:96%; margin: 10px 0;"><c:out value='${list.exmpCn}' /></textarea>
</td>
</tr>
</c:forEach>
<tr>
<td style="text-align: left; line-height: 30px; padding: 10px;">
<textarea name="exmpCn" placeholder="예문을 입력해주세요." style="resize: none; height: 250px; width:96%; margin: 10px 0;"><c:out value='${mgrInfo.exmpCn}' /></textarea>
</td>
</tr>
</tbody>
</table>
</div>

View File

@ -77,7 +77,14 @@ function actionLogin() {
} else if (document.loginForm.password_text.value =="") {
alert("비밀번호를 입력하세요");
return false;
} else {
}
<c:if test="${mode == 'OTP'}">
else if (document.loginForm.certNum.value ==""){
alert("인증번호를 입력하세요.");
return false;
}
</c:if>
else {
// var rsa = new RSAKey();
// rsa.setPublic($('#RSAModulus').val(),$('#RSAExponent').val());
@ -89,7 +96,7 @@ function actionLogin() {
$("#id").val(id);
$("#password").val(pw);
$("#password2").val(pw);
document.loginForm.action="<c:url value='/uat/uia/actionSecurityLogin.do'/>";
saveid(document.loginForm);
document.loginForm.submit();
@ -131,10 +138,22 @@ function getid(form){
form.checkId.checked = ((form.id_text.value = getCookie("ncms_saveid")) != "");
}
function validation(){
if(document.loginForm.phone.value == ''){
alert('휴대폰번호를 입력해주세요.');
return false;
}
return true;
}
// OTP 문자인증 문자발송 Ajax
function optCertNumSms(){
document.certForm.phone.value = document.loginForm.phone.value;
if(!validation()){
return false;
}
document.certForm.trPhone.value = document.loginForm.phone.value;
var data = new FormData(document.certForm);
@ -150,13 +169,18 @@ function optCertNumSms(){
success: function (returnData, status) {
console.log(returnData.result);
if(returnData.result == 'SUCCESS'){
alert("인증번호가 발송되었습니다. \n 발송된 인증번호를 입력해주세요.");
}else{
alert(returnData.message);
alert(returnData.message);
}
},
error: function (e) { alert("요청에 실패하였습니다."); console.log("ERROR : ", e); }
});
}
function onlyNumber(thisObj) {
thisObj.value = thisObj.value.replace(/[^0-9]/gi, "");
}
</script>
</head>
@ -177,19 +201,21 @@ function optCertNumSms(){
</div>
<div class="login_right_box login_right_otp_box">
<p class="login_tit">로그인</p>
<kc:profile value="local">
아이디 선택 : <select id="devIdSelect" style="width: 400px; height: 30px;" onchange="login()">
<option value="">로그인할 아이디를 선택해주세요.</option>
<option value="admin">관리자1 </option>
<option value="admin1">관리자2 </option>
<option value="adradmin1">저작권위원회 관리자1(기본담당자)</option>
<option value="adradmin2">저작권위원회 관리자2(팀장)</option>
<option value="adradmin3">저작권위원회 관리자3(부서장)</option>
<option value="adradmin4">저작권위원회 관리자4(위원장)</option>
</select>
<br></br>
</kc:profile>
<c:if test="${mode ne 'OTP'}">
<kc:profile value="local">
아이디 선택 : <select id="devIdSelect" style="width: 400px; height: 30px;" onchange="login()">
<option value="">로그인할 아이디를 선택해주세요.</option>
<option value="admin">관리자1 </option>
<option value="admin1">관리자2 </option>
<option value="adradmin1">저작권위원회 관리자1(기본담당자)</option>
<option value="adradmin2">저작권위원회 관리자2(팀장)</option>
<option value="adradmin3">저작권위원회 관리자3(부서장)</option>
<option value="adradmin4">저작권위원회 관리자4(위원장)</option>
</select>
<br></br>
</kc:profile>
</c:if>
<div class="id_box">
<p>ID</p>
<label for="id_text"></label>
@ -204,8 +230,8 @@ function optCertNumSms(){
<div class="id_box otp_phone_box">
<p>휴대폰번호</p>
<label for="phone"></label>
<input type="text" name="phone" id="phone" placeholder="휴대폰번호를 입력해주세요." />
<button type="button" class="otp_phone_btn">인증번호받기</button>
<input type="text" name="phone" id="phone" onkeyup="onlyNumber(this)" placeholder="휴대폰번호를 입력해주세요." />
<button type="button" class="otp_phone_btn" onclick="optCertNumSms();">인증번호받기</button>
</div>
<div class="id_box otp_phone_box">
<p>인증번호 입력</p>
@ -230,8 +256,8 @@ function optCertNumSms(){
</form:form>
<form id="certForm" name="certForm" method="post" action="">
<input type="hidden" name="frstRegisterId" id="frstRegisterId" value="<c:out value='${id}'/>"/>
<input type="hidden" name="phone" id="phone" value=""/>
<input type="hidden" name="userId" id="userId" value="<c:out value='${id}'/>"/>
<input type="hidden" name="trPhone" id="trPhone" value=""/>
</form>
</body>

View File

@ -184,7 +184,8 @@ function snsShare(snsName) {
<c:forEach var="menuLeftResultList" items="${menuLeftResultList}" varStatus="status">
<c:if test="${menuLeftResultList.depths eq '2' }">
<c:forEach var="resultCurrentList" items="${menuCurrentResultList}" varStatus="status">
<c:if test="${menuLeftResultList.menuNo eq resultCurrentList.menuNo }">
<c:if test="${menuLeftResultList.menuNo eq resultCurrentList.menuNo &&
'99921000' ne menuLeftResultList.menuNo}">
<button class="snb_tit" title="하위메뉴 열기"><c:out value='${menuLeftResultList.menuNm}' /></button>
</c:if>
</c:forEach>

View File

@ -0,0 +1,134 @@
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<un:useConstants var="KccadrConstants" className="kcc.kccadr.cmm.KccadrConstants" />
<% pageContext.setAttribute("replaceChar", "\n"); %>
<!DOCTYPE html>
<html lang="ko">
<head>
<title>조정사건 상세</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script src="/kccadrPb/usr/script/popup.js"></script>
<script src="/js/page/adjstReq/adjstReq.js"></script>
<script type="text/javascript" src="<c:url value="/validator.do"/>"></script>
<%-- <un:useConstants var="KccadrConstants" className="kcc.kccadr.cmm.KccadrConstants" /> --%>
<script type="text/javaScript" language="javascript">
</script>
</head>
<body>
<form:form id="listForm" name="listForm" commandName="adjstIncidentVO" onsubmit="return false;" method="post">
<input type="hidden" name="pageIndex" value="<c:out value='${adjstIncidentVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${adjstIncidentVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${adjstIncidentVO.searchSortOrd}" />" />
<input type="hidden" name="searchStatus" value="<c:out value="${adjstIncidentVO.searchStatus}" />" />
</form:form>
<form id="popForm" name="popForm" action="<c:url value='/web/kccadr/accdnt/ai/popup/adjstIncidentDetailPop.do'/>" method="post">
<input type="hidden" name="adrSeq" id="adrSeq" value="<c:out value='${master.adrSeq}'/>"/>
</form>
<form:form id="editForm" name="editForm" commandName="adjstIncidentVO" onsubmit="return false;" method="post">
<input type="hidden" name="adrSeq" id="adrSeq" value="<c:out value='${master.adrSeq}'/>"/>
<input type="hidden" name="adjPageSts" value="Upt"/>
</form:form>
<!-- cont -->
<div class="cont_wrap sub02_1" id="sub">
<div class="inner">
<div class="cont_tit">
<h2>조정사건 기록열람 신청</h2>
</div>
<div class="top_progress top_progress02">
<p>열람수수료는 <span>700</span>원, 발급수수료는 <span>1,000</span>원입니다.</p>
<button type="button" class="btnType05" title="프린터창 열림" onclick="window.print();">발급가능 프린터 확인</button>
</div>
<div class="tb_wrap">
<!-- <div class="tb_top">
<p>대리인 정보</p>
</div> -->
<table class="tbType01">
<caption>조정사건 기록열람 신청 정보 : 조정번호, 신청인 구분, 조정당사자 여부, 서류종류, 발급부수등의 정보제공</caption>
<colgroup>
<col style="width:250px;">
<col style="width:auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>조정번호</p>
</th>
<td>
<label for="adjNm" class="label">조정번호 입력</label>
<input type="text" name="adjNm" id="adjNm" value="" size="30" placeholder="조정번호를 입력하세요." />
<button type="button" class="btnType01 btn_adr_search" data-tooltip="list_popup" onclick="AdjstReq.historyAdjstPopEndList();" title="팝업 열림">조회</button>
</td>
</tr>
<tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>신청인 구분</p>
</th>
<td>
<div class="radio_wrap">
<input type="radio" name="adjSort" id="adjSort01" /><label for="adjSort01">권리자</label>
<input type="radio" name="adjSort" id="adjSort02" /><label for="adjSort02">이용자</label>
</div>
</td>
</tr>
<tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>조정당사자 여부</p>
</th>
<td>
<div class="radio_wrap">
<input type="radio" name="adjWhether" id="adjWhether01" /><label for="adjWhether01">본인</label>
<input type="radio" name="adjWhether" id="adjWhether02" /><label for="adjWhether02">대리인</label>
</div>
</td>
</tr>
<tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>서류종류</p>
</th>
<td>
<div class="radio_wrap">
<input type="radio" name="adjDocType" id="adjDocType01" /><label for="adjDocType01">기일조서</label>
<input type="radio" name="adjDocType" id="adjDocType02" /><label for="adjDocType02">조정조서</label>
</div>
</td>
</tr>
<tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>발급부수</p>
</th>
<td>
<select name="adjIss" id="adjIss">
<option value="1">1</option>
</select>
<span>통</span>
</td>
</tr>
</tbody>
</table>
</div>
<!-- 하단 버튼 -->
<div class="btn_wrap btn_layout02">
<button type="button" class="btnType07">신청</button>
</div>
<!-- //하단 버튼 -->
</div>
</div>
</body>
</html>

View File

@ -190,11 +190,11 @@
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>답변내용</p>
<button class="btnType01 btn_adr_search examBtn" data-tooltip="fee_info_popup" onclick="AdjstReq.openAnswerExamplePop('CC003'); return false;" title="예문 팝업 열림">예문</button>
<button class="btnType01 btn_adr_search examBtn" data-tooltip="fee_info_popup" onclick="AdjstReq.openExamplePop('04'); return false;" title="예문 팝업 열림">예문</button>
</th>
<td>
<label for="adrDocCn1" class="label">답변내용 입력</label>
<textarea name="adrDocCn1" id="adrDocCn1" cols="30" rows="5" cssClass="purpose_text" cssStyle="resize: none;"><c:out value='${info.adrDocCn1}' /></textarea>
<textarea name="adrDocCn1" id="reqCn4" cols="30" rows="5" cssClass="purpose_text" cssStyle="resize: none;"><c:out value='${info.adrDocCn1}' /></textarea>
</td>
</tr>
<tr>

View File

@ -255,7 +255,7 @@ resInfo--%>
</p>
<i class="next">다음</i>
<div class="hover_content_box">
조정 진행과정 중 하나의 절차로써, 사건 당사자들의 합의를 위해 한국저작권위원회가 중재하는 자리로 조정위원, 사건당사자, 그 밖의 사건관계인이 출석 하는 날을 말합니다.
<c:out value="${helpMap['01'] }" />
</div>
</div>
<div class="step step02 <c:out value="${statusActive eq '2' ? 'active' : ''}" /> hover_content_wrap">
@ -266,7 +266,7 @@ resInfo--%>
</p>
<i class="next">다음</i>
<div class="hover_content_box">
조정 진행과정 중 하나의 절차로써, 사건 당사자들의 합의를 위해 한국저작권위원회가 중재하는 자리로 조정위원, 사건당사자, 그 밖의 사건관계인이 출석 하는 날을 말합니다.
<c:out value="${helpMap['02'] }" />
</div>
</div>
<div class="step step03 <c:out value="${statusActive eq '3' ? 'active' : ''}" /> hover_content_wrap">
@ -277,7 +277,7 @@ resInfo--%>
</p>
<i class="next">다음</i>
<div class="hover_content_box">
조정 진행과정 중 하나의 절차로써, 사건 당사자들의 합의를 위해 한국저작권위원회가 중재하는 자리로 조정위원, 사건당사자, 그 밖의 사건관계인이 출석 하는 날을 말합니다.
<c:out value="${helpMap['03'] }" />
</div>
</div>
<div class="step step04 <c:out value="${statusActive eq '4' ? 'active' : ''}" /> hover_content_wrap">
@ -288,7 +288,7 @@ resInfo--%>
</p>
<i class="next">다음</i>
<div class="hover_content_box">
조정 진행과정 중 하나의 절차로써, 사건 당사자들의 합의를 위해 한국저작권위원회가 중재하는 자리로 조정위원, 사건당사자, 그 밖의 사건관계인이 출석 하는 날을 말합니다.
<c:out value="${helpMap['04'] }" />
</div>
</div>
<div class="step step05 <c:out value="${statusActive eq '5' ? 'active' : ''}" /> hover_content_wrap">
@ -298,7 +298,7 @@ resInfo--%>
<span>종료</span>
</p>
<div class="hover_content_box">
조정 진행과정 중 하나의 절차로써, 사건 당사자들의 합의를 위해 한국저작권위원회가 중재하는 자리로 조정위원, 사건당사자, 그 밖의 사건관계인이 출석 하는 날을 말합니다.
<c:out value="${helpMap['05'] }" />
</div>
</div>
</div>

View File

@ -12,6 +12,7 @@
<title>기일조서 상세</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script src="/kccadrPb/usr/script/popup.js"></script>
<!-- <script src="/js/page/adjstReq/adjstReq.js"></script> -->
<script type="text/javaScript" language="javascript">
$( document ).ready(function(){
fncGoCommentList();
@ -148,8 +149,6 @@
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row" class="" colspan="2">
<p>조정부</p>
@ -297,6 +296,54 @@
</c:forEach>
</div>
<div class="tb_list01">
<table>
<colgroup>
<col style="width: 300px;">
<col style="width: auto;">
<col style="width: 12%;">
</colgroup>
<thead>
<tr>
<th scope="col">일자</th>
<th scope="col">내용</th>
<th scope="col">조정위원</th>
</tr>
</thead>
<tbody>
<tr>
<td>2021.07.15</td>
<td class="td_tit02">피신청인은 2020.9.18까지 신청인에게 금 3,000,000원을 지급한다.</td>
<td>김OO</td>
</tr>
<%-- <c:if test="${empty list}"> --%>
<tr><td colspan="3">등록된 의견이 없습니다.</td></tr>
<%-- </c:if> --%>
</tbody>
</table>
</div>
<div class="tb_wrap">
<table class="tbType01 tb_deputy">
<colgroup>
<col style="width: 300px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th>
<p>의견<button type="button" class="btnType01 btn_adr_search" data-tooltip="opinion_popup" onclick="AdjstReq.opinionsAdjstPopList();">자주쓰는 의견</button></p>
</th>
<td class="opinion">
<div class="text"><input type="checkbox" name="opinion" id="opinion" /><label for="opinion">자주쓰는 의견 등록</label></p>
<div class="box">
<textarea name="cn"></textarea>
<button type="button" class="btnType09">의견등록</button>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<%--의견등록--%>
<div id="commentArea" style="margin-bottom: 20px;"></div>
@ -304,6 +351,8 @@
<div class="btn_wrap btn_layout03">
<div class="btn_left"></div>
<div class="btn_right">
<button type="button" class="btnType07">반려</button>
<button type="button" class="btnType09">결재</button>
<button type="button" class="btnType11 btn_list" onclick="fncGoDetail(); return false;">사건정보</button>
</div>
</div>

View File

@ -0,0 +1,106 @@
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<!DOCTYPE html>
<html lang="ko">
<head>
<title>조정신청 수정요청</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javascript" src="/kccadrPb/usr/script/popup.js"></script>
<script type="text/javaScript" language="javascript">
function fncGoList(){
linkPage(1);
}
function linkPage(pageNo){
var data = {
pageIndex : pageNo,
searchKeyword : $("#searchKeyword").val(),
searchCondition : $("#searchCondition").val(),
pageUnit : 5,
}
AdjstReq.historyAdjstPopList(data);
}
$(document).ready(function(){
// 레이어팝업 포커싱 이동 수정
$(".tooltip-close").click(function(){
var activeTarget = $('[data-tooltip-con="opinion_popup"]');
activeTarget.hide();
$('[data-tooltip="opinion_popup"]').focus();
});
})
</script>
<style type="text/css">
.popup_list tbody td.text {overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
</style>
</head>
<body>
<!-- 일정 상세 -->
<form:form commandName="adjstReqVO" id="popList" name="popList" method="post" onsubmit="return false;">
<input type="hidden" name="pageIndex" value="<c:out value='${adjstReqVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${adjstReqVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${adjstReqVO.searchSortOrd}" />" />
</form:form>
<div class="popup_wrap opinion_popup" tabindex="0" data-tooltip-con="opinion_popup" data-focus="opinion_popup" data-focus-prev="opinion_popup_close">
<div class="popup_tit">
<p>자주쓰는 의견 목록</p> <button class="btn_popup_close tooltip-close" data-focus="opinion_popup_close" title="팝업 닫기"><i></i></button>
</div>
<div class="popup_cont">
<div class="popup_search">
<label for="searchCondition">검색조건 선택</label>
<kc:select codeId="CC002" name="searchCondition" id="searchCondition" defaultValue="" defaultText="전체" selectedValue="${adjstReqVO.searchCondition}"/>
<label for="searchKeyword">검색 조건 입력</label>
<input type="text" name="searchKeyword" id="searchKeyword" value="<c:out value='${adjstReqVO.searchKeyword}' />" placeholder="검색 조건 입력" size="20">
<button type="button" class="btnType07" onclick="fncGoList(); return false;">검색</button>
</div>
<table class="popup_list">
<caption>자주쓰는 의견 목록 : 유형, 내용, 선택등의 정보제공</caption>
<colgroup>
<col style="width: 20%;">
<col style="width: 40%;">
<col style="width: 20%;">
</colgroup>
<thead>
<tr>
<th scope="col">유형</th>
<th scope="col">내용</th>
<th scope="col">선택</th>
</tr>
</thead>
<tbody>
<tr>
<td>기일조서</td>
<td class="text">피신청인이 제1항 의무를 성실히 이행할 경우 어쩌고저쩌고</td>
<td><button type="button" class="btnType01">선택</button></td>
</tr>
<c:if test="${fn:length(list) eq 0}">
<tr>
<td colspan="3"><spring:message code="common.nodata.msg" /></td>
</tr>
</c:if>
</tbody>
</table>
<!-- page -->
<!-- <div class="page"> -->
<%-- <ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" /> --%>
<!-- </div> -->
<!-- //page -->
<div class="btn_wrap">
<button class="btnType01 tooltip-close" data-focus="opinion_popup_close" data-focus-next="opinion_popup">닫기</button>
</div>
</div>
</div>
</body>
</html>

View File

@ -41,9 +41,9 @@ $(document).ready(function(){
<p>조정신청 예문</p> <button class="btn_popup_close tooltip-close" data-focus="fee_info_popup_close" title="팝업 닫기"><i></i></button>
</div>
<div class="popup_cont">
<c:if test="${not empty expm.expmCd}">
<c:if test="${not empty exmp.exmpCd}">
<div class="cont_tit03">
* <kc:code codeId="CC040" code="${expm.expmCd}"/>
* <kc:code codeId="CC040" code="${exmp.exmpCd}"/>
</div>
</c:if>
<table class="popup_tbType01 t_center">
@ -55,8 +55,8 @@ $(document).ready(function(){
<tr>
<td colspan="2" style="line-height: 30px; text-align: left;">
<c:choose>
<c:when test="${not empty expm.expmCn}">
<c:out value="${fn:replace(expm.expmCn, crlf , '<br/>')}" escapeXml="false" />
<c:when test="${not empty exmp.exmpCn}">
<c:out value="${fn:replace(exmp.exmpCn, crlf , '<br/>')}" escapeXml="false" />
</c:when>
<c:otherwise>
등록된 내용이 없습니다.

View File

@ -16,28 +16,47 @@
<script type="text/javaScript" language="javascript">
$(document).ready(function(){
var exmpList = '';
// 레이어팝업 포커싱 이동 수정
var popupTit = $(".cont_tit03").text();
if(popupTit.trim() == "* 신청취지"){
$(".tooltip-close").click(function(){
var activeTarget = $('[data-tooltip-con="fee_info_popup"]');
activeTarget.hide();
$('[data-tooltip="fee_info_popup"]').eq(0).focus();
});
}else{
$(".tooltip-close").click(function(){
var activeTarget = $('[data-tooltip-con="fee_info_popup"]');
activeTarget.hide();
$('[data-tooltip="fee_info_popup"]').eq(1).focus();
});
}
var data = new FormData(document.getElementById("selectForm"));
$.ajax({
type:"POST",
url: "/web/kccadr/adjst/popup/adjstReqOpenExampleAjax.do",
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
exmpList = returnData.dataList;
},
error:function(request , status, error){
console.log('request : ', request);
console.log('status : ', status);
console.log('error : ', error);
}
});
/*
* 저작물 변경 event
*/
$('#exmpCcTy').on('change', function(){
fn_selectCn();
$('#selectId').on('change', function(){
var exmpCn = exmpList[$(this).val()].exmpCn;
$('#exmpCn').text(exmpCn);
});
/*
@ -50,48 +69,19 @@ $(document).ready(function(){
$(perId).val($('#exmpCn').text().trim());
});
/*
* 상세내용 select
*/
// function fn_selectCn(){
// $.ajax({
// type: "POST",
// url: "/web/kccadr/adjst/popup/adjstReqOpenExamplePopCn.do",
// data: JSON.stringify({exmpCd : $("#exmpCd").val()
// , exmpCcTy : $("#exmpCcTy").val() }),
// dataType:'json',
// async: false,
// processData: false,
// contentType: "application/json",
// cache: false,
// success: function (data) {
// if(data.status == "OK"){
// console.log('data : ', data);
// $('#exmpCn').text(data.data);
// }else{
// return false;
// }
// },
// error: function (e) { alert("조회에 실패하였습니다."); console.log("ERROR : ", e); }
// });
// }
// fn_selectCn();
})
</script>
</head>
<body>
<div class="popup_wrap fee_info_popup" style="max-width: 580px;" tabindex="0" data-tooltip-con="fee_info_popup" data-focus="fee_info_popup" data-focus-prev="fee_info_popup_close">
<input type="hidden" id="exmpCd" name="exmpCd" value="${exmpCd }"/>
<div class="popup_tit">
<p>조정신청 예문</p> <button class="btn_popup_close tooltip-close" data-focus="fee_info_popup_close" title="팝업 닫기"><i></i></button>
<p>신청취지 예문</p> <button class="btn_popup_close tooltip-close" data-focus="fee_info_popup_close" title="팝업 닫기"><i></i></button>
</div>
<div class="popup_cont">
<c:if test="${not empty exmpCd}">
<div class="cont_tit03">
* <kc:code codeId="CC040" code="${exmpCd}"/>
* <kc:code codeId="CC040" code="${exmpList[0].exmpCd}"/>
</div>
</c:if>
<table class="popup_tbType01 t_center">
@ -102,14 +92,13 @@ $(document).ready(function(){
<tbody>
<tr>
<td style="line-height: 30px; text-align: left;">
<kc:code codeId="CC040" code="${exmpCd}"/>
<kc:code codeId="CC040" code="${exmpList[0].exmpCd}"/>
</td>
<td style="line-height: 30px; text-align: left;">
<%-- <kc:select codeId="CC002" name="exmpCcTy" id="exmpCcTy" selectedValue="${ccTy}"/> --%>
<select style="width: 135px;">
<option value="">사건 유형 1</option>
<option value="">사건 유형 2</option>
<option value="">사건 유형 3</option>
<select id="selectId" style="width: 135px;">
<c:forEach var="exmp" items="${exmpList }" varStatus="stat">
<option value="${stat.index }"> <c:out value="${exmp.exmpTit }" /> </option>
</c:forEach>
</select>
</td>
</tr>
@ -118,7 +107,7 @@ $(document).ready(function(){
내용
</td>
<td id="exmpCn" style="line-height: 30px; text-align: left;" >
1)피신청인은 신청인에게 저작권 침해에 따른 손해배상 및 위자료로서 금삼백만원(W3,000,000)을 지급한다. 2)피신청인이 제작, 보유하고 있는 본 건 침해물 <월간 스키라이브>를 조정성립일로부터 14일 이내에 폐기처분한다. 라는 조정을 구합니다
<c:out value="${exmpList[0].exmpCn}" />
</td>
</tr>
</tbody>
@ -129,5 +118,8 @@ $(document).ready(function(){
</div>
</div>
</div>
<form id="selectForm" name="selectForm">
<input type="hidden" id="exmpCd" name="exmpCd" value="<c:out value="${exmpList[0].exmpCd}" />" />
</form>
</body>
</html>

View File

@ -61,7 +61,6 @@
* B :진행
* C :종결
*/
alert(type);
var listForm = document.listForm ;
listForm.action = "<c:url value='/web/kccadr/adjstExpDetail/adjstIncidentDetail.do'/>";
if(type == undefined)

View File

@ -90,9 +90,12 @@
$("*[data-focus='fee_popup_close']").attr("data-focus","fee_"+mlt+"_popup_close");
}
});
</script>
<style type="text/css">
.info_wrap {margin:0 0 15px;padding:15px 25px;}
.mask02 {background-color: rgba(0,0,0,0.7); width: 100%; height: 100%; position: fixed; z-index: 22; left: 0; top: 0;}}
</style>
</head>
<body>
<!-- 일정 상세 -->
@ -106,6 +109,13 @@
<p>수수료 납부 금액</p> <button class="btn_popup_close tooltip-close" data-focus="fee_popup_close" title="팝업 닫기"><i></i></button>
</div>
<div class="popup_cont">
<div class="info_wrap">
<div class="text_area">
<ul>
<li>체험하기 시스템 입니다.</li>
</ul>
</div>
</div>
<table class="popup_tbType01 t_center">
<caption> 수수료 납부 금액 : 신청내용, 금액등 정보제공 </caption>
<colgroup>
@ -119,18 +129,14 @@
</tr>
</thead>
<tbody>
<c:set var="total" value="0"/>
<c:forEach var="list" items="${list}" varStatus="status">
<tr>
<td>*
<c:out value="${list.apprRson}"/>
조정신청 체험
</td>
<td>
<p class="t_bold c_222222"><fmt:formatNumber value="${list.adrCost}" pattern="#,###"/>원</p>
<c:set var="total" value="${total + list.adrCost}"/>
<p class="t_bold c_222222"><fmt:formatNumber value="10000" pattern="#,###"/>원</p>
</td>
</tr>
</c:forEach>
</tbody>
</table>
@ -145,39 +151,20 @@
<th scope="row">계좌정보</th>
<td>
<p class="c_e40000" id="vacctInfo">
<c:choose>
<c:when test="${list[0].accTy == '10'}">
우리은행 1005-802-193838 예금주 : 한국저작권위원회
</c:when>
<c:when test="${list[0].accTy == '20' && not empty list[0].vacct}">
<%-- <c:when test="${list[0].accTy == '20' && not empty list[0].vacct && 1==2}"> --%>
가상계좌 : <kc:code codeId="bankcd" code="${list[0].bankCode}"/> <c:out value="${list[0].vacct}" /><br>
예금주 : 한국저작권위원회<br>
</c:when>
<c:otherwise>
<span class="titType01">입금은행</span><kc:select codeId="bankcd" id="bankCode" name="bankCode"/><label for="bankCode" class="label">입금은행 선택</label><br>
<span class="titType01">구매자명</span> <input type="text" id="nmInput" name="nmInput" title="구매자명 입력" value="<c:out value="${list[0].rpplNm}" />" /><br>
<span class="titType01">메일</span> <input type="text" id="buyerEmail" name="buyerEmail" title="메일 입력" value="<c:out value="${list[0].rpplEmail}" />" />
<button class="btnType05" onclick="vBankReq()">가상계좌신청</button>
</c:otherwise>
</c:choose>
<span class="titType01">입금은행</span><kc:select codeId="bankcd" id="bankCode" name="bankCode"/><label for="bankCode" class="label">입금은행 선택</label><br>
<span class="titType01">구매자명</span> <input type="text" id="nmInput" name="nmInput" title="구매자명 입력" value="홍길동" /><br>
<span class="titType01">메일</span> <input type="text" id="buyerEmail" name="buyerEmail" title="메일 입력" value="experience@experience.com" />
<button class="btnType05" data-tooltip="fee_popup2" onclick="document.querySelector('.fee_111_popup').remove();">가상계좌신청</button>
</p>
<input type="hidden" id="adrSeq2" value="<c:out value="${list[0].adrSeq}"/>" />
<input type="hidden" id="mltApprSeq2" value="<c:out value="${list[0].mltApprSeq}"/>" />
<input type="hidden" id="adrSeq2" value="111" />
<input type="hidden" id="mltApprSeq2" value="111"/>
</td>
</tr>
<tr>
<th scope="row">결제금액</th>
<td>
<p><fmt:formatNumber value="${total}" pattern="#,###"/>원
<%-- <c:set var="endDe" value="202112161440" /> --%>
<c:set var="endDe" value="${list[0].dtInput}${list[0].tmInput}" />
<c:if test="${not empty endDe}">
<fmt:parseDate value="${endDe}" var="endDeFmt" pattern="yyyyMMddHHmmss" />
(납부기간 : <fmt:formatDate value="${endDeFmt}" pattern="yyyy-MM-dd HH:mm" />까지)
</c:if>
</p>
<p><fmt:formatNumber value="10000" pattern="#,###"/>원</p>
</td>
</tr>
</tbody>
@ -188,6 +175,78 @@
</div>
</div>
</div>
<div class="popup_wrap fee_popup2" tabindex="0" data-tooltip-con="fee_popup2" data-focus="fee_popup2" data-focus-prev="fee_popup_close2">
<div class="popup_tit">
<p>수수료 납부 금액</p> <button class="btn_popup_close tooltip-close" data-focus="fee_popup_close2" title="팝업 닫기"><i></i></button>
</div>
<div class="popup_cont">
<div class="info_wrap">
<div class="text_area">
<ul>
<li>체험하기 시스템 입니다.</li>
</ul>
</div>
</div>
<table class="popup_tbType01 t_center">
<caption> 수수료 납부 금액 : 신청내용, 금액등 정보제공 </caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th scope="col">신청내용</th>
<th scope="col">금액</th>
</tr>
</thead>
<tbody>
<tr>
<td>*
조정신청 체험
</td>
<td>
<p class="t_bold c_222222"><fmt:formatNumber value="10000" pattern="#,###"/>원</p>
</td>
</tr>
</tbody>
</table>
<table class="popup_tbType01" style="margin-top: 30px;">
<caption>계좌정보, 결제금액 등 정보제공</caption>
<colgroup>
<col style="width: 95px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">계좌정보</th>
<td>
<p class="c_e40000" id="vacctInfo">
가상계좌 : 기업은행 07501740597725<br>
예금주 : 한국저작권위원회<br>
</p>
<input type="hidden" id="adrSeq2" value="111" />
<input type="hidden" id="mltApprSeq2" value="111"/>
</td>
</tr>
<tr>
<th scope="row">결제금액</th>
<td>
<p><fmt:formatNumber value="10000" pattern="#,###"/>원(납부기간 : 2022-12-31 23:59까지)</p>
</td>
</tr>
</tbody>
</table>
<div class="btn_wrap">
<button class="btnType01 tooltip-close" data-focus="fee_popup_close2" data-focus-next="fee_popup2">닫기</button>
</div>
</div>
</div>
</form:form>
</body>

View File

@ -48,6 +48,69 @@
var popForm = document.popForm;
commonPopWindowopenForm("/web/kccadr/adjstExpDetail/popup/adjstIncidentDetailPop.do", "840", "800", "adrRpplDetailPop", $('#popForm'));
}
function fncPayDtlPopup(type , seq, id){
var data = {
adrSeq : '111'
};
if(type == "M"){
data = {mltApprSeq : seq};
}
funOpenLayerPop("/web/kccadr/adjstExpDetail/popup/adjstPayMentDetailPopup.do" , data, 'fee_'+seq+'_popup')
}
function funOpenLayerPop(url, param, target){
$('#layerPop').load(
url
, param
, function(res, status, xhr){
if(status == "success"){
if(target == "fee_info_popup"){
}else{
var listForm = document.popCreateForm2;
var adr = listForm.adrSeq.value;
var mlt = listForm.mltApprSeq.value;
if(typeof mlt == "undefined" || mlt == ""){
$(".fee_popup").attr("class","popup_wrap fee_"+adr+"_popup");
$("*[data-focus='fee_popup']").attr("data-focus","fee_"+adr+"_popup");
$("*[data-tooltip-con='fee_popup']").attr("data-tooltip-con","fee_"+adr+"_popup");
$("*[data-focus-prev='fee_popup_close']").attr("data-focus-prev","fee_"+adr+"_popup_close");
$("*[data-focus-next='fee_popup']").attr("data-focus-next","fee_"+adr+"_popup");
$("*[data-focus='fee_popup_close']").attr("data-focus","fee_"+adr+"_popup_close");
}else{
$(".fee_popup").attr("class","popup_wrap fee_"+mlt+"_popup");
$("*[data-focus='fee_popup']").attr("data-focus","fee_"+mlt+"_popup");
$("*[data-tooltip-con='fee_popup']").attr("data-tooltip-con","fee_"+mlt+"_popup");
$("*[data-focus-prev='fee_popup_close']").attr("data-focus-prev","fee_"+mlt+"_popup_close");
$("*[data-focus-next='fee_popup']").attr("data-focus-next","fee_"+mlt+"_popup");
$("*[data-focus='fee_popup_close']").attr("data-focus","fee_"+mlt+"_popup_close");
}
}
var showTarget = $('[data-tooltip-con="' + target + '"]');
showTarget.show().focus();
var popWid = showTarget.width();
var popHei = showTarget.height();
var nLeft = (($(window).width() - popWid)/2);
var nTop = (($(window).height() - popHei)/2);
showTarget.css({
"left": nLeft,
"top": nTop
});
showTarget.find('.tooltip-close').data('activeTarget', target);
$(".mask").show();
}
});
}
</script>
</head>
<body>
@ -108,7 +171,7 @@
<p>신청인</p>
</th>
<td>
<p>길동</p>
<p>길동</p>
</td>
<th scope="row" class="">
<p>대리인</p>
@ -192,7 +255,7 @@
<div class="btn_left"></div>
<div class="btn_right">
<c:if test="${adjstReqStatusVO.pageType eq 'S'}">
<button type="button" class="btnType09 btn_list" onclick="fncGoList();">수수료 납부</button>
<button type="button" class="btnType09 btn_list" onclick="fncPayDtlPopup('M','111','111');">수수료 납부</button>
</c:if>
<button type="button" class="btnType11 btn_list" onclick="fncGoList();">목록</button>
</div>

View File

@ -41,9 +41,9 @@ $(document).ready(function(){
<p>조정신청 예문</p> <button class="btn_popup_close tooltip-close" data-focus="fee_info_popup_close" title="팝업 닫기"><i></i></button>
</div>
<div class="popup_cont">
<c:if test="${not empty expm.expmCd}">
<c:if test="${not empty exmp.exmpCd}">
<div class="cont_tit03">
* <kc:code codeId="CC040" code="${expm.expmCd}"/>
* <kc:code codeId="CC040" code="${exmp.exmpCd}"/>
</div>
</c:if>
<table class="popup_tbType01 t_center">
@ -55,8 +55,8 @@ $(document).ready(function(){
<tr>
<td colspan="2" style="line-height: 30px; text-align: left;">
<c:choose>
<c:when test="${not empty expm.expmCn}">
<c:out value="${fn:replace(expm.expmCn, crlf , '<br/>')}" escapeXml="false" />
<c:when test="${not empty exmp.exmpCn}">
<c:out value="${fn:replace(exmp.exmpCn, crlf , '<br/>')}" escapeXml="false" />
</c:when>
<c:otherwise>
등록된 내용이 없습니다.

View File

@ -1223,9 +1223,34 @@ var AdjstReq = {
, "adjstHostoryPop"
);
},
opinionsAdjstPopList : function(paramObj){
if(paramObj == undefined || paramObj == ''){
paramObj = {
pageIndex : 1,
searchKeyword : "",
searchCondition : "",
pageUnit : 5
};
}
// 이전신청데이터 팝업 호출..
commonPopLayeropen(
"/web/kccadr/adjcclt/popup/adjstOpinionsPopList.do"
, 500
, 600
, paramObj
, "N"
, "adjstOpinionsPop"
);
},
openExamplePop : function(exmpCd){
/*
- 01 : 신청취지
- 02 : 신청원인
- 04 : 답변서
- 05 : 사건진행도움말
*/
var uri = '';
if(exmpCd == '01')
if(exmpCd == '01' || exmpCd == '04')
{
uri = "adjstReqOpenExamplePop.do";
}
@ -1254,16 +1279,16 @@ var AdjstReq = {
, "openExpExamplePop"
);
},
openAnswerExamplePop : function(codeId){
commonPopLayeropen(
"/web/kccadr/adjst/popup/adjstReqOpenAnswerExamplePop.do"
, 1100
, 600
, {codeId : codeId}
, "N"
, "openExamplePop"
);
},
// openAnswerExamplePop : function(exmpCd){
// commonPopLayeropen(
// "/web/kccadr/adjst/popup/adjstReqOpenAnswerExamplePop.do"
// , 1100
// , 600
// , {exmpCd : exmpCd}
// , "N"
// , "openExamplePop"
// );
// },
adjstReqDataChoice : function(adrSeq){
$("#copyAdrSeq").val(adrSeq);
this.fncGoRefresh();

View File

@ -1025,6 +1025,7 @@ var AdjstReq = {
);
},
openExamplePop : function(expmCd){
console.log(" + expmCd :: ", expmCd);
commonPopLayeropen(
"/web/kccadr/adjst/popup/adjstReqOpenExamplePop.do"
, 1100

View File

@ -242,6 +242,7 @@ table .label{position: absolute;width: 1px; height: 1px; margin: 0; border: none
.tb_list01 tbody .td_tit a{color: #222; font-weight: 400;}
.tb_list01 tbody .td_date p{overflow: visible; text-overflow: unset; white-space: normal;}
.tb_list01 tbody .hover_content_box {left:-10px;top:50px;}
.tb_list01 tbody .td_tit02 {font-weight:400;color:#222;text-align:left;}
.tb_list01 .td_status p,.tb_list01 .td_status a,.tb_list01 .td_status button{display: inline-block; width: auto; padding: 4.5px 10px; box-sizing: border-box; border-radius: 20px; border: 1px solid #ccc; background-color: #fff; line-height: 1.2; font-size: 16px}
.tb_list01 .td_status .status_write{border: 1px solid #1b6fcd; color: #1b6fcd;}
@ -303,6 +304,13 @@ table .label{position: absolute;width: 1px; height: 1px; margin: 0; border: none
.tbType01 td .check_wrap input[type="checkbox"],.tbType01 td .radio_wrap input[type="radio"]{vertical-align: middle;}
.tbType01 td input:read-only,.tbType01 td input:disabled,.tbType01 td button:disabled,.tbType01 td select:disabled{background-color: #eee !important; color: #aaa !important; font-size: 16px;}
.tbType01 tbody .opinion .text {line-height:20px;text-align:right;}
.tbType01 tbody .opinion .text input {width:20px;height:20px;margin:0;}
.tbType01 tbody .opinion .text input + label {line-height:24px;vertical-align:top;}
.tbType01 tbody .opinion .box {overflow:hidden;margin:10px 0 0;}
.tbType01 tbody .opinion .box textarea {float:left;width:calc(100% - 100px);}
.tbType01 tbody .opinion .box .btnType09 {width:90px;height:120px;}
.tbType02{border-top: 1px solid #000; width: 100%; text-align: center; margin-bottom: 20px; table-layout: fixed;}
.tbType02 thead tr{background-color: #f3f3f3; border-bottom: 0.01em solid #d5d5d5;}
.tbType02 thead th{font-size: 16px; height: 55px; color: #222; vertical-align: middle;}