瀏覽代碼

모바일 개발 중

jsshin 5 年之前
父節點
當前提交
0fb9f4f960

+ 3 - 1
src/main/java/com/style24/front/support/security/handler/TsfLoginSuccessHandler.java

@@ -48,8 +48,10 @@ public class TsfLoginSuccessHandler implements AuthenticationSuccessHandler {
 		"/customer/join/complete/form",				// 회원가입완료
 		"/customer/join/type/form",					// 회원가입유형
 		"/customer/dormant/certify/complete/form",	// 휴면해제
-		"/customer/certification/form"				// 본인인증화면
+		"/customer/certification/form",				// 본인인증화면
+		"customer/noncust/order/confirm/form"		// 비회원주문화면
 	};
+
 	private static final int CHANG_PWD_CAMPAIGN_DAY = 90;	// 비밀번호 변경 캠페인일자
 
 	private static final String CHANG_TEMP_PWD = "Y";	//임시비밀번호여부

+ 117 - 0
src/main/webapp/WEB-INF/views/mob/mypage/MypageCustConfirmFormMob.html

@@ -0,0 +1,117 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org"
+	xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+	layout:decorator="mob/common/layout/MypageLayoutMob">
+<!--
+ *******************************************************************************
+ * @source  : MypageCustConfirmFormMob.html
+ * @desc    : 마이페이지 > 회원정보 확인 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2021 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.04.26   jsshin      최초 작성
+ *******************************************************************************
+ -->
+<body>
+<th:block layout:fragment="content">
+<main class="container my">
+	<section class="content my_page">
+		<div class="inner">
+			<div class="pass_confirm">
+				<p class="desc">정보를 안전하게 보호하기 위하여<br>비밀번호를 다시 확인합니다. </p>
+				<form id="confirmForm" class="form_wrap" method="post">
+					<div class="form_field">
+						<th:block th:if="${snsType == ''}">
+							<input type="text" id="custId" name="custId" th:value="${custId}" class="form_control" readonly="readonly"/>
+						</th:block>
+						<th:block th:unless="${snsType == ''}">
+							<th:block th:if="${snsType == 'NV'}">
+								<span>네이버 간편가입회원</span>
+							</th:block>
+							<th:block th:if="${snsType == 'KK'}">
+								<span>카카오 간편가입회원</span>
+							</th:block>
+							<th:block th:if="${snsType == 'YS'}">
+								<span>YES24 간편가입회원</span>
+							</th:block>
+						</th:block>
+					</div>
+					<div class="form_field">
+						<input type="password" id="passwd" name="passwd" class="form_control" placeholder="비밀번호를 입력해 주세요"/>
+					</div>
+					<div class="btn_group_flex">
+						<div>
+							<button type="button" class="btn btn_default btn_block" onclick="cfnGoToPage(_PAGE_MAIN);">
+								<span>취소</span>
+							</button>
+						</div>
+						<div>
+							<button type="button" id="btnConfirm" class="btn btn_dark btn_block">
+								<span>확인</span>
+							</button>
+						</div>
+					</div>
+				</form>
+			</div>
+		</div>
+	</section>
+</main>
+<script th:inline="javascript">
+	/*<![CDATA[*/
+	//엔터키 확인
+	$('#confirmForm input[name=passwd]').keypress(function (event) {
+		if (event.which === 13) {
+			event.preventDefault();
+			fnValidConfirm();
+		}
+	});
+
+	// 확인버튼
+	$('#btnConfirm').on('click', function () {
+		fnValidConfirm();
+	});
+
+	// 확인
+	var fnValidConfirm = function () {
+		var $passwd = $('#confirmForm input[name=passwd]');
+		if (gagajf.isNull($passwd.val())) {
+			$passwd.blur();
+			mcxDialog.alertC("비밀번호를 입력해 주세요.", {
+				sureBtnText: "확인",
+				sureBtnClick: function () {
+					$passwd.focus();
+				}
+			});
+			return;
+		}
+		gagajf.ajaxFormSubmit("/mypage/customer/password/confirm", '#confirmForm', fnConfirmCallback);
+	};
+
+	var fnConfirmCallback = function (result) {
+		let confirmYn = 'Y';
+		let $passwd = $('#confirmForm input[name=passwd]');
+		if (result.isMatch) {
+			confirmYn = 'Y';
+			cfnGoToPage(_PAGE_MYPAGE_CUSTOMER_MODIFY+'?confirmYn='+ confirmYn);
+		} else {
+			mcxDialog.alert('비밀번호가 일치하지 않습니다.');
+			$passwd.val('');
+			$passwd.focus();
+			return;
+		}
+	};
+
+	$(document).ready(function() {
+		$('#htopTitle').text('내 정보 관리');
+	});
+
+	/*]]>*/
+</script>
+
+</th:block>
+</body>
+</html>

+ 502 - 0
src/main/webapp/WEB-INF/views/mob/mypage/MypageCustModifyFormMob.html

