발주기관 계정 등록(입력항목추가) - 전화번호, 주소, 부서명

발주기관 계정 수정 기능 추가
main
유지인 2026-03-03 17:51:22 +09:00
parent 655d501e4b
commit f4496e9356
9 changed files with 807 additions and 13 deletions

View File

@ -749,6 +749,78 @@ public class ConstructionProjectManagementController {
int resultCnt = masterService.insertWebMemberInClient(params);
result.put("resultCnt", resultCnt);
return result;
}
/**
*
* @param params
* @param model
* @param response
* @param request
* @return
* @throws Exception
*/
@RequestMapping(value = "admins/client/editUser.do")
public String showEditClientPopop(@RequestParam HashMap<String, Object> params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception {
if( !UserInfo.isValidSession(request, response, "admin")) {
return "";
}
// 지역 목록
JSONObject jsonObj = new JSONObject();
List<EgovMap> gDis = masterService.getUserGDisList(params);
jsonObj.put("gDis", gDis);
model.put("result", jsonObj);
String id = "sogone" ;
String ipAdd = request.getRemoteAddr();
params.put("id", id);
params.put("ipAdd", ipAdd);
EgovMap result = masterService.selectInfo(params);
masterService.selectAccessInfo(params);
result.put("cls", params.get("cls"));
model.addAttribute("client", result);
model.addAttribute("result", jsonObj);
return "admins/constructionProjectManagement/editUser";
}
/**
*
* @param request
* @param params
* @param response
* @return
* @throws Exception
*/
@RequestMapping(value = "admins/client/update.do", method = RequestMethod.POST)
@ResponseBody
public Map<String, Object> updateClient(HttpServletRequest request, @RequestParam HashMap<String, Object> params, HttpServletResponse response) throws Exception {
if (!UserInfo.isValidSession(request, response, "admin")) {
return null;
}
strUtil sUtil = new strUtil();
String pass2 = "";
String pass = sUtil.checkNull((String)params.get("passwd"));
if (!"".equals(pass)) {
pass2 = ScriptUtil.getSha256(pass, "UTF-8").substring(0, 20);
params.put("encPasswd", pass2);
}
Map<String, Object> result = new HashMap<>();
int resultCnt = masterService.updateWebMemberInClient(params);
result.put("resultCnt", resultCnt);
return result;
}

View File

@ -20,6 +20,8 @@ public interface GeneralUserMngMapper {
public int insertWebMemberInClient(HashMap<String, Object> params) throws Exception;
public int updateWebMemberInClient(HashMap<String, Object> params) throws Exception;
public void selectAccessInfo(HashMap<String, Object> params) throws Exception;
public void selectDeleteInfo(HashMap<String, Object> params) throws Exception;

View File

@ -18,6 +18,8 @@ public interface GeneralUserMngService {
public int insertWebMemberInClient(HashMap<String, Object> params) throws Exception;
public int updateWebMemberInClient(HashMap<String, Object> params) throws Exception;
public void selectAccessInfo(HashMap<String, Object> params) throws Exception;
public void selectDeleteInfo(HashMap<String, Object> params) throws Exception;

View File

@ -43,6 +43,11 @@ public class GeneralUserMngServiceImpl implements GeneralUserMngService {
return masterMapper.insertWebMemberInClient(params);
}
@Override
public int updateWebMemberInClient(HashMap<String, Object> params) throws Exception {
return masterMapper.updateWebMemberInClient(params);
}
@Override
public void selectAccessInfo(HashMap<String, Object> params) throws Exception {
masterMapper.selectAccessInfo(params);

View File

@ -112,8 +112,18 @@
WHERE CODE = A.UPJONG_CODE) UPJONG,
DECODE(PROJECT_MASTER_COMPANY_CODE,'','0',PROJECT_MASTER_COMPANY_CODE) MASTER_COMPANY_CODE,
CLS,
AGREEYN
AGREEYN,
DIS.GL_CODE,
DIS.GM_CODE,
DIS.GS_CODE,
DIS.GF_CODE
FROM WEB_MEMBER_IN A
LEFT JOIN (SELECT *
FROM (SELECT DIS.*
,ROW_NUMBER() OVER (PARTITION BY DISTRICT ORDER BY DISTRICT) RN
FROM TBL_DISTRICT DIS
WHERE USE_YN = 'Y')
WHERE RN = 1) DIS ON DIS.DISTRICT = A.COMPANY_NAME
WHERE TRIM(USERID) = #{userId}
]]>
</select>
@ -154,11 +164,28 @@
<insert id="insertWebMemberInClient" parameterType="map">
INSERT INTO WEB_MEMBER_IN (
USERID, PASSWD, USER_NAME, COMPANY_NAME, EMAIL, CLS, PROJECT_MASTER_COMPANY_CODE, LAST_LOGIN_DATE, LOGIN_COUNT, AGREEYN, ENCRYPT_CHANGE, LIQ_YN, GOVEMENT_CODE, CERTIFICATION_YN
USERID, PASSWD, USER_NAME, PHONE, EMAIL, COMPANY_NAME, PART_NAME, ADDRESS, CLS, PROJECT_MASTER_COMPANY_CODE, LAST_LOGIN_DATE, LOGIN_COUNT, AGREEYN, ENCRYPT_CHANGE, LIQ_YN, GOVEMENT_CODE, CERTIFICATION_YN
) VALUES(
#{userid}, #{encPasswd}, #{userName}, #{companyName}, #{email}, '2', (SELECT COM_CODE FROM TBL_MASTER_COMPANY WHERE COM_NAME = #{companyName}), SYSDATE, 0, 'Y', 'Y', 'N', 0, 0
#{userid}, #{encPasswd}, #{userName}, #{phone}, #{email}, #{companyName}, #{partName}, #{address}, '2', (SELECT COM_CODE FROM TBL_MASTER_COMPANY WHERE COM_NAME = #{companyName}), SYSDATE, 0, 'Y', 'Y', 'N', 0, 0
)
</insert>
<insert id="updateWebMemberInClient" parameterType="map">
UPDATE WEB_MEMBER_IN
SET USERID = #{userid},
<if test='passwd != null and passwd != ""'>
PASSWD = #{encPasswd},
</if>
USER_NAME = #{userName},
PHONE = #{phone},
EMAIL = #{email},
COMPANY_NAME = #{companyName},
PART_NAME = #{partName},
ADDRESS = #{address},
PROJECT_MASTER_COMPANY_CODE = (SELECT COM_CODE FROM TBL_MASTER_COMPANY WHERE COM_NAME = #{companyName})
WHERE CLS = '2'
AND USERID = #{orgUserid}
</insert>
<insert id="selectAccessInfo" parameterType="map">
<![CDATA[

View File

@ -307,7 +307,6 @@ button {
if ((!$('#PROJECT_MASTER_COMPANY_TH_CODE').prop('disabled'))) company_nm_val = $('#PROJECT_MASTER_COMPANY_TH_CODE > option:selected').text()
if ((!$('#PROJECT_MASTER_COMPANY_F_CODE').prop('disabled'))) company_nm_val = $('#PROJECT_MASTER_COMPANY_F_CODE > option:selected').text()
// 이메일 유효성검사
if(email_val == "") {
$('.td_client_email').append('<p class="error">이메일을 입력해주세요.</p>')
@ -365,8 +364,11 @@ button {
userid : $('#client_id').val(),
passwd : $('#client_pwd').val(),
userName : $('#client_nm').val(),
phone : $('#client_phone').val(),
companyName: company_nm_val,
partName: $('#client_part_nm').val(),
email : $('#client_email').val(),
address : $('#client_address').val(),
projectMasterCompanyCode: master_val
},
dataType : "json",
@ -548,11 +550,13 @@ button {
<colgroup>
<col style="width:100px;">
<col style="width:auto;">
<col style="width:100px;">
<col style="width:100px;">
</colgroup>
<tbody id="">
<tr>
<th class="th-head">아이디</th>
<td class="t-left td_client_id">
<td colspan=3 class="t-left td_client_id">
<input name="client_id" type="text" class="client_id" id="client_id" maxlength="10" value="" placeholder="아이디를 입력해주세요" onChange="javascript:validEle(this);">
<button id="clientDuplChkBtn" type="button">중복체크</button>
</td>
@ -562,22 +566,30 @@ button {
<td class="t-left td_client_pwd">
<input name="client_pwd" type="text" class="client_pwd" id="client_pwd" value="" placeholder="비밀번호를 입력해주세요" onChange="validEle(this)">
</td>
</tr>
<tr>
<th class="th-head">이름</th>
<td class="t-left td_client_nm">
<input name="text" type="text" class="client_nm" id="client_nm" value="" placeholder="이름을 입력해주세요" maxlength="10" onChange="validEle(this)">
</td>
</tr>
<tr>
<th class="th-head">전화번호</th>
<td class="t-left td_client_phone">
<input name="client_phone" type="text" class="client_phone" id="client_phone" value="" placeholder="전화번호를 입력해주세요" onChange="validEle(this)">
</td>
<th class="th-head">이메일</th>
<td class="t-left td_client_email">
<input name="text" type="text" class="client_email" id="client_email" value="" placeholder="아메일을 입력해주세요" onChange="validEle(this)">
</td>
</tr>
<tr>
<th class="th-head">주소</th>
<td colspan=3 class="t-left td_client_address">
<input name="client_address" type="text" class="client_address" id="client_address" value="" placeholder="주소를 입력해주세요" onChange="validEle(this)" style="width:100%">
</td>
</tr>
<tr>
<th class="th-head">발주처</th>
<td class="t-left td_client_dis">
<td colspan=3 class="t-left td_client_dis">
<select name="PROJECT_MASTER_COMPANY_O_CODE" id="PROJECT_MASTER_COMPANY_O_CODE" onChange="fn_onSelChangeGDis('GL_DIS','GM_DIS',this, document.addClientForm.PROJECT_MASTER_COMPANY_TW_CODE,'2');fn_onSelChangeGDisInit(1);" >
<option value="">발주처 선택</option>
<c:forEach var="item" items="${result.gDis}">
@ -591,12 +603,12 @@ button {
<select name="PROJECT_MASTER_COMPANY_F_CODE" id="PROJECT_MASTER_COMPANY_F_CODE" disabled><option value="">-</option></select>
</td>
</tr>
<%-- <tr>
<th class="th-head">회사명</th>
<tr>
<th class="th-head">부서명</th>
<td class="t-left td_client_company">
<input name="text" type="text" class="client_company_nm" id="client_company_nm" value="" placeholder="회사명을 입력해주세요" onChange="validEle(this)">
<input name="text" type="text" class="client_part_nm" id="client_part_nm" value="" placeholder="부서명을 입력해주세요" onChange="validEle(this)">
</td>
</tr> --%>
</tr>
</tbody>
</table>

View File

@ -115,10 +115,16 @@ $(function(){
// 발주기관 등록
function addClientPopup() {
var url = context + "/admins/client/05_addUser.do";
addUser = window.open(url, 'addClient','scrollbars=no,titlebar=no,width=500, height=680',true);
addUser = window.open(url, 'addClient','scrollbars=no,titlebar=no,width=690, height=640',true);
addUser.focus();
}
// 발죽관 계정 수정 팝업
function editClientPopup(userId, cls){
var url = context + "/admins/client/editUser.do?userId=" + userId + "&cls=" + cls;
editUser = window.open(url, 'editClient','scrollbars=no,titlebar=no,width=690, height=640',true);
editUser.focus();
}
</script>
<style>
/* button reset */
@ -192,6 +198,7 @@ button {
<td width="17%">이메일</td>
<td width="11%">가입일</td>
<td width="8%">상세보기</td>
<td width="5%">수정</td>
</tr>
<!-- END : list head ----------------------------------------------------------------------------->
@ -209,6 +216,9 @@ button {
<td>
<img src="${pageContext.request.contextPath}/images/admins/zoom.gif" onClick="javascript:openDetail('${resultList.userid}','02')" style="cursor:hand">
</td>
<td>
<img src="${pageContext.request.contextPath}/images/bnt_mo_s.gif" onClick="javascript:editClientPopup('${resultList.userid}','02')" style="cursor:hand">
</td>
</tr>
</c:forEach>
<!-- END OF REPEAT TABLE -->

View File

@ -0,0 +1,653 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<html>
<head>
<title>국토지반정보 포털 관리시스템</title>
<meta http-equiv="Context-Type" content="text/html; charset=utf-8">
<script type="text/javaScript" src="/web/js/common.js"></script>
<script src ="${pageContext.request.contextPath}/js/jquery/jquery.min.js"></script>
<!--<script src ="${pageContext.request.contextPath}/js/jquery/jquery-1.10.2.min.js"></script> -->
<script src ="${pageContext.request.contextPath}/js/admins/user.js"></script>
<link rel="stylesheet" HREF="${pageContext.request.contextPath}/css/admins/style.css" type="text/css">
<style type="text/css">
body
{
/* margin-left:0; */
/* margin-top:0; */
/* margin-right:0; */
/* margin-bottom:0; */
background-color: #f5f6fa;
}
.table-container {
display: flex;
align-items: center;
justify-content: space-between; /* 제목 왼쪽, 스위치 오른쪽 */
margin-top: 25px; background: #fff; border-radius: 12px; padding: 20px;
box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}
.container-header, .btn-container {
display: flex; justify-content: flex-end; align-items: center; margin: 15px 0;
}
table { width: 100%; border-collapse: collapse; }
thead { background: #f0f3f8; }
th, td { position:relative; padding: 10px; /* border-bottom: 1px solid #eee; */ text-align: left; }
th { color: #555; font-weight: 600; vertical-align: top }
.addClientForm td p.error {
position: absolute;
bottom: -18px;
font-size: 11px;
left: 15px;
color:#10398e;
}
.addClientForm input, .addClientForm select {
width: 200px;
border: 1px solid #d1d1d1;
font-size: 14px;
line-height: 14px;
padding: 6px 14px;
resize: none;
}
.td_client_dis select:not(:nth-child(4)) {
margin-bottom: 17px;
}
/* 강제로 focus-visible 느낌 주기 */
.force-focus-visible:focus,
.force-focus-visible.focus-visible {
outline: 2px solid #4d90fe; /* 원하는 강조색 */
outline-offset: 2px;
}
button {
border: none;
transition: .2s;
}
.addClientForm button {
width: 85px;
height: 30px;
background-color: #255aab;
font-size: 13px;
color: #fff;
font-weight: 400;
line-height: 30px;
cursor: pointer;
}
/* 계정등록 버튼 */
.btn-container {
display: flex;
justify-content: flex-end;
}
.btn-container button {
width: 115px;
height: 30px;
background-color: #255aab;
border-radius: 18px;
font-size: 15px;
color: #fff;
font-weight: 400;
line-height: 30px;
cursor: pointer;
}
.btn-container button:hover,
.addClientForm button:hover {
background-color: #70a9ff;
}
</style>
<script type="text/javaScript" >
let orgUserid = '${client.userid}';
let idDuplChkFlag = true;
let master_val = ""; // 계정등록 발주처 코드
let company_nm_val = "" // 계정등록 발주처 회사명
var context = "${pageContext.request.contextPath}";
$(document).ready(function() {
bindEvent();
setClientMasterCompany();
})
// 이벤트 매핑 정의
function bindEvent() {
// 중복체크 버튼 클릭
$('#clientDuplChkBtn').bind('click', function() {
clientDuplChk();
})
// 등록 버튼 클릭
$('#editClient').bind('click', function() {
editClient();
})
}
// 사용자 발주처 콤보 셋팅
function setClientMasterCompany() {
var project_master_company_o_code = '${client.glCode}';
var project_master_company_tw_code = '${client.gmCode}';
var project_master_company_th_code = '${client.gsCode}';
var project_master_company_f_code = '${client.gfCode}';
var o_combo = document.getElementById('PROJECT_MASTER_COMPANY_O_CODE');
var tw_combo = document.getElementById('PROJECT_MASTER_COMPANY_TW_CODE');
var th_combo = document.getElementById('PROJECT_MASTER_COMPANY_TH_CODE');
var f_combo = document.getElementById('PROJECT_MASTER_COMPANY_F_CODE');
if (project_master_company_o_code && project_master_company_o_code != '') {
$('#PROJECT_MASTER_COMPANY_O_CODE > option[value="' + project_master_company_o_code + '"]').attr("selected", true)
fn_onSelChangeGDis('GL_DIS','GM_DIS',o_combo, tw_combo,'2');
fn_onSelChangeGDisInit(2)
if (project_master_company_tw_code && project_master_company_tw_code != '') {
$('#PROJECT_MASTER_COMPANY_TW_CODE > option[value="' + project_master_company_tw_code + '"]').attr("selected", true)
fn_onSelChangeGDis('GL_DISGM_DIS','GS_DIS',tw_combo, th_combo,'3');
fn_onSelChangeGDisInit(2);
if (project_master_company_th_code && project_master_company_th_code != '') {
$('#PROJECT_MASTER_COMPANY_TH_CODE > option[value="' + project_master_company_th_code + '"]').attr("selected", true)
fn_onSelChangeGDis('GL_DISGM_DISGF_DIS','GF_DIS',th_combo, f_combo,'4')
if (project_master_company_f_code && project_master_company_f_code != '') {
$('#PROJECT_MASTER_COMPANY_F_CODE > option[value="' + project_master_company_f_code + '"]').attr("selected", true)
}
}
}
}
}
//발주처
function fn_onSelChangeGDis(code, subcd, selFrm, frm, depth) {
var subCode = "";
if(selFrm.selectedIndex > -1)
subCode = selFrm.options[selFrm.selectedIndex].value;
if (depth == "3") {
subCode = $("#PROJECT_MASTER_COMPANY_O_CODE option:selected").val() + $("#PROJECT_MASTER_COMPANY_TW_CODE option:selected").val();
}
if (depth == "4") {
subCode = $("#PROJECT_MASTER_COMPANY_O_CODE option:selected").val() + $("#PROJECT_MASTER_COMPANY_TW_CODE option:selected").val();
subCode = subCode + $("#PROJECT_MASTER_COMPANY_TH_CODE option:selected").val();
}
var no = 0;
frm.options[no] = new Option('-', '');
frm.disabled = true;
no++;
var gDis = JSON.parse('${result}');
gDis = gDis.gDis;
for (var i = 0; i < gDis.length; i++) {
if (code == gDis[i].parentCode && subcd == gDis[i].code && subCode == gDis[i].parentCodeValue) {
frm.options[no] = new Option(gDis[i].codeText, gDis[i].codeValue);
no++;
}
}
frm.length = no;
frm.selectedIndex = 0;
if ($("#PROJECT_MASTER_COMPANY_O_CODE option").size() > 1) {
$("#PROJECT_MASTER_COMPANY_O_CODE").removeAttr("disabled");
}
if ($("#PROJECT_MASTER_COMPANY_TW_CODE option").size() > 1) {
$("#PROJECT_MASTER_COMPANY_TW_CODE option:eq(0)").text("선택");
$("#PROJECT_MASTER_COMPANY_TW_CODE").removeAttr("disabled");
}
if ($("#PROJECT_MASTER_COMPANY_TH_CODE option").size() > 1) {
$("#PROJECT_MASTER_COMPANY_TH_CODE option:eq(0)").text("선택");
$("#PROJECT_MASTER_COMPANY_TH_CODE").removeAttr("disabled");
}
if ($("#PROJECT_MASTER_COMPANY_F_CODE option").size() > 1) {
$("#PROJECT_MASTER_COMPANY_F_CODE option:eq(0)").text("선택");
$("#PROJECT_MASTER_COMPANY_F_CODE").removeAttr("disabled");
}
}
//발주처 1depth 선택시
function fn_onSelChangeGDisInit(num) {
if (document.getElementById("PROJECT_MASTER_COMPANY_O_CODE").selectedIndex == 0) { //직접입력
$("select[id='PROJECT_MASTER_COMPANY_TW_CODE'] option").remove();
}
if (num == 1) {
$("select[id='PROJECT_MASTER_COMPANY_TH_CODE'] option").remove();
$("#PROJECT_MASTER_COMPANY_TH_CODE").attr("disabled", "true");
$("select[id='PROJECT_MASTER_COMPANY_F_CODE'] option").remove();
$("#PROJECT_MASTER_COMPANY_F_CODE option:eq(0)").text("-");
$("#PROJECT_MASTER_COMPANY_F_CODE").attr("disabled", "true");
} else if (num == 2) {
$("select[id='PROJECT_MASTER_COMPANY_F_CODE'] option").remove();
$("#PROJECT_MASTER_COMPANY_F_CODE option:eq(0)").text("-");
$("#PROJECT_MASTER_COMPANY_F_CODE").attr("disabled", "true");
}
}
// 아이디 중복체크
function clientDuplChk() {
var userId = $('#client_id').val();
if(userId == "") {
$('.td_client_id .error').remove()
$('.td_client_id').append('<p class="error">아이디 입력 후 중복체크를 진행해주세요.</p>')
return;
} else {
$('.td_client_id .error').remove()
}
$.ajax({
type : "POST",
url : "/admins/client/duplChk.do",
data : { userId : userId },
dataType : "json",
success:function(json){
if(json.duplCnt != 0) {
$('.td_client_id .error').remove()
$('.td_client_id').append('<p class="error">중복되는 아이디가 존재합니다.</p>')
idDuplChkFlag = false;
} else {
alert("사용 가능한 아이디입니다.");
idDuplChkFlag = true;
}
},
error : function( xhr, option, error ) {
alert(xhr.status); // 오류 코드
alert(error); // 오류 내용
}
});
}
function validEle(ele) {
$(ele).parents('td').find('.error').remove();
if ($(ele).hasClass('client_id')) {
if(ele.value == orgUserid) {
return;
}
idDuplChkFlag = false;
$('.td_client_id .error').remove();
$('.td_client_id').append('<p class="error">아이디 입력 후 중복체크를 진행해주세요.</p>');
}
}
function validForm() {
$('.error').remove()
let valid_id = false; // 아이디 검증결과
let valid_nm = false; // 이름 검증결과
let valid_email = false; // 이메일 검증결과
let valid_master = false; // 발주처 검증결과
let id_val = $('#client_id').val();
let nm_val = $('#client_nm').val();
let email_val = $('#client_email').val();
let master_o_val = $('#PROJECT_MASTER_COMPANY_O_CODE > option:selected').val();
let master_tw_val = $('#PROJECT_MASTER_COMPANY_TW_CODE > option:selected').val();
let master_th_val = $('#PROJECT_MASTER_COMPANY_TH_CODE > option:selected').val();
let master_f_val = $('#PROJECT_MASTER_COMPANY_F_CODE > option:selected').val();
// 발주처 선택 유효성검사
if ((!$('#PROJECT_MASTER_COMPANY_O_CODE').prop('disabled')) && "" == $('#PROJECT_MASTER_COMPANY_O_CODE').val()) { // 선택해야하는데 선택하지 않음
valid_master = false;
$('.td_client_dis').append('<p class="error">발주처를 선택해주세요.</p>')
$('#PROJECT_MASTER_COMPANY_O_CODE').focus().addClass('force-focus-visible');
} else { // 선택할 option이 없음 또는 선택 하였음
valid_master = true;
master_val = master_o_val ? master_o_val : master_val; // option에서 선택 했을경우에만 변수 갱신
}
// 발주처 선택 유효성검사
if ((!$('#PROJECT_MASTER_COMPANY_TW_CODE').prop('disabled')) && "" == $('#PROJECT_MASTER_COMPANY_TW_CODE').val()) { // 선택해야하는데 선택하지 않음
valid_master = false;
$('.td_client_dis').append('<p class="error">발주처를 선택해주세요.</p>')
$('#PROJECT_MASTER_COMPANY_TW_CODE').focus().addClass('force-focus-visible');
} else { // 선택할 option이 없음 또는 선택 하였음
if (master_o_val) { // undefined 이거나 ""
valid_master = true;
master_val = master_tw_val ? master_tw_val : master_val; // option에서 선택 했을경우에만 변수 갱신
}
}
// 발주처 선택 유효성검사
if ((!$('#PROJECT_MASTER_COMPANY_TH_CODE').prop('disabled')) && "" == $('#PROJECT_MASTER_COMPANY_TH_CODE').val()) { // 선택해야하는데 선택하지 않음
valid_master = false;
$('.td_client_dis').append('<p class="error">발주처를 선택해주세요.</p>')
$('#PROJECT_MASTER_COMPANY_TH_CODE').focus().addClass('force-focus-visible');
} else { // 선택할 option이 없음 또는 선택 하였음
if (master_o_val && master_tw_val ) { // undefined 이거나 ""
valid_master = true;
master_val = master_th_val ? master_th_val : master_val; // option에서 선택 했을경우에만 변수 갱신
}
}
// 발주처 선택 유효성검사
if ((!$('#PROJECT_MASTER_COMPANY_F_CODE').prop('disabled')) && "" == $('#PROJECT_MASTER_COMPANY_F_CODE').val()) { // 선택해야하는데 선택하지 않음
valid_master = false;
$('.td_client_dis').append('<p class="error">발주처를 선택해주세요.</p>')
$('#PROJECT_MASTER_COMPANY_F_CODE').focus().addClass('force-focus-visible');
} else { // 선택할 option이 없음 또는 선택 하였음
if (master_o_val && master_tw_val && master_th_val ) { // undefined 이거나 ""
valid_master = true;
master_val = master_f_val ? master_f_val : master_val; // option에서 선택 했을경우에만 변수 갱신
}
}
// 발주처 코드값 취득
if ((!$('#PROJECT_MASTER_COMPANY_O_CODE').prop('disabled'))) company_nm_val = $('#PROJECT_MASTER_COMPANY_O_CODE > option:selected').text()
if ((!$('#PROJECT_MASTER_COMPANY_TW_CODE').prop('disabled'))) company_nm_val = $('#PROJECT_MASTER_COMPANY_TW_CODE > option:selected').text()
if ((!$('#PROJECT_MASTER_COMPANY_TH_CODE').prop('disabled'))) company_nm_val = $('#PROJECT_MASTER_COMPANY_TH_CODE > option:selected').text()
if ((!$('#PROJECT_MASTER_COMPANY_F_CODE').prop('disabled'))) company_nm_val = $('#PROJECT_MASTER_COMPANY_F_CODE > option:selected').text()
// 이메일 유효성검사
if(email_val == "") {
$('.td_client_email').append('<p class="error">이메일을 입력해주세요.</p>')
$('#client_email').focus();
} else {
valid_email = true;
}
// 이름 유효성검사
if(nm_val == "") {
$('.td_client_nm').append('<p class="error">이름을 입력해주세요.</p>')
$('#client_nm').focus();
} else {
valid_nm = true;
}
// 아이디 유효성검사
if(id_val == "") {
$('.td_client_id').append('<p class="error">아이디 입력 후 중복체크를 진행해주세요.</p>')
$('#client_id').focus();
} else {
if(!idDuplChkFlag) {
$('.td_client_id').append('<p class="error">아이디 중복체크를 진행해주세요.</p>')
$('#clientDuplChkBtn').focus();
} else {
valid_id = true;
}
}
if((!idDuplChkFlag || !valid_id || !valid_nm || !valid_email || !valid_master)) { // 유효성검사 FAIL
return false;
}
return true;
}
// 발주기관 계정 신규 등록
function editClient() {
if (!(validForm())) {
return false;
};
$.ajax({
type : "POST",
url : "/admins/client/update.do",
data : {
orgUserid : orgUserid,
userid : $('#client_id').val(),
passwd : $('#client_pwd').val(),
userName : $('#client_nm').val(),
phone : $('#client_phone').val(),
companyName: company_nm_val,
partName: $('#client_part_nm').val(),
email : $('#client_email').val(),
address : $('#client_address').val(),
projectMasterCompanyCode: master_val
},
dataType : "json",
success:function(json){
if(json.resultCnt != 0) {
alert("발주기관 계정이 수정되었습니다.");
// 팝업에서 처리 성공 후
if (window.opener && !window.opener.closed) {
var index = window.opener.document.getElementById("pageIndex").value;
window.opener.linkPage(index);
window.close();
}
} else {
alert("발주기관 계정이 수정처리를 실패했습니다. 다시 시도해주시기 바랍니다.");
}
},
error : function( xhr, option, error ) {
alert(xhr.status); // 오류 코드
alert(error); // 오류 내용
}
});
}
function fn_onInsertUser(){
var userid = document.getElementById("SEARCH_USERID").value;
var userName = document.getElementById("SEARCH_USER_NAME").value;
var companyName = document.getElementById("SEARCH_COMPANY_NAME").value;
var phone = document.getElementById("SEARCH_PHONE").value;
var region = document.getElementById("SEARCH_REGION").value;
var regionSgg = document.getElementById("SEARCH_REGION_SGG").value;
//var regionName = document.getElementById("SEARCH_REGION").text;
var index = document.getElementById("SEARCH_REGION").selectedIndex;
var regionName = document.getElementById("SEARCH_REGION").options[index].text;
var indexSgg = document.getElementById("SEARCH_REGION_SGG").selectedIndex;
var regionSggName = document.getElementById("SEARCH_REGION_SGG").options[indexSgg].text;
var startDate = document.getElementById("startDate").value;
var endDate = document.getElementById("endDate").value;
// 예외처리
if( confirm( userid + '를 추가할까요?') ){
$.ajax({
type : "POST",
url : "05_insertUser.json",
data : {
userid : userid,
userName : userName,
companyName : companyName,
phone : phone,
region : region,
regionName : regionName,
regionSgg : regionSgg,
regionSggName : regionSggName,
startDate : startDate,
endDate : endDate },
dataType : "json",
success : function( json ){
resultData = json.RESULT_KEY;
if( resultData == "Success" ) {
alert("정상적으로 추가가 되었습니다.");
//opener.linkPage(1);
window.close();
window.opener.location.reload();
} else if( resultData == "Exist" ) {
alert("설정 된 지역이 존재합니다. 1개의 지역만 설정 가능합니다.");
//opener.linkPage(1);
window.close();
window.opener.location.reload();
} else {
//alert(xhr.status); // 오류 코드
alert(error); // 오류 내용
}
},
error : function( xhr, option, error ) {
alert(xhr.status); // 오류 코드
alert(error); // 오류 내용
}
});
} else {
alert("추가 중에 오류가 발생하였습니다. 다시 시도해주세요");
return ;
}
}
//function addUser(userId,userName,companyName,phone,region){
// var result = window.open('${pageContext.request.contextPath}/admins/user/passChange.do?userId=
//}
// 사용자 추가
function fn_onUserInfoEvent(){
// 사용자 정보 입력
// 입력 된 사용자 아이디를 얻어온다.
//var str = ${ SEARCH_USER };
var str = document.getElementById("SEARCH_USER").value;
if( str == "" ) {
alert("입력 된 내용이 없습니다.");
return;
}
$.ajax({
type : "POST",
data : { userid : str },
url : "getUserInfo.json",
async : false,
dataType : "json",
success : function( json ) {
resultData = json.RESULT_KEY;
if( resultData == "Success" ) {
document.getElementById("SEARCH_USERID").value = json.userid;
document.getElementById("SEARCH_USER_NAME").value = json.userName;
document.getElementById("SEARCH_COMPANY_NAME").value = json.companyName;
document.getElementById("SEARCH_PHONE").value = json.phone;
document.getElementById("SEARCH_REGION").value = json.phone;
//$("#SEARCH_USER").val(json.userId);
//$("#SEARCH_USER_NAME").val(json.userName);
//$("#SEARCH_COMPANY_NAME ").val(json.companyName);
//$("#SEARCH_PHONE").val(json.phone);
// 날짜
var today = new Date();
var year = (today.getYear() + 1900).toString();
var month = (today.getMonth() +1).toString();
if( (today.getMonth() +1) < 10 )
month = '0' + month;
var day = (today.getDate()).toString();
if( (today.getDate()) < 10 )
day = '0' + day;
var date = year + month + day;
document.getElementById("startDate").value = date;
document.getElementById("endDate").value = date;
} else {
alert("확인 된 사용자가 없습니다. 확인 후 다시 입력 바랍니다. ");
return false;
}
},
error : function( xhr, option, error ) {
alert(xhr.status); // 오류 코드
alert(error); // 오류 내용
}
});
}
//달력팝업
function fn_CalPopupDiv1(id, calId, divId) {
var cal = $("#" + calId);
var calPosition = cal.position();
$.ajax({
type : 'post',
url : '${pageContext.request.contextPath}/web/popup/calender.do',
async : false,
data : { id : id },
error : function(xhr, status) {
alert('Unknown error ' + status);
},
success : function(data) {
$("#" + divId).css({
'top' : calPosition.top - 30,
'left' : calPosition.left + 20
});
$("#" + divId).removeClass("trViewOff");
$("#" + divId).html(data);
}
});
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<div class="table-container">
<h3>발주기관 계정 수정</h3>
</div>
<div class="table-container">
<form class="addClientForm" name="addClientForm" method="post">
<table class="Table_Main course-list-table">
<colgroup>
<col style="width:100px;">
<col style="width:auto;">
<col style="width:100px;">
<col style="width:100px;">
</colgroup>
<tbody id="">
<tr>
<th class="th-head">아이디</th>
<td colspan=3 class="t-left td_client_id">
<input name="client_id" type="text" class="client_id" id="client_id" maxlength="10" value="${client.userid}" placeholder="아이디를 입력해주세요" onChange="javascript:validEle(this);">
<button id="clientDuplChkBtn" type="button">중복체크</button>
</td>
</tr>
<tr>
<th class="th-head">비밀번호</th>
<td class="t-left td_client_pwd">
<input name="client_pwd" type="text" class="client_pwd" id="client_pwd" value="" placeholder="비밀번호를 변경하는 경우에만 입력해주세요" />
</td>
<th class="th-head">이름</th>
<td class="t-left td_client_nm">
<input name="text" type="text" class="client_nm" id="client_nm" value="${client.userName}" placeholder="이름을 입력해주세요" maxlength="10" onChange="validEle(this)">
</td>
</tr>
<tr>
<th class="th-head">전화번호</th>
<td class="t-left td_client_phone">
<input name="client_phone" type="text" class="client_phone" id="client_phone" value="${client.phone}" placeholder="전화번호를 입력해주세요" onChange="validEle(this)">
</td>
<th class="th-head">이메일</th>
<td class="t-left td_client_email">
<input name="text" type="text" class="client_email" id="client_email" value="${client.email}" placeholder="아메일을 입력해주세요" onChange="validEle(this)">
</td>
</tr>
<tr>
<th class="th-head">주소</th>
<td colspan=3 class="t-left td_client_address">
<input name="client_address" type="text" class="client_address" id="client_address" value="${client.address}" placeholder="주소를 입력해주세요" onChange="validEle(this)" style="width:100%">
</td>
</tr>
<tr>
<th class="th-head">발주처</th>
<td colspan=3 class="t-left td_client_dis">
<select name="PROJECT_MASTER_COMPANY_O_CODE" id="PROJECT_MASTER_COMPANY_O_CODE" onChange="fn_onSelChangeGDis('GL_DIS','GM_DIS',this, document.addClientForm.PROJECT_MASTER_COMPANY_TW_CODE,'2');fn_onSelChangeGDisInit(1);" >
<option value="">발주처 선택</option>
<c:forEach var="item" items="${result.gDis}">
<c:if test="${item.code == 'GL_DIS' &&item.codeValue != '06' &&item.codeValue != '00'}">
<option value="${item.codeValue}">${item.codeText}</option>
</c:if>
</c:forEach>
</select>
<select name="PROJECT_MASTER_COMPANY_TW_CODE" id="PROJECT_MASTER_COMPANY_TW_CODE" onChange="fn_onSelChangeGDis('GL_DISGM_DIS','GS_DIS',this, document.addClientForm.PROJECT_MASTER_COMPANY_TH_CODE,'3');fn_onSelChangeGDisInit(2);" disabled><option value="">-</option></select>
<select name="PROJECT_MASTER_COMPANY_TH_CODE" id="PROJECT_MASTER_COMPANY_TH_CODE" onChange="fn_onSelChangeGDis('GL_DISGM_DISGF_DIS','GF_DIS',this, document.addClientForm.PROJECT_MASTER_COMPANY_F_CODE,'4')" disabled><option value="">-</option></select>
<select name="PROJECT_MASTER_COMPANY_F_CODE" id="PROJECT_MASTER_COMPANY_F_CODE" disabled><option value="">-</option></select>
</td>
</tr>
<tr>
<th class="th-head">부서명</th>
<td class="t-left td_client_company">
<input name="text" type="text" class="client_part_nm" id="client_part_nm" value="${client.partName}" placeholder="부서명을 입력해주세요" onChange="validEle(this)">
</td>
</tr>
</tbody>
</table>
</form>
</div>
<div class="btn-container">
<button type="button" id="editClient">수정</button>
</div>
</body>
</html>

View File

@ -117,6 +117,13 @@ function addClientPopup() {
addUser = window.open(url, 'addClient','scrollbars=no,titlebar=no,width=500, height=680',true);
addUser.focus();
}
// 발죽관 계정 수정 팝업
function editClientPopup(userId, cls){
var url = context + "/admins/client/editUser.do?userId=" + userId + "&cls=" + cls;
editUser = window.open(url, 'editClient','scrollbars=no,titlebar=no,width=670, height=730',true);
editUser.focus();
}
</script>
<style>
/* button reset */
@ -190,6 +197,7 @@ button {
<td width="17%">이메일</td>
<td width="11%">가입일</td>
<td width="8%">상세보기</td>
<td width="5%">수정</td>
</tr>
<!-- END : list head ----------------------------------------------------------------------------->
@ -207,6 +215,9 @@ button {
<td>
<img src="${pageContext.request.contextPath}/images/admins/zoom.gif" onClick="javascript:openDetail('${resultList.userid}','02')" style="cursor:hand">
</td>
<td>
<img src="${pageContext.request.contextPath}/images/bnt_mo_s.gif" onClick="javascript:editClientPopup('${resultList.userid}','02')" style="cursor:hand">
</td>
</tr>
</c:forEach>
<!-- END OF REPEAT TABLE -->