최초 세팅
This commit is contained in:
97
src/main/resources/templates/error.html
Normal file
97
src/main/resources/templates/error.html
Normal file
@@ -0,0 +1,97 @@
|
||||
<!DOCTYPE html>
|
||||
<html lagn="ko"
|
||||
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/emptyLayout}">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>error</title>
|
||||
|
||||
<!-- 합쳐지고 최소화된 최신 CSS -->
|
||||
<link rel="stylesheet" href="/bootstrap-3.4.1-dist/css/bootstrap.min.css">
|
||||
|
||||
<!-- 부가적인 테마 -->
|
||||
<link rel="stylesheet" href="/bootstrap-3.4.1-dist/css/bootstrap-theme.min.css">
|
||||
|
||||
<!-- font awesome -->
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
|
||||
|
||||
<!-- 적용 css -->
|
||||
<link rel="stylesheet" href="/css/admin/error.css">
|
||||
<link rel="stylesheet" href="/css/admin/common.css">
|
||||
|
||||
<script src="/js/admin/jquery.min.js"></script>
|
||||
<!-- 합쳐지고 최소화된 최신 자바스크립트 -->
|
||||
<script src="/bootstrap-3.4.1-dist/js/bootstrap.min.js"></script>
|
||||
|
||||
</head>
|
||||
<body class="body_layout">
|
||||
<!-- 네비 메뉴 -->
|
||||
<div class="header">
|
||||
<div class="gnb container">
|
||||
<div id="header">
|
||||
<div class="insideWrap">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- error -->
|
||||
<div class="error container" id="body">
|
||||
<div class="normal">
|
||||
<p class="font-title1 bd title tac">Error<img src="/image/home/icon5.png"></p>
|
||||
<p class="font-title5 title tac">요청하신 페이지를 찾을수 없습니다.<br>입력하신 주소가 정확한지 다시 한번 확인해주세요.</p>
|
||||
<a onclick="history.back();"><p class="font-title4 bd title tac btn">이전페이지로 돌아가기</p></a>
|
||||
<div class="img"><img src="/image/home/error_img.png"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- 하단 -->
|
||||
<div class="footer"></div>
|
||||
</body>
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
$(window).resize(function() {
|
||||
screenSize();
|
||||
});
|
||||
|
||||
$('[name = "scrollTop"]').click(function() {
|
||||
$('html, body').animate({
|
||||
scrollTop : 0
|
||||
}, 400);
|
||||
return false;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
screenSize();
|
||||
});
|
||||
|
||||
//모바일 화면일시 배너 크기 조정
|
||||
function screenSize(){
|
||||
//화면 너비
|
||||
var windowWidth = $( window ).width();
|
||||
//창 가로 크기가 500 미만일 경우
|
||||
if(windowWidth > 769){
|
||||
//화면 높이
|
||||
var innerHeight = window.innerHeight;
|
||||
|
||||
$("#body").css("height",innerHeight-80);
|
||||
}else{
|
||||
//화면 높이
|
||||
var innerHeight = window.innerHeight;
|
||||
|
||||
$("#body").css("height",innerHeight-60);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
</script>
|
||||
97
src/main/resources/templates/error/error.html
Normal file
97
src/main/resources/templates/error/error.html
Normal file
@@ -0,0 +1,97 @@
|
||||
<!DOCTYPE html>
|
||||
<html lagn="ko"
|
||||
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/emptyLayout}">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>error</title>
|
||||
|
||||
<!-- 합쳐지고 최소화된 최신 CSS -->
|
||||
<link rel="stylesheet" href="/bootstrap-3.4.1-dist/css/bootstrap.min.css">
|
||||
|
||||
<!-- 부가적인 테마 -->
|
||||
<link rel="stylesheet" href="/bootstrap-3.4.1-dist/css/bootstrap-theme.min.css">
|
||||
|
||||
<!-- font awesome -->
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
|
||||
|
||||
<!-- 적용 css -->
|
||||
<link rel="stylesheet" href="/css/admin/error.css">
|
||||
<link rel="stylesheet" href="/css/admin/common.css">
|
||||
|
||||
<script src="/js/admin/jquery.min.js"></script>
|
||||
<!-- 합쳐지고 최소화된 최신 자바스크립트 -->
|
||||
<script src="/bootstrap-3.4.1-dist/js/bootstrap.min.js"></script>
|
||||
|
||||
</head>
|
||||
<body class="body_layout">
|
||||
<!-- 네비 메뉴 -->
|
||||
<div class="header">
|
||||
<div class="gnb container">
|
||||
<div id="header">
|
||||
<div class="insideWrap">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- error -->
|
||||
<div class="error container" id="body">
|
||||
<div class="normal">
|
||||
<p class="font-title1 bd title tac">Error<img src="/image/home/icon5.png"></p>
|
||||
<p class="font-title5 title tac">요청하신 페이지를 찾을수 없습니다.<br>입력하신 주소가 정확한지 다시 한번 확인해주세요.</p>
|
||||
<a onclick="history.back();"><p class="font-title4 bd title tac btn">이전페이지로 돌아가기</p></a>
|
||||
<div class="img"><img src="/image/home/error_img.png"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- 하단 -->
|
||||
<div class="footer"></div>
|
||||
</body>
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
$(window).resize(function() {
|
||||
screenSize();
|
||||
});
|
||||
|
||||
$('[name = "scrollTop"]').click(function() {
|
||||
$('html, body').animate({
|
||||
scrollTop : 0
|
||||
}, 400);
|
||||
return false;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
screenSize();
|
||||
});
|
||||
|
||||
//모바일 화면일시 배너 크기 조정
|
||||
function screenSize(){
|
||||
//화면 너비
|
||||
var windowWidth = $( window ).width();
|
||||
//창 가로 크기가 500 미만일 경우
|
||||
if(windowWidth > 769){
|
||||
//화면 높이
|
||||
var innerHeight = window.innerHeight;
|
||||
|
||||
$("#body").css("height",innerHeight-80);
|
||||
}else{
|
||||
//화면 높이
|
||||
var innerHeight = window.innerHeight;
|
||||
|
||||
$("#body").css("height",innerHeight-60);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
</script>
|
||||
0
src/main/resources/templates/index.html
Normal file
0
src/main/resources/templates/index.html
Normal file
1993
src/main/resources/templates/kiosk/agreement.html
Normal file
1993
src/main/resources/templates/kiosk/agreement.html
Normal file
File diff suppressed because it is too large
Load Diff
408
src/main/resources/templates/kiosk/consultation.html
Normal file
408
src/main/resources/templates/kiosk/consultation.html
Normal file
@@ -0,0 +1,408 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ko">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>병원 접수 키오스크</title>
|
||||
<style>
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Segoe UI', 'Malgun Gothic', sans-serif;
|
||||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* 배경 애니메이션 요소 */
|
||||
.bg-animation {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
.floating-circle {
|
||||
position: absolute;
|
||||
border-radius: 50%;
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
animation: float 6s ease-in-out infinite;
|
||||
}
|
||||
|
||||
.circle1 { width: 80px; height: 80px; top: 20%; left: 10%; animation-delay: 0s; }
|
||||
.circle2 { width: 120px; height: 120px; top: 60%; left: 80%; animation-delay: 2s; }
|
||||
.circle3 { width: 60px; height: 60px; top: 80%; left: 20%; animation-delay: 4s; }
|
||||
|
||||
@keyframes float {
|
||||
0%, 100% { transform: translateY(0px) scale(1); opacity: 0.7; }
|
||||
50% { transform: translateY(-20px) scale(1.1); opacity: 1; }
|
||||
}
|
||||
|
||||
/* 메인 컨테이너 */
|
||||
.kiosk-container {
|
||||
background: rgba(255, 255, 255, 0.15);
|
||||
backdrop-filter: blur(20px);
|
||||
border: 1px solid rgba(255, 255, 255, 0.2);
|
||||
border-radius: 32px;
|
||||
padding: 60px 80px;
|
||||
text-align: center;
|
||||
box-shadow:
|
||||
0 8px 32px 0 rgba(31, 38, 135, 0.37),
|
||||
inset 0 1px 0 rgba(255, 255, 255, 0.4);
|
||||
width: 90vw;
|
||||
max-width: 800px;
|
||||
min-height: 80vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
animation: slideUp 0.8s ease-out;
|
||||
}
|
||||
|
||||
@keyframes slideUp {
|
||||
from { opacity: 0; transform: translateY(50px); }
|
||||
to { opacity: 1; transform: translateY(0); }
|
||||
}
|
||||
|
||||
/* 헤더 */
|
||||
.header {
|
||||
margin-bottom: 60px;
|
||||
}
|
||||
|
||||
.hospital-logo {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
|
||||
border-radius: 20px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin: 0 auto 30px;
|
||||
box-shadow: 0 10px 30px rgba(79, 172, 254, 0.3);
|
||||
}
|
||||
|
||||
.hospital-logo::before {
|
||||
content: "🏥";
|
||||
font-size: 36px;
|
||||
}
|
||||
|
||||
.title {
|
||||
color: white;
|
||||
font-size: 2.8rem;
|
||||
font-weight: 700;
|
||||
margin-bottom: 15px;
|
||||
text-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
color: rgba(255, 255, 255, 0.9);
|
||||
font-size: 1.3rem;
|
||||
font-weight: 400;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
/* 버튼 컨테이너 */
|
||||
.button-container {
|
||||
display: flex;
|
||||
gap: 40px;
|
||||
justify-content: center;
|
||||
flex-wrap: wrap;
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
/* 메인 버튼 스타일 */
|
||||
.patient-button {
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
backdrop-filter: blur(10px);
|
||||
border: 2px solid rgba(255, 255, 255, 0.3);
|
||||
border-radius: 24px;
|
||||
padding: 50px 60px;
|
||||
cursor: pointer;
|
||||
transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
min-width: 280px;
|
||||
text-decoration: none;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.patient-button::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: -100%;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
|
||||
transition: left 0.6s;
|
||||
}
|
||||
|
||||
.patient-button:hover::before {
|
||||
left: 100%;
|
||||
}
|
||||
|
||||
.patient-button:hover {
|
||||
transform: translateY(-8px) scale(1.02);
|
||||
box-shadow:
|
||||
0 20px 50px rgba(0, 0, 0, 0.15),
|
||||
0 0 0 1px rgba(255, 255, 255, 0.4);
|
||||
border-color: rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
|
||||
.patient-button:active {
|
||||
transform: translateY(-4px) scale(0.98);
|
||||
}
|
||||
|
||||
/* 새환자 버튼 */
|
||||
.new-patient {
|
||||
background: linear-gradient(135deg, rgba(46, 213, 115, 0.8) 0%, rgba(0, 184, 148, 0.8) 100%);
|
||||
}
|
||||
|
||||
.new-patient:hover {
|
||||
background: linear-gradient(135deg, rgba(46, 213, 115, 0.9) 0%, rgba(0, 184, 148, 0.9) 100%);
|
||||
}
|
||||
|
||||
/* 기존환자 버튼 */
|
||||
.existing-patient {
|
||||
background: linear-gradient(135deg, rgba(52, 152, 219, 0.8) 0%, rgba(155, 89, 182, 0.8) 100%);
|
||||
}
|
||||
|
||||
.existing-patient:hover {
|
||||
background: linear-gradient(135deg, rgba(52, 152, 219, 0.9) 0%, rgba(155, 89, 182, 0.9) 100%);
|
||||
}
|
||||
|
||||
/* 버튼 아이콘 */
|
||||
.button-icon {
|
||||
font-size: 4rem;
|
||||
margin-bottom: 20px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* 버튼 텍스트 */
|
||||
.button-text {
|
||||
color: white;
|
||||
font-size: 1.8rem;
|
||||
font-weight: 700;
|
||||
margin-bottom: 10px;
|
||||
text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
.button-desc {
|
||||
color: rgba(255, 255, 255, 0.9);
|
||||
font-size: 1.1rem;
|
||||
font-weight: 400;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
/* 하단 정보 */
|
||||
.footer-info {
|
||||
margin-top: 50px;
|
||||
color: rgba(255, 255, 255, 0.8);
|
||||
font-size: 1rem;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
gap: 20px;
|
||||
}
|
||||
|
||||
.current-time {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.help-text {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
/* 반응형 디자인 */
|
||||
@media (max-width: 768px) {
|
||||
.kiosk-container {
|
||||
padding: 40px 30px;
|
||||
width: 95vw;
|
||||
min-height: 90vh;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
.button-container {
|
||||
flex-direction: column;
|
||||
gap: 30px;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.patient-button {
|
||||
min-width: 100%;
|
||||
max-width: 400px;
|
||||
padding: 40px 30px;
|
||||
}
|
||||
|
||||
.button-icon {
|
||||
font-size: 3rem;
|
||||
}
|
||||
|
||||
.button-text {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
.footer-info {
|
||||
flex-direction: column;
|
||||
text-align: center;
|
||||
gap: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
/* 접근성 향상 */
|
||||
.patient-button:focus {
|
||||
outline: 3px solid #FFD700;
|
||||
outline-offset: 4px;
|
||||
}
|
||||
|
||||
/* 로딩 애니메이션 */
|
||||
.loading {
|
||||
display: none;
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
color: white;
|
||||
font-size: 1.2rem;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.spinner {
|
||||
border: 3px solid rgba(255, 255, 255, 0.3);
|
||||
border-radius: 50%;
|
||||
border-top: 3px solid white;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
animation: spin 1s linear infinite;
|
||||
margin: 0 auto 15px;
|
||||
}
|
||||
|
||||
@keyframes spin {
|
||||
0% { transform: rotate(0deg); }
|
||||
100% { transform: rotate(360deg); }
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<!-- 배경 애니메이션 -->
|
||||
<div class="bg-animation">
|
||||
<div class="floating-circle circle1"></div>
|
||||
<div class="floating-circle circle2"></div>
|
||||
<div class="floating-circle circle3"></div>
|
||||
</div>
|
||||
|
||||
<!-- 키오스크 메인 화면 -->
|
||||
<div class="kiosk-container">
|
||||
<div class="header">
|
||||
<div class="hospital-logo"></div>
|
||||
<h1 class="title">병원 접수</h1>
|
||||
<p class="subtitle">환자 유형을 선택해 주세요<br>해당하는 버튼을 터치해 주시기 바랍니다</p>
|
||||
</div>
|
||||
|
||||
<div class="button-container">
|
||||
<a href="#" class="patient-button new-patient" onclick="handleSelection('new')">
|
||||
<span class="button-icon">👤➕</span>
|
||||
<div class="button-text">신규 환자</div>
|
||||
<div class="button-desc">처음 내원하시는 분<br>신규 등록이 필요합니다</div>
|
||||
</a>
|
||||
|
||||
<a href="#" class="patient-button existing-patient" onclick="handleSelection('existing')">
|
||||
<span class="button-icon">👤✓</span>
|
||||
<div class="button-text">기존 환자</div>
|
||||
<div class="button-desc">이전에 내원하신 분<br>진료카드를 준비해 주세요</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="footer-info">
|
||||
<div class="current-time" id="currentTime"></div>
|
||||
<div class="help-text">도움이 필요하시면 안내데스크로 문의해 주세요</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 로딩 화면 -->
|
||||
<div class="loading" id="loadingScreen">
|
||||
<div class="spinner"></div>
|
||||
<div>접수 화면으로 이동 중...</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
// 현재 시간 표시
|
||||
function updateTime() {
|
||||
const now = new Date();
|
||||
const timeString = now.toLocaleString('ko-KR', {
|
||||
year: 'numeric',
|
||||
month: 'long',
|
||||
day: 'numeric',
|
||||
hour: '2-digit',
|
||||
minute: '2-digit',
|
||||
weekday: 'long'
|
||||
});
|
||||
document.getElementById('currentTime').textContent = timeString;
|
||||
}
|
||||
|
||||
// 페이지 로드 시 시간 업데이트 및 1분마다 갱신
|
||||
updateTime();
|
||||
setInterval(updateTime, 60000);
|
||||
|
||||
// 버튼 선택 처리
|
||||
function handleSelection(type) {
|
||||
// 로딩 화면 표시
|
||||
document.getElementById('loadingScreen').style.display = 'block';
|
||||
|
||||
// 실제 구현에서는 여기서 다음 화면으로 이동
|
||||
setTimeout(() => {
|
||||
if (type === 'new') {
|
||||
alert('신규 환자 등록 화면으로 이동합니다.\n\n필요한 서류:\n- 신분증\n- 보험카드');
|
||||
window.location.href = '/kiosk/NewPatientIntro.do';
|
||||
} else {
|
||||
alert('기존 환자 접수 화면으로 이동합니다.\n\n필요한 준비물:\n- 진료카드 또는 주민등록번호\n- 보험카드');
|
||||
window.location.href = '/kiosk/ExistPatientIntro.do';
|
||||
}
|
||||
document.getElementById('loadingScreen').style.display = 'none';
|
||||
}, 1500);
|
||||
}
|
||||
|
||||
// 키보드 접근성 지원
|
||||
document.addEventListener('keydown', function(e) {
|
||||
if (e.key === '1') {
|
||||
handleSelection('new');
|
||||
} else if (e.key === '2') {
|
||||
handleSelection('existing');
|
||||
}
|
||||
});
|
||||
|
||||
// 터치 피드백 효과
|
||||
document.querySelectorAll('.patient-button').forEach(button => {
|
||||
button.addEventListener('touchstart', function() {
|
||||
this.style.transform = 'scale(0.95)';
|
||||
});
|
||||
|
||||
button.addEventListener('touchend', function() {
|
||||
this.style.transform = '';
|
||||
});
|
||||
});
|
||||
|
||||
// 화면 절전 방지 (Wake Lock API)
|
||||
if ('wakeLock' in navigator) {
|
||||
navigator.wakeLock.request('screen').catch(err => {
|
||||
console.log('Wake lock failed:', err);
|
||||
});
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
705
src/main/resources/templates/kiosk/existing-patient.html
Normal file
705
src/main/resources/templates/kiosk/existing-patient.html
Normal file
@@ -0,0 +1,705 @@
|
||||
<!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="/web/include/head :: layout_head"></th:block>
|
||||
<th:block layout:fragment="layout_css">
|
||||
</th:block>
|
||||
</head>
|
||||
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script src="/js/kiosk/common.js"></script>
|
||||
<script src="/js/web/signature_pad.js"></script>
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_content">
|
||||
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_popup">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
reserveReadyInsertModal.popup();
|
||||
});
|
||||
|
||||
/* ##############################################################
|
||||
설 명 : [Modal]바로접수 등록 팝업
|
||||
작성일 : 2023. 01. 19.
|
||||
작성자 : NTsoft
|
||||
수정일 수정자 수정내용
|
||||
------- -------- ---------------------------
|
||||
2023. 01. 19. NTsoft 최초 생성
|
||||
*/
|
||||
let reserveReadyInsertModal = {
|
||||
callback : null,
|
||||
reqParam : null,
|
||||
dataList : null,
|
||||
/* 모달 초기화 작업 */
|
||||
init : function () {
|
||||
$('#reserveReadyInsertModal').remove();
|
||||
$('body').append( this.HtmlTemplate);
|
||||
//그리드 이벤트
|
||||
this.setEvent();
|
||||
},
|
||||
/* 그리드 이벤트 설정 */
|
||||
setEvent:function() {
|
||||
$('#reserveReadyInsertModal .btnCancle').on("click", function(){
|
||||
reserveReadyInsertModal.close();
|
||||
});
|
||||
|
||||
// tab1 : 바로접수 등록
|
||||
$('#reserveReadyInsertModal #list1 .btnSave').on("click", function(){
|
||||
reserveReadyInsertModal.save("I");
|
||||
});
|
||||
|
||||
// tab1 : 고객조회 팝업
|
||||
$('#reserveReadyInsertModal #list1 input[name="modalUserName"]').on("click", function(){
|
||||
let reqParam = {};
|
||||
userIntroSelectModal.popup(function (obj, reqParam) {
|
||||
$('#reserveReadyInsertModal #list1 input[name="modalUserId"]').val(obj.muuserid);
|
||||
$('#reserveReadyInsertModal #list1 input[name="modalUserName"]').val(obj.username);
|
||||
|
||||
$('#reserveReadyInsertModal #list1 .modalPhoneNumber').text(fn_setFormatPhone(obj.phonenumber));
|
||||
|
||||
if("T" == obj.userType2){
|
||||
// 간편예약 고객
|
||||
$('#reserveReadyInsertModal #list1 .modalUserType').html('-');
|
||||
$('#reserveReadyInsertModal #list1 .modalBirthday').text('-');
|
||||
$('#reserveReadyInsertModal #list1 .modalGender').text('-');
|
||||
$('#reserveReadyInsertModal #list1 .modalNationality').text('-');
|
||||
$('#reserveReadyInsertModal #list1 .modalMemo').text('-');
|
||||
}
|
||||
else{
|
||||
// 일반고객
|
||||
$('#reserveReadyInsertModal #list1 .modalUserType').html('<img src="'+obj.usertype.replace("C:", "")+'" alt="고객구분" />');
|
||||
$('#reserveReadyInsertModal #list1 .modalBirthday').text(obj.birthday);
|
||||
$('#reserveReadyInsertModal #list1 .modalGender').text(obj.gender);
|
||||
$('#reserveReadyInsertModal #list1 .modalNationality').text(obj.nationality);
|
||||
$('#reserveReadyInsertModal #list1 .modalMemo').text(obj.memo);
|
||||
}
|
||||
}, reqParam);
|
||||
});
|
||||
|
||||
// tab1 : 담당자 수정하기 이벤트
|
||||
$('#reserveReadyInsertModal #list1 .manager_btn').on("click", function(){
|
||||
$('#reserveReadyInsertModal #list1 .read_box').hide();
|
||||
$('#reserveReadyInsertModal #list1 .search_box.member_box').show();
|
||||
});
|
||||
|
||||
// tab1 : 담당자 수정 취소하기 이벤트
|
||||
$('#reserveReadyInsertModal #list1 .cancel_btn').on("click", function(){
|
||||
$('#reserveReadyInsertModal #list1 .read_box').show();
|
||||
$('#reserveReadyInsertModal #list1 .search_box.member_box').hide();
|
||||
});
|
||||
|
||||
// tab1 : 담당자 변경 이벤트
|
||||
let modalMemberTarget = $('#reserveReadyInsertModal #list1 input[name="modalMemberName"]');
|
||||
modalMemberTarget.on("click", function(){
|
||||
let reqParam = {};
|
||||
memberSearchModal.popup(function (obj) {
|
||||
modalMemberTarget.val(obj.selectMemberName);
|
||||
modalMemberTarget.closest('.search_box').siblings('input[name="modalMemberId"]').val(obj.selectMemberId);
|
||||
}, reqParam);
|
||||
});
|
||||
},
|
||||
/* 예약경로 콤보데이터 설정 (동적추가) */
|
||||
setReserveCategoryCombo:function() {
|
||||
let category = fn_selectCategoryList();
|
||||
let reservationCategory = category.find(cat => cat.categoryname === '예약경로');
|
||||
|
||||
if (reservationCategory) {
|
||||
fn_selectModalOtherOption(reservationCategory.categorycode, '');
|
||||
}
|
||||
},
|
||||
/* 닥터/상담 콤보데이터 설정 (동적추가) */
|
||||
setReserveMemberCombo:function(param, param2) {
|
||||
let comboData = fn_selectListReserveMemberOption(param, param2);
|
||||
console.log(comboData);
|
||||
let comboHTML = '';
|
||||
for(let i = 0; i < comboData.length; i++){
|
||||
let muMemberId = comboData[i].mumemberid;
|
||||
let memberName = comboData[i].membername;
|
||||
let typeName = comboData[i].typename;
|
||||
|
||||
comboHTML += '<li id="li_'+mumemberId+'" class="option_list_item">'+typeName+' '+memberName+'</li>';
|
||||
}
|
||||
return comboHTML;
|
||||
},
|
||||
/* tab1 : 예약 추가 */
|
||||
addRow:function() {
|
||||
let addRowHtml = '';
|
||||
addRowHtml += '<li class="modal_table_content">';
|
||||
addRowHtml += ' <div class="first">';
|
||||
addRowHtml += ' <div class="calendar_box">';
|
||||
addRowHtml += ' <div class="date_box">';
|
||||
addRowHtml += ' <img src="/image/web/calendar.svg" alt="calendar"/>';
|
||||
addRowHtml += ' <input type="date" class="date_picker" name="modalReserveDate">';
|
||||
addRowHtml += ' </div>';
|
||||
addRowHtml += ' </div>';
|
||||
addRowHtml += ' <div class="select_box dropdown">';
|
||||
addRowHtml += ' <button class="label" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">00:00</button>';
|
||||
addRowHtml += ' <input type="hidden" name="modalReserveTime">';
|
||||
addRowHtml += ' <ul class="select_option_list dropdown-menu time"></ul>';
|
||||
addRowHtml += ' </div>';
|
||||
addRowHtml += ' </div>';
|
||||
addRowHtml += ' <div>';
|
||||
addRowHtml += ' <div class="select_box dropdown">';
|
||||
addRowHtml += ' <button class="label" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">예약경로</button>';
|
||||
addRowHtml += ' <input type="hidden" name="modalReserveCategoryItemCode">';
|
||||
addRowHtml += ' <ul class="select_option_list dropdown-menu">';
|
||||
addRowHtml += ' </ul>';
|
||||
addRowHtml += ' </div>';
|
||||
addRowHtml += ' </div>';
|
||||
addRowHtml += ' <div>';
|
||||
addRowHtml += ' <div class="search_box" data-target=".medical_type" style="transition: all 0.2s ease-in-out 0s;">';
|
||||
addRowHtml += ' <img src="/image/web/search_B.svg" alt="search"/>';
|
||||
addRowHtml += ' <input type="hidden" name="modalTreatmentProcedureId" />';
|
||||
addRowHtml += ' <input type="text" class="txt" name="modalTreatmentProcedureName" readonly />';
|
||||
addRowHtml += ' </div>';
|
||||
addRowHtml += ' </div>';
|
||||
addRowHtml += ' <div>';
|
||||
addRowHtml += ' <div class="select_box dropdown">';
|
||||
addRowHtml += ' <button class="label" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">닥터/상담</button>';
|
||||
addRowHtml += ' <input type="hidden" name="modalReserveMemberId">';
|
||||
addRowHtml += ' <ul class="select_option_list dropdown-menu"></ul>';
|
||||
addRowHtml += ' </div>';
|
||||
addRowHtml += ' </div>';
|
||||
addRowHtml += ' <div>';
|
||||
addRowHtml += ' <div class="input_box">';
|
||||
addRowHtml += ' <input type="text" name="modalEtc" placeholder="-"/>';
|
||||
addRowHtml += ' </div>';
|
||||
addRowHtml += ' </div>';
|
||||
addRowHtml += '</li>';
|
||||
$('#reserveReadyInsertModal #list1 .reserveRowBox').append(addRowHtml).trigger("create");
|
||||
reserveReadyInsertModal.setReserveCategoryCombo();
|
||||
// 현재 row
|
||||
let parentTarget = $('#reserveReadyInsertModal #list1 .modal_table_content:last');
|
||||
|
||||
// 예약 일자
|
||||
parentTarget.find('input[name="modalReserveDate"]').datetimepicker({
|
||||
allowInputToggle: true,
|
||||
format: 'YYYY-MM-DD',
|
||||
defaultDate: moment()
|
||||
}).on("dp.change", function(e){
|
||||
|
||||
// 예약 시간 셋팅
|
||||
fn_searchSetTime('reserveReadyInsertModal #list1 .modal_table_content:last .select_option_list.time', e.date.format("YYYY-MM-DD"));
|
||||
|
||||
// 초기화
|
||||
// 예약경로
|
||||
$("#reserveReadyInsertModal #list1 [name=modalReserveCategoryItemCode]").val("");
|
||||
$("#reserveReadyInsertModal #list1 [name=modalReserveCategoryItemCode]").siblings("button").text("예약경로");
|
||||
// 진로유형
|
||||
$("#reserveReadyInsertModal #list1 [name=modalTreatmentProcedureId]").val("");
|
||||
$("#reserveReadyInsertModal #list1 [name=modalTreatmentProcedureName]").val("");
|
||||
// 닥터/상담
|
||||
$("#reserveReadyInsertModal #list1 [name=modalReserveMemberId]").val("");
|
||||
$("#reserveReadyInsertModal #list1 [name=modalReserveMemberId]").siblings("button").text("닥터/상담");
|
||||
$("#reserveReadyInsertModal #list1 [name=modalReserveMemberId]").siblings("ul").find("li").remove();
|
||||
// 예약메모
|
||||
$("#reserveReadyInsertModal #list1 [name=modalEtc]").val("");
|
||||
});
|
||||
parentTarget.find('input[name="modalReserveDate"]').data("DateTimePicker").minDate(fn_getToDate());
|
||||
|
||||
let selectDate = $('#reserveReadyInsertModal #list1').find('input[name="modalReserveDate"]').val();
|
||||
// 예약 시간 셋팅
|
||||
fn_searchSetTime('reserveReadyInsertModal #list1 .modal_table_content:last .select_option_list.time', selectDate);
|
||||
|
||||
// 콤보 이벤트
|
||||
parentTarget.find(".select_option_list").not('.time').find("li.option_list_item").click(function () {
|
||||
// 1. 선택값 셋팅
|
||||
let selectIdArr = $(this).prop("id").split('_');
|
||||
let selectId = selectIdArr[1];
|
||||
let selectName = $(this).text();
|
||||
|
||||
$(this).parent().siblings("button").text(selectName);
|
||||
$(this).parent().siblings("input").val(selectId);
|
||||
});
|
||||
|
||||
// 진료/시술 검색 팝업 이벤트
|
||||
let treatmentProcedureTarget = parentTarget.find('input[name="modalTreatmentProcedureName"]');
|
||||
treatmentProcedureTarget.on("click", function(){
|
||||
let reqParam = {};
|
||||
treatmentProcedureSearchModal.popup(function (obj, reqParam) {
|
||||
treatmentProcedureTarget.prev().val(obj.mutreatmentprocedureid);
|
||||
treatmentProcedureTarget.val(obj.treatmentprocedurename);
|
||||
|
||||
// 닥터/상담자 콤보 셋팅
|
||||
let reserveMemberTarget = parentTarget.find('input[name="modalReserveMemberId"]').next(".select_option_list");
|
||||
|
||||
let modalReserveDate = parentTarget.find('input[name="modalReserveDate"]').val();
|
||||
let reserveMemberHTML = reserveReadyInsertModal.setReserveMemberCombo(modalReserveDate, obj.mutreatmentprocedureid);
|
||||
reserveMemberTarget.html(reserveMemberHTML);
|
||||
reserveMemberTarget.siblings("button").text("닥터/상담");
|
||||
|
||||
reserveMemberTarget.find("li.option_list_item").click(function () {
|
||||
// 1. 선택값 셋팅
|
||||
let selectIdArr = $(this).prop("id").split('_');
|
||||
let selectId = selectIdArr[1];
|
||||
let selectName = $(this).text();
|
||||
|
||||
$(this).parent().siblings("button").text(selectName);
|
||||
$(this).parent().siblings("input").val(selectId);
|
||||
});
|
||||
}, reqParam);
|
||||
});
|
||||
|
||||
},
|
||||
/* 데이터 선택 */
|
||||
setSelect:function(selectNumber) {
|
||||
let checkedData = dataList[selectNumber];
|
||||
if(dataList==null||checkedData==undefined){
|
||||
return ;
|
||||
}
|
||||
|
||||
if( reserveReadyInsertModal.callback ) {
|
||||
reserveReadyInsertModal.callback(checkedData);
|
||||
}
|
||||
reserveReadyInsertModal.close();
|
||||
},
|
||||
// 고객 조회
|
||||
searchUser:function(state) {
|
||||
let formData = new FormData();
|
||||
|
||||
$.ajax({
|
||||
url: encodeURI('/kiosk/getUser.do'),
|
||||
data: formData,
|
||||
dataType: "json",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
type: 'POST',
|
||||
async: true,
|
||||
success: function(data){
|
||||
if('0' == data.msgCode){
|
||||
const user = data.rows;
|
||||
$('#reserveReadyInsertModal #list1 input[name="modalUserId"]').val(user.muuserid);
|
||||
$('#reserveReadyInsertModal #list1 input[name="modalUserName"]').val(user.username);
|
||||
$('#reserveReadyInsertModal #list1 .modalPhoneNumber').text(fn_setFormatPhone(user.phonenumber));
|
||||
|
||||
if("T" == user.userType2){
|
||||
$('#reserveReadyInsertModal #list1 .modalUserType').html('-');
|
||||
$('#reserveReadyInsertModal #list1 .modalBirthday').text('-');
|
||||
$('#reserveReadyInsertModal #list1 .modalGender').text('-');
|
||||
$('#reserveReadyInsertModal #list1 .modalNationality').text('-');
|
||||
$('#reserveReadyInsertModal #list1 .modalMemo').text('-');
|
||||
} else {
|
||||
$('#reserveReadyInsertModal #list1 .modalUserType').html('<img src="'+user.filepath+'" alt="고객구분" />');
|
||||
$('#reserveReadyInsertModal #list1 .modalBirthday').text(user.birthday);
|
||||
$('#reserveReadyInsertModal #list1 .modalGender').text(user.gender);
|
||||
$('#reserveReadyInsertModal #list1 .modalNationality').text(user.nationalityname);
|
||||
$('#reserveReadyInsertModal #list1 .modalMemo').text(user.memo);
|
||||
}
|
||||
} else {
|
||||
modalEvent.danger("조회 오류", data.msgDesc);
|
||||
}
|
||||
},
|
||||
error : function(xhr, status, error) {
|
||||
modalEvent.danger("조회 오류", "조회 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
|
||||
},
|
||||
beforeSend:function(){
|
||||
|
||||
},
|
||||
complete:function(){
|
||||
|
||||
}
|
||||
});
|
||||
},
|
||||
save:function(state) {
|
||||
|
||||
// tab1 : 바로접수
|
||||
let muUserId = $('#reserveReadyInsertModal #list1 input[name="modalUserId"]').val();
|
||||
let userName = $('#reserveReadyInsertModal #list1 input[name="modalUserName"]').val();
|
||||
let reserveDate = $('#reserveReadyInsertModal #list1 input[name="modalReserveDate"]').val();
|
||||
let reserveTime = $('#reserveReadyInsertModal #list1 input[name="modalReserveTime"]').val();
|
||||
let reserveCategoryItemCode = $('#reserveReadyInsertModal #list1 input[name="modalReserveCategoryItemCode"]').val();
|
||||
let reserveCategoryItemName = $('#reserveReadyInsertModal #list1 input[name="modalReserveCategoryItemCode"]').siblings('button').text();
|
||||
let muTreatmentProcedureId = $('#reserveReadyInsertModal #list1 input[name="modalTreatmentProcedureId"]').val();
|
||||
let reserveMemberId = $('#reserveReadyInsertModal #list1 input[name="modalReserveMemberId"]').val();
|
||||
let etc = $('#reserveReadyInsertModal #list1 input[name="modalEtc"]').val();
|
||||
let muMemberId = $('#reserveReadyInsertModal #list1 input[name="modalMemberId"]').val();
|
||||
|
||||
if(true != fn_emptyCheck(muUserId)){
|
||||
modalEvent.warning("등록", "고객 정보가 없습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
if(true != fn_emptyCheck(userName)){
|
||||
modalEvent.warning("등록", "고객명 정보가 없습니다.");
|
||||
return;
|
||||
}
|
||||
else{
|
||||
if(true != fn_lengthCheck(userName, 255)) {
|
||||
modalEvent.warning("등록", "고객명 정보는 255자를 넘을 수 없습니다.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if(true != fn_emptyCheck(reserveDate)){
|
||||
modalEvent.warning("등록", "예약일자 정보가 없습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
if(true != fn_emptyCheck(reserveTime)){
|
||||
modalEvent.warning("등록", "예약시간 정보가 없습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
if(true != fn_emptyCheck(reserveCategoryItemCode)){
|
||||
modalEvent.warning("등록", "예약경로 정보가 없습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
if(true != fn_emptyCheck(muTreatmentProcedureId)){
|
||||
modalEvent.warning("등록", "진료유형 정보가 없습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
if(true != fn_emptyCheck(reserveMemberId)){
|
||||
modalEvent.warning("등록", "닥터/상담자 정보가 없습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
if(true != fn_emptyCheck(muMemberId)){
|
||||
modalEvent.warning("등록", "담당자 정보가 없습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
modalEvent.info("등록", "바로접수 정보를 등록하시겠습니까?", function(){
|
||||
let formData = new FormData();
|
||||
formData.append("muUserId", muUserId);
|
||||
formData.append("userName", userName);
|
||||
formData.append("reserveDate", reserveDate);
|
||||
formData.append("reserveTime", reserveTime);
|
||||
formData.append("reserveCategoryItemCode", reserveCategoryItemCode);
|
||||
formData.append("reserveCategoryItemName", reserveCategoryItemName);
|
||||
formData.append("muTreatmentProcedureId", muTreatmentProcedureId);
|
||||
formData.append("reserveMemberId", reserveMemberId);
|
||||
formData.append("etc",etc);
|
||||
formData.append("muMemberId",muMemberId);
|
||||
|
||||
$.ajax({
|
||||
url: encodeURI('/webreserve/insertReserveReady.do'),
|
||||
data: formData,
|
||||
dataType: "json",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
type: 'POST',
|
||||
async: true,
|
||||
success: function(data){
|
||||
if('0'==data.msgCode){
|
||||
modalEvent.success("등록 성공", data.msgDesc, function(){
|
||||
if( reserveReadyInsertModal.callback ) {
|
||||
reserveReadyInsertModal.callback();
|
||||
}
|
||||
reserveReadyInsertModal.close();
|
||||
});
|
||||
}
|
||||
else{
|
||||
modalEvent.danger("등록 오류", data.msgDesc);
|
||||
}
|
||||
},
|
||||
error : function(xhr, status, error) {
|
||||
modalEvent.danger("등록 오류", "등록 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
|
||||
},
|
||||
beforeSend:function(){
|
||||
|
||||
},
|
||||
complete:function(){
|
||||
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
/*
|
||||
* 팝업
|
||||
* callback : 콜백함수, reqParam: 팝업파라미터
|
||||
*/
|
||||
popup:function(callback, reqParam) {
|
||||
// 초기화 후 열기
|
||||
reserveReadyInsertModal.init();
|
||||
|
||||
//콜백함수 지정.
|
||||
reserveReadyInsertModal.callback = callback;
|
||||
reserveReadyInsertModal.reqParam = reqParam;
|
||||
reserveReadyInsertModal.dataList = null;
|
||||
|
||||
// tab1 : 예약
|
||||
reserveReadyInsertModal.addRow();
|
||||
|
||||
reserveReadyInsertModal.searchUser();
|
||||
|
||||
setTimeout(function(){
|
||||
$('#reserveReadyInsertModal').modal({keyboard:false, backdrop:'static'});
|
||||
}, 200);
|
||||
},
|
||||
/*
|
||||
* 팝업 닫기
|
||||
*/
|
||||
close:function() {
|
||||
$('#reserveReadyInsertModal').modal('hide');
|
||||
|
||||
setTimeout(function(){
|
||||
$('#reserveReadyInsertModal').remove();
|
||||
},500);
|
||||
},
|
||||
HtmlTemplate : `
|
||||
<div id="reserveReadyInsertModal" class="modal reservation_modal fade" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<p class="title">바로접수</p>
|
||||
</div>
|
||||
|
||||
<div class="modal-body">
|
||||
<div class="tab-content">
|
||||
<div role="tabpanel" class="tab-pane active" id="list1">
|
||||
<div class="form_box">
|
||||
<div class="input_box first">
|
||||
<label>고객</label>
|
||||
<div class="search_box" data-toggle="modal" data-target=".client_inquiry" style="transition: all 0.2s ease-in-out 0s;">
|
||||
<img src="/image/web/search_B.svg" alt="search"/>
|
||||
<input type="hidden" name="modalUserId" />
|
||||
<input type="text" name="modalUserName" placeholder="검색 (고객명, 연락처, 생년월일)" readonly/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ul class="modal_table_box">
|
||||
<li class="modal_table_title">
|
||||
<p>고객등급</p>
|
||||
<p>생년월일</p>
|
||||
<p>성별</p>
|
||||
<p>국적</p>
|
||||
<p>연락처</p>
|
||||
<p>특이사항</p>
|
||||
</li>
|
||||
<li class="modal_table_content">
|
||||
<p class="modalUserType">-</p>
|
||||
<p class="modalBirthday">-</p>
|
||||
<p class="modalGender">-</p>
|
||||
<p class="modalNationality">-</p>
|
||||
<p class="modalPhoneNumber">-</p>
|
||||
<p class="modalMemo">-</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="modal_table_box last reserveRowBox">
|
||||
<li class="modal_table_title">
|
||||
<p>예약일시</p>
|
||||
<p>예약경로</p>
|
||||
<p>진료유형</p>
|
||||
<p>닥터/상담</p>
|
||||
<p>예약메모</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="input_box">
|
||||
<label>담당자</label>
|
||||
<input type="hidden" name="modalMemberId"/>
|
||||
|
||||
<div class="search_box member_box" style="display:none;">
|
||||
<img src="/image/web/search_B.svg" alt="search"/>
|
||||
<input type="text" name="modalMemberName" readonly style="padding-left: 40px;"/>
|
||||
<button class="cancel_btn" style="position: relative; font-size: 14px; font-weight: 700; color: rgb(57, 133, 234); padding: 0px 10px; background: none;">취소</button>
|
||||
</div>
|
||||
|
||||
<div class="read_box">
|
||||
<input type="text" name="modalMemberName" placeholder="" disabled>
|
||||
<button class="manager_btn"><img src="/image/web/menu_6_off.svg" alt="수정하기"></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form_footer_box">
|
||||
<div class="btn_box">
|
||||
<button type="button" class="cancel_btn btnCancle">취소</button>
|
||||
<button type="button" class="registration_bth btnSave">저장</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
`
|
||||
};
|
||||
|
||||
/* ##############################################################
|
||||
설 명 : [Modal]직원 검색 팝업
|
||||
작성일 : 2024. 04. 02.
|
||||
작성자 : NTsoft
|
||||
수정일 수정자 수정내용
|
||||
------- -------- ---------------------------
|
||||
2024. 03. 14. NTsoft 최초 생성
|
||||
*/
|
||||
let memberSearchModal = {
|
||||
callback: null,
|
||||
reqParam: null,
|
||||
dataList: null,
|
||||
/* 모달 초기화 작업 */
|
||||
init: function () {
|
||||
$('#memberSearchModal').remove();
|
||||
memberSearchModal.searchMemberList();
|
||||
$('body').append(this.HtmlTemplate);
|
||||
//그리드 이벤트
|
||||
this.setEvent();
|
||||
},
|
||||
/* 그리드 이벤트 설정 */
|
||||
setEvent: function () {
|
||||
$(document).on('keypress', '#memberSearchKeyword', function(e) {
|
||||
fn_attendanceEnter(e);
|
||||
});
|
||||
$('#memberSearchModal .btnCancle').on("click", function () {
|
||||
memberSearchModal.close();
|
||||
});
|
||||
|
||||
$('#memberSearchModal .btnSave').on("click", function () {
|
||||
memberSearchModal.save();
|
||||
});
|
||||
// 검색 버튼 이벤트 바인딩 추가
|
||||
$(document).on('click', '#searchMemberBtn', function() {
|
||||
let searchKeyword = document.querySelector("#memberSearchKeyword").value;
|
||||
memberSearchModal.searchMemberList(searchKeyword);
|
||||
});
|
||||
},
|
||||
/* 데이터 선택 */
|
||||
setSelect: function (selectNumber) {
|
||||
let selectMemberName = $('#' + selectNumber).text();
|
||||
let selectUserPhoneNumber = $('#' + selectNumber).closest('tr').find('td:eq(3)').text();
|
||||
let obj=
|
||||
{'selectMemberId': selectNumber,
|
||||
'selectMemberName': selectMemberName,
|
||||
'introUserPhoneNumber':selectUserPhoneNumber};
|
||||
if (memberSearchModal.callback) {
|
||||
memberSearchModal.callback(obj);
|
||||
|
||||
}
|
||||
memberSearchModal.close();
|
||||
},
|
||||
searchMemberList:function (searchKeyword){
|
||||
|
||||
let formData = new FormData();
|
||||
formData.append("memberSearchKeywordParam", searchKeyword??'');
|
||||
|
||||
$.ajax({
|
||||
url: encodeURI('/kiosk/getMemberList.do'),
|
||||
data: formData,
|
||||
dataType: "json",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
type: 'POST',
|
||||
async: true,
|
||||
success: function (data) {
|
||||
if ('0' == data.msgCode) {
|
||||
let tbody = document.querySelector('.list1_modal_table tbody');
|
||||
while (tbody.firstChild) {
|
||||
tbody.removeChild(tbody.firstChild);
|
||||
}
|
||||
data.rows.forEach(function(member) {
|
||||
let tr = document.createElement('tr');
|
||||
tr.innerHTML = '<td id="' + member.mumemberid + '" style="color: #3985EA;cursor: pointer;">' + member.membername+'('+member.loginid+')</td>' +
|
||||
'<td>' + fn_setFormatPhone(member.phonenumber) + '</td>' +
|
||||
'<td>' + member.groupname + '</td>' +
|
||||
'<td>' + member.dutyname + '</td>'+
|
||||
'<td>' + member.authname + '</td>';
|
||||
tbody.appendChild(tr);
|
||||
});
|
||||
tbody.addEventListener('click', function(event) {
|
||||
if (event.target.tagName === 'TD' && event.target.id) {
|
||||
memberSearchModal.setSelect(event.target.id);
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
error: function (xhr, status, error) {
|
||||
modalEvent.danger("조회 오류", "조회 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
|
||||
},
|
||||
beforeSend: function () {
|
||||
},
|
||||
complete: function () {
|
||||
},
|
||||
})
|
||||
},
|
||||
/*
|
||||
* 팝업
|
||||
* callback : 콜백함수, reqParam: 팝업파라미터
|
||||
*/
|
||||
popup: function (callback, reqParam) {
|
||||
// 초기화 후 열기
|
||||
memberSearchModal.init();
|
||||
|
||||
//콜백함수 지정.
|
||||
memberSearchModal.callback = callback;
|
||||
memberSearchModal.reqParam = reqParam;
|
||||
memberSearchModal.dataList = null;
|
||||
|
||||
setTimeout(function () {
|
||||
$('#memberSearchModal').modal('show')
|
||||
}, 200);
|
||||
|
||||
},
|
||||
/*
|
||||
* 팝업 닫기
|
||||
*/
|
||||
close: function () {
|
||||
$('#memberSearchModal').modal('hide');
|
||||
|
||||
setTimeout(function(){
|
||||
$('#memberSearchModal').remove();
|
||||
},500);
|
||||
},
|
||||
HtmlTemplate :`
|
||||
<div id="memberSearchModal" class="modal list1_diagnosis fade" tabIndex="-1" aria-labelledby="exampleModalLabel" aria-hidden="">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="list1_modal_header">
|
||||
<label>직원검색</label>
|
||||
</div>
|
||||
<div class="list1_modal_body">
|
||||
<div class="input_box">
|
||||
<div class="search_box">
|
||||
<img src="../../../../image/web/search_B.svg"/>
|
||||
<input id="memberSearchKeyword" type="text" placeholder="이름, 연락처"/>
|
||||
</div>
|
||||
<button id="searchMemberBtn">검색</button>
|
||||
</div>
|
||||
<div class="list1_modal_table">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>이름</th>
|
||||
<th>연락처</th>
|
||||
<th>조직</th>
|
||||
<th>직무</th>
|
||||
<th>권한그룹</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>홍직원(test1)</td>
|
||||
<td>010-0000-0000</td>
|
||||
<td>피부과</td>
|
||||
<td>닥터</td>
|
||||
<td>관리자</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="list1_modal_footer">
|
||||
<div class="btn_box">
|
||||
<button type="button" class="cancel_btn btnCancle">취소</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>`
|
||||
};
|
||||
|
||||
</script>
|
||||
</th:block>
|
||||
</html>
|
||||
699
src/main/resources/templates/kiosk/new-patient.html
Normal file
699
src/main/resources/templates/kiosk/new-patient.html
Normal file
@@ -0,0 +1,699 @@
|
||||
<!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="/web/include/head :: layout_head"></th:block>
|
||||
<th:block layout:fragment="layout_css">
|
||||
</th:block>
|
||||
</head>
|
||||
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script src="/js/kiosk/common.js"></script>
|
||||
</th:block>
|
||||
<th:block th:replace="/web/include/modal :: layout_modal"></th:block>
|
||||
|
||||
<th:block layout:fragment="layout_content">
|
||||
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_popup">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
userInsertModal2.popup();
|
||||
});
|
||||
let userInsertModal2 = {
|
||||
callback : null,
|
||||
reqParam : null,
|
||||
dataList : null,
|
||||
/* 모달 초기화 작업 */
|
||||
init : function () {
|
||||
$('#userInsertModal2').remove();
|
||||
$('body').append(this.HtmlTemplate);
|
||||
//그리드 이벤트
|
||||
this.setEvent();
|
||||
},
|
||||
/* 그리드 이벤트 설정 */
|
||||
setEvent:function() {
|
||||
$('#userInsertModal2 .btnCancle').on("click", function(){
|
||||
history.back();
|
||||
});
|
||||
|
||||
$('#userInsertModal2 .btnSave').on("click", function(){
|
||||
userInsertModal2.save();
|
||||
});
|
||||
|
||||
userInsertModal2.setTreatmentOption();
|
||||
userInsertModal2.setSelectBox(3);
|
||||
|
||||
$('#userInsertModal2 input[name="modalBirthday"]').datetimepicker({
|
||||
allowInputToggle: true,
|
||||
format: 'YYYY-MM-DD',
|
||||
useCurrent: false // 현재 날짜 자동 선택
|
||||
}).on("dp.change", function(e){
|
||||
// 날짜가 변경될 때 실행
|
||||
// console.log(e.oldDate.format("YYYY-MM-DD"));
|
||||
// console.log(e.date.format("YYYY-MM-DD"));
|
||||
let selectDate = e.date.format("YYYY-MM-DD");
|
||||
|
||||
let ageText = userInsertModal2.calculateAge(selectDate);
|
||||
$("#userInsertModal2 .txtAge").text(ageText);
|
||||
|
||||
|
||||
selectDate = selectDate.replaceAll("-", "");
|
||||
$('#userInsertModal2 input[name="modalUserRrn1"]').val(selectDate.substring(2, selectDate.length));
|
||||
});
|
||||
|
||||
// 국적선택에 따른 여권번호/외국인 번호 활성화 이벤트
|
||||
userInsertModal2.isForeignerEvent();
|
||||
|
||||
userInsertModal2.clickEvent();
|
||||
|
||||
// 연락처 형식 이벤트
|
||||
document.querySelector('#userInsertModal2 input[name="modalPhoneNumber"]').addEventListener("input", function(event) {
|
||||
userInsertModal2.formatPhoneNumber(this);
|
||||
});
|
||||
|
||||
// 보조 연락처 형식 이벤트
|
||||
document.querySelector('#userInsertModal2 input[name="modalPhoneNumber2"]').addEventListener("input", function(event) {
|
||||
userInsertModal2.formatPhoneNumber(this);
|
||||
});
|
||||
|
||||
// 외국인 등록번호 앞자리 이벤트
|
||||
document.querySelector('#userInsertModal2 input[name="modalUserArc1"]').addEventListener("input", function(event) {
|
||||
userInsertModal2.formatRrn1(this);
|
||||
});
|
||||
|
||||
// 외국인 등록번호 뒷자리 이벤트
|
||||
document.querySelector('#userInsertModal2 input[name="modalUserArc2"]').addEventListener("input", function(event) {
|
||||
userInsertModal2.formatRrn2(this);
|
||||
});
|
||||
|
||||
// 주민등록번호 앞자리 이벤트
|
||||
document.querySelector('#userInsertModal2 input[name="modalUserRrn1"]').addEventListener("input", function(event) {
|
||||
userInsertModal2.formatRrn1(this);
|
||||
});
|
||||
|
||||
// 주민등록번호 뒷자리 이벤트
|
||||
document.querySelector('#userInsertModal2 input[name="modalUserRrn2"]').addEventListener("input", function(event) {
|
||||
userInsertModal2.formatRrn2(this);
|
||||
});
|
||||
|
||||
// 추천인 이벤트
|
||||
document.querySelector('#userInsertModal2 .searchIntroUser').addEventListener("click", function(){
|
||||
userInsertModal2.listOpen();
|
||||
});
|
||||
|
||||
},
|
||||
/* 데이터 선택 */
|
||||
setSelect:function(selectNumber) {
|
||||
var checkedData = dataList[selectNumber];
|
||||
if(dataList==null||checkedData==undefined){
|
||||
return ;
|
||||
}
|
||||
|
||||
if( userInsertModal2.callback ) {
|
||||
userInsertModal2.callback(checkedData);
|
||||
}
|
||||
userInsertModal2.close();
|
||||
},
|
||||
/* 콤보 셋팅 */
|
||||
setSelectBox:function(num){
|
||||
let category=fn_selectCategoryList();
|
||||
for(let i = 0; i < num; i++){
|
||||
let categoryCode = category[i].categorycode;
|
||||
fn_selectModalOtherOption(categoryCode, "userInsertModal2");
|
||||
}
|
||||
},
|
||||
/* selectBox 이벤트 */
|
||||
clickEvent:function() {
|
||||
// 옵션 선택 이벤트
|
||||
$('#userInsertModal2 .select_box').on('click', 'li', function (e) {
|
||||
let target = $(this);
|
||||
|
||||
// 옵션 선택 이벤트 핸들러
|
||||
let selectedOption = target.text();
|
||||
if ('' !== selectedOption) {
|
||||
// 선택된 옵션의 텍스트를 .label 요소에 설정
|
||||
target.closest('.select_box').find('.label').text(selectedOption);
|
||||
} else {
|
||||
// 선택된 옵션이 텍스트가 아닌 경우(예: 이미지), .html()을 사용
|
||||
selectedOption = target.html();
|
||||
target.closest('.select_box').find('.label').html(selectedOption);
|
||||
}
|
||||
target.closest('.select_box').find('input')?.val(target.attr('id')??selectedOption);
|
||||
target.closest('.select_box').find('.option_list_item').removeClass('selected');
|
||||
target.addClass('selected');
|
||||
});
|
||||
|
||||
},
|
||||
/* 휴대폰 번호 숫자입력 제한 */
|
||||
formatPhoneNumber:function(inputElement){
|
||||
// 입력된 키가 숫자가 아닌 경우 입력을 막음
|
||||
inputElement.value = inputElement.value.replace(/\D/g, '');
|
||||
let phoneNumber = inputElement.value;
|
||||
|
||||
if (phoneNumber.length > 11) {
|
||||
inputElement.value = phoneNumber.substring(0, 11)
|
||||
}
|
||||
inputElement.value = fn_setFormatPhone(phoneNumber);
|
||||
},
|
||||
/* 주민번호 숫자입력 제한 */
|
||||
formatRrn1:function(inputElement){
|
||||
// 입력된 키가 숫자가 아닌 경우 입력을 막음
|
||||
inputElement.value = inputElement.value.replace(/\D/g, '');
|
||||
let Rrn1 = inputElement.value;
|
||||
|
||||
if (Rrn1.length > 6) {
|
||||
inputElement.value=Rrn1.substring(0, 6)
|
||||
}
|
||||
},
|
||||
/* 주민번호 숫자입력 제한 2 */
|
||||
formatRrn2:function(inputElement){
|
||||
inputElement.value = inputElement.value.replace(/\D/g, '');
|
||||
let Rrn1 = inputElement.value;
|
||||
|
||||
if (Rrn1.length > 7) {
|
||||
inputElement.value=Rrn1.substring(0, 7)
|
||||
}
|
||||
},
|
||||
/* 캘린더 날짜 변경 시 만나이 계산 */
|
||||
calculateAge:function(param){
|
||||
let birthday = param;
|
||||
let birthDate = new Date(birthday);
|
||||
let today = new Date();
|
||||
let age = today.getFullYear() - birthDate.getFullYear();
|
||||
let month = today.getMonth() - birthDate.getMonth();
|
||||
|
||||
if (0 > month || (0 === month && today.getDate() < birthDate.getDate())) {
|
||||
age--;
|
||||
}
|
||||
|
||||
return `만 ${age}세`;
|
||||
},
|
||||
/* 국적선텍에 따른 여권번호/외국인 번호 활성화 event */
|
||||
isForeignerEvent:function(){
|
||||
document.querySelectorAll('#userInsertModal2 .local').forEach(element => {
|
||||
element.addEventListener('click', function () {
|
||||
document.querySelectorAll('#userInsertModal2 .local_box').forEach(box => box.style.display = 'block');
|
||||
document.querySelectorAll('#userInsertModal2 .foreigner_box').forEach(box => box.style.display = 'none');
|
||||
});
|
||||
});
|
||||
|
||||
document.querySelectorAll('#userInsertModal2 .foreigner').forEach(element => {
|
||||
element.addEventListener('click', function () {
|
||||
document.querySelectorAll('#userInsertModal2 .local_box').forEach(box => box.style.display = 'none');
|
||||
document.querySelectorAll('#userInsertModal2 .foreigner_box').forEach(box => box.style.display = 'block');
|
||||
});
|
||||
});
|
||||
|
||||
document.querySelectorAll('#userInsertModal2 .passport_number_option').forEach(element => {
|
||||
element.addEventListener('click', function () {
|
||||
document.querySelectorAll('#userInsertModal2 .foreigner_number_box').forEach(box => {
|
||||
box.style.display = 'none';
|
||||
box.querySelector('input').value = '';
|
||||
});
|
||||
document.querySelectorAll('#userInsertModal2 .passport_number_box').forEach(box => box.style.display = 'block');
|
||||
});
|
||||
});
|
||||
|
||||
document.querySelectorAll('#userInsertModal2 .foreigner_number_option').forEach(element => {
|
||||
element.addEventListener('click', function () {
|
||||
document.querySelectorAll('#userInsertModal2 .passport_number_box').forEach(box => {
|
||||
box.style.display = 'none';
|
||||
box.querySelector('input').value = '';
|
||||
});
|
||||
document.querySelectorAll('#userInsertModal2 .foreigner_number_box').forEach(box => box.style.display = 'block');
|
||||
});
|
||||
});
|
||||
},
|
||||
/* 추천인 검색 팝업 open */
|
||||
listOpen:function(selectNumber) {
|
||||
let reqParam = {};
|
||||
userIntroSelectModal.popup(function (obj, reqParam) {
|
||||
document.querySelector("#userInsertModal2 input[name='modalRecommendId']").dataset.userid=obj.muuserid;
|
||||
document.querySelector("#userInsertModal2 input[name='modalRecommendId']").value = obj.username;
|
||||
}, reqParam);
|
||||
},
|
||||
/* 관심진료 옵션 셋팅*/
|
||||
setTreatmentOption:function(selectedGroupId){
|
||||
let formData = new FormData();
|
||||
$.ajax({
|
||||
url: encodeURI('/kiosk/getTreatmentOptionList.do'),
|
||||
data: formData,
|
||||
dataType: "json",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
type: 'POST',
|
||||
async: false,
|
||||
success: function(data){
|
||||
if('0'==data.msgCode){
|
||||
let listHTML = '';
|
||||
|
||||
for(let i = 0; i < data.rows.length; i++){
|
||||
let treatmentName = data.rows[i].treatmentname;
|
||||
let treatmentId = data.rows[i].mutreatmentid;
|
||||
let selectedYn = '';
|
||||
if(treatmentId === selectedGroupId) {
|
||||
selectedYn = 'selected';
|
||||
$("#userInsertModal2 .modalTreatment").parent().find('button').text(treatmentName);
|
||||
}
|
||||
|
||||
listHTML += `<li class="option_list_item ${selectedYn}" id="${treatmentId}">${treatmentName}</li>`;
|
||||
}
|
||||
$("#userInsertModal2 .modalTreatment").empty().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(){
|
||||
}
|
||||
});
|
||||
},
|
||||
/* 주민번호, 외국인 등록번호 및 생년월일, 성별 유효성검사 */
|
||||
userRrnCheck:function(idNumber){
|
||||
let year = idNumber.substring(0, 2);
|
||||
let month = idNumber.substring(2, 4);
|
||||
let day = idNumber.substring(4, 6);
|
||||
let yearPrefix;
|
||||
let genderCode = idNumber.charAt(6);
|
||||
|
||||
switch (genderCode) {
|
||||
case '1':
|
||||
case '2':
|
||||
case '5':
|
||||
case '6':
|
||||
yearPrefix = '19'
|
||||
break;
|
||||
case '3':
|
||||
case '4':
|
||||
case '7':
|
||||
case '8':
|
||||
yearPrefix = '20';
|
||||
break;
|
||||
default:
|
||||
console.log("잘못된 주민등록번호입니다.");
|
||||
return;
|
||||
}
|
||||
let genderInput = document.querySelector('#userInsertModal2 input[name="modalGender"]:checked').value; // 성별 입력값 ('M' 또는 'F')
|
||||
let birthDateInput = document.querySelector('#userInsertModal2 input[name="modalBirthday"]').value; // 'yyyy-mm-dd' 형식
|
||||
|
||||
// 성별 검증
|
||||
let genderMatch = ((genderCode === '1' || genderCode === '3' || genderCode === '5' || genderCode === '7') && genderInput === 'M') ||
|
||||
((genderCode === '2' || genderCode === '4' || genderCode === '6' || genderCode === '8') && genderInput === 'F');
|
||||
|
||||
let fullYear = yearPrefix + year;
|
||||
let birth = `${fullYear}-${month}-${day}`;
|
||||
|
||||
// 생년월일 및 성별 일치 검증
|
||||
if (birth === birthDateInput && genderMatch) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
/****************************************************************************
|
||||
* 고객 정보 등록
|
||||
****************************************************************************/
|
||||
//저장
|
||||
save:function() {
|
||||
let nationalitySelectYn = $("#userInsertModal2 .nationality_pop .option_list_item.selected").length==0?"N":"Y";
|
||||
let nationalityCode = "";
|
||||
let nationality = "";
|
||||
let localYn = "";
|
||||
if("Y" == nationalitySelectYn){
|
||||
nationalityCode = $("#userInsertModal2 .nationality_pop .option_list_item.selected").data('code');
|
||||
nationality = $("#userInsertModal2 .nationality_pop .option_list_item.selected").attr('id').split('_')[1];
|
||||
localYn = $("#userInsertModal2 .nationality_pop .option_list_item.selected").hasClass('local');
|
||||
}
|
||||
let userName = $('#userInsertModal2 input[name="modalUserName"]').val().trim();
|
||||
let userRrn1 = $('#userInsertModal2 input[name="modalUserRrn1"]').val().trim();
|
||||
let userRrn2 = $('#userInsertModal2 input[name="modalUserRrn2"]').val().trim();
|
||||
let userPno = $('#userInsertModal2 input[name="modalUserPno"]').val().trim();
|
||||
let userArc1 = $('#userInsertModal2 input[name="modalUserArc1"]').val().trim();
|
||||
let userArc2 = $('#userInsertModal2 input[name="modalUserArc2"]').val().trim();
|
||||
let phoneNumber = $('#userInsertModal2 input[name="modalPhoneNumber"]').val().replace(/-/g, "");
|
||||
let phoneNumber2 = $('#userInsertModal2 input[name="modalPhoneNumber2"]').val().replace(/-/g, "");
|
||||
|
||||
let refusePhotoYn = $("#userInsertModal2 input[name='modalRefusePhotoYn']:checked").val();
|
||||
let smsYn = $("#userInsertModal2 input[name='modalSmsYn']:checked").val();
|
||||
let gender = $("#userInsertModal2 input[name='modalGender']:checked").val()==null?"":$("#userInsertModal2 input[name='modalGender']:checked").val();
|
||||
let channelSelectYn = $("#userInsertModal2 .channel .option_list_item.selected").length==0?"N":"Y";
|
||||
let channel = "";
|
||||
let channelCode = "";
|
||||
if("Y" == channelSelectYn){
|
||||
channel = ($("#userInsertModal2 .channel .option_list_item.selected").attr("id")||'').split('_')[1]||'';
|
||||
channelCode = $("#userInsertModal2 .channel .option_list_item.selected").data('code');
|
||||
}
|
||||
let muGroupIdSelectYn = $("#userInsertModal2 .modalTreatment .option_list_item.selected").length==0?"N":"Y";
|
||||
let muGroupId = "";
|
||||
if("Y" == muGroupIdSelectYn){
|
||||
muGroupId = $("#userInsertModal2 .modalTreatment .option_list_item.selected").attr("id");
|
||||
}
|
||||
let userTypeCodeSelectYn = $("#userInsertModal2 .userType_pop .option_list_item.selected").length==0?"N":"Y";
|
||||
let userTypeCode = "";
|
||||
let userType = "";
|
||||
if("Y" == userTypeCodeSelectYn){
|
||||
userTypeCode = $("#userInsertModal2 .userType_pop .option_list_item.selected").data('code');
|
||||
userType = $("#userInsertModal2 .userType_pop .option_list_item.selected").attr('id').split('_')[1];
|
||||
}
|
||||
let memo = $('#userInsertModal2 textarea[name="modalMemo"]').val();
|
||||
let etc = $('#userInsertModal2 textarea[name="modalEtc"]').val();
|
||||
let birthday = $('#userInsertModal2 input[name="modalBirthday"]').val();
|
||||
|
||||
|
||||
let regRrn = /^[0-9]{6}-[1-4][0-9]{6}$/; // 주민등록번호 형식
|
||||
let regForeigner = /^[0-9]{6}-[5-8][0-9]{6}$/; // 외국인 등록번호 형식
|
||||
let regPhone = /^[0-9]{8,11}$/; // 전화번호 형식
|
||||
|
||||
let identification = $("#userInsertModal2 .identification .selected").attr("id");
|
||||
let introUserId = document.querySelector("#userInsertModal2 input[name='modalRecommendId']").dataset.userId;
|
||||
|
||||
|
||||
if(!fn_emptyCheck(nationality)){
|
||||
modalEvent.warning("등록", "국적을 선택하세요.");
|
||||
return;
|
||||
}
|
||||
if(!fn_emptyCheck(userName)){
|
||||
modalEvent.warning("등록", "고객명을 입력하세요.",()=>{
|
||||
$('#userInsertModal2 input[name="modalUserName"]').focus();
|
||||
});
|
||||
return;
|
||||
}
|
||||
else{
|
||||
if(!fn_lengthCheck(userName, 35)) {
|
||||
modalEvent.warning("등록", "이름 정보는 35자를 넘을 수 없습니다.",()=>{
|
||||
$('#userInsertModal2 input[name="modalUserName"]').focus();
|
||||
});
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if(!fn_emptyCheck(channel)){
|
||||
channel = '';
|
||||
}
|
||||
|
||||
if(!fn_emptyCheck(channelCode)){
|
||||
channelCode = '';
|
||||
}
|
||||
|
||||
if(!fn_emptyCheck(muGroupId)){
|
||||
muGroupId = '';
|
||||
}
|
||||
|
||||
if(!fn_emptyCheck(introUserId)){
|
||||
introUserId = '';
|
||||
}
|
||||
|
||||
/*if(!fn_emptyCheck(userType)){
|
||||
modalEvent.warning("등록", "고객구분을 선택하세요.");
|
||||
return;
|
||||
}*/
|
||||
if(!fn_emptyCheck(phoneNumber)){
|
||||
modalEvent.warning("등록", "연락처 정보를 입력하세요.",()=>{
|
||||
$('#userInsertModal2 input[name="modalPhoneNumber"]').focus();
|
||||
});
|
||||
return;
|
||||
}
|
||||
else if(!regPhone.test(phoneNumber)){
|
||||
modalEvent.warning("등록", "연락처 정보는 숫자 8~11자리여야 합니다",()=>{
|
||||
$('#userInsertModal2 input[name="modalPhoneNumber"]').focus();
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (phoneNumber2 && !regPhone.test(phoneNumber2)) {
|
||||
modalEvent.warning("등록", "유효하지 않은 보조 연락처 형식입니다.",()=>{
|
||||
$('#userInsertModal2 input[name="modalPhoneNumber2"]').focus();
|
||||
});
|
||||
return;
|
||||
}
|
||||
// 국적이 KR일 때 주민등록번호 검사
|
||||
if (localYn) {
|
||||
} else {
|
||||
userRrn1 = "";
|
||||
userRrn2 = "";
|
||||
|
||||
}
|
||||
|
||||
|
||||
modalEvent.info("등록", "고객 정보를 등록하시겠습니까?", function(){
|
||||
let formData = new FormData();
|
||||
//formData.append("muUserId", muUserId);
|
||||
formData.append("nationality", nationality);
|
||||
formData.append("nationalityCode", nationalityCode);
|
||||
formData.append("localYn", localYn);
|
||||
formData.append("userName", userName);
|
||||
formData.append("userRrn1", userRrn1);
|
||||
formData.append("userRrn2", userRrn2);
|
||||
formData.append("userPno", userPno);
|
||||
formData.append("userArc1", userArc1);
|
||||
formData.append("userArc2", userArc2);
|
||||
formData.append("phoneNumber", phoneNumber.replace(/-/g, ""));
|
||||
formData.append("phoneNumber2", phoneNumber2.replace(/-/g, ""));
|
||||
// formData.append("email", email);
|
||||
// formData.append("address", streetAddress);
|
||||
// formData.append("addressDetails", addressDetails);
|
||||
// formData.append("zipCode", zipCode);
|
||||
formData.append("gender", gender);
|
||||
formData.append("channel", channel);
|
||||
formData.append("channelCode", channelCode);
|
||||
formData.append("muGroupId", muGroupId);
|
||||
formData.append("memo", memo);
|
||||
formData.append("etc", etc);
|
||||
formData.append("birthday", birthday);
|
||||
formData.append("userTypeCode", userTypeCode);
|
||||
formData.append("userType", userType);
|
||||
formData.append("refusePhotoYn", refusePhotoYn);
|
||||
formData.append("smsYn", smsYn);
|
||||
// formData.append("emailYn", emailYn);
|
||||
formData.append("identification", identification);
|
||||
formData.append("introUserId", introUserId);
|
||||
|
||||
$.ajax({
|
||||
url: encodeURI('/kiosk/putUser.do'),
|
||||
data: formData,
|
||||
dataType: "json",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
type: 'POST',
|
||||
async:true,
|
||||
success: function(data){
|
||||
if(data.msgCode=='0'){
|
||||
modalEvent.success("성공", data.msgDesc, function(){
|
||||
history.back();
|
||||
});
|
||||
|
||||
}else{
|
||||
modalEvent.danger("오류", data.msgDesc);
|
||||
}
|
||||
},
|
||||
error : function(xhr, status, error) {
|
||||
modalEvent.danger("등록 오류", "고객 등록 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
|
||||
},
|
||||
beforeSend: function () {
|
||||
},
|
||||
complete: function () {
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
/*
|
||||
* 팝업
|
||||
* callback : 콜백함수, reqParam: 팝업파라미터
|
||||
*/
|
||||
popup:function(callback, reqParam) {
|
||||
// 초기화 후 열기
|
||||
userInsertModal2.init();
|
||||
|
||||
//콜백함수 지정.
|
||||
userInsertModal2.callback = callback;
|
||||
userInsertModal2.reqParam = reqParam;
|
||||
userInsertModal2.dataList = null;
|
||||
|
||||
setTimeout(function(){
|
||||
$('#userInsertModal2').modal({keyboard:false, backdrop:'static'});
|
||||
}, 200);
|
||||
|
||||
},
|
||||
/*
|
||||
* 팝업 닫기
|
||||
*/
|
||||
close:function() {
|
||||
$('#userInsertModal2').modal('hide');
|
||||
|
||||
setTimeout(function(){
|
||||
$('#userInsertModal2').remove();
|
||||
},500);
|
||||
},
|
||||
HtmlTemplate :`
|
||||
<div id="userInsertModal2" class="modal new_patient_modal fade" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<p class="title">고객 등록</p>
|
||||
</div>
|
||||
|
||||
<div class="modal-body">
|
||||
<div class="form_box">
|
||||
<div class="input_box essential">
|
||||
<label>국적</label>
|
||||
<div class="select_box dropdown">
|
||||
<button class="label" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">국적</button>
|
||||
<ul class="select_option_list dropdown-menu nationality_pop">
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="input_box essential">
|
||||
<label>고객명</label>
|
||||
<input type="text" name="modalUserName" placeholder="이름"/>
|
||||
</div>
|
||||
<div class="input_box">
|
||||
<label>생년월일</label>
|
||||
<div class="date_box">
|
||||
<input name="modalBirthday" placeholder="연도-월-일"/>
|
||||
<img class="userBirthday" src="/image/web/calendar.svg" alt="calendar">
|
||||
</div>
|
||||
<p class="identity txtAge"></p>
|
||||
</div>
|
||||
<div class="input_box foreigner_box">
|
||||
<label>식별정보</label>
|
||||
<div class="select_box dropdown">
|
||||
<button class="label" type="button" data-toggle="dropdown" aria-haspopup="true"
|
||||
aria-expanded="false">여권번호
|
||||
</button>
|
||||
<ul class="select_option_list dropdown-menu identification">
|
||||
<li class="option_list_item passport_number_option selected" id="pno">여권번호</li>
|
||||
<li class="option_list_item foreigner_number_option" id="arc">외국인등록번호</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="passport_number_box">
|
||||
<div class="passport_number">
|
||||
<input name="modalUserPno" type="text" placeholder="여권번호"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="foreigner_number_box">
|
||||
<input name="modalUserArc1" type="text" placeholder="000000"/>
|
||||
<span class="slash">-</span>
|
||||
<input type="text" name="modalUserArc2" placeholder="000000"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="input_box local_box">
|
||||
<label>주민등록번호</label>
|
||||
<input name="modalUserRrn1" type="text" placeholder="000000"/>
|
||||
<span class="slash">-</span>
|
||||
<input name="modalUserRrn2" type="text" placeholder="000000"/>
|
||||
</div>
|
||||
<div class="input_box">
|
||||
<label>성별</label>
|
||||
<div class="gender">
|
||||
<input type="radio" name="modalGender" id="modalFemale" value="F"/>
|
||||
<label for="modalFemale" >여자</label>
|
||||
</div>
|
||||
<div class="gender">
|
||||
<input type="radio" name="modalGender" id="modalMale" value="M"/>
|
||||
<label for="modalMale">남자</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="input_box">
|
||||
<label>고객구분</label>
|
||||
<div class="select_box dropdown">
|
||||
<button class="label" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">고객구분</button>
|
||||
<ul class="select_option_list dropdown-menu userType_pop">
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="input_box two essential">
|
||||
<div class="first essential">
|
||||
<label>연락처</label>
|
||||
<input name="modalPhoneNumber" type="tel" placeholder="010-0000-0000"/>
|
||||
</div>
|
||||
<div>
|
||||
<label>보조연락처</label>
|
||||
<input name="modalPhoneNumber2" type="tel" placeholder="010-0000-0000"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="input_box">
|
||||
<label>사진 거부</label>
|
||||
<div class="gender">
|
||||
<input type="radio" name="modalRefusePhotoYn" id="modalRefusePhotoY" value="Y" checked/>
|
||||
<label for="modalRefusePhotoY">예</label>
|
||||
</div>
|
||||
<div class="gender">
|
||||
<input type="radio" name="modalRefusePhotoYn" id="modalRefusePhotoN" value="N"/>
|
||||
<label for="modalRefusePhotoN">아니오</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="input_box">
|
||||
<label>SMS 수신여부</label>
|
||||
<div class="gender">
|
||||
<input type="radio" name="modalSmsYn" id="modalSmsY" value="Y" checked/>
|
||||
<label for="modalSmsY">예</label>
|
||||
</div>
|
||||
<div class="gender">
|
||||
<input type="radio" name="modalSmsYn" id="modalSmsN" value="N"/>
|
||||
<label for="modalSmsN">아니오</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="title">기타 정보</p>
|
||||
<div class="input_box">
|
||||
<label>관심진료</label>
|
||||
<div class="select_box dropdown">
|
||||
<button class="label" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">관심진료 선택</button>
|
||||
<ul class="select_option_list dropdown-menu modalTreatment"></ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="input_box two">
|
||||
<div class="first">
|
||||
<label>방문경로</label>
|
||||
<div class="select_box dropdown">
|
||||
<button class="label" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">방문경로</button>
|
||||
<ul class="select_option_list dropdown-menu channel">
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<label>추천인</label>
|
||||
<div class="search_box searchIntroUser">
|
||||
<button class="search_btn"><img src="/image/web/search_B.svg" alt="search"/></button>
|
||||
<input type="text" name="modalRecommendId" placeholder="추천인 검색" readonly>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="textarea_box">
|
||||
<label>특이 사항</label>
|
||||
<p class="explanation">*시술 및 약물 관련 특이사항 기록</p>
|
||||
<textarea name="modalEtc" placeholder="내용을 입력해주세요."></textarea>
|
||||
</div>
|
||||
<div class="textarea_box">
|
||||
<label>고객 메모</label>
|
||||
<textarea name="modalMemo" placeholder="내용을 입력해주세요."></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<div class="btn_box">
|
||||
<button type="button" class="cancel_btn btnCancle">취소</button>
|
||||
<button type="button" class="registration_bth btnSave">등록</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>`
|
||||
};
|
||||
|
||||
|
||||
</script>
|
||||
</th:block>
|
||||
</html>
|
||||
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>
|
||||
1
src/main/resources/templates/notification.html
Normal file
1
src/main/resources/templates/notification.html
Normal file
@@ -0,0 +1 @@
|
||||
[(${message})]
|
||||
408
src/main/resources/templates/sample/consultation.html
Normal file
408
src/main/resources/templates/sample/consultation.html
Normal file
@@ -0,0 +1,408 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ko">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>병원 접수 키오스크</title>
|
||||
<style>
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Segoe UI', 'Malgun Gothic', sans-serif;
|
||||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* 배경 애니메이션 요소 */
|
||||
.bg-animation {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
.floating-circle {
|
||||
position: absolute;
|
||||
border-radius: 50%;
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
animation: float 6s ease-in-out infinite;
|
||||
}
|
||||
|
||||
.circle1 { width: 80px; height: 80px; top: 20%; left: 10%; animation-delay: 0s; }
|
||||
.circle2 { width: 120px; height: 120px; top: 60%; left: 80%; animation-delay: 2s; }
|
||||
.circle3 { width: 60px; height: 60px; top: 80%; left: 20%; animation-delay: 4s; }
|
||||
|
||||
@keyframes float {
|
||||
0%, 100% { transform: translateY(0px) scale(1); opacity: 0.7; }
|
||||
50% { transform: translateY(-20px) scale(1.1); opacity: 1; }
|
||||
}
|
||||
|
||||
/* 메인 컨테이너 */
|
||||
.kiosk-container {
|
||||
background: rgba(255, 255, 255, 0.15);
|
||||
backdrop-filter: blur(20px);
|
||||
border: 1px solid rgba(255, 255, 255, 0.2);
|
||||
border-radius: 32px;
|
||||
padding: 60px 80px;
|
||||
text-align: center;
|
||||
box-shadow:
|
||||
0 8px 32px 0 rgba(31, 38, 135, 0.37),
|
||||
inset 0 1px 0 rgba(255, 255, 255, 0.4);
|
||||
width: 90vw;
|
||||
max-width: 800px;
|
||||
min-height: 80vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
animation: slideUp 0.8s ease-out;
|
||||
}
|
||||
|
||||
@keyframes slideUp {
|
||||
from { opacity: 0; transform: translateY(50px); }
|
||||
to { opacity: 1; transform: translateY(0); }
|
||||
}
|
||||
|
||||
/* 헤더 */
|
||||
.header {
|
||||
margin-bottom: 60px;
|
||||
}
|
||||
|
||||
.hospital-logo {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
|
||||
border-radius: 20px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin: 0 auto 30px;
|
||||
box-shadow: 0 10px 30px rgba(79, 172, 254, 0.3);
|
||||
}
|
||||
|
||||
.hospital-logo::before {
|
||||
content: "🏥";
|
||||
font-size: 36px;
|
||||
}
|
||||
|
||||
.title {
|
||||
color: white;
|
||||
font-size: 2.8rem;
|
||||
font-weight: 700;
|
||||
margin-bottom: 15px;
|
||||
text-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
color: rgba(255, 255, 255, 0.9);
|
||||
font-size: 1.3rem;
|
||||
font-weight: 400;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
/* 버튼 컨테이너 */
|
||||
.button-container {
|
||||
display: flex;
|
||||
gap: 40px;
|
||||
justify-content: center;
|
||||
flex-wrap: wrap;
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
/* 메인 버튼 스타일 */
|
||||
.patient-button {
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
backdrop-filter: blur(10px);
|
||||
border: 2px solid rgba(255, 255, 255, 0.3);
|
||||
border-radius: 24px;
|
||||
padding: 50px 60px;
|
||||
cursor: pointer;
|
||||
transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
min-width: 280px;
|
||||
text-decoration: none;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.patient-button::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: -100%;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
|
||||
transition: left 0.6s;
|
||||
}
|
||||
|
||||
.patient-button:hover::before {
|
||||
left: 100%;
|
||||
}
|
||||
|
||||
.patient-button:hover {
|
||||
transform: translateY(-8px) scale(1.02);
|
||||
box-shadow:
|
||||
0 20px 50px rgba(0, 0, 0, 0.15),
|
||||
0 0 0 1px rgba(255, 255, 255, 0.4);
|
||||
border-color: rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
|
||||
.patient-button:active {
|
||||
transform: translateY(-4px) scale(0.98);
|
||||
}
|
||||
|
||||
/* 새환자 버튼 */
|
||||
.new-patient {
|
||||
background: linear-gradient(135deg, rgba(46, 213, 115, 0.8) 0%, rgba(0, 184, 148, 0.8) 100%);
|
||||
}
|
||||
|
||||
.new-patient:hover {
|
||||
background: linear-gradient(135deg, rgba(46, 213, 115, 0.9) 0%, rgba(0, 184, 148, 0.9) 100%);
|
||||
}
|
||||
|
||||
/* 기존환자 버튼 */
|
||||
.existing-patient {
|
||||
background: linear-gradient(135deg, rgba(52, 152, 219, 0.8) 0%, rgba(155, 89, 182, 0.8) 100%);
|
||||
}
|
||||
|
||||
.existing-patient:hover {
|
||||
background: linear-gradient(135deg, rgba(52, 152, 219, 0.9) 0%, rgba(155, 89, 182, 0.9) 100%);
|
||||
}
|
||||
|
||||
/* 버튼 아이콘 */
|
||||
.button-icon {
|
||||
font-size: 4rem;
|
||||
margin-bottom: 20px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* 버튼 텍스트 */
|
||||
.button-text {
|
||||
color: white;
|
||||
font-size: 1.8rem;
|
||||
font-weight: 700;
|
||||
margin-bottom: 10px;
|
||||
text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
.button-desc {
|
||||
color: rgba(255, 255, 255, 0.9);
|
||||
font-size: 1.1rem;
|
||||
font-weight: 400;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
/* 하단 정보 */
|
||||
.footer-info {
|
||||
margin-top: 50px;
|
||||
color: rgba(255, 255, 255, 0.8);
|
||||
font-size: 1rem;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
gap: 20px;
|
||||
}
|
||||
|
||||
.current-time {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.help-text {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
/* 반응형 디자인 */
|
||||
@media (max-width: 768px) {
|
||||
.kiosk-container {
|
||||
padding: 40px 30px;
|
||||
width: 95vw;
|
||||
min-height: 90vh;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
.button-container {
|
||||
flex-direction: column;
|
||||
gap: 30px;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.patient-button {
|
||||
min-width: 100%;
|
||||
max-width: 400px;
|
||||
padding: 40px 30px;
|
||||
}
|
||||
|
||||
.button-icon {
|
||||
font-size: 3rem;
|
||||
}
|
||||
|
||||
.button-text {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
.footer-info {
|
||||
flex-direction: column;
|
||||
text-align: center;
|
||||
gap: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
/* 접근성 향상 */
|
||||
.patient-button:focus {
|
||||
outline: 3px solid #FFD700;
|
||||
outline-offset: 4px;
|
||||
}
|
||||
|
||||
/* 로딩 애니메이션 */
|
||||
.loading {
|
||||
display: none;
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
color: white;
|
||||
font-size: 1.2rem;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.spinner {
|
||||
border: 3px solid rgba(255, 255, 255, 0.3);
|
||||
border-radius: 50%;
|
||||
border-top: 3px solid white;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
animation: spin 1s linear infinite;
|
||||
margin: 0 auto 15px;
|
||||
}
|
||||
|
||||
@keyframes spin {
|
||||
0% { transform: rotate(0deg); }
|
||||
100% { transform: rotate(360deg); }
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<!-- 배경 애니메이션 -->
|
||||
<div class="bg-animation">
|
||||
<div class="floating-circle circle1"></div>
|
||||
<div class="floating-circle circle2"></div>
|
||||
<div class="floating-circle circle3"></div>
|
||||
</div>
|
||||
|
||||
<!-- 키오스크 메인 화면 -->
|
||||
<div class="kiosk-container">
|
||||
<div class="header">
|
||||
<div class="hospital-logo"></div>
|
||||
<h1 class="title">병원 접수</h1>
|
||||
<p class="subtitle">환자 유형을 선택해 주세요<br>해당하는 버튼을 터치해 주시기 바랍니다</p>
|
||||
</div>
|
||||
|
||||
<div class="button-container">
|
||||
<a href="#" class="patient-button new-patient" onclick="handleSelection('new')">
|
||||
<span class="button-icon">👤➕</span>
|
||||
<div class="button-text">신규 환자</div>
|
||||
<div class="button-desc">처음 내원하시는 분<br>신규 등록이 필요합니다</div>
|
||||
</a>
|
||||
|
||||
<a href="#" class="patient-button existing-patient" onclick="handleSelection('existing')">
|
||||
<span class="button-icon">👤✓</span>
|
||||
<div class="button-text">기존 환자</div>
|
||||
<div class="button-desc">이전에 내원하신 분<br>진료카드를 준비해 주세요</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="footer-info">
|
||||
<div class="current-time" id="currentTime"></div>
|
||||
<div class="help-text">도움이 필요하시면 안내데스크로 문의해 주세요</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 로딩 화면 -->
|
||||
<div class="loading" id="loadingScreen">
|
||||
<div class="spinner"></div>
|
||||
<div>접수 화면으로 이동 중...</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
// 현재 시간 표시
|
||||
function updateTime() {
|
||||
const now = new Date();
|
||||
const timeString = now.toLocaleString('ko-KR', {
|
||||
year: 'numeric',
|
||||
month: 'long',
|
||||
day: 'numeric',
|
||||
hour: '2-digit',
|
||||
minute: '2-digit',
|
||||
weekday: 'long'
|
||||
});
|
||||
document.getElementById('currentTime').textContent = timeString;
|
||||
}
|
||||
|
||||
// 페이지 로드 시 시간 업데이트 및 1분마다 갱신
|
||||
updateTime();
|
||||
setInterval(updateTime, 60000);
|
||||
|
||||
// 버튼 선택 처리
|
||||
function handleSelection(type) {
|
||||
// 로딩 화면 표시
|
||||
document.getElementById('loadingScreen').style.display = 'block';
|
||||
|
||||
// 실제 구현에서는 여기서 다음 화면으로 이동
|
||||
setTimeout(() => {
|
||||
if (type === 'new') {
|
||||
alert('신규 환자 등록 화면으로 이동합니다.\n\n필요한 서류:\n- 신분증\n- 보험카드');
|
||||
// 실제로는 window.location.href = 'new-patient.html';
|
||||
} else {
|
||||
alert('기존 환자 접수 화면으로 이동합니다.\n\n필요한 준비물:\n- 진료카드 또는 주민등록번호\n- 보험카드');
|
||||
// 실제로는 window.location.href = 'existing-patient.html';
|
||||
}
|
||||
document.getElementById('loadingScreen').style.display = 'none';
|
||||
}, 1500);
|
||||
}
|
||||
|
||||
// 키보드 접근성 지원
|
||||
document.addEventListener('keydown', function(e) {
|
||||
if (e.key === '1') {
|
||||
handleSelection('new');
|
||||
} else if (e.key === '2') {
|
||||
handleSelection('existing');
|
||||
}
|
||||
});
|
||||
|
||||
// 터치 피드백 효과
|
||||
document.querySelectorAll('.patient-button').forEach(button => {
|
||||
button.addEventListener('touchstart', function() {
|
||||
this.style.transform = 'scale(0.95)';
|
||||
});
|
||||
|
||||
button.addEventListener('touchend', function() {
|
||||
this.style.transform = '';
|
||||
});
|
||||
});
|
||||
|
||||
// 화면 절전 방지 (Wake Lock API)
|
||||
if ('wakeLock' in navigator) {
|
||||
navigator.wakeLock.request('screen').catch(err => {
|
||||
console.log('Wake lock failed:', err);
|
||||
});
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,100 @@
|
||||
<!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/homeLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link href="https://cdn.jsdelivr.net/npm/summernote@0.8.18/dist/summernote.min.css" rel="stylesheet">
|
||||
<link rel="stylesheet" href="/css/web/app_content_registration.css">
|
||||
<link rel="stylesheet" href="/css/web/grid.css?v1.1">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script src="/js/web/jquery.twbsPagination.js" type="text/javascript"></script>
|
||||
<script>
|
||||
let menuClass = "[[${param.menuClass}]]"==""?"":"[[${param.menuClass}]]";
|
||||
|
||||
let selectUseYn = "[[${selectUseYn}]]"==""?"N":"[[${selectUseYn}]]";
|
||||
let insertUseYn = "[[${insertUseYn}]]"==""?"N":"[[${insertUseYn}]]";
|
||||
let updateUseYn = "[[${updateUseYn}]]"==""?"N":"[[${updateUseYn}]]";
|
||||
let deleteUseYn = "[[${deleteUseYn}]]"==""?"N":"[[${deleteUseYn}]]";
|
||||
let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
|
||||
|
||||
let appContentCategoryName = "[[${param.appContentCategoryName}]]";
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<!-- 센터쪽 -->
|
||||
<div class="center_box">
|
||||
<p class="page_title">콘텐츠 등록</p>
|
||||
|
||||
<!-- 테이블 -->
|
||||
<div class="content_box">
|
||||
<div class="content_left">
|
||||
<p class="title">시술정보 콘텐츠 등록</p>
|
||||
<ul class="first">
|
||||
<li>
|
||||
<label>카테고리</label>
|
||||
<div class="select_box dropdown">
|
||||
<button class="label" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">카테고리</button>
|
||||
<input type="hidden" id="appContentCategoryCode">
|
||||
<ul class="select_option_list dropdown-menu">
|
||||
<li class="option_list_item" id="li_skin">피부</li>
|
||||
<li class="option_list_item" id="li_petit">쁘띠</li>
|
||||
<li class="option_list_item" id="li_fat">비만</li>
|
||||
<!--<li class="option_list_item" id="li_etc">기타</li>-->
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
<li><input type="text" id="title" placeholder="시술정보 제목을 20자 이내로 작성해주세요."/></li>
|
||||
<li><textarea id="content" placeholder="시술정보 내용을 50자 이내로 작성해주세요."></textarea></li>
|
||||
</ul>
|
||||
<ul class="last">
|
||||
<li class="banner_li">
|
||||
<div class="top">
|
||||
<label>상단 배너</label>
|
||||
<label for="file" class="file_btn"><img src="/image/web/add.svg" alt="파일찾기"></label>
|
||||
</div>
|
||||
<div class="btm">
|
||||
<div class="img_box"><!-- img 미리보기 --></div>
|
||||
<input class="upload-name" placeholder="파일을 업로드해주세요.">
|
||||
<input type="file" id="file" class="file" accept="image/jpeg, image/jpg, image/png" multiple>
|
||||
<button id="delete_btn">삭제</button>
|
||||
</div>
|
||||
<p>*이미지 사이즈 규격 정보*<br/>예) 필수사항 : 750px*500px / 1m 이하 / png, jpg(jpeg)</p>
|
||||
</li>
|
||||
|
||||
<li class="banner_li">
|
||||
<div class="top">
|
||||
<label>섬네일</label>
|
||||
<label for="file2" class="file_btn"><img src="/image/web/add.svg" alt="파일찾기"></label>
|
||||
</div>
|
||||
<div class="btm">
|
||||
<div class="img_box height170"><!-- img 미리보기 --></div>
|
||||
<input class="upload-name" placeholder="파일을 업로드해주세요.">
|
||||
<input type="file" id="file2" class="file" accept="image/jpeg, image/jpg, image/png" multiple>
|
||||
<button id="delete_btn2">삭제</button>
|
||||
</div>
|
||||
<p>*이미지 사이즈 규격 정보*<br/>예) 필수사항 : 750px*750px / 1m 이하 / png, jpg(jpeg)</p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="content_right">
|
||||
<p class="title">콘텐츠 상세</p>
|
||||
<div class="editor_box"><div id="summernote"></div></div>
|
||||
<div class="button_box">
|
||||
<button class="cancel_btn btnCancle">취소</button>
|
||||
<button class="registration_btn btnSave">등록</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<form id="excelForm" method="POST" target="_blank"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_popup">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/web/ag-grid-community-29.3.5.min.js"></script>
|
||||
<script src="/js/web/appcontents/appContentsInsert.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/summernote@0.8.18/dist/summernote.min.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,121 @@
|
||||
<!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/homeLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/web/app_content.css">
|
||||
<link rel="stylesheet" href="/css/web/grid.css?v1.1">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script src="/js/web/jquery.twbsPagination.js" type="text/javascript"></script>
|
||||
<script>
|
||||
let menuClass = "[[${param.menuClass}]]"==""?"":"[[${param.menuClass}]]";
|
||||
|
||||
let selectUseYn = "[[${selectUseYn}]]"==""?"N":"[[${selectUseYn}]]";
|
||||
let insertUseYn = "[[${insertUseYn}]]"==""?"N":"[[${insertUseYn}]]";
|
||||
let updateUseYn = "[[${updateUseYn}]]"==""?"N":"[[${updateUseYn}]]";
|
||||
let deleteUseYn = "[[${deleteUseYn}]]"==""?"N":"[[${deleteUseYn}]]";
|
||||
let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
|
||||
|
||||
/* 검색 관련 변수 */
|
||||
let appContentSearchKeywordParam = "[[${param.appContentSearchKeywordParam}]]";
|
||||
let appContentSort = "[[${param.appContentSort}]]";
|
||||
let appContentDir = "[[${param.appContentDir}]]";
|
||||
let appContentStart = "[[${param.appContentStart}]]"==""?0:"[[${param.appContentStart}]]";
|
||||
let appContentLimit = "[[${param.appContentLimit}]]"==""?500:"[[${param.appContentLimit}]]";
|
||||
|
||||
let appContentSearchStartDate = "[[${param.appContentSearchStartDate}]]";
|
||||
let appContentSearchEndDate = "[[${param.appContentSearchEndDate}]]";
|
||||
let appContentSearchDateType = "[[${param.appContentSearchDateType}]]"==""?"A":"[[${param.appContentSearchDateType}]]";
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<!-- 센터쪽 -->
|
||||
<div class="center_box">
|
||||
<p class="page_title">콘텐츠 관리</p>
|
||||
|
||||
<div class="filter_box">
|
||||
<div class="form_box">
|
||||
<div class="select_box first dropdown">
|
||||
<button class="label" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">기간</button>
|
||||
<input type="hidden" id="appContentSearchDateType">
|
||||
<ul class="select_option_list dropdown-menu">
|
||||
<li id="li_A" class="option_list_item first" >오늘</li>
|
||||
<li id="li_B" class="option_list_item">최근30일</li>
|
||||
<li id="li_C" class="option_list_item">최근90일</li>
|
||||
<li id="li_D" class="option_list_item">이번주</li>
|
||||
<li id="li_E" class="option_list_item">이번달</li>
|
||||
<li id="li_F" class="option_list_item">올해</li>
|
||||
<li id="li_G" class="option_list_item">지난주</li>
|
||||
<li id="li_H" class="option_list_item">지난달</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- 캘린더input -->
|
||||
<div class="calendar_box">
|
||||
<div class="date_box date" id="divAppContentSearchStartDate">
|
||||
<img src="/image/web/calendar.svg" alt="calendar"/>
|
||||
<input type="date" class="date_picker" id="appContentSearchStartDate">
|
||||
</div>
|
||||
|
||||
<span class="slash">-</span>
|
||||
|
||||
<div class="date_box last date" id="divAppContentSearchEndDate">
|
||||
<img src="/image/web/calendar.svg" alt="calendar"/>
|
||||
<input type="date" class="date_picker" id="appContentSearchEndDate">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="select_box dropdown">
|
||||
<button class="label" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">카테고리 전체</button>
|
||||
<input type="hidden" id="appContentCategoryName">
|
||||
<ul class="select_option_list dropdown-menu">
|
||||
<li class="option_list_item" id="li_ALL">카테고리 전체</li>
|
||||
<li class="option_list_item" id="li_피부">피부</li>
|
||||
<li class="option_list_item" id="li_쁘띠">쁘띠</li>
|
||||
<li class="option_list_item" id="li_비만">비만</li>
|
||||
<li class="option_list_item" id="li_기타">기타</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- 이름input -->
|
||||
<div class="search_list">
|
||||
<div class="search_box">
|
||||
<img src="/image/web/search_G.svg" alt="search"/>
|
||||
<input type="text" id="appContentSearchKeyword" required placeholder="제목, 내용">
|
||||
|
||||
<div class="search_list"></div><!-- 검색내역 나오는곳 -->
|
||||
</div>
|
||||
<button id="btnSearchAppContent" class="search_btn" data-toggle="modal" data-target=".work_closed_modal" style="transition: all 0.2s ease-in-out 0s;">조회</button>
|
||||
</div>
|
||||
|
||||
<div class="right_btn_box">
|
||||
<button id="btnInsertAppContent" class="content_btn">
|
||||
<img src="/image/web/notice_btn_icon.svg" alt="콘텐츠 등록">콘텐츠 등록
|
||||
</button>
|
||||
<button id="btnDeleteAppContent" class="delete_btn">
|
||||
<img src="/image/web/delete_btn_icon.svg" alt="삭제">삭제
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="appContentGrid" class="table_box ag-theme-balham"></div>
|
||||
|
||||
<!-- 페이지게이션 -->
|
||||
<div class="page_box">
|
||||
<nav aria-label="Page navigation" class="navigation">
|
||||
<ul class="pagination" id="appContentPagination"></ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<form id="appContentSelectListForm" method="POST" target="_blank"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_popup">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/web/ag-grid-community-29.3.5.min.js"></script>
|
||||
<script src="/js/web/appcontents/appContentsSelectList.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,100 @@
|
||||
<!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/homeLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link href="https://cdn.jsdelivr.net/npm/summernote@0.8.18/dist/summernote.min.css" rel="stylesheet">
|
||||
<link rel="stylesheet" href="/css/web/app_content_registration.css">
|
||||
<link rel="stylesheet" href="/css/web/grid.css?v1.1">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script src="/js/web/jquery.twbsPagination.js" type="text/javascript"></script>
|
||||
<script>
|
||||
let menuClass = "[[${param.menuClass}]]"==""?"":"[[${param.menuClass}]]";
|
||||
|
||||
let selectUseYn = "[[${selectUseYn}]]"==""?"N":"[[${selectUseYn}]]";
|
||||
let insertUseYn = "[[${insertUseYn}]]"==""?"N":"[[${insertUseYn}]]";
|
||||
let updateUseYn = "[[${updateUseYn}]]"==""?"N":"[[${updateUseYn}]]";
|
||||
let deleteUseYn = "[[${deleteUseYn}]]"==""?"N":"[[${deleteUseYn}]]";
|
||||
let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
|
||||
|
||||
let muAppContentId = "[[${param.muAppContentId}]]";
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<!-- 센터쪽 -->
|
||||
<div class="center_box">
|
||||
<p class="page_title">콘텐츠 등록</p>
|
||||
|
||||
<!-- 테이블 -->
|
||||
<div class="content_box">
|
||||
<div class="content_left">
|
||||
<p class="title">시술정보 콘텐츠 등록</p>
|
||||
<ul class="first">
|
||||
<li>
|
||||
<label>카테고리</label>
|
||||
<div class="select_box dropdown">
|
||||
<button class="label" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">카테고리</button>
|
||||
<input type="hidden" id="appContentCategoryCode">
|
||||
<ul class="select_option_list dropdown-menu">
|
||||
<li class="option_list_item" id="li_skin">피부</li>
|
||||
<li class="option_list_item" id="li_petit">쁘띠</li>
|
||||
<li class="option_list_item" id="li_fat">비만</li>
|
||||
<!--<li class="option_list_item" id="li_etc">기타</li>-->
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
<li><input type="text" id="title" placeholder="시술정보 제목을 20자 이내로 작성해주세요."/></li>
|
||||
<li><textarea id="content" placeholder="시술정보 내용을 50자 이내로 작성해주세요."></textarea></li>
|
||||
</ul>
|
||||
<ul class="last">
|
||||
<li class="banner_li">
|
||||
<div class="top">
|
||||
<label>상단 배너</label>
|
||||
<label for="file" class="file_btn"><img src="/image/web/add.svg" alt="파일찾기"></label>
|
||||
</div>
|
||||
<div class="btm">
|
||||
<div class="img_box"><!-- img 미리보기 --></div>
|
||||
<input class="upload-name" placeholder="파일을 업로드해주세요.">
|
||||
<input type="file" id="file" class="file" accept="image/jpeg, image/jpg, image/png" multiple>
|
||||
<button id="delete_btn">삭제</button>
|
||||
</div>
|
||||
<p>*이미지 사이즈 규격 정보*<br/>예) 필수사항 : 750px*500px / 1m 이하 / png, jpg(jpeg)</p>
|
||||
</li>
|
||||
|
||||
<li class="banner_li">
|
||||
<div class="top">
|
||||
<label>섬네일</label>
|
||||
<label for="file2" class="file_btn"><img src="/image/web/add.svg" alt="파일찾기"></label>
|
||||
</div>
|
||||
<div class="btm">
|
||||
<div class="img_box height170"><!-- img 미리보기 --></div>
|
||||
<input class="upload-name" placeholder="파일을 업로드해주세요.">
|
||||
<input type="file" id="file2" class="file" accept="image/jpeg, image/jpg, image/png" multiple>
|
||||
<button id="delete_btn2">삭제</button>
|
||||
</div>
|
||||
<p>*이미지 사이즈 규격 정보*<br/>예) 필수사항 : 750px*750px / 1m 이하 / png, jpg(jpeg)</p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="content_right">
|
||||
<p class="title">콘텐츠 상세</p>
|
||||
<div class="editor_box"><div id="summernote"></div></div>
|
||||
<div class="button_box">
|
||||
<button class="cancel_btn btnCancle">취소</button>
|
||||
<button class="registration_btn btnSave">수정</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<form id="excelForm" method="POST" target="_blank"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_popup">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/web/ag-grid-community-29.3.5.min.js"></script>
|
||||
<script src="/js/web/appcontents/appContentsUpdate.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/summernote@0.8.18/dist/summernote.min.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,121 @@
|
||||
<!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/homeLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/web/app_board_registration.css">
|
||||
<link rel="stylesheet" href="/css/web/modal_app_board_registration.css">
|
||||
<link rel="stylesheet" href="/css/web/grid.css?v1.1">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script src="/js/web/jquery.twbsPagination.js" type="text/javascript"></script>
|
||||
<script>
|
||||
let menuClass = "[[${param.menuClass}]]"==""?"":"[[${param.menuClass}]]";
|
||||
|
||||
let selectUseYn = "[[${selectUseYn}]]"==""?"N":"[[${selectUseYn}]]";
|
||||
let insertUseYn = "[[${insertUseYn}]]"==""?"N":"[[${insertUseYn}]]";
|
||||
let updateUseYn = "[[${updateUseYn}]]"==""?"N":"[[${updateUseYn}]]";
|
||||
let deleteUseYn = "[[${deleteUseYn}]]"==""?"N":"[[${deleteUseYn}]]";
|
||||
let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
|
||||
|
||||
let appContentCategoryName = "[[${param.appContentCategoryName}]]";
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<!-- 센터쪽 -->
|
||||
<div class="center_box">
|
||||
<p class="page_title">보드 만들기</p>
|
||||
|
||||
<div class="filter_box">
|
||||
<!-- <div class="form_box">-->
|
||||
<!-- <div class="select_box first dropdown">-->
|
||||
<!-- <button class="label" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">기간</button>-->
|
||||
<!-- <input type="hidden" id="appBoardSearchDateType">-->
|
||||
<!-- <ul class="select_option_list dropdown-menu" id="">-->
|
||||
<!-- <li id="li_A" class="option_list_item first" >오늘</li>-->
|
||||
<!-- <li id="li_B" class="option_list_item">최근30일</li>-->
|
||||
<!-- <li id="li_C" class="option_list_item">최근90일</li>-->
|
||||
<!-- <li id="li_D" class="option_list_item">이번주</li>-->
|
||||
<!-- <li id="li_E" class="option_list_item">이번달</li>-->
|
||||
<!-- <li id="li_F" class="option_list_item">올해</li>-->
|
||||
<!-- <li id="li_G" class="option_list_item">지난주</li>-->
|
||||
<!-- <li id="li_H" class="option_list_item">지난달</li>-->
|
||||
<!-- </ul>-->
|
||||
<!-- </div>-->
|
||||
<!-- <!– 캘린더input –>-->
|
||||
<!-- <div class="calendar_box">-->
|
||||
<!-- <div class="date_box date" id="divAppBoardSearchStartDate">-->
|
||||
<!-- <img src="/image/web/calendar.svg" alt="calendar"/>-->
|
||||
<!-- <input type="date" class="date_picker" id="appBoardSearchStartDate">-->
|
||||
<!-- </div>-->
|
||||
|
||||
<!-- <span class="slash">-</span>-->
|
||||
|
||||
<!-- <div class="date_box last date" id="divAppBoardSearchEndDate">-->
|
||||
<!-- <img src="/image/web/calendar.svg" alt="calendar"/>-->
|
||||
<!-- <input type="date" class="date_picker" id="appBoardSearchEndDate">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
|
||||
<!-- <div class="select_box dropdown">-->
|
||||
<!-- <button class="label" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">카테고리 전체</button>-->
|
||||
<!-- <input type="hidden" id="appBoardCategoryName">-->
|
||||
<!-- <ul class="select_option_list dropdown-menu">-->
|
||||
<!-- <li class="option_list_item" id="li_ALL">카테고리 전체</li>-->
|
||||
<!-- <li class="option_list_item" id="li_피부">피부</li>-->
|
||||
<!-- <li class="option_list_item" id="li_쁘띠">쁘띠</li>-->
|
||||
<!-- <li class="option_list_item" id="li_비만">비만</li>-->
|
||||
<!-- <li class="option_list_item" id="li_기타">기타</li>-->
|
||||
<!-- </ul>-->
|
||||
<!-- </div>-->
|
||||
|
||||
<!-- <!– 이름input –>-->
|
||||
<!-- <div class="search_list">-->
|
||||
<!-- <div class="search_box">-->
|
||||
<!-- <img src="/image/web/search_G.svg" alt="search"/>-->
|
||||
<!-- <input type="text" id="appBoardSearchKeyword" required placeholder="제목, 내용">-->
|
||||
|
||||
<!-- <div class="search_list"></div><!– 검색내역 나오는곳 –>-->
|
||||
<!-- </div>-->
|
||||
<!-- <button id="btnSearchAppBoard" class="search_btn" data-toggle="modal" data-target=".work_closed_modal" style="transition: all 0.2s ease-in-out 0s;">조회</button>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
</div>
|
||||
|
||||
<!-- 테이블 -->
|
||||
<div class="content_box">
|
||||
<div class="content_left">
|
||||
<p class="title">보드 만들기</p>
|
||||
<ul>
|
||||
<li><input type="text" id="title" placeholder="보드 제목을 입력해주세요."/></li>
|
||||
<li><textarea id="content" placeholder="내용을 입력해주세요."></textarea></li>
|
||||
<li class="checkbox_li">
|
||||
<input type="checkbox" id="exposedYn"/>
|
||||
<label for="exposedYn">메인 홈 노출</label>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="content_right">
|
||||
<p class="title">콘텐츠</p>
|
||||
<div class="right_btn_box">
|
||||
<button class="bring_btn" id="selectContentBtn" data-toggle="modal" style="transition: all 0.2s ease-in-out 0s;">콘텐츠 불러오기</button>
|
||||
<!-- <button class="delete_btn">삭제</button>-->
|
||||
</div>
|
||||
<div class="editor_box ag-theme-balham" id="appContentsGrid"></div>
|
||||
<div class="button_box">
|
||||
<button class="registration_btn btnSave">보드생성</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<form id="appBoardForm" method="POST" target="_blank"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_popup">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/web/ag-grid-community-29.3.5.min.js"></script>
|
||||
<script src="/js/web/appcontentsboard/contentsBoardInsert.js"></script>
|
||||
<script src="/js/web/appcontentsboard/popup/appContentsSelectPop.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,121 @@
|
||||
<!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/homeLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/web/app_board.css">
|
||||
<link rel="stylesheet" href="/css/web/grid.css?v1.1">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script src="/js/web/jquery.twbsPagination.js" type="text/javascript"></script>
|
||||
<script>
|
||||
let menuClass = "[[${param.menuClass}]]"==""?"":"[[${param.menuClass}]]";
|
||||
|
||||
let selectUseYn = "[[${selectUseYn}]]"==""?"N":"[[${selectUseYn}]]";
|
||||
let insertUseYn = "[[${insertUseYn}]]"==""?"N":"[[${insertUseYn}]]";
|
||||
let updateUseYn = "[[${updateUseYn}]]"==""?"N":"[[${updateUseYn}]]";
|
||||
let deleteUseYn = "[[${deleteUseYn}]]"==""?"N":"[[${deleteUseYn}]]";
|
||||
let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
|
||||
|
||||
/* 검색 관련 변수 */
|
||||
let appBoardSearchKeywordParam = "[[${param.appBoardSearchKeywordParam}]]";
|
||||
let appBoardSort = "[[${param.appBoardSort}]]";
|
||||
let appBoardDir = "[[${param.appBoardDir}]]";
|
||||
let appBoardStart = "[[${param.appBoardStart}]]"==""?0:"[[${param.appBoardStart}]]";
|
||||
let appBoardLimit = "[[${param.appBoardLimit}]]"==""?500:"[[${param.appBoardLimit}]]";
|
||||
|
||||
let appBoardSearchStartDate = "[[${param.appBoardSearchStartDate}]]";
|
||||
let appBoardSearchEndDate = "[[${param.appBoardSearchEndDate}]]";
|
||||
let appBoardSearchDateType = "[[${param.appBoardSearchDateType}]]"==""?"A":"[[${param.appBoardSearchDateType}]]";
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<!-- 센터쪽 -->
|
||||
<div class="center_box">
|
||||
<p class="page_title">콘텐츠 보드</p>
|
||||
|
||||
<div class="filter_box">
|
||||
<div class="form_box">
|
||||
<div class="select_box first dropdown">
|
||||
<button class="label" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">기간</button>
|
||||
<input type="hidden" id="appBoardSearchDateType">
|
||||
<ul class="select_option_list dropdown-menu" id="">
|
||||
<li id="li_A" class="option_list_item first" >오늘</li>
|
||||
<li id="li_B" class="option_list_item">최근30일</li>
|
||||
<li id="li_C" class="option_list_item">최근90일</li>
|
||||
<li id="li_D" class="option_list_item">이번주</li>
|
||||
<li id="li_E" class="option_list_item">이번달</li>
|
||||
<li id="li_F" class="option_list_item">올해</li>
|
||||
<li id="li_G" class="option_list_item">지난주</li>
|
||||
<li id="li_H" class="option_list_item">지난달</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- 캘린더input -->
|
||||
<div class="calendar_box">
|
||||
<div class="date_box date" id="divAppBoardSearchStartDate">
|
||||
<img src="/image/web/calendar.svg" alt="calendar"/>
|
||||
<input type="date" class="date_picker" id="appBoardSearchStartDate">
|
||||
</div>
|
||||
|
||||
<span class="slash">-</span>
|
||||
|
||||
<div class="date_box last date" id="divAppBoardSearchEndDate">
|
||||
<img src="/image/web/calendar.svg" alt="calendar"/>
|
||||
<input type="date" class="date_picker" id="appBoardSearchEndDate">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- <div class="select_box dropdown">-->
|
||||
<!-- <button class="label" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">카테고리 전체</button>-->
|
||||
<!-- <input type="hidden" id="appBoardCategoryName">-->
|
||||
<!-- <ul class="select_option_list dropdown-menu">-->
|
||||
<!-- <li class="option_list_item" id="li_ALL">카테고리 전체</li>-->
|
||||
<!-- <li class="option_list_item" id="li_피부">피부</li>-->
|
||||
<!-- <li class="option_list_item" id="li_쁘띠">쁘띠</li>-->
|
||||
<!-- <li class="option_list_item" id="li_비만">비만</li>-->
|
||||
<!-- <li class="option_list_item" id="li_기타">기타</li>-->
|
||||
<!-- </ul>-->
|
||||
<!-- </div>-->
|
||||
|
||||
<!-- 이름input -->
|
||||
<div class="search_list">
|
||||
<div class="search_box">
|
||||
<img src="/image/web/search_G.svg" alt="search"/>
|
||||
<input type="text" id="appBoardSearchKeyword" required placeholder="제목, 내용">
|
||||
|
||||
<div class="search_list"></div><!-- 검색내역 나오는곳 -->
|
||||
</div>
|
||||
<button id="btnSearchAppBoard" class="search_btn" data-toggle="modal" data-target=".work_closed_modal" style="transition: all 0.2s ease-in-out 0s;">조회</button>
|
||||
</div>
|
||||
|
||||
<div class="right_btn_box">
|
||||
<button id="btnInsertAppBoard" class="board_btn">
|
||||
<img src="/image/web/notice_btn_icon.svg" alt="보드 만들기">보드 만들기
|
||||
</button>
|
||||
<button id="btnDeleteAppBoard" class="delete_btn">
|
||||
<img src="/image/web/delete_btn_icon.svg" alt="삭제">삭제
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="appBoardGrid" class="table_box ag-theme-balham"></div>
|
||||
|
||||
<!-- 페이지게이션 -->
|
||||
<div class="page_box">
|
||||
<nav aria-label="Page navigation" class="navigation">
|
||||
<ul class="pagination" id="appBoardPagination"></ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<form id="appBoardSelectListForm" method="POST" target="_blank"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_popup">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/web/ag-grid-community-29.3.5.min.js"></script>
|
||||
<script src="/js/web/appcontentsboard/contentsBoardSelectList.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,127 @@
|
||||
<!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/homeLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/web/app_board_registration.css">
|
||||
<link rel="stylesheet" href="/css/web/modal_app_board_registration.css">
|
||||
<link rel="stylesheet" href="/css/web/grid.css?v1.1">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script src="/js/web/jquery.twbsPagination.js" type="text/javascript"></script>
|
||||
<script>
|
||||
let menuClass = "[[${param.menuClass}]]"==""?"":"[[${param.menuClass}]]";
|
||||
|
||||
let selectUseYn = "[[${selectUseYn}]]"==""?"N":"[[${selectUseYn}]]";
|
||||
let insertUseYn = "[[${insertUseYn}]]"==""?"N":"[[${insertUseYn}]]";
|
||||
let updateUseYn = "[[${updateUseYn}]]"==""?"N":"[[${updateUseYn}]]";
|
||||
let deleteUseYn = "[[${deleteUseYn}]]"==""?"N":"[[${deleteUseYn}]]";
|
||||
let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
|
||||
|
||||
let muAppBoardId = "[[${param.muAppBoardId}]]";
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<!-- 센터쪽 -->
|
||||
<div class="center_box">
|
||||
<p class="page_title">보드 만들기</p>
|
||||
|
||||
<div class="filter_box">
|
||||
<!-- <div class="form_box">-->
|
||||
<!-- <div class="select_box first dropdown">-->
|
||||
<!-- <button class="label" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">기간</button>-->
|
||||
|
||||
<!-- <ul class="select_option_list dropdown-menu" id="">-->
|
||||
<!-- <li class="option_list_item">오늘</li>-->
|
||||
|
||||
<!-- <li class="option_list_item">최근 30일</li>-->
|
||||
|
||||
<!-- <li class="option_list_item">최근 90일</li>-->
|
||||
|
||||
<!-- <li class="option_list_item">이번주</li>-->
|
||||
|
||||
<!-- <li class="option_list_item">이번달</li>-->
|
||||
|
||||
<!-- <li class="option_list_item">올해</li>-->
|
||||
|
||||
<!-- <li class="option_list_item">지난주</li>-->
|
||||
|
||||
<!-- <li class="option_list_item">지난달</li>-->
|
||||
<!-- </ul>-->
|
||||
<!-- </div>-->
|
||||
|
||||
<!-- <!– 캘린더input –>-->
|
||||
<!-- <div class="calendar_box">-->
|
||||
<!-- <div class="date_box">-->
|
||||
<!-- <img src="/image/web/calendar.svg" alt="calendar"/>-->
|
||||
<!-- <input type="date" class="date_picker" id="hidden_userCareerStartDate0">-->
|
||||
<!-- </div>-->
|
||||
|
||||
<!-- <span class="slash">-</span>-->
|
||||
|
||||
<!-- <div class="date_box last">-->
|
||||
<!-- <img src="/image/web/calendar.svg" alt="calendar"/>-->
|
||||
<!-- <input type="date" class="date_picker" id="hidden_userCareerEndDate0">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
|
||||
<!-- <div class="select_box dropdown">-->
|
||||
<!-- <button class="label" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">카테고리</button>-->
|
||||
<!-- <ul class="select_option_list dropdown-menu">-->
|
||||
<!-- <li class="option_list_item">카테고리</li>-->
|
||||
<!-- <li class="option_list_item">1</li>-->
|
||||
<!-- <li class="option_list_item">2</li>-->
|
||||
<!-- <li class="option_list_item">3</li>-->
|
||||
<!-- </ul>-->
|
||||
<!-- </div>-->
|
||||
|
||||
<!-- <!– 이름input –>-->
|
||||
<!-- <div class="search_list">-->
|
||||
<!-- <div class="search_box">-->
|
||||
<!-- <img src="/image/web/search_G.svg" alt="search"/>-->
|
||||
<!-- <input type="text" placeholder="제목, 내용">-->
|
||||
|
||||
<!-- <div class="search_list"></div><!– 검색내역 나오는곳 –>-->
|
||||
<!-- </div>-->
|
||||
<!-- <button class="search_btn" data-toggle="modal" data-target=".work_closed_modal" style="transition: all 0.2s ease-in-out 0s;">조회</button>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
</div>
|
||||
|
||||
<!-- 테이블 -->
|
||||
<div class="content_box">
|
||||
<div class="content_left">
|
||||
<p class="title">보드 만들기</p>
|
||||
<ul>
|
||||
<li><input type="text" id="title" placeholder="보드 제목을 입력해주세요."/></li>
|
||||
<li><textarea id="content" placeholder="내용을 입력해주세요."></textarea></li>
|
||||
<li class="checkbox_li">
|
||||
<input type="checkbox" id="exposedYn"/>
|
||||
<label for="exposedYn">메인 홈 노출</label>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="content_right">
|
||||
<p class="title">콘텐츠</p>
|
||||
<div class="right_btn_box">
|
||||
<button class="bring_btn" id="selectContentBtn" data-toggle="modal" style="transition: all 0.2s ease-in-out 0s;">콘텐츠 불러오기</button>
|
||||
<!-- <button class="delete_btn">삭제</button>-->
|
||||
</div>
|
||||
<div class="editor_box ag-theme-balham" id="appContentsGrid"></div>
|
||||
<div class="button_box">
|
||||
<button class="registration_btn btnSave">보드수정</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<form id="appBoardForm" method="POST" target="_blank"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_popup">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/web/ag-grid-community-29.3.5.min.js"></script>
|
||||
<script src="/js/web/appcontentsboard/contentsBoardUpdate.js"></script>
|
||||
<script src="/js/web/appcontentsboard/popup/appContentsSelectPop.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,92 @@
|
||||
<!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/homeLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link href="https://cdn.jsdelivr.net/npm/summernote@0.8.18/dist/summernote.min.css" rel="stylesheet">
|
||||
<link rel="stylesheet" href="/css/web/app_event_registration.css">
|
||||
<link rel="stylesheet" href="/css/web/grid.css?v1.1">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script src="/js/web/jquery.twbsPagination.js" type="text/javascript"></script>
|
||||
<script>
|
||||
let menuClass = "[[${param.menuClass}]]"==""?"":"[[${param.menuClass}]]";
|
||||
|
||||
let selectUseYn = "[[${selectUseYn}]]"==""?"N":"[[${selectUseYn}]]";
|
||||
let insertUseYn = "[[${insertUseYn}]]"==""?"N":"[[${insertUseYn}]]";
|
||||
let updateUseYn = "[[${updateUseYn}]]"==""?"N":"[[${updateUseYn}]]";
|
||||
let deleteUseYn = "[[${deleteUseYn}]]"==""?"N":"[[${deleteUseYn}]]";
|
||||
let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<!-- 센터쪽 -->
|
||||
<div class="center_box">
|
||||
<p class="page_title">이벤트 등록</p>
|
||||
|
||||
<!-- 테이블 -->
|
||||
<div class="content_box">
|
||||
<div class="content_left">
|
||||
<p class="title">이벤트 등록</p>
|
||||
<ul class="first">
|
||||
<li><input type="text" id="title" placeholder="이벤트 제목을 20자 이내로 작성해주세요."/></li>
|
||||
<li><textarea id="content" placeholder="이벤트 내용을 20자 이내로 작성해주세요."></textarea></li>
|
||||
<li>
|
||||
<label>이벤트 기간</label>
|
||||
<div class="calendar_box">
|
||||
<div class="date_box">
|
||||
<img src="/image/web/calendar.svg" alt="calendar"/>
|
||||
<input type="date" class="date_picker" id="eventStartDate">
|
||||
</div>
|
||||
|
||||
<span class="slash">-</span>
|
||||
|
||||
<div class="date_box last">
|
||||
<img src="/image/web/calendar.svg" alt="calendar"/>
|
||||
<input type="date" class="date_picker" id="eventEndDate">
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="last">
|
||||
<li class="checkbox_li">
|
||||
<input type="checkbox" id="exposedYn"/>
|
||||
<label for="exposedYn">메인 홈 노출</label>
|
||||
<p>*이벤트 메인 노출은 최대 5개까지 가능합니다</p>
|
||||
</li>
|
||||
<li class="banner_li">
|
||||
<div class="top">
|
||||
<label>배너이미지</label>
|
||||
<label for="file" class="file_btn"><img src="/image/web/add.svg" alt="파일찾기"></label>
|
||||
</div>
|
||||
<div class="btm">
|
||||
<div class="img_box"><!-- img 미리보기 --></div>
|
||||
<input class="upload-name" placeholder="파일을 업로드해주세요.">
|
||||
<input type="file" id="file" accept="image/jpeg, image/jpg, image/png" multiple>
|
||||
<button id="delete_btn">삭제</button>
|
||||
</div>
|
||||
<p>*이미지 사이즈 규격 정보*<br/>예) 필수사항 : 750px*500px / 1m 이하 / png, jpg(jpeg)</p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="content_right">
|
||||
<p class="title">이벤트 상세</p>
|
||||
<div class="editor_box"> <div id="summernote"></div></div>
|
||||
<div class="button_box">
|
||||
<button class="cancel_btn btnCancle">취소</button>
|
||||
<button class="registration_btn btnSave">등록</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<form id="excelForm" method="POST" target="_blank"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_popup">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/web/ag-grid-community-29.3.5.min.js"></script>
|
||||
<script src="/js/web/appevent/appEventInsert.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/summernote@0.8.18/dist/summernote.min.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,109 @@
|
||||
<!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/homeLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/web/app_event.css">
|
||||
<link rel="stylesheet" href="/css/web/grid.css?v1.1">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script src="/js/web/jquery.twbsPagination.js" type="text/javascript"></script>
|
||||
<script>
|
||||
let menuClass = "[[${param.menuClass}]]"==""?"":"[[${param.menuClass}]]";
|
||||
|
||||
let selectUseYn = "[[${selectUseYn}]]"==""?"N":"[[${selectUseYn}]]";
|
||||
let insertUseYn = "[[${insertUseYn}]]"==""?"N":"[[${insertUseYn}]]";
|
||||
let updateUseYn = "[[${updateUseYn}]]"==""?"N":"[[${updateUseYn}]]";
|
||||
let deleteUseYn = "[[${deleteUseYn}]]"==""?"N":"[[${deleteUseYn}]]";
|
||||
let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
|
||||
|
||||
/* 검색 관련 변수 */
|
||||
let appEventSearchKeywordParam = "[[${param.appEventSearchKeywordParam}]]";
|
||||
let appEventSort = "[[${param.appEventSort}]]";
|
||||
let appEventDir = "[[${param.appEventDir}]]";
|
||||
let appEventStart = "[[${param.appEventStart}]]"==""?0:"[[${param.appEventStart}]]";
|
||||
let appEventLimit = "[[${param.appEventLimit}]]"==""?500:"[[${param.appEventLimit}]]";
|
||||
|
||||
let appEventSearchStartDate = "[[${param.appEventSearchStartDate}]]";
|
||||
let appEventSearchEndDate = "[[${param.appEventSearchEndDate}]]";
|
||||
let appEventSearchDateType = "[[${param.appEventSearchDateType}]]"==""?"A":"[[${param.appEventSearchDateType}]]";
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<!-- 센터쪽 -->
|
||||
<div class="center_box">
|
||||
<p class="page_title">이벤트</p>
|
||||
|
||||
<div class="filter_box">
|
||||
<div class="form_box">
|
||||
<div class="select_box first dropdown">
|
||||
<button class="label" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">기간</button>
|
||||
<input type="hidden" id="appEventSearchDateType">
|
||||
<ul class="select_option_list dropdown-menu">
|
||||
<li id="li_A" class="option_list_item first" >오늘</li>
|
||||
<li id="li_B" class="option_list_item">최근30일</li>
|
||||
<li id="li_C" class="option_list_item">최근90일</li>
|
||||
<li id="li_D" class="option_list_item">이번주</li>
|
||||
<li id="li_E" class="option_list_item">이번달</li>
|
||||
<li id="li_F" class="option_list_item">올해</li>
|
||||
<li id="li_G" class="option_list_item">지난주</li>
|
||||
<li id="li_H" class="option_list_item">지난달</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- 캘린더input -->
|
||||
<div class="calendar_box">
|
||||
<div class="date_box date" id="divAppEventSearchStartDate">
|
||||
<img src="/image/web/calendar.svg" alt="calendar"/>
|
||||
<input type="date" class="date_picker" id="appEventSearchStartDate">
|
||||
</div>
|
||||
|
||||
<span class="slash">-</span>
|
||||
|
||||
<div class="date_box last date" id="divAppEventSearchEndDate">
|
||||
<img src="/image/web/calendar.svg" alt="calendar"/>
|
||||
<input type="date" class="date_picker" id="appEventSearchEndDate">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 이름input -->
|
||||
<div class="search_list">
|
||||
<div class="search_box">
|
||||
<img src="/image/web/search_G.svg" alt="search"/>
|
||||
<input type="text" id="appEventSearchKeyword" required placeholder="제목, 내용">
|
||||
|
||||
<div class="search_list"></div><!-- 검색내역 나오는곳 -->
|
||||
</div>
|
||||
<button id="btnSearchAppEvent" class="search_btn" data-toggle="modal" data-target=".work_closed_modal" style="transition: all 0.2s ease-in-out 0s;">조회</button>
|
||||
</div>
|
||||
|
||||
<div class="right_btn_box">
|
||||
<button id="btnInsertAppEvent" class="event_btn">
|
||||
<img src="/image/web/notice_btn_icon.svg" alt="이벤트 등록">이벤트 등록
|
||||
</button>
|
||||
<button id="btnDeleteAppEvent" class="delete_btn">
|
||||
<img src="/image/web/delete_btn_icon.svg" alt="삭제">삭제
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="appEventGrid" class="table_box ag-theme-balham"></div>
|
||||
|
||||
<!-- 페이지게이션 -->
|
||||
<div class="page_box">
|
||||
<nav aria-label="Page navigation" class="navigation">
|
||||
<ul class="pagination" id="appEventPagination"></ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<form id="appEventSelectListForm" method="POST" target="_blank"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_popup">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/web/ag-grid-community-29.3.5.min.js"></script>
|
||||
<script src="/js/web/appevent/appEventSelectList.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,94 @@
|
||||
<!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/homeLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link href="https://cdn.jsdelivr.net/npm/summernote@0.8.18/dist/summernote.min.css" rel="stylesheet">
|
||||
<link rel="stylesheet" href="/css/web/app_event_registration.css">
|
||||
<link rel="stylesheet" href="/css/web/grid.css?v1.1">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script src="/js/web/jquery.twbsPagination.js" type="text/javascript"></script>
|
||||
<script>
|
||||
let menuClass = "[[${param.menuClass}]]"==""?"":"[[${param.menuClass}]]";
|
||||
|
||||
let selectUseYn = "[[${selectUseYn}]]"==""?"N":"[[${selectUseYn}]]";
|
||||
let insertUseYn = "[[${insertUseYn}]]"==""?"N":"[[${insertUseYn}]]";
|
||||
let updateUseYn = "[[${updateUseYn}]]"==""?"N":"[[${updateUseYn}]]";
|
||||
let deleteUseYn = "[[${deleteUseYn}]]"==""?"N":"[[${deleteUseYn}]]";
|
||||
let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
|
||||
|
||||
let muAppEventId = "[[${param.muAppEventId}]]";
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<!-- 센터쪽 -->
|
||||
<div class="center_box">
|
||||
<p class="page_title">이벤트 등록</p>
|
||||
|
||||
<!-- 테이블 -->
|
||||
<div class="content_box">
|
||||
<div class="content_left">
|
||||
<p class="title">이벤트 등록</p>
|
||||
<ul class="first">
|
||||
<li><input type="text" id="title" placeholder="이벤트 제목을 20자 이내로 작성해주세요."/></li>
|
||||
<li><textarea id="content" placeholder="이벤트 내용을 20자 이내로 작성해주세요."></textarea></li>
|
||||
<li>
|
||||
<label>이벤트 기간</label>
|
||||
<div class="calendar_box">
|
||||
<div class="date_box">
|
||||
<img src="/image/web/calendar.svg" alt="calendar"/>
|
||||
<input type="date" class="date_picker" id="eventStartDate">
|
||||
</div>
|
||||
|
||||
<span class="slash">-</span>
|
||||
|
||||
<div class="date_box last">
|
||||
<img src="/image/web/calendar.svg" alt="calendar"/>
|
||||
<input type="date" class="date_picker" id="eventEndDate">
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="last">
|
||||
<li class="checkbox_li">
|
||||
<input type="checkbox" id="exposedYn"/>
|
||||
<label for="exposedYn">메인 홈 노출</label>
|
||||
<p>*이벤트 메인 노출은 최대 5개까지 가능합니다</p>
|
||||
</li>
|
||||
<li class="banner_li">
|
||||
<div class="top">
|
||||
<label>배너이미지</label>
|
||||
<label for="file" class="file_btn"><img src="/image/web/add.svg" alt="파일찾기"></label>
|
||||
</div>
|
||||
<div class="btm">
|
||||
<div class="img_box"><!-- img 미리보기 --></div>
|
||||
<input class="upload-name" placeholder="파일을 업로드해주세요.">
|
||||
<input type="file" id="file" accept="image/jpeg, image/jpg, image/png" multiple>
|
||||
<button id="delete_btn">삭제</button>
|
||||
</div>
|
||||
<p>*이미지 사이즈 규격 정보*<br/>예) 필수사항 : 750px*500px / 1m 이하 / png, jpg(jpeg)</p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="content_right">
|
||||
<p class="title">이벤트 상세</p>
|
||||
<div class="editor_box"> <div id="summernote"></div></div>
|
||||
<div class="button_box">
|
||||
<button class="cancel_btn btnCancle">취소</button>
|
||||
<button class="registration_btn btnSave">수정</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<form id="excelForm" method="POST" target="_blank"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_popup">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/web/ag-grid-community-29.3.5.min.js"></script>
|
||||
<script src="/js/web/appevent/appEventUpdate.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/summernote@0.8.18/dist/summernote.min.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,121 @@
|
||||
<!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/homeLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/web/app_notice.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/web/modal_app_notice.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/web/grid.css?v1.1">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script src="/js/web/jquery.twbsPagination.js" type="text/javascript"></script>
|
||||
<script>
|
||||
let menuClass = "[[${param.menuClass}]]"==""?"":"[[${param.menuClass}]]";
|
||||
|
||||
let selectUseYn = "[[${selectUseYn}]]"==""?"N":"[[${selectUseYn}]]";
|
||||
let insertUseYn = "[[${insertUseYn}]]"==""?"N":"[[${insertUseYn}]]";
|
||||
let updateUseYn = "[[${updateUseYn}]]"==""?"N":"[[${updateUseYn}]]";
|
||||
let deleteUseYn = "[[${deleteUseYn}]]"==""?"N":"[[${deleteUseYn}]]";
|
||||
let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
|
||||
|
||||
/* 검색 관련 변수 */
|
||||
let appNoticeSearchKeywordParam = "[[${param.appNoticeSearchKeywordParam}]]";
|
||||
let appNoticeSort = "[[${param.appNoticeSort}]]";
|
||||
let appNoticeDir = "[[${param.appNoticeDir}]]";
|
||||
let appNoticeStart = "[[${param.appNoticeStart}]]"==""?0:"[[${param.appNoticeStart}]]";
|
||||
let appNoticeLimit = "[[${param.appNoticeLimit}]]"==""?500:"[[${param.appNoticeLimit}]]";
|
||||
|
||||
let appNoticeSearchStartDate = "[[${param.appNoticeSearchStartDate}]]";
|
||||
let appNoticeSearchEndDate = "[[${param.appNoticeSearchEndDate}]]";
|
||||
let appNoticeSearchDateType = "[[${param.appNoticeSearchDateType}]]"==""?"A":"[[${param.appNoticeSearchDateType}]]";
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<!-- 센터쪽 -->
|
||||
<div class="center_box">
|
||||
<p class="page_title">공지사항</p>
|
||||
|
||||
<div class="filter_box">
|
||||
<div class="form_box">
|
||||
<div class="select_box first dropdown">
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">기간</button>
|
||||
<input type="hidden" id="appNoticeSearchDateType"></input>
|
||||
|
||||
<ul class="select_option_list dropdown-menu">
|
||||
<li id="li_A" class="option_list_item first" >오늘</li>
|
||||
<li id="li_B" class="option_list_item">최근30일</li>
|
||||
<li id="li_C" class="option_list_item">최근90일</li>
|
||||
<li id="li_D" class="option_list_item">이번주</li>
|
||||
<li id="li_E" class="option_list_item">이번달</li>
|
||||
<li id="li_F" class="option_list_item">올해</li>
|
||||
<li id="li_G" class="option_list_item">지난주</li>
|
||||
<li id="li_H" class="option_list_item">지난달</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- 캘린더input -->
|
||||
<div class="calendar_box">
|
||||
<div class="date_box date" id="divAppNoticeSearchStartDate">
|
||||
<img src="/image/web/calendar.svg" alt="calendar"/>
|
||||
<input type="date" class="date_picker" id="appNoticeSearchStartDate">
|
||||
</div>
|
||||
|
||||
<span class="slash">-</span>
|
||||
|
||||
<div class="date_box last date" id="divAppNoticeSearchEndDate">
|
||||
<img src="/image/web/calendar.svg" alt="calendar"/>
|
||||
<input type="date" class="date_picker" id="appNoticeSearchEndDate">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- 검색input -->
|
||||
<div class="search_list">
|
||||
<div class="search_box">
|
||||
<img src="/image/web/search_G.svg" alt="search"/>
|
||||
<input type="text" id="appNoticeSearchKeyword" required placeholder="제목,내용">
|
||||
|
||||
<div class="search_list"></div><!-- 검색내역 나오는곳 -->
|
||||
</div>
|
||||
<button id="btnSearchAppNotice" class="search_btn" style="transition: all 0.2s ease-in-out 0s;">조회</button>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="right_btn_box">
|
||||
<button id="btnInsertAppNotice" class="notice_btn" style="transition: all 0.2s ease-in-out 0s;">
|
||||
<img src="/image/web/notice_btn_icon.svg" alt="공지사항 등록">공지사항 등록
|
||||
</button>
|
||||
<button id="btnDeleteAppNotice" class="delete_btn" style="transition: all 0.2s ease-in-out 0s;">
|
||||
<img src="/image/web/delete_btn_icon.svg" alt="삭제">삭제
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="appNoticeGrid" class="table_box ag-theme-balham"></div>
|
||||
|
||||
<!-- 페이지게이션 -->
|
||||
<div class="page_box">
|
||||
<nav aria-label="Page navigation" class="navigation">
|
||||
<ul class="pagination" id="appNoticePagination"></ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<form id="appNoticeSelectListForm" method="POST" target="_blank"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_popup">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/web/ag-grid-community-29.3.5.min.js"></script>
|
||||
<script src="/js/web/appnotice/appNoticeSelectList.js"></script>
|
||||
|
||||
<script src="/js/web/appnotice/popup/appNoticeInsertPop.js"></script>
|
||||
<script src="/js/web/appnotice/popup/appNoticeSelectPop.js"></script>
|
||||
<script src="/js/web/appnotice/popup/appNoticeUpdatePop.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,101 @@
|
||||
<!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/homeLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/web/webFeedbackSelectList.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/web/grid.css?v1.1">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script src="/js/web/jquery.twbsPagination.js" type="text/javascript"></script>
|
||||
<script>
|
||||
let menuClass = "[[${param.menuClass}]]"==""?"":"[[${param.menuClass}]]";
|
||||
let categoryDivCd = "[[${param.categoryDivCd}]]"==""?"":"[[${param.categoryDivCd}]]";
|
||||
categoryDivCd = "[[${categoryDivCd}]]"==""?"":"[[${categoryDivCd}]]";
|
||||
|
||||
let selectUseYn = "[[${selectUseYn}]]"==""?"N":"[[${selectUseYn}]]";
|
||||
let insertUseYn = "[[${insertUseYn}]]"==""?"N":"[[${insertUseYn}]]";
|
||||
let updateUseYn = "[[${updateUseYn}]]"==""?"N":"[[${updateUseYn}]]";
|
||||
let deleteUseYn = "[[${deleteUseYn}]]"==""?"N":"[[${deleteUseYn}]]";
|
||||
let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
|
||||
|
||||
/* 검색 관련 변수 */
|
||||
let branchOfficeCd = "[[${param.branchOfficeCd}]]";
|
||||
let mbName = "[[${param.mbName}]]";
|
||||
let mbHp = "[[${param.mbHp}]]";
|
||||
let opinionClassificationCd = "[[${param.opinionClassificationCd}]]";
|
||||
|
||||
|
||||
let webFeedbackSort = "[[${param.webFeedbackSort}]]";
|
||||
let webFeedbackDir = "[[${param.webFeedbackDir}]]";
|
||||
let webFeedbackStart = "[[${param.webFeedbackStart}]]"==""?0:"[[${param.webFeedbackStart}]]";
|
||||
let webFeedbackLimit = "[[${param.webFeedbackLimit}]]"==""?500:"[[${param.webFeedbackLimit}]]";
|
||||
|
||||
let webFeedbackSearchStartDate = "[[${param.webFeedbackSearchStartDate}]]";
|
||||
let webFeedbackSearchEndDate = "[[${param.webFeedbackSearchEndDate}]]";
|
||||
let webFeedbackSearchDateType = "[[${param.webFeedbackSearchDateType}]]"==""?"A":"[[${param.webFeedbackSearchDateType}]]";
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<!-- 센터쪽 -->
|
||||
<div class="center_box">
|
||||
<p class="page_title">홈페이지 예약</p>
|
||||
|
||||
<div class="filter_box">
|
||||
<div class="form_box">
|
||||
|
||||
<!-- 이름input -->
|
||||
<div class="search_list">
|
||||
<div class="search_box">
|
||||
<select id="branchOfficeCd" required>
|
||||
<option value="">전체</option>
|
||||
<option value="GN">강남</option>
|
||||
</select>
|
||||
<div class="search_list"></div>
|
||||
</div>
|
||||
<div class="search_box">
|
||||
<img src="/image/web/search_G.svg" alt="search"/>
|
||||
<input type="text" id="mbName" required placeholder="이름">
|
||||
|
||||
<div class="search_list"></div><!-- 검색내역 나오는곳 -->
|
||||
</div>
|
||||
<div class="search_box">
|
||||
<img src="/image/web/search_G.svg" alt="search"/>
|
||||
<input type="text" id="mbHp" required placeholder="핸드폰번호">
|
||||
|
||||
<div class="search_list"></div><!-- 검색내역 나오는곳 -->
|
||||
</div>
|
||||
<!-- Classification selectbox -->
|
||||
<div class="search_box">
|
||||
<select id="opinionClassificationCd" required>
|
||||
<option value="">전체</option>
|
||||
<option value="PR">칭찬</option>
|
||||
<option value="DS">불만</option>
|
||||
<option value="ET">기타</option>
|
||||
</select>
|
||||
<div class="search_list"></div>
|
||||
</div>
|
||||
<button id="btnSearchWebFeedback" class="search_btn" data-toggle="modal" data-target=".work_closed_modal" style="transition: all 0.2s ease-in-out 0s;">조회</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="webFeedbackGrid" class="table_box ag-theme-balham"></div>
|
||||
|
||||
<!-- 페이지게이션 -->
|
||||
<div class="page_box">
|
||||
<nav aria-label="Page navigation" class="navigation">
|
||||
<ul class="pagination" id="webFeedbackPagination"></ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<form id="webFeedbackSelectListForm" method="POST" target="_blank"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_popup">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/web/ag-grid-community-29.3.5.min.js"></script>
|
||||
<script src="/js/web/appointment/Appointment.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -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="~{/web/layout/homeLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/web/app.css">
|
||||
<link rel="stylesheet" href="/css/web/grid.css?v1.1">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script src="/js/web/common_option.js"></script>
|
||||
<script src="/js/web/jquery.twbsPagination.js" type="text/javascript"></script>
|
||||
<script>
|
||||
let menuClass = "[[${param.menuClass}]]"==""?"":"[[${param.menuClass}]]";
|
||||
|
||||
let selectUseYn = "[[${selectUseYn}]]"==""?"N":"[[${selectUseYn}]]";
|
||||
let insertUseYn = "[[${insertUseYn}]]"==""?"N":"[[${insertUseYn}]]";
|
||||
let updateUseYn = "[[${updateUseYn}]]"==""?"N":"[[${updateUseYn}]]";
|
||||
let deleteUseYn = "[[${deleteUseYn}]]"==""?"N":"[[${deleteUseYn}]]";
|
||||
let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
|
||||
|
||||
let muUserId = "[[${param.muUserId}]]";
|
||||
|
||||
/* 검색 관련 변수 */
|
||||
let appUserSearchKeywordParam = "[[${param.appUserSearchKeywordParam}]]";
|
||||
let appUserSort = "[[${param.appUserSort}]]";
|
||||
let appUserDir = "[[${param.appUserDir}]]";
|
||||
let appUserStart = "[[${param.appUserStart}]]"==""?0:"[[${param.appUserStart}]]";
|
||||
let appUserLimit = "[[${param.appUserLimit}]]"==""?500:"[[${param.appUserLimit}]]";
|
||||
|
||||
let appIntroType = "[[${param.appIntroType}]]"??"";
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<!-- 센터쪽 -->
|
||||
<div class="center_box">
|
||||
<p class="page_title">앱 회원</p>
|
||||
<p class="total" id="appUserTotalCount">-명</p>
|
||||
|
||||
<div class="filter_box">
|
||||
<div class="form_box">
|
||||
<div class="select_box first dropdown">
|
||||
<button class="label" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">회원내역 전체</button>
|
||||
<input type="hidden" id="appIntroType"></input>
|
||||
<ul class="select_option_list dropdown-menu">
|
||||
<li class="option_list_item" value="All">회원내역 전체</li>
|
||||
<li class="option_list_item" value="C">신규 가입회원</li>
|
||||
<li class="option_list_item" value="U">기존 내원회원</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="search_list_box">
|
||||
<div class="search_box">
|
||||
<img src="/image/web/search_G.svg" alt="검색"/>
|
||||
<input type="text" id="appUserSearchKeyword" placeholder="고객명, 연락처, 아이디">
|
||||
|
||||
<div class="search_list"></div><!-- 검색내역 나오는곳 -->
|
||||
</div>
|
||||
<button class="search_btn" id="btnSearchAppUser">조회</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="appUserGrid" class="table_box ag-theme-balham"></div>
|
||||
|
||||
<!-- 페이지게이션 -->
|
||||
<div class="page_box">
|
||||
<nav aria-label="Page navigation" class="navigation">
|
||||
<ul class="pagination" id="appUserPagination"></ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<form id="appUserSelectListForm" method="POST" target="_blank"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_popup">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/web/ag-grid-community-29.3.5.min.js"></script>
|
||||
<script src="/js/web/appuser/appUserSelectList.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="~{/web/layout/homeLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/web/app_inquiry.css">
|
||||
<link rel="stylesheet" href="/css/web/modal_app_inquiry.css">
|
||||
<link rel="stylesheet" href="/css/web/grid.css?v1.1">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script src="/js/web/jquery.twbsPagination.js" type="text/javascript"></script>
|
||||
<script>
|
||||
let menuClass = "[[${param.menuClass}]]"==""?"":"[[${param.menuClass}]]";
|
||||
|
||||
let selectUseYn = "[[${selectUseYn}]]"==""?"N":"[[${selectUseYn}]]";
|
||||
let insertUseYn = "[[${insertUseYn}]]"==""?"N":"[[${insertUseYn}]]";
|
||||
let updateUseYn = "[[${updateUseYn}]]"==""?"N":"[[${updateUseYn}]]";
|
||||
let deleteUseYn = "[[${deleteUseYn}]]"==""?"N":"[[${deleteUseYn}]]";
|
||||
let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
|
||||
|
||||
/* 검색 관련 변수 */
|
||||
let appUserInquirySearchKeywordParam = "[[${param.appUserInquirySearchKeywordParam}]]";
|
||||
let appUserInquirySort = "[[${param.appUserInquirySort}]]";
|
||||
let appUserInquiryDir = "[[${param.appUserInquiryDir}]]";
|
||||
let appUserInquiryStart = "[[${param.appUserInquiryStart}]]"==""?0:"[[${param.appUserInquiryStart}]]";
|
||||
let appUserInquiryLimit = "[[${param.appUserInquiryLimit}]]"==""?500:"[[${param.appUserInquiryLimit}]]";
|
||||
|
||||
let appUserInquirySearchStartDate = "[[${param.appUserInquirySearchStartDate}]]";
|
||||
let appUserInquirySearchEndDate = "[[${param.appUserInquirySearchEndDate}]]";
|
||||
let appUserInquirySearchDateType = "[[${param.appUserInquirySearchDateType}]]"==""?"A":"[[${param.appUserInquirySearchDateType}]]";
|
||||
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<!-- 센터쪽 -->
|
||||
<div class="center_box">
|
||||
<p class="page_title">1:1문의</p>
|
||||
|
||||
<div class="filter_box">
|
||||
<div class="form_box">
|
||||
<div class="select_box first dropdown">
|
||||
<button class="label dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">기간</button>
|
||||
<input type="hidden" id="appUserInquirySearchDateType"></input>
|
||||
<ul class="select_option_list dropdown-menu" id="">
|
||||
<li id="li_A" class="option_list_item first" >오늘</li>
|
||||
<li id="li_B" class="option_list_item">최근30일</li>
|
||||
<li id="li_C" class="option_list_item">최근90일</li>
|
||||
<li id="li_D" class="option_list_item">이번주</li>
|
||||
<li id="li_E" class="option_list_item">이번달</li>
|
||||
<li id="li_F" class="option_list_item">올해</li>
|
||||
<li id="li_G" class="option_list_item">지난주</li>
|
||||
<li id="li_H" class="option_list_item">지난달</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- 캘린더input -->
|
||||
<div class="calendar_box">
|
||||
<div class="date_box" id="divAppUserInquirySearchStartDate">
|
||||
<img src="/image/web/calendar.svg" alt="calendar"/>
|
||||
<input type="date" class="date_picker" id="appUserInquirySearchStartDate">
|
||||
</div>
|
||||
|
||||
<span class="slash">-</span>
|
||||
|
||||
<div class="date_box last" id="divAppUserInquirySearchEndDate">
|
||||
<img src="/image/web/calendar.svg" alt="calendar"/>
|
||||
<input type="date" class="date_picker" id="appUserInquirySearchEndDate">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 이름input -->
|
||||
<div class="search_list">
|
||||
<div class="search_box">
|
||||
<img src="/image/web/search_G.svg" alt="search"/>
|
||||
<input type="text" id="appUserInquirySearchKeyword" required placeholder="제목, 내용">
|
||||
|
||||
<div class="search_list"></div><!-- 검색내역 나오는곳 -->
|
||||
</div>
|
||||
<button id="btnSearchAppUserInquiry" class="search_btn">조회</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 동의서 테이블 -->
|
||||
<div id="appUserInquiryGrid" class="table_box ag-theme-balham"></div>
|
||||
|
||||
<!-- 페이지게이션 -->
|
||||
<div class="page_box">
|
||||
<nav aria-label="Page navigation" class="navigation">
|
||||
<ul class="pagination" id="appUserInquiryPagination"></ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<form id="appUserInquirySelectListForm" method="POST" target="_blank"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_popup">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/web/ag-grid-community-29.3.5.min.js"></script>
|
||||
<script src="/js/web/appuserinquiry/appUserInquirySelectList.js"></script>
|
||||
|
||||
<script src="/js/web/appuserinquiry/popup/appUserInquiryInsertPop.js"></script>
|
||||
<script src="/js/web/appuserinquiry/popup/appUserInquirySelectPop.js"></script>
|
||||
<script src="/js/web/appuserinquiry/popup/appUserInquiryUpdatePop.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,277 @@
|
||||
<!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/homeLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/web/hospital.css?v1.1">
|
||||
<!-- <link rel="stylesheet" href="/css/web/modal.css?v1.1"> -->
|
||||
<link rel="stylesheet" href="/css/web/modal_hospital.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/web/modal_hospital_vacation_sub.css?v1.1">
|
||||
<!-- <link rel="stylesheet" href="/css/web/grid.css?v1.1"> -->
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script src="/js/web/common_option.js"></script>
|
||||
<script src="/js/web/jquery.twbsPagination.js" type="text/javascript"></script>
|
||||
<script>
|
||||
let menuClass = "[[${param.menuClass}]]"==""?"":"[[${param.menuClass}]]";
|
||||
|
||||
let selectUseYn = "[[${selectUseYn}]]"==""?"N":"[[${selectUseYn}]]";
|
||||
let insertUseYn = "[[${insertUseYn}]]"==""?"N":"[[${insertUseYn}]]";
|
||||
let updateUseYn = "[[${updateUseYn}]]"==""?"N":"[[${updateUseYn}]]";
|
||||
let deleteUseYn = "[[${deleteUseYn}]]"==""?"N":"[[${deleteUseYn}]]";
|
||||
let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
|
||||
|
||||
/* 검색 관련 변수 */
|
||||
// 근태관리
|
||||
let attendanceSearchKeywordParam = "[[${param.attendanceSearchKeywordParam}]]";
|
||||
let attendanceSort = "[[${param.attendanceSort}]]";
|
||||
let attendanceDir = "[[${param.attendanceDir}]]";
|
||||
let attendanceStart = "[[${param.attendanceStart}]]"==""?0:"[[${param.attendanceStart}]]";
|
||||
let attendanceLimit = "[[${param.attendanceLimit}]]"==""?100:"[[${param.attendanceLimit}]]";
|
||||
|
||||
// let attendanceSearchStartDate = "[[${param.attendanceSearchStartDate}]]";
|
||||
// let attendanceSearchEndDate = "[[${param.attendanceSearchEndDate}]]";
|
||||
let attendanceSearchDate = "[[${param.attendanceSearchDate}]]";
|
||||
let attendanceSearchDateType = "[[${param.attendanceSearchDateType}]]"==""?"A":"[[${param.attendanceSearchDateType}]]";
|
||||
let attendanceSearchGroupId = "[[${param.attendanceSearchGroupId}]]";
|
||||
|
||||
// 휴무관리
|
||||
let holidayManagementSearchKeywordParam = "[[${param.holidayManagementSearchKeywordParam}]]";
|
||||
let holidayManagementSort = "[[${param.holidayManagementSort}]]";
|
||||
let holidayManagementDir = "[[${param.holidayManagementDir}]]";
|
||||
let holidayManagementStart = "[[${param.holidayManagementStart}]]"==""?0:"[[${param.holidayManagementStart}]]";
|
||||
let holidayManagementLimit = "[[${param.holidayManagementLimit}]]"==""?100:"[[${param.holidayManagementLimit}]]";
|
||||
|
||||
let holidayManagementSearchDate = "[[${param.holidayManagementSearchDate}]]";
|
||||
let holidayManagementSearchGroupId = "[[${param.holidayManagementSearchGroupId}]]";
|
||||
let holidayManagementSearchDutyId = "[[${param.holidayManagementSearchDutyId}]]";
|
||||
|
||||
// 연차관리
|
||||
let vacationManagementSearchKeywordParam = "[[${param.vacationManagementSearchKeywordParam}]]";
|
||||
let vacationManagementSort = "[[${param.vacationManagementSort}]]";
|
||||
let vacationManagementDir = "[[${param.vacationManagementDir}]]";
|
||||
let vacationManagementStart = "[[${param.vacationManagementStart}]]"==""?0:"[[${param.vacationManagementStart}]]";
|
||||
let vacationManagementLimit = "[[${param.vacationManagementLimit}]]"==""?100:"[[${param.vacationManagementLimit}]]";
|
||||
|
||||
let vacationManagementSearchYear = "[[${param.vacationManagementSearchYear}]]";
|
||||
let vacationManagementSearchGroupId = "[[${param.vacationManagementSearchGroupId}]]";
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<!-- 센터쪽 -->
|
||||
<div class="center_box">
|
||||
<div class="tab_panel" role="tabpanel">
|
||||
<!-- Nav tabs -->
|
||||
<div class="nav_box">
|
||||
<ul class="nav nav-tabs" role="tablist">
|
||||
<li role="presentation" class="active">
|
||||
<a href="#attendance" aria-controls="attendance" role="tab" data-toggle="tab">
|
||||
<p>근태 관리</p>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li role="presentation">
|
||||
<a href="#holiday" aria-controls="holiday" role="tab" data-toggle="tab">
|
||||
<p>휴무 관리</p>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li role="presentation">
|
||||
<a href="#vacation" aria-controls="vacation" role="tab" data-toggle="tab">
|
||||
<p>연차 관리</p>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- Tab panes -->
|
||||
<div class="tab-content">
|
||||
<div role="tabpanel" class="tab-pane attendance active" id="attendance">
|
||||
<div class="filter_box">
|
||||
<div class="form_box">
|
||||
<!-- 캘린더input -->
|
||||
<div class="calendar_box">
|
||||
<div class="date_box">
|
||||
<img src="/image/web/calendar.svg" alt="calendar">
|
||||
<input type="text" class="date_picker" id="attendanceSearchDate">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">조직 전체</button>
|
||||
<input type="hidden" id="attendanceSearchGroupId"></input>
|
||||
|
||||
<ul class="select_option_list dropdown-menu"></ul>
|
||||
</div>
|
||||
|
||||
<!-- 검색input -->
|
||||
<div class="search_list">
|
||||
<div class="search_box">
|
||||
<img src="/image/web/search_G.svg" alt="search">
|
||||
<input type="text" id="attendanceSearchKeyword" required placeholder="이름">
|
||||
|
||||
<div class="search_list"></div><!-- 검색내역 나오는곳 -->
|
||||
</div>
|
||||
<button id="btnSearchAttendance" class="search_btn" style="transition: all 0.2s ease-in-out 0s;">조회</button>
|
||||
</div>
|
||||
|
||||
<div class="right_btn_box">
|
||||
<button id="btnInsertAttendance" class="work_btn" style="transition: all 0.2s ease-in-out 0s;">출퇴/휴무 등록</button>
|
||||
<button id="btnInsertAttendanceVacationManagement" class="yeoncha_btn" style="transition: all 0.2s ease-in-out 0s;">연차 사용</button>
|
||||
<button id="btnDownloadAttendanceExcel" class="download_btn">
|
||||
<img src="/image/web/download.svg" alt="내려받기"/>
|
||||
<p>내려받기</p>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 조회내역 -->
|
||||
<div class="list_box">
|
||||
<div class="list_top_box">
|
||||
<ul class="calendar_list">
|
||||
<li class="name">직원</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="list_bottom_box">
|
||||
<table class="table" id="attendTable"></table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div role="tabpanel" class="tab-pane holiday" id="holiday">
|
||||
<div class="filter_box">
|
||||
<div class="form_box">
|
||||
|
||||
<!-- 캘린더input -->
|
||||
<div class="calendar_box">
|
||||
<div class="date_box">
|
||||
<img src="/image/web/calendar.svg" alt="calendar"/>
|
||||
<input type="text" class="date_picker" id="holidayManagementSearchDate">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">조직 전체</button>
|
||||
<input type="hidden" id="holidayManagementSearchGroupId"></input>
|
||||
|
||||
<ul class="select_option_list dropdown-menu"></ul>
|
||||
</div>
|
||||
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">직무 전체</button>
|
||||
<input type="hidden" id="holidayManagementSearchDutyId"></input>
|
||||
|
||||
<ul class="select_option_list dropdown-menu"></ul>
|
||||
</div>
|
||||
|
||||
<!-- 검색input -->
|
||||
<div class="search_list">
|
||||
<div class="search_box">
|
||||
<img src="/image/web/search_G.svg" alt="search"/>
|
||||
<input type="text" id="holidayManagementSearchKeyword" required placeholder="이름">
|
||||
|
||||
<div class="search_list"></div><!-- 검색내역 나오는곳 -->
|
||||
</div>
|
||||
<button id="btnSearchHolidayManagement" class="search_btn" style="transition: all 0.2s ease-in-out 0s;">조회</button>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="right_btn_box">
|
||||
<button id="btnInsertHolidayManagement" class="annual_btn" style="transition: all 0.2s ease-in-out 0s;">휴무 등록</button>
|
||||
<button id="btnDownloadHolidayManagementExcel" class="download_btn">
|
||||
<img src="/image/web/download.svg" alt="내려받기"/>
|
||||
<p>내려받기</p>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="holidayManagementGrid" class="table_box ag-theme-balham"></div>
|
||||
|
||||
<!-- 페이지게이션 -->
|
||||
<div class="page_box">
|
||||
<nav ria-label="Page navigation" class="navigation">
|
||||
<ul class="pagination" id="holidayManagementPagination"></ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div role="tabpanel" class="tab-pane vacation" id="vacation">
|
||||
<div class="filter_box">
|
||||
<div class="form_box">
|
||||
<!-- 캘린더input -->
|
||||
<div class="calendar_box">
|
||||
<div class="date_box last">
|
||||
<img src="/image/web/calendar.svg" alt="calendar"/>
|
||||
<input type="text" class="date_picker" id="vacationManagementSearchYear">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">조직 전체</button>
|
||||
<input type="hidden" id="vacationManagementSearchGroupId"></input>
|
||||
|
||||
<ul class="select_option_list dropdown-menu"></ul>
|
||||
</div>
|
||||
|
||||
<!-- 검색input -->
|
||||
<div class="search_list">
|
||||
<div class="search_box">
|
||||
<img src="/image/web/search_G.svg" alt="search"/>
|
||||
<input type="text" id="vacationManagementSearchKeyword" required placeholder="이름">
|
||||
|
||||
<div class="search_list"></div><!-- 검색내역 나오는곳 -->
|
||||
</div>
|
||||
<button id="btnSearchVacationManagement" class="search_btn" style="transition: all 0.2s ease-in-out 0s;">조회</button>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="right_btn_box">
|
||||
<button id="btnInsertVacationManagement" class="hyuga_btn" style="transition: all 0.2s ease-in-out 0s;">연차 발행</button>
|
||||
<button id="btnDownloadVacationManagementExcel" class="download_btn">
|
||||
<img src="/image/web/download.svg" alt="내려받기"/>
|
||||
<p>내려받기</p>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="vacationManagementGrid" class="table_box ag-theme-balham"></div>
|
||||
|
||||
<!-- 페이지게이션 -->
|
||||
<div class="page_box">
|
||||
<nav ria-label="Page navigation" class="navigation">
|
||||
<ul class="pagination" id="vacationManagementPagination"></ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<form id="attendanceSelectListForm" method="POST" target="_blank"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_popup">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/web/ag-grid-community-29.3.5.min.js"></script>
|
||||
<script src="/js/web/attendance/attendanceSelectList.js"></script>
|
||||
|
||||
<script src="/js/web/attendance/popup/attendanceInsertPop.js"></script>
|
||||
<script src="/js/web/attendance/popup/attendanceUpdatePop.js"></script>
|
||||
<script src="/js/web/attendance/popup/attendanceVacationManagerInsertPop.js"></script>
|
||||
<script src="/js/web/attendance/popup/attendanceVacationManagerUpdatePop.js"></script>
|
||||
<script src="/js/web/attendance/popup/attendanceVacationManagementCancelEtcPop.js"></script>
|
||||
|
||||
<script src="/js/web/holidaymanagement/popup/holidayManagementInsertPop.js"></script>
|
||||
<script src="/js/web/holidaymanagement/popup/holidayManagementUpdatePop.js"></script>
|
||||
<script src="/js/web/holidaymanagement/popup/holidayManagementCancelPop.js"></script>
|
||||
<script src="/js/web/holidaymanagement/popup/holidayManagementCancelEtcPop.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.16.9/xlsx.full.min.js"></script>
|
||||
<script src="/js/web/vacationmanagement/popup/vacationManagementInsertPop.js"></script>
|
||||
<script src="/js/web/vacationmanagement/popup/vacationManagementUpdatePop.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,91 @@
|
||||
<!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/homeLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/web/webCategorySelectList.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/web/grid.css?v1.1">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script src="/js/web/jquery.twbsPagination.js" type="text/javascript"></script>
|
||||
<script>
|
||||
let menuClass = "[[${param.menuClass}]]"==""?"":"[[${param.menuClass}]]";
|
||||
let categoryDivCd = "[[${param.categoryDivCd}]]"==""?"":"[[${param.categoryDivCd}]]";
|
||||
categoryDivCd = "[[${categoryDivCd}]]"==""?"":"[[${categoryDivCd}]]";
|
||||
|
||||
let selectUseYn = "[[${selectUseYn}]]"==""?"N":"[[${selectUseYn}]]";
|
||||
let insertUseYn = "[[${insertUseYn}]]"==""?"N":"[[${insertUseYn}]]";
|
||||
let updateUseYn = "[[${updateUseYn}]]"==""?"N":"[[${updateUseYn}]]";
|
||||
let deleteUseYn = "[[${deleteUseYn}]]"==""?"N":"[[${deleteUseYn}]]";
|
||||
let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
|
||||
|
||||
/* 검색 관련 변수 */
|
||||
let categoryNm = "[[${param.categoryName}]]"==""?"":"[[${param.categoryName}]]";
|
||||
|
||||
let webCategorySort = "[[${param.webCategorySort}]]";
|
||||
let webCategoryDir = "[[${param.webCategoryDir}]]";
|
||||
let webCategoryStart = "[[${param.webCategoryStart}]]"==""?0:"[[${param.webCategoryStart}]]";
|
||||
let webCategoryLimit = "[[${param.webCategoryLimit}]]"==""?500:"[[${param.webCategoryLimit}]]";
|
||||
|
||||
let webCategorySearchStartDate = "[[${param.webCategorySearchStartDate}]]";
|
||||
let webCategorySearchEndDate = "[[${param.webCategorySearchEndDate}]]";
|
||||
let webCategorySearchDateType = "[[${param.webCategorySearchDateType}]]"==""?"A":"[[${param.webCategorySearchDateType}]]";
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<!-- 센터쪽 -->
|
||||
<div class="center_box">
|
||||
<p class="page_title">카테고리 관리</p>
|
||||
|
||||
<div class="filter_box">
|
||||
<div class="form_box">
|
||||
|
||||
<!-- 이름input -->
|
||||
<div class="search_list">
|
||||
<div class="search_box">
|
||||
<select id="searchCategoryDivCd" required>
|
||||
<option value="">전체</option>
|
||||
<option value="01">다이어트 시술</option>
|
||||
<option value="02">다이어트 이벤트</option>
|
||||
<option value="03">쁘띠 시술</option>
|
||||
<option value="04">쁘띠 이벤트</option>
|
||||
<option value="05">다이어트 전후사진</option>
|
||||
<option value="06">쁘띠 전후사진</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="search_box">
|
||||
<input type="text" id="searchCategoryNm" required placeholder="카테고리명">
|
||||
</div>
|
||||
<button id="btnSearchWebCategory" class="search_btn" data-toggle="modal" data-target=".work_closed_modal" style="transition: all 0.2s ease-in-out 0s;">조회</button>
|
||||
</div>
|
||||
|
||||
<div class="right_btn_box">
|
||||
<button id="btnInsertWebCategory" class="put_btn">
|
||||
<img src="/image/web/notice_btn_icon.svg" alt="등록">등록
|
||||
</button>
|
||||
<button id="btnDeleteWebCategory" class="delete_btn">
|
||||
<img src="/image/web/delete_btn_icon.svg" alt="삭제">삭제
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="webCategoryGrid" class="table_box ag-theme-balham"></div>
|
||||
|
||||
<!-- 페이지게이션 -->
|
||||
<div class="page_box">
|
||||
<nav aria-label="Page navigation" class="navigation">
|
||||
<ul class="pagination" id="webCategoryPagination"></ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<form id="webCategorySelectListForm" method="POST" target="_blank"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_popup">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/web/ag-grid-community-29.3.5.min.js"></script>
|
||||
<script src="/js/web/categoryManagement/CategoryManagement.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
7
src/main/resources/templates/web/common/footer.html
Normal file
7
src/main/resources/templates/web/common/footer.html
Normal file
@@ -0,0 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html lagn="ko" xmlns:th="http://www.thymeleaf.org">
|
||||
<th:block th:fragment="layout_footer">
|
||||
<script>
|
||||
</script>
|
||||
</th:block>
|
||||
</html>
|
||||
86
src/main/resources/templates/web/common/header.html
Normal file
86
src/main/resources/templates/web/common/header.html
Normal file
@@ -0,0 +1,86 @@
|
||||
<!DOCTYPE html>
|
||||
<html lagn="ko" xmlns:th="http://www.thymeleaf.org">
|
||||
|
||||
<th:block th:fragment="layout_header_type1">
|
||||
<!--상단네비-->
|
||||
<header class="header_section">
|
||||
<a href="/" class="logo_wrap">
|
||||
<img class="logo" src="/image/web/logo.svg" alt="logo">
|
||||
<span>메이드유 CRM</span>
|
||||
</a>
|
||||
|
||||
<div class="search_wrap">
|
||||
<div class="search_box">
|
||||
<img src="/image/web/search_B.svg" alt="검색">
|
||||
<input type="text" name="searchKeyword" placeholder="검색 (고객명, 연락처, 생년월일)">
|
||||
|
||||
<div class="search_list_modal">
|
||||
<ul class="search_list">
|
||||
<li>
|
||||
<span>조회결과가 없습니다.</span>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="search_list_button">
|
||||
<div class="botton_box">
|
||||
<button id="btnHeaderInsertUser2" data-toggle="modal" style="transition: all 0.2s ease-in-out 0s;"><img src="/image/web/registration_B.svg" alt="신환등록">신환 등록</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="btn_box">
|
||||
<button id="btnHeaderInsertReserve" class="reservation_btn" style="transition: all 0.2s ease-in-out 0s;">
|
||||
<img src="/image/web/reservation.svg" alt="예약">
|
||||
예약
|
||||
</button>
|
||||
|
||||
<button id="btnHeaderInsertReserveReady" data-toggle="modal" data-target=".receipt_modal" style="transition: all 0.2s ease-in-out 0s;">
|
||||
<img src="/image/web/receipt.svg" alt="바로접수">
|
||||
바로접수
|
||||
</button>
|
||||
|
||||
<button id="btnHeaderInsertUser" class="last" data-toggle="modal" style="transition: all 0.2s ease-in-out 0s;">
|
||||
<img src="/image/web/registration.svg" alt="신환등록">
|
||||
신환등록
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="dropdown_box">
|
||||
<a class="enrollment_btn" href="#" aria-haspopup="true">
|
||||
<img src="/image/web/userActive.svg" alt="내정보">
|
||||
<p id="loginMemberName"></p>
|
||||
</a>
|
||||
|
||||
<ul class="dropdown_list" aria-label="submenu">
|
||||
<!-- <li>-->
|
||||
<!-- <a href="#reservation" data-toggle="modal" data-target="#reservation" style="transition: all 0.2s ease-in-out 0s;">-->
|
||||
<!-- <span>내정보</span>-->
|
||||
<!-- </a>-->
|
||||
<!-- </li>-->
|
||||
|
||||
<li>
|
||||
<a href="javascript:;" onclick="fn_logout();">
|
||||
<span>로그아웃</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<form id="excelForm" method="POST" target="_blank" action="/Reserve_Upload_Sample.xlsx"></form>
|
||||
|
||||
<script src="https://t1.daumcdn.net/mapjsapi/bundle/postcode/prod/postcode.v2.js"></script>
|
||||
<script src="/js/web/header/headerSelectList.js"></script>
|
||||
<script src="/js/web/reserve/popup/reserveInsertPop.js"></script>
|
||||
<script src="/js/web/reserve/popup/reserveUpdatePop.js"></script>
|
||||
<script src="/js/web/reserve/popup/reserveReadyInsertPop.js"></script>
|
||||
|
||||
<script src="/js/web/treatmentprocedure/popup/treatmentProcedureSearchPop.js"></script>
|
||||
|
||||
<script src="/js/web/user/popup/userInfoInsertPop2.js"></script>
|
||||
<script src="/js/web/user/popup/userIntroSelectListPop.js"></script>
|
||||
|
||||
<script src="/js/web/member/popup/memberSearchPop.js"></script>
|
||||
|
||||
</th:block>
|
||||
</html>
|
||||
143
src/main/resources/templates/web/common/leftMenu.html
Normal file
143
src/main/resources/templates/web/common/leftMenu.html
Normal file
@@ -0,0 +1,143 @@
|
||||
<!DOCTYPE html>
|
||||
<html lagn="ko" xmlns:th="http://www.thymeleaf.org">
|
||||
|
||||
<th:block th:fragment="layout_leftMenu">
|
||||
<!--왼쪽메뉴-->
|
||||
<ul id="menu_list" class="menu_list">
|
||||
<!-- <li>
|
||||
<a href="home.html">
|
||||
<img src="/image/web/menu_1_off.svg" alt="병원현황"/>
|
||||
<span>병원현황</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="customer.html" class="on">
|
||||
<img src="/image/web/menu_2_on.svg" alt="고객"/>
|
||||
<span>고객</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
<img src="/image/web/menu_3_off.svg" alt="수납"/>
|
||||
<span>수납</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="stock.html">
|
||||
<img src="/image/web/menu_4_off.svg" alt="재고"/>
|
||||
<span>재고</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
<img src="/image/web/menu_5_off.svg" alt="통계"/>
|
||||
<span>통계</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="hospital.html">
|
||||
<img src="/image/web/menu_6_off.svg" alt="원무"/>
|
||||
<span>원무</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
<img src="/image/web/menu_7_off.svg" alt="마케팅"/>
|
||||
<span>마케팅</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
<img src="/image/web/menu_8_off.svg" alt="멤버십"/>
|
||||
<span>멤버십</span>
|
||||
</a>
|
||||
</li> -->
|
||||
</ul>
|
||||
|
||||
<script>
|
||||
/****************************************************************************
|
||||
* 메뉴 조회
|
||||
****************************************************************************/
|
||||
function fn_selectListMenu(){
|
||||
let formData = new FormData();
|
||||
formData.append("type", "A");
|
||||
|
||||
$.ajax({
|
||||
url: encodeURI('/webmenu/selectListMenu.do'),
|
||||
data: formData,
|
||||
dataType: "json",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
type: 'POST',
|
||||
async: true,
|
||||
success: function(data){
|
||||
if('0'==data.msgCode){
|
||||
let listHTML = '';
|
||||
|
||||
for(let i = 0; i < data.rows.length; i++){
|
||||
let menuCode = data.rows[i].menuCode;
|
||||
let icon = data.rows[i].icon;
|
||||
let icon2 = data.rows[i].icon2;
|
||||
let menuName = data.rows[i].menuName;
|
||||
let subMenuCode = data.rows[i].subMenuCode;
|
||||
let subAction = data.rows[i].subAction;
|
||||
|
||||
listHTML += '<li>';
|
||||
listHTML += ' <a id="menu'+menuCode+'" href="javascript:;" onClick="javascript:fn_leftFormAction2(\''+subMenuCode+'\',\''+subAction+'\');">';
|
||||
listHTML += ' <img src="'+icon+'" alt="'+menuName+'">';
|
||||
listHTML += ' <img src="'+icon2+'" style="display:none;" alt="'+menuName+'">';
|
||||
listHTML += ' <span>'+menuName+'</span>';
|
||||
listHTML += ' </a>';
|
||||
listHTML += '</li>';
|
||||
}
|
||||
$("#menu_list").empty().html(listHTML).trigger("create");
|
||||
|
||||
// 선택 처리
|
||||
if(!fn_emptyYn(menuClass)){
|
||||
let parentMenuCode = menuClass.substr(0, 2);
|
||||
$("#menu_list #menu"+parentMenuCode).addClass("on");
|
||||
$("#menu_list #menu"+parentMenuCode).find("img:eq(1)").show();
|
||||
$("#menu_list #menu"+parentMenuCode).find("img:eq(0)").hide();
|
||||
}
|
||||
else{
|
||||
let parentMenuCode = data.rows[0].menuCode;
|
||||
menuClass = data.rows[0].subMenuCode;
|
||||
|
||||
$("#menu_list #menu"+parentMenuCode).addClass("on");
|
||||
$("#menu_list #menu"+parentMenuCode).find("img:eq(1)").show();
|
||||
$("#menu_list #menu"+parentMenuCode).find("img:eq(0)").hide();
|
||||
}
|
||||
}
|
||||
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_selectListMenu();
|
||||
|
||||
if(!fn_emptyYn(menuClass)){
|
||||
let parentMenuCode = menuClass.substr(0, 2);
|
||||
|
||||
fn_selectListSubMenu(parentMenuCode);
|
||||
}
|
||||
});
|
||||
|
||||
</script>
|
||||
</th:block>
|
||||
</html>
|
||||
102
src/main/resources/templates/web/common/leftMenu2.html
Normal file
102
src/main/resources/templates/web/common/leftMenu2.html
Normal file
@@ -0,0 +1,102 @@
|
||||
<!DOCTYPE html>
|
||||
<html lagn="ko" xmlns:th="http://www.thymeleaf.org">
|
||||
|
||||
<th:block th:fragment="layout_leftMenu2">
|
||||
<!-- 왼쪽 -->
|
||||
<div class="left_box">
|
||||
<a href="javascript:;" onclick="fn_back();" class="back" style="display:none;"><img src="/image/web/right_arrow_B.svg">뒤로가기</a>
|
||||
<ul id="sub_menu_list" class="sub_menu_list">
|
||||
<!--
|
||||
<li class="title_menu first">원무</li>
|
||||
<li><a href="hospital.html" class="on">근태·연차</a></li>
|
||||
<li><a href="hospital_employee.html" class="on">직원 목록</a></li>
|
||||
|
||||
<li class="title_menu">병원 설정</li>
|
||||
<li><a href="hospital_info.html" class="on">병원 기본정보</a></li>
|
||||
<li><a href="hospital_work.html" class="on">근뮤·연차 설정</a></li>
|
||||
<li><a href="hospital_group.html" class="on">조직·권한 설정</a></li>
|
||||
<li><a href="hospital_diagnosis.html" class="on">진료·시술 설정</a></li>
|
||||
<li><a href="hospital_payment.html" class="on">결제 설정</a></li>
|
||||
<li><a href="hospital_notice.html" class="on">공지사항</a></li>
|
||||
-->
|
||||
</ul>
|
||||
</div>
|
||||
<script>
|
||||
/****************************************************************************
|
||||
* 메뉴 조회
|
||||
****************************************************************************/
|
||||
function fn_selectListSubMenu(param){
|
||||
let formData = new FormData();
|
||||
formData.append("type", "B");
|
||||
formData.append("groupCode", param);
|
||||
|
||||
$.ajax({
|
||||
url: encodeURI('/webmenu/selectListMenu.do'),
|
||||
data: formData,
|
||||
dataType: "json",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
type: 'POST',
|
||||
async: true,
|
||||
success: function(data){
|
||||
if('0'==data.msgCode){
|
||||
let listHTML = '';
|
||||
|
||||
if(data.rows.length>1){
|
||||
for(let i = 0; i < data.rows.length; i++){
|
||||
let menuCode = data.rows[i].menuCode;
|
||||
let menuCodeLength = menuCode.length;
|
||||
|
||||
let menuName = data.rows[i].menuName;
|
||||
let action = data.rows[i].action;
|
||||
|
||||
if(menuCodeLength == 4){
|
||||
if(i==0){
|
||||
listHTML += '<li class="title_menu first">'+menuName+'</li>';
|
||||
}
|
||||
else{
|
||||
listHTML += '<li class="title_menu">'+menuName+'</li>';
|
||||
}
|
||||
}
|
||||
else{
|
||||
listHTML += '<li>';
|
||||
listHTML += ' <a id="menu'+menuCode+'" href="javascript:;" onClick="javascript:fn_leftFormAction2(\''+menuCode+'\',\''+action+'\');">';
|
||||
listHTML += menuName;
|
||||
listHTML += ' </a>';
|
||||
listHTML += '</li>';
|
||||
}
|
||||
}
|
||||
}
|
||||
$("#sub_menu_list").empty().html(listHTML).trigger("create");
|
||||
|
||||
// 선택 처리
|
||||
if(!fn_emptyYn(menuClass)){
|
||||
$("#sub_menu_list #menu"+menuClass).addClass("on");
|
||||
}
|
||||
}
|
||||
else if(data.msgCode=='-1'){
|
||||
modalEvent.warning("조회 오류", data.msgDesc);
|
||||
}
|
||||
else{
|
||||
modalEvent.danger("조회 오류", "조회 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
|
||||
}
|
||||
},
|
||||
error : function(xhr, status, error) {
|
||||
modalEvent.danger("조회 오류", "조회 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
|
||||
},
|
||||
beforeSend:function(){
|
||||
|
||||
},
|
||||
complete:function(){
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$(function(){
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
</th:block>
|
||||
</html>
|
||||
203
src/main/resources/templates/web/common/rightMenu.html
Normal file
203
src/main/resources/templates/web/common/rightMenu.html
Normal file
@@ -0,0 +1,203 @@
|
||||
<!DOCTYPE html>
|
||||
<html lagn="ko" xmlns:th="http://www.thymeleaf.org">
|
||||
<th:block th:fragment="layout_rightMenu">
|
||||
<script>
|
||||
$(function(){
|
||||
fn_rightSelectListRecommendFollow();
|
||||
});
|
||||
</script>
|
||||
<!-- 우측 메뉴 -->
|
||||
<div class="right_wrap">
|
||||
<div class="right_box">
|
||||
<div id="rightMenu" style="display:none">
|
||||
|
||||
<ul class="follow_box" id="rightFollowBox">
|
||||
|
||||
</ul>
|
||||
|
||||
<div class="company" id="rightFooter">
|
||||
<ul class="footerList">
|
||||
<li><a href="#" onClick="fn_selectPolicyIntro('B');">개인정보처리방침</a></li>
|
||||
<li><a href="#" onClick="fn_selectPolicyIntro('A');">이용약관</a></li>
|
||||
<li><a href="#" onClick="fn_selectListInquiryIntro();">고객센터</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="footerCompany">
|
||||
<span>주식회사 그늘</span>
|
||||
|
||||
<span>서울특별시 마포구 월드컵북로5가길 8-17, 2층(서교동)</span>
|
||||
|
||||
<p>대표이사 <span>오 범 진</span></p>
|
||||
|
||||
<p>사업자등록번호 <span>811-87-02127</span></p>
|
||||
|
||||
<p class="last">EMAIL <span>playentree@play-gnl.kr</span></p>
|
||||
|
||||
<span class="reserved">ⓒ그늘 CORP ALL RIGHTS RESERVED.</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
|
||||
/****************************************************************************
|
||||
* 고갠센터 화면 이동
|
||||
****************************************************************************/
|
||||
function fn_selectListInquiryIntro(){
|
||||
fn_leftFormAction2("Setting", "/webinquiry/selectListInquiryIntro.do");
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* 추천 팔로우 목록 이동
|
||||
****************************************************************************/
|
||||
function fn_snsFollowIntro(){
|
||||
fn_leftFormAction2(menuClass, "/webuserfollow/selectListFollowRecommendIntro.do");
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* 추천 팔로우 리스트 조회
|
||||
****************************************************************************/
|
||||
function fn_rightSelectListRecommendFollow(){
|
||||
let formData = new FormData();
|
||||
formData.append("start",'0');
|
||||
formData.append("limit",'5');
|
||||
|
||||
$.ajax({
|
||||
url: encodeURI('/webuserfollow/selectListRecommendFollow.do'),
|
||||
data: formData,
|
||||
dataType: "json",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
type: 'POST',
|
||||
async: true,
|
||||
success: function(data){
|
||||
if('0'==data.msgCode){
|
||||
if(0<data.rows.length){
|
||||
let followListBoxHTML = '';
|
||||
followListBoxHTML += '<p class="title">추천 팔로우</p>';
|
||||
|
||||
for(let i=0; i<data.rows.length; i++){
|
||||
followListBoxHTML += '<li>';
|
||||
if('Y'==data.rows[i].userBranchYn){
|
||||
followListBoxHTML += ' <div class="image_box green_line" onClick="fn_userProfileIntro(\''+data.rows[i].userName+'\',\''+data.rows[i].loginId+'\');">';
|
||||
}
|
||||
else{
|
||||
followListBoxHTML += ' <div class="image_box" onClick="fn_userProfileIntro(\''+data.rows[i].userName+'\',\''+data.rows[i].loginId+'\');">';
|
||||
}
|
||||
followListBoxHTML += ' <img src=\''+data.rows[i].profileUrl+'\'>';
|
||||
followListBoxHTML += ' </div>';
|
||||
|
||||
followListBoxHTML += ' <div class="text_box">';
|
||||
followListBoxHTML += ' <p class="user">'+data.rows[i].userName+'</p>';
|
||||
followListBoxHTML += ' </div>';
|
||||
|
||||
followListBoxHTML += ' <img class="right_icon" id="rightFollowBtn'+data.rows[i].ntUserId+'" onClick="javascript:fn_rightInsertFollow(\''+data.rows[i].ntUserId+'\');" src="/image/web/sns_follow.svg">';
|
||||
followListBoxHTML += ' <img class="right_icon" id="rightFollowingBtn'+data.rows[i].ntUserId+'" style="display:none" onClick="javascript:fn_rightDeleteFollow(\''+data.rows[i].ntUserId+'\');" src="/image/web/sns_follow_gray.svg">';
|
||||
|
||||
followListBoxHTML += '</li>';
|
||||
}
|
||||
followListBoxHTML += ' <a href="javascript:fn_snsFollowIntro();">더보기<img class="arrow" src="/image/web/sns_more_arrow.svg"></a>';
|
||||
|
||||
$("#rightFollowBox").empty().html(followListBoxHTML).trigger("create");
|
||||
|
||||
|
||||
$(".right_icon").css("cursor", "pointer");
|
||||
}
|
||||
else{
|
||||
$("#rightFollowBox").empty();
|
||||
}
|
||||
}
|
||||
else{
|
||||
modalEvent.danger("조회 오류", data.msgDesc);
|
||||
}
|
||||
},
|
||||
error : function(xhr, status, error) {
|
||||
modalEvent.danger("조회 오류", "정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다.");
|
||||
},
|
||||
beforeSend:function(){
|
||||
|
||||
},
|
||||
complete:function(){
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
* 팔로워 등록
|
||||
****************************************************************************/
|
||||
function fn_rightInsertFollow(param){
|
||||
let formData = new FormData();
|
||||
formData.append("ntFollowUserId", param);
|
||||
|
||||
$.ajax({
|
||||
url: encodeURI('/webuserfollow/insertFollow.do'),
|
||||
data: formData,
|
||||
dataType: "json",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
type: 'POST',
|
||||
async: true,
|
||||
success: function(data){
|
||||
if('0'==data.msgCode){
|
||||
$("#rightFollowBtn"+param).css("display", "none");
|
||||
$("#rightFollowingBtn"+param).css("display", "");
|
||||
}
|
||||
else{
|
||||
modalEvent.danger("조회 오류", data.msgDesc);
|
||||
}
|
||||
},
|
||||
error : function(xhr, status, error) {
|
||||
modalEvent.danger("조회 오류", "정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다.");
|
||||
},
|
||||
beforeSend:function(){
|
||||
|
||||
},
|
||||
complete:function(){
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
* 팔로워 해제
|
||||
****************************************************************************/
|
||||
function fn_rightDeleteFollow(param){
|
||||
let formData = new FormData();
|
||||
formData.append("ntFollowUserId", param);
|
||||
|
||||
$.ajax({
|
||||
url: encodeURI('/webuserfollow/deleteFollow.do'),
|
||||
data: formData,
|
||||
dataType: "json",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
type: 'POST',
|
||||
async: true,
|
||||
success: function(data){
|
||||
if('0'==data.msgCode){
|
||||
$("#rightFollowBtn"+param).css("display", "");
|
||||
$("#rightFollowingBtn"+param).css("display", "none");
|
||||
}
|
||||
else{
|
||||
modalEvent.danger("조회 오류", data.msgDesc);
|
||||
}
|
||||
},
|
||||
error : function(xhr, status, error) {
|
||||
modalEvent.danger("조회 오류", "정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다.");
|
||||
},
|
||||
beforeSend:function(){
|
||||
|
||||
},
|
||||
complete:function(){
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
</script>
|
||||
</th:block>
|
||||
</html>
|
||||
152
src/main/resources/templates/web/common/userLeftMenu2.html
Normal file
152
src/main/resources/templates/web/common/userLeftMenu2.html
Normal file
@@ -0,0 +1,152 @@
|
||||
<!DOCTYPE html>
|
||||
<html lagn="ko" xmlns:th="http://www.thymeleaf.org">
|
||||
|
||||
<th:block th:fragment="layout_leftMenu2">
|
||||
<!-- 왼쪽 -->
|
||||
<div class="left_box">
|
||||
<a href="javascript:;" onclick="fn_back();" class="back" style="display:none;"><img src="/image/web/right_arrow_B.svg">뒤로가기</a>
|
||||
<ul id="sub_menu_list" class="sub_menu_list">
|
||||
<!--
|
||||
<li class="title_menu first">원무</li>
|
||||
<li><a href="hospital.html" class="on">근태·연차</a></li>
|
||||
<li><a href="hospital_employee.html" class="on">직원 목록</a></li>
|
||||
|
||||
<li class="title_menu">병원 설정</li>
|
||||
<li><a href="hospital_info.html" class="on">병원 기본정보</a></li>
|
||||
<li><a href="hospital_work.html" class="on">근뮤·연차 설정</a></li>
|
||||
<li><a href="hospital_group.html" class="on">조직·권한 설정</a></li>
|
||||
<li><a href="hospital_diagnosis.html" class="on">진료·시술 설정</a></li>
|
||||
<li><a href="hospital_payment.html" class="on">결제 설정</a></li>
|
||||
<li><a href="hospital_notice.html" class="on">공지사항</a></li>
|
||||
-->
|
||||
</ul>
|
||||
</div>
|
||||
<script>
|
||||
/****************************************************************************
|
||||
* 메뉴 조회
|
||||
****************************************************************************/
|
||||
function fn_selectListSubMenu(param){
|
||||
let formData = new FormData();
|
||||
formData.append("type", "C");
|
||||
formData.append("groupCode", param);
|
||||
|
||||
$.ajax({
|
||||
url: encodeURI('/webmenu/selectListMenu.do'),
|
||||
data: formData,
|
||||
dataType: "json",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
type: 'POST',
|
||||
async: true,
|
||||
success: function(data){
|
||||
if('0'==data.msgCode){
|
||||
let listHTML = '';
|
||||
let queryParams = [];
|
||||
if (typeof userSearchKeywordParam !== 'undefined' && userSearchKeywordParam) {
|
||||
queryParams.push(`userSearchKeywordParam=${userSearchKeywordParam}`);
|
||||
}
|
||||
if (typeof userSort !== 'undefined' && userSort) {
|
||||
queryParams.push(`userSort=${userSort}`);
|
||||
}
|
||||
if (typeof userDir !== 'undefined' && userDir) {
|
||||
queryParams.push(`userDir=${userDir}`);
|
||||
}
|
||||
if (typeof userStart !== 'undefined' && (userStart || userStart === 0)) {
|
||||
queryParams.push(`userStart=${userStart}`);
|
||||
}
|
||||
if (typeof userLimit !== 'undefined' && userLimit) {
|
||||
queryParams.push(`userLimit=${userLimit}`);
|
||||
}
|
||||
if (typeof search_nationality !== 'undefined' && search_nationality) {
|
||||
queryParams.push(`nationality=${search_nationality}`);
|
||||
}
|
||||
if (typeof search_userType !== 'undefined' && search_userType) {
|
||||
queryParams.push(`userType=${search_userType}`);
|
||||
}
|
||||
if (typeof search_membershipYn !== 'undefined' && search_membershipYn) {
|
||||
queryParams.push(`membershipYn=${search_membershipYn}`);
|
||||
}
|
||||
|
||||
let queryString = queryParams.join("&");
|
||||
if(data.rows.length>1){
|
||||
|
||||
for(let i = 0; i < data.rows.length; i++){
|
||||
|
||||
let action = data.rows[i].action+"?muUserId="+muUserId;
|
||||
|
||||
if (queryString) {
|
||||
action += "&" + queryString;
|
||||
}
|
||||
let menuCode = data.rows[i].menuCode;
|
||||
let menuCodeLength = menuCode.length;
|
||||
|
||||
let menuName = data.rows[i].menuName;
|
||||
|
||||
if(menuCodeLength == 8){
|
||||
if(i==0){
|
||||
listHTML += '<li class="title_menu first">'+menuName+'</li>';
|
||||
}
|
||||
else{
|
||||
listHTML += '<li class="title_menu">'+menuName+'</li>';
|
||||
}
|
||||
}
|
||||
else{
|
||||
listHTML += '<li>';
|
||||
listHTML += ' <a id="menu'+menuCode+'" href="javascript:;" onClick="javascript:fn_leftFormAction2(\''+menuCode+'\',\''+action+'\');">';
|
||||
listHTML += menuName;
|
||||
listHTML += ' </a>';
|
||||
listHTML += '</li>';
|
||||
}
|
||||
}
|
||||
|
||||
if(6 == menuClass.length){
|
||||
menuClass = data.rows[0].subMenuCode;
|
||||
}
|
||||
}
|
||||
$("#sub_menu_list").empty().html(listHTML).trigger("create");
|
||||
|
||||
let leftBox = document.querySelector('.left_box');
|
||||
let backLink = document.createElement('a');
|
||||
backLink.href = "#";
|
||||
backLink.classList.add('back');
|
||||
backLink.id = "userList";
|
||||
backLink.innerHTML = `<img src='/image/web/right_arrow_B.svg'/> 고객 목록`;
|
||||
leftBox.insertBefore(backLink, leftBox.firstChild);
|
||||
let url = '/webuser/selectListUserIntro.do'
|
||||
if (queryString) {
|
||||
url += "?" + queryString;
|
||||
}
|
||||
document.getElementById('userList').addEventListener('click', () => {
|
||||
fn_leftFormAction2('020101',encodeURI(url));
|
||||
});
|
||||
// 선택 처리
|
||||
if(!fn_emptyYn(menuClass)){
|
||||
$("#sub_menu_list #menu"+menuClass).addClass("on");
|
||||
}
|
||||
}
|
||||
else if(data.msgCode=='-1'){
|
||||
modalEvent.warning("조회 오류", data.msgDesc);
|
||||
}
|
||||
else{
|
||||
modalEvent.danger("조회 오류", "조회 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
|
||||
}
|
||||
},
|
||||
error : function(xhr, status, error) {
|
||||
modalEvent.danger("조회 오류", "조회 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
|
||||
},
|
||||
beforeSend:function(){
|
||||
|
||||
},
|
||||
complete:function(){
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$(function(){
|
||||
|
||||
});
|
||||
|
||||
</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="~{/web/layout/homeLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/web/stock_customer_management.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/web/modal_stock_customer_management.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/web/grid.css?v1.1">
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script src="/js/web/common_option.js"></script>
|
||||
<script src="/js/web/jquery.twbsPagination.js" type="text/javascript"></script>
|
||||
<script>
|
||||
let menuClass = "[[${param.menuClass}]]"==""?"":"[[${param.menuClass}]]";
|
||||
|
||||
let selectUseYn = "[[${selectUseYn}]]"==""?"N":"[[${selectUseYn}]]";
|
||||
let insertUseYn = "[[${insertUseYn}]]"==""?"N":"[[${insertUseYn}]]";
|
||||
let updateUseYn = "[[${updateUseYn}]]"==""?"N":"[[${updateUseYn}]]";
|
||||
let deleteUseYn = "[[${deleteUseYn}]]"==""?"N":"[[${deleteUseYn}]]";
|
||||
let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
|
||||
|
||||
/* 검색 관련 변수 */
|
||||
let companySearchKeywordParam = "[[${param.companySearchKeywordParam}]]";
|
||||
let companySort = "[[${param.companySort}]]";
|
||||
let companyDir = "[[${param.companyDir}]]";
|
||||
let companyStart = "[[${param.companyStart}]]"==""?0:"[[${param.companyStart}]]";
|
||||
let companyLimit = "[[${param.companyLimit}]]"==""?100:"[[${param.companyLimit}]]";
|
||||
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<!-- 센터쪽 -->
|
||||
<div class="center_box">
|
||||
<p class="page_title">거래처 관리</p>
|
||||
|
||||
<div class="filter_box">
|
||||
<!-- 검색input -->
|
||||
<div class="search_list">
|
||||
<div class="search_box">
|
||||
<img src="/image/web/search_G.svg">
|
||||
<input type="text" id="companySearchKeyword" required onkeypress="fn_companyEnter(event)" placeholder="거래처, 담당자명">
|
||||
|
||||
<div class="search_list"></div><!-- 검색내역 나오는곳 -->
|
||||
</div>
|
||||
<button id="btnSarechCompany" class="search_btn" style="transition: all 0.2s ease-in-out 0s;">조회</button>
|
||||
</div>
|
||||
|
||||
<div class="button_box">
|
||||
<button id="btnInsertCompany" class="registration_btn" style="transition: all 0.2s ease-in-out 0s;"><img src="/image/web/business.svg">거래처 등록</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="companyGrid" class="table_box ag-theme-balham"></div>
|
||||
|
||||
<!-- 페이지게이션 -->
|
||||
<div class="page_box">
|
||||
<nav ria-label="Page navigation" class="navigation">
|
||||
<ul class="pagination" id="companyPagination"></ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<form id="companySelectListForm" method="POST" target="_blank"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_popup">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/web/ag-grid-community-29.3.5.min.js"></script>
|
||||
<script src="/js/web/company/companySelectList.js"></script>
|
||||
|
||||
<script src="/js/web/company/popup/companyInsertPop.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
115
src/main/resources/templates/web/company/companyUpdate.html
Normal file
115
src/main/resources/templates/web/company/companyUpdate.html
Normal file
@@ -0,0 +1,115 @@
|
||||
<!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/homeLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/web/company_update.css?v1.1">
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script src="/js/web/common_option.js"></script>
|
||||
<script>
|
||||
let menuClass = "[[${param.menuClass}]]"==""?"":"[[${param.menuClass}]]";
|
||||
|
||||
let selectUseYn = "[[${selectUseYn}]]"==""?"N":"[[${selectUseYn}]]";
|
||||
let insertUseYn = "[[${insertUseYn}]]"==""?"N":"[[${insertUseYn}]]";
|
||||
let updateUseYn = "[[${updateUseYn}]]"==""?"N":"[[${updateUseYn}]]";
|
||||
let deleteUseYn = "[[${deleteUseYn}]]"==""?"N":"[[${deleteUseYn}]]";
|
||||
let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
|
||||
|
||||
/* 검색 관련 변수 */
|
||||
let companySearchKeywordParam = "[[${param.companySearchKeywordParam}]]";
|
||||
let companySort = "[[${param.companySort}]]";
|
||||
let companyDir = "[[${param.companyDir}]]";
|
||||
let companyStart = "[[${param.companyStart}]]"==""?0:"[[${param.companyStart}]]";
|
||||
let companyLimit = "[[${param.companyLimit}]]"==""?100:"[[${param.companyLimit}]]";
|
||||
|
||||
let muCompanyId = "[[${param.muCompanyId}]]";
|
||||
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<!-- 센터쪽 -->
|
||||
<div class="center_box">
|
||||
<p class="page_title">거래처 관리</p>
|
||||
|
||||
<div class="info_box">
|
||||
<div class="info">
|
||||
<div class="form_box">
|
||||
<p class="title">기본정보</p>
|
||||
|
||||
<div class="form_bottom">
|
||||
<ul>
|
||||
<li>
|
||||
<label>거래처명</label>
|
||||
<div class="input_box">
|
||||
<input type="text" id="companyName" placeholder="" maxlength="35">
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<label>사업자번호</label>
|
||||
<div class="input_box">
|
||||
<input type="text" id="businessNumber" placeholder="-제외" maxlength="13">
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<label>거래처 담당자</label>
|
||||
<div class="input_box">
|
||||
<input type="text" id="userName" placeholder="" maxlength="35">
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<label>연락처</label>
|
||||
<div class="input_box">
|
||||
<input type="text" id="phoneNumber" placeholder="-제외" maxlength="13">
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<label>이메일</label>
|
||||
<div class="input_box">
|
||||
<input type="text" id="email" placeholder="" maxlength="255">
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<label>거래처 메모</label>
|
||||
<div class="textarea_box">
|
||||
<textarea id="memo" placeholder="내용을 입력해주세요."></textarea>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="table_box">
|
||||
<label>취급 제품</label>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>재고구분</th>
|
||||
<th>제품명</th>
|
||||
<th>용량</th>
|
||||
<th></th>
|
||||
<th>사용량</th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="productList"></tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="button_box">
|
||||
<button id="btnUpdateCompany" class="save_btn">저장</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<form id="companyUpdateForm" onsubmit="return false;"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_popup">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/web/company/companyUpdate.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
112
src/main/resources/templates/web/contentsBbs/ContentsBbsReg.html
Normal file
112
src/main/resources/templates/web/contentsBbs/ContentsBbsReg.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="~{/web/layout/homeLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link href="https://cdn.jsdelivr.net/npm/summernote@0.8.18/dist/summernote.min.css" rel="stylesheet">
|
||||
<link rel="stylesheet" href="/css/web/ContentsBbsReg.css">
|
||||
<link rel="stylesheet" href="/css/web/grid.css?v1.1">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script src="/js/web/jquery.twbsPagination.js" type="text/javascript"></script>
|
||||
<script>
|
||||
let menuClass = "[[${param.menuClass}]]"==""?"":"[[${param.menuClass}]]";
|
||||
let categoryDivCd = "[[${param.categoryDivCd}]]"==""?"":"[[${param.categoryDivCd}]]";
|
||||
|
||||
let selectUseYn = "[[${selectUseYn}]]"==""?"N":"[[${selectUseYn}]]";
|
||||
let insertUseYn = "[[${insertUseYn}]]"==""?"N":"[[${insertUseYn}]]";
|
||||
let updateUseYn = "[[${updateUseYn}]]"==""?"N":"[[${updateUseYn}]]";
|
||||
let deleteUseYn = "[[${deleteUseYn}]]"==""?"N":"[[${deleteUseYn}]]";
|
||||
let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
|
||||
|
||||
let categorytitle = "[[${title}]]";
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<!-- 센터쪽 -->
|
||||
<div class="center_box">
|
||||
<p class="page_title">[[${title}]]</p>
|
||||
|
||||
<!-- 테이블 -->
|
||||
<div class="content_box">
|
||||
<div class="content clear">
|
||||
<div class="wp60">
|
||||
<div class="top">
|
||||
<label>썸네일 첨부파일</label>
|
||||
<label for="file" class="file_btn"><img src="/image/web/add.svg" alt="파일찾기"></label>
|
||||
</div>
|
||||
<div class="btm">
|
||||
<div class="img_box"><!-- img 미리보기 --></div>
|
||||
<input type="file" id="file" accept="image/jpeg, image/jpg, image/png" style="display: none;" multiple>
|
||||
<button id="delete_btn">삭제</button>
|
||||
</div>
|
||||
<p class="thumbnail-bottom-txt">
|
||||
썸네일 하단글
|
||||
</p>
|
||||
<textarea id="thumbnail-bottom-txt" placeholder="썸네일 하단글을 입력해주세요." ></textarea>
|
||||
<p class="content-file">
|
||||
컨텐츠 첨부파일
|
||||
<label for="content_file" class="file_btn"><img src="/image/web/add.svg" alt="파일찾기"></label>
|
||||
</p>
|
||||
<input type="file" id="content_file" style="display: none;" placeholder="첨부파일을 입력해주세요."/>
|
||||
<div class="file_box"><!-- img 미리보기 --></div>
|
||||
<button id="content_delete_btn">삭제</button>
|
||||
</div>
|
||||
<div class="wp40">
|
||||
<div class="consultation-info">
|
||||
<p id="main_category">
|
||||
카테고리
|
||||
</p>
|
||||
<select th:name="categorylist">
|
||||
<option value="">선택하세요</option>
|
||||
<option th:each="category : ${categorylist}" th:value="${category.categoryNo}" th:text="${category.categoryNm}"></option>
|
||||
</select>
|
||||
<p id="main_title">
|
||||
제목
|
||||
</p>
|
||||
<input type="text" id="title" placeholder="제목을 입력해주세요."/>
|
||||
<p id="main_content">
|
||||
내용
|
||||
</p>
|
||||
<textarea id="content" placeholder="내용을 입력해주세요."></textarea>
|
||||
<p id="main_hashtag">
|
||||
해쉬태그
|
||||
</p>
|
||||
<input type="text" id="hashtag" placeholder="해쉬태그를 입력해주세요."/>
|
||||
<div>
|
||||
<label for="oldCrmItemId">OLD CRM 연동ID</label>
|
||||
<input type="text" id="oldCrmItemId" placeholder="OLD_CRM_ITEM_ID"/>
|
||||
</div>
|
||||
<p id="main_procedure">
|
||||
시술선택
|
||||
<button class="add_btn ml50" onclick="javascript:listOpen();">
|
||||
<img src="/image/web/add.svg" alt="추가">
|
||||
</button>
|
||||
<button class="add_btn" onclick="javascript:fn_removeRow();">
|
||||
<img src="/image/web/subtract.svg" alt="삭제">
|
||||
</button>
|
||||
</p>
|
||||
<div id="treatmentlist">
|
||||
</div>
|
||||
</div>
|
||||
<div class="button_box">
|
||||
<button class="registration_btn btnSave">등록</button>
|
||||
<button class="cancel_btn btnCancle">취소</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<form id="excelForm" method="POST" target="_blank"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_popup">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/web/ag-grid-community-29.3.5.min.js"></script>
|
||||
<script src="/js/web/contentsBbs/ContentsBbsReg.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/summernote@0.8.18/dist/summernote.min.js"></script>
|
||||
<script src="/js/web/contentsBbs/ContentsBbsPop.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,104 @@
|
||||
<!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/homeLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/web/webTreatmentPetitSelectList.css">
|
||||
<link rel="stylesheet" href="/css/web/grid.css?v1.1">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script src="/js/web/jquery.twbsPagination.js" type="text/javascript"></script>
|
||||
<script>
|
||||
let menuClass = "[[${param.menuClass}]]"==""?"":"[[${param.menuClass}]]";
|
||||
let categoryDivCd = "[[${param.categoryDivCd}]]"==""?"":"[[${param.categoryDivCd}]]";
|
||||
categoryDivCd = "[[${categoryDivCd}]]"==""?"":"[[${categoryDivCd}]]";
|
||||
|
||||
let selectUseYn = "[[${selectUseYn}]]"==""?"N":"[[${selectUseYn}]]";
|
||||
let insertUseYn = "[[${insertUseYn}]]"==""?"N":"[[${insertUseYn}]]";
|
||||
let updateUseYn = "[[${updateUseYn}]]"==""?"N":"[[${updateUseYn}]]";
|
||||
let deleteUseYn = "[[${deleteUseYn}]]"==""?"N":"[[${deleteUseYn}]]";
|
||||
let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
|
||||
|
||||
/* 검색 관련 변수 */
|
||||
let webTreatmentPetitSearchKeywordParam0 = "[[${param.webTreatmentPetitSearchKeywordParam0}]]";
|
||||
let webTreatmentPetitSearchKeywordParam1 = "[[${param.webTreatmentPetitSearchKeywordParam1}]]";
|
||||
let webTreatmentPetitSearchKeywordParam2 = "[[${param.webTreatmentPetitSearchKeywordParam2}]]";
|
||||
let webTreatmentPetitSearchKeywordParam3 = "[[${param.webTreatmentPetitSearchKeywordParam3}]]";
|
||||
|
||||
let webTreatmentPetitSort = "[[${param.webTreatmentPetitSort}]]";
|
||||
let webTreatmentPetitDir = "[[${param.webTreatmentPetitDir}]]";
|
||||
let webTreatmentPetitStart = "[[${param.webTreatmentPetitStart}]]"==""?0:"[[${param.webTreatmentPetitStart}]]";
|
||||
let webTreatmentPetitLimit = "[[${param.webTreatmentPetitLimit}]]"==""?500:"[[${param.webTreatmentPetitLimit}]]";
|
||||
|
||||
let webTreatmentPetitSearchStartDate = "[[${param.webTreatmentPetitSearchStartDate}]]";
|
||||
let webTreatmentPetitSearchEndDate = "[[${param.webTreatmentPetitSearchEndDate}]]";
|
||||
let webTreatmentPetitSearchDateType = "[[${param.webTreatmentPetitSearchDateType}]]"==""?"A":"[[${param.webTreatmentPetitSearchDateType}]]";
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<!-- 센터쪽 -->
|
||||
<div class="center_box">
|
||||
<p class="page_title">[[${title}]]</p>
|
||||
|
||||
<div class="filter_box">
|
||||
<div class="form_box">
|
||||
|
||||
<!-- 이름input -->
|
||||
<div class="search_list">
|
||||
<div class="search_box">
|
||||
<img src="/image/web/search_G.svg" alt="search"/>
|
||||
<input type="text" id="webTreatmentPetitSearchKeyword0" required placeholder="카테고리">
|
||||
|
||||
<div class="search_list"></div><!-- 검색내역 나오는곳 -->
|
||||
</div>
|
||||
<div class="search_box">
|
||||
<img src="/image/web/search_G.svg" alt="search"/>
|
||||
<input type="text" id="webTreatmentPetitSearchKeyword1" required placeholder="제목">
|
||||
|
||||
<div class="search_list"></div><!-- 검색내역 나오는곳 -->
|
||||
</div>
|
||||
<div class="search_box">
|
||||
<img src="/image/web/search_G.svg" alt="search"/>
|
||||
<input type="text" id="webTreatmentPetitSearchKeyword2" required placeholder="작성자">
|
||||
|
||||
<div class="search_list"></div><!-- 검색내역 나오는곳 -->
|
||||
</div>
|
||||
<div class="search_box">
|
||||
<img src="/image/web/search_G.svg" alt="search"/>
|
||||
<input type="text" id="webTreatmentPetitSearchKeyword3" required placeholder="시술">
|
||||
|
||||
<div class="search_list"></div><!-- 검색내역 나오는곳 -->
|
||||
</div>
|
||||
<button id="btnSearchWebTreatmentPetit" class="search_btn" data-toggle="modal" data-target=".work_closed_modal" style="transition: all 0.2s ease-in-out 0s;">조회</button>
|
||||
</div>
|
||||
|
||||
<div class="right_btn_box">
|
||||
<button id="btnInsertWebTreatmentPetit" class="treatmentpetit_btn">
|
||||
<img src="/image/web/notice_btn_icon.svg" alt="등록">등록
|
||||
</button>
|
||||
<button id="btnDeleteWebTreatmentPetit" class="delete_btn">
|
||||
<img src="/image/web/delete_btn_icon.svg" alt="삭제">삭제
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="webTreatmentPetitGrid" class="table_box ag-theme-balham"></div>
|
||||
|
||||
<!-- 페이지게이션 -->
|
||||
<div class="page_box">
|
||||
<nav aria-label="Page navigation" class="navigation">
|
||||
<ul class="pagination" id="webTreatmentPetitPagination"></ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<form id="webTreatmentPetitSelectListForm" method="POST" target="_blank"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_popup">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/web/ag-grid-community-29.3.5.min.js"></script>
|
||||
<script src="/js/web/contentsBbs/ContentsBbsSelectList.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
124
src/main/resources/templates/web/contentsBbs/ContentsBbsUpd.html
Normal file
124
src/main/resources/templates/web/contentsBbs/ContentsBbsUpd.html
Normal file
@@ -0,0 +1,124 @@
|
||||
<!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/homeLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link href="https://cdn.jsdelivr.net/npm/summernote@0.8.18/dist/summernote.min.css" rel="stylesheet">
|
||||
<link rel="stylesheet" href="/css/web/ContentsBbsReg.css">
|
||||
<link rel="stylesheet" href="/css/web/grid.css?v1.1">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script src="/js/web/jquery.twbsPagination.js" type="text/javascript"></script>
|
||||
<script>
|
||||
let menuClass = "[[${param.menuClass}]]"==""?"":"[[${param.menuClass}]]";
|
||||
|
||||
let selectUseYn = "[[${selectUseYn}]]"==""?"N":"[[${selectUseYn}]]";
|
||||
let insertUseYn = "[[${insertUseYn}]]"==""?"N":"[[${insertUseYn}]]";
|
||||
let updateUseYn = "[[${updateUseYn}]]"==""?"N":"[[${updateUseYn}]]";
|
||||
let deleteUseYn = "[[${deleteUseYn}]]"==""?"N":"[[${deleteUseYn}]]";
|
||||
let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
|
||||
|
||||
let categoryDivCd = "[[${param.categoryDivCd}]]";
|
||||
let categoryNo = "[[${param.categoryNo}]]";
|
||||
let postNo = "[[${param.postNo}]]";
|
||||
let categorytitle = "[[${title}]]";
|
||||
|
||||
const CDN_URL = "[[${@environment.getProperty('url.cdn')}]]";
|
||||
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<!-- 센터쪽 -->
|
||||
<div class="center_box">
|
||||
<p class="page_title">[[${title}]]</p>
|
||||
|
||||
<!-- 테이블 -->
|
||||
<div class="content_box">
|
||||
<div class="content clear">
|
||||
<div class="wp60">
|
||||
<div class="top">
|
||||
<label>썸네일 첨부파일</label>
|
||||
<label for="file" class="file_btn"><img src="/image/web/add.svg" alt="파일찾기"></label>
|
||||
</div>
|
||||
<div class="btm">
|
||||
<div class="img_box">
|
||||
<img id="thumbnailImg" src="" width="800px" height="450px" />
|
||||
</div>
|
||||
<input type="file" id="file" accept="image/jpeg, image/jpg, image/png" style="display: none;" multiple>
|
||||
<button id="delete_btn">삭제</button>
|
||||
</div>
|
||||
<p class="thumbnail-bottom-txt">
|
||||
썸네일 하단글
|
||||
</p>
|
||||
<textarea id="thumbnailBottomTxt" placeholder="썸네일 하단글을 입력해주세요." ></textarea>
|
||||
<p class="content-file">
|
||||
컨텐츠 첨부파일
|
||||
<label for="content_file" class="file_btn"><img src="/image/web/add.svg" alt="파일찾기"></label>
|
||||
</p>
|
||||
<input type="file" id="content_file" style="display: none;" placeholder="첨부파일을 입력해주세요."/>
|
||||
<div class="file_box">
|
||||
<img id="contentsImg" src="" width="100%" height="100%" />
|
||||
</div>
|
||||
<button id="content_delete_btn">삭제</button>
|
||||
</div>
|
||||
<div class="wp40">
|
||||
<div class="consultation-info">
|
||||
<p id="main_category">
|
||||
카테고리
|
||||
</p>
|
||||
<select th:name="category" th:disabled="true">
|
||||
<option value="">선택하세요</option>
|
||||
<option th:each="item : ${category}" th:value="${item['categoryNo']}" th:text="${item['categoryNm']}" ></option>
|
||||
</select>
|
||||
<!-- disabled된 select의 값을 전송하기 위한 hidden input -->
|
||||
<input type="hidden" id="categoryNo" />
|
||||
<p id="main_title">
|
||||
제목
|
||||
</p>
|
||||
<input type="text" id="title" placeholder="제목을 입력해주세요."/>
|
||||
<p id="main_content">
|
||||
내용
|
||||
</p>
|
||||
<textarea id="content" placeholder="내용을 입력해주세요."></textarea>
|
||||
<p id="main_hashtag">
|
||||
해쉬태그
|
||||
</p>
|
||||
<input type="text" id="hashtag" placeholder="해쉬태그를 입력해주세요."/>
|
||||
<div>
|
||||
<label for="oldCrmItemId">OLD CRM 연동ID</label>
|
||||
<input type="text" id="oldCrmItemId" placeholder="OLD_CRM_ITEM_ID"/>
|
||||
</div>
|
||||
<p id="main_procedure">
|
||||
시술선택
|
||||
<button class="add_btn ml50" onclick="javascript:listOpen();">
|
||||
<img src="/image/web/add.svg" alt="추가">
|
||||
</button>
|
||||
<button class="add_btn" onclick="javascript:fn_removeRow();">
|
||||
<img src="/image/web/subtract.svg" alt="삭제">
|
||||
</button>
|
||||
</p>
|
||||
<div id="treatmentlist">
|
||||
</div>
|
||||
</div>
|
||||
<div class="button_box">
|
||||
<button class="registration_btn btnSave">수정</button>
|
||||
<button class="cancel_btn btnCancle">취소</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<form id="excelForm" method="POST" target="_blank"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_popup">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/web/ag-grid-community-29.3.5.min.js"></script>
|
||||
<script src="/js/web/contentsBbs/ContentsBbsUpd.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/summernote@0.8.18/dist/summernote.min.js"></script>
|
||||
<script src="/js/web/contentsBbs/ContentsBbsPop.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,101 @@
|
||||
<!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/homeLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/web/webFeedbackSelectList.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/web/grid.css?v1.1">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script src="/js/web/jquery.twbsPagination.js" type="text/javascript"></script>
|
||||
<script>
|
||||
let menuClass = "[[${param.menuClass}]]"==""?"":"[[${param.menuClass}]]";
|
||||
let categoryDivCd = "[[${param.categoryDivCd}]]"==""?"":"[[${param.categoryDivCd}]]";
|
||||
categoryDivCd = "[[${categoryDivCd}]]"==""?"":"[[${categoryDivCd}]]";
|
||||
|
||||
let selectUseYn = "[[${selectUseYn}]]"==""?"N":"[[${selectUseYn}]]";
|
||||
let insertUseYn = "[[${insertUseYn}]]"==""?"N":"[[${insertUseYn}]]";
|
||||
let updateUseYn = "[[${updateUseYn}]]"==""?"N":"[[${updateUseYn}]]";
|
||||
let deleteUseYn = "[[${deleteUseYn}]]"==""?"N":"[[${deleteUseYn}]]";
|
||||
let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
|
||||
|
||||
/* 검색 관련 변수 */
|
||||
let branchOfficeCd = "[[${param.branchOfficeCd}]]";
|
||||
let mbName = "[[${param.mbName}]]";
|
||||
let mbHp = "[[${param.mbHp}]]";
|
||||
let opinionClassificationCd = "[[${param.opinionClassificationCd}]]";
|
||||
|
||||
|
||||
let webFeedbackSort = "[[${param.webFeedbackSort}]]";
|
||||
let webFeedbackDir = "[[${param.webFeedbackDir}]]";
|
||||
let webFeedbackStart = "[[${param.webFeedbackStart}]]"==""?0:"[[${param.webFeedbackStart}]]";
|
||||
let webFeedbackLimit = "[[${param.webFeedbackLimit}]]"==""?500:"[[${param.webFeedbackLimit}]]";
|
||||
|
||||
let webFeedbackSearchStartDate = "[[${param.webFeedbackSearchStartDate}]]";
|
||||
let webFeedbackSearchEndDate = "[[${param.webFeedbackSearchEndDate}]]";
|
||||
let webFeedbackSearchDateType = "[[${param.webFeedbackSearchDateType}]]"==""?"A":"[[${param.webFeedbackSearchDateType}]]";
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<!-- 센터쪽 -->
|
||||
<div class="center_box">
|
||||
<p class="page_title">칭찬불만접수</p>
|
||||
|
||||
<div class="filter_box">
|
||||
<div class="form_box">
|
||||
|
||||
<!-- 이름input -->
|
||||
<div class="search_list">
|
||||
<div class="search_box">
|
||||
<select id="branchOfficeCd" required>
|
||||
<option value="">전체</option>
|
||||
<option value="GN">강남</option>
|
||||
</select>
|
||||
<div class="search_list"></div>
|
||||
</div>
|
||||
<div class="search_box">
|
||||
<img src="/image/web/search_G.svg" alt="search"/>
|
||||
<input type="text" id="mbName" required placeholder="이름">
|
||||
|
||||
<div class="search_list"></div><!-- 검색내역 나오는곳 -->
|
||||
</div>
|
||||
<div class="search_box">
|
||||
<img src="/image/web/search_G.svg" alt="search"/>
|
||||
<input type="text" id="mbHp" required placeholder="핸드폰번호">
|
||||
|
||||
<div class="search_list"></div><!-- 검색내역 나오는곳 -->
|
||||
</div>
|
||||
<!-- Classification selectbox -->
|
||||
<div class="search_box">
|
||||
<select id="opinionClassificationCd" required>
|
||||
<option value="">전체</option>
|
||||
<option value="PR">칭찬</option>
|
||||
<option value="DS">불만</option>
|
||||
<option value="ET">기타</option>
|
||||
</select>
|
||||
<div class="search_list"></div>
|
||||
</div>
|
||||
<button id="btnSearchWebFeedback" class="search_btn" data-toggle="modal" data-target=".work_closed_modal" style="transition: all 0.2s ease-in-out 0s;">조회</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="webFeedbackGrid" class="table_box ag-theme-balham"></div>
|
||||
|
||||
<!-- 페이지게이션 -->
|
||||
<div class="page_box">
|
||||
<nav aria-label="Page navigation" class="navigation">
|
||||
<ul class="pagination" id="webFeedbackPagination"></ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<form id="webFeedbackSelectListForm" method="POST" target="_blank"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_popup">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/web/ag-grid-community-29.3.5.min.js"></script>
|
||||
<script src="/js/web/feedbackReception/FeedbackReception.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
157
src/main/resources/templates/web/group/groupSelectList.html
Normal file
157
src/main/resources/templates/web/group/groupSelectList.html
Normal file
@@ -0,0 +1,157 @@
|
||||
<!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/homeLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/web/grid.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/web/hospital_group.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/web/modal_hospital_group.css?v1.1">
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script src="/js/web/common_option.js"></script>
|
||||
<script src="/js/web/jquery.twbsPagination.js" type="text/javascript"></script>
|
||||
<script>
|
||||
let menuClass = "[[${param.menuClass}]]"==""?"":"[[${param.menuClass}]]";
|
||||
|
||||
let selectUseYn = "[[${selectUseYn}]]"==""?"N":"[[${selectUseYn}]]";
|
||||
let insertUseYn = "[[${insertUseYn}]]"==""?"N":"[[${insertUseYn}]]";
|
||||
let updateUseYn = "[[${updateUseYn}]]"==""?"N":"[[${updateUseYn}]]";
|
||||
let deleteUseYn = "[[${deleteUseYn}]]"==""?"N":"[[${deleteUseYn}]]";
|
||||
let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
|
||||
|
||||
|
||||
let groupStart = "[[${param.groupStart}]]"==""?0:"[[${param.groupStart}]]";
|
||||
let groupLimit = "[[${param.groupLimit}]]"==""?15:"[[${param.groupLimit}]]";
|
||||
let dutyStart = "[[${param.groupStart}]]"==""?0:"[[${param.groupStart}]]";
|
||||
let dutyLimit = "[[${param.groupLimit}]]"==""?15:"[[${param.groupLimit}]]";
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<!-- 센터쪽 -->
|
||||
<div class="center_box">
|
||||
<div class="tab_panel" role="tabpanel">
|
||||
<!-- Nav tabs -->
|
||||
<div class="nav_box">
|
||||
<ul class="nav nav-tabs" role="tablist">
|
||||
<li role="presentation" class="active">
|
||||
<a href="#group" aria-controls="group" role="tab" data-toggle="tab">
|
||||
<p>조직 설정</p>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li role="presentation">
|
||||
<a href="#job" aria-controls="job" role="tab" data-toggle="tab">
|
||||
<p>직무 설정</p>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li role="presentation">
|
||||
<a href="#authority" aria-controls="authority" role="tab" data-toggle="tab">
|
||||
<p>권한 설정</p>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Tab panes -->
|
||||
<div class="tab-content">
|
||||
<div role="tabpanel" class="tab-pane group active" id="group">
|
||||
<ul class="group_item_list" id="groupItemList">
|
||||
<li>
|
||||
<p class="title">조직</p>
|
||||
|
||||
<div class="right_btn_box">
|
||||
<button id="btnInserGroup" class="group_item_btn" style="transition: all 0.2s ease-in-out 0s;">
|
||||
<img src="/image/web/group_btn_icon.svg" alt="조직 추가"/>조직 추가
|
||||
</button>
|
||||
<button id="btnDeleteGroup" class="delete_btn" style="transition: all 0.2s ease-in-out 0s;">
|
||||
<img src="/image/web/delete_btn_icon.svg" alt="삭제">삭제
|
||||
</button>
|
||||
</div>
|
||||
</li>
|
||||
<li id="groupGrid" class="table_box ag-theme-balham groupGrid"></li>
|
||||
</ul>
|
||||
<div class="page_box">
|
||||
<nav aria-label="Page navigation" class="navigation">
|
||||
<ul class="pagination" id="groupPagination"></ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div role="tabpanel" class="tab-pane job" id="job">
|
||||
<ul class="group_item_list" id="dutyItemList">
|
||||
<li>
|
||||
<p class="title">직무</p>
|
||||
|
||||
<div class="right_btn_box">
|
||||
<button id="btnInsertDuty" class="group_item_btn" style="transition: all 0.2s ease-in-out 0s;">
|
||||
<img src="/image/web/group_btn_icon.svg" alt="직무 추가"/>직무 추가
|
||||
</button>
|
||||
<button id="btnDeleteDuty" class="delete_btn" style="transition: all 0.2s ease-in-out 0s;">
|
||||
<img src="/image/web/delete_btn_icon.svg" alt="삭제">삭제
|
||||
</button>
|
||||
</div>
|
||||
</li>
|
||||
<li id="dutyGrid" class="table_box ag-theme-balham dutyGrid"></li>
|
||||
</ul>
|
||||
<div class="page_box">
|
||||
<nav aria-label="Page navigation" class="navigation">
|
||||
<ul class="pagination" id="dutyPagination"></ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div role="tabpanel" class="tab-pane authority" id="authority">
|
||||
<ul class="authority_list" id="authorityList">
|
||||
<li>
|
||||
<p class="title">권한 그룹</p>
|
||||
|
||||
<div class="right_btn_box">
|
||||
<button id="btnAddAuthRow" class="authority_item_btn">
|
||||
<img src="/image/web/group_btn_icon.svg" alt="권한그룹 추가"/>권한그룹 추가
|
||||
</button>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="authority_table_box">
|
||||
<div class="filter_box">
|
||||
<div class="form_box">
|
||||
<p class="title">권한 (실장)</p>
|
||||
|
||||
<div class="right_btn_box">
|
||||
<input type="hidden" id="muAuthId"/>
|
||||
<button id="btnUpdateAuthMenuRelation" class="save_btn">저장</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="table_check_box"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<form id="groupSelectListForm" method="POST" target="_blank"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_popup">
|
||||
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/web/ag-grid-community-29.3.5.min.js"></script>
|
||||
<script src="/js/web/group/groupSelectList.js"></script>
|
||||
|
||||
<script src="/js/web/group/popup/groupInsertPop.js"></script>
|
||||
<script src="/js/web/group/popup/groupUpdatePop.js"></script>
|
||||
|
||||
<script src="/js/web/duty/popup/dutyInsertPop.js"></script>
|
||||
<script src="/js/web/duty/popup/dutyUpdatePop.js"></script>
|
||||
|
||||
<script src="/js/web/auth/popup/authInsertPop.js"></script>
|
||||
<script src="/js/web/auth/popup/authUpdatePop.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
529
src/main/resources/templates/web/home/home.html
Normal file
529
src/main/resources/templates/web/home/home.html
Normal file
@@ -0,0 +1,529 @@
|
||||
<!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/homeLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/web/home.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/web/modal_home.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/web/modal_customer_sub_consulting.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/web/modal_customer_sub_sisul.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/web/modal_home_message.css?v1.0">
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script>
|
||||
let menuClass = "[[${menuClass}]]"==""?"":"[[${menuClass}]]";
|
||||
let selectUseYn = "[[${selectUseYn}]]"==""?"N":"[[${selectUseYn}]]";
|
||||
let insertUseYn = "[[${insertUseYn}]]"==""?"N":"[[${insertUseYn}]]";
|
||||
let updateUseYn = "[[${updateUseYn}]]"==""?"N":"[[${updateUseYn}]]";
|
||||
let deleteUseYn = "[[${deleteUseYn}]]"==""?"N":"[[${deleteUseYn}]]";
|
||||
let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<div class="home_wrap">
|
||||
<!-- 왼쪽 -->
|
||||
<div class="left_box">
|
||||
<div class="calendar" id="date_reserveSearchDate"></div>
|
||||
|
||||
<div class="notice">
|
||||
<p>금일 공지사항</p>
|
||||
|
||||
<div id="noticeBox" class="subject"></div>
|
||||
</div>
|
||||
|
||||
<div class="situation">
|
||||
<p>금일 근무 현황</p>
|
||||
|
||||
<div id="attendanceBox" class="subject"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 왼쪽 - 반응형버튼 -->
|
||||
<ul class="media_button_left">
|
||||
<li>
|
||||
<button class="show_btn calendar_btn" onclick="calendar()"><img src="/image/web/menu_8_off.svg" alt="menu"/></button>
|
||||
</li>
|
||||
<li>
|
||||
<button class="show_btn notice_btn" onclick="notice()"><img src="/image/web/menu_8_off.svg" alt="menu"/></button>
|
||||
</li>
|
||||
<li>
|
||||
<button class="show_btn situation_btn" onclick="situation()"><img src="/image/web/menu_8_off.svg" alt="menu"/></button>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<!-- 센터쪽 -->
|
||||
<div class="center_box">
|
||||
<div class="tab_panel" role="tabpanel">
|
||||
<!-- 탭 -->
|
||||
<div class="nav_box">
|
||||
<ul class="nav nav-tabs" role="tablist">
|
||||
<li role="presentation" class="active">
|
||||
<a href="#career" aria-controls="career" role="tab" data-toggle="tab">
|
||||
<p>예약현황</p>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<!-- 예약상황 -->
|
||||
<ul class="user_number">
|
||||
<li>예약 <span class="tStatusCount">0</span><p class="treartmentCountCount"></p></li>
|
||||
<li>접수 <span class="rStatusCount">0</span><p class="treartmentCountCount2"></p></li>
|
||||
<li>진료중 <span class="gStatusCount">0</span></li>
|
||||
<li>수납 <span class="pStatusCount">0</span><p class="treartmentCountCount3"></p></li>
|
||||
<li>예약취소 <span class="tnStatusCount">0</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Tab panes -->
|
||||
<div class="tab-content">
|
||||
<div role="tabpanel" class="tab-pane active" id="career">
|
||||
<div class="filter_box">
|
||||
<p>스케줄 필터</p>
|
||||
|
||||
<div class="form_box">
|
||||
<div class="multiSelectBox">
|
||||
<select id="sel_reserveTreatment" multiple data-actions-box="true">
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="multiSelectBox">
|
||||
<select id="sel_reserveTreatmentProcedure" multiple data-actions-box="true">
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="multiSelectBox">
|
||||
<select id="sel_reserveMember" multiple data-actions-box="true">
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="multiSelectBox">
|
||||
<select id="sel_reserveReserveVisit" multiple data-actions-box="true">
|
||||
</select>
|
||||
</div>
|
||||
<div class="search_list_box">
|
||||
<button class="search_btn">조회</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 예약현황표 -->
|
||||
<div class="main_content">
|
||||
<!-- 1. 시간 -->
|
||||
<ul class="time"></ul>
|
||||
|
||||
<div class="table_box" style="position:relative;">
|
||||
<!-- 2. 직원 -->
|
||||
<div class="top_box">
|
||||
<div class="diagnosis_list"></div>
|
||||
</div>
|
||||
<!-- 3. 예약현황 -->
|
||||
<div class="bottom_box"></div>
|
||||
|
||||
<div id="homeContextMenu" style="position:absolute; display:none; background:red; z-index:1; width:200px; height:100px;">
|
||||
<ul class="dropdown-menu">
|
||||
<li onclick="fn_insertReservePopup('')">
|
||||
<p class="list">예약하기</p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- 오른쪽 - 반응형버튼 -->
|
||||
<div class="media_button_right">
|
||||
<button onClick="rightOpen()">임시버튼</button>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- 오른쪽_예약목로그,진료대기,진료끝 -->
|
||||
<div class="right_box">
|
||||
<div class="tab_panel" role="tabpanel">
|
||||
<!-- Nav tabs -->
|
||||
<div class="nav_box">
|
||||
<ul class="nav nav-tabs" role="tablist">
|
||||
<li role="presentation" class="active">
|
||||
<a class="active" href="#reservation_list" aria-controls="reservation_list" role="tab" data-toggle="tab">
|
||||
<p>예약목록</p>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li role="presentation">
|
||||
<a href="#diagnosis_list" aria-controls="diagnosis_list" role="tab" data-toggle="tab">
|
||||
<p>접수</p>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li role="presentation">
|
||||
<a href="#treatment_list" aria-controls="treatment_list" role="tab" data-toggle="tab">
|
||||
<p>진료중</p>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li role="presentation">
|
||||
<a href="#complete_list" aria-controls="complete_list" role="tab" data-toggle="tab">
|
||||
<p>진료끝</p>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- 탭 상세 -->
|
||||
<div class="tab-content">
|
||||
<div role="tabpanel" class="tab-pane active" id="reservation_list">
|
||||
<!-- 접수,접수취소,검색 -->
|
||||
<div class="form_box">
|
||||
<div class="select_list first">
|
||||
<div class="select_box dropdown">
|
||||
<button class="label" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">예약</button>
|
||||
<input type="hidden" id="reservationStatus" value=""/>
|
||||
|
||||
<ul class="select_option_list dropdown-menu">
|
||||
<li class="option_list_item">
|
||||
<input type="hidden" name="comboId" value="T"/>
|
||||
<span>예약</span>
|
||||
</li>
|
||||
<li class="option_list_item">
|
||||
<input type="hidden" name="comboId" value="TN"/>
|
||||
<span>예약취소</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="select_list">
|
||||
<div class="select_box dropdown">
|
||||
<button class="label" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">진료 전체</button>
|
||||
<input type="hidden" id="reservationTreatmentId" />
|
||||
|
||||
<ul class="select_option_list dropdown-menu"></ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search_box">
|
||||
<img src="/image/web/search_B.svg" alt="search"/>
|
||||
<input type="text" id="reservationSeaerchKeyword" placeholder="">
|
||||
</div>
|
||||
|
||||
<div class="search_list_box">
|
||||
<button class="search_btn">조회</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- 환자리스트 -->
|
||||
<div class="reservation_box">
|
||||
<div class="reservation_title">
|
||||
<!-- <label for="checkAll" class="chk_box">
|
||||
<input type="checkbox" id="checkAll" checked="checked">
|
||||
<span class="on"></span>
|
||||
</label> -->
|
||||
<p class="user">이름/진료정보</p>
|
||||
<p class="time">예약시간</p>
|
||||
<p class="memo">예약/접수메모</p>
|
||||
</div>
|
||||
|
||||
|
||||
<ul class="reservation_list">
|
||||
<li>
|
||||
<p>조회 정보가 없습니다.</p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div role="tabpanel" class="tab-pane" id="diagnosis_list">
|
||||
<!-- 접수,접수취소,검색 -->
|
||||
<div class="form_box">
|
||||
<div class="select_list first">
|
||||
<div class="select_box dropdown">
|
||||
<button class="label" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">접수</button>
|
||||
<input type="hidden" id="diagnosisStatus" value="R"/>
|
||||
|
||||
<ul class="select_option_list dropdown-menu">
|
||||
<li class="option_list_item">
|
||||
<input type="hidden" name="comboId" value="R"/>
|
||||
<span>접수</span>
|
||||
</li>
|
||||
<li class="option_list_item">
|
||||
<input type="hidden" name="comboId" value="RN"/>
|
||||
<span>접수취소</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="select_list">
|
||||
<div class="select_box dropdown">
|
||||
<button class="label" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">진료 전체</button>
|
||||
<input type="hidden" id="diagnosisTreatmentId" />
|
||||
|
||||
<ul class="select_option_list dropdown-menu"></ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search_box">
|
||||
<img src="/image/web/search_B.svg" alt=""/>
|
||||
<input type="text" id="diagnosisSeaerchKeyword" placeholder="">
|
||||
</div>
|
||||
|
||||
<div class="search_list_box">
|
||||
<button class="search_btn">조회</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 환자리스트 -->
|
||||
<div class="diagnosis_box">
|
||||
<div class="diagnosis_title">
|
||||
<!-- <label for="allCheck" class="chk_box">
|
||||
<input type="checkbox" id="allCheck" checked="checked">
|
||||
<span class="on"></span>
|
||||
</label> -->
|
||||
|
||||
<p class="user">이름/진료정보</p>
|
||||
<p class="time">예약시간</p>
|
||||
<p class="memo">예약/접수메모</p>
|
||||
</div>
|
||||
|
||||
|
||||
<ul class="diagnosis_list">
|
||||
<li>
|
||||
<p>조회 정보가 없습니다.</p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div role="tabpanel" class="tab-pane" id="treatment_list">
|
||||
<div class="form_box">
|
||||
<div class="select_list">
|
||||
<div class="select_box dropdown">
|
||||
<button class="label" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">진료 전체</button>
|
||||
<input type="hidden" id="treatmentTreatmentId" value="">
|
||||
|
||||
<ul class="select_option_list dropdown-menu"> <li class="option_list_item"> <input type="hidden" name="comboId" value=""> <span>진료 전체</span></li><li class="option_list_item"> <input type="hidden" name="comboId" value="T171979943377400000000010"> <span>비만</span></li><li class="option_list_item"> <input type="hidden" name="comboId" value="T171979944160300000000011"> <span>피부</span></li><li class="option_list_item"> <input type="hidden" name="comboId" value="T171979944754000000000012"> <span>쁘띠</span></li><li class="option_list_item"> <input type="hidden" name="comboId" value="T171979948889700000000016"> <span>기타</span></li></ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search_box">
|
||||
<img src="/image/web/search_B.svg" alt="search"/>
|
||||
<input type="text" id="treatmentSeaerchKeyword" placeholder="">
|
||||
</div>
|
||||
|
||||
<div class="search_list_box">
|
||||
<button class="search_btn">조회</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 환자리스트 -->
|
||||
<div class="treatment_box">
|
||||
<div class="diagnosis_title">
|
||||
<!-- <label for="allCheck" class="chk_box">
|
||||
<input type="checkbox" id="allCheck" checked="checked">
|
||||
<span class="on"></span>
|
||||
</label> -->
|
||||
|
||||
<p class="user">이름/진료정보</p>
|
||||
<p class="time">예약시간</p>
|
||||
<p class="memo">예약/접수메모</p>
|
||||
</div>
|
||||
|
||||
|
||||
<ul class="diagnosis_list">
|
||||
<li>
|
||||
<p>조회 정보가 없습니다.</p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div role="tabpanel" class="tab-pane" id="complete_list">
|
||||
<div class="form_box">
|
||||
<div class="select_list">
|
||||
<div class="select_box dropdown">
|
||||
<button class="label" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">진료 전체</button>
|
||||
<input type="hidden" id="completeTreatmentId" value="">
|
||||
|
||||
<ul class="select_option_list dropdown-menu"> <li class="option_list_item"> <input type="hidden" name="comboId" value=""> <span>진료 전체</span></li><li class="option_list_item"> <input type="hidden" name="comboId" value="T171979943377400000000010"> <span>비만</span></li><li class="option_list_item"> <input type="hidden" name="comboId" value="T171979944160300000000011"> <span>피부</span></li><li class="option_list_item"> <input type="hidden" name="comboId" value="T171979944754000000000012"> <span>쁘띠</span></li><li class="option_list_item"> <input type="hidden" name="comboId" value="T171979948889700000000016"> <span>기타</span></li></ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="search_box">
|
||||
<img src="/image/web/search_B.svg" alt="search"/>
|
||||
<input type="text" id="completeSeaerchKeyword" placeholder="">
|
||||
</div>
|
||||
|
||||
<div class="search_list_box">
|
||||
<button class="search_btn">조회</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="complete_box">
|
||||
<div class="complete_title">
|
||||
<p class="user">이름/진료정보</p>
|
||||
<p class="time">예약시간</p>
|
||||
<p class="whether">수납여부</p>
|
||||
</div>
|
||||
|
||||
|
||||
<ul class="complete_list">
|
||||
<li>
|
||||
<p>조회 정보가 없습니다.</p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- user_info -->
|
||||
<div class="user_info">
|
||||
<input type="hidden" id="hiddenMuUserId">
|
||||
<div class="user_info_top">
|
||||
<p class="user userName" id="homeRightUserInfoName" style="cursor:pointer;"></p>
|
||||
<button class="close_btn"><img src='/image/web/close.svg' alt="close"/></button>
|
||||
</div>
|
||||
<div class="user_info_bottom">
|
||||
<ul class="user_info_bottom_top">
|
||||
<li>
|
||||
<p class="label">인적사항</p>
|
||||
<p class="info">
|
||||
<span class="birthday"></span>
|
||||
<span class="age"></span>
|
||||
<span class="gender"></span>
|
||||
<span class="nationality"></span>
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="label">연락처</p>
|
||||
<p class="info phoneNumber"></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="label" id="homeRightUserInfoPhysical" style="cursor:pointer;">신체기록</p>
|
||||
<p class="info userPhysical"></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="label">고객구분</p>
|
||||
<p class="info userType"></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="label">특이사항</p>
|
||||
<p class="info etc"></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="label">고객메모</p>
|
||||
<p class="info memo"></p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="ul_top">
|
||||
<p>예약 정보</p>
|
||||
<!--<button class="info_btn">예약 상세 정보</button>-->
|
||||
</div>
|
||||
<ul class="user_info_bottom_center">
|
||||
<li>
|
||||
<p class="label">상태</p>
|
||||
<p class="info statusImg"></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="label">예약시간</p>
|
||||
<p class="info reserveDateTime"></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="label">방문유형</p>
|
||||
<p class="info visitType">재진</p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="label">닥터/상담</p>
|
||||
<p class="info reserveMemberName"></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="label">진료유형</p>
|
||||
<p class="info treatmentName"></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="label">시술명</p>
|
||||
<p class="info treatmentProcedureName"></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="label">예약메모</p>
|
||||
<p class="info reserveEtc">-</p>
|
||||
</li>
|
||||
<li class="newUserHidden" style="display:none;">
|
||||
<p class="label">차트</p>
|
||||
<p class="info">
|
||||
<button class="counseling_btn"><img src='/image/web/bubble.svg' alt="상담차트"/>상담차트</button>
|
||||
<button class="surgery_btn"><img src='/image/web/hospital_btn.svg' alt="시술차트"/>시술차트</button>
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="button_box">
|
||||
<button class="modify_btn"><img src="/image/web/menu_6_on.svg" alt="수정"/>수정</button>
|
||||
<button class="accept_btn"><img src="/image/web/receipt.svg" alt="접수"/>접수</button>
|
||||
<button class="new_user_btn newUser" style="display:none;"><img src="/image/web/registration.svg" alt="신환등록"/>신환등록</button>
|
||||
<button class="calculation_btn newUserHidden" style="display:none;"><img src="/image/web/menu_3_on.svg" alt="수납"/>수납</button>
|
||||
</div>
|
||||
|
||||
<div class="table_top newUserHidden" style="display:none;">
|
||||
<p>이용 내역</p>
|
||||
<button class="more_btn">내역 더보기</button>
|
||||
</div>
|
||||
<div class='table_box newUserHidden' style="display:none;">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>예약날짜</th>
|
||||
<th>진료유형</th>
|
||||
<th>닥터/상담</th>
|
||||
<th>상태</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="4">조회 내역이 없습니다.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_popup">
|
||||
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script>
|
||||
$(function(){
|
||||
|
||||
});
|
||||
</script>
|
||||
<script src="/js/web/home/homeSelectList.js"></script>
|
||||
<script src="/js/web/home/popup/homeSmsInsertPop.js"></script>
|
||||
<script src="/js/web/kicc/kiccPosDll.js"></script>
|
||||
<script src="/js/web/userconsultingchart/popup/userConsultingChartUpdatePop.js"></script>
|
||||
<script src="/js/web/usermedicalchart/popup/userMedicalChartUpdatePop.js"></script>
|
||||
<script src="/js/web/reserve/popup/reservePaymentInsertPop.js"></script>
|
||||
<script src="/js/web/reserve/popup/discountInsertPop.js"></script>
|
||||
<script src="/js/web/reserve/popup/discountPayCheckPop.js"></script>
|
||||
<script src="/js/web/reserve/popup/paymentMembershipInsertPop.js"></script>
|
||||
<script src="/js/web/reserve/popup/membershipPayCheckPop.js"></script>
|
||||
<script src="/js/web/reserve/popup/paymentMembershipPartialPop.js"></script>
|
||||
<script src="/js/web/reserve/popup/paymentMonetizationPop.js"></script>
|
||||
<script src="/js/web/reserve/popup/paymentAccountPop.js"></script>
|
||||
<script src="/js/web/reserve/popup/paymentCancellationPop.js"></script>
|
||||
<script src="/js/web/reserve/popup/paymentCancellationPayPop.js"></script>
|
||||
<script src="/js/web/reserve/popup/paymentRefundPop.js"></script>
|
||||
|
||||
<script src="/js/web/user/popup/userInfoUpdatePop.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
582
src/main/resources/templates/web/hospital/hospitalOther.html
Normal file
582
src/main/resources/templates/web/hospital/hospitalOther.html
Normal file
@@ -0,0 +1,582 @@
|
||||
<!--<!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/homeLayout}">-->
|
||||
<!-- <th:block layout:fragment="layout_css">-->
|
||||
<!-- <link rel="stylesheet" href="/css/web/hospital_other.css">-->
|
||||
<!-- </th:block>-->
|
||||
|
||||
<!--<th:block layout:fragment="layout_top_script">-->
|
||||
<!--<script>-->
|
||||
<!--let menuClass = "[[${param.menuClass}]]"==""?"":"[[${param.menuClass}]]";-->
|
||||
|
||||
<!--let selectUseYn = "[[${selectUseYn}]]"==""?"N":"[[${selectUseYn}]]";-->
|
||||
<!--let insertUseYn = "[[${insertUseYn}]]"==""?"N":"[[${insertUseYn}]]";-->
|
||||
<!--let updateUseYn = "[[${updateUseYn}]]"==""?"N":"[[${updateUseYn}]]";-->
|
||||
<!--let deleteUseYn = "[[${deleteUseYn}]]"==""?"N":"[[${deleteUseYn}]]";-->
|
||||
<!--let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";-->
|
||||
|
||||
<!--</script>-->
|
||||
<!--</th:block>-->
|
||||
<!--<th:block layout:fragment="layout_content">-->
|
||||
<!--<input type="hidden" id="muHospitalId">-->
|
||||
<!-- <!– 센터쪽 –>-->
|
||||
<!-- <div class="center_box">-->
|
||||
<!-- <p class="page_title">기타 설정</p>-->
|
||||
|
||||
<!-- <div class="info_box">-->
|
||||
<!-- <div class="info first">-->
|
||||
<!-- <div class="form_box">-->
|
||||
<!-- <p class="title">고객 정보 설정</p>-->
|
||||
|
||||
<!-- <div class="content_box">-->
|
||||
<!-- <p class="label">국적</p>-->
|
||||
<!-- <div class="table_box">-->
|
||||
<!-- <table>-->
|
||||
<!-- <thead>-->
|
||||
<!-- <tr>-->
|
||||
<!-- <th>순서</th>-->
|
||||
<!-- <th>구분</th>-->
|
||||
<!-- <th>메모</th>-->
|
||||
<!-- <th></th>-->
|
||||
<!-- <th></th>-->
|
||||
<!-- </tr>-->
|
||||
<!-- </thead>-->
|
||||
<!-- <tbody id="nationality">-->
|
||||
<!--<!– <tr>–>-->
|
||||
<!--<!– <td></td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="input_box">–>-->
|
||||
<!--<!– <input type="text" placeholder="입력"/>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="input_box">–>-->
|
||||
<!--<!– <input type="text" placeholder="메모"/>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="add_box">–>-->
|
||||
<!--<!– <button class="add_btn"><img src="/image/web/add.svg" alt="추가"></button>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!–<!– <td>–>–>-->
|
||||
<!--<!–<!– <div class="button_box">–>–>-->
|
||||
<!--<!–<!– <button class="up_btn"><img src='/image/web/select_arrow.svg' alt="up"/></button>–>–>-->
|
||||
<!--<!–<!– <button class="down_btn"><img src='/image/web/select_arrow.svg' alt="down"/></button>–>–>-->
|
||||
<!--<!–<!– </div>–>–>-->
|
||||
<!--<!–<!– </td>–>–>-->
|
||||
<!--<!– </tr>–>-->
|
||||
<!-- </tbody>-->
|
||||
<!-- </table>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
|
||||
<!-- <div class="content_box">-->
|
||||
<!-- <p class="label">고객 구분</p>-->
|
||||
<!-- <div class="table_box">-->
|
||||
<!-- <table>-->
|
||||
<!-- <thead>-->
|
||||
<!-- <tr>-->
|
||||
<!-- <th>순서</th>-->
|
||||
<!-- <th>구분</th>-->
|
||||
<!-- <th>메모</th>-->
|
||||
<!-- <th></th>-->
|
||||
<!-- <th></th>-->
|
||||
<!-- </tr>-->
|
||||
<!-- </thead>-->
|
||||
<!-- <tbody id="userType">-->
|
||||
<!--<!– <tr>–>-->
|
||||
<!--<!– <td>1</td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="file_box">–>-->
|
||||
<!--<!– <input class="upload-name" placeholder="파일 업로드">–>-->
|
||||
<!--<!– <label for="file" class="file_btn">업로드</label>–>-->
|
||||
<!--<!– <input type="file" id="file">–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="input_box">–>-->
|
||||
<!--<!– <input type="text" placeholder="메모"/>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="subtract_box">–>-->
|
||||
<!--<!– <button><img src="/image/web/subtract.svg" alt="삭제"></button>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="button_box">–>-->
|
||||
<!--<!– <button class="up_btn"><img src='/image/web/select_arrow.svg' alt="up"/></button>–>-->
|
||||
<!--<!– <button class="down_btn"><img src='/image/web/select_arrow.svg' alt="down"/></button>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– </tr>–>-->
|
||||
<!--<!– <tr>–>-->
|
||||
<!--<!– <td>2</td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="file_box">–>-->
|
||||
<!--<!– <input class="upload-name" placeholder="파일 업로드">–>-->
|
||||
<!--<!– <label for="file" class="file_btn">업로드</label>–>-->
|
||||
<!--<!– <input type="file" id="file">–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="input_box">–>-->
|
||||
<!--<!– <input type="text" placeholder="메모"/>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="subtract_box">–>-->
|
||||
<!--<!– <button><img src="/image/web/subtract.svg" alt="삭제"></button>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="button_box">–>-->
|
||||
<!--<!– <button class="up_btn"><img src='/image/web/select_arrow.svg' alt="up"/></button>–>-->
|
||||
<!--<!– <button class="down_btn"><img src='/image/web/select_arrow.svg' alt="down"/></button>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– </tr>–>-->
|
||||
<!--<!– <tr>–>-->
|
||||
<!--<!– <td></td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="file_box">–>-->
|
||||
<!--<!– <input class="upload-name" placeholder="파일 업로드">–>-->
|
||||
<!--<!– <label for="file" class="file_btn">업로드</label>–>-->
|
||||
<!--<!– <input type="file" id="file">–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="input_box">–>-->
|
||||
<!--<!– <input type="text" placeholder="메모"/>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="add_box">–>-->
|
||||
<!--<!– <button class="add_btn"><img src="/image/web/add.svg" alt="추가"></button>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!–<!– <td>–>–>-->
|
||||
<!--<!–<!– <div class="button_box">–>–>-->
|
||||
<!--<!–<!– <button class="up_btn"><img src='/image/web/select_arrow.svg' alt="up"/></button>–>–>-->
|
||||
<!--<!–<!– <button class="down_btn"><img src='/image/web/select_arrow.svg' alt="down"/></button>–>–>-->
|
||||
<!--<!–<!– </div>–>–>-->
|
||||
<!--<!–<!– </td>–>–>-->
|
||||
<!--<!– </tr>–>-->
|
||||
<!-- </tbody>-->
|
||||
<!-- </table>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
|
||||
<!-- <div class="content_box">-->
|
||||
<!-- <p class="label">방문 경로</p>-->
|
||||
<!-- <div class="table_box">-->
|
||||
<!-- <table>-->
|
||||
<!-- <thead>-->
|
||||
<!-- <tr>-->
|
||||
<!-- <th>순서</th>-->
|
||||
<!-- <th>구분</th>-->
|
||||
<!-- <th>메모</th>-->
|
||||
<!-- <th></th>-->
|
||||
<!-- <th></th>-->
|
||||
<!-- </tr>-->
|
||||
<!-- </thead>-->
|
||||
<!-- <tbody id="channel">-->
|
||||
<!--<!– <tr>–>-->
|
||||
<!--<!– <td>1</td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="input_box">–>-->
|
||||
<!--<!– <input type="text" value="포털 검색"/>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="input_box">–>-->
|
||||
<!--<!– <input type="text" placeholder="메모"/>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="subtract_box">–>-->
|
||||
<!--<!– <button><img src="/image/web/subtract.svg" alt="삭제"></button>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="button_box">–>-->
|
||||
<!--<!– <button class="up_btn"><img src='/image/web/select_arrow.svg' alt="up"/></button>–>-->
|
||||
<!--<!– <button class="down_btn"><img src='/image/web/select_arrow.svg' alt="down"/></button>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– </tr>–>-->
|
||||
<!--<!– <tr>–>-->
|
||||
<!--<!– <td>2</td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="input_box">–>-->
|
||||
<!--<!– <input type="text" value="SNS"/>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="input_box">–>-->
|
||||
<!--<!– <input type="text" placeholder="메모"/>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="subtract_box">–>-->
|
||||
<!--<!– <button><img src="/image/web/subtract.svg" alt="삭제"></button>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="button_box">–>-->
|
||||
<!--<!– <button class="up_btn"><img src='/image/web/select_arrow.svg' alt="up"/></button>–>-->
|
||||
<!--<!– <button class="down_btn"><img src='/image/web/select_arrow.svg' alt="down"/></button>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– </tr>–>-->
|
||||
<!--<!– <tr>–>-->
|
||||
<!--<!– <td>3</td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="input_box">–>-->
|
||||
<!--<!– <input type="text" value="지인 소개"/>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="input_box">–>-->
|
||||
<!--<!– <input type="text" placeholder="메모"/>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="subtract_box">–>-->
|
||||
<!--<!– <button><img src="/image/web/subtract.svg" alt="삭제"></button>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="button_box">–>-->
|
||||
<!--<!– <button class="up_btn"><img src='/image/web/select_arrow.svg' alt="up"/></button>–>-->
|
||||
<!--<!– <button class="down_btn"><img src='/image/web/select_arrow.svg' alt="down"/></button>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– </tr>–>-->
|
||||
<!--<!– <tr>–>-->
|
||||
<!--<!– <td>4</td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="input_box">–>-->
|
||||
<!--<!– <input type="text" value="에이전시A"/>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="input_box">–>-->
|
||||
<!--<!– <input type="text" placeholder="메모"/>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="subtract_box">–>-->
|
||||
<!--<!– <button><img src="/image/web/subtract.svg" alt="삭제"></button>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="button_box">–>-->
|
||||
<!--<!– <button class="up_btn"><img src='/image/web/select_arrow.svg' alt="up"/></button>–>-->
|
||||
<!--<!– <button class="down_btn"><img src='/image/web/select_arrow.svg' alt="down"/></button>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– </tr>–>-->
|
||||
<!--<!– <tr>–>-->
|
||||
<!--<!– <td></td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="input_box">–>-->
|
||||
<!--<!– <input type="text" placeholder="입력"/>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="input_box">–>-->
|
||||
<!--<!– <input type="text" placeholder="메모"/>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="add_box">–>-->
|
||||
<!--<!– <button class="add_btn"><img src="/image/web/add.svg" alt="추가"></button>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!–<!– <td>–>–>-->
|
||||
<!--<!–<!– <div class="button_box">–>–>-->
|
||||
<!--<!–<!– <button class="up_btn"><img src='/image/web/select_arrow.svg' alt="up"/></button>–>–>-->
|
||||
<!--<!–<!– <button class="down_btn"><img src='/image/web/select_arrow.svg' alt="down"/></button>–>–>-->
|
||||
<!--<!–<!– </div>–>–>-->
|
||||
<!--<!–<!– </td>–>–>-->
|
||||
<!--<!– </tr>–>-->
|
||||
<!-- </tbody>-->
|
||||
<!-- </table>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
|
||||
<!-- <div class="button_box">-->
|
||||
<!-- <button class="save_btn">저장</button>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
|
||||
<!-- <div class="info last">-->
|
||||
<!-- <div class="form_box">-->
|
||||
<!-- <p class="title last">예약 정보 설정</p>-->
|
||||
|
||||
<!-- <div class="content_box">-->
|
||||
<!-- <p class="label">방문 경로</p>-->
|
||||
<!-- <div class="table_box">-->
|
||||
<!-- <table>-->
|
||||
<!-- <thead>-->
|
||||
<!-- <tr>-->
|
||||
<!-- <th>순서</th>-->
|
||||
<!-- <th>구분</th>-->
|
||||
<!-- <th>메모</th>-->
|
||||
<!-- <th></th>-->
|
||||
<!-- <th></th>-->
|
||||
<!-- </tr>-->
|
||||
<!-- </thead>-->
|
||||
<!-- <tbody id="reservation">-->
|
||||
<!--<!– <tr>–>-->
|
||||
<!--<!– <td>1</td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="input_box">–>-->
|
||||
<!--<!– <input type="text" value="네이버"/>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="input_box">–>-->
|
||||
<!--<!– <input type="text" placeholder="메모"/>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="subtract_box">–>-->
|
||||
<!--<!– <button><img src="/image/web/subtract.svg" alt="삭제"></button>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="button_box">–>-->
|
||||
<!--<!– <button class="up_btn"><img src='/image/web/select_arrow.svg' alt="up"/></button>–>-->
|
||||
<!--<!– <button class="down_btn"><img src='/image/web/select_arrow.svg' alt="down"/></button>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– </tr>–>-->
|
||||
<!--<!– <tr>–>-->
|
||||
<!--<!– <td>2</td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="input_box">–>-->
|
||||
<!--<!– <input type="text" value="카카오"/>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="input_box">–>-->
|
||||
<!--<!– <input type="text" placeholder="메모"/>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="subtract_box">–>-->
|
||||
<!--<!– <button><img src="/image/web/subtract.svg" alt="삭제"></button>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="button_box">–>-->
|
||||
<!--<!– <button class="up_btn"><img src='/image/web/select_arrow.svg' alt="up"/></button>–>-->
|
||||
<!--<!– <button class="down_btn"><img src='/image/web/select_arrow.svg' alt="down"/></button>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– </tr>–>-->
|
||||
<!--<!– <tr>–>-->
|
||||
<!--<!– <td>3</td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="input_box">–>-->
|
||||
<!--<!– <input type="text" value="상담"/>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="input_box">–>-->
|
||||
<!--<!– <input type="text" placeholder="메모"/>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="subtract_box">–>-->
|
||||
<!--<!– <button><img src="/image/web/subtract.svg" alt="삭제"></button>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="button_box">–>-->
|
||||
<!--<!– <button class="up_btn"><img src='/image/web/select_arrow.svg' alt="up"/></button>–>-->
|
||||
<!--<!– <button class="down_btn"><img src='/image/web/select_arrow.svg' alt="down"/></button>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– </tr>–>-->
|
||||
<!--<!– <tr>–>-->
|
||||
<!--<!– <td>4</td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="input_box">–>-->
|
||||
<!--<!– <input type="text" value="전화"/>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="input_box">–>-->
|
||||
<!--<!– <input type="text" placeholder="메모"/>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="subtract_box">–>-->
|
||||
<!--<!– <button><img src="/image/web/subtract.svg" alt="삭제"></button>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="button_box">–>-->
|
||||
<!--<!– <button class="up_btn"><img src='/image/web/select_arrow.svg' alt="up"/></button>–>-->
|
||||
<!--<!– <button class="down_btn"><img src='/image/web/select_arrow.svg' alt="down"/></button>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– </tr>–>-->
|
||||
<!--<!– <tr>–>-->
|
||||
<!--<!– <td>5</td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="input_box">–>-->
|
||||
<!--<!– <input type="text" value="기타"/>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="input_box">–>-->
|
||||
<!--<!– <input type="text" placeholder="메모"/>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="subtract_box">–>-->
|
||||
<!--<!– <button><img src="/image/web/subtract.svg" alt="삭제"></button>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="button_box">–>-->
|
||||
<!--<!– <button class="up_btn"><img src='/image/web/select_arrow.svg' alt="up"/></button>–>-->
|
||||
<!--<!– <button class="down_btn"><img src='/image/web/select_arrow.svg' alt="down"/></button>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– </tr>–>-->
|
||||
<!--<!– <tr>–>-->
|
||||
<!--<!– <td></td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="input_box">–>-->
|
||||
<!--<!– <input type="text" placeholder="입력"/>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="input_box">–>-->
|
||||
<!--<!– <input type="text" placeholder="메모"/>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!– <td>–>-->
|
||||
<!--<!– <div class="add_box">–>-->
|
||||
<!--<!– <button class="add_btn"><img src="/image/web/add.svg" alt="추가"></button>–>-->
|
||||
<!--<!– </div>–>-->
|
||||
<!--<!– </td>–>-->
|
||||
<!--<!–<!– <td>–>–>-->
|
||||
<!--<!–<!– <div class="button_box">–>–>-->
|
||||
<!--<!–<!– <button class="up_btn"><img src='/image/web/select_arrow.svg' alt="up"/></button>–>–>-->
|
||||
<!--<!–<!– <button class="down_btn"><img src='/image/web/select_arrow.svg' alt="down"/></button>–>–>-->
|
||||
<!--<!–<!– </div>–>–>-->
|
||||
<!--<!–<!– </td>–>–>-->
|
||||
<!--<!– </tr>–>-->
|
||||
<!-- </tbody>-->
|
||||
<!-- </table>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
|
||||
<!-- <div class="button_box">-->
|
||||
<!-- <button class="save_btn">저장</button>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <form id="hospitalUpdateForm" onsubmit="return false;"></form>-->
|
||||
<!--</th:block>-->
|
||||
|
||||
<!--<th:block layout:fragment="layout_popup">-->
|
||||
<!--</th:block>-->
|
||||
<!--<th:block layout:fragment="layout_script">-->
|
||||
<!--<script src="/js/web/hospital/hospitalOther.js"></script>-->
|
||||
<!--<script>-->
|
||||
<!-- // 파일업로드-->
|
||||
<!-- $("#file").on('change',function(){-->
|
||||
<!-- var fileName = $("#file").val();-->
|
||||
<!-- $(".upload-name").val(fileName);-->
|
||||
<!-- });-->
|
||||
<!-- </script>-->
|
||||
<!--</th:block>-->
|
||||
<!--</html>-->
|
||||
<!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/homeLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/web/grid.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/web/hospital_other.css">
|
||||
<link rel="stylesheet" href="/css/web/modal_hospital_other.css?v1.1">
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script src="/js/web/common_option.js"></script>
|
||||
<script src="/js/web/jquery.twbsPagination.js" type="text/javascript"></script>
|
||||
<script>
|
||||
let menuClass = "[[${param.menuClass}]]"==""?"":"[[${param.menuClass}]]";
|
||||
|
||||
let selectUseYn = "[[${selectUseYn}]]"==""?"N":"[[${selectUseYn}]]";
|
||||
let insertUseYn = "[[${insertUseYn}]]"==""?"N":"[[${insertUseYn}]]";
|
||||
let updateUseYn = "[[${updateUseYn}]]"==""?"N":"[[${updateUseYn}]]";
|
||||
let deleteUseYn = "[[${deleteUseYn}]]"==""?"N":"[[${deleteUseYn}]]";
|
||||
let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
|
||||
|
||||
let categorySort = "[[${param.categorySort}]]";
|
||||
let categoryDir = "[[${param.categoryDir}]]";
|
||||
let categoryStart = "[[${param.categoryStart}]]"==""?0:"[[${param.categoryStart}]]";
|
||||
let categoryLimit = "[[${param.categoryLimit}]]"==""?15:"[[${param.categoryLimit}]]";
|
||||
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<input type="hidden" id="muHospitalId">
|
||||
<!-- 센터쪽 -->
|
||||
<div class="center_box">
|
||||
<p class="page_title">기타 설정</p>
|
||||
|
||||
<div class="group_item_list">
|
||||
<div class="title">
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></button>
|
||||
|
||||
<ul class="select_option_list dropdown-menu" id="categoryList"></ul>
|
||||
</div>
|
||||
|
||||
<div class="right_btn_box">
|
||||
<button id="btnInsertCategory" class="category_item_btn" style="transition: all 0.2s ease-in-out 0s;">
|
||||
<img src="/image/web/group_btn_icon.svg" alt="카테고리 추가"/>카테고리 추가
|
||||
</button>
|
||||
<button id="btnDeleteCategory" class="delete_btn" style="transition: all 0.2s ease-in-out 0s;">
|
||||
<img src="/image/web/delete_btn_icon.svg" alt="삭제">삭제
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="categoryItemGrid" class="table_box ag-theme-balham categoryGrid"></div>
|
||||
<div class="page_box">
|
||||
<nav aria-label="Page navigation" class="navigation">
|
||||
<ul class="pagination" id="categoryPagination"></ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<form id="groupSelectListForm" method="POST" target="_blank"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_popup">
|
||||
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/web/ag-grid-community-29.3.5.min.js"></script>
|
||||
<script src="/js/web/hospital/hospitalOther.js"></script>
|
||||
|
||||
<script src="/js/web/hospital/popup/otherInsertPop.js"></script>
|
||||
<script src="/js/web/hospital/popup/otherUpdatePop.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
493
src/main/resources/templates/web/hospital/hospitalUpdate.html
Normal file
493
src/main/resources/templates/web/hospital/hospitalUpdate.html
Normal file
@@ -0,0 +1,493 @@
|
||||
<!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/homeLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/web/hospital_info.css?v1.1">
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script>
|
||||
let menuClass = "[[${param.menuClass}]]"==""?"":"[[${param.menuClass}]]";
|
||||
|
||||
let selectUseYn = "[[${selectUseYn}]]"==""?"N":"[[${selectUseYn}]]";
|
||||
let insertUseYn = "[[${insertUseYn}]]"==""?"N":"[[${insertUseYn}]]";
|
||||
let updateUseYn = "[[${updateUseYn}]]"==""?"N":"[[${updateUseYn}]]";
|
||||
let deleteUseYn = "[[${deleteUseYn}]]"==""?"N":"[[${deleteUseYn}]]";
|
||||
let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
|
||||
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<input type="hidden" id="muHospitalId">
|
||||
<!-- 센터쪽 -->
|
||||
<div class="center_box">
|
||||
<p class="page_title">병원 기본정보</p>
|
||||
|
||||
<div class="info_box">
|
||||
<div class="info">
|
||||
<div class="form_box first">
|
||||
<p class="title">운영시간</p>
|
||||
|
||||
<div class="time_box">
|
||||
<p class="time_title">운영시간</p>
|
||||
|
||||
<ul class="time_list">
|
||||
<li class="list_title_li">
|
||||
<span class="list_title">요일</span>
|
||||
<span class="list_title">운영시간</span>
|
||||
<span class="list_title">휴게시간</span>
|
||||
<span class="list_title">운영여부</span>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<div class="day_box">
|
||||
<p class="day">월요일</p>
|
||||
</div>
|
||||
|
||||
<div class="select_time_list_box">
|
||||
<div class="select_list first">
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
|
||||
<input type="hidden" id="monOpenStartTime">
|
||||
|
||||
<ul class="select_option_list dropdown-menu" id="selMonOpenStartTime"></ul>
|
||||
</div><!--select_box-->
|
||||
</div>
|
||||
|
||||
<span class="slash">~</span>
|
||||
|
||||
<div class="select_list">
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
|
||||
<input type="hidden" id="monOpenEndTime">
|
||||
|
||||
<ul class="select_option_list dropdown-menu" id="selMonOpenEndTime"></ul>
|
||||
</div><!--select_box-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="select_time_list_box">
|
||||
<div class="select_list first">
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
|
||||
<input type="hidden" id="monBreakStartTime">
|
||||
<ul class="select_option_list dropdown-menu" id="selMonBreakStartTime"></ul>
|
||||
</div><!--select_box-->
|
||||
</div>
|
||||
|
||||
<span class="slash">~</span>
|
||||
|
||||
<div class="select_list">
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
|
||||
<input type="hidden" id="monBreakEndTime">
|
||||
<ul class="select_option_list dropdown-menu" id="selMonBreakEndTime"></ul>
|
||||
</div><!--select_box-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="wrapper_box">
|
||||
<div class="wrapper">
|
||||
<input type="checkbox" id="checkMonOpenYn" class="switch_input" value="Y">
|
||||
<label for="checkMonOpenYn" class="switch_label">
|
||||
<span class="switch_btn"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<div class="day_box">
|
||||
<p class="day">화요일</p>
|
||||
</div>
|
||||
|
||||
<div class="select_time_list_box">
|
||||
<div class="select_list first">
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
|
||||
<input type="hidden" id="tueOpenStartTime">
|
||||
<ul class="select_option_list dropdown-menu" id="selTueOpenStartTime"></ul>
|
||||
</div><!--select_box-->
|
||||
</div>
|
||||
|
||||
<span class="slash">~</span>
|
||||
|
||||
<div class="select_list">
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
|
||||
<input type="hidden" id="tueOpenEndTime">
|
||||
<ul class="select_option_list dropdown-menu" id="selTueOpenEndTime"></ul>
|
||||
</div><!--select_box-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="select_time_list_box">
|
||||
<div class="select_list first">
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
|
||||
<input type="hidden" id="tueBreakStartTime">
|
||||
<ul class="select_option_list dropdown-menu" id="selTueBreakStartTime"></ul>
|
||||
</div><!--select_box-->
|
||||
</div>
|
||||
|
||||
<span class="slash">~</span>
|
||||
|
||||
<div class="select_list">
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
|
||||
<input type="hidden" id="tueBreakEndTime">
|
||||
<ul class="select_option_list dropdown-menu" id="selTueBreakEndTime"></ul>
|
||||
</div><!--select_box-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="wrapper_box">
|
||||
<div class="wrapper">
|
||||
<input type="checkbox" id="checkTueOpenYn" class="switch_input" value="Y">
|
||||
<label for="checkTueOpenYn" class="switch_label">
|
||||
<span class="switch_btn"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<div class="day_box">
|
||||
<p class="day">수요일</p>
|
||||
</div>
|
||||
|
||||
<div class="select_time_list_box">
|
||||
<div class="select_list first">
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
|
||||
<input type="hidden" id="wedOpenStartTime">
|
||||
<ul class="select_option_list dropdown-menu" id="selWedOpenStartTime"></ul>
|
||||
</div><!--select_box-->
|
||||
</div>
|
||||
|
||||
<span class="slash">~</span>
|
||||
|
||||
<div class="select_list">
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
|
||||
<input type="hidden" id="wedOpenEndTime">
|
||||
<ul class="select_option_list dropdown-menu" id="selWedOpenEndTime"></ul>
|
||||
</div><!--select_box-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="select_time_list_box">
|
||||
<div class="select_list first">
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
|
||||
<input type="hidden" id="wedBreakStartTime">
|
||||
<ul class="select_option_list dropdown-menu" id="selWedBreakStartTime"></ul>
|
||||
</div><!--select_box-->
|
||||
</div>
|
||||
|
||||
<span class="slash">~</span>
|
||||
|
||||
<div class="select_list">
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
|
||||
<input type="hidden" id="wedBreakEndTime">
|
||||
<ul class="select_option_list dropdown-menu" id="selWedBreakEndTime"></ul>
|
||||
</div><!--select_box-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="wrapper_box">
|
||||
<div class="wrapper">
|
||||
<input type="checkbox" id="checkWedOpenYn" class="switch_input" value="Y">
|
||||
<label for="checkWedOpenYn" class="switch_label">
|
||||
<span class="switch_btn"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<div class="day_box">
|
||||
<p class="day">목요일</p>
|
||||
</div>
|
||||
|
||||
<div class="select_time_list_box">
|
||||
<div class="select_list first">
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
|
||||
<input type="hidden" id="thuOpenStartTime">
|
||||
<ul class="select_option_list dropdown-menu" id="selThuOpenStartTime"></ul>
|
||||
</div><!--select_box-->
|
||||
</div>
|
||||
|
||||
<span class="slash">~</span>
|
||||
|
||||
<div class="select_list">
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
|
||||
<input type="hidden" id="thuOpenEndTime">
|
||||
<ul class="select_option_list dropdown-menu" id="selThuOpenEndTime"></ul>
|
||||
</div><!--select_box-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="select_time_list_box">
|
||||
<div class="select_list first">
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
|
||||
<input type="hidden" id="thuBreakStartTime">
|
||||
<ul class="select_option_list dropdown-menu" id="selThuBreakStartTime"></ul>
|
||||
</div><!--select_box-->
|
||||
</div>
|
||||
|
||||
<span class="slash">~</span>
|
||||
|
||||
<div class="select_list">
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
|
||||
<input type="hidden" id="thuBreakEndTime">
|
||||
<ul class="select_option_list dropdown-menu" id="selThuBreakEndTime"></ul>
|
||||
</div><!--select_box-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="wrapper_box">
|
||||
<div class="wrapper">
|
||||
<input type="checkbox" id="checkThuOpenYn" class="switch_input" value="Y">
|
||||
<label for="checkThuOpenYn" class="switch_label">
|
||||
<span class="switch_btn"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<div class="day_box">
|
||||
<p class="day">금요일</p>
|
||||
</div>
|
||||
|
||||
<div class="select_time_list_box">
|
||||
<div class="select_list first">
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
|
||||
<input type="hidden" id="friOpenStartTime">
|
||||
<ul class="select_option_list dropdown-menu" id="selFriOpenStartTime"></ul>
|
||||
</div><!--select_box-->
|
||||
</div>
|
||||
|
||||
<span class="slash">~</span>
|
||||
|
||||
<div class="select_list">
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
|
||||
<input type="hidden" id="friOpenEndTime">
|
||||
<ul class="select_option_list dropdown-menu" id="selFriOpenEndTime"></ul>
|
||||
</div><!--select_box-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="select_time_list_box">
|
||||
<div class="select_list first">
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
|
||||
<input type="hidden" id="friBreakStartTime">
|
||||
<ul class="select_option_list dropdown-menu" id="selFriBreakStartTime"></ul>
|
||||
</div><!--select_box-->
|
||||
</div>
|
||||
|
||||
<span class="slash">~</span>
|
||||
|
||||
<div class="select_list">
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
|
||||
<input type="hidden" id="friBreakEndTime">
|
||||
<ul class="select_option_list dropdown-menu" id="selFriBreakEndTime"></ul>
|
||||
</div><!--select_box-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="wrapper_box">
|
||||
<div class="wrapper">
|
||||
<input type="checkbox" id="checkFriOpenYn" class="switch_input" value="Y">
|
||||
<label for="checkFriOpenYn" class="switch_label">
|
||||
<span class="switch_btn"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<div class="day_box">
|
||||
<p class="day">토요일</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="select_time_list_box">
|
||||
<div class="select_list first">
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
|
||||
<input type="hidden" id="satOpenStartTime">
|
||||
<ul class="select_option_list dropdown-menu" id="selSatOpenStartTime"></ul>
|
||||
</div><!--select_box-->
|
||||
</div>
|
||||
|
||||
<span class="slash">~</span>
|
||||
|
||||
<div class="select_list">
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
|
||||
<input type="hidden" id="satOpenEndTime">
|
||||
<ul class="select_option_list dropdown-menu" id="selSatOpenEndTime"></ul>
|
||||
</div><!--select_box-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="select_time_list_box">
|
||||
<div class="select_list first">
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
|
||||
<input type="hidden" id="satBreakStartTime">
|
||||
<ul class="select_option_list dropdown-menu" id="selSatBreakStartTime"></ul>
|
||||
</div><!--select_box-->
|
||||
</div>
|
||||
|
||||
<span class="slash">~</span>
|
||||
|
||||
<div class="select_list">
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
|
||||
<input type="hidden" id="satBreakEndTime">
|
||||
<ul class="select_option_list dropdown-menu" id="selSatBreakEndTime"></ul>
|
||||
</div><!--select_box-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="wrapper_box">
|
||||
<div class="wrapper">
|
||||
<input type="checkbox" id="checkSatOpenYn" class="switch_input" value="Y">
|
||||
<label for="checkSatOpenYn" class="switch_label">
|
||||
<span class="switch_btn"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<div class="day_box">
|
||||
<p class="day">일요일</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="select_time_list_box">
|
||||
<div class="select_list first">
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
|
||||
<input type="hidden" id="sunOpenStartTime">
|
||||
<ul class="select_option_list dropdown-menu" id="selSunOpenStartTime"></ul>
|
||||
</div><!--select_box-->
|
||||
</div>
|
||||
|
||||
<span class="slash">~</span>
|
||||
|
||||
<div class="select_list">
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
|
||||
<input type="hidden" id="sunOpenEndTime">
|
||||
<ul class="select_option_list dropdown-menu" id="selSunOpenEndTime"></ul>
|
||||
</div><!--select_box-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="select_time_list_box">
|
||||
<div class="select_list first">
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
|
||||
<input type="hidden" id="sunBreakStartTime">
|
||||
<ul class="select_option_list dropdown-menu" id="selSunBreakStartTime"></ul>
|
||||
</div><!--select_box-->
|
||||
</div>
|
||||
|
||||
<span class="slash">~</span>
|
||||
|
||||
<div class="select_list">
|
||||
<div class="select_box dropdown">
|
||||
<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" disabled>00:00</button>
|
||||
<input type="hidden" id="sunBreakEndTime">
|
||||
<ul class="select_option_list dropdown-menu" id="selSunBreakEndTime"></ul>
|
||||
</div><!--select_box-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="wrapper_box">
|
||||
<div class="wrapper">
|
||||
<input type="checkbox" id="checkSunOpenYn" class="switch_input" value="Y">
|
||||
<label for="checkSunOpenYn" class="switch_label">
|
||||
<span class="switch_btn"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="holiday_box">
|
||||
<p class="holiday_title">법정 공휴일</p>
|
||||
|
||||
<div class="check_holiday_box">
|
||||
<div class="check_box">
|
||||
<label for="checkPublicHolidayUseYn">
|
||||
<input class="select_check_hide" type="checkbox" id="checkPublicHolidayUseYn" name="checkPublicHolidayUseYn" value="Y">
|
||||
<div class="select_check_show"></div>
|
||||
</label>
|
||||
</div>
|
||||
<span>법정 공휴일 반영</span>
|
||||
</div>
|
||||
</div><!--content_box-->
|
||||
|
||||
<div class="hospital_box">
|
||||
<p class="hospital_title">운영시간</p>
|
||||
|
||||
<ul class="hospital_list" id="hospitalHolidayList">
|
||||
<li class="list_title_li">
|
||||
<span class="list_title">휴일명</span>
|
||||
<span class="list_title">날짜</span>
|
||||
<span class="list_title">일정반복</span>
|
||||
<span class="list_title"></span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- <div class="form_box">
|
||||
<p class="title">최고관리자 설정</p>
|
||||
|
||||
<div class="admset_box">
|
||||
<p class="admset_title">아이디</p>
|
||||
|
||||
<div class="input_box">
|
||||
<input type="hidden" id="txt_muMemberId">
|
||||
<input type="text" id="txt_memberName" placeholder="" disabled>
|
||||
<a href="#">최고관리자 이관</a>
|
||||
|
||||
<p class="comment">*관리자 권한 계정에게만 이관이 가능합니다.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<div class="button_box">
|
||||
<button id="btnUpdateHospital">저장</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<form id="hospitalUpdateForm" onsubmit="return false;"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_popup">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/web/hospital/hospitalUpdate.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
80
src/main/resources/templates/web/include/emptyHead.html
Normal file
80
src/main/resources/templates/web/include/emptyHead.html
Normal file
@@ -0,0 +1,80 @@
|
||||
<!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/web/font.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/web/common.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/web/header.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/web/modal_common.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/web/jquery-ui.css">
|
||||
<link rel="stylesheet" href="/js/web/bootstrap-datetimepicker/bootstrap-datetimepicker.css">
|
||||
<link rel="stylesheet" href="/css/web/loadingAnimations2.css">
|
||||
|
||||
<th:block layout:fragment="layout_css"></th:block>
|
||||
<th:block layout:fragment="layout_menu_css"></th:block>
|
||||
|
||||
<!-- 베이스script -->
|
||||
<script src="/js/web/jquery.min.js"></script>
|
||||
<script src="/bootstrap/bootstrap-3.4.1-dist/js/bootstrap.min.js"></script>
|
||||
|
||||
<!-- 적용script -->
|
||||
<script src="/js/web/jquery-ui.js"></script>
|
||||
<script src="/js/web/data.js"></script>
|
||||
<script src="/js/web/bootstrap-datetimepicker/moment-with-locales.min.js"></script>
|
||||
<script src="/js/web/bootstrap-datetimepicker/ko.js"></script>
|
||||
<script src="/js/web/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js"></script>
|
||||
|
||||
<th:block th:replace="/web/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>
|
||||
107
src/main/resources/templates/web/include/head.html
Normal file
107
src/main/resources/templates/web/include/head.html
Normal file
@@ -0,0 +1,107 @@
|
||||
<!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/web/font.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/web/common.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/web/header.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/web/modal_common.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/web/modal.css?v1.1">
|
||||
<link rel="stylesheet" href="/css/web/jquery-ui.css">
|
||||
<link rel="stylesheet" href="/js/web/bootstrap-datetimepicker/bootstrap-datetimepicker.css">
|
||||
<link rel="stylesheet" href="/css/web/loadingAnimations2.css">
|
||||
<link rel="stylesheet" href="/css/web/grid.css?v1.1">
|
||||
|
||||
<th:block layout:fragment="layout_css"></th:block>
|
||||
<th:block layout:fragment="layout_menu_css"></th:block>
|
||||
|
||||
<!-- 베이스script -->
|
||||
<script src="/js/web/jquery.min.js"></script>
|
||||
<script src="/bootstrap/bootstrap-3.4.1-dist/js/bootstrap.min.js"></script>
|
||||
|
||||
<!-- 적용script -->
|
||||
<script src="/js/web/jquery-ui.js"></script>
|
||||
<script src="/js/web/data.js"></script>
|
||||
<script src="/js/web/bootstrap-datetimepicker/moment-with-locales.min.js"></script>
|
||||
<script src="/js/web/bootstrap-datetimepicker/ko.js"></script>
|
||||
<script src="/js/web/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/web/jquery.twbsPagination.js" type="text/javascript"></script>
|
||||
<script src="/js/web/ag-grid-community-29.3.5.min.js"></script>
|
||||
|
||||
<script src="/js/web/common.js"></script>
|
||||
<script src="/js/web/common_option.js"></script>
|
||||
|
||||
<!-- bootstrap-select-1.13.14 -->
|
||||
<link rel="stylesheet" type="text/css" href="/js/web/bootstrap-select-1.13.14/dist/css/bootstrap-select.min.css" />
|
||||
<script src="/js/web/bootstrap-select-1.13.14/dist/js/bootstrap-select.min.js"></script>
|
||||
|
||||
<th:block th:replace="/web/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 loginMemberId = "[[${session.loginMemberId}]]";
|
||||
let loginMemberName = "[[${session.loginName}]]";
|
||||
|
||||
let isSessionConfirm = false;
|
||||
let windowWidth = $(window).width();
|
||||
let windowHeight = $(window).height();
|
||||
|
||||
let modalArr = new Array();
|
||||
let modalBackYn = 'N';
|
||||
|
||||
/* window.addEventListener('hashchange', modalCloseEvent, false); */
|
||||
|
||||
|
||||
$(function(){
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
</th:block>
|
||||
</html>
|
||||
362
src/main/resources/templates/web/include/modal.html
Normal file
362
src/main/resources/templates/web/include/modal.html
Normal file
@@ -0,0 +1,362 @@
|
||||
<!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 += ' <button type="button" class="check_bth btn-Success">확인</button>';
|
||||
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 += ' <button type="button" class="check_bth btn-Success">확인</button>';
|
||||
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 += ' <button type="button" class="check_bth btn-Success">확인</button>';
|
||||
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 += ' <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>';
|
||||
|
||||
$("#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 !");
|
||||
}
|
||||
|
||||
// msg를 문자열로 안전하게 변환
|
||||
let safeMsg = (msg != null && msg !== undefined) ? String(msg) : '';
|
||||
let enterMsg = safeMsg.replace(/\r?\n/g, '<br>');
|
||||
|
||||
target.find(".modal-body>.text").html(enterMsg);
|
||||
console.log(target);
|
||||
console.log(tit);
|
||||
console.log(msg);
|
||||
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 = 1040 + (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>
|
||||
5
src/main/resources/templates/web/layout/emptyLayout.html
Normal file
5
src/main/resources/templates/web/layout/emptyLayout.html
Normal file
@@ -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>
|
||||
38
src/main/resources/templates/web/layout/homeLayout.html
Normal file
38
src/main/resources/templates/web/layout/homeLayout.html
Normal file
@@ -0,0 +1,38 @@
|
||||
<!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="/web/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="/web/common/header :: layout_header_type1"></th:block>
|
||||
|
||||
<!--오른쪽영역-->
|
||||
<section class="content_section">
|
||||
<th:block th:replace="/web/common/leftMenu :: layout_leftMenu"></th:block>
|
||||
|
||||
<div class="hospital_wrap">
|
||||
<th:block th:replace="/web/common/leftMenu2 :: layout_leftMenu2"></th:block>
|
||||
|
||||
<th:block layout:fragment="layout_content"></th:block>
|
||||
</div>
|
||||
<th:block th:replace="/web/common/footer :: layout_footer"></th:block>
|
||||
</section>
|
||||
|
||||
<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/web/layout/layout.html
Normal file
16
src/main/resources/templates/web/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="/web/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>
|
||||
16
src/main/resources/templates/web/layout/loginLayout.html
Normal file
16
src/main/resources/templates/web/layout/loginLayout.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="/web/include/head :: 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>
|
||||
32
src/main/resources/templates/web/layout/menuLayout.html
Normal file
32
src/main/resources/templates/web/layout/menuLayout.html
Normal file
@@ -0,0 +1,32 @@
|
||||
<!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="/web/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="cover-bar"></div>
|
||||
|
||||
<div class="project_wrap">
|
||||
<th:block th:replace="/web/common/header :: layout_header_type1"></th:block>
|
||||
|
||||
<th:block layout:fragment="layout_content"></th:block>
|
||||
|
||||
<!-- <th:block th:replace="/web/common/footer :: layout_footer"></th:block> -->
|
||||
|
||||
<!-- <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,38 @@
|
||||
<!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="/web/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="/web/common/header :: layout_header_type1"></th:block>
|
||||
|
||||
<!--오른쪽영역-->
|
||||
<section class="content_section">
|
||||
<th:block th:replace="/web/common/leftMenu :: layout_leftMenu"></th:block>
|
||||
|
||||
<div class="hospital_wrap">
|
||||
<th:block th:replace="/web/common/userLeftMenu2 :: layout_leftMenu2"></th:block>
|
||||
|
||||
<th:block layout:fragment="layout_content"></th:block>
|
||||
</div>
|
||||
<th:block th:replace="/web/common/footer :: layout_footer"></th:block>
|
||||
</section>
|
||||
|
||||
<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>
|
||||
54
src/main/resources/templates/web/login/login.html
Normal file
54
src/main/resources/templates/web/login/login.html
Normal file
@@ -0,0 +1,54 @@
|
||||
<!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/loginLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/web/login.css?v1.1">
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script>
|
||||
</script>
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_content">
|
||||
<body class="text-center">
|
||||
<div class="cover-bar"></div>
|
||||
<!--프로젝트 제일 큰 프레임-->
|
||||
<div class="project_wrap">
|
||||
<div class="content_wrap">
|
||||
<div class="login_wrap">
|
||||
<img src="/image/web/logo.png">
|
||||
|
||||
<div class="form_wrap">
|
||||
<p class="content_name">로그인</p>
|
||||
|
||||
<div class="input_wrap">
|
||||
<label>아이디</label>
|
||||
|
||||
<div class="input_box">
|
||||
<input type="text" id="loginId" placeholder="아이디를 입력하세요." autofocus>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="input_wrap">
|
||||
<label>비밀번호</label>
|
||||
|
||||
<div class="input_box">
|
||||
<input type="password" id="password" placeholder="비밀번호를 입력하세요.">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button id="btnLogin" class="btn login_btn">로그인</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<form id="loginForm" onsubmit="return false;"></form>
|
||||
</body>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/web/login/login.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
20
src/main/resources/templates/web/login/logout.html
Normal file
20
src/main/resources/templates/web/login/logout.html
Normal file
@@ -0,0 +1,20 @@
|
||||
<!DOCTYPE html>
|
||||
<html lagn="ko"
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
|
||||
<th:block th:replace="/web/include/head :: layout_head"></th:block>
|
||||
|
||||
<body>
|
||||
<form method="POST" name="logoutForm"></form>
|
||||
</body>
|
||||
<script>
|
||||
modalEvent.success("", "로그아웃되었습니다." ,function(){
|
||||
let form = document.logoutForm;
|
||||
form.target ='_parent';
|
||||
form.action = '/weblogin/logout.do';
|
||||
form.method = 'POST';
|
||||
form.submit();
|
||||
});
|
||||
</script>
|
||||
</html>
|
||||
@@ -0,0 +1,123 @@
|
||||
<!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/homeLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/web/marketing_talk_detail.css">
|
||||
<link rel="stylesheet" href="/css/web/grid.css?v1.1">
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script src="/js/web/jquery.twbsPagination.js" type="text/javascript"></script>
|
||||
<script>
|
||||
let menuClass = "[[${param.menuClass}]]"==""?"":"[[${param.menuClass}]]";
|
||||
|
||||
let selectUseYn = "[[${selectUseYn}]]"==""?"N":"[[${selectUseYn}]]";
|
||||
let insertUseYn = "[[${insertUseYn}]]"==""?"N":"[[${insertUseYn}]]";
|
||||
let updateUseYn = "[[${updateUseYn}]]"==""?"N":"[[${updateUseYn}]]";
|
||||
let deleteUseYn = "[[${deleteUseYn}]]"==""?"N":"[[${deleteUseYn}]]";
|
||||
let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
|
||||
|
||||
/* 검색 관련 변수 */
|
||||
let kakaoSearchKeywordParam = "[[${param.kakaoSearchKeywordParam}]]";
|
||||
let kakaoSort = "[[${param.kakaoSort}]]";
|
||||
let kakaoDir = "[[${param.kakaoDir}]]";
|
||||
let kakaoStart = "[[${param.kakaoStart}]]"==""?0:"[[${param.kakaoStart}]]";
|
||||
let kakaoLimit = "[[${param.kakaoLimit}]]"==""?100:"[[${param.kakaoLimit}]]";
|
||||
|
||||
let kakaoSearchStartDate = "[[${param.kakaoSearchStartDate}]]";
|
||||
let kakaoSearchEndDate = "[[${param.kakaoSearchEndDate}]]";
|
||||
let kakaoSearchDateType = "[[${param.kakaoSearchDateType}]]"==""?"A":"[[${param.kakaoSearchDateType}]]";
|
||||
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<!-- 센터쪽 -->
|
||||
<div class="center_box">
|
||||
<p class="page_title">알림톡 발송내역</p>
|
||||
<p class="total" id="marketingKakaoTotalCount">0건</p>
|
||||
|
||||
<div class="filter_box">
|
||||
<div class="form_box">
|
||||
<!-- 캘린더input -->
|
||||
<div class="select_box first dropdown">
|
||||
<button class="label" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">기간</button>
|
||||
<input type="hidden" id="kakaoSearchDateType">
|
||||
|
||||
<ul class="select_option_list dropdown-menu">
|
||||
<li id="li_A" class="option_list_item first" >오늘</li>
|
||||
<li id="li_B" class="option_list_item">최근30일</li>
|
||||
<li id="li_C" class="option_list_item">최근90일</li>
|
||||
<li id="li_D" class="option_list_item">이번주</li>
|
||||
<li id="li_E" class="option_list_item">이번달</li>
|
||||
<li id="li_F" class="option_list_item">올해</li>
|
||||
<li id="li_G" class="option_list_item">지난주</li>
|
||||
<li id="li_H" class="option_list_item">지난달</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="calendar_box">
|
||||
<div class="date_box date" id="divKakaoSearchStartDate">
|
||||
<img src="/image/web/calendar.svg" alt="calendar">
|
||||
<input type="date" class="date_picker" id="kakaoSearchStartDate">
|
||||
</div>
|
||||
|
||||
<span class="slash">-</span>
|
||||
|
||||
<div class="date_box date last" id="divKakaoSearchEndDate">
|
||||
<img src="/image/web/calendar.svg" alt="calendar">
|
||||
<input type="date" class="date_picker" id="kakaoSearchEndDate">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--<div class="select_box dropdown">
|
||||
<button class="label" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">카테고리</button>
|
||||
<ul class="select_option_list dropdown-menu" id="">
|
||||
<li class="option_list_item first">카테고리</li>
|
||||
<li class="option_list_item">카테고리</li>
|
||||
</ul>
|
||||
</div>-->
|
||||
|
||||
<div class="select_box last dropdown">
|
||||
<button class="label" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">템플릿</button>
|
||||
<ul class="select_option_list dropdown-menu" id="sel_kakaoTemplate" style="max-height:250px; overflow:auto;">
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- 이름input -->
|
||||
<div class="search_list">
|
||||
<div class="search_box">
|
||||
<img src="/image/web/search_G.svg" alt="search">
|
||||
<input type="text" placeholder="고객명" id="txt_kakaoSearchKeyword">
|
||||
|
||||
<div class="search_list"></div><!-- 검색내역 나오는곳 -->
|
||||
</div>
|
||||
<button class="search_btn" id="searchBtn">조회</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 고객목록 테이블 -->
|
||||
<div id="kakaoGrid" class="table_box ag-theme-balham"></div>
|
||||
|
||||
<!-- 페이지게이션 -->
|
||||
<div class="page_box">
|
||||
<nav aria-label="Page navigation" class="navigation">
|
||||
<ul class="pagination" id="kakaoPagination">
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<form id="kakaoSelectListForm" onsubmit="return false;"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_popup">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/web/ag-grid-community-29.3.5.min.js"></script>
|
||||
<script src="/js/web/marketing/marketingKakaoHistSelectList.js"></script>
|
||||
|
||||
<!--<script src="/js/web/kakao/popup/kakaoInsertPop.js"></script>-->
|
||||
<!--<script src="/js/web/kakao/popup/kakaoUpdatePop.js"></script>-->
|
||||
<!--<script src="/js/web/kakao/popup/kakaoSelectPop.js"></script>-->
|
||||
</th:block>
|
||||
</html>
|
||||
@@ -0,0 +1,113 @@
|
||||
<!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/homeLayout}">
|
||||
<th:block layout:fragment="layout_css">
|
||||
<link rel="stylesheet" href="/css/web/marketing.css">
|
||||
<link rel="stylesheet" href="/css/web/modal_marketing.css">
|
||||
<link rel="stylesheet" href="/css/web/modal_marketing_style.css">
|
||||
<link rel="stylesheet" href="/css/web/grid.css?v1.1">
|
||||
</th:block>
|
||||
|
||||
<th:block layout:fragment="layout_top_script">
|
||||
<script src="/js/web/jquery.twbsPagination.js" type="text/javascript"></script>
|
||||
<script>
|
||||
let menuClass = "[[${param.menuClass}]]"==""?"":"[[${param.menuClass}]]";
|
||||
|
||||
let selectUseYn = "[[${selectUseYn}]]"==""?"N":"[[${selectUseYn}]]";
|
||||
let insertUseYn = "[[${insertUseYn}]]"==""?"N":"[[${insertUseYn}]]";
|
||||
let updateUseYn = "[[${updateUseYn}]]"==""?"N":"[[${updateUseYn}]]";
|
||||
let deleteUseYn = "[[${deleteUseYn}]]"==""?"N":"[[${deleteUseYn}]]";
|
||||
let downloadUseYn = "[[${downloadUseYn}]]"==""?"N":"[[${downloadUseYn}]]";
|
||||
|
||||
/* 검색 관련 변수 */
|
||||
let userSearchKeywordParam = "[[${param.userSearchKeywordParam}]]";
|
||||
let userSort = "[[${param.userSort}]]";
|
||||
let userDir = "[[${param.userDir}]]";
|
||||
let userStart = "[[${param.userStart}]]"==""?0:"[[${param.userStart}]]";
|
||||
let userLimit = "[[${param.userLimit}]]"==""?100:"[[${param.userLimit}]]";
|
||||
|
||||
let userSearchStartDate = "[[${param.userSearchStartDate}]]";
|
||||
let userSearchEndDate = "[[${param.userSearchEndDate}]]";
|
||||
let userSearchDateType = "[[${param.userSearchDateType}]]"==""?"A":"[[${param.userSearchDateType}]]";
|
||||
|
||||
let search_nationalityCode = "[[${param.nationalityCode}]]"??"";
|
||||
let search_nationality = "[[${param.nationality}]]"??"";
|
||||
let search_userTypeCode = "[[${param.userTypeCode}]]"??"";
|
||||
let search_userType = "[[${param.userType}]]"??"";
|
||||
let search_membershipYn = "[[${param.membershipYn}]]"??"";
|
||||
</script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_content">
|
||||
<!-- 센터쪽 -->
|
||||
<div class="center_box">
|
||||
<p class="page_title">알림톡</p>
|
||||
<p class="total" id="marketingKakoTalkTotalCount">0명</p>
|
||||
|
||||
<div class="filter_box">
|
||||
<div class="form_box">
|
||||
<div class="select_box first dropdown">
|
||||
<button class="label" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">고객구분</button>
|
||||
<ul class="select_option_list dropdown-menu" id="userType">
|
||||
<li class="option_list_item">전체</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="select_box dropdown">
|
||||
<button class="label" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">국적</button>
|
||||
<ul class="select_option_list dropdown-menu" id="nationality">
|
||||
<li class="option_list_item">전체</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="select_box dropdown">
|
||||
<button class="label" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">멤버십</button>
|
||||
<ul class="select_option_list dropdown-menu" id="membershipYn">
|
||||
<li class="option_list_item">전체</li>
|
||||
<li class="option_list_item" value="Y">가입</li>
|
||||
<li class="option_list_item" value="N">미가입</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="search_list_box">
|
||||
<div class="search_box">
|
||||
<img src="/image/web/search_G.svg" alt="검색">
|
||||
<input type="text" id="txt_userSearchKeyword" placeholder="고객명, 연락처, 생년월일">
|
||||
|
||||
<div class="search_list"></div><!-- 검색내역 나오는곳 -->
|
||||
</div>
|
||||
<button class="search_btn" id="searchBtn">조회</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="right_btn_box">
|
||||
<p>
|
||||
팝빌 통합 포인트 : <span id="myPopbillPoint">0</span> P
|
||||
</p>
|
||||
<button class="charge_btn" id="popbillPointBtn">팝빌 충전</button>
|
||||
<button class="send_btn" id="sendIntroBtn">알림톡 발송</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 고객목록 테이블 -->
|
||||
<div id="userGrid" class="table_box ag-theme-balham"></div>
|
||||
|
||||
<!-- 페이지게이션 -->
|
||||
<div class="page_box">
|
||||
<nav aria-label="Page navigation" class="navigation">
|
||||
<ul class="pagination" id="userPagination"></ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<form id="marketingKakaoSelectListForm" onsubmit="return false;"></form>
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_popup">
|
||||
</th:block>
|
||||
<th:block layout:fragment="layout_script">
|
||||
<script src="/js/web/ag-grid-community-29.3.5.min.js"></script>
|
||||
<script src="/js/web/marketing/marketingKakaoSelectList.js"></script>
|
||||
|
||||
<script src="/js/web/marketing/popup/marketingKakaoInsertPop.js"></script>
|
||||
</th:block>
|
||||
</html>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user