@@ -0,0 +1,502 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org"
+	xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+	layout:decorator="mob/common/layout/MypageLayoutMob">
+<!--
+ *******************************************************************************
+ * @source  : MypageCustModifyFormMob.html
+ * @desc    : 마이페이지 > 회원정보 수정 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2021 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.04.26   jsshin      최초 작성
+ *******************************************************************************
+ -->
+<body>
+<th:block layout:fragment="content">
+<main class="container my">
+	<section class="content my_page_edit">
+		<form id="custModiFyForm" name="custModiFyForm" class="form_wrap">
+			<div class="inner">
+				<div class="tbl_wrap">
+					<div class="tbl_tit">
+						<h3>회원 정보</h3>
+						<button type="button" id="btnNameCerify" class="btn_popup">
+							<span>개명 본인인증</span>
+						</button>
+					</div>
+					<div class="tbl">
+						<div class="tbl_row">
+							<table>
+								<colgroup>
+									<col width="*">
+								</colgroup>
+								<tr>
+									<th>이름</th>
+									<td>
+										<div class="form_field">
+											<input type="text" id="custNm" name="custNm" class="form_control" readonly="readonly">
+										</div>
+									</td>
+								</tr>
+								<tr>
+									<th>생년월일</th>
+									<td>
+										<div class="form_field">
+											<input type="text" id="birthYmd" name="birthYmd" class="form_control" readonly="readonly"/>
+										</div>
+									</td>
+								</tr>
+							</table>
+							<p class="desc_txt">본인인증을 통해 자동으로 수집되는 정보입니다.</p>
+						</div>
+						<div class="tbl_row">
+							<table>
+								<colgroup>
+									<col width="*">
+								</colgroup>
+								<tr>
+									<th>아이디</th>
+									<td>
+										<div class="form_field">
+											<input type="text" id="custId" name="custId" class="form_control" placeholder="" readonly="readonly"/>
+										</div>
+									</td>
+								</tr>
+								<tr>
+									<th>비밀번호</th>
+									<td>
+										<div class="form_field password">
+											<button type="button" id="btn_password_pop" class="btn btn_primary" onclick="cfnPasswordModify();">
+												<span>비밀번호 변경하기</span>
+											</button>
+										</div>
+									</td>
+								</tr>
+								<tr>
+									<th>이메일</th>
+									<td>
+										<div class="form_field">
+											<input type="text" id="email" name="email" class="form_control"/>
+										</div>
+									</td>
+								</tr>
+								<tr>
+									<th>휴대폰 인증</th>
+									<td>
+										<div class="input_wrap certi_wrap">
+											<input type="text" id="cellPhnno" name="cellPhnno" class="form_control" readonly="readonly"/>
+											<button type="button" id="btnCellCertify" class="btn btn_dark">
+												<span>본인인증</span>
+											</button>
+										</div>
+									</td>
+								</tr>
+							</table>
+						</div>
+					</div>
+				</div>
+			</div>
+			<div class="inner">
+				<div class="tbl_wrap">
+					<div class="tbl_tit">
+						<h3>마케팅 정보 수신설정</h3>
+					</div>
+					<div class="tbl tbl_radio">
+						<table>
+							<colgroup>
+								<col width="*">
+							</colgroup>
+							<tr>
+								<th class="sr-only">이름</th>
+								<td>
+									<div class="form_field">
+										<input type="checkbox" id="emailAgreeYn" name="emailAgreeYn" value="Y"/>
+										<label for="emailAgreeYn"><span>이메일</span></label>
+									</div>
+								</td>
+							</tr>
+							<tr>
+								<th class="sr-only">생년월일</th>
+								<td>
+									<div class="form_field">
+										<input type="checkbox" id="smsAgreeYn" name="smsAgreeYn" value="Y"/>
+										<label for="smsAgreeYn"><span>SMS</span></label>
+									</div>
+								</td>
+							</tr>
+						</table>
+						<p class="desc_txt">회원정보, 구매 정보 및 서비스 주요 정책 관련 내용은 수신동의 여부와<br>관계없이 발송됩니다.</p>
+					</div>
+				</div>
+			</div>
+			<div class="inner">
+				<div class="tbl_wrap">
+					<div class="tbl_tit">
+						<h3>환불 계좌정보</h3>
+					</div>
+					<div class="tbl type1">
+						<table>
+							<colgroup>
+								<col width="*">
+							</colgroup>
+							<tr>
+								<th>예금주</th>
+								<td>
+									<div class="form_field">
+										<input type="text" id="accountNm" name="accountNm" class="form_control" placeholder="" readonly="readonly"/>
+									</div>
+								</td>
+							</tr>
+							<tr>
+								<th>은행명</th>
+								<td>
+									<div class="form_field">
+										<div class="select_custom select_bank"> <!-- 210408_ 수정 : select_bank 클래스 변경  -->
+											<div class="combo">
+												<div class="select">선택</div>
+												<input type="hidden" name="bankCd" value=""/>
+											</div>
+										</div>
+									</div>
+								</td>
+							</tr>
+							<tr>
+								<th>계좌번호</th>
+								<td>
+									<div class="input_wrap certi_wrap">
+										<input type="text" id="accountNo" name="accountNo" class="form_control" maxlength="20" data-valid-type="numeric"  placeholder="계좌번호를 입력해 주세요"/>
+										<button type="button" id="btnAccountCheck" class="btn btn_dark">
+											<span>계좌인증</span>
+										</button>
+									</div>
+								</td>
+							</tr>
+						</table>
+					</div>
+				</div>
+				<div class="btn_group_flex">
+					<div class="">
+						<button type="button" id="btnConfirm" class="btn btn_dark btn_block">
+							<span>확인</span>
+						</button>
+					</div>
+				</div>
+			</div>
+			<!-- 210408_ 추가 : 은행 선택 팝업 -->
+			<div id="refundBankPop" class="popup_box refundBankPop">
+				<div class="lap">
+					<div class="popup_close">카테고리닫기</div>
+					<div class="popup_head sr-only">
+						<h2 class="">은행 선택 팝업</h2>
+					</div>
+					<div class="popup_con">
+						<div class="button_list clear">
+							<th:block th:if="${bankList}" th:each="oneData, status : ${bankList}">
+								<button type="button" th:id="|bankCd_${oneData.cd}|" th:with="cd = ${oneData.cd}">
+									<span th:text="${oneData.cdNm}"></span>
+									<input type="hidden" name="bankCd" th:value="${cd}"/>
+								</button>
+							</th:block>
+						</div>
+					</div>
+				</div>
+			</div>
+			<!-- //210408_ 추가 : 은행 선택 팝업 -->
+		</form>
+	</section>
+</main>
+<script th:inline="javascript">
+	/*<![CDATA[*/
+	let orgCustInfo;
+	let orgAccountInfo;
+	let accountCheck = false;
+
+	// 고객정보
+	var fnGetCustInfo = function () {
+		$.get('/mypage/customer/info', fnGetCustInfoCallback);
+	}
+
+	// 고객정보 데이터
+	var fnGetCustInfoCallback = function (custInfo) {
+		orgCustInfo = custInfo; // 원본 데이터저장 수정시 비교 작업
+		$('#custModiFyForm td[name=custNm]').text(custInfo.custNm);
+		$('#custModiFyForm td[name=birthYmd]').text(custInfo.birthYmd);
+		let custId = custInfo.custId;
+		if (custInfo.snsType === 'NV') {
+			custId = '네이버 간편가입회원'
+		}
+		if (custInfo.snsType === 'KK') {
+			custId = '카카오 간편가입회원'
+		}
+		if (custInfo.snsType === 'YS') {
+			custId = 'YES24 간편가입회원'
+		}
+		$('#custModiFyForm input[name=custId]').val(custId);
+		$('#custModiFyForm input[name=email]').val(custInfo.email);
+		$('#custModiFyForm input[name=cellPhnno]').val(custInfo.cellPhnno);
+		$('#custModiFyForm input[name=accountNm]').val(custInfo.custNm);
+
+		fnDisplayEmailAgree(custInfo.emailAgreeYn);
+		fnDisplaySmsAgree(custInfo.smsAgreeYn);
+
+		// 회원(고객) 계좌 조회
+		fnGetCustAccountInfo();
+	}
+
+	// 이메일 수신동의
+	var fnDisplayEmailAgree = function (emailAgreeYn) {
+		const $emailAgreeYn = $('#custModiFyForm input[name=emailAgreeYn]');
+		if (emailAgreeYn === 'Y') {
+			$emailAgreeYn.prop('checked', true);
+		} else {
+			$emailAgreeYn.prop('checked', false);
+		}
+
+	};
+
+	// SMS 수신동의
+	var fnDisplaySmsAgree = function (smsAgreeYn) {
+		const $smsAgreeYn = $('#custModiFyForm input[name=smsAgreeYn]');
+		if (smsAgreeYn === 'Y') {
+			$smsAgreeYn.prop('checked', true);
+		} else {
+			$smsAgreeYn.prop('checked', false);
+		}
+
+	};
+
+	// 고객계좌정보
+	var fnGetCustAccountInfo = function () {
+		$.get('/mypage/customer/account/info', fnGetCustAccountInfoCallback);
+	}
+
+	// 고객계좌 정보 데이터
+	var fnGetCustAccountInfoCallback = function (result) {
+		orgAccountInfo = {};
+		var $accountNm = $('#custModiFyForm input[name=accountNm]');
+		if (!gagajf.isNull(result)) {
+			orgAccountInfo.accountNo = result.accountNo;
+			orgAccountInfo.bankCd = result.bankCd;
+			//1. 고객명과 환불계좌 예금주가 다른 경우 현재 고객명을 적어주고 계좌번호, 은행코드 초기화 처리
+			let $bankCd = '';
+			if ($accountNm.val() === result.accountNm) {
+				$('#custModiFyForm input[name=accountNo]').val(result.accountNo);
+				$bankCd = '#bankCd_'+result.bankCd;
+
+			} else {
+				$('#custModiFyForm input[name=accountNo]').val('');
+				$bankCd = '#bankCd_';
+
+			}
+			$($bankCd).trigger('click'); // 셀렉트 박스 트리거
+		} else {
+			orgAccountInfo.accountNo = '';
+			orgAccountInfo.bankCd ='';
+		}
+	}
+
+	// 나이스 본인인증 후 콜백
+	var fnNiceCallBack = function(encData) {
+		if (!gagajf.isNull(encData)) {
+			let custInfo = {};
+			custInfo.encData = encData;
+			let jsonData = JSON.stringify(custInfo);
+			gagajf.ajaxJsonSubmit('/mypage/customer/auth/update', jsonData, fnUpdateAuthInfoCallback);
+		}
+	};
+
+	var fnUpdateAuthInfoCallback = function (result) {
+		if (result.iSsuccess) {
+			fnGetCustInfo();
+			mcxDialog.alert("본인인증을 통해 정보가 변경 되었습니다.");
+			return;
+		} else {
+			mcxDialog.alert("실패하였습니다.<br/>고객센터에 문의하시 바랍니다.");
+			return;
+		}
+	}
+
+	// 계좌인증
+	$('#btnAccountCheck').on('click', function () {
+		if (!fnGetAccountValidation()) {
+			return;
+		}
+		let custInfo = {};
+		custInfo.accountNm = $('#custModiFyForm input[name=accountNm]').val();
+		custInfo.accountNo = $('#custModiFyForm input[name=accountNo]').val();
+		custInfo.bankCd = $('#custModiFyForm input[name=bankCd]').val();
+		let jsonData = JSON.stringify(custInfo)
+		//console.log(jsonData);
+		gagajf.ajaxJsonSubmit('/mypage/account/check', jsonData, fnAccountCheckCallback);
+	});
+
+	// 계좌인증 콜백
+	var fnAccountCheckCallback = function (result) {
+		let msg = '계좌인증에 성공했습니다.'
+		if (result.isValid) { // 유효하면 true
+			accountCheck = true;
+		} else {
+			accountCheck = false;
+			msg = '계좌정보를 다시 확인해주세요.'
+		}
+		mcxDialog.alertC(msg ,{
+			sureBtnText: "확인",
+			sureBtnClick: function() {
+			}
+		});
+	};
+
+	// 수정 버튼
+	$('#btnConfirm').on('click', function () {
+		let custModiFy =  $('#custModiFyForm').serializeObject();
+		let $bankCd = $('#custModiFyForm input[name=bankCd]');
+		let $accountNo = $('#custModiFyForm input[name=accountNo]');
+
+		let marketingModifyYn = 'N';
+		let accountModifyYn = 'N';
+		let emailModifyYn = 'N';
+
+		if (gagajf.isNull(custModiFy.email)) {
+			mcxDialog.alertC('이메일 주소를 입력해주세요.',{
+				sureBtnText: "확인",
+				sureBtnClick: function() {
+					$('#custModiFyForm input[name=email]').focus();
+				}
+			});
+		}
+
+		if (orgCustInfo.email !== custModiFy.email) {
+			emailModifyYn = 'Y';
+		}
+
+		if (!fnGetAccountValidation()) {
+			return;
+		}
+
+
+		// 은행코드가 바꼈는지
+		if (orgAccountInfo.bankCd !== $bankCd.val()) {
+			accountModifyYn = 'Y';
+		}
+
+		if (orgAccountInfo.accountNo !== $accountNo.val()) {
+			accountModifyYn = 'Y';
+		}
+
+		if (accountModifyYn === 'Y') { // 환불계좌정보 변경 됐으면
+			if (!gagajf.isNull($bankCd.val()) && !gagajf.isNull($accountNo.val())) {
+				if (!accountCheck) {
+					mcxDialog.alertC('계좌인증이 필요합니다.',{
+						sureBtnText: "확인",
+						sureBtnClick: function() {
+						}
+					});
+					return;
+				}
+			}
+		}
+
+		if (gagajf.isNull(custModiFy.smsAgreeYn)) {
+			custModiFy.smsAgreeYn = 'N';
+		}
+
+		if (gagajf.isNull(custModiFy.emailAgreeYn)) {
+			custModiFy.emailAgreeYn = 'N';
+		}
+
+		// SMS 수신여부
+		if (orgCustInfo.smsAgreeYn !== custModiFy.smsAgreeYn) {
+			marketingModifyYn = 'Y';
+		}
+
+		// 이메일 수신여부
+		if (orgCustInfo.emailAgreeYn !== custModiFy.emailAgreeYn) {
+			marketingModifyYn = 'Y';
+		}
+
+		custModiFy.bankCd = $bankCd.val();
+		custModiFy.emailModifyYn = emailModifyYn ;
+		custModiFy.marketingModifyYn = marketingModifyYn;
+		custModiFy.accountModifyYn = accountModifyYn;
+
+		let jsonData = JSON.stringify(custModiFy);
+		// console.log('jsonData',jsonData);
+		gagajf.ajaxJsonSubmit('/mypage/customer/info/save', jsonData, fnSaveCustomerInfoCallback)
+	});
+
+	// 수정 콜백
+	var fnSaveCustomerInfoCallback = function (result) {
+		if (result.isSuccess) {
+			mcxDialog.alert("회원정보가 수정되었습니다.");
+			fnGetCustInfo();
+			return;
+		} else {
+			mcxDialog.alert("실패하였습니다.<br/>고객센터에 문의하시 바랍니다.");
+			return;
+		}
+	}
+
+	// 은행계좌 유효성체크
+	var fnGetAccountValidation = function () {
+		let $bankCd = $('#custModiFyForm input[name=bankCd]');
+		let $accountNo = $('#custModiFyForm input[name=accountNo]');
+
+		if (gagajf.isNull($bankCd.val()) && !gagajf.isNull($accountNo.val())) {
+			mcxDialog.alertC('은행을 선택해주세요.',{
+				sureBtnText: "확인",
+				sureBtnClick: function() {
+					$bankCd.focus();
+				}
+			});
+			return false
+		}
+		if (!gagajf.isNull($bankCd.val()) && gagajf.isNull($accountNo.val())) {
+			mcxDialog.alertC('계좌번호를 입력해주세요.',{
+				sureBtnText: "확인",
+				sureBtnClick: function() {
+					$accountNo.focus();
+				}
+			});
+			return false;
+		}
+		return true;
+	}
+
+
+	$(document).ready(function(){
+		$('#htopTitle').text('내 정보 관리');
+
+		// 회원(고객) 조회
+		fnGetCustInfo();
+
+		//버튼 색
+		$(document).on('click','.popup_box .button_list button',function(){
+			$('.popup_box .button_list button').removeClass('on');
+			$(this).addClass('on');
+			$('.combo .select').html($(this)[0].innerHTML); // 값변경
+		});
+
+		//210408_ 추가 : 은행선택 팝업 스크립트
+		$(document).on("click",".select_bank",function(e){
+			$('#refundBankPop').show().addClass("active");
+			$('#refundBankPop').css({"z-index":"1000"});
+			$("body").css({"overflow":"hidden"});
+		});
+
+		//210408_ 추가 : 은행선택 팝업 스크립트 닫기
+		$('.refundBankPop .popup_close').on("click",function(){
+			$('.refundBankPop').hide().removeClass('active');
+			$("body").css({"overflow":"visible"});
+		});
+
+	})
+	/*]]>*/
+</script>
+</th:block>
+</body>
+</html>

