Files
madeu_diet_home/src/main/resources/templates/web/webevent/makeReservation.html

106 lines
5.1 KiB
HTML
Raw Normal View History

2025-10-18 10:53:16 +09:00
<!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="layoutCss">
2025-12-22 23:20:02 +09:00
<th:block layout:fragment="layoutCss">
<link rel="stylesheet" th:href="@{/css/web/makeReservation.css}" />
</th:block>
2025-10-18 10:53:16 +09:00
</th:block>
<th:block layout:fragment="layout_top_script">
<script th:inline="javascript">
let category_div_cd = [[${CATEGORY_DIV_CD}]];
let category_no = [[${CATEGORY_NO}]];
let post_no = [[${POST_NO}]];
let procedure_id = [[${PROCEDURE_ID}]];
</script>
</th:block>
<th:block layout:fragment="layoutContent">
<div class="reservation-container">
<!-- 좌측: 시술 예약 -->
<div class="box" id="box-service">
<div class="step-title">STEP 01. 이벤트 예약</div>
<div class="service-count-info" id="service-count-info">선택된 시술: 1개</div>
<div class="service-list" id="service-list">
<div class="service-item">
<span>다이어트약처방</span>
<span>
<span style="text-decoration:line-through; color:#bbb; font-size:0.95em; margin-right:6px;">50,000원</span>
<span class="price">50,000원</span>
<span class="del disabled" title="최소 1개의 시술은 필요합니다" onclick="removeService(this)">×</span>
</span>
</div>
</div>
<div class="total">
<span>총 금액 <small>(부가세 별도)</small></span>
<span class="price" id="total-price">50,000원</span>
</div>
<div style="font-size:0.9em; color:#aaa; margin-top:8px;">결제는 내원시 이루어집니다.</div>
</div>
<!-- 가운데: 예약 시간 선택 -->
<div class="box" id="box-calendar">
<div class="step-title" id="step02-title">STEP 02. 예약 시간 선택</div>
<div class="calendar-box">
<div class="calendar-header">
<button id="prev-month" aria-label="이전 달">&lt;</button>
<span id="calendar-title" style="font-weight:600;"></span>
<button id="next-month" aria-label="다음 달">&gt;</button>
</div>
<table class="calendar-table" id="calendar-table">
<!-- JS로 렌더링 -->
</table>
</div>
<div class="time-slots" id="time-slots">
<!-- JS로 렌더링 -->
</div>
<div class="person-count" style="display:none;">예약인원 <span id="person-count">-</span></div>
</div>
<!-- 우측: 고객정보 입력 -->
<div class="box" id="box-info">
<div class="step-title" id="step03-title">STEP 03. 고객정보</div>
<form id="reserve-form" autocomplete="off">
<div class="form-group">
<label for="customer-name">고객명</label>
<input type="text" id="customer-name" name="customer-name" required>
</div>
<div class="form-group">
<label for="birthDate">생년월일 (8자리)</label>
<input type="text" id="birthDate" name="birthDate"
placeholder="예: 19900115 (8자리 숫자만)"
maxlength="8" required>
<!-- BirthDateValidator가 동적 생성하는 메시지 영역 -->
</div>
<div class="form-group">
<label for="customer-phone">연락처</label>
<input type="tel" id="customer-phone" name="customer-phone"
placeholder="고객님의 핸드폰 번호를 입력해 주세요."
required pattern="^01[0-9]{8,9}$" title="올바른 휴대폰 번호를 입력해주세요.">
<!-- 피드백 메시지는 common.js PhoneValidator가 동적 생성 -->
</div>
<div class="form-group">
<label for="customer-req">요청사항</label>
<textarea id="customer-req" name="customer-req"
placeholder="요청사항을 작성해 주세요."></textarea>
</div>
<div class="checkbox-group">
<input type="checkbox" id="agree" required>
<label for="agree">[필수] 서비스 이용 및 예약 신청을 위한 개인정보 제공에 동의</label>
</div>
<button type="submit" class="submit-btn" id="submit-btn" disabled>📅 예약 날짜를 선택해주세요</button>
</form>
</div>
</div>
</th:block>
<th:block layout:fragment="layoutContentScript">
2025-12-22 23:20:02 +09:00
<script defer th:src="@{/js/makeReservation.js}"></script>
2025-10-18 10:53:16 +09:00
</th:block>
</html>