parent
8a06794b67
commit
148af956b2
@ -0,0 +1,90 @@
|
|||||||
|
|
||||||
|
package kr.xit.framework.biz.cmm.web;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.ui.ModelMap;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
|
||||||
|
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
|
||||||
|
import kr.xit.framework.biz.cmm.service.XitFramePopupService;
|
||||||
|
import kr.xit.framework.core.constants.FrameworkConstants;
|
||||||
|
import kr.xit.framework.core.constants.FrameworkConstants.TILES_TYPE;
|
||||||
|
import kr.xit.framework.core.message.XitMessageSource;
|
||||||
|
import kr.xit.framework.core.model.XitBaseSearchVO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @업무그룹명: XIT 프레임워크 팝업 Controller
|
||||||
|
* @최초작성자: 박민규
|
||||||
|
* @author (주)엑스아이티 개발팀
|
||||||
|
* @since 2002. 2. 2.
|
||||||
|
* @version 1.0 Copyright(c) XIT All rights reserved.
|
||||||
|
*/
|
||||||
|
@Controller
|
||||||
|
@RequestMapping("/framework/biz/cmm")
|
||||||
|
public class FrameworkCmmController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private XitFramePopupService xitFramePopupService;
|
||||||
|
@Resource
|
||||||
|
private kr.xit.framework.biz.cmm.service.XitFrameUnitService XitFrameUnitService;
|
||||||
|
@Resource(name = "xitMessageSource")
|
||||||
|
XitMessageSource xitMessageSource;
|
||||||
|
|
||||||
|
@Value("#{prop['Globals.Xit.Pagination.PageUnit']}")
|
||||||
|
private int PAGE_UNIT;
|
||||||
|
@Value("#{prop['Globals.Xit.Pagination.PageSize']}")
|
||||||
|
private int PAGE_SIZE;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>메소드 설명: 우편번호 검색 페이지</pre>
|
||||||
|
* @param modelMap
|
||||||
|
* @return String 요청처리 후 응답객체
|
||||||
|
* @author: 박민규
|
||||||
|
* @date: 2020. 4. 10.
|
||||||
|
*/
|
||||||
|
@GetMapping(value="/popup/ZipSearch")
|
||||||
|
public String ZipSearch() {
|
||||||
|
return FrameworkConstants.FRAMEWORK_JSP_BASE_PATH +"cmm/popup/XitZipSearch"+TILES_TYPE.POPUP.getVal();
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* <pre>메소드 설명: 우편번호 검색</pre>
|
||||||
|
* @param modelMap
|
||||||
|
* @return String 요청처리 후 응답객체
|
||||||
|
* @author: 박민규
|
||||||
|
* @date: 2020. 4. 10.
|
||||||
|
*/
|
||||||
|
@GetMapping(value="/popup/ZipSearchList")
|
||||||
|
public String ZipSearchList(@ModelAttribute("searchVO") XitBaseSearchVO searchVO , ModelMap modelMap) {
|
||||||
|
|
||||||
|
searchVO.setPageUnit(PAGE_UNIT);
|
||||||
|
searchVO.setPageSize(PAGE_SIZE);
|
||||||
|
|
||||||
|
/** pageing */
|
||||||
|
PaginationInfo paginationInfo = new PaginationInfo();
|
||||||
|
paginationInfo.setCurrentPageNo(searchVO.getPageIndex());
|
||||||
|
paginationInfo.setRecordCountPerPage(searchVO.getPageUnit());
|
||||||
|
paginationInfo.setPageSize(searchVO.getPageSize());
|
||||||
|
|
||||||
|
searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
|
||||||
|
searchVO.setLastIndex(paginationInfo.getLastRecordIndex());
|
||||||
|
searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
|
||||||
|
|
||||||
|
modelMap.addAttribute("resultList", xitFramePopupService.findListZip(searchVO));
|
||||||
|
|
||||||
|
int totCnt = xitFramePopupService.findListZipTotCnt(searchVO);
|
||||||
|
paginationInfo.setTotalRecordCount(totCnt);
|
||||||
|
modelMap.addAttribute("paginationInfo", paginationInfo);
|
||||||
|
|
||||||
|
return FrameworkConstants.FRAMEWORK_JSP_BASE_PATH +"cmm/popup/XitZipSearchList"+TILES_TYPE.POPUP.getVal();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,358 @@
|
|||||||
|
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||||
|
<%@ include file="/WEB-INF/jsp/framework/taglibs.jsp"%>
|
||||||
|
|
||||||
|
<script type="text/javascript" src="<c:url value="/framework/util/validator.do"/>"></script>
|
||||||
|
<validator:javascript formName="userInfoVO" staticJavascript="true" xhtml="true" cdata="false"/>
|
||||||
|
<%--@elvariable id="userInfoVO" type=""--%>
|
||||||
|
<form:form commandName="userInfoVO" name="userInfoVO">
|
||||||
|
<input type="hidden" name="zip_url" value="<c:url value='/framework/biz/cmm/popup/ZipSearchList.do'/>" />
|
||||||
|
<!-- 상세정보 사용자 삭제시 prameter 전달용 input -->
|
||||||
|
<input type="hidden" name="checkedIdForDel" id="checkedIdForDel" value="<c:out value='${userInfoVO.userTy}'/>:<c:out value='${userInfoVO.emplyrId}'/>">
|
||||||
|
<!-- 사용자유형정보 : password 수정화면으로 이동시 타겟 유형정보 확인용, 만약검색조건으로 유형이 포함될경우 혼란을 피하기위해 userTy명칭을 쓰지 않음-->
|
||||||
|
<input type="hidden" name="userTyForPassword" value="<c:out value='${userInfoVO.userTy}'/>" />
|
||||||
|
|
||||||
|
<div class="popup" style="min-width: 1100px;">
|
||||||
|
<div class="popup_inner" style="max-width: 1100px;">
|
||||||
|
<c:set var="pageTitle"><spring:message code="comUssUmt.deptUserManage.title"/></c:set>
|
||||||
|
<p class="pop_title">${pageTitle } <spring:message code="title.update" /></p>
|
||||||
|
|
||||||
|
<table class="tbl03">
|
||||||
|
<caption>${pageTitle } <spring:message code="title.update" /></caption>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 20%;"/>
|
||||||
|
<col style="width: 30%;"/>
|
||||||
|
<col style="width: 20%;"/>
|
||||||
|
<col style="width: 30%;"/>
|
||||||
|
</colgroup>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th height="23" class="required">
|
||||||
|
<label>사용자아이디</label>
|
||||||
|
</th>
|
||||||
|
<td >
|
||||||
|
<form:input path="emplyrId" id="emplyrId" cssClass="txaIpt" size="20" maxlength="20" readonly="readonly" />
|
||||||
|
<form:errors path="emplyrId" cssClass="error"/>
|
||||||
|
<form:hidden path="uniqId" />
|
||||||
|
</td>
|
||||||
|
<th height="23" class="required">
|
||||||
|
<label>핸드폰번호</label>
|
||||||
|
</th>
|
||||||
|
<td >
|
||||||
|
<form:input path="mbtlnum" id="mbtlnum" title="핸드폰번호" cssClass="txaIpt" size="20" maxlength="15" />
|
||||||
|
<form:errors path="mbtlnum" cssClass="error" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th height="23" class="required">
|
||||||
|
<label>비밀번호힌트</label>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<code:select id="passwordHint" name="passwordHint" codeId="XIT022" title="비밀번호힌트" cls="selectBox" alt="비밀번호힌트"/>
|
||||||
|
<%--
|
||||||
|
<form:select path="passwordHint" id="passwordHint" title="비밀번호힌트">
|
||||||
|
<form:option value="" label="--선택하세요--" />
|
||||||
|
<form:options items="${passwordHint_result}" itemValue="code" itemLabel="codeNm" />
|
||||||
|
</form:select>
|
||||||
|
--%>
|
||||||
|
<form:errors path="passwordHint" cssClass="error" /></td>
|
||||||
|
<th height="23" class="required">
|
||||||
|
<label>비밀번호정답</label>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<form:input path="passwordCnsr" id="passwordCnsr" title="비밀번호정답" cssClass="txaIpt" size="50" maxlength="100" />
|
||||||
|
<form:errors path="passwordCnsr" cssClass="error" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th height="23" class="required">
|
||||||
|
<label>이름</label>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<form:input path="emplyrNm" id="emplyrNm" cssClass="txaIpt" size="20" maxlength="60" />
|
||||||
|
<form:errors path="emplyrNm" cssClass="error" />
|
||||||
|
</td>
|
||||||
|
<th height="23" class="required">
|
||||||
|
<label>소속기관</label>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<code:select id="pstinstCode" name="pstinstCode" codeId="XIT025" title="소속기관" cls="selectBox" alt="소속기관"/>
|
||||||
|
<%--
|
||||||
|
<form:select path="pstinstCode" id="pstinstCode" title="소속기관">
|
||||||
|
<form:option value="" label="--선택하세요--" />
|
||||||
|
<form:options items="${pstinstCode_result}" itemValue="code" itemLabel="codeNm" />
|
||||||
|
</form:select>
|
||||||
|
--%>
|
||||||
|
<form:errors path="pstinstCode" cssClass="error" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th height="23" class="required">
|
||||||
|
<label>조직코드</label>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<code:select type="ORGN" id="orgnztId" name="orgnztId" title="부서" cls="selectBox" alt="부서"/>
|
||||||
|
<%--
|
||||||
|
<form:select path="orgnztId" id="orgnztId" title="부서">
|
||||||
|
<form:option value="" label="--선택하세요--" />
|
||||||
|
<form:options items="${orgnztId_result}" itemValue="code" itemLabel="codeNm" />
|
||||||
|
</form:select>
|
||||||
|
--%>
|
||||||
|
<form:errors path="orgnztId" cssClass="error" />
|
||||||
|
</td>
|
||||||
|
<th height="23" class="required">
|
||||||
|
<label>직위명</label>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<input path="ofcpsNm" id="ofcpsNm" title="직위명" cssClass="txaIpt" size="20" maxlength="30" />
|
||||||
|
<%-- <form:errors path="ofcpsNm" cssClass="error" />--%>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th height="23" class="required">
|
||||||
|
<label>이메일주소</label>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<form:input path="emailAdres" id="emailAdres" title="이메일주소" cssClass="txaIpt" size="20" maxlength="50" />
|
||||||
|
<form:errors path="emailAdres" cssClass="error" />
|
||||||
|
</td>
|
||||||
|
<th height="23" class="required">
|
||||||
|
<label>집전화지역번호</label>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<form:input path="areaNo" id="areaNo" style="width : 20%" title="areaNo" cssClass="txaIpt" size="5" maxlength="5" />
|
||||||
|
- <form:input path="houseMiddleTelno" style="width : 20%" title="houseMiddleTelno" id="houseMiddleTelno" cssClass="txaIpt" size="5" maxlength="5" />
|
||||||
|
- <form:input path="houseEndTelno" style="width : 20%" title="houseEndTelno" id="houseEndTelno" cssClass="txaIpt" size="5" maxlength="5" />
|
||||||
|
<form:errors path="areaNo" cssClass="error" />
|
||||||
|
<form:errors path="houseMiddleTelno" cssClass="error" />
|
||||||
|
<form:errors path="houseEndTelno" cssClass="error" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th height="23" class="required">
|
||||||
|
<label>사무실전화번호</label>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<form:input path="offmTelno" id="offmTelno" title="사무실전화번호" cssClass="txaIpt" size="20" maxlength="15" />
|
||||||
|
<form:errors path="offmTelno" cssClass="error" />
|
||||||
|
</td>
|
||||||
|
<th height="23" class="required">
|
||||||
|
<label>팩스번호</label>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<form:input path="fxnum" id="fxnum" cssClass="txaIpt" title="팩스번호" size="20" maxlength="15" />
|
||||||
|
<form:errors path="fxnum" cssClass="error" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th height="23" class="required">
|
||||||
|
주소
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<form:input path="houseAdres" id="houseAdres" title="주소" style="width: 50%" cssClass="txaIpt" size="40" maxlength="100" readonly="true" />
|
||||||
|
<form:errors path="houseAdres" cssClass="error" />
|
||||||
|
<form:hidden path="zip" />
|
||||||
|
<a id ="addrSearch">
|
||||||
|
<img src="<c:url value='/resources/images/btn/icon_zip_search.gif'/>" alt="" />(우편번호 검색)
|
||||||
|
</a>
|
||||||
|
<form:errors path="zip" cssClass="error" />
|
||||||
|
<input name="zip_view" id="zip_view" type="hidden" title="우편번호" size="20" value="<c:out value='${userInfoVO.zip}'/>" maxlength="8" readonly="readonly" />
|
||||||
|
</td>
|
||||||
|
<th height="23" class="required">
|
||||||
|
<label>상세주소</label>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<input path="detailAdres" id="detailAdres" title="상세주소" cssClass="txaIpt" size="40" maxlength="50" />
|
||||||
|
<%-- <form:errors path="detailAdres" cssClass="error" />--%>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th height="23" class="required">
|
||||||
|
<label>사용자상태코드</label>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<code:select id="userSttusCode" name="userSttusCode" codeId="XIT013" title="사용자상태" cls="selectBox" alt="사용자상태"/>
|
||||||
|
<%--
|
||||||
|
<form:select path="userSttusCode" id="userSttusCode" title="사용자상태코드">
|
||||||
|
<form:option value="" label="--선택하세요--" />
|
||||||
|
<form:options items="${userSttusCode_result}" itemValue="code" itemLabel="codeNm" />
|
||||||
|
</form:select>
|
||||||
|
--%>
|
||||||
|
<form:errors path="userSttusCode" cssClass="error" />
|
||||||
|
</td>
|
||||||
|
<th height="23" class="required">
|
||||||
|
<label>그룹아이디</label>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<code:select type="GROUP" id="groupId" name="grupId" title="그룹아이디" cls="selectBox" alt="그룹아이디"/>
|
||||||
|
<%--
|
||||||
|
<form:select path="groupId" id="groupId" title="그룹아이디">
|
||||||
|
<form:option value="" label="--선택하세요--" />
|
||||||
|
<form:options items="${groupId_result}" itemValue="code" itemLabel="codeNm" />
|
||||||
|
</form:select>
|
||||||
|
--%>
|
||||||
|
<form:errors path="groupId" cssClass="error" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div class="popup_btn">
|
||||||
|
<span class="flr">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${!empty userInfoVO.uniqId}">
|
||||||
|
<a href="#" class="btn blue" id="btnModify">변경</a>
|
||||||
|
<a href="#" class="btn red" id="btnRemove">삭제</a>
|
||||||
|
<a href="#" class="btn blue" id="btnPwdChg">비밀번호변경</a>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<a href="#" class="btn blue" id="btnRegist">등록</a>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
|
||||||
|
<a href="#" class="btn lightgray" id="btnClose">닫기</a>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<!-- //popup_btn -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- //popup -->
|
||||||
|
</form:form>
|
||||||
|
|
||||||
|
<script type="text/javascript" src="<c:url value='/resources/framework/js/egov/EgovZipPopup.js' />" ></script>
|
||||||
|
<script type="text/javaScript">
|
||||||
|
/**************************************************************************
|
||||||
|
* Global Variable
|
||||||
|
**************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
/* *******************************
|
||||||
|
* function
|
||||||
|
******************************* */
|
||||||
|
const fnUserMgtPopup = {
|
||||||
|
search: () => {
|
||||||
|
}
|
||||||
|
|
||||||
|
,add: () => {
|
||||||
|
if(validateUserInfoVO(document.getElementById('userInfoVO'))) return;
|
||||||
|
|
||||||
|
if(confirm("등록 하시겠습니까?")){
|
||||||
|
cmmAjax({
|
||||||
|
url: '<c:url value="/framework/biz/mng/usr/addUser.do"'
|
||||||
|
,data: $("#userInfoVO").serialize()
|
||||||
|
,success: () => {
|
||||||
|
window.opener.callBackSearch();
|
||||||
|
window.close();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
,modify: () => {
|
||||||
|
if(validateUserInfoVO(document.getElementById('userInfoVO'))) return;
|
||||||
|
|
||||||
|
if(confirm("변경 하시겠습니까?")){
|
||||||
|
cmmAjax({
|
||||||
|
url: '<c:url value="/framework/biz/mng/usr/modifyUser.do"'
|
||||||
|
,data: $("#userInfoVO").serialize()
|
||||||
|
,success: () => {
|
||||||
|
window.opener.callBackSearch();
|
||||||
|
window.close();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
, removeData: () => {
|
||||||
|
if(confirm("삭제 하시겠습니까?")){
|
||||||
|
cmmAjax({
|
||||||
|
url: '<c:url value="/framework/biz/mng/usr/removeUser.do"'
|
||||||
|
,data: $("#userInfoVO").serialize()
|
||||||
|
,success: () => {
|
||||||
|
window.opener.callBackSearch();
|
||||||
|
window.close();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
,validate: function (flag) {
|
||||||
|
switch (flag) {
|
||||||
|
case 'update' : //수정
|
||||||
|
break;
|
||||||
|
default :
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
* event
|
||||||
|
**************************************************************************/
|
||||||
|
$(() => {
|
||||||
|
$("#btnClose").on('click', () => window.close());
|
||||||
|
|
||||||
|
$('#addrSearch').on('click', () => fnZipPopup());
|
||||||
|
|
||||||
|
$('#btnSave').on('click', () => fnUserMgtPopup.modify());
|
||||||
|
|
||||||
|
$('#btnRemove').on('click', () => fnUserMgtPopup.removeData());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$('#btnPwdChg').on('click', () => {
|
||||||
|
var params = "";
|
||||||
|
var form = $('#userInfoVO');
|
||||||
|
var array = $(form).serializeArray();
|
||||||
|
var result = {};
|
||||||
|
if(array){
|
||||||
|
$(array).each(function(index, item){
|
||||||
|
if(this.value){
|
||||||
|
params += (this.name+"=" + this.value);
|
||||||
|
if(index < (array.length -1)) params += "&"
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
fnUserMgtPopup.pagePopup('pwd', '<c:url value="/framework/biz/mng/usr/UserRegMng_editPwd_popup.do"/>', params);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
<%-->
|
||||||
|
|
||||||
|
fnSearchAdres: function(){
|
||||||
|
var popUrl = '<c:url value="/_anonymous_/api/AdresSearch.do"/>';
|
||||||
|
var params = '?callback=fnUserMgtPopup.fnSearchAdresCallback';
|
||||||
|
popUrl += params;
|
||||||
|
var popTitle = "주소 찾기";
|
||||||
|
var popOption = "width=570px, height=420px, resizable=yes, scrollbars=yes, location=no, top=100px, left=100px";
|
||||||
|
window.open(popUrl, popTitle ,popOption);
|
||||||
|
},
|
||||||
|
|
||||||
|
fnSearchAdresCallback: function(obj){
|
||||||
|
//검색결과 Set
|
||||||
|
var totalDetailAdres = ""; // 전체 상세 주소
|
||||||
|
totalDetailAdres += obj.addrDetail;
|
||||||
|
totalDetailAdres += obj.roadAddrPart2;
|
||||||
|
|
||||||
|
|
||||||
|
//화면에 출력
|
||||||
|
document.userInfoVO.houseAdres.value = obj.roadAddrPart1;
|
||||||
|
document.userInfoVO.zip.value = obj.zipNo;
|
||||||
|
document.userInfoVO.zip_view.value = obj.zipNo;
|
||||||
|
document.userInfoVO.detailAdres.value = totalDetailAdres;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
--%>
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
* initialize
|
||||||
|
**************************************************************************/
|
||||||
|
$(document).ready(function(){
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
Loading…
Reference in New Issue