+ 439 - 0
src/main/webapp/WEB-INF/views/mob/mypage/MypageCustPwdModifyFormMob.html

@@ -0,0 +1,439 @@
+<!DOCTYPE html>
+<html lang="ko"
+	  xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : MypageCustPwdModifyFormWeb.html
+ * @desc    : 비밀번호 변경 팝업
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2021 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.04.01   jsshin       최초 작성
+ *******************************************************************************
+ -->
+<body>
+<th:block layout:fragment="content">
+	<div class="app">
+		<a href="#mainCon" class="skipNav">본문바로가기</a>
+		<header class=""> <!-- 서브페이지에서는 <header>의 클래스.main 제거 -->
+			<section class="htop" id="htopSub">
+				<button class="btn_back" title="이전페이지로">
+					<span><i class="gl1"></i><i class="gl2"></i><i class="gl3"></i></span>
+				</button>
+				<h1 id="htopTitle">내 정보 관리</h1>
+				<div class="button_wrap">
+					<button class="home">
+						<img src="/images/mo/ico_btn_home.png" alt="홈">
+					</button>
+					<button class="search">
+						<img src="/images/mo/ico_btn_search.png" alt="검색">
+					</button>
+					<button class="store">
+						<img src="/images/mo/ico_btn_store.png" alt="쇼핑백">
+						<span>99+</span>
+					</button>
+				</div>
+			</section>
+		</header>
+		<main role="" id="" class="container my">
+			<section class="content my_page_edit">
+				<form action="" class="form_wrap">
+					<div class="inner">
+						<div class="tbl_wrap">
+							<div class="tbl_tit"> 
+								<h3>회원 정보</h3>
+								<button type="button" class="btn_popup"><span>개명 본인인증</span></button>
+							</div>
+							<div class="tbl">
+								<div class="tbl_row">
+									<table>
+										<colgroup>
+											<col width="*">
+										</colgroup>   
+										<tr>
+											<th>이름</th>
+											<td>
+												<div class="form_field">
+													<input type="text" class="form_control" value="홍길동" placeholder="" readonly="readonly">
+												</div>
+											</td>
+										</tr>
+										<tr>
+											<th>생년월일</th>
+											<td>
+												<div class="form_field">
+													<input type="text" class="form_control" value="19921005" placeholder="" readonly="readonly">
+												</div>
+											</td>
+										</tr>
+									</table>
+									<p class="desc_txt">본인인증을 통해 자동으로 수집되는 정보입니다.</p>
+								</div>
+								<div class="tbl_row">
+									<table>
+										<colgroup>
+											<col width="*">
+										</colgroup>   
+										<tr>
+											<th>아이디</th>
+											<td>
+												<div class="form_field">
+													<input type="text" class="form_control" value="gunuid" placeholder="" readonly="readonly">
+												</div>
+											</td>
+										</tr>
+										<tr>
+											<th>비밀번호</th>
+											<td>
+												<div class="form_field password">
+													<button id="btn_password_pop" class="btn btn_primary"><span>비밀번호 변경하기</span></button> <!-- 210407_ID 추가 -->
+												</div>
+											</td>
+										</tr>
+										<tr>
+											<th>이메일</th>
+											<td>
+												<div class="form_field">
+													<input type="text" class="form_control" value="abced@naver.com" >
+												</div>
+											</td>
+										</tr>
+										<tr>
+											<th>휴대폰 인증</th>
+											<td>
+												<div class="input_wrap certi_wrap">
+													<input type="text" class="form_control" value="01047159121" placeholder="" readonly="readonly">
+													<button type="button" class="btn btn_dark"><span>본인인증</span></button>
+												</div>
+											</td>
+										</tr>
+									</table>
+								</div>
+							</div>
+						</div>
+					</div>
+					<div class="inner">
+						<div class="tbl_wrap">
+							<div class="tbl_tit"> 
+								<h3>마케팅 정보 수신설정</h3>
+							</div>
+							<div class="tbl tbl_radio">
+								<table>
+									<colgroup>
+										<col width="*">
+									</colgroup>   
+									<tr>
+										<th class="sr-only">이름</th>
+										<td>
+											<div class="form_field">
+												<input id="chk-1" type="checkbox" name="test1"><label for="chk-1"><span>이메일</span></label> <!-- 210406_input type radio -> checkbox 변경 -->
+											</div>
+										</td>
+									</tr>
+									<tr>
+										<th class="sr-only">생년월일</th>
+										<td>
+											<div class="form_field">
+												<input id="chk-2" type="checkbox" name="test1"><label for="chk-2"><span>SMS</span></label> <!-- 210406_input type radio -> checkbox 변경 -->
+											</div>
+										</td>
+									</tr>
+								</table>
+								<p class="desc_txt">회원정보, 구매 정보 및 서비스 주요 정책 관련 내용은 수신동의 여부와<br>관계없이 발송됩니다.</p>
+							</div>
+						</div>
+					</div>
+					<div class="inner">
+						<div class="tbl_wrap">
+							<div class="tbl_tit"> 
+								<h3>환불 계좌정보</h3>
+							</div>
+							<div class="tbl type1">
+								<table>
+									<colgroup>
+										<col width="*">
+									</colgroup>   
+									<tr>
+										<th>예금주</th>
+										<td>
+											<div class="form_field">
+												<input type="text" class="form_control" value="gunuid" placeholder="비밀번호를 입력해 주세요" readonly="readonly"> <!-- 210406_input readonly 추가 -->
+											</div>
+										</td>
+									</tr>
+									<tr>
+										<th>은행명</th>
+										<td>
+											<div class="form_field">
+												<!-- <div class="select_custom type1" disabled > 셀렉트 자체 비활성 -->
+												<div class="select_custom select_bank"> <!-- 210408_ 수정 : select_bank 클래스 변경  -->
+													<div class="combo">
+														<div class="select">선택</div>
+														<!-- 
+														210408_ 삭제
+														<ul class="list">
+															<li class="selected">선택</li>
+															<li>상품옵션01</li>
+															<li> <input type="radio" > 상품옵션02</li>
+															<li>
+																<div>03. 상품옵션 : 두줄처리</div>
+																<div>120,000원</div>
+															</li>
+															<li aria-disabled="true" data-soldout="true">
+																<div>04. 상품옵션 : 두줄처리</div>
+																<div>120,000원</div>
+															</li>
+															<li>상품옵션04</li>
+															<li>상품옵션05</li>
+															<li aria-disabled="true" data-soldout="true">상품옵션06</li>
+															<li>상품옵션07</li>
+														</ul> -->
+													</div>
+												</div>
+											</div>
+										</td>
+									</tr>
+									<tr>
+										<th>계좌번호</th>
+										<td>
+											<div class="input_wrap certi_wrap">
+												<input type="tel" class="form_control" value="1234567894123456789" placeholder=""> <!-- 210409_input type tel 변경 -->
+												<button type="button" id="btn_bank_certi" class="btn btn_dark"><span>계좌인증</span></button> <!-- 210409_추가 : btn_bank_certi id 추가 -->
+											</div>
+										</td>
+									</tr>
+								</table>
+							</div>
+						</div>
+						<div class="btn_group_flex">
+							<div class="">
+								<button type="button" id="btn_myedit_confirm" class="btn btn_dark btn_block"><span>확인</span></button> <!-- 210409_추가 : btn_myedit_confirm id 추가 -->
+							</div>
+						</div>
+					</div>
+				</form>
+			</section>
+		</main>
+
+		<nav id="tabbar" class="tabbar fixed">
+		<!-- <nav id="tabbar" class="tabbar"> -->
+			<div class="tabbar-inner">
+				<a href="javascript:menu;" class="btn-menu" data-popup-trigger="" data-target="#menu">Menu</a>
+				<a href="javascript:myPage" class="btn-my">Mypage</a>
+				<a href="javascript:home" class="btn-home">Home</a>
+				<a href="javascript:wish" class="btn-wish">Wish</a>
+				<a href="javascript:history" class="btn-history">History</a>
+			</div>
+				<!-- 
+					<span class="txt-balloon" id="tutorial_mycloset" style=""> 툴팁예제</span>
+				-->
+		</nav>
+
+		<!-- 210407_비밀번호 변경 팝업 추가 -->
+		<div class="modal pop_full password_change_pop" id="passwordChangePop" tabindex="-1" role="dialog" aria-labelledby="passwordChangeLabel" aria-hidden="true">
+			<div class="modal-dialog" role="document">
+				<div class="modal-content">
+					<div class="modal-header htop">
+						<h5 class="modal-title" id="passwordChangeLabel">비밀번호 변경</h5>
+					</div>
+					<div class="modal-body">
+						<div class="pop_cont">
+							<div class="pass_confirm">
+								<form action="" class="form_wrap">
+									<div class="form_field">
+										<label class="input_label sr-only">기존 비밀번호를 입력해주세요.</label>
+										<div class="ui_col_12">
+											<input type="password" name="userConfirm" placeholder="기존 비밀번호를 입력해주세요." id="Password" class="form_control">
+										</div>
+									</div>
+									<div class="form_field">
+										<label class="input_label sr-only">신규 비밀번호를 입력해주세요.</label>
+										<div class="ui_col_12">
+											<input type="password" name="userPassword" placeholder="신규 비밀번호를 입력해주세요." id="txtPassword" class="form_control">
+											<!-- case (사용불가 비밀번호일경우,사용가능한 비밀번호일경우) -->
+											<div class="help_block">
+												<!-- 사용불가 비밀번호일경우 -->
+												<p class="mt10">
+													<span class="c_red2"><i class="ico ico_check red mr5"></i>영문(대/소문자), 숫자, 특수문자 중 2가지 이상 조합(8~20자)</span><br>
+													<span class="c_red2"><i class="ico ico_check red mr5"></i>4개이상연속되거나 동일한 문자, 숫자 제외</span><br>
+													<span class="c_red2"><i class="ico ico_check red mr5"></i>아이디제외</span>
+												</p>
+												<!-- //사용불가 비밀번호일경우 -->
+												<!-- 사용가능한 비밀번호일경우 -->
+												<p class="mt10">
+													<span class="c_black2"><i class="ico ico_check black mr5"></i>사용 가능한 비밀번호입니다</span>
+												</p>
+												<!-- //사용가능한 비밀번호일경우 -->
+											</div>
+											<!-- //case (사용불가 비밀번호일경우,사용가능한 비밀번호일경우) -->
+										</div>
+									</div>
+									<div class="form_field">
+										<label class="input_label sr-only">신규 비밀번호를 다시 입력해주세요.</label>
+										<div class="ui_col_12">
+											<input type="password" name="userConfirm" placeholder="신규 비밀번호를 다시 입력해주세요." id="txtConfirm" class="form_control">
+										</div>
+									</div>
+									<div class="btn_group_flex">
+										<div class="">
+											<button type="button" class="btn btn_default"><span>취소</span></button>
+										</div>
+										<div class="">
+											<button type="button" id="btn_password_confirm" class="btn btn_dark"><span>변경</span></button> <!-- 210409_추가 : btn_password_confirm id 추가 -->
+										</div>
+									</div>
+								</form>
+							</div>
+						</div>
+					</div>
+					<div class="modal-footer" style="display:none;"></div>
+				</div>
+			</div>
+			<a href="#close-modal" rel="modal:close" id="passwordPop_close" class="close-modal">Close</a>
+		</div>
+		<!-- //210407_비밀번호 변경 팝업 추가 -->
+
+		<!-- 210408_ 추가 : 은행 선택 팝업 -->
+		<div id="refundBankPop" class="popup_box refundBankPop">
+			<div class="lap">
+				<div class="popup_close">카테고리닫기</div>
+				<div class="popup_head sr-only">
+					<h2 class="">은행 선택 팝업</h2>
+				</div>
+				<div class="popup_con">
+					<div class="button_list clear">
+						<button type="button"><span>국민은행</span></button>
+						<button type="button"><span>기업은행</span></button>
+						<button type="button"><span>하나은행</span></button>
+						<button type="button"><span>우리은행</span></button>
+						<button type="button"><span>산업은행</span></button>
+						<button type="button"><span>대구은행</span></button>
+					</div>
+				</div>
+			</div>
+		</div>
+		<!-- //210408_ 추가 : 은행 선택 팝업 -->
+		<footer>
+			<button class="btn_top" title="페이지 맨위로 이동">
+				<span>
+					<i class="gl1"></i>
+					<i class="gl2"></i>
+					<i class="gl3"></i>
+				</span>
+			</button>
+			<section class="f1">
+				<div class="inner">
+					<ul class="link wider">
+						<li><a href="#none">고객센터</a></li>
+						<li><a href="#none">이용약관</a></li>
+						<li><a href="#none">개인정보취급방침</a></li>
+					</ul>
+
+					<div class="collapse">
+						<div class="btnWrap">
+							<button class="btn_infos">아이스타일이십사 주식회사</button>
+						</div>
+						<ul class="infos info">
+							<li class="fn">대표이사 : 윤종선</li>
+							<li class="fn">주소 : 서울시 영등포구 은행로 11, 8층(여의도동, 일신빌딩)</li>
+							<li class="fn">사업자등록번호 : 116-81-32499 </li>
+							<li class="fn">개인정보관리책임자 : 이정득 </li>
+							<li class="fn">통신판매업신고번호 : 제 2020-서울영등포1432</li>
+							<li class="fn">개인정보보호책임자 : 김명인</li>
+							<li class="fn">호스팅 서비스 : 아이스타일이십사㈜</li>
+						</ul>
+					</div>
+					
+					<ul class="link">
+						<li><a href="#none">사업자정보확인</a></li>
+						<li><a href="#none">PC버전</a></li>
+						<li><a href="#none">APP 다운로드</a></li>
+						<li><a href="#none">SN&#64;PP</a></li>
+					</ul>
+					<ul class="copy">
+						<li>COPYRIGHTⓒ2020 STYLE24 ALL RIGHTS RESERVED.</li>
+					</ul>
+					<ul class="sns">
+						<li><a href="#none" class="insta">Instagram</a></li>
+						<li><a href="#none" class="facebook">facebook</a></li>
+					</ul>
+				</div>
+			</section>
+		</footer>
+	</div>
+	<!-- 210407_비밀번호 변경 팝업 스크립트 -->
+	<script>
+		$(document).ready(function(){
+            $(document).on('click','#btn_password_pop',function(e){
+                $("#passwordChangePop").modal("show");
+                return false;
+            });
+            $("#passwordPop_close").click(function() {
+                $("#passwordChangePop").modal("hide");
+            });
+
+			//버튼 색
+			$(document).on('click','.popup_box .button_list button',function(){
+				$('.popup_box .button_list button').removeClass('on');
+				$(this).addClass('on');
+			});
+
+			//210408_ 추가 : 환불계좌등록 팝업 스크립트
+			$(document).on("click","#btn_refund_pop",function(e){
+				$('#refundAccountPop').show().addClass("active");
+				$("body").css({"overflow":"hidden"});
+			});
+			
+			//210408_ 추가 : 은행선택 팝업 스크립트
+			$(document).on("click",".select_bank",function(e){
+				$('#refundBankPop').show().addClass("active");
+				$('#refundBankPop').css({"z-index":"1000"});
+				$("body").css({"overflow":"hidden"});
+			});
+
+			//210408_ 추가 : 은행선택 팝업 스크립트 닫기
+			$('.refundBankPop .popup_close').on("click",function(){
+				$('.refundBankPop').hide().removeClass('active');
+				$("body").css({"overflow":"visible"});
+			});
+
+			/* 210409_추가 : alert 모음 */
+			$(document).on("click", "#btn_bank_certi", function(){
+				mcxDialog.alert("계좌인증에 성공했습니다.", {
+						//alert("계좌정보를 다시 확인해주세요.") : 계좌인증 실패/유효하지 않은 경우
+						//alert("은행을 선택해주세요.") : 은행을 선택하지 않은 경우
+						//alert("계좌번호를 입력해주세요.") : 계좌번호를 입력하지 않은 경우
+					sureBtnText: "확인",  // Confirmation button text
+				});
+			});
+
+			$(document).on("click", "#btn_myedit_confirm", function(){
+				mcxDialog.alert("회원정보가 수정되었습니다.", {
+						//alert("이메일 주소를 입력해주세요.") : 이메일을 입력하지 않은 경우
+						//alert("이메일 주소를 정확하게 입력해주세요.") : 이메일이 유효하지 않은 경우
+						//alert("이미 사용중인 이메일 주소 입니다.") : 이메일이 중복/사용중인 경우
+						//alert("계좌인증이 필요합니다.") : 계좌정보에 대해 계좌인증이 안된 경우
+						//alert("환불 계좌정보를 다시 확인하시고 계좌인증을 해주세요.") : 인증 받은 계좌정보와 입력된 계좌정보가 다른 경우
+					sureBtnText: "확인",  // Confirmation button text
+				});
+			});
+
+			$(document).on("click", "#btn_password_confirm", function(){
+				mcxDialog.alert("비밀번호가 변경되었습니다.", {
+						//alert("기존 비밀번호를 입력해주세요.") : 기존 비밀번호를 입력하지 않은 경우
+						//alert("신규 비밀번호를 입력해주세요.") : 신규 비밀번호를 입력하지 않은 경우
+						//alert("비밀번호가 일치하지 않습니다. 다시 확인해주세요.") : 입력한 비밀번호가 일치하지 않는 경우
+					sureBtnText: "확인",  // Confirmation button text
+				});
+			});
+
+			/* 210409_추가 : alert 모음 */
+		})
+	</script>
+	<!-- //210407_비밀번호 변경 팝업 스크립트 -->
+</th:block>
+</body>
+</html>

