index로 변경

This commit is contained in:
pjs
2026-01-19 18:48:39 +09:00
parent 84f062c681
commit c0d026f896
4 changed files with 458 additions and 447 deletions

View File

@@ -1,6 +1,5 @@
package com.madeuhome.common.ctrl; package com.madeuhome.common.ctrl;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -24,12 +23,13 @@ public class MenuController {
String requestURI = request.getRequestURI(); String requestURI = request.getRequestURI();
// 특정 URL 패턴에만 메뉴 추가 // 특정 URL 패턴에만 메뉴 추가
if (requestURI.endsWith("Intro.do") || requestURI.startsWith("/index") ) { /*
* if (requestURI.endsWith("Intro.do") || requestURI.startsWith("/index") ) {
* return menuService.getMenuHierarchy("MAIN"); }
*/
return menuService.getMenuHierarchy("MAIN"); return menuService.getMenuHierarchy("MAIN");
} }
return new ArrayList<>();
}
} }

View File

@@ -5,7 +5,7 @@ import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpSession; import jakarta.servlet.http.HttpSession;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.GetMapping;
@Slf4j @Slf4j
@@ -19,16 +19,16 @@ public class WebHomeController extends ManagerDraftAction{
* @param response * @param response
* @return * @return
*/ */
@RequestMapping(value="/") @GetMapping("/")
public String homeIntro(HttpSession session,HttpServletRequest request) { public String homeIntro(HttpSession session,HttpServletRequest request) {
log.debug("WebHomeController homeIntro START"); log.debug("WebHomeController homeIntro START");
log.debug("WebHomeController homeIntro END"); log.debug("WebHomeController homeIntro END");
return "/intro"; return "/index";
} }
@RequestMapping(value="/index") @GetMapping("/index")
public String homeIndex(HttpSession session,HttpServletRequest request) { public String homeIndex(HttpSession session,HttpServletRequest request) {
log.debug("WebHomeController homeIndex START"); log.debug("WebHomeController homeIndex START");

View File

@@ -1,8 +1,8 @@
* { * {
box-sizing: border-box; box-sizing: border-box;
} }
body { body {
font-family: 'Noto Sans KR', sans-serif; font-family: 'Noto Sans KR', sans-serif;
margin: 0; margin: 0;
background: #fafafa; background: #fafafa;
@@ -10,10 +10,10 @@
height: 100vh; height: 100vh;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
} }
/* Main container */ /* Main container */
.reservation-container { .reservation-container {
display: flex; display: flex;
max-width: 1280px !important; max-width: 1280px !important;
margin: 0 auto; margin: 0 auto;
@@ -21,13 +21,13 @@
height: 100%; height: 100%;
flex: 1; flex: 1;
padding: 20px 0; padding: 20px 0;
margin-top:65px; margin-top: 65px;
} }
.box { .box {
background: #fff; background: #fff;
border-radius: 16px; border-radius: 16px;
box-shadow: 0 2px 8px rgba(0,0,0,0.06); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
padding: 24px 16px; padding: 24px 16px;
flex: 1 1 0; flex: 1 1 0;
min-width: 260px; min-width: 260px;
@@ -35,64 +35,64 @@
flex-direction: column; flex-direction: column;
height: fit-content; height: fit-content;
min-height: 600px; min-height: 600px;
} }
.step-title { .step-title {
color: #b23c3c; color: #b23c3c;
font-weight: 700; font-weight: 700;
font-size: 1.1em; font-size: 1.1em;
margin-bottom: 12px; margin-bottom: 12px;
letter-spacing: 0.02em; letter-spacing: 0.02em;
transition: color 0.3s ease; transition: color 0.3s ease;
} }
.step-title.completed { .step-title.completed {
color: #008000 !important; color: #008000 !important;
} }
/* Service section */ /* Service section */
.service-list { .service-list {
flex: 1; flex: 1;
margin-bottom: 24px; margin-bottom: 24px;
} }
.service-item { .service-item {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
font-size: 1.1em; font-size: 1.1em;
margin-bottom: 10px; margin-bottom: 10px;
} }
.service-item .del { .service-item .del {
cursor: pointer; cursor: pointer;
color: #b23c3c; color: #b23c3c;
margin-left: 8px; margin-left: 8px;
font-size: 1.2em; font-size: 1.2em;
transition: color 0.3s ease, opacity 0.3s ease; transition: color 0.3s ease, opacity 0.3s ease;
} }
.service-item .del:hover { .service-item .del:hover {
color: #ff0000; color: #ff0000;
} }
.service-item .del.disabled { .service-item .del.disabled {
color: #ccc; color: #ccc;
cursor: not-allowed; cursor: not-allowed;
opacity: 0.5; opacity: 0.5;
} }
.service-item .del.disabled:hover { .service-item .del.disabled:hover {
color: #ccc; color: #ccc;
} }
.service-item .price { .service-item .price {
font-weight: bold; font-weight: bold;
color: #b23c3c; color: #b23c3c;
} }
/* Service count indicator */ /* Service count indicator */
.service-count-info { .service-count-info {
font-size: 0.85em; font-size: 0.85em;
color: #888; color: #888;
margin-bottom: 8px; margin-bottom: 8px;
@@ -100,15 +100,15 @@
padding: 4px 8px; padding: 4px 8px;
background: #f8f9fa; background: #f8f9fa;
border-radius: 4px; border-radius: 4px;
} }
.service-count-info.single { .service-count-info.single {
color: #ff8c00; color: #ff8c00;
background: #fff3e0; background: #fff3e0;
border: 1px solid #ffcc80; border: 1px solid #ffcc80;
} }
.total { .total {
border-top: 1px solid #eee; border-top: 1px solid #eee;
margin-top: auto; margin-top: auto;
padding-top: 16px; padding-top: 16px;
@@ -116,50 +116,50 @@
justify-content: space-between; justify-content: space-between;
font-size: 1.1em; font-size: 1.1em;
font-weight: bold; font-weight: bold;
} }
.total .price { .total .price {
color: #b23c3c; color: #b23c3c;
} }
.total small { .total small {
font-weight: normal; font-weight: normal;
color: #888; color: #888;
font-size: 0.9em; font-size: 0.9em;
margin-right: 8px; margin-right: 8px;
} }
/* Calendar section */ /* Calendar section */
.calendar-box { .calendar-box {
margin-bottom: 20px; margin-bottom: 20px;
} }
.calendar-header { .calendar-header {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
gap: 8px; gap: 8px;
margin-bottom: 8px; margin-bottom: 8px;
} }
.calendar-header button { .calendar-header button {
background: none; background: none;
border: none; border: none;
font-size: 1.2em; font-size: 1.2em;
cursor: pointer; cursor: pointer;
color: #b23c3c; color: #b23c3c;
padding: 0 6px; padding: 0 6px;
} }
.calendar-table { .calendar-table {
width: 100%; width: 100%;
border-collapse: collapse; border-collapse: collapse;
text-align: center; text-align: center;
margin-bottom: 8px; margin-bottom: 8px;
} }
.calendar-table th, .calendar-table th,
.calendar-table td { .calendar-table td {
width: 2em; width: 2em;
height: 2em; height: 2em;
padding: 2px; padding: 2px;
@@ -167,42 +167,42 @@
border-radius: 50%; border-radius: 50%;
cursor: pointer; cursor: pointer;
transition: background 0.15s; transition: background 0.15s;
} }
.calendar-table th { .calendar-table th {
color: #b23c3c; color: #b23c3c;
font-weight: 500; font-weight: 500;
background: none; background: none;
} }
.calendar-table td.selected { .calendar-table td.selected {
background: #b23c3c; background: #b23c3c;
color: #fff; color: #fff;
} }
.calendar-table td.today { .calendar-table td.today {
border: 1.5px solid #b23c3c; border: 1.5px solid #b23c3c;
} }
.calendar-table td:not(.selected):hover { .calendar-table td:not(.selected):hover {
background: #f5eaea; background: #f5eaea;
} }
.calendar-table td.disabled { .calendar-table td.disabled {
color: #ccc; color: #ccc;
pointer-events: none; pointer-events: none;
background: none; background: none;
} }
/* Time slots */ /* Time slots */
.time-slots { .time-slots {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
gap: 8px; gap: 8px;
margin-bottom: 12px; margin-bottom: 12px;
} }
.time-btn { .time-btn {
flex: 1 0 30%; flex: 1 0 30%;
min-width: 80px; min-width: 80px;
padding: 8px 0; padding: 8px 0;
@@ -213,40 +213,40 @@
font-size: 1em; font-size: 1em;
cursor: pointer; cursor: pointer;
transition: background 0.15s, color 0.15s; transition: background 0.15s, color 0.15s;
} }
.time-btn.selected, .time-btn.selected,
.time-btn:active { .time-btn:active {
background: #b23c3c; background: #b23c3c;
color: #fff; color: #fff;
} }
.time-btn:disabled { .time-btn:disabled {
color: #ccc; color: #ccc;
border-color: #eee; border-color: #eee;
background: #f5f5f5; background: #f5f5f5;
cursor: not-allowed; cursor: not-allowed;
} }
.person-count { .person-count {
margin-top: 12px; margin-top: 12px;
font-size: 0.98em; font-size: 0.98em;
color: #888; color: #888;
} }
/* Form section */ /* Form section */
.form-group { .form-group {
margin-bottom: 16px; margin-bottom: 16px;
} }
.form-group label { .form-group label {
display: block; display: block;
margin-bottom: 4px; margin-bottom: 4px;
font-weight: 500; font-weight: 500;
} }
.form-group input, .form-group input,
.form-group textarea { .form-group textarea {
width: 100%; width: 100%;
padding: 8px 10px; padding: 8px 10px;
border: 1px solid #ddd; border: 1px solid #ddd;
@@ -254,25 +254,25 @@
font-size: 1em; font-size: 1em;
resize: none; resize: none;
transition: border-color 0.3s ease; transition: border-color 0.3s ease;
} }
.form-group textarea { .form-group textarea {
min-height: 60px; min-height: 60px;
} }
.checkbox-group { .checkbox-group {
display: flex; display: flex;
align-items: center; align-items: center;
margin-bottom: 18px; margin-bottom: 18px;
font-size: 0.98em; font-size: 0.98em;
} }
.checkbox-group input[type="checkbox"] { .checkbox-group input[type="checkbox"] {
margin-right: 8px; margin-right: 8px;
accent-color: #b23c3c; accent-color: #b23c3c;
} }
.submit-btn { .submit-btn {
width: 100%; width: 100%;
padding: 14px 0; padding: 14px 0;
background: #ddd; background: #ddd;
@@ -283,108 +283,122 @@
font-weight: bold; font-weight: bold;
cursor: not-allowed; cursor: not-allowed;
transition: all 0.3s ease; transition: all 0.3s ease;
} }
.submit-btn.step-progress { .submit-btn.step-progress {
background: linear-gradient(45deg, #ddd, #bbb); background: linear-gradient(45deg, #ddd, #bbb);
color: #666; color: #666;
font-size: 0.95em; font-size: 0.95em;
} }
.submit-btn.ready { .submit-btn.ready {
background: #b23c3c; background: #b23c3c;
color: #fff; color: #fff;
cursor: pointer; cursor: pointer;
animation: pulse 2s infinite; animation: pulse 2s infinite;
} }
@keyframes pulse { @keyframes pulse {
0% { transform: scale(1); } 0% { transform: scale(1); }
50% { transform: scale(1.02); } 50% { transform: scale(1.02); }
100% { transform: scale(1); } 100% { transform: scale(1); }
} }
/* Phone message styles (common.js PhoneValidator용) */ /* Phone message styles (common.js PhoneValidator용) */
.phone-message { .phone-message {
font-size: 12px; font-size: 12px;
margin-top: 5px; margin-top: 5px;
padding: 4px 8px; padding: 4px 8px;
border-radius: 4px; border-radius: 4px;
font-weight: 500; font-weight: 500;
transition: all 0.3s ease; transition: all 0.3s ease;
} }
.phone-message.error { .phone-message.error {
color: #ff0000; color: #ff0000;
background-color: #ffebee; background-color: #ffebee;
border: 1px solid #ffcdd2; border: 1px solid #ffcdd2;
} }
.phone-message.warning { .phone-message.warning {
color: #ff8c00; color: #ff8c00;
background-color: #fff3e0; background-color: #fff3e0;
border: 1px solid #ffcc80; border: 1px solid #ffcc80;
} }
.phone-message.success { .phone-message.success {
color: #008000; color: #008000;
background-color: #f1f8e9; background-color: #f1f8e9;
border: 1px solid #c8e6c9; border: 1px solid #c8e6c9;
} }
.phone-message.info { .phone-message.info {
color: #2196f3; color: #2196f3;
background-color: #e3f2fd; background-color: #e3f2fd;
border: 1px solid #90caf9; border: 1px solid #90caf9;
} }
/* Birth date message styles */ /* Birth date message styles */
.birth-date-message { .birth-date-message {
font-size: 12px; font-size: 12px;
margin-top: 5px; margin-top: 5px;
padding: 4px 8px; padding: 4px 8px;
border-radius: 4px; border-radius: 4px;
font-weight: 500; font-weight: 500;
transition: all 0.3s ease; transition: all 0.3s ease;
} }
.birth-date-message.error { .birth-date-message.error {
color: #ff0000; color: #ff0000;
background-color: #ffebee; background-color: #ffebee;
border: 1px solid #ffcdd2; border: 1px solid #ffcdd2;
} }
.birth-date-message.warning { .birth-date-message.warning {
color: #ff8c00; color: #ff8c00;
background-color: #fff3e0; background-color: #fff3e0;
border: 1px solid #ffcc80; border: 1px solid #ffcc80;
} }
.birth-date-message.success { .birth-date-message.success {
color: #008000; color: #008000;
background-color: #f1f8e9; background-color: #f1f8e9;
border: 1px solid #c8e6c9; border: 1px solid #c8e6c9;
} }
.birth-date-message.info { .birth-date-message.info {
color: #2196f3; color: #2196f3;
background-color: #e3f2fd; background-color: #e3f2fd;
border: 1px solid #90caf9; border: 1px solid #90caf9;
} }
/* Responsive Design */ /* Disabled calendar cell - 강화된 스타일 */
@media (max-width: 1199.98px) { .calendar-table td.disabled {
color: #ccc;
cursor: not-allowed;
pointer-events: none;
background: none !important;
}
.calendar-table td.disabled:hover {
background: none !important;
cursor: not-allowed !important;
}
/* Responsive Design */
@media (max-width: 1199.98px) {
.reservation-container { .reservation-container {
max-width: 960px !important; max-width: 960px !important;
gap: 16px; gap: 16px;
padding: 20px 15px; padding: 20px 15px;
} }
.box { .box {
padding: 20px 14px; padding: 20px 14px;
} }
} }
@media (max-width: 991.98px) { @media (max-width: 991.98px) {
.reservation-container { .reservation-container {
max-width: 720px !important; max-width: 720px !important;
flex-direction: column; flex-direction: column;
@@ -392,68 +406,65 @@
height: auto; height: auto;
padding: 20px 15px; padding: 20px 15px;
} }
.box { .box {
min-height: unset; min-height: unset;
min-width: unset; min-width: unset;
} }
}
} @media (max-width: 767.98px) {
@media (max-width: 767.98px) {
.reservation-container { .reservation-container {
max-width: 540px !important; max-width: 540px !important;
padding: 15px; padding: 15px;
gap: 20px; gap: 20px;
} }
.box { .box {
padding: 16px 12px; padding: 16px 12px;
} }
.calendar-table th, .calendar-table th,
.calendar-table td { .calendar-table td {
width: 1.8em; width: 1.8em;
height: 1.8em; height: 1.8em;
} }
.time-btn { .time-btn {
min-width: 70px; min-width: 70px;
font-size: 0.95em; font-size: 0.95em;
} }
} }
@media (max-width: 575.98px) { @media (max-width: 575.98px) {
.reservation-container { .reservation-container {
max-width: 100% !important; max-width: 100% !important;
padding: 10px; padding: 10px;
gap: 16px; gap: 16px;
} }
.box { .box {
padding: 16px 8px; padding: 16px 8px;
} }
.calendar-table th, .calendar-table th,
.calendar-table td { .calendar-table td {
width: 1.5em; width: 1.5em;
height: 1.5em; height: 1.5em;
font-size: 0.9em; font-size: 0.9em;
} }
.time-btn { .time-btn {
min-width: 60px; min-width: 60px;
font-size: 0.9em; font-size: 0.9em;
padding: 6px 0; padding: 6px 0;
} }
.step-title { .step-title {
font-size: 1em; font-size: 1em;
} }
.service-item { .service-item {
font-size: 1em; font-size: 1em;
} }
} }
.calendar-table td.disabled {
color: #ccc;
cursor: not-allowed;
pointer-events: none;
background: none !important;
}
.calendar-table td.disabled:hover {
background: none !important;
cursor: not-allowed !important;
}

View File

@@ -23,7 +23,7 @@
<meta property="og:description" content="설명문구"> <meta property="og:description" content="설명문구">
<!-- 사이트등록및소유확인 --> <!-- 사이트등록및소유확인 -->
<meta name="naver-site-verification" content="" /> <meta name="naver-site-verification" content="8720c03a4463520a0bd0979a3a743ff8ef0d8a03" />
<title>메이드유</title> <title>메이드유</title>