최초 세팅
This commit is contained in:
573
src/main/resources/static/js/mobile/join/join.js
Normal file
573
src/main/resources/static/js/mobile/join/join.js
Normal file
@@ -0,0 +1,573 @@
|
||||
let isRunning = false;
|
||||
let phoneAuthYn = "N";
|
||||
|
||||
let userData = {};
|
||||
let certCellFlag = "N";
|
||||
let num = 60 * 3; // 몇분을 설정할지의 대한 변수 선언
|
||||
let myVar;
|
||||
let duplicateSuccess = false;
|
||||
/****************************************************************************
|
||||
* 정보입력 페이지 이동
|
||||
****************************************************************************/
|
||||
function fn_joinInputIntro() {
|
||||
let serviceAgreement = $('#service_agreement').prop('checked');
|
||||
let collectionAgreement = $('#collection_agreement').prop('checked');
|
||||
let marketingAgreement = $('#marketing_agreement').prop('checked');
|
||||
|
||||
if (!serviceAgreement) {
|
||||
modalEvent.warning('등록', '서비스 이용 약관은 필수 동의 사항입니다.')
|
||||
return;
|
||||
}
|
||||
if (!collectionAgreement) {
|
||||
modalEvent.warning('등록', '개인정보 수집 및 이용 약관은 필수 동의 사항입니다.')
|
||||
return;
|
||||
}
|
||||
|
||||
let param = "?serviceAgreement=" + serviceAgreement;
|
||||
param += "&collectionAgreement=" + collectionAgreement;
|
||||
param += "&marketingAgreement=" + marketingAgreement;
|
||||
location.href = '/mobilejoin/joinInputIntro.do'+param;
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* 가입 완료버튼
|
||||
****************************************************************************/
|
||||
function fn_join(){
|
||||
if(""==loginType){ //snsType MU:메이드유,K:카카오,N:네이버,A:애플
|
||||
loginType = "MU";
|
||||
}
|
||||
let membershipAccount = $("#membershipAccount").val();
|
||||
let membershipPassword = $("#membershipPassword").val();
|
||||
let passwordCheck = $("#passwordCheck").val();
|
||||
let userName = $("#userName").val();
|
||||
let phoneNumber = $("#phoneNumber").val().replace(/-/g, "");
|
||||
let introUser = $("#introUser").attr('data');
|
||||
|
||||
let reg_password = /^(?=.*[a-zA-Z])((?=.*\d)(?=.*\W)).{8,20}$/;
|
||||
|
||||
/* 디바이스 정보 추가 ( 임시 하드코딩 )*/
|
||||
// let phoneType = 'A'
|
||||
// let deviceUuid = 'e3fc0d3e-e1c7-49ea-bce3-6994721eb711'
|
||||
// let pushKey = ''
|
||||
// let modelName = 'galaxy'
|
||||
// let osVersion = '1'
|
||||
|
||||
if(true != fn_emptyCheck(membershipAccount)){
|
||||
modalEvent.warning("등록", "아이디를 입력하세요");
|
||||
return;
|
||||
}else if(membershipAccount.length<4){
|
||||
modalEvent.warning("등록", "아이디는 최소 4자 이상 입력해야합니다.");
|
||||
return;
|
||||
}else if(!duplicateSuccess&&"MU"==loginType){
|
||||
modalEvent.warning("등록", "아이디 중복여부를 확인하세요.");
|
||||
return;
|
||||
}
|
||||
|
||||
if("MU"==loginType){
|
||||
if(true != fn_emptyCheck(membershipPassword)){
|
||||
modalEvent.warning("등록", "비밀번호를 입력하세요");
|
||||
return;
|
||||
}else if(!reg_password.test(membershipPassword)) {
|
||||
modalEvent.warning("등록", "비밀번호는 숫자,영문,특수문자 조합 최소 8자리 최대 20자리로 입력해야합니다.");
|
||||
return;
|
||||
}else{
|
||||
if(membershipPassword!==passwordCheck){
|
||||
modalEvent.warning("등록", "비밀번호가 일치하지 않습니다.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(true != fn_emptyCheck(marketingAgreement)){
|
||||
modalEvent.warning("등록", "마케팅 수신 동의여부가 없습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
if(true != fn_emptyCheck(userName)){
|
||||
modalEvent.warning("등록", "성함이 없습니다.");
|
||||
return;
|
||||
}else if(userName.length<2){
|
||||
modalEvent.warning("등록", "성함은 최소 2자 이상 입력해야합니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
if(true != fn_emptyCheck(phoneNumber)){
|
||||
modalEvent.warning("등록", "휴대폰번호가 없습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
if('Y'!==phoneAuthYn){
|
||||
modalEvent.warning("등록", "휴대폰인증을 진행하세요");
|
||||
return;
|
||||
}
|
||||
|
||||
let formData = new FormData();
|
||||
formData.append("membershipAccount", membershipAccount);
|
||||
formData.append("membershipPassword", membershipPassword);
|
||||
formData.append("passwordCheck", passwordCheck);
|
||||
formData.append("userName", userName);
|
||||
formData.append("phoneNumber", phoneNumber);
|
||||
formData.append("introUser", introUser);
|
||||
formData.append("loginType", loginType);
|
||||
formData.append("marketingAgreement", marketingAgreement);
|
||||
|
||||
// formData.append("phoneType", phoneType);
|
||||
// formData.append("deviceUuid", deviceUuid);
|
||||
// formData.append("pushKey", pushKey);
|
||||
// formData.append("modelName", modelName);
|
||||
// formData.append("osVersion", osVersion);
|
||||
|
||||
$.ajax({
|
||||
url: encodeURI('/mobilejoin/insertUser.do'),
|
||||
data: formData,
|
||||
dataType: "json",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
type: 'POST',
|
||||
async: true,
|
||||
success: function (data) {
|
||||
if ('0' == data.msgCode) {
|
||||
modalEvent.success("성공", "회원가입 되었습니다.", function () {
|
||||
fn_joinToLogin(membershipAccount, membershipPassword);
|
||||
})
|
||||
} else {
|
||||
modalEvent.danger("등록 오류", data.msgDesc, function (){
|
||||
// location.href = '/mobilelogin/loginIntro.do';
|
||||
fn_leftFormAction("/mobilehome/loginIntro.do");
|
||||
});
|
||||
}
|
||||
},
|
||||
error: function (xhr, status, error) {
|
||||
modalEvent.danger("등록 오류", "등록 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
|
||||
},
|
||||
beforeSend: function () {
|
||||
|
||||
},
|
||||
complete: function () {
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* 회원가입 후 로그인
|
||||
****************************************************************************/
|
||||
function fn_joinToLogin(param1, param2){
|
||||
let ajaxUrl = "";
|
||||
|
||||
if('MU'==loginType){
|
||||
ajaxUrl = "/login.do";
|
||||
}else{
|
||||
ajaxUrl = "/snsLogin.do";
|
||||
}
|
||||
|
||||
let formData = new FormData();
|
||||
formData.append("loginId", param1);
|
||||
formData.append("password", param2);
|
||||
formData.append("loginType", loginType);
|
||||
formData.append("deviceUuid", deviceUuid1);
|
||||
formData.append("phoneType", phoneType1);
|
||||
formData.append("modelName", modelName1);
|
||||
formData.append("osVersion", osVersion1);
|
||||
formData.append("pushKey", pushKey1);
|
||||
formData.append("appVersion", appVersion1);
|
||||
formData.append("deviceYn", deviceYn);
|
||||
|
||||
$.ajax({
|
||||
url: encodeURI('/mobilelogin'+ajaxUrl),
|
||||
data: formData,
|
||||
dataType: 'json',
|
||||
processData: false,
|
||||
contentType: false,
|
||||
type: 'POST',
|
||||
async: true,
|
||||
success: function(data){
|
||||
if('0'==data.msgCode){
|
||||
fn_leftFormAction("/mobilehome/homeIntro.do");
|
||||
}
|
||||
else{
|
||||
modalEvent.danger("로그인 오류", data.msgDesc);
|
||||
}
|
||||
},
|
||||
error : function(xhr, status, error) {
|
||||
modalEvent.danger("로그인 오류", "조회 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
|
||||
},
|
||||
beforeSend:function(){
|
||||
|
||||
},
|
||||
complete:function(){
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* 아이디 중복확인
|
||||
****************************************************************************/
|
||||
function fn_duplicateCheck(){
|
||||
let membershipAccount = $("#membershipAccount").val();
|
||||
if(true != fn_emptyCheck(membershipAccount)){
|
||||
modalEvent.warning("등록", "아이디를 입력하세요");
|
||||
return;
|
||||
}else if(membershipAccount.length<4){
|
||||
modalEvent.warning("등록", "아이디는 최소 4자 이상 입력해야합니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
let formData = new FormData();
|
||||
formData.append("membershipAccount", membershipAccount);
|
||||
|
||||
$.ajax({
|
||||
url: encodeURI('/mobilejoin/checkMembershipId.do'),
|
||||
data: formData,
|
||||
dataType: "json",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
type: 'POST',
|
||||
async: true,
|
||||
success: function (data) {
|
||||
if ('0' == data.msgCode) {
|
||||
if (data.success === 'true') {
|
||||
modalEvent.success("", "사용 가능한 아이디입니다.", function () {
|
||||
duplicateSuccess = true;
|
||||
$('.first').append('<a id="idUseYn" style="font-size: small;color: #3985EA;">사용 가능한 아이디</a>')
|
||||
checkAllFields();
|
||||
})
|
||||
} else {
|
||||
modalEvent.success("", "이미 존재하는 아이디입니다.", function () {
|
||||
$('.first').append('<a id="idUseYn" style="font-size: small;color: red;">중복된 아이디</a>')
|
||||
})
|
||||
}
|
||||
} else {
|
||||
modalEvent.danger("등록 오류", "이미 사용중인 아이디입니다. 다른 아이디를 입력해주세요.");
|
||||
}
|
||||
},
|
||||
error: function (xhr, status, error) {
|
||||
modalEvent.danger("등록 오류", "등록 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
|
||||
},
|
||||
beforeSend: function () {
|
||||
|
||||
},
|
||||
complete: function () {
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* 추천인 아이디 확인
|
||||
****************************************************************************/
|
||||
function fn_checkUser(){
|
||||
let introUser = $("#introUser").val();
|
||||
|
||||
if(true != fn_emptyCheck(introUser)){
|
||||
return;
|
||||
}
|
||||
|
||||
let formData = new FormData();
|
||||
formData.append("membershipAccount", introUser);
|
||||
|
||||
$.ajax({
|
||||
url: encodeURI('/mobilejoin/checkMembershipId.do'),
|
||||
data: formData,
|
||||
dataType: "json",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
type: 'POST',
|
||||
async: true,
|
||||
success: function (data) {
|
||||
if ('0' == data.msgCode) {
|
||||
if($('#introUserCheck')){
|
||||
$('#introUserCheck').remove();
|
||||
}
|
||||
if (0<data.rows.length) {
|
||||
$('#introUser').parent().parent().append('<a id="introUserCheck" style="font-size: small;color: #3985EA;">확인되었습니다.</a>')
|
||||
$('#introUser').attr('data',data.rows.muUserId);
|
||||
} else {
|
||||
$('#introUser').parent().parent().append('<a id="introUserCheck" style="font-size: small;color: red;">존재하지 않는 추천인 입니다.</a>')
|
||||
}
|
||||
} else {
|
||||
modalEvent.danger("등록 오류", data.msgDesc);
|
||||
}
|
||||
},
|
||||
error: function (xhr, status, error) {
|
||||
modalEvent.danger("등록 오류", "등록 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
|
||||
},
|
||||
beforeSend: function () {
|
||||
|
||||
},
|
||||
complete: function () {
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
/****************************************************************************
|
||||
* 휴대폰 본인인증
|
||||
****************************************************************************/
|
||||
function fn_sendAuthNum(){
|
||||
|
||||
let phoneNumber = $("#phoneNumber").val();
|
||||
let reg_tel = /^[0-9]{10,11}$/;
|
||||
|
||||
if(true != fn_emptyCheck(phoneNumber)){
|
||||
modalEvent.warning("조회", "휴대폰번호를 입력하세요.");
|
||||
return;
|
||||
}else{
|
||||
if(reg_tel.test(phoneNumber) != true) {
|
||||
modalEvent.warning("조회", "휴대폰번호는 숫자 10~11자리여야 합니다.");
|
||||
return;
|
||||
}else{
|
||||
// 인증번호 발송
|
||||
fn_insertPhoneAuth();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* 인증번호 등록
|
||||
****************************************************************************/
|
||||
function fn_insertPhoneAuth(){
|
||||
|
||||
isRunning = false;
|
||||
|
||||
let phoneNumber = $("#phoneNumber").val();
|
||||
let authType = "JN";
|
||||
|
||||
let formData = new FormData();
|
||||
formData.append("phoneNumber", phoneNumber);
|
||||
formData.append("authType", authType);
|
||||
|
||||
$.ajax({
|
||||
url: encodeURI('/mobilephoneauth/insertPhoneAuth.do'),
|
||||
data: formData,
|
||||
dataType: 'json',
|
||||
processData: false,
|
||||
contentType: false,
|
||||
type: 'POST',
|
||||
async: true,
|
||||
success: function(data){
|
||||
if(data.msgCode=='0'){
|
||||
|
||||
modalEvent.success("", data.msgDesc, function(){
|
||||
isRunning = true;
|
||||
|
||||
fn_startTimer();
|
||||
$("#sendAuthNumBtn").text("재전송");
|
||||
$(".certification_box2").show();
|
||||
});
|
||||
|
||||
}else{
|
||||
modalEvent.danger("", data.msgDesc);
|
||||
}
|
||||
},
|
||||
error : function(xhr, status, error) {
|
||||
modalEvent.danger("", "정상적으로 수행되지 않았습니다. 인터넷에 연결되어 있는지 확인해 보시기 바랍니다.");
|
||||
},
|
||||
beforeSend:function(xhr){
|
||||
xhr.setRequestHeader("token", sessionStorage.getItem("token"));
|
||||
},
|
||||
complete:function(){
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* 타이머 함수 실행
|
||||
****************************************************************************/
|
||||
function fn_startTimer() {
|
||||
|
||||
// 남은 시간(초)
|
||||
let count = 180;
|
||||
let display = document.querySelector('#timer');
|
||||
|
||||
let minutes, seconds;
|
||||
let timer = setInterval(function () {
|
||||
if(isRunning){
|
||||
minutes = parseInt(count / 60, 10);
|
||||
seconds = parseInt(count % 60, 10);
|
||||
minutes = minutes < 10 ? "0" + minutes : minutes;
|
||||
seconds = seconds < 10 ? "0" + seconds : seconds;
|
||||
display.textContent = "유효시간 " + minutes + ":" + seconds;
|
||||
isRunning = true;
|
||||
}else{
|
||||
clearInterval(timer);
|
||||
display.textContent = "";
|
||||
isRunning = false;
|
||||
}
|
||||
|
||||
// 타이머 종료
|
||||
if (--count < 0) {
|
||||
clearInterval(timer);
|
||||
display.textContent = "";
|
||||
isRunning = false;
|
||||
$("#authNumber").val("");
|
||||
}
|
||||
}, 1000);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* 인증번호 확인 조회
|
||||
****************************************************************************/
|
||||
function fn_selectPhoneAuthCheck(){
|
||||
|
||||
let phoneNumber = $("#phoneNumber").val();
|
||||
let authNumber = $("#authNumber").val();
|
||||
let reg_tel = /^[0-9]{10,11}$/;
|
||||
|
||||
if(true != fn_emptyCheck(phoneNumber)){
|
||||
modalEvent.warning("조회", "휴대폰번호는 필수 값입니다.");
|
||||
return;
|
||||
}else{
|
||||
if(reg_tel.test(phoneNumber) != true) {
|
||||
modalEvent.warning("조회", "휴대폰번호는 숫자 10~11자리여야 합니다.");
|
||||
return;
|
||||
}else{
|
||||
phoneNumber = phoneNumber.replace("-", "");
|
||||
}
|
||||
}
|
||||
|
||||
if(true != fn_emptyCheck(authNumber)){
|
||||
modalEvent.warning("조회", "인증번호를 입력하세요.");
|
||||
return;
|
||||
}
|
||||
|
||||
let formData = new FormData();
|
||||
formData.append("phoneNumber", phoneNumber);
|
||||
formData.append("authNumber", authNumber);
|
||||
|
||||
$.ajax({
|
||||
url: encodeURI('/mobilephoneauth/selectPhoneAuthCheck.do'),
|
||||
data: formData,
|
||||
dataType: 'json',
|
||||
processData: false,
|
||||
contentType: false,
|
||||
type: 'POST',
|
||||
async: false,
|
||||
success: function(data){
|
||||
if(data.msgCode=='0'){
|
||||
modalEvent.success("", data.msgDesc);
|
||||
phoneAuthYn = "Y";
|
||||
clearInterval(timer);
|
||||
isRunning = false;
|
||||
|
||||
// checkAllFields();
|
||||
const completeButton = $('.button_box button');
|
||||
|
||||
completeButton.addClass('active');
|
||||
completeButton.attr("disabled", false);
|
||||
}else{
|
||||
modalEvent.danger("조회 오류", data.msgDesc);
|
||||
phoneAuthYn = "N";
|
||||
checkAllFields();
|
||||
|
||||
}
|
||||
},
|
||||
error : function(xhr, status, error) {
|
||||
modalEvent.danger("조회 오류", "정상적으로 수행되지 않았습니다. 인터넷에 연결되어 있는지 확인해 보시기 바랍니다.");
|
||||
phoneAuthYn = "N";
|
||||
checkAllFields();
|
||||
|
||||
},
|
||||
beforeSend:function(xhr){
|
||||
xhr.setRequestHeader("token", sessionStorage.getItem("token"));
|
||||
},
|
||||
complete:function(){
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function checkAllFields(changeElement) {
|
||||
const requiredFields = document.querySelectorAll('#membershipAccount,#membershipPassword,#passwordCheck,#userName,#phoneNumber,#authNumber');
|
||||
let allFilled = true;
|
||||
const completeButton = $('.button_box button');
|
||||
|
||||
if(changeElement && changeElement[0]===$("#membershipAccount")[0]){
|
||||
duplicateSuccess=false;
|
||||
allFilled = false;
|
||||
$("#idUseYn").remove();
|
||||
}
|
||||
|
||||
requiredFields.forEach(function (field) {
|
||||
if (field.value.trim() === '') {
|
||||
allFilled = false;
|
||||
}
|
||||
if(!duplicateSuccess){
|
||||
allFilled = false;
|
||||
}
|
||||
if('Y'!==phoneAuthYn){
|
||||
allFilled = false;
|
||||
}
|
||||
});
|
||||
|
||||
if(allFilled) {
|
||||
completeButton.addClass('active');
|
||||
completeButton.attr("disabled", false);
|
||||
}else {
|
||||
completeButton.removeClass('active')
|
||||
completeButton.attr("disabled", true);
|
||||
}
|
||||
}
|
||||
|
||||
function alertFunc() {
|
||||
var min = num / 60;
|
||||
min = Math.floor(min);
|
||||
|
||||
var sec = num - (60 * min);
|
||||
sec = sec > 9 ? sec : "0"+sec ;
|
||||
|
||||
if(num == 0){
|
||||
certCellFlag = "T";
|
||||
clearInterval(myVar) // num 이 0초가 되었을대 clearInterval로 타이머 종료
|
||||
}
|
||||
num--;
|
||||
}
|
||||
/****************************************************************************
|
||||
* 페이지 init
|
||||
****************************************************************************/
|
||||
function fn_pageInit() {
|
||||
getDeviceInfo();
|
||||
|
||||
if(''!=loginType && ''!=snsEmail){
|
||||
$("#membershipAccount").val(snsEmail);
|
||||
$("#membershipAccount").css("disabled",true);
|
||||
|
||||
$("#duplicateCheckBtn").css("display","none");
|
||||
$("#passwordLi").css("display","none");
|
||||
}
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* 페이지 event
|
||||
****************************************************************************/
|
||||
function fn_pageEvent() {
|
||||
$('#membershipAccount,#membershipPassword,#passwordCheck,#userName,#phoneNumber,#authNumber').each(function () {
|
||||
$(this).on('change', ()=>checkAllFields($(this)));
|
||||
});
|
||||
|
||||
$("#introUser").change(function () {
|
||||
fn_checkUser();
|
||||
});
|
||||
|
||||
// 다음버튼
|
||||
$("#btn_joinInputIntro").click(function () {
|
||||
fn_joinInputIntro();
|
||||
});
|
||||
|
||||
// 전체동의 체크
|
||||
$("#all_agreement").change(function () {
|
||||
const checkboxes = document.querySelectorAll('input[name="join_agreement"]');
|
||||
checkboxes.forEach(function (checkbox) {
|
||||
checkbox.checked = this.checked;
|
||||
}, this);
|
||||
});
|
||||
}
|
||||
|
||||
$(function () {
|
||||
// 페이지 init
|
||||
fn_pageInit();
|
||||
|
||||
// 페이지 event
|
||||
fn_pageEvent();
|
||||
});
|
||||
Reference in New Issue
Block a user