+ 241 - 0
src/main/webapp/WEB-INF/views/mob/mypage/MypageCustSnsJoinInitPwdFormMob.html

@@ -0,0 +1,241 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org"
+	xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+	layout:decorator="mob/common/layout/MypageLayoutMob">
+<!--
+ *******************************************************************************
+ * @source  : MypageCustSnsJoinInitPwdFormMob.html
+ * @desc    : 마이페이지 > 내 정보 관리 비밀번호 최초설정 Page
+ *            소셜 간편가입을 하신 회원님은
+ *            최초 비밀번호 설정하는 화면
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2021 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.04.26   jsshin      최초 작성
+ *******************************************************************************
+ -->
+<style>
+.hide{display:none}
+</style>
+<body>
+<th:block layout:fragment="content">
+<main class="container my">
+	<section class="content my_page">
+		<div class="inner">
+			<div class="pass_confirm">
+				<p class="desc">소셜 간편가입을 하신 회원님은 <br>최초 비밀번호 설정하신 후 변경 가능합니다.</p>
+				<form id="resetPasswordForm" name="resetPasswordForm" class="form_wrap">
+					<input type="hidden" name="custId" th:value="${custId}"/>
+					<div class="form_field">
+						<label class="input_label sr-only">신규 비밀번호</label>
+						<div class="ui_col_12">
+							<input type="password" id="passwd" name="passwd" class="form_control" placeholder="비밀번호를 입력해주세요." minlength="8" maxlength="20"/>
+							<!-- case (사용불가 비밀번호일경우,사용가능한 비밀번호일경우) -->
+							<div class="help_block">
+								<!-- 사용불가 비밀번호일경우 -->
+								<p class="mt10">
+									<span id="firstFailed" class="c_gray">
+										<i class="ico ico_check black mr5"></i>영문(대/소문자), 숫자, 특수문자 중 2가지 이상 조합(8~20자)<br/>
+									</span>
+									<span id="secondFailed" class="c_gray">
+										<i class="ico ico_check red mr5"></i>4개이상 연속되거나 동일한 문자/숫자 제외<br/>
+									</span>
+									<span id="thirdFailed" class="c_gray">
+										<i class="ico ico_check gray mr5"></i>아이디 제외
+									</span>
+								</p>
+								<!-- //사용불가 비밀번호일경우 -->
+								<!-- 사용가능한 비밀번호일경우 -->
+								<p id="avlPwd" class="mt10 hide">
+									<span class="c_black2">
+										<i class="ico ico_check black mr5"></i>사용 가능한 비밀번호입니다.
+									</span>
+								</p>
+								<!-- //사용가능한 비밀번호일경우 -->
+							</div>
+							<!-- //case (사용불가 비밀번호일경우,사용가능한 비밀번호일경우) -->
+						</div>
+					</div>
+					<div class="form_field">
+						<label class="input_label sr-only">비밀번호 확인</label>
+						<div class="ui_col_12">
+							<input type="password" id="confirmPassword" name="confirmPassword" class="form_control" placeholder="비밀번호를 동일하게 입력해주세요." minlength="8" maxlength="20" />
+							<!-- case (비밀번호확인 틀렸을경우,비밀번호 일치할경우) -->
+							<div class="help_block">
+								<!-- 비밀번호확인 틀렸을경우 -->
+								<p id="misPwd" class="t_err hide">
+									새 비밀번호가 일치하지 않습니다.
+								</p>
+								<!-- //비밀번호확인 틀렸을경우 -->
+								<!-- 비밀번호 일치할경우 -->
+								<p id="avlConPwd" class="mt10 hide">
+									<span class="c_black2">
+										<i class="ico ico_check black mr5"></i>새 비밀번호가 일치합니다.
+									</span>
+								</p>
+								<!-- //비밀번호 일치할경우 -->
+							</div>
+							<!-- //case (비밀번호확인 틀렸을경우,비밀번호 일치할경우) -->
+						</div>
+					</div>
+					<div class="btn_group_flex">
+						<div>
+							<button type="button" class="btn btn_default btn_block" onclick="cfnGoToPage(_PAGE_MYPAGE);">
+								<span>취소</span>
+							</button>
+						</div>
+						<div>
+							<button type="button" id="btnSavePassword" class="btn btn_dark btn_block" disabled="disabled">
+								<span>확인</span>
+							</button>
+						</div>
+					</div>
+				</form>
+			</div>
+		</div>
+	</section>
+</main>
+<script th:src="@{'/biz/customer.js?v=' + ${#calendars.format(#calendars.createNow(), 'yyyyMMddHHmmss')}}" src="/biz/customer.js"></script>
+<script th:inline="javascript">
+	/*<![CDATA[*/
+	// 비밀번호 입력
+	$('#resetPasswordForm input[name=passwd]').on('focusout keyup keydown', function () {
+		fnCheckPassword();
+	});
+
+	// 비밀번호 확인 입력
+	$('#resetPasswordForm input[name=confirmPassword]').on('focusout keyup keydown', function () {
+		fnCheckConfirmPassword();
+	});
+
+	// 비밀번호 확인
+	var fnCheckPassword = function () {
+		const $firstFailed = $('#firstFailed');
+		const $secondFailed = $('#secondFailed');
+		const $thirdFailed = $('#thirdFailed');
+		const $avlPwd = $('#avlPwd');
+		const red = 'c_red2';
+		const gray = 'c_gray';
+		let custId = $('#resetPasswordForm input[name=custId]').val();
+		let password = $('#resetPasswordForm input[name=passwd]').val();
+		let confirmPassword = $('#resetPasswordForm input[name=confirmPassword]').val();
+		let pwdCheck = true;
+
+		// 영문, 숫자, 특수문자 2종 이상 혼용 || 길이
+		if (fnValidtaionPwdMixedWord(password) || fnValidationPwdLength(password)) {
+			pwdCheck = false;
+			$firstFailed.removeClass(gray);
+			$firstFailed.addClass(red);
+		} else {
+			$firstFailed.removeClass(red);
+			$firstFailed.addClass(gray);
+		}
+
+		// 동일한 문자/숫자 4자이상 || 연속된 문자가 4자이상
+		if (fnValidationPwdSameWord(password) || fnValidtaionPwdCntnsWord(password)) {
+			pwdCheck = false;
+			$secondFailed.removeClass(gray);
+			$secondFailed.addClass(red);
+		} else {
+			$secondFailed.removeClass(red);
+			$secondFailed.addClass(gray);
+		}
+
+		// 아이디 포함
+		if (fnValidationPwdSameId(password, custId)) {
+			pwdCheck = false;
+			$thirdFailed.removeClass(gray);
+			$thirdFailed.addClass(red);
+		} else {
+			$thirdFailed.removeClass(red);
+			$thirdFailed.addClass(gray);
+		}
+
+		if (pwdCheck) {
+			$firstFailed.hide();
+			$secondFailed.hide();
+			$thirdFailed.hide();
+			$avlPwd.show();
+		} else {
+			$firstFailed.show();
+			$secondFailed.show();
+			$thirdFailed.show();
+			$avlPwd.hide();
+		}
+
+		if (!gagajf.isNull(confirmPassword)) {
+			fnCheckConfirmPassword();
+		}
+
+	};
+
+	// 비밀번호체크
+	var fnCheckConfirmPassword = function () {
+		const $misPwd = $('#misPwd');
+		const $avlConPwd = $('#avlConPwd');
+		const $btnSavePassword = $('#btnSavePassword');
+		let password = $('#resetPasswordForm input[name=passwd]').val();
+		let confirmPassword = $('#resetPasswordForm input[name=confirmPassword]').val();
+		let sameConfirmPwd = fnValidationPwdSameConfirmPwd(password, confirmPassword);
+		if (sameConfirmPwd) {
+			$misPwd.hide();
+			$avlConPwd.show();
+			$btnSavePassword.attr('disabled', false);
+		} else {
+			$avlConPwd.hide();
+			$misPwd.show();
+			$btnSavePassword.attr('disabled', true);
+		}
+	};
+
+	// 패스워드 저장
+	$('#btnSavePassword').on('click', function () {
+		let resetPasswordForm = $('#resetPasswordForm').serializeObject();
+
+		if (gagajf.isNull(resetPasswordForm.passwd)) {
+			mcxDialog.alert('신규 비밀번호를 입력하신 후 다시 시도해주세요.');
+			return;
+		}
+
+		if (gagajf.isNull(resetPasswordForm.confirmPassword)) {
+			mcxDialog.alert('비밀번호 확인을 입력하신 후 다시 시도해주세요.');
+			return;
+		}
+
+		if (resetPasswordForm.passwd != resetPasswordForm.confirmPassword) {
+			mcxDialog.alert('비밀번호가 일치하지 않습니다. 다시 확인해주세요.');
+			return;
+		}
+
+		fnCheckPassword();
+		fnCheckConfirmPassword();
+		let jsonData = JSON.stringify(resetPasswordForm);
+		gagajf.ajaxJsonSubmit('/customer/password/reset', jsonData, fnSavePasswordCallback);
+	});
+
+	var fnSavePasswordCallback = function (result) {
+		if (result.isSuccess) {
+			mcxDialog.alertC('비밀번호 변경이 완료 되었습니다.', {
+				sureBtnText: "확인",
+				sureBtnClick: function() {
+					cfnGoToPage(_PAGE_MYPAGE_CUSTOMER);
+				}
+			});
+		} else {
+			mcxDialog.alert('비밀번호 변경이 실패 되었습니다.')
+		}
+	};
+
+	$(document).ready(function() {
+		$('#htopTitle').text('내 정보 관리');
+	});
+
+	/*]]>*/
+</script>
+</th:block>
+</body>
+</html>

