최초 세팅
This commit is contained in:
35
src/main/resources/templates/mobile/common/footer.html
Normal file
35
src/main/resources/templates/mobile/common/footer.html
Normal file
@@ -0,0 +1,35 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
|
||||
<th:block th:fragment="layout_footer">
|
||||
<ul>
|
||||
<!-- 홈 -->
|
||||
<li th:class="${currentPage == 'home'} ? 'home on' : 'home'">
|
||||
<a th:href="@{/home}">
|
||||
<div><!--img--></div>
|
||||
<p>홈</p>
|
||||
</a>
|
||||
</li>
|
||||
<!-- 시술 정보 -->
|
||||
<li th:class="${currentPage == 'medical'} ? 'medicalInfo on' : 'medicalInfo'">
|
||||
<a th:href="@{/medical}">
|
||||
<div><!--img--></div>
|
||||
<p>시술 정보</p>
|
||||
</a>
|
||||
</li>
|
||||
<!-- 진료 예약 -->
|
||||
<li th:class="${currentPage == 'reservation'} ? 'reservation on' : 'reservation'">
|
||||
<a th:href="@{/reservation}">
|
||||
<div><!--img--></div>
|
||||
<p>진료 예약</p>
|
||||
</a>
|
||||
</li>
|
||||
<!-- 내 정보 -->
|
||||
<li th:class="${currentPage == 'mypage'} ? 'mypage on' : 'mypage'">
|
||||
<a th:href="@{/mypage}">
|
||||
<div><!--img--></div>
|
||||
<p>내 정보</p>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</th:block>
|
||||
</html>
|
||||
13
src/main/resources/templates/mobile/common/header1.html
Normal file
13
src/main/resources/templates/mobile/common/header1.html
Normal file
@@ -0,0 +1,13 @@
|
||||
<!DOCTYPE html>
|
||||
<html lagn="ko" xmlns:th="http://www.thymeleaf.org">
|
||||
|
||||
<th:block th:fragment="layout_header_type1">
|
||||
<!--상단네비-->
|
||||
<header class="header_section">
|
||||
<ul>
|
||||
<li><button id="back_btn" onclick="window.history.back();"><img src="/image/mobile/back.svg" alt="뒤로가기"/></button></li>
|
||||
<li class="app_name">MADE U MEMBERSHIP</li>
|
||||
</ul>
|
||||
</header>
|
||||
</th:block>
|
||||
</html>
|
||||
120
src/main/resources/templates/mobile/common/header2.html
Normal file
120
src/main/resources/templates/mobile/common/header2.html
Normal file
@@ -0,0 +1,120 @@
|
||||
<!DOCTYPE html>
|
||||
<html lagn="ko" xmlns:th="http://www.thymeleaf.org">
|
||||
|
||||
<th:block th:fragment="layout_header_type1">
|
||||
<!--상단네비-->
|
||||
<header class="header_section" id="headerSection">
|
||||
<ul>
|
||||
<li class="app_name">MADE U MEMBERSHIP</li>
|
||||
<li id="pushCheck"><button class="notify_btn" onClick="location.href='/mobilepush/selectListPushIntro.do'"><img src="/image/mobile/notify.svg" alt="알림"/></button></li>
|
||||
<!-- new : 알림 있는 경우 넣어주기 -> 아이콘 옆에 빨간표시 때문 -->
|
||||
</ul>
|
||||
</header>
|
||||
|
||||
<script>
|
||||
$(function(){
|
||||
|
||||
// 상단 예약 알림 조회
|
||||
fn_selectReservationHeader();
|
||||
|
||||
// 푸시 알림 갯수 체크
|
||||
fn_selectPushCountCheck()
|
||||
});
|
||||
|
||||
/****************************************************************************
|
||||
* 상단 알림 조회
|
||||
****************************************************************************/
|
||||
function fn_selectReservationHeader(){
|
||||
|
||||
let formData = new FormData();
|
||||
|
||||
$.ajax({
|
||||
url: encodeURI('/mobilereservation/selectReservationHeader.do'),
|
||||
data: formData,
|
||||
dataType: "json",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
type: 'POST',
|
||||
async: false,
|
||||
success: function(data){
|
||||
if('0'==data.msgCode) {
|
||||
if(0<data.rows.length){
|
||||
let listHTML = '';
|
||||
listHTML += '<div class="notify_box open" onclick="fn_reservationIntro(\'Y\')">';
|
||||
listHTML += ' <div class="img_box">';
|
||||
listHTML += ' <img src="/image/mobile/notify_soft.svg" alt="알림"/>';
|
||||
listHTML += ' </div>';
|
||||
listHTML += ' <ul>';
|
||||
listHTML += ' <li><p class="notify_title">예약 알림</p></li>';
|
||||
listHTML += ' <li><p class="notify_content">'+data.rows[0].reserveDate+' 진료 예약이 완료되었습니다.</p></li>';
|
||||
listHTML += ' </ul>';
|
||||
listHTML += '</div>';
|
||||
|
||||
$("#headerSection").append(listHTML);
|
||||
}
|
||||
}else if(data.msgCode == '-1'){
|
||||
modalEvent.warning("조회 오류", data.msgDesc);
|
||||
}else{
|
||||
modalEvent.danger("조회 오류", "조회 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
|
||||
}
|
||||
},
|
||||
error: function (xhr, status, error) {
|
||||
modalEvent.danger("조회 오류", "조회 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
|
||||
},
|
||||
beforeSend:function(){
|
||||
|
||||
},
|
||||
complete:function(){
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* 예약 리스트 이동
|
||||
****************************************************************************/
|
||||
function fn_reservationIntro(param){
|
||||
|
||||
location.href = "/reservation?userCheckYn="+param;
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* 푸시 알림 갯수 체크
|
||||
****************************************************************************/
|
||||
function fn_selectPushCountCheck(){
|
||||
|
||||
let formData = new FormData();
|
||||
|
||||
$.ajax({
|
||||
url: encodeURI('/mobilepush/selectPushCountCheck.do'),
|
||||
data: formData,
|
||||
dataType: "json",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
type: 'POST',
|
||||
async: false,
|
||||
success: function(data){
|
||||
if('0'==data.msgCode) {
|
||||
if("Y" == data.rows[0].checkYn){
|
||||
$("#pushCheck").addClass("new");
|
||||
}
|
||||
}else if(data.msgCode == '-1'){
|
||||
modalEvent.warning("조회 오류", data.msgDesc);
|
||||
}else{
|
||||
modalEvent.danger("조회 오류", "조회 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
|
||||
}
|
||||
},
|
||||
error: function (xhr, status, error) {
|
||||
modalEvent.danger("조회 오류", "조회 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
|
||||
},
|
||||
beforeSend:function(){
|
||||
|
||||
},
|
||||
complete:function(){
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
</th:block>
|
||||
</html>
|
||||
13
src/main/resources/templates/mobile/common/header3.html
Normal file
13
src/main/resources/templates/mobile/common/header3.html
Normal file
@@ -0,0 +1,13 @@
|
||||
<!DOCTYPE html>
|
||||
<html lagn="ko" xmlns:th="http://www.thymeleaf.org">
|
||||
|
||||
<th:block th:fragment="layout_header_type1">
|
||||
<!--상단네비-->
|
||||
<header class="header_section">
|
||||
<ul>
|
||||
<li><button id="back_btn" href="/home"><img src="/image/mobile/back.svg" alt="뒤로가기"/></button></li>
|
||||
<li class="notify"><img src="/image/mobile/notify.svg" alt="알림"/>알림을 확인하세요</li>
|
||||
</ul>
|
||||
</header>
|
||||
</th:block>
|
||||
</html>
|
||||
13
src/main/resources/templates/mobile/common/header4.html
Normal file
13
src/main/resources/templates/mobile/common/header4.html
Normal file
@@ -0,0 +1,13 @@
|
||||
<!DOCTYPE html>
|
||||
<html lagn="ko" xmlns:th="http://www.thymeleaf.org">
|
||||
|
||||
<th:block th:fragment="layout_header_type1">
|
||||
<!--상단네비-->
|
||||
<header class="header_section">
|
||||
<ul>
|
||||
<li><button id="back_btn" onclick="fn_tapPageBack(referMenu, referTap)"><img src="/image/mobile/back.svg" alt="뒤로가기"/></button></li>
|
||||
<li class="app_name">MADE U MEMBERSHIP</li>
|
||||
</ul>
|
||||
</header>
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,39 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{/mobile/layout/detailLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/mobile/mypage_support.css">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<h3>고객센터</h3>
|
||||
<ul>
|
||||
<li>
|
||||
<a onclick="call('02-547-4711')">
|
||||
<div class="img_box">
|
||||
<img src="/image/mobile/support_phone.svg" alt="전화 문의"/>
|
||||
</div>
|
||||
<p>전화 문의</p>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/mobilecustomerservice/insertUserInquiryIntro.do">
|
||||
<div class="img_box">
|
||||
<img src="/image/mobile/support_inquiry.svg" alt="문의하기"/>
|
||||
</div>
|
||||
<p>1:1 문의하기</p>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/mobilecustomerservice/selectListUserInquiryIntro.do">
|
||||
<div class="img_box">
|
||||
<img src="/image/mobile/support_history.svg" alt="문의 내역"/>
|
||||
</div>
|
||||
<p>문의 내역</p>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</th:block>
|
||||
</html>
|
||||
31
src/main/resources/templates/mobile/event/selectEvent.html
Normal file
31
src/main/resources/templates/mobile/event/selectEvent.html
Normal file
@@ -0,0 +1,31 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{/mobile/layout/detailLayout2}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/mobile/home_event.css">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script>
|
||||
let muAppEventId = "[[${param.muAppEventId}]]";
|
||||
let referMenu = "[[${param.referMenu}]]";
|
||||
let referTap = "[[${param.referTap}]]";
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<div class="banner_box">
|
||||
<div class="img_box"></div>
|
||||
<div class="text_box">
|
||||
</div>
|
||||
</div>
|
||||
<div class="content_box">
|
||||
<p class="title"></p>
|
||||
<div><!--이미지--></div>
|
||||
</div>
|
||||
<form id="eventForm" onsubmit="return false;"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/mobile/event/selectEvent.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
64
src/main/resources/templates/mobile/home/home.html
Normal file
64
src/main/resources/templates/mobile/home/home.html
Normal file
@@ -0,0 +1,64 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{/mobile/layout/homeLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/mobile/home.css">
|
||||
<link rel="stylesheet" href="/css/mobile/swiper-bundle.min.css">
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script src="/js/mobile/swiper-bundle.min.js"></script>
|
||||
<script>
|
||||
let referMenu = "[[${param.referMenu}]]";
|
||||
let referTap = "[[${param.referTap}]]";
|
||||
</script>
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_content">
|
||||
|
||||
<div class="tab_panel" role="tabpanel">
|
||||
<!-- Tabs -->
|
||||
<div class="nav_box">
|
||||
<ul class="nav nav-tabs" role="tablist">
|
||||
<li role="presentation" class="navTap active" id="navTap_home">
|
||||
<a href="#home" aria-controls="home" role="tab" data-toggle="tab">
|
||||
<p>홈</p>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li role="presentation" class="navTap" id="navTap_event">
|
||||
<a href="#event" aria-controls="event" role="tab" data-toggle="tab">
|
||||
<p>이벤트</p>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- Tab panes -->
|
||||
<div class="tab-content">
|
||||
<div role="tabpanel" class="tabContent tab-pane home active" id="home">
|
||||
<div class="homeSwiper">
|
||||
<div class="swiper-wrapper">
|
||||
</div>
|
||||
<div class="swiper-pagination"></div>
|
||||
</div>
|
||||
<div class="button_box">
|
||||
<button onClick="location.href='/mobilereservation/insertReservationIntro.do'">
|
||||
<p>내원 계획이 있으신가요?</p>
|
||||
<p>진료 예약하기</p>
|
||||
<img src="/image/mobile/arrow_w.svg" alt="arrow"/>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div role="tabpanel" class="tabContent tab-pane event" id="event">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<form id="homeForm" onsubmit="return false;"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/mobile/home/home.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
81
src/main/resources/templates/mobile/include/emptyHead.html
Normal file
81
src/main/resources/templates/mobile/include/emptyHead.html
Normal file
@@ -0,0 +1,81 @@
|
||||
<!DOCTYPE html>
|
||||
<html lagn="ko"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
|
||||
<th:block th:fragment="layout_head">
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="keyword" content="HTML, meta, tag, element, reference">
|
||||
<meta name="description" content="HTML meta tag page">
|
||||
<meta name="author" content="NTSOFT">
|
||||
<meta name="description" content={props.description} data-react-helmet="true" />
|
||||
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
|
||||
<meta http-equiv="Cache-Control" content="No-Cache" />
|
||||
<meta http-equiv="pragma" content="No-cache" />
|
||||
<meta http-equiv="expires" content="0" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE10">
|
||||
|
||||
<!-- sns미리보기 -->
|
||||
<meta property="og:type" content="website">
|
||||
<!-- <meta property="og:url" content="https://ntsoft.kr/"> -->
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:title" content="메이드유 CRM">
|
||||
<meta property="og:description" content="설명문구">
|
||||
|
||||
<!-- 사이트등록및소유확인 -->
|
||||
<meta name="naver-site-verification" content="" />
|
||||
|
||||
<title>메이드유 CRM</title>
|
||||
|
||||
<!-- 파비콘 -->
|
||||
<link rel="shortcut icon" href="/image/favicon.ico" type="image/x-icon">
|
||||
<link rel="icon" href="/image/favicon.ico" type="image/x-icon">
|
||||
|
||||
<!-- 베이스css -->
|
||||
<link rel="stylesheet" href="/bootstrap/bootstrap-3.4.1-dist/css/bootstrap.min.css">
|
||||
|
||||
<!-- 적용css -->
|
||||
<link rel="stylesheet" href="/css/mobile/font.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/mobile/common.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/mobile/header.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/mobile/jquery-ui.css">
|
||||
<link rel="stylesheet" href="/js/mobile/bootstrap-datetimepicker/bootstrap-datetimepicker.css">
|
||||
<link rel="stylesheet" href="/css/mobile/loadingAnimations2.css">
|
||||
|
||||
<th:block layout:fragment="layout_css"></th:block>
|
||||
<th:block layout:fragment="layout_menu_css"></th:block>
|
||||
|
||||
<!-- 베이스script -->
|
||||
<script src="/js/mobile/jquery.min.js"></script>
|
||||
<script src="/bootstrap/bootstrap-3.4.1-dist/js/bootstrap.min.js"></script>
|
||||
|
||||
<!-- 적용script -->
|
||||
<script src="/js/mobile/jquery-ui.js"></script>
|
||||
<!--<script src="/js/mobile/data.js"></script>-->
|
||||
<script src="/js/mobile/common.js?v1.0"></script>
|
||||
<script src="/js/mobile/hybrid_app.js"></script>
|
||||
<script src="/js/mobile/bootstrap-datetimepicker/moment-with-locales.min.js"></script>
|
||||
<script src="/js/mobile/bootstrap-datetimepicker/ko.js"></script>
|
||||
<script src="/js/mobile/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js"></script>
|
||||
|
||||
<th:block th:replace="/mobile/include/modal :: layout_modal"></th:block>
|
||||
<div class="loading-image-layer" style="z-index:2000;background:#000;opacity:.2;position:fixed;width:100%;height:100%;display:none;">
|
||||
<ul>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
let modalArr = new Array();
|
||||
let modalBackYn = 'N';
|
||||
|
||||
/* window.addEventListener('hashchange', modalCloseEvent, false); */
|
||||
</script>
|
||||
</th:block>
|
||||
</html>
|
||||
100
src/main/resources/templates/mobile/include/head.html
Normal file
100
src/main/resources/templates/mobile/include/head.html
Normal file
@@ -0,0 +1,100 @@
|
||||
<!DOCTYPE html>
|
||||
<html lagn="ko"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
|
||||
<th:block th:fragment="layout_head">
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<meta name="keyword" content="HTML, meta, tag, element, reference">
|
||||
<meta name="description" content="HTML meta tag page">
|
||||
<meta name="author" content="NTSOFT">
|
||||
<meta name="description" content={props.description} data-react-helmet="true" />
|
||||
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
|
||||
<meta http-equiv="Cache-Control" content="No-Cache" />
|
||||
<meta http-equiv="pragma" content="No-cache" />
|
||||
<meta http-equiv="expires" content="0" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE10">
|
||||
|
||||
<!-- sns미리보기 -->
|
||||
<meta property="og:type" content="website">
|
||||
<!-- <meta property="og:url" content="https://ntsoft.kr/"> -->
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:title" content="메이드유 CRM">
|
||||
<meta property="og:description" content="설명문구">
|
||||
|
||||
<!-- 사이트등록및소유확인 -->
|
||||
<meta name="naver-site-verification" content="" />
|
||||
|
||||
<title>메이드유 CRM</title>
|
||||
|
||||
<!-- 파비콘 -->
|
||||
<link rel="shortcut icon" href="/image/favicon.ico" type="image/x-icon">
|
||||
<link rel="icon" href="/image/favicon.ico" type="image/x-icon">
|
||||
|
||||
<!-- 베이스css -->
|
||||
<link rel="stylesheet" href="/bootstrap/bootstrap-3.4.1-dist/css/bootstrap.min.css">
|
||||
|
||||
<!-- 적용css -->
|
||||
<link rel="stylesheet" href="/css/mobile/font.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/mobile/common.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/mobile/header.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/mobile/footer.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/mobile/modal.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/mobile/modal_common.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/mobile/jquery-ui.css">
|
||||
<link rel="stylesheet" href="/js/mobile/bootstrap-datetimepicker/bootstrap-datetimepicker.css">
|
||||
<link rel="stylesheet" href="/css/mobile/loadingAnimations2.css">
|
||||
|
||||
<th:block layout:fragment="layout_css"></th:block>
|
||||
<th:block layout:fragment="layout_menu_css"></th:block>
|
||||
|
||||
<!-- 베이스script -->
|
||||
<script src="/js/mobile/jquery.min.js"></script>
|
||||
<script src="/bootstrap/bootstrap-3.4.1-dist/js/bootstrap.min.js"></script>
|
||||
|
||||
<!-- 적용script -->
|
||||
<script src="/js/mobile/jquery-ui.js"></script>
|
||||
<script src="/js/mobile/bootstrap-datetimepicker/moment-with-locales.min.js"></script>
|
||||
<script src="/js/mobile/bootstrap-datetimepicker/ko.js"></script>
|
||||
<script src="/js/mobile/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js"></script>
|
||||
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.16.9/xlsx.full.min.js"></script>
|
||||
|
||||
<script src="/js/mobile/common.js?v1.0"></script>
|
||||
<script src="/js/mobile/common_option.js"></script>
|
||||
<script src="/js/mobile/hybrid_app.js"></script>
|
||||
|
||||
<th:block th:replace="/mobile/include/modal :: layout_modal"></th:block>
|
||||
<div class="loading-image-layer" style="z-index:2000;background:#000;opacity:.2;position:fixed;width:100%;height:100%;display:none;">
|
||||
<ul>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
let loginUserId = "[[${session.loginUserId}]]";
|
||||
let mobileLoginName = "[[${session.mobileLoginName}]]";
|
||||
|
||||
let isSessionConfirm = false;
|
||||
let windowWidth = $(window).width();
|
||||
let windowHeight = $(window).height();
|
||||
|
||||
let modalArr = new Array();
|
||||
let modalBackYn = 'N';
|
||||
|
||||
/* window.addEventListener('hashchange', modalCloseEvent, false); */
|
||||
|
||||
|
||||
$(function(){
|
||||
// setRefreshOff();
|
||||
});
|
||||
|
||||
</script>
|
||||
</th:block>
|
||||
</html>
|
||||
370
src/main/resources/templates/mobile/include/modal.html
Normal file
370
src/main/resources/templates/mobile/include/modal.html
Normal file
@@ -0,0 +1,370 @@
|
||||
<!DOCTYPE html>
|
||||
<html lagn="ko" xmlns:th="http://www.thymeleaf.org">
|
||||
<th:block th:fragment="layout_modal">
|
||||
<div id="modalBox"></div>
|
||||
|
||||
<script>
|
||||
let viewScrollY = 0;
|
||||
|
||||
//success Modal 셋팅
|
||||
function fn_setSuccessModal(targetId){
|
||||
let successModalHTML = '';
|
||||
successModalHTML += '<div class="modal fade success" id="'+targetId+'" tabIndex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">';
|
||||
successModalHTML += ' <div class="modal-dialog">';
|
||||
successModalHTML += ' <div class="modal-content">';
|
||||
successModalHTML += ' <div class="modal-body">';
|
||||
successModalHTML += ' <p class="title"></p>';
|
||||
successModalHTML += ' <p class="text"></p>';
|
||||
successModalHTML += ' </div>';
|
||||
|
||||
successModalHTML += ' <div class="modal-footer">';
|
||||
successModalHTML += ' <div class="btn_box">';
|
||||
successModalHTML += ' <button type="button" class="check_bth btn-Success">확인</button>';
|
||||
successModalHTML += ' </div>';
|
||||
successModalHTML += ' </div>';
|
||||
successModalHTML += ' </div>';
|
||||
successModalHTML += ' </div>';
|
||||
successModalHTML += '</div>';
|
||||
|
||||
$("#modalBox").append(successModalHTML);
|
||||
|
||||
if(''==viewScrollY){
|
||||
viewScrollY = pageYOffset;
|
||||
}
|
||||
|
||||
//$('.content_wrap .center').attr('style','top:-'+viewScrollY+'px');
|
||||
|
||||
document.body.style.overflow = 'hidden';
|
||||
}
|
||||
|
||||
//danger Modal 셋팅
|
||||
function fn_setDangerModal(targetId){
|
||||
let dangerModalHTML = '';
|
||||
dangerModalHTML += '<div class="modal fade danger" id="'+targetId+'" tabIndex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">';
|
||||
dangerModalHTML += ' <div class="modal-dialog">';
|
||||
dangerModalHTML += ' <div class="modal-content">';
|
||||
dangerModalHTML += ' <div class="modal-body">';
|
||||
dangerModalHTML += ' <p class="text"></p>';
|
||||
dangerModalHTML += ' </div>';
|
||||
|
||||
dangerModalHTML += ' <div class="modal-footer">';
|
||||
dangerModalHTML += ' <div class="btn_box">';
|
||||
dangerModalHTML += ' <button type="button" class="check_bth btn-Success">확인</button>';
|
||||
dangerModalHTML += ' </div>';
|
||||
dangerModalHTML += ' </div>';
|
||||
dangerModalHTML += ' </div>';
|
||||
dangerModalHTML += ' </div>';
|
||||
dangerModalHTML += '</div>';
|
||||
|
||||
$("#modalBox").append(dangerModalHTML);
|
||||
|
||||
if(''==viewScrollY){
|
||||
viewScrollY = pageYOffset;
|
||||
}
|
||||
|
||||
//$('.content_wrap .center').attr('style','top:-'+viewScrollY+'px');
|
||||
|
||||
document.body.style.overflow = 'hidden';
|
||||
}
|
||||
|
||||
//warning Modal 셋팅
|
||||
function fn_setWarningModal(targetId){
|
||||
let warningModalHTML = '';
|
||||
warningModalHTML += '<div class="modal fade warning" id="'+targetId+'" tabIndex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">';
|
||||
warningModalHTML += ' <div class="modal-dialog">';
|
||||
warningModalHTML += ' <div class="modal-content">';
|
||||
warningModalHTML += ' <div class="modal-body">';
|
||||
warningModalHTML += ' <p class="text"></p>';
|
||||
warningModalHTML += ' </div>';
|
||||
|
||||
warningModalHTML += ' <div class="modal-footer">';
|
||||
warningModalHTML += ' <div class="btn_box">';
|
||||
warningModalHTML += ' <button type="button" class="check_bth btn-Success">확인</button>';
|
||||
warningModalHTML += ' </div>';
|
||||
warningModalHTML += ' </div>';
|
||||
warningModalHTML += ' </div>';
|
||||
warningModalHTML += ' </div>';
|
||||
warningModalHTML += '</div>';
|
||||
|
||||
$("#modalBox").append(warningModalHTML);
|
||||
|
||||
if(''==viewScrollY){
|
||||
viewScrollY = pageYOffset;
|
||||
}
|
||||
|
||||
//$('.content_wrap .center').attr('style','top:-'+viewScrollY+'px');
|
||||
|
||||
document.body.style.overflow = 'hidden';
|
||||
}
|
||||
|
||||
//info Modal 셋팅
|
||||
function fn_setInfoModal(targetId){
|
||||
let infoModalHTML = '';
|
||||
infoModalHTML += '<div class="modal fade info" id="'+targetId+'" tabIndex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">';
|
||||
infoModalHTML += ' <div class="modal-dialog">';
|
||||
infoModalHTML += ' <div class="modal-content">';
|
||||
infoModalHTML += ' <div class="modal-body">';
|
||||
infoModalHTML += ' <p class="text"></p>';
|
||||
infoModalHTML += ' </div>';
|
||||
|
||||
infoModalHTML += ' <div class="modal-footer">';
|
||||
infoModalHTML += ' <div class="btn_box">';
|
||||
infoModalHTML += ' <button type="button" class="cancel_btn btn-cancel">취소</button>';
|
||||
infoModalHTML += ' <button type="button" class="check_bth btn-Success">확인</button>';
|
||||
infoModalHTML += ' </div>';
|
||||
infoModalHTML += ' </div>';
|
||||
infoModalHTML += ' </div>';
|
||||
infoModalHTML += ' </div>';
|
||||
infoModalHTML += '</div>';
|
||||
|
||||
$("#modalBox").append(infoModalHTML);
|
||||
|
||||
if(''==viewScrollY){
|
||||
viewScrollY = pageYOffset;
|
||||
}
|
||||
|
||||
//$('.content_wrap .center').attr('style','top:-'+viewScrollY+'px');
|
||||
|
||||
document.body.style.overflow = 'hidden';
|
||||
}
|
||||
|
||||
//팝업
|
||||
let modalEvent = {
|
||||
open : function(target, tit, msg){
|
||||
if(target.length < 1){
|
||||
throw new Error("there is no target element !");
|
||||
}
|
||||
|
||||
// target.find(".modal-header>.modal-name>.title").html(tit);
|
||||
|
||||
//엔터 처리
|
||||
let enterMsg = msg;//msg.replace(/\r?\n/g, '<br>');
|
||||
target.find(".modal-body>.text").html(enterMsg);
|
||||
|
||||
//let obj = new Object();
|
||||
//obj.modalName = 'commonModal';
|
||||
|
||||
//modalArr.push("commonModal");
|
||||
//location.hash = 'commonModal';
|
||||
|
||||
target.modal({keyboard:false, backdrop:'static'});
|
||||
},
|
||||
close : function(target){
|
||||
//팝업 지우기
|
||||
//target.modal("hide");
|
||||
//target.parent().remove();
|
||||
|
||||
//body css 변경
|
||||
document.body.style.overflow = 'initial';
|
||||
//기존 top css 변경
|
||||
//$('.content_wrap .center').attr('style','top:0px');
|
||||
//스크롤 위치로 자리 이동
|
||||
window.scrollTo( 0, viewScrollY);
|
||||
//변수 초기화
|
||||
viewScrollY = 0;
|
||||
|
||||
modalArr.pop();
|
||||
|
||||
/* if('N'==modalBackYn){
|
||||
window.history.back();
|
||||
} */
|
||||
|
||||
$("#modalBox .modal").modal("hide");
|
||||
|
||||
// $("#modalBox").children().remove(); // 삭제 확인 필요
|
||||
},
|
||||
backClose : function(target){
|
||||
//팝업 지우기
|
||||
//target.modal("hide");
|
||||
//target.parent().remove();
|
||||
|
||||
//body css 변경
|
||||
document.body.style.overflow = 'initial';
|
||||
//기존 top css 변경
|
||||
//$('.content_wrap .center').attr('style','top:0px');
|
||||
//스크롤 위치로 자리 이동
|
||||
window.scrollTo( 0, viewScrollY);
|
||||
//변수 초기화
|
||||
viewScrollY = 0;
|
||||
|
||||
$("#modalBox .modal").modal("hide");
|
||||
|
||||
modalArr.pop();
|
||||
// $("#modalBox").children().remove(); // 삭제 확인 필요
|
||||
},
|
||||
success : function(tit, msg, callback){
|
||||
//alert 팝업
|
||||
//$(".modal_success .btn-Success").unbind("click");
|
||||
|
||||
if($("#modalBox > .popupColored").length > 0){
|
||||
modalEvent.close();
|
||||
}
|
||||
|
||||
// 모달 아이디 생성
|
||||
let nowMilli = Date.now();
|
||||
let targetId = "modal_success"+nowMilli;
|
||||
|
||||
// 모달 셋팅
|
||||
fn_setSuccessModal(targetId);
|
||||
|
||||
// 현재 모달 설정
|
||||
let target = $("#"+targetId);
|
||||
|
||||
// 모달 열기
|
||||
modalEvent.open(target, tit, msg);
|
||||
|
||||
// 모달 이벤트
|
||||
$("#"+targetId+" .btn-Success").click(function(e){
|
||||
modalEvent.close();
|
||||
|
||||
if(typeof callback != 'undefined' && callback){
|
||||
if(typeof callback == 'function'){
|
||||
callback();
|
||||
}
|
||||
else {
|
||||
if( callback ) {
|
||||
eval( callback );
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
danger : function(tit, msg, callback){
|
||||
//alert 팝업
|
||||
//$(".modal_danger .btn-Success").unbind("click");
|
||||
|
||||
if($("#modalBox > .popupColored").length > 0){
|
||||
modalEvent.close();
|
||||
}
|
||||
|
||||
// 모달 아이디 생성
|
||||
let nowMilli = Date.now();
|
||||
let targetId = "modal_danger"+nowMilli;
|
||||
|
||||
// 모달 셋팅
|
||||
fn_setDangerModal(targetId);
|
||||
|
||||
// 현재 모달 설정
|
||||
let target = $("#"+targetId);
|
||||
|
||||
// 모달 열기
|
||||
modalEvent.open(target, tit, msg);
|
||||
|
||||
// 모달 이벤트
|
||||
$("#"+targetId+" .btn-Success").click(function(e){
|
||||
modalEvent.close();
|
||||
|
||||
if(typeof callback != 'undefined' && callback){
|
||||
if(typeof callback == 'function'){
|
||||
callback();
|
||||
}
|
||||
else {
|
||||
if( callback ) {
|
||||
eval( callback );
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
warning : function(tit, msg, callback){
|
||||
//alert 팝업
|
||||
//$(".modal_warning .btn-Success").unbind("click");
|
||||
|
||||
if($("#modalBox > .popupColored").length > 0){
|
||||
modalEvent.close();
|
||||
}
|
||||
// 모달 아이디 생성
|
||||
let nowMilli = Date.now();
|
||||
let targetId = "modal_warning"+nowMilli;
|
||||
// 모달 셋팅
|
||||
fn_setWarningModal(targetId);
|
||||
// 현재 모달 설정
|
||||
let target = $("#"+targetId);
|
||||
// 모달 열기
|
||||
modalEvent.open(target, tit, msg);
|
||||
|
||||
// 모달 이벤트
|
||||
$("#"+targetId+" .btn-Success").click(function(e){
|
||||
|
||||
modalEvent.close();
|
||||
|
||||
if(typeof callback != 'undefined' && callback){
|
||||
if(typeof callback == 'function'){
|
||||
callback();
|
||||
}
|
||||
else {
|
||||
if( callback ) {
|
||||
eval( callback );
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
info : function(tit, msg, callback, callback2){
|
||||
//alert 팝업
|
||||
//$(".modal_info .btn-Success").unbind("click");
|
||||
|
||||
if($("#modalBox > .popupColored").length > 0){
|
||||
modalEvent.close();
|
||||
}
|
||||
|
||||
// 모달 아이디 생성
|
||||
let nowMilli = Date.now();
|
||||
let targetId = "modal_info"+nowMilli;
|
||||
|
||||
// 모달 셋팅
|
||||
fn_setInfoModal(targetId);
|
||||
|
||||
// 현재 모달 설정
|
||||
let target = $("#"+targetId);
|
||||
|
||||
// 모달 열기
|
||||
modalEvent.open(target, tit, msg);
|
||||
|
||||
// 모달 확인 이벤트
|
||||
$("#"+targetId+" .btn-Success").click(function(e){
|
||||
|
||||
modalEvent.close();
|
||||
|
||||
if(typeof callback != 'undefined' && callback){
|
||||
if(typeof callback == 'function'){
|
||||
callback();
|
||||
} else {
|
||||
if( callback ) {
|
||||
eval( callback );
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// 모달 취소 이벤트
|
||||
$("#"+targetId+" .btn-cancel").click(function(e){
|
||||
modalEvent.close();
|
||||
|
||||
if(typeof callback2 != 'undefined' && callback2){
|
||||
if(typeof callback2 == 'function'){
|
||||
callback2();
|
||||
}
|
||||
else {
|
||||
if( callback2 ) {
|
||||
eval( callback2 );
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 다중 팝업 index 조정
|
||||
$(document).on('show.bs.modal', '.modal', function (event) {
|
||||
let zIndex = 500 + (10 * $('.modal:visible').length);
|
||||
$(this).css('z-index', zIndex);
|
||||
|
||||
setTimeout(function() {
|
||||
$('.modal-backdrop').not('.modal-stack').css('z-index', zIndex - 1).addClass('modal-stack');
|
||||
}, 0);
|
||||
});
|
||||
</script>
|
||||
</th:block>
|
||||
</html>
|
||||
56
src/main/resources/templates/mobile/join/joinAgreement.html
Normal file
56
src/main/resources/templates/mobile/join/joinAgreement.html
Normal file
@@ -0,0 +1,56 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{/mobile/layout/joinLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/mobile/joinAgreement.css">
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_content">
|
||||
<div class="text_box">
|
||||
<p>서비스 가입을 위해<br/>이용약관 동의가 필요합니다.</p>
|
||||
</div>
|
||||
<ul class="agreement_list">
|
||||
<li class="first">
|
||||
<div class="input_box">
|
||||
<input id="service_agreement" type="checkbox" name="join_agreement" value="service_agreement" onChange="fn_checkYn();"/>
|
||||
<label for="service_agreement"><img src="/image/mobile/check.svg" alt="check"/>(필수)서비스 이용 약관</label>
|
||||
</div>
|
||||
<button onClick="location.href='/mobilejoinagreement/joinAgreementService.do'">보기</button>
|
||||
</li>
|
||||
<li>
|
||||
<div class="input_box">
|
||||
<input id="collection_agreement" type="checkbox" name="join_agreement" value="collection_agreement" onChange="fn_checkYn();"/>
|
||||
<label for="collection_agreement"><img src="/image/mobile/check.svg" alt="check"/>(필수)개인정보 수집 및 이용동의</label>
|
||||
</div>
|
||||
<button onClick="location.href='/mobilejoinagreement/joinAgreementCollection.do'">보기</button>
|
||||
</li>
|
||||
<li>
|
||||
<div class="input_box">
|
||||
<input id="marketing_agreement" type="checkbox" name="join_agreement" value="marketing_agreement" onChange="fn_checkYn();"/>
|
||||
<label for="marketing_agreement"><img src="/image/mobile/check.svg" alt="check"/>(선택)마케팅 활용 동의</label>
|
||||
</div>
|
||||
<button onClick="location.href='/mobilejoinagreement/joinAgreementMarketing.do'">보기</button>
|
||||
</li>
|
||||
<li>
|
||||
<div class="input_box">
|
||||
<input id="all_agreement" type="checkbox"/>
|
||||
<label for="all_agreement">전체동의</label>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="button_box">
|
||||
<button id="btn_joinInputIntro">다음</button>
|
||||
</div>
|
||||
|
||||
<form id="loginForm" onsubmit="return false;"></form>
|
||||
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/mobile/join/joinAgreement.js"></script>
|
||||
<script>
|
||||
let snsEmail = '[[${param.snsEmail}]]';
|
||||
let loginType = '[[${param.loginType}]]';
|
||||
</script>
|
||||
</th:block>
|
||||
</html>
|
||||
83
src/main/resources/templates/mobile/join/joinInput.html
Normal file
83
src/main/resources/templates/mobile/join/joinInput.html
Normal file
@@ -0,0 +1,83 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{/mobile/layout/joinLayout}">
|
||||
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/mobile/joinInput.css">
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_content">
|
||||
<div class="text_box">
|
||||
<p>회원가입</p>
|
||||
<p>회원가입을 통해 멤버십 서비스를 이용하실 수 있습니다.</p>
|
||||
</div>
|
||||
<ul class="join_list">
|
||||
<li class="first">
|
||||
<label>아이디</label>
|
||||
<div>
|
||||
<input type="text" id="membershipAccount" placeholder="아이디를 입력해주세요."/>
|
||||
<button onclick="fn_duplicateCheck()" id="duplicateCheckBtn">중복조회</button>
|
||||
</div>
|
||||
</li>
|
||||
<li id="passwordLi">
|
||||
<label>비밀번호</label>
|
||||
<div>
|
||||
<input type="password" id="membershipPassword" placeholder="비밀번호를 입력해주세요."/>
|
||||
</div>
|
||||
<div>
|
||||
<input type="password" id="passwordCheck" placeholder="비밀번호 재확인"/>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<label>성함</label>
|
||||
<div>
|
||||
<input type="text" id="userName" placeholder="성함을 입력해주세요."/>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<label>핸드폰 번호</label>
|
||||
<div>
|
||||
<input type="tel" id="phoneNumber" placeholder="-없이 번호 입력"/>
|
||||
<button id="sendAuthNumBtn" onclick="fn_sendAuthNum()">인증번호 발송</button>
|
||||
</div>
|
||||
<div class="certification_box2" style="display: none">
|
||||
<input id="authNumber" type="password" placeholder="인증번호 입력">
|
||||
<button id="authNumBtn" onClick="fn_selectPhoneAuthCheck()">인증번호 확인</button>
|
||||
</div>
|
||||
<p id="timer" style="color: #3985EA;padding: 10px;margin: auto;"></p>
|
||||
</li>
|
||||
<li>
|
||||
<label>추천인(선택)</label>
|
||||
<div>
|
||||
<input type="text" id="introUser" placeholder="추천인 아이디 입력"/>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="button_box">
|
||||
<button onclick="fn_join();" disabled>완료</button>
|
||||
</div>
|
||||
<form id="loginForm" onsubmit="return false;"></form>
|
||||
<script>
|
||||
</script>
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script type="text/javascript" src="https://cdn.iamport.kr/js/iamport.payment-1.1.8.js"></script>
|
||||
<script src="/js/mobile/join/join.js"></script>
|
||||
<script>
|
||||
let serviceAgreement = "[[${param.serviceAgreement}]]";
|
||||
let collectionAgreement = "[[${param.collectionAgreement}]]";
|
||||
let marketingAgreement = "[[${param.marketingAgreement}]]"===true?"Y":"N";
|
||||
let snsEmail = "[[${param.snsEmail}]]";
|
||||
let loginType = "[[${param.loginType}]]";
|
||||
let impUid = "[(${@environment.getProperty('imp_uid')})]";
|
||||
let pg = "[(${@environment.getProperty('imp.pg')})]";
|
||||
let cpid = "[(${@environment.getProperty('imp.cpid')})]";
|
||||
</script>
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,78 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{/mobile/layout/loginLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/mobile/joinAgreement_sub.css">
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_content">
|
||||
<h1>개인정보 수집 및 이용동의</h1>
|
||||
<p>
|
||||
'더엠유'는 고객님의 개인정보를 중요시하며, "정보통신망 이용촉진 및 정보보호"에 관한 법률을 준수하고 있습니다.<br/>
|
||||
더엠유은 개인정보취급방침을 통하여 고객님께서 제공하시는 개인정보가 어떠한 용도와 방식으로 이용되고 있으며, 개인정보보호를 위해 어떠한 조치가 취해지고 있는지 알려드립니다.<br/>
|
||||
더엠유는 개인정보취급방침을 개정하는 경우 웹사이트 공지사항(또는 개별공지)을 통하여공지할 것입니다.<br/>
|
||||
<br/>
|
||||
ο 본 방침은 : 2024 년 12 월 01 일 부터 시행됩니다.<br/>
|
||||
<br/>
|
||||
■ 수집하는 개인정보 항목<br/>
|
||||
더엠유는 회원가입, 상담, 서비스 신청 등등을 위해 아래와 같은 개인정보를 수집하고 있습니다.<br/>
|
||||
ο 수집항목 : 이름 , 생년월일 , 성별 , 로그인ID , 비밀번호 , 비밀번호 질문과 답변 , 자택 주소 , 휴대전화번호 , 이메일 , 주민등록번호 , 접속 로그 , 접속 IP 정보 , 메일수신여부, SMS수신여부, 가입경로<br/>
|
||||
ο 개인정보 수집방법 : 홈페이지 , 서면양식<br/>
|
||||
<br/>
|
||||
■ 개인정보의 수집 및 이용목적<br/>
|
||||
더엠유는 수집한 개인정보를 다음의 목적을 위해 활용합니다..<br/>
|
||||
ο 서비스 제공에 관한 계약 이행 및 서비스 제공에 따른 요금정산 콘텐츠 제공<br/>
|
||||
ο 회원 관리<br/>
|
||||
회원제 서비스 이용에 따른 본인확인 , 개인 식별 , 불량회원의 부정 이용 방지와 비인가 사용방지 , 가입 의사 확인 , 불만처리 등 민원처리 , 고지사항 전달<br/>
|
||||
ο 마케팅 및 광고에 활용<br/>
|
||||
이벤트 등 광고성 정보 전달 , 접속 빈도 파악 또는 회원의 서비스 이용에 대한 통계<br/>
|
||||
■ 개인정보의 보유 및 이용기간<br/>
|
||||
더엠유는 개인정보 수집 및 이용목적이 달성된 후에는 예외 없이 해당 정보를 지체 없이 파기합니다.<br/>
|
||||
<br/>
|
||||
■ 개인정보의 파기절차 및 방법<br/>
|
||||
더엠유는 원칙적으로 개인정보 수집 및 이용목적이 달성된 후에는 해당 정보를 지체 없이 파기합니다. 파기절차 및 방법은 다음과 같습니다.<br/>
|
||||
ο 파기절차<br/>
|
||||
회원님이 회원가입 등을 위해 입력하신 정보는 목적이 달성된 후 별도의 DB로 옮겨져(종이의 경우 별도의 서류함) 내부 방침 및 기타 관련 법령에 의한 정보보호 사유에 따라(보유 및 이용기간 참조) 일정 기간 저장된 후 파기되어집니다.<br/>
|
||||
별도 DB로 옮겨진 개인정보는 법률에 의한 경우가 아니 고서는 보유되어지는 이외의 다른 목적으로 이용되지 않습니다.<br/>
|
||||
ο 파기방법<br/>
|
||||
- 전자적 파일형태로 저장된 개인정보는 기록을 재생할 수 없는 기술적 방법을<br/>
|
||||
사용하여 삭제합니다.<br/>
|
||||
<br/>
|
||||
■ 개인정보 제공<br/>
|
||||
더엠유는 이용자의 개인정보를 원칙적으로 외부에 제공하지 않습니다. 다만, 아래의 경우에는 예외로 합니다.<br/>
|
||||
이용자들이 사전에 동의한 경우<br/>
|
||||
법령의 규정에 의거하거나, 수사 목적으로 법령에 정해진 절차와 방법에 따라 수사기관<br/>
|
||||
의 요구가 있는 경우<br/>
|
||||
<br/>
|
||||
■ 수집한 개인정보의 위탁<br/>
|
||||
더엠유는 고객님의 동의없이 고객님의 정보를 외부 업체에 위탁하지 않습니다. 향후 그러한 필요가 생길 경우, 위탁 대상자와 위탁 업무 내용에 대해 고객님에게 통지하고 필요한 경우 사전 동의를 받도록 하겠습니다.<br/>
|
||||
■ 이용자 및 법정대리인의 권리와 그 행사방법<br/>
|
||||
이용자 및 법정 대리인은 언제든지 등록되어 있는 자신 혹은 당해 만 14세 미만 아동의 개인정보를 조회하거나 수정할 수 있으며 가입해지를 요청할 수도 있습니다.<br/>
|
||||
이용자 혹은 만 14세 미만 아동의 개인정보 조회 수정을 위해서는 '개인정보변경'(또는 '회원정보수정' 등)을 가입해지(동의철회)를 위해서는 "회원탈퇴"를 클릭하여 본인 확인 절차를 거치신 후 직접 열람, 정정 또는 탈퇴가 가능합니다. 혹은 개인정보관리책임자에게 서면, 전화 또는 이메일로 연락하시면 지체 없이 조치하겠습니다.<br/>
|
||||
귀하가 개인정보의 오류에 대한 정정을 요청하신 경우에는 정정을 완료하기 전까지 당해 개인정보를 이용 또는 제공하지 않습니다. 또한 잘못된 개인정보를 제3자에게 이미 제공한 경우에는 정정 처리결과를 제3자에게 지체 없이 통지하여 정정이 이루어지도록 하겠습니다.<br/>
|
||||
oo는 이용자 혹은 법정 대리인의 요청에 의해 해지 또는 삭제된 개인정보는 "oo가 수집하는 개인정보의 보유 및 이용기간"에 명시된 바에 따라 처리하고 그 외의용도로 열람 또는 이용 할 수 없도록 처리하고 있습니다.<br/>
|
||||
<br/>
|
||||
■ 개인정보에 관한 민원서비스<br/>
|
||||
더엠유는 고객의 개인정보를 보호하고 개인정보와 관련한 불만을 처리하기 위하여 아래와 같이 관련 부서 및 개인정보관리책임자를 지정하고 있습니다..<br/>
|
||||
고객서비스담당 부서 : 더엠유<br/>
|
||||
더엠유 전화번호 : 02-6959-3228<br/>
|
||||
개인정보관리책임자 성명 : 박준우<br/>
|
||||
전화번호 : 02-6959-3228<br/>
|
||||
귀하께서는 더엠유의 서비스를 이용하시며 발생하는 모든 개인정보보호 관련 민원을 개인정 보관리책임자 혹은 담당부서로 신고하실 수 있습니다. 더엠유는 이용자들의 신고사항에 대해 신속하게 충분한 답변을 드릴 것입니다.<br/>
|
||||
기타 개인정보침해에 대한 신고나 상담이 필요하신 경우에는 아래 기관에 문의하시기 바랍니다.<br/>
|
||||
1.개인분쟁조정위원회 (www.1336.or.kr/1336)<br/>
|
||||
2.정보보호마크인증위원회 (www.eprivacy.or.kr/02-580-0533~4)<br/>
|
||||
3.대검찰청 인터넷범죄수사센터 (http://icic.sppo.go.kr/02-3480-3600)<br/>
|
||||
4.경찰청 사이버테러대응센터 (www.ctrc.go.kr/02-392-0330)<br/>
|
||||
</p>
|
||||
<div class="button_box">
|
||||
<button onClick=history.back()>확인</button>
|
||||
</div>
|
||||
<form id="loginForm" onsubmit="return false;"></form>
|
||||
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_script">
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,36 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{/mobile/layout/loginLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/mobile/joinAgreement_sub.css">
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_content">
|
||||
<h1>마케팅 활용 동의</h1>
|
||||
<p>
|
||||
귀하는 개인(신용)정보의 선택적인 수집∙이용, 제공에 대한 동의를 거부할 수 있습니다.<br/>
|
||||
다만, 동의하지 않을 경우 관련 편의제공(이벤트 안내, 공지사항, 할인행사)안내 등 이용 목적에 따른 혜택에 제한이 있을 수 있습니다.<br/>
|
||||
그 밖에 계약과 관련된 불이익은 없습니다. 동의한 경우에도 귀하는 동의를 철회하거나 마케팅 목적으로 귀하에게 연락하는 것을 중지하도록 요청할 수 있습니다.<br/>
|
||||
제 1조(목적)<br/>
|
||||
(주)더엠유(이하 ‘회사’라 한다)의 더엠유에 관한 모든 관련 서비스(이하 ‘서비스’라 한다)는 회원님에게 보다 다양한 정보를 제공하고, 서비스의 질을 향상시키기 위하여 당사의 제휴사 에게 「개인정보보호법」, 「정보통신망 이용촉진 및 정보보호 등에 관한 법률 」및 「신용정보의 이용 및 보호에 관한 법률」의 규정을 준수하여 회원님의 개인(신용)정보를 제3자에게 상품소개 및 홍보 등 영업목적으로 제공할 수 있습니다.<br/>
|
||||
제 2조(수집 및 활용 관련 정보)<br/>
|
||||
개인정보가 제공되는 비즈니스 파트너사, 제공 정보, 제공된 정보의 이용목적은 아래와 같습니다. 회원님들 중 이 개인정보의 제3자 마케팅 활용동의서 등에 동의하신 회원님들의 정보만이 제공되며, 제공된 정보는 명시된 이용목적을 벗어나 이용되지 않고, 개인정보의 유출 등 사고가 일어나지 않도록 더욱 철저한 보안이 이루어지도록 노력하고 있습니다.<br/>
|
||||
제 3조(제3자 정보제공의 동의 철회)<br/>
|
||||
본 동의서에 동의하고 가입하신 신규회원 중 제3자 정보제공을 철회하고 싶은 회원은 이미 제3자에게 제공된 개인정보라 하더라도, 언제든지 열람, 정정, 삭제를 요구할 수 있습니다.<br/>
|
||||
열람, 정정, 삭제 및 정보제공 동의 철회는 더엠유 고객센터(02-6959-3228)를 통해 본인<br/>
|
||||
확인 후 요청할 수 있습니다. 해당 요청의 근거자료를 남기기 위해 해당 통화내역은 녹취될 수 있으며 회원은 이에 동의하는 것으로 간주합니다.<br/>
|
||||
이미 제공된 회원정보를 철회하는 데는 최대 10일의 기간이 소요됩니다. 활용동의 철회를 요청하시더라도 위와 같은 이유로 해당 철회 적용 이전까지 마케팅에 활용 될 수 있음을 알려드립니다.<br/>
|
||||
<br/>
|
||||
회사는 회원님의 소중한 정보를 보호하기 위하여 신속하게 처리되도록 최선의 노력을 다하겠습니다.<br/>
|
||||
</p>
|
||||
<div class="button_box">
|
||||
<button onClick=history.back()>확인</button>
|
||||
</div>
|
||||
<form id="loginForm" onsubmit="return false;"></form>
|
||||
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_script">
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,79 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{/mobile/layout/loginLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/mobile/joinAgreement_sub.css">
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_content">
|
||||
<h1>서비스 이용 약관</h1>
|
||||
<p>
|
||||
[제1장 총칙]<br/>
|
||||
제1조 목적<br/>
|
||||
이 약관은 더엠유이 제공하는 모든 서비스의 이용조건 및 절차에 관한 사항과 기타 필요한 사항을 전기통신사업법 및 동법 시행령이 정하는 대로 준수하고 규정함을 목적으로 합니다.<br/>
|
||||
제2조 약관의 효력과 변경<br/>
|
||||
(1) 이 약관은 이용자에게 공지사항을 통해 공시함으로써 효력을 발생합니다.<br/>
|
||||
(2) 사정 변경의 경우와 영업상 중요 사유가 있을 때 약관을 변경할 수 있으며, 변경된 약관은 전항과 같은 방법으로 효력을 발생합니다.<br/>
|
||||
제3조 약관 외 준칙<br/>
|
||||
이 약관에 명시되지 않은 사항이 관계 법령에 규정되어 있을 경우에는 그 규정에 따릅니다.<br/>
|
||||
<br/>
|
||||
[제2장 회원 가입과 서비스 이용]<br/>
|
||||
제1조 서비스 이용 계약의 성립<br/>
|
||||
(1) 이용 계약은 이용자의 이용 신청에 대한 더엠유의 이용 승낙과 이용자의 약관내용에 대한동의로 성립됩니다.<br/>
|
||||
(2) 회원에 가입하여 서비스를 이용하고자 하는 희망자는 더엠유에서 요청하는 개인신상정보를 제공해야 합니다.<br/>
|
||||
(3) 이용자의 이용신청에 대하여 더엠유이 이를 승낙한 경우, 더엠유은 회원 ID와 기타 필요하다고 인정하는 내용을 이용자에게 통지합니다.<br/>
|
||||
(4) 더엠유은 다음 각 호에 해당하는 이용계약 신청에 대하여는 이를 승낙하지 아니합니다.<br/>
|
||||
가. 다른 사람의 명의를 사용하여 신청하였을 때<br/>
|
||||
나. 본인의 실명으로 신청하지 않았을 때<br/>
|
||||
다. 이용 계약 신청서의 내용을 허위로 기재하였을 때<br/>
|
||||
라. 사회의 안녕과 질서 혹은 미풍양속을 저해할 목적으로 신청하였을 때다.<br/>
|
||||
제2조 서비스 이용 및 제한<br/>
|
||||
(1) 서비스 이용은 업무상 또는 기술상 특별한 지장이 없는 한 연중무휴,1일 24시간을 원칙으로 합니다.<br/>
|
||||
(2) 전항의 서비스 이용시간은 시스템 정기점검 등 협회가 필요한 경우, 회원에게 사전통지 한 후, 제한할 수 있습니다.<br/>
|
||||
<br/>
|
||||
[제3장 의무]<br/>
|
||||
제1조 더엠유의 의무<br/>
|
||||
(1) 더엠유은 특별한 사정이 없는 한 회원이 신청한 서비스 제공 개시일에 서비스를 이용할 수 있도록 합니다.<br/>
|
||||
(2) 더엠유은 이 약관에서 정한 바에 따라 계속적, 안정적으로 서비스를 제공할 의무가 있습니다.<br/>
|
||||
(3) 더엠유은 회원으로부터 소정의 절차에 의해 제기되는 의견에 대해서는 적절한 절차를 거처 처리하며, 처리시 일정 기간이 소요될 경우 회원에게 그 사유와 처리 일정을 알려주어야 합니다.<br/>
|
||||
(4) 더엠유은 회원의 정보를 철저히 보안 유지하며, 양질의 서비스를 운영하거나 개선하는 데에만 사용하고, 이외의 다른 목적으로 타 기관 및 개인에게 양도하지 않습니다.<br/>
|
||||
제2조 회원의 의무<br/>
|
||||
(1) ID와 비밀번호에 관한 모든 관리의 책임은 회원에게 있습니다.<br/>
|
||||
(2) 회원은 서비스의 일부로 보내지는 더엠유의 전자우편 및 광고 정보를 받는 것에 동의합니다.<br/>
|
||||
(3) 자신의 ID가 부정하게 사용된 경우, 회원은 반드시 더엠유에 그 사실을 통보해야 합니다.<br/>
|
||||
(4) 회원은 이 약관 및 관계 법령에서 규정한 사항을 준수하여야 합니다.<br/>
|
||||
<br/>
|
||||
[제4장 계약 해지 및 서비스 이용 제한]<br/>
|
||||
제1조 계약 해지 및 이용 제한<br/>
|
||||
(1) 회원이 이용 계약을 해지하고자 하는 때에는 회원 본인이 직접 더엠유서비스를 이용하여 서비스 해지신청을 요청해야 합니다.<br/>
|
||||
(2) 이름, 주민등록번호, ID를 입력하여 본인임을 확인한 후 , 해지 확인을 선택하면 자동으로 가입 해지됩니다.<br/>
|
||||
(3) 가입해지 여부는 기존의 ID, 비밀번호로 로그인이 되지 않으면 해지된 것이며, 한번 해지된 ID는 기존 사용자 라도 사용할 수 없음을 알려드립니다.<br/>
|
||||
(4) 더엠유은 회원이 다음 사항에 해당하는 행위를 하였을 경우, 사전 통지 없이 이용 계약을 해지하거나 또는 기간을 정하여 서비스 이용을 중지할 수 있습니다.<br/>
|
||||
가. 공공 질서 및 미풍 양속에 반하는 경우<br/>
|
||||
나. 범죄적 행위에 관련되는 경우<br/>
|
||||
다. 국익 또는 사회적 공익을 저해할 목적으로 서비스 이용을 계획 또는 실행할 경우<br/>
|
||||
라. 타인의 ID 및 비밀번호를 도용한 경우<br/>
|
||||
마. 타인의 명예를 손상시키거나 불이익을 주는 경우<br/>
|
||||
바. 같은 사용자가 다른 ID로 이중 등록을 한 경우<br/>
|
||||
사. 서비스에 위해를 가하는 등 건전한 이용을 저해하는 경우<br/>
|
||||
아. 기타 관련 법령이나 협회가 정한 이용조건에 위배되는 경우<br/>
|
||||
제2조 이용 제한의 해제 절차<br/>
|
||||
(1) 더엠유은 이용 제한을 하고자 하는 경우에는 그 사유, 일시 및 기간을 정하여 서면 또는 전화 등의 방법을 이용하여 해당 회원 또는 대리인에게 통지합니다.<br/>
|
||||
(2) 다만, 더엠유이 긴급하게 이용을 중지해야 할 필요가 있다고 인정하는 경우에는 전항의 과정없이 서비스 이용을 제한할 수 있습니다.<br/>
|
||||
(3) 제4장 제2조 1항의 규정에 의하여 서비스 이용중지를 통지 받은 회원 또는 그 대리인은 이용 중지에 대하여 이의가 있을 경우 이의신청을 할 수 있습니다.<br/>
|
||||
(4) 더엠유은 이용중지 기간 중에 그 이용중지 사유가 해소된 것이 확인된 경우에 한하여 이용중지 조치를 즉시 해제합니다.<br/>
|
||||
<br/>
|
||||
제3조회원의 게시물 관리<br/>
|
||||
더엠유은 회원이 게시하거나 등록한 내용물이 다음 사항에 해당된다고 판단되는 경우에 사전 통지 없이 삭제할 수 있습니다.<br/>
|
||||
(1) 타인을 비방하거나 중상모략으로 개인 및 단체의 명예를 손상시키는 내용인 경우<br/>
|
||||
(2) 공공질서 및 미풍양속에 위반되는 내용인 경우<br/>
|
||||
(3) 범죄적 행위에 부합된다고 인정되는 내용인 경우<br/>
|
||||
(4) 타인의 저작권 등 기타의 권리를 침해하는 내용인 경우<br/>
|
||||
(5) 기타 관계 법령이나 더엠유에서 정한 규정에 위배되는 내용인 경우<br/>
|
||||
</p>
|
||||
<div class="button_box">
|
||||
<button onClick=history.back()>확인</button>
|
||||
</div>
|
||||
</th:block>
|
||||
</html>
|
||||
28
src/main/resources/templates/mobile/layout/detailLayout.html
Normal file
28
src/main/resources/templates/mobile/layout/detailLayout.html
Normal file
@@ -0,0 +1,28 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
|
||||
<head>
|
||||
<th:block th:replace="/mobile/include/head :: layout_head"></th:block>
|
||||
<th:block layout:fragment="layout_menu_css"></th:block>
|
||||
</head>
|
||||
|
||||
<body id="body2">
|
||||
<th:block layout:fragment="layout_top_script"></th:block>
|
||||
|
||||
<div class="project_wrap">
|
||||
<th:block th:replace="/mobile/common/header1 :: layout_header_type1"></th:block>
|
||||
<main>
|
||||
<th:block layout:fragment="layout_content"></th:block>
|
||||
</main>
|
||||
<th:block layout:fragment="layout_photoswipe"></th:block>
|
||||
</div>
|
||||
|
||||
|
||||
<th:block layout:fragment="layout_right_modal"></th:block>
|
||||
|
||||
<th:block layout:fragment="layout_popup"></th:block>
|
||||
|
||||
<th:block layout:fragment="layout_script"></th:block>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,28 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
|
||||
<head>
|
||||
<th:block th:replace="/mobile/include/head :: layout_head"></th:block>
|
||||
<th:block layout:fragment="layout_menu_css"></th:block>
|
||||
</head>
|
||||
|
||||
<body id="body2">
|
||||
<th:block layout:fragment="layout_top_script"></th:block>
|
||||
|
||||
<div class="project_wrap">
|
||||
<th:block th:replace="/mobile/common/header4 :: layout_header_type1"></th:block>
|
||||
<main>
|
||||
<th:block layout:fragment="layout_content"></th:block>
|
||||
</main>
|
||||
<th:block layout:fragment="layout_photoswipe"></th:block>
|
||||
</div>
|
||||
|
||||
|
||||
<th:block layout:fragment="layout_right_modal"></th:block>
|
||||
|
||||
<th:block layout:fragment="layout_popup"></th:block>
|
||||
|
||||
<th:block layout:fragment="layout_script"></th:block>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,5 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
|
||||
</html>
|
||||
31
src/main/resources/templates/mobile/layout/homeLayout.html
Normal file
31
src/main/resources/templates/mobile/layout/homeLayout.html
Normal file
@@ -0,0 +1,31 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
|
||||
<head>
|
||||
<th:block th:replace="/mobile/include/head :: layout_head"></th:block>
|
||||
<th:block layout:fragment="layout_menu_css"></th:block>
|
||||
</head>
|
||||
|
||||
<body id="body2">
|
||||
<th:block layout:fragment="layout_top_script"></th:block>
|
||||
|
||||
<div class="project_wrap">
|
||||
<th:block th:replace="/mobile/common/header2 :: layout_header_type1"></th:block>
|
||||
<main>
|
||||
<th:block layout:fragment="layout_content"></th:block>
|
||||
</main>
|
||||
<footer>
|
||||
<th:block th:replace="/mobile/common/footer :: layout_footer"></th:block>
|
||||
</footer>
|
||||
<th:block layout:fragment="layout_photoswipe"></th:block>
|
||||
</div>
|
||||
|
||||
|
||||
<th:block layout:fragment="layout_right_modal"></th:block>
|
||||
|
||||
<th:block layout:fragment="layout_popup"></th:block>
|
||||
|
||||
<th:block layout:fragment="layout_script"></th:block>
|
||||
</body>
|
||||
</html>
|
||||
28
src/main/resources/templates/mobile/layout/joinLayout.html
Normal file
28
src/main/resources/templates/mobile/layout/joinLayout.html
Normal file
@@ -0,0 +1,28 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
|
||||
<head>
|
||||
<th:block th:replace="/mobile/include/head :: layout_head"></th:block>
|
||||
<th:block layout:fragment="layout_menu_css"></th:block>
|
||||
</head>
|
||||
|
||||
<body id="body2">
|
||||
<th:block layout:fragment="layout_top_script"></th:block>
|
||||
|
||||
<div class="project_wrap">
|
||||
<th:block th:replace="/mobile/common/header1 :: layout_header_type1"></th:block>
|
||||
<main>
|
||||
<th:block layout:fragment="layout_content"></th:block>
|
||||
</main>
|
||||
<th:block layout:fragment="layout_photoswipe"></th:block>
|
||||
</div>
|
||||
|
||||
|
||||
<th:block layout:fragment="layout_right_modal"></th:block>
|
||||
|
||||
<th:block layout:fragment="layout_popup"></th:block>
|
||||
|
||||
<th:block layout:fragment="layout_script"></th:block>
|
||||
</body>
|
||||
</html>
|
||||
16
src/main/resources/templates/mobile/layout/layout.html
Normal file
16
src/main/resources/templates/mobile/layout/layout.html
Normal file
@@ -0,0 +1,16 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
|
||||
<head>
|
||||
<th:block th:replace="/mobile/include/emptyHead :: layout_head"></th:block>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<th:block layout:fragment="layout_top_script"></th:block>
|
||||
|
||||
<th:block layout:fragment="layout_content"></th:block>
|
||||
|
||||
<th:block layout:fragment="layout_script"></th:block>
|
||||
</body>
|
||||
</html>
|
||||
18
src/main/resources/templates/mobile/layout/loginLayout.html
Normal file
18
src/main/resources/templates/mobile/layout/loginLayout.html
Normal file
@@ -0,0 +1,18 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
|
||||
<head>
|
||||
<th:block th:replace="/mobile/include/head :: layout_head"></th:block>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<th:block layout:fragment="layout_top_script"></th:block>
|
||||
<div class="project_wrap">
|
||||
<main>
|
||||
<th:block layout:fragment="layout_content"></th:block>
|
||||
</main>
|
||||
</div>
|
||||
<th:block layout:fragment="layout_script"></th:block>
|
||||
</body>
|
||||
</html>
|
||||
28
src/main/resources/templates/mobile/layout/noticeLayout.html
Normal file
28
src/main/resources/templates/mobile/layout/noticeLayout.html
Normal file
@@ -0,0 +1,28 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
|
||||
<head>
|
||||
<th:block th:replace="/mobile/include/head :: layout_head"></th:block>
|
||||
<th:block layout:fragment="layout_menu_css"></th:block>
|
||||
</head>
|
||||
|
||||
<body id="body2">
|
||||
<th:block layout:fragment="layout_top_script"></th:block>
|
||||
|
||||
<div class="project_wrap">
|
||||
<th:block th:replace="/mobile/common/header3 :: layout_header_type1"></th:block>
|
||||
<main>
|
||||
<th:block layout:fragment="layout_content"></th:block>
|
||||
</main>
|
||||
<th:block layout:fragment="layout_photoswipe"></th:block>
|
||||
</div>
|
||||
|
||||
|
||||
<th:block layout:fragment="layout_right_modal"></th:block>
|
||||
|
||||
<th:block layout:fragment="layout_popup"></th:block>
|
||||
|
||||
<th:block layout:fragment="layout_script"></th:block>
|
||||
</body>
|
||||
</html>
|
||||
55
src/main/resources/templates/mobile/login/login.html
Normal file
55
src/main/resources/templates/mobile/login/login.html
Normal file
@@ -0,0 +1,55 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{/mobile/layout/loginLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/mobile/login.css?v1.1">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script src="https://t1.kakaocdn.net/kakao_js_sdk/2.1.0/kakao.min.js" integrity="sha384-dpu02ieKC6NUeKFoGMOKz6102CLEWi9+5RQjWSV0ikYSFFd8M3Wp2reIcquJOemx" crossorigin="anonymous"></script>
|
||||
<script type="text/javascript" src="https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js"></script>
|
||||
<script src="/js/mobile/naverLogin_SDK_2.0.2.js"></script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<body>
|
||||
<div>
|
||||
<img class="logo" src="/image/mobile/logo.svg" alt="logo"/>
|
||||
<div class="text_box">
|
||||
<p>안녕하세요<br/>메이드유의원입니다.</p>
|
||||
<p>멤버십 서비스 이용을 위해 로그인 해주세요.</p>
|
||||
</div>
|
||||
<ul class="login_list">
|
||||
<li><input type="text" id="loginId" placeholder="계정명"/></li>
|
||||
<li><input type="password" id="password" placeholder="비밀번호"/></li>
|
||||
<li><button class="login_btn" id="btnLogin">멤버십 로그인</button></li>
|
||||
</ul>
|
||||
<ul class="loginPage_list">
|
||||
<li><a href="/mobilejoin/joinIntro.do">회원가입</a></li>
|
||||
<li><a href="/mobileuser/selectUserIdIntro.do">계정 찾기</a></li>
|
||||
<li><a href="/mobileuser/selectUserPasswordIntro.do">비밀번호 찾기</a></li>
|
||||
</ul>
|
||||
<ul class="loginWay_list">
|
||||
<li>
|
||||
<button class="kakao_btn" onclick="loginWithKakao()"><img src="/image/mobile/KakaoTalk.svg" alt="카카오톡"/>Kakao 아이디로 로그인</button>
|
||||
</li>
|
||||
<li>
|
||||
<button class="naver_btn" id="naverLogin" ><img src="/image/mobile/naver.svg" alt="네이버"/>Naver 아이디로 로그인</button>
|
||||
</li>
|
||||
<li style="display:none;">
|
||||
<button class="apple_btn"><img id="appleid-signin" class="apple" src="/image/mobile/apple_M.svg">애플 아이디로 로그인</button>
|
||||
</li>
|
||||
<div id="naverIdLogin" style="display:none;"></div>
|
||||
</ul>
|
||||
</div>
|
||||
<form id="loginForm" onsubmit="return false;"></form>
|
||||
</body>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/mobile/login/login.js"></script>
|
||||
<script>
|
||||
let snsEmail = '[[${param.snsEmail}]]';
|
||||
let loginType = '[[${param.loginType}]]';
|
||||
</script>
|
||||
</th:block>
|
||||
</html>
|
||||
153
src/main/resources/templates/mobile/login/login_apple.html
Normal file
153
src/main/resources/templates/mobile/login/login_apple.html
Normal file
@@ -0,0 +1,153 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{/web/layout/layout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/web/loginCallback.css?v1.1">
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script>
|
||||
|
||||
</script>
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_content">
|
||||
<div class="project_wrap">
|
||||
<div class="content_wrap">
|
||||
<div class="content_box">
|
||||
<img class="center_logo" src="/image/web/center_logo.svg">
|
||||
|
||||
<div class="form_wrap">
|
||||
<!--input-->
|
||||
<div class="input_wrap">
|
||||
<p id="commentP"></p>
|
||||
<p id="email"></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="button_wrap" id="buttonWrap">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script type="text/javascript" src="https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js"></script>
|
||||
<script type="text/javascript">
|
||||
let appleParam = '[[${param}]]';
|
||||
let appleIdToken = '[[${param.id_token}]]';
|
||||
let appleCode = '[[${param.code}]]';
|
||||
let appleState = '[[${param.state}]]';
|
||||
let sessionNtUserId = "[[${session.ntUserId}]]";
|
||||
|
||||
$(function(){
|
||||
getDeviceInfo();
|
||||
fn_getUserInfo();
|
||||
});
|
||||
|
||||
function fn_getUserInfo(){
|
||||
if(''==appleIdToken){
|
||||
modalEvent.danger("로그인 오류", "조회 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
|
||||
}else{
|
||||
let jwtPayload = appleIdToken.split(".")[1];
|
||||
|
||||
payloadResult = fn_getToken(jwtPayload);
|
||||
|
||||
let email = payloadResult.email;
|
||||
|
||||
if(''==email){
|
||||
modalEvent.danger("로그인 오류", "조회 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
|
||||
}else{
|
||||
fn_selectEmailCheck(email);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function fn_selectEmailCheck(param){
|
||||
let formData = new FormData();
|
||||
formData.append("email", param);
|
||||
formData.append("snsType", "A");
|
||||
|
||||
$.ajax({
|
||||
url: '/webuser/selectEmailCheck.do',
|
||||
data: formData,
|
||||
dataType: "json",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
type: 'POST',
|
||||
success: function(data){
|
||||
if(data.msgCode=='0'){
|
||||
if(0<data.rows.length){
|
||||
ntUserId = data.rows[0].ntUserId;
|
||||
fn_snsLogin();
|
||||
// if('Y'==data.rows[0].appleYn){
|
||||
// }else{
|
||||
// $('#commentP').text("이미 가입된 아이디가 있습니다.");
|
||||
// $('#buttonWrap').append('<button type="button" class="btn" onclick="javascript:fn_insertSnsLogin();">애플로 연결하기</button>');
|
||||
// }
|
||||
// $('#email').val(email);
|
||||
}else{
|
||||
$('#commentP').text("회원을 찾을 수 없습니다. 회원가입을 하시겠습니까?");
|
||||
$('#buttonWrap').append('<button type="button" class="btn" onclick="javascript:fn_insertSnsUser(\''+param+'\');">가입하기</button>');
|
||||
}
|
||||
}
|
||||
},
|
||||
error : function(xhr, status, error) {
|
||||
modalEvent.danger("로그인 오류", "조회 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/*****************************************
|
||||
* sns 회원가입 이동
|
||||
******************************************/
|
||||
function fn_insertSnsUser(param){
|
||||
fn_leftFormAction("/mobilejoin/joinIntro.do?snsEmail="+param+"&loginType=A");
|
||||
}
|
||||
|
||||
/*****************************************
|
||||
* sns 로그인
|
||||
******************************************/
|
||||
function fn_snsLogin(){
|
||||
|
||||
// 로그인할 때 한 번 더 호출
|
||||
getDeviceInfo();
|
||||
|
||||
let formData = new FormData();
|
||||
formData.append("ntUserId", ntUserId);
|
||||
formData.append("loginType", "A");
|
||||
formData.append("loginId", snsEmail);
|
||||
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: '/mobilelogin/snsLogin.do',
|
||||
data: formData,
|
||||
dataType: "json",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
type: 'POST',
|
||||
success: function(data){
|
||||
if(data.msgCode=='0'){
|
||||
setLoginInfo(snsEmail, "", "A");
|
||||
// fn_leftFormAction("/mobilehome/homeIntro.do");
|
||||
fn_leftFormAction("/home");
|
||||
}else{
|
||||
modalEvent.danger("로그인 오류", data.msgDesc);
|
||||
}
|
||||
},
|
||||
error : function(xhr, status, error) {
|
||||
modalEvent.danger("로그인 오류", "조회 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
</th:block>
|
||||
</html>
|
||||
181
src/main/resources/templates/mobile/login/login_kakao.html
Normal file
181
src/main/resources/templates/mobile/login/login_kakao.html
Normal file
@@ -0,0 +1,181 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{/mobile/layout/layout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/mobile/loginCallback.css?v1.1">
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script>
|
||||
|
||||
</script>
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_content">
|
||||
<div class="project_wrap">
|
||||
<div class="content_wrap">
|
||||
<div class="content_box">
|
||||
<img class="center_logo" src="/image/mobile/logo.svg">
|
||||
|
||||
<div class="form_wrap">
|
||||
<!--input-->
|
||||
<div class="input_wrap">
|
||||
<p id="commentP"></p>
|
||||
<p id="email"></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="button_wrap" id="buttonWrap">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="https://t1.kakaocdn.net/kakao_js_sdk/2.1.0/kakao.min.js" integrity="sha384-dpu02ieKC6NUeKFoGMOKz6102CLEWi9+5RQjWSV0ikYSFFd8M3Wp2reIcquJOemx" crossorigin="anonymous"></script>
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
getDeviceInfo();
|
||||
});
|
||||
|
||||
// 참고 : https://kindloveit.tistory.com/107
|
||||
Kakao.init('5b8e8d554e06d9b6cd5f1fb628ed301a'); // 사용하려는 앱의 JavaScript 키 입력
|
||||
//Kakao.init('9e31b5d35f4839ee691ec1ae8708ea08');
|
||||
|
||||
let kakaoCode = '[[${param.code}]]';
|
||||
let muUserId = '';
|
||||
let email = '';
|
||||
let snsEmail = '';
|
||||
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: 'https://kauth.kakao.com/oauth/token',
|
||||
data: {
|
||||
grant_type : 'authorization_code',
|
||||
client_id : '5d423b802dd87624f2bee084740cb97a',
|
||||
redirect_uri : 'http://nrm.madeu.co.kr/mobilesnslogin/kakaoLoginCallBackIntro.do',
|
||||
// redirect_uri : 'http://localhost:8080/mobilesnslogin/kakaoLoginCallBackIntro.do',
|
||||
code : kakaoCode
|
||||
},
|
||||
contentType: 'application/x-www-form-urlencoded;charset=utf-8',
|
||||
dataType: null,
|
||||
success: function(response) {
|
||||
Kakao.Auth.setAccessToken(response.access_token);
|
||||
|
||||
fn_getUserInfo();
|
||||
},
|
||||
error: function(jqXHR, error) {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
function fn_getUserInfo(){
|
||||
|
||||
Kakao.API.request({
|
||||
url: '/v2/user/me'
|
||||
})
|
||||
.then(function(res){
|
||||
let snsUserId = res.id;
|
||||
let userEmail = res.kakao_account.email;
|
||||
snsEmail = res.kakao_account.email;
|
||||
|
||||
fn_selectEmailCheck(userEmail);
|
||||
|
||||
})
|
||||
.catch(function(err){
|
||||
modalEvent.danger("", ""+err.code);
|
||||
});
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* 아이디 확인
|
||||
****************************************************************************/
|
||||
function fn_selectEmailCheck(param){
|
||||
let formData = new FormData();
|
||||
formData.append("email", param);
|
||||
formData.append("loginType", "K");
|
||||
|
||||
$.ajax({
|
||||
url: '/mobileuser/selectEmailCheck.do',
|
||||
data: formData,
|
||||
dataType: "json",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
type: 'POST',
|
||||
success: function(data){
|
||||
if(data.msgCode=='0'){
|
||||
if(0<data.rows.length){
|
||||
muUserId = data.rows[0].muUserId;
|
||||
fn_snsLogin();
|
||||
// if('Y'==data.rows[0].kakaoYn){
|
||||
// fn_snsLogin();
|
||||
// }else{
|
||||
// $('#commentP').text("이미 가입된 아이디가 있습니다.");
|
||||
// $('#buttonWrap').append('<button type="button" class="btn" onclick="javascript:fn_insertSnsLogin();">카카오로 연결하기</button>');
|
||||
// }
|
||||
// $('#email').val(email);
|
||||
}else{
|
||||
$('#commentP').text("회원을 찾을 수 없습니다. 회원가입을 하시겠습니까?");
|
||||
$('#buttonWrap').append('<button type="button" class="btn" onclick="javascript:fn_insertSnsUser(\''+param+'\');">가입하기</button>');
|
||||
}
|
||||
}
|
||||
},
|
||||
error : function(xhr, status, error) {
|
||||
modalEvent.danger("로그인 오류", "조회 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/*****************************************
|
||||
* sns 회원가입 이동
|
||||
******************************************/
|
||||
function fn_insertSnsUser(param){
|
||||
fn_leftFormAction("/mobilejoin/joinIntro.do?snsEmail="+param+"&loginType=K");
|
||||
}
|
||||
|
||||
/*****************************************
|
||||
* sns 로그인
|
||||
******************************************/
|
||||
function fn_snsLogin(){
|
||||
|
||||
// 로그인할 때 한 번 더 호출
|
||||
getDeviceInfo();
|
||||
|
||||
let formData = new FormData();
|
||||
formData.append("loginType", "K");
|
||||
formData.append("loginId", snsEmail);
|
||||
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: '/mobilelogin/snsLogin.do',
|
||||
data: formData,
|
||||
dataType: "json",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
type: 'POST',
|
||||
success: function(data){
|
||||
if(data.msgCode=='0'){
|
||||
setLoginInfo(snsEmail, "", "K");
|
||||
// fn_leftFormAction("/mobilehome/homeIntro.do");
|
||||
fn_leftFormAction("/home");
|
||||
}else{
|
||||
modalEvent.danger("로그인 오류", data.msgDesc);
|
||||
}
|
||||
},
|
||||
error : function(xhr, status, error) {
|
||||
modalEvent.danger("로그인 오류", "조회 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
</th:block>
|
||||
</html>
|
||||
156
src/main/resources/templates/mobile/login/login_naver.html
Normal file
156
src/main/resources/templates/mobile/login/login_naver.html
Normal file
@@ -0,0 +1,156 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{/mobile/layout/layout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/mobile/loginCallback.css?v1.1">
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script>
|
||||
|
||||
</script>
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_content">
|
||||
<div class="project_wrap">
|
||||
<div class="content_wrap">
|
||||
<div class="content_box">
|
||||
<img class="center_logo" src="/image/mobile/logo.svg">
|
||||
|
||||
<div class="form_wrap">
|
||||
<!--input-->
|
||||
<div class="input_wrap">
|
||||
<p id="commentP"></p>
|
||||
<p id="email"></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="button_wrap" id="buttonWrap">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/mobile/naverLogin_SDK_2.0.2.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
getDeviceInfo();
|
||||
});
|
||||
|
||||
let ntUserId = '';
|
||||
let email = '';
|
||||
let snsEmail = '';
|
||||
|
||||
|
||||
var clientId = "EhgHX46SiQBMflqt41YB";
|
||||
|
||||
var naverLogin = new naver.LoginWithNaverId({
|
||||
clientId: clientId
|
||||
});
|
||||
|
||||
naverLogin.init();
|
||||
|
||||
$(function(){
|
||||
naverLogin.getLoginStatus(function (status){
|
||||
if(status){
|
||||
let userEmail = naverLogin.user.email;
|
||||
snsEmail = naverLogin.user.email;
|
||||
|
||||
fn_selectEmailCheck(userEmail);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
/****************************************************************************
|
||||
* 아이디 확인
|
||||
****************************************************************************/
|
||||
function fn_selectEmailCheck(param){
|
||||
let formData = new FormData();
|
||||
formData.append("email", param);
|
||||
formData.append("loginType", "N");
|
||||
|
||||
$.ajax({
|
||||
url: '/mobileuser/selectEmailCheck.do',
|
||||
data: formData,
|
||||
dataType: "json",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
type: 'POST',
|
||||
success: function(data){
|
||||
if(data.msgCode=='0'){
|
||||
if(0<data.rows.length){
|
||||
muUserId = data.rows[0].muUserId;
|
||||
fn_snsLogin();
|
||||
// if('Y'==data.rows[0].naverYn){
|
||||
// fn_snsLogin();
|
||||
// }else{
|
||||
// $('#commentP').text("이미 가입된 아이디가 있습니다.");
|
||||
// $('#buttonWrap').append('<button type="button" class="btn" onclick="javascript:fn_insertSnsLogin();">네이버로 연결하기</button>');
|
||||
// }
|
||||
// $('#email').val(email);
|
||||
}else{
|
||||
$('#commentP').text("회원을 찾을 수 없습니다. 회원가입을 하시겠습니까?");
|
||||
$('#buttonWrap').append('<button type="button" class="btn" onclick="javascript:fn_insertSnsUser(\''+param+'\');">가입하기</button>');
|
||||
}
|
||||
}
|
||||
},
|
||||
error : function(xhr, status, error) {
|
||||
modalEvent.danger("로그인 오류", "조회 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/*****************************************
|
||||
* sns 회원가입 이동
|
||||
******************************************/
|
||||
function fn_insertSnsUser(param){
|
||||
fn_leftFormAction("/mobilejoin/joinIntro.do?snsEmail="+param+"&loginType=N");
|
||||
}
|
||||
|
||||
/*****************************************
|
||||
* sns 로그인
|
||||
******************************************/
|
||||
function fn_snsLogin(){
|
||||
|
||||
// 로그인할 때 한 번 더 호출
|
||||
getDeviceInfo();
|
||||
|
||||
let formData = new FormData();
|
||||
formData.append("muUserId", muUserId);
|
||||
formData.append("loginType", "N");
|
||||
formData.append("loginId", snsEmail);
|
||||
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: '/mobilelogin/snsLogin.do',
|
||||
data: formData,
|
||||
dataType: "json",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
type: 'POST',
|
||||
success: function(data){
|
||||
if(data.msgCode=='0'){
|
||||
setLoginInfo(snsEmail, "", "N");
|
||||
// fn_leftFormAction("/mobilehome/homeIntro.do");
|
||||
fn_leftFormAction("/home");
|
||||
}else{
|
||||
modalEvent.danger("로그인 오류", data.msgDesc);
|
||||
}
|
||||
},
|
||||
error : function(xhr, status, error) {
|
||||
modalEvent.danger("로그인 오류", "조회 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,30 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{/mobile/layout/detailLayout2}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/mobile/medicalInfo_detail.css">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script>
|
||||
let muAppContentId = "[[${param.muAppContentId}]]";
|
||||
let referMenu = "[[${param.referMenu}]]";
|
||||
let referTap = "[[${param.referTap}]]";
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<div class="banner_box">
|
||||
<div class="img_box"></div>
|
||||
<div class="text_box">
|
||||
</div>
|
||||
</div>
|
||||
<div class="content_box">
|
||||
<p class="article"></p>
|
||||
<div><!--이미지--></div>
|
||||
</div>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/mobile/medical/selectMedical.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,95 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{/mobile/layout/homeLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/mobile/medicalInfo.css">
|
||||
<link rel="stylesheet" href="/css/mobile/swiper-bundle.min.css">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script src="/js/mobile/swiper-bundle.min.js"></script>
|
||||
<script>
|
||||
let categoryCode = "[[${categoryCode}]]";
|
||||
let referMenu = "[[${param.referMenu}]]";
|
||||
let referTap = "[[${param.referTap}]]";
|
||||
</script>
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_content">
|
||||
<div class="tab_panel" role="tabpanel">
|
||||
<div class="banner_box">
|
||||
<div class="homeSwiper">
|
||||
<div class="swiper-wrapper">
|
||||
</div>
|
||||
<div class="swiper-pagination"></div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Tabs -->
|
||||
<div class="nav_box">
|
||||
<ul class="nav nav-tabs" role="tablist">
|
||||
<li role="presentation" class="navTap active" id="navTap_popularity">
|
||||
<a href="#popularity" aria-controls="popularity" role="tab" data-toggle="tab" data-code="popular">
|
||||
<p data-code="popular">인기시술</p>
|
||||
</a>
|
||||
</li>
|
||||
<li role="presentation" class="navTap" id="navTap_petit">
|
||||
<a href="#petit" aria-controls="petit" role="tab" data-toggle="tab" data-code="petit">
|
||||
<p data-code="petit">쁘띠</p>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li role="presentation" class="navTap" id="navTap_skin">
|
||||
<a href="#skin" aria-controls="skin" role="tab" data-toggle="tab" data-code="skin">
|
||||
<p data-code="skin">피부</p>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li role="presentation" class="navTap" id="navTap_diet">
|
||||
<a href="#diet" aria-controls="diet" role="tab" data-toggle="tab" data-code="fat">
|
||||
<p data-code="fat">다이어트</p>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- Tab panes -->
|
||||
<div class="tab-content">
|
||||
<div role="tabpanel" class="tabContent tab-pane popularity active" id="popularity">
|
||||
<div class="popular_box first">
|
||||
<p class="title">30대 인기 시술</p>
|
||||
<p>30대 고객님에게 인기 있는 시술 정보</p>
|
||||
<ul class="list_box">
|
||||
</ul>
|
||||
</div>
|
||||
<div class="popular_box">
|
||||
<p class="title">겨울철 인기 시술</p>
|
||||
<p>건조한 겨울철 인기 있는 시술 정보</p>
|
||||
<ul class="list_box">
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div role="tabpanel" class="tabContent tab-pane pretty" id="petit">
|
||||
<div class="medical_box">
|
||||
<ul class="list_box">
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div role="tabpanel" class="tabContent tab-pane skin" id="skin">
|
||||
<div class="medical_box">
|
||||
<ul class="list_box">
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div role="tabpanel" class="tabContent tab-pane diet" id="diet">
|
||||
<div class="medical_box">
|
||||
<ul class="list_box">
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<form id="loginForm" onsubmit="return false;"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/mobile/medical/selectMedicalList.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,35 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{/mobile/layout/detailLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/mobile/mypage_charging_detail.css">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script>
|
||||
let membershipSearchDate = "[[${param.membershipSearchDate}]]";
|
||||
let sortBy = "[[${param.sortBy}]]";
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<h3>멤버십 충전내역</h3>
|
||||
<div class="list_top">
|
||||
<div class="calendar_box">
|
||||
<div class="date_box"> <!-- 년,월만 나오게 -->
|
||||
<!--<img src="/image/mobile/datepicker.svg" alt="datepicker"/>-->
|
||||
<input type="month" class="date_picker" id="mmDatepicker">
|
||||
</div>
|
||||
</div>
|
||||
<div class="button_box">
|
||||
<button class="on" id="recent">최신순</button><!-- 활성화된 버튼 on 넣어주기 -->
|
||||
<button id="amount">고액순</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="list_btm">
|
||||
</div>
|
||||
<form id="loginForm" onsubmit="return false;"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/mobile/membership/selectListMembershipCharge.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,36 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{/mobile/layout/detailLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/mobile/mypage_use_detail.css">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script>
|
||||
let membershipSearchDate = "[[${param.membershipSearchDate}]]";
|
||||
let sortBy = "[[${param.sortBy}]]";
|
||||
</script>
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_content">
|
||||
<h3>멤버십 사용내역</h3>
|
||||
<div class="list_top">
|
||||
<div class="calendar_box">
|
||||
<div class="date_box"> <!-- 년,월만 나오게 -->
|
||||
<!--<img src="/image/mobile/datepicker.svg" alt="datepicker"/>-->
|
||||
<input type="month" class="date_picker" id="mmDatepicker">
|
||||
</div>
|
||||
</div>
|
||||
<div class="button_box">
|
||||
<button class="on" id="recent">최신순</button><!-- 활성화된 버튼 on 넣어주기 -->
|
||||
<button id="amount">고액순</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="list_btm">
|
||||
</div>
|
||||
<form id="loginForm" onsubmit="return false;"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/mobile/membership/selectListMembershipUse.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
112
src/main/resources/templates/mobile/mobileIntro/mobileIntro.html
Normal file
112
src/main/resources/templates/mobile/mobileIntro/mobileIntro.html
Normal file
@@ -0,0 +1,112 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{/mobile/layout/loginLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<body>
|
||||
<div>
|
||||
</div>
|
||||
<form id="loginForm" onsubmit="return false;"></form>
|
||||
</body>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script>
|
||||
$(function(){
|
||||
getDeviceInfo();
|
||||
|
||||
getLoginInfo();
|
||||
});
|
||||
|
||||
/*****************************************
|
||||
* 로그인
|
||||
******************************************/
|
||||
function fn_login(loginId, password) {
|
||||
//로그인 로직 추가
|
||||
let formData = new FormData();
|
||||
formData.append("loginId", loginId);
|
||||
formData.append("password", password);
|
||||
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);
|
||||
|
||||
if(""!=loginId && ""!=password){
|
||||
$.ajax({
|
||||
url: '/mobilelogin/login.do',
|
||||
data: formData,
|
||||
dataType: 'json',
|
||||
processData: false,
|
||||
contentType: false,
|
||||
type: 'POST',
|
||||
async: true,
|
||||
success: function(data){
|
||||
if(data.msgCode=='0'){
|
||||
fn_leftFormAction("/home");
|
||||
}else{
|
||||
fn_leftFormAction("/mobile");
|
||||
}
|
||||
},
|
||||
error : function(xhr, status, error) {
|
||||
modalEvent.danger("로그인 오류", data.msgDesc);
|
||||
},
|
||||
beforeSend:function(){
|
||||
|
||||
},
|
||||
complete:function(){
|
||||
|
||||
}
|
||||
});
|
||||
}else{
|
||||
fn_leftFormAction("/mobile");
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************
|
||||
* sns 로그인
|
||||
******************************************/
|
||||
function fn_snsLogin(loginId, loginType){
|
||||
let formData = new FormData();
|
||||
formData.append("loginId", loginId);
|
||||
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);
|
||||
|
||||
if(""!=loginId && ""!=loginType){
|
||||
$.ajax({
|
||||
url: '/mobilelogin/snsLogin.do',
|
||||
data: formData,
|
||||
dataType: "json",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
type: 'POST',
|
||||
success: function(data){
|
||||
if(data.msgCode=='0'){
|
||||
fn_leftFormAction("/home");
|
||||
}else{
|
||||
fn_leftFormAction("/mobile");
|
||||
}
|
||||
},
|
||||
error : function(xhr, status, error) {
|
||||
modalEvent.danger("로그인 오류", data.msgDesc);
|
||||
}
|
||||
});
|
||||
}else{
|
||||
fn_leftFormAction("/mobile");
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</th:block>
|
||||
</html>
|
||||
114
src/main/resources/templates/mobile/mypage/mypage.html
Normal file
114
src/main/resources/templates/mobile/mypage/mypage.html
Normal file
@@ -0,0 +1,114 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{/mobile/layout/homeLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/mobile/mypage.css">
|
||||
<link rel="stylesheet" href="/css/mobile/swiper-bundle.min.css">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script src="/js/mobile/swiper-bundle.min.js"></script>
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_content">
|
||||
<h1>어서오세요, <th:block>[[${session.mobileLoginName}]]</th:block>님!</h1>
|
||||
<div class="point_box">
|
||||
<div class="text_box">
|
||||
<p>MEMBERSHIP POINT</p>
|
||||
<p id="membershipBalance">- 원</p>
|
||||
<p>충전된 잔여 포인트 금액입니다.<br/>추가 충전이 필요하신 경우, 내원시 담당자에게 요청해주세요.</p>
|
||||
</div>
|
||||
<div class="button_box">
|
||||
<button class="charging_detail_btn" onClick="location.href='/mobilemembership/selectListMembershipChargeIntro.do'">충전내역</button>
|
||||
<button class="use_detail_btn" onClick="location.href='/mobilemembership/selectListMembershipUseIntro.do'">사용내역</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="button_box">
|
||||
<button onClick="location.href='/mobileuserphysical/selectListUserPhysicalIntro.do'">
|
||||
<p>변화된 BMI 기록을 확인하세요</p>
|
||||
<p>신체 기록 확인하기</p>
|
||||
<img src="/image/mobile/arrow_b.svg" alt="arrow"/>
|
||||
</button>
|
||||
</div>
|
||||
<ul class="mypage_list">
|
||||
<!-- 개인 설정 -->
|
||||
<li class="title">개인 설정</li>
|
||||
<li>
|
||||
<a href="/mobileuser/selectUserAccountIntro.do">
|
||||
<div class="img_box">
|
||||
<img src="/image/mobile/mypage_lock.svg" alt="회원정보설정"/>
|
||||
</div>
|
||||
<p>회원정보 설정</p>
|
||||
</a>
|
||||
</li>
|
||||
<!-- 알림 설정 -->
|
||||
<li class="title">알림 설정</li>
|
||||
<li class="push">
|
||||
<div class="img_box">
|
||||
<img src="/image/mobile/mypage_push.svg" alt="기본 push 알림"/>
|
||||
</div>
|
||||
<p>기본 PUSH 알림</p>
|
||||
<div class="switch">
|
||||
<input type="checkbox" id="autoPushYn"/>
|
||||
<label for="autoPushYn"></label>
|
||||
</div>
|
||||
</li>
|
||||
<li class="push">
|
||||
<div class="img_box">
|
||||
<img src="/image/mobile/mypage_push.svg" alt="마케팅 push 알림"/>
|
||||
</div>
|
||||
<p>마케팅 PUSH 알림</p>
|
||||
<div class="switch">
|
||||
<input type="checkbox" id="marketingPushYn"/>
|
||||
<label for="marketingPushYn"></label>
|
||||
</div>
|
||||
</li>
|
||||
<!-- 사용 정보 -->
|
||||
<li class="title">사용 정보</li>
|
||||
<li>
|
||||
<a href="/mobilenotice/selectNoticeIntro.do">
|
||||
<div class="img_box">
|
||||
<img src="/image/mobile/mypage_notice.svg" alt="공지사항"/>
|
||||
</div>
|
||||
<p>공지사항</p>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/mobileuseinfo/selectUseInfoIntro.do">
|
||||
<div class="img_box">
|
||||
<img src="/image/mobile/mypage_error.svg" alt="이용안내"/>
|
||||
</div>
|
||||
<p>이용안내</p>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/mobilecustomerservice/selectListCustomerServiceIntro.do">
|
||||
<div class="img_box">
|
||||
<img src="/image/mobile/mypage_phone.svg" alt="고객센터"/>
|
||||
</div>
|
||||
<p>고객센터</p>
|
||||
</a>
|
||||
</li>
|
||||
<li class="last">
|
||||
<a onclick="fn_logout();">
|
||||
<div class="img_box">
|
||||
<img src="/image/mobile/mypage_logout.svg" alt="로그아웃"/>
|
||||
</div>
|
||||
<p>로그아웃</p>
|
||||
</a>
|
||||
</li>
|
||||
<!-- <li>-->
|
||||
<!-- <a onclick="fn_deleteUser()">-->
|
||||
<!-- <div class="img_box">-->
|
||||
<!-- <img src="/image/mobile/mypage_withdrawal.svg" alt="회원탈퇴"/>-->
|
||||
<!-- </div>-->
|
||||
<!-- <p>회원탈퇴</p>-->
|
||||
<!-- </a>-->
|
||||
<!-- </li>-->
|
||||
</ul>
|
||||
<form id="loginForm" onsubmit="return false;"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/mobile/mypage/selectMyPageInfo.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,18 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{/mobile/layout/detailLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/mobile/mypage_notice.css">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<h3>공지사항</h3>
|
||||
<div class="content_box">
|
||||
<ul></ul>
|
||||
</div>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/mobile/notice/selectListNotice.js"></script>
|
||||
<script src="/js/mobile/notice/popup/selectNoticePop.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
27
src/main/resources/templates/mobile/push/pushSelectList.html
Normal file
27
src/main/resources/templates/mobile/push/pushSelectList.html
Normal file
@@ -0,0 +1,27 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{/mobile/layout/noticeLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/mobile/pushSelectList.css">
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_content">
|
||||
<div class="notify_wrap" id="pushList">
|
||||
</div>
|
||||
<script>
|
||||
/*********************************************
|
||||
* 뒤로가기
|
||||
********************************************/
|
||||
document.getElementById('back_btn').addEventListener('click',function(){
|
||||
window.history.back();
|
||||
});
|
||||
</script>
|
||||
<form id="loginForm" onsubmit="return false;"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/mobile/push/selectListPush.js"></script>
|
||||
<script src="/js/mobile/push/popup/selectPushPop.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,107 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{/mobile/layout/detailLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/mobile/reservation_progress.css">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script>
|
||||
let muAppContentId = "[[${param.muAppContentId}]]";
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<div class="content_box">
|
||||
<h3>방문 일시를 선택해주세요</h3>
|
||||
<div class="calender">
|
||||
<div class="calender_header">
|
||||
<button class="nav_btn prev"><img src="/image/mobile/datepicker.svg" alt="datepicker"/></button>
|
||||
<div class="ym_box">
|
||||
<span class="year"></span>년
|
||||
<span class="month"></span>월
|
||||
</div>
|
||||
<button class="nav_btn next"><img src="/image/mobile/datepicker.svg" alt="datepicker"/></button>
|
||||
</div>
|
||||
<div class="calender_main">
|
||||
<div class="days">
|
||||
<p>일</p>
|
||||
<p>월</p>
|
||||
<p>화</p>
|
||||
<p>수</p>
|
||||
<p>목</p>
|
||||
<p>금</p>
|
||||
<p>토</p>
|
||||
</div>
|
||||
<div class="dates"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="times"></div>
|
||||
</div>
|
||||
<div class="content_box">
|
||||
<h3>진료를 선택해주세요</h3>
|
||||
<ul class="clinic_list">
|
||||
<li class="first"><button>쁘띠</button></li>
|
||||
<li><button>피부</button></li>
|
||||
<li><button>비만</button></li>
|
||||
<li><button>상담</button></li>
|
||||
</ul>
|
||||
<ul class="reservation_list">
|
||||
<!-- <li class="first">-->
|
||||
<!-- <input type="checkbox" id="checkbox1" name="reservation_list"/>-->
|
||||
<!-- <label for="checkbox1">보톡스</label>-->
|
||||
<!-- </li>-->
|
||||
<!-- <li>-->
|
||||
<!-- <input type="checkbox" id="checkbox2" name="reservation_list"/>-->
|
||||
<!-- <label for="checkbox2">필러</label>-->
|
||||
<!-- </li>-->
|
||||
<!-- <li>-->
|
||||
<!-- <input type="checkbox" id="checkbox3" name="reservation_list"/>-->
|
||||
<!-- <label for="checkbox3">콜라겐볼륨(스컬트라)</label>-->
|
||||
<!-- </li>-->
|
||||
<!-- <li>-->
|
||||
<!-- <input type="checkbox" id="checkbox4" name="reservation_list"/>-->
|
||||
<!-- <label for="checkbox4">콜라겐볼륨(엘란쎄)</label>-->
|
||||
<!-- </li>-->
|
||||
<!-- <li>-->
|
||||
<!-- <input type="checkbox" id="checkbox5" name="reservation_list"/>-->
|
||||
<!-- <label for="checkbox5">윤곽 메쉬다V주사</label>-->
|
||||
<!-- </li>-->
|
||||
<!-- <li>-->
|
||||
<!-- <input type="checkbox" id="checkbox6" name="reservation_list"/>-->
|
||||
<!-- <label for="checkbox6">실리프팅</label>-->
|
||||
<!-- </li>-->
|
||||
<!-- <li>-->
|
||||
<!-- <input type="checkbox" id="checkbox7" name="reservation_list"/>-->
|
||||
<!-- <label for="checkbox7">리쥬란</label>-->
|
||||
<!-- </li>-->
|
||||
<!-- <li>-->
|
||||
<!-- <input type="checkbox" id="checkbox8" name="reservation_list"/>-->
|
||||
<!-- <label for="checkbox8">샤넬주사</label>-->
|
||||
<!-- </li>-->
|
||||
<!-- <li>-->
|
||||
<!-- <input type="checkbox" id="checkbox9" name="reservation_list"/>-->
|
||||
<!-- <label for="checkbox9">상담(초진)</label>-->
|
||||
<!-- </li>-->
|
||||
<!-- <li>-->
|
||||
<!-- <input type="checkbox" id="checkbox10" name="reservation_list"/>-->
|
||||
<!-- <label for="checkbox10">상담(재진)</label>-->
|
||||
<!-- </li>-->
|
||||
<!-- <li>-->
|
||||
<!-- <input type="checkbox" id="checkbox11" name="reservation_list"/>-->
|
||||
<!-- <label for="checkbox11">리쥬란 + 물광(리쥬란HB)</label>-->
|
||||
<!-- </li>-->
|
||||
</ul>
|
||||
</div>
|
||||
<div class="button_box">
|
||||
<button class="next_btn" disabled>다음</button>
|
||||
</div>
|
||||
<script>
|
||||
|
||||
</script>
|
||||
<form id="eventForm" onsubmit="return false;"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/mobile/reservation/insertReservation.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,90 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{/mobile/layout/detailLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/mobile/reservation_check.css">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script>
|
||||
let reserveDate = "[[${param.reserveDate}]]";
|
||||
let reserveTime = "[[${param.reserveTime}]]";
|
||||
let muTreatmentId = "[[${param.muTreatmentId}]]";
|
||||
let treatmentName = "[[${param.treatmentName}]]";
|
||||
let muProcedureId = "[[${param.muProcedureId}]]";
|
||||
let procedureName = "[[${param.procedureName}]]";
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<div class="content_box">
|
||||
<h3>예약 내용을 확인해주세요</h3>
|
||||
<p class="title">예약 정보</p>
|
||||
<ul>
|
||||
<li>
|
||||
<p class="label">예약 일시</p>
|
||||
<p id="reserveDate">2024-07-05, 15:00</p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="label">예약 진료</p>
|
||||
<p id="treatmentName">쁘띠</p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="label">시술</p>
|
||||
<p id="procedureName">보톡스</p>
|
||||
</li>
|
||||
</ul>
|
||||
<p class="title">요청사항</p>
|
||||
<textarea placeholder="내용을 입력해주세요"></textarea>
|
||||
</div>
|
||||
<div class="button_box">
|
||||
<button class="next_btn" data-toggle="modal" data-target=".promise_pending_modal">완료</button>
|
||||
</div>
|
||||
<!-- <!– 접수대기 모달 –>-->
|
||||
<!-- <div class="modal promise_pending_modal fade" id="" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="">-->
|
||||
<!-- <div class="modal-dialog">-->
|
||||
<!-- <div class="modal-content">-->
|
||||
<!-- <div class="modal-header">-->
|
||||
<!-- <p class="label">-->
|
||||
<!-- 안녕하세요 <span>000</span>님!<br/>-->
|
||||
<!-- 방문해주셔서 감사합니다.-->
|
||||
<!-- </p>-->
|
||||
<!-- </div> -->
|
||||
<!-- -->
|
||||
<!-- <div class="modal-body">-->
|
||||
<!-- <ul>-->
|
||||
<!-- <li class="first">-->
|
||||
<!-- <p class="label">예약 일시</p>-->
|
||||
<!-- <p>2024-07-09, 14:00</p>-->
|
||||
<!-- </li>-->
|
||||
<!-- <li>-->
|
||||
<!-- <p class="label">예약 유형</p>-->
|
||||
<!-- <p>상담(쁘띠)</p>-->
|
||||
<!-- </li>-->
|
||||
<!-- <li>-->
|
||||
<!-- <p class="label">시술</p>-->
|
||||
<!-- <p>피부관리</p>-->
|
||||
<!-- </li>-->
|
||||
<!-- <li>-->
|
||||
<!-- <p class="label">시술</p>-->
|
||||
<!-- <p class="blue">예약완료</p>-->
|
||||
<!-- </li>-->
|
||||
<!-- </ul>-->
|
||||
<!-- </div>-->
|
||||
|
||||
<!-- <div class="modal-footer">-->
|
||||
<!-- <div class="btn_box">-->
|
||||
<!-- <button class="cancel_btn">예약 취소</button>-->
|
||||
<!-- <button class="ok_btn">확인</button>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<form id="eventForm" onsubmit="return false;"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/mobile/reservation/selectReservation.js"></script>
|
||||
<script src="/js/mobile/reservation/popup/selectReservePendingPop.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,46 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{/mobile/layout/homeLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/mobile/reservation.css">
|
||||
<link rel="stylesheet" href="/css/mobile/swiper-bundle.min.css">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script src="/js/mobile/swiper-bundle.min.js"></script>
|
||||
<script>
|
||||
let searchDate = "[[${param.searchDate}]]";
|
||||
</script>
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_content">
|
||||
<div class="button_box">
|
||||
<button onClick="location.href='/mobilereservation/insertReservationIntro.do'">
|
||||
<p>내원 계획이 있으신가요?</p>
|
||||
<p>진료 예약하기</p>
|
||||
<img src="/image/mobile/arrow_w.svg" alt="arrow"/>
|
||||
</button>
|
||||
</div>
|
||||
<div class="reservation_list">
|
||||
<div class="present_reservation"><!-- 예약내역 -->
|
||||
<p class="title">예약 내역</p>
|
||||
</div>
|
||||
<div class="past_reservation"><!-- 지난예약 -->
|
||||
<p class="title">지난 예약</p>
|
||||
<div class="calendar_box">
|
||||
<div class="date_box"> <!-- 년,월만 나오게 -->
|
||||
<!--<img src="/image/mobile/datepicker.svg" alt="datepicker"/>-->
|
||||
<input type="month" class="date_picker" id="mmDatepicker">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<form id="loginForm" onsubmit="return false;"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/mobile/reservation/selectReservationList.js"></script>
|
||||
<script src="/js/mobile/reservation/popup/selectReservePendingPop.js"></script>
|
||||
<script src="/js/mobile/reservation/popup/selectPromiseCompletedPop.js"></script>
|
||||
<script src="/js/mobile/reservation/popup/selectPastReservePop.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,76 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{/mobile/layout/detailLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/mobile/mypage_use_info.css">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<h3>서비스 이용 약관</h3>
|
||||
<p>
|
||||
[제1장 총칙]<br/>
|
||||
제1조 목적<br/>
|
||||
이 약관은 더엠유이 제공하는 모든 서비스의 이용조건 및 절차에 관한 사항과 기타 필요한 사항을 전기통신사업법 및 동법 시행령이 정하는 대로 준수하고 규정함을 목적으로 합니다.<br/>
|
||||
제2조 약관의 효력과 변경<br/>
|
||||
(1) 이 약관은 이용자에게 공지사항을 통해 공시함으로써 효력을 발생합니다.<br/>
|
||||
(2) 사정 변경의 경우와 영업상 중요 사유가 있을 때 약관을 변경할 수 있으며, 변경된 약관은 전항과 같은 방법으로 효력을 발생합니다.<br/>
|
||||
제3조 약관 외 준칙<br/>
|
||||
이 약관에 명시되지 않은 사항이 관계 법령에 규정되어 있을 경우에는 그 규정에 따릅니다.<br/>
|
||||
<br/>
|
||||
[제2장 회원 가입과 서비스 이용]<br/>
|
||||
제1조 서비스 이용 계약의 성립<br/>
|
||||
(1) 이용 계약은 이용자의 이용 신청에 대한 더엠유의 이용 승낙과 이용자의 약관내용에 대한동의로 성립됩니다.<br/>
|
||||
(2) 회원에 가입하여 서비스를 이용하고자 하는 희망자는 더엠유에서 요청하는 개인신상정보를 제공해야 합니다.<br/>
|
||||
(3) 이용자의 이용신청에 대하여 더엠유이 이를 승낙한 경우, 더엠유은 회원 ID와 기타 필요하다고 인정하는 내용을 이용자에게 통지합니다.<br/>
|
||||
(4) 더엠유은 다음 각 호에 해당하는 이용계약 신청에 대하여는 이를 승낙하지 아니합니다.<br/>
|
||||
가. 다른 사람의 명의를 사용하여 신청하였을 때<br/>
|
||||
나. 본인의 실명으로 신청하지 않았을 때<br/>
|
||||
다. 이용 계약 신청서의 내용을 허위로 기재하였을 때<br/>
|
||||
라. 사회의 안녕과 질서 혹은 미풍양속을 저해할 목적으로 신청하였을 때다.<br/>
|
||||
제2조 서비스 이용 및 제한<br/>
|
||||
(1) 서비스 이용은 업무상 또는 기술상 특별한 지장이 없는 한 연중무휴,1일 24시간을 원칙으로 합니다.<br/>
|
||||
(2) 전항의 서비스 이용시간은 시스템 정기점검 등 협회가 필요한 경우, 회원에게 사전통지 한 후, 제한할 수 있습니다.<br/>
|
||||
<br/>
|
||||
[제3장 의무]<br/>
|
||||
제1조 더엠유의 의무<br/>
|
||||
(1) 더엠유은 특별한 사정이 없는 한 회원이 신청한 서비스 제공 개시일에 서비스를 이용할 수 있도록 합니다.<br/>
|
||||
(2) 더엠유은 이 약관에서 정한 바에 따라 계속적, 안정적으로 서비스를 제공할 의무가 있습니다.<br/>
|
||||
(3) 더엠유은 회원으로부터 소정의 절차에 의해 제기되는 의견에 대해서는 적절한 절차를 거처 처리하며, 처리시 일정 기간이 소요될 경우 회원에게 그 사유와 처리 일정을 알려주어야 합니다.<br/>
|
||||
(4) 더엠유은 회원의 정보를 철저히 보안 유지하며, 양질의 서비스를 운영하거나 개선하는 데에만 사용하고, 이외의 다른 목적으로 타 기관 및 개인에게 양도하지 않습니다.<br/>
|
||||
제2조 회원의 의무<br/>
|
||||
(1) ID와 비밀번호에 관한 모든 관리의 책임은 회원에게 있습니다.<br/>
|
||||
(2) 회원은 서비스의 일부로 보내지는 더엠유의 전자우편 및 광고 정보를 받는 것에 동의합니다.<br/>
|
||||
(3) 자신의 ID가 부정하게 사용된 경우, 회원은 반드시 더엠유에 그 사실을 통보해야 합니다.<br/>
|
||||
(4) 회원은 이 약관 및 관계 법령에서 규정한 사항을 준수하여야 합니다.<br/>
|
||||
<br/>
|
||||
[제4장 계약 해지 및 서비스 이용 제한]<br/>
|
||||
제1조 계약 해지 및 이용 제한<br/>
|
||||
(1) 회원이 이용 계약을 해지하고자 하는 때에는 회원 본인이 직접 더엠유서비스를 이용하여 서비스 해지신청을 요청해야 합니다.<br/>
|
||||
(2) 이름, 주민등록번호, ID를 입력하여 본인임을 확인한 후 , 해지 확인을 선택하면 자동으로 가입 해지됩니다.<br/>
|
||||
(3) 가입해지 여부는 기존의 ID, 비밀번호로 로그인이 되지 않으면 해지된 것이며, 한번 해지된 ID는 기존 사용자 라도 사용할 수 없음을 알려드립니다.<br/>
|
||||
(4) 더엠유은 회원이 다음 사항에 해당하는 행위를 하였을 경우, 사전 통지 없이 이용 계약을 해지하거나 또는 기간을 정하여 서비스 이용을 중지할 수 있습니다.<br/>
|
||||
가. 공공 질서 및 미풍 양속에 반하는 경우<br/>
|
||||
나. 범죄적 행위에 관련되는 경우<br/>
|
||||
다. 국익 또는 사회적 공익을 저해할 목적으로 서비스 이용을 계획 또는 실행할 경우<br/>
|
||||
라. 타인의 ID 및 비밀번호를 도용한 경우<br/>
|
||||
마. 타인의 명예를 손상시키거나 불이익을 주는 경우<br/>
|
||||
바. 같은 사용자가 다른 ID로 이중 등록을 한 경우<br/>
|
||||
사. 서비스에 위해를 가하는 등 건전한 이용을 저해하는 경우<br/>
|
||||
아. 기타 관련 법령이나 협회가 정한 이용조건에 위배되는 경우<br/>
|
||||
제2조 이용 제한의 해제 절차<br/>
|
||||
(1) 더엠유은 이용 제한을 하고자 하는 경우에는 그 사유, 일시 및 기간을 정하여 서면 또는 전화 등의 방법을 이용하여 해당 회원 또는 대리인에게 통지합니다.<br/>
|
||||
(2) 다만, 더엠유이 긴급하게 이용을 중지해야 할 필요가 있다고 인정하는 경우에는 전항의 과정없이 서비스 이용을 제한할 수 있습니다.<br/>
|
||||
(3) 제4장 제2조 1항의 규정에 의하여 서비스 이용중지를 통지 받은 회원 또는 그 대리인은 이용 중지에 대하여 이의가 있을 경우 이의신청을 할 수 있습니다.<br/>
|
||||
(4) 더엠유은 이용중지 기간 중에 그 이용중지 사유가 해소된 것이 확인된 경우에 한하여 이용중지 조치를 즉시 해제합니다.<br/>
|
||||
<br/>
|
||||
제3조회원의 게시물 관리<br/>
|
||||
더엠유은 회원이 게시하거나 등록한 내용물이 다음 사항에 해당된다고 판단되는 경우에 사전 통지 없이 삭제할 수 있습니다.<br/>
|
||||
(1) 타인을 비방하거나 중상모략으로 개인 및 단체의 명예를 손상시키는 내용인 경우<br/>
|
||||
(2) 공공질서 및 미풍양속에 위반되는 내용인 경우<br/>
|
||||
(3) 범죄적 행위에 부합된다고 인정되는 내용인 경우<br/>
|
||||
(4) 타인의 저작권 등 기타의 권리를 침해하는 내용인 경우<br/>
|
||||
(5) 기타 관계 법령이나 더엠유에서 정한 규정에 위배되는 내용인 경우<br/>
|
||||
</p>
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,70 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{/mobile/layout/detailLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/mobile/mypage_set.css">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script>
|
||||
// let membershipSearchDate = "[[${param.membershipSearchDate}]]";
|
||||
</script>
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_content">
|
||||
<h3>회원정보 설정</h3>
|
||||
<div class="content_box">
|
||||
<ul>
|
||||
<li class="first">
|
||||
<p>계정 정보</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>아이디</p>
|
||||
<p id="membershipAccount">test12</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>비밀번호</p>
|
||||
<button onclick="fn_updatePasswordModal()">비밀번호 변경</button>
|
||||
</li>
|
||||
<li>
|
||||
<p>간편 로그인 연동정보</p>
|
||||
<p id="loginType">-</p>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="first">
|
||||
<p>개인 정보</p>
|
||||
<button data-toggle="modal" onclick="fn_updateEmailModal()">휴대폰 번호 수정</button>
|
||||
</li>
|
||||
<li>
|
||||
<p>휴대폰 번호</p>
|
||||
<p id="phoneNumber"></p>
|
||||
</li>
|
||||
<!-- <li>-->
|
||||
<!-- <p>이메일</p>-->
|
||||
<!-- <p id="email">test@text.test</p>-->
|
||||
<!-- </li>-->
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="first">
|
||||
<p>기타 정보</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>추천인</p>
|
||||
<p id="introUserName"></p>
|
||||
</li>
|
||||
<li>
|
||||
<a onclick="fn_deleteUser()">
|
||||
<p>회원탈퇴</p>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<form id="updateAccountForm" onsubmit="return false;"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/mobile/user/selectUserAccount.js"></script>
|
||||
<script src="/js/mobile/user/popup/updatePasswordPop.js"></script>
|
||||
<script src="/js/mobile/user/popup/updateEmailPop.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
81
src/main/resources/templates/mobile/user/selectUserId.html
Normal file
81
src/main/resources/templates/mobile/user/selectUserId.html
Normal file
@@ -0,0 +1,81 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{/mobile/layout/detailLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/mobile/login_account.css">
|
||||
<link rel="stylesheet" href="/css/mobile/login_account_find.css">
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script>
|
||||
let physicalSearchDate = "[[${param.physicalSearchDate}]]";
|
||||
let errorMsg = "[[${errorMsg}]]"
|
||||
</script>
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_content">
|
||||
<!-- 데이터가 없을 경우 -->
|
||||
<div th:if="${#lists.isEmpty(userIdData)}">
|
||||
<div class="text_box">
|
||||
<p>계정찾기</p>
|
||||
<p>회원가입시 인증한 정보를 입력해주세요.</p>
|
||||
</div>
|
||||
<ul class="list_box">
|
||||
<li class="first">
|
||||
<label>성함</label>
|
||||
<div>
|
||||
<input type="text" id="userName" placeholder="성함을 입력해주세요." />
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<label>핸드폰 번호</label>
|
||||
<div>
|
||||
<input type="tel" id="phoneNumber" placeholder="-없이 번호 입력" />
|
||||
<button id="sendAuthNumBtn" onclick="fn_sendAuthNum()">인증번호 발송</button>
|
||||
</div>
|
||||
<div class="certification_box2" style="display: none">
|
||||
<input id="authNumber" type="number" placeholder="인증번호 입력" />
|
||||
<button id="authNumBtn" onClick="fn_selectPhoneAuthCheck()">인증번호 확인</button>
|
||||
</div>
|
||||
<p id="timer" style="color: #3985EA;padding: 10px;margin: auto;"></p>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="button_box">
|
||||
<button id="btn_selectUserId" disabled>완료</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 데이터가 있을 경우 -->
|
||||
<div th:if="${!#lists.isEmpty(userIdData)}">
|
||||
<div class="text_box">
|
||||
<p>계정찾기</p>
|
||||
<p>휴대전화번호와 일치하는 계정 정보입니다.</p>
|
||||
</div>
|
||||
<div class="info_box">
|
||||
<ul>
|
||||
<li>
|
||||
<p class="label">아이디</p>
|
||||
<p th:text="${userIdData[0]['membershipAccount']}">test</p>
|
||||
</li>
|
||||
<li class="last">
|
||||
<p class="label">가입일</p>
|
||||
<p th:text="${userIdData[0]['joinDate']}">2024-00-00</p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<ul class="loginPage_list">
|
||||
<li><a href="/mobile">로그인 하기</a></li>
|
||||
<li><a href="/mobileuser/selectUserPasswordIntro.do">비밀번호 찾기</a></li>
|
||||
</ul>
|
||||
<div class="button_box">
|
||||
<button>완료</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/mobile/user/selectUserId.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,74 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{/mobile/layout/detailLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/mobile/login_password.css">
|
||||
<link rel="stylesheet" href="/css/mobile/login_password2.css">
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script>
|
||||
let userPhoneNumber = "[[${userPhoneNumber}]]"
|
||||
let membershipAccount = "[[${param.membershipAccount}]]"
|
||||
let errorMsg = "[[${errorMsg}]]"
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<div th:if="${userPhoneNumber == null}">
|
||||
<div class="text_box">
|
||||
<p>비밀번호 찾기</p>
|
||||
<p>가입된 회원정보를 입력해주세요.</p>
|
||||
</div>
|
||||
<ul class="list_box">
|
||||
<li class="first">
|
||||
<label>아이디 조회</label>
|
||||
<div>
|
||||
<input type="text" id="membershipAccount" placeholder="아이디를 입력해주세요."/>
|
||||
</div>
|
||||
</li>
|
||||
<li><button onClick="location.href='/mobileuser/selectUserIdIntro.do'">아이디 찾기</button></li>
|
||||
</ul>
|
||||
<div class="button_box">
|
||||
<button id="btn_selectUserPhoneNumber">다음</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 데이터가 있을 경우 -->
|
||||
<div th:if="${userPhoneNumber != null}">
|
||||
<div class="text_box">
|
||||
<p>비밀번호 찾기</p>
|
||||
<p>가입된 회원정보를 입력해주세요.</p>
|
||||
</div>
|
||||
<div class="info_box">
|
||||
<p class="first">
|
||||
회원정보에 등록한 핸드폰 번호<br/>
|
||||
<span th:text="${#strings.substring(userPhoneNumber, 0, 3)} + '-' + ${#strings.substring(userPhoneNumber, 3, 4)} + '***-' + ${#strings.substring(userPhoneNumber, 7, 8)+ '***'}"></span>
|
||||
</p>
|
||||
<p>회원가입시 등록한 휴대폰 번호와 동일해야 인증번호를 받을 수 있습니다.</p>
|
||||
</div>
|
||||
<ul class="list_box">
|
||||
<li class="first">
|
||||
<label>핸드폰 번호</label>
|
||||
<div>
|
||||
<input type="tel" id="phoneNumber" placeholder="핸드폰 번호를 입력해주세요."/>
|
||||
<button id="sendAuthNumBtn" onclick="fn_sendAuthNum()">인증번호 발송</button>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="certification_box2" style="display: none">
|
||||
<input id="authNumber" type="number" placeholder="인증번호 입력" />
|
||||
<button id="authNumBtn" onClick="fn_selectPhoneAuthCheck()">인증번호 확인</button>
|
||||
</div>
|
||||
</li>
|
||||
<p id="timer" style="color: #3985EA;padding: 10px;margin: auto;"></p>
|
||||
</ul>
|
||||
<div class="button_box">
|
||||
<button onClick="fn_updateUserPasswordIntro()">완료</button>
|
||||
</div>
|
||||
</div>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/mobile/user/selectUserPassword.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,72 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{/mobile/layout/detailLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/mobile/login_password3.css">
|
||||
<link rel="stylesheet" href="/css/mobile/login_password_find.css">
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script>
|
||||
let userPhoneNumber = "[[${param.userPhoneNumber}]]"
|
||||
let membershipAccount = "[[${param.membershipAccount}]]"
|
||||
let errorMsg = "[[${errorMsg}]]"
|
||||
</script>
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_content">
|
||||
<div th:if="${#lists.isEmpty(userIdData)}">
|
||||
<div class="text_box">
|
||||
<p>비밀번호 재설정</p>
|
||||
<p>새로운 비밀번호를 입력해주세요.</p>
|
||||
</div>
|
||||
<ul class="list_box">
|
||||
<li class="first">
|
||||
<label>비밀번호</label>
|
||||
<div>
|
||||
<input type="password" id="membershipPassword" placeholder="비밀번호를 입력해주세요."/>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div>
|
||||
<input type="password" id="passwordCheck" placeholder="비밀번호 재확인"/>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="button_box">
|
||||
<button onClick="fn_updateUserPassword()">다음</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 데이터가 있을 경우 -->
|
||||
<div th:if="${!#lists.isEmpty(userIdData)}">
|
||||
<div class="text_box">
|
||||
<p>비밀번호 재설정</p>
|
||||
<p>비밀번호 재설정이 완료되었습니다.</p>
|
||||
</div>
|
||||
<div class="info_box">
|
||||
<ul>
|
||||
<li>
|
||||
<p class="label">아이디</label>
|
||||
<p th:text="${userIdData[0]['membershipAccount']}">test</p>
|
||||
</li>
|
||||
<li class="last">
|
||||
<p class="label">변경일</label>
|
||||
<p th:text="${userIdData[0]['modDate']}">2024-00-00</p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<ul class="loginPage_list">
|
||||
<li><a href="/mobile">로그인 하기</a></li>
|
||||
</ul>
|
||||
<div class="button_box">
|
||||
<button onclick="location.href='/mobile'">완료</button>
|
||||
</div>
|
||||
</div>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/mobile/user/updateUserPassword.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{/mobile/layout/detailLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/mobile/support_inquiry.css">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<h3>1:1 문의하기</h3>
|
||||
<ul>
|
||||
<li class="first">문의 내용을 입력해주세요</li>
|
||||
<li><input type="text" id="title" placeholder="제목을 입력해주세요."></li>
|
||||
<li class="textarea_box"><textarea id="content" placeholder="내용을 입력해주세요."></textarea></li>
|
||||
<li class="button_box"><button onclick="fn_insertUserInquiry()">완료</button></li>
|
||||
</ul>
|
||||
|
||||
<form id="inquiryForm" onsubmit="return false;"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/mobile/userInquiry/insertUserInquiry.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,20 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{/mobile/layout/detailLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/mobile/support_history.css">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<h3>문의 내역</h3>
|
||||
<ul>
|
||||
</ul>
|
||||
|
||||
<form id="inquiryForm" onsubmit="return false;"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/mobile/userInquiry/selectListUserInquiry.js"></script>
|
||||
<script src="/js/mobile/userInquiry/popup/selectUserInquiryPop.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,41 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{/mobile/layout/detailLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/mobile/bodyInfo.css">
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script>
|
||||
let physicalSearchDate = "[[${param.physicalSearchDate}]]";
|
||||
</script>
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_content">
|
||||
<div class="exist_box"><!-- 측정 이력 존재하는 경우 -->
|
||||
<h1><span><th:block>[[${session.mobileLoginName}]]</th:block></span>님의 신체 측정 정보예요.</h1>
|
||||
<div class="bmi_box">
|
||||
<h2 style="color: white;padding:30px 0 0 20px; font-weight: bold;font-size: small">BMI 트렌드</h2>
|
||||
<div class="bmi-info" style="color: white; padding:0 0 20px 20px; font-weight: bold;font-size:x-large">최고 31.1 | 최저 18.5</div>
|
||||
<canvas id="myChart"></canvas>
|
||||
</div>
|
||||
|
||||
<div class="calendar_box">
|
||||
<div class="date_box"> <!-- 년,월만 나오게 -->
|
||||
<!--<img src="/image/mobile/datepicker.svg" alt="datepicker"/>-->
|
||||
<input type="month" class="date_picker" id="mmDatepicker">
|
||||
</div>
|
||||
</div>
|
||||
<div class="bodyinfo_wrap">
|
||||
</div>
|
||||
</div>
|
||||
<form id="userPhysicalForm" onsubmit="return false;"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/web/chart-4.4.3.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels"></script>
|
||||
<script src="/js/mobile/userphysical/selectListUserPhysical.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
Reference in New Issue
Block a user