+ 1 - 1
src/main/webapp/WEB-INF/views/mob/mypage/MypageOrderListFormMob.html

@@ -143,7 +143,7 @@
 						<li><a href="javascript:void(0);">리뷰</a></li>
 						<li><a href="javascript:void(0);">배송지 관리</a></li>
 						<li><a href="javascript:void(0);">위시리스트</a></li>
-						<li><a href="javascript:void(0);">내정보 관리</a></li>
+						<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE_CUSTOMER);">내정보 관리</a></li>
 						<li><a href="javascript:void(0);">회원 탈퇴</a></li>
 					</ul>
 				</div>

+ 19 - 11
src/main/webapp/WEB-INF/views/web/mypage/MypageCustModifyFormWeb.html

@@ -16,7 +16,6 @@
  * 1.0  2021.03.15   jsshin      최초 작성
  *******************************************************************************
  -->
-<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
 <body>
 <th:block layout:fragment="content">
 	<div class="content myManage"> <!-- 페이지특정 클래스 = myManage -->
@@ -99,7 +98,7 @@
 											<td>
 												<div class="form_field">
 													<div class="input_wrap">
-														<input type="text" id="email" name="email" class="form_control" placeholder=""/>
+														<input type="text" id="email" name="email" class="form_control"/>
 													</div>
 												</div>
 											</td>
@@ -380,6 +379,9 @@
 	// 수정 버튼
 	$('#btnConfirm').on('click', function () {
 		let custModiFy =  $('#custModiFyForm').serializeObject();
+		let $bankCd = $('#custModiFyForm input[name=bankCd]');
+		let $accountNo = $('#custModiFyForm input[name=accountNo]');
+
 		let marketingModifyYn = 'N';
 		let accountModifyYn = 'N';
 		let emailModifyYn = 'N';
@@ -400,19 +402,23 @@
 		if (!fnGetAccountValidation()) {
 			return;
 		}
-		custModiFy.bankCd = $('.combo .select').find('input[name=bankCd]').val();
+
+
+
 
 		// 은행코드가 바꼈는지
-		if (orgAccountInfo.bankCd !== custModiFy.bankCd) {
+		if (orgAccountInfo.bankCd !== $bankCd.val()) {
 			accountModifyYn = 'Y';
 		}
 
-		if (orgAccountInfo.accountNo !== custModiFy.accountNo) {
+		if (orgAccountInfo.accountNo !== $accountNo.val()) {
 			accountModifyYn = 'Y';
 		}
 
+
+
 		if (accountModifyYn === 'Y') { // 환불계좌정보 변경 됐으면
-			if (!gagajf.isNull(custModiFy.accountNo) && !gagajf.isNull(custModiFy.bankCd)) {
+			if (!gagajf.isNull($bankCd.val()) && !gagajf.isNull($accountNo.val())) {
 				if (!accountCheck) {
 					mcxDialog.alertC('계좌인증이 필요합니다.',{
 						sureBtnText: "확인",
@@ -442,6 +448,7 @@
 			marketingModifyYn = 'Y';
 		}
 
+		custModiFy.bankCd = $bankCd.val();
 		custModiFy.emailModifyYn = emailModifyYn ;
 		custModiFy.marketingModifyYn = marketingModifyYn;
 		custModiFy.accountModifyYn = accountModifyYn;
@@ -466,22 +473,23 @@
 
 	// 은행계좌 유효성체크
 	var fnGetAccountValidation = function () {
-		let custModiFy = $('#custModiFyForm').serializeObject();
+		let $bankCd = $('#custModiFyForm input[name=bankCd]');
+		let $accountNo = $('#custModiFyForm input[name=accountNo]');
 
-		if (gagajf.isNull(custModiFy.bankCd) && !gagajf.isNull(custModiFy.accountNo)) {
+		if (gagajf.isNull($bankCd.val()) && !gagajf.isNull($accountNo.val())) {
 			mcxDialog.alertC('은행을 선택해주세요.',{
 				sureBtnText: "확인",
 				sureBtnClick: function() {
-					$('#custModiFyForm select[name=bankCd]').focus();
+					$bankCd.focus();
 				}
 			});
 			return false
 		}
-		if (!gagajf.isNull(custModiFy.bankCd) && gagajf.isNull(custModiFy.accountNo)) {
+		if (!gagajf.isNull($bankCd.val()) && gagajf.isNull($accountNo.val())) {
 			mcxDialog.alertC('계좌번호를 입력해주세요.',{
 				sureBtnText: "확인",
 				sureBtnClick: function() {
-					$('#custModiFyForm input[name=accountNo]').focus();
+					$accountNo.focus();
 				}
 			});
 			return false;

+ 11 - 5
src/main/webapp/WEB-INF/views/web/mypage/MypageCustSnsJoinInitPwdFormWeb.html

@@ -75,7 +75,7 @@
 												<!-- 사용가능한 비밀번호일경우 -->
 												<p id="avlPwd" class="hide">
 													<span class="c_black2">
-														<i class="ico ico_check black"></i>사용 가능한 비밀번호입니다
+														<i class="ico ico_check black"></i>사용 가능한 비밀번호입니다.
 													</span>
 												</p>
 												<!-- //사용가능한 비밀번호일경우 -->
@@ -95,7 +95,7 @@
 											</div>
 											<div class="help_block">
 												<!-- 비밀번호확인 틀렸을경우 -->
-												<p d="misPwd" class="hide">
+												<p id="misPwd" class="hide">
 													<span class="t_err">
 														새 비밀번호가 일치하지 않습니다.
 													</span>
@@ -103,7 +103,9 @@
 												<!-- //비밀번호확인 틀렸을경우 -->
 												<!-- 비밀번호 일치할경우 -->
 												<p id="avlConPwd" class="hide">
-													<span class="c_black2"><i class="ico ico_check black"></i>새 비밀번호가 일치합니다.</span>
+													<span class="c_black2">
+														<i class="ico ico_check black"></i>새 비밀번호가 일치합니다.
+													</span>
 												</p>
 												<!-- //비밀번호 일치할경우 -->
 											</div>
@@ -114,8 +116,12 @@
 						</div>
 					</div>
 					<div class="btn_footer_area">
-						<button type="button" class="btn btn_default btn_md" onclick="cfnGoToPage(_PAGE_MYPAGE);"><span>취소</span></button>
-						<button type="button" id="btnSavePassword" class="btn btn_dark btn_md" disabled="disabled"><span>확인</span></button>
+						<button type="button" class="btn btn_default btn_md" onclick="cfnGoToPage(_PAGE_MYPAGE);">
+							<span>취소</span>
+						</button>
+						<button type="button" id="btnSavePassword" class="btn btn_dark btn_md" disabled="disabled">
+							<span>확인</span>
+						</button>
 					</div>
 				</form>
 			</div>