Compare commits

...

13 Commits

Author SHA1 Message Date
bd091
512c4b2458 cdn url변경 2025-12-07 19:48:48 +09:00
bd091
d4dc0cd46c 다시 수정 2025-12-02 21:38:18 +09:00
bd091
32629ea3be 인스타 키 변경 2025-12-02 16:59:47 +09:00
bd091
0f61856d53 의료진 삭제 2025-12-02 16:44:39 +09:00
wntk8
575471f28f 구글 태그매니저 추가 2025-11-04 16:19:29 +09:00
bd091
07dfb40876 퀵메뉴 이벤트 추가 2025-10-27 22:40:34 +09:00
bd091
6076210bfb 상세페이지 이동시 post > get방식으로 변경 2025-10-25 08:49:14 +09:00
bd091
fc00a8edfc 원가=할인가 비교 후 할인가만 표시 2025-10-24 22:43:47 +09:00
bd091
868ccf01b1 메뉴width변경, 홈페이지 출력순서 추가, MADEU 시그니처 사진 전체 변경 등 2025-10-24 21:29:04 +09:00
wntk8
f6792f44d3 컨텐츠영역 푸터 올라온것 수정 2025-10-24 10:05:51 +09:00
bd091
aecac1cade 장비소개 이미지 교체 2025-10-24 06:44:04 +09:00
bd091
6b22974979 Merge branch 'master' of http://183.98.184.84:3000/admin/madeu_petit_home.git 2025-10-23 19:08:19 +09:00
bd091
417054eaf8 팝업 글자 넘침 수정 2025-10-23 18:58:40 +09:00
27 changed files with 106 additions and 86 deletions

View File

@@ -7,7 +7,7 @@ spring:
password: madeu12#$
url:
cdn: http://dcrm.vara.co.kr/cdn/
cdn: https://newcrm.madeu.co.kr/cdn/
old-crm-php: http://crm.madeu.co.kr/add-booking-home.php
madeu:

View File

@@ -2,12 +2,12 @@ spring:
datasource:
hikari:
driver-class-name: org.mariadb.jdbc.Driver
jdbc-url: jdbc:mariadb://vara.iptime.org:3306/madeu
jdbc-url: jdbc:mariadb://183.98.184.84:3306/madeu
username: madeu
password: madeu12#$
password: apdlemdb12#$
url:
cdn: http://crm.vara.co.kr/cdn/
cdn: https://newcrm.madeu.co.kr/cdn/
old-crm-php: http://crm.madeu.co.kr/add-booking-home.php
madeu:

View File

@@ -7,7 +7,7 @@ spring:
password: apdlemdb12#$
url:
cdn: https://crm.vara.co.kr/cdn/
cdn: https://newcrm.madeu.co.kr/cdn/
old-crm-php: http://crm.madeu.co.kr/add-booking-home.php
madeu:

View File

@@ -50,4 +50,4 @@ senderPhoneNumber: 025474711
# Instagram 설정
instagram:
client-id: 17841400162629727
accesstoken: IGAAMzYDUuoLJBZAFBieGZAYWXplcjlkRGZAkenkxbDEtSWp0VDkxZA2VEOGljcndKR2NMWl9FQmNGUVlMTzZAkbWgxd0xjRXJlTjNhanB4VWxIX2tZARnhuZATUycEFoLVZAvbUtQam11blEzbDR6QmpjQVBBSm5wc0JKdnIyc2xxVVRrNAZDZD
accesstoken: IGAAMzYDUuoLJBZAFRLMUV4V3ZA5RTdIQzNvUmdYQXd6RGpMaGgxbTFQWUJlcmpKZAGlFM29CX20tOE9iSGg4Y1hwdVVHcUVXeS1RQ3dMWVluOEdTdTY4UUh2aFVVR0tGTGhGLVMwWDdkakFtbWJtbnFhQkprMmQxcGsxQjJGZA3pUTQZDZD

View File

@@ -26,7 +26,7 @@
WHERE A.USE_YN = 'Y'
AND A.CATEGORY_DIV_CD = '04'
AND A.CATEGORY_NO = #{category_no}
ORDER BY A.REG_DATE DESC
ORDER BY ORD_NO
</select>
<!-- 이벤트안내 상세 조회 -->

View File

@@ -25,6 +25,7 @@
WHERE A.USE_YN = 'Y'
AND A.CATEGORY_DIV_CD = '03'
AND A.CATEGORY_NO = #{categoryNo}
ORDER BY ORD_NO
</select>
<!-- 카테고리 상세 조회 -->

View File

@@ -53,7 +53,7 @@ html { scroll-behavior:smooth; }
/* 세로형 드롭다운 메뉴 - 타이트한 박스, 보더 제거 */
.project_wrap header nav ul.depth1 li ul.depth2 {
width: 160px;
width: 180px;
height: auto;
padding: 8px 0;
position: absolute;

View File

@@ -132,6 +132,10 @@
color: #333;
border-radius: 0;
height: 100%;
line-height:16px;
word-break: keep-all;
overflow: hidden;
text-overflow: clip;
}
.popup .nav.nav-tabs li.active a,
.popup .nav.nav-tabs li[role="presentation"].active a {

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 255 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 234 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 KiB

View File

@@ -54,7 +54,7 @@ const cont1Urls = [
// 필요시 추가
];
const bullet1 = ['레이저리프팅','보톡스','스킨부스터','제모', '필러']
const bullet1 = ['레이저리프팅','쉬다주사(Face)','스컬트라','스킨부스터', '필러']
const useCont1Loop = bullet1.length > 5; // slidesPerView(1.3)보다 많을 때만 loop
const cont1Swiper = new Swiper('.cont1_swiper', {
@@ -106,7 +106,7 @@ const cont2Urls = [
,'https://petit.madeu.co.kr/webservice/selectServiceIntro.do?categoryNo=4' // 다섯 번째 슬라이드 URL
];
const bullet2 = ['써마지','울라','줄기세포', '튠페이스', '티타늄리프팅']
const bullet2 = ['티타늄','써마지','울라', '줄기세포', '튠페이스']
const useCont2Loop = bullet2.length > 5; // slidesPerView(1.3)보다 많을 때만 loop
const cont2Swiper = new Swiper('.cont2_swiper', {

View File

@@ -188,16 +188,17 @@ function fn_RenderServices(services) {
}
let servicesHtml = '';
services.forEach(function(service) {
servicesHtml += `
<div class="service-card" onclick="fn_GoToDetail('${service.CATEGORY_DIV_CD}', '${service.CATEGORY_NO}', '${service.POST_NO}')" style="cursor: pointer;">
<div class="service-title">${service.SERVICE_NM || service.TITLE || '서비스명 없음'}</div>
<div class="service-description">${service.SERVICE_DESC || service.CONTENT || '설명 없음'}</div>
<div class="service-price"><span class="cancel-price">${fn_FormatPrice(service.PRICE)}</span>&nbsp;${fn_FormatPrice(service.DISCOUNT_PRICE)}</div>
</div>
`;
});
services.forEach(function(service) {
servicesHtml += `
<div class="service-card" onclick="fn_GoToDetail('${service.CATEGORY_DIV_CD}', '${service.CATEGORY_NO}', '${service.POST_NO}')" style="cursor: pointer;">
<div class="service-title">${service.SERVICE_NM || service.TITLE || '서비스명 없음'}</div>
<div class="service-description">${service.SERVICE_DESC || service.CONTENT || '명 없음'}</div>
<div class="service-price">
${service.PRICE !== service.DISCOUNT_PRICE ? `<span class="cancel-price">${fn_FormatPrice(service.PRICE)}</span>&nbsp;` : ''}${fn_FormatPrice(service.DISCOUNT_PRICE)}
</div>
</div>
`;
});
servicesGrid.innerHTML = servicesHtml;
}

View File

@@ -25,24 +25,24 @@
<div class="swiper cont1_swiper">
<div class="swiper-wrapper">
<div class="swiper-slide">
<img class="pc" src="/image/web/petit_content_lifting.JPG" alt="img">
<img class="mb" src="/image/web/petit_content_lifting.JPG" alt="img">
<img class="pc" src="/image/signature/20251024/레이저리프팅.jpg" alt="img">
<img class="mb" src="/image/signature/20251024/레이저리프팅.jpg" alt="img">
</div>
<div class="swiper-slide">
<img class="pc" src="/image/web/petit_content_botox.JPG" alt="img">
<img class="mb" src="/image/web/petit_content_botox.JPG" alt="img">
<img class="pc" src="/image/signature/20251024/쉬다주사(Face).jpg" alt="img">
<img class="mb" src="/image/signature/20251024/쉬다주사(Face).jpg" alt="img">
</div>
<div class="swiper-slide">
<img class="pc" src="/image/web/petit_content_booster.JPG" alt="img">
<img class="mb" src="/image/web/petit_content_booster.JPG" alt="img">
<img class="pc" src="/image/signature/20251024/스컬트라.jpg" alt="img">
<img class="mb" src="/image/signature/20251024/스컬트라.jpg" alt="img">
</div>
<div class="swiper-slide">
<img class="pc" src="/image/web/petit_content_waxing.JPG" alt="img">
<img class="mb" src="/image/web/petit_content_waxing.JPG" alt="img">
<img class="pc" src="/image/signature/20251024/스킨부스터.jpg" alt="img">
<img class="mb" src="/image/signature/20251024/스킨부스터.jpg" alt="img">
</div>
<div class="swiper-slide">
<img class="pc" src="/image/web/petit_content_filler.JPG" alt="img">
<img class="mb" src="/image/web/petit_content_filler.JPG" alt="img">
<img class="pc" src="/image/signature/20251024/필러.jpg" alt="img">
<img class="mb" src="/image/signature/20251024/필러.jpg" alt="img">
</div>
</div>
<div class="swiper-pagination cont1_swiper_pagination"></div>
@@ -73,24 +73,24 @@
<div class="swiper cont2_swiper">
<div class="swiper-wrapper">
<div class="swiper-slide">
<img class="pc" src="/image/web/petit_machine_thermage.jpg" alt="img" style="cursor:pointer">
<img class="mb" src="/image/web/petit_machine_thermage.jpg" alt="img" style="cursor:pointer">
<img class="pc" src="/image/equip/20251014/티타늄.jpg" alt="img" style="cursor:pointer">
<img class="mb" src="/image/equip/20251014/티타늄.jpg" alt="img" style="cursor:pointer">
</div>
<div class="swiper-slide">
<img class="pc" src="/image/web/petit_machine_ultherapy.jpg" alt="img" style="cursor:pointer">
<img class="mb" src="/image/web/petit_machine_ultherapy.jpg" alt="img" style="cursor:pointer">
<img class="pc" src="/image/equip/20251014/써마지.jpg" alt="img" style="cursor:pointer">
<img class="mb" src="/image/equip/20251014/써마지.jpg" alt="img" style="cursor:pointer">
</div>
<div class="swiper-slide">
<img class="pc" src="/image/web/petit_machine_stemcell.jpg" alt="img" style="cursor:pointer">
<img class="mb" src="/image/web/petit_machine_stemcell.jpg" alt="img" style="cursor:pointer">
<img class="pc" src="/image/equip/20251014/울쎄라.jpg" alt="img" style="cursor:pointer">
<img class="mb" src="/image/equip/20251014/울쎄라.jpg" alt="img" style="cursor:pointer">
</div>
<div class="swiper-slide">
<img class="pc" src="/image/web/petit_machine_tuneface.jpg" alt="img" style="cursor:pointer">
<img class="mb" src="/image/web/petit_machine_tuneface.jpg" alt="img" style="cursor:pointer">
<img class="pc" src="/image/equip/20251014/줄기세포.jpg" alt="img" style="cursor:pointer">
<img class="mb" src="/image/equip/20251014/줄기세포.jpg" alt="img" style="cursor:pointer">
</div>
<div class="swiper-slide">
<img class="pc" src="/image/web/petit_machine_lifting.jpg" alt="img" style="cursor:pointer">
<img class="mb" src="/image/web/petit_machine_lifting.jpg" alt="img" style="cursor:pointer">
<img class="pc" src="/image/equip/20251014/튠페이스.jpg" alt="img" style="cursor:pointer">
<img class="mb" src="/image/equip/20251014/튠페이스.jpg" alt="img" style="cursor:pointer">
</div>
</div>
<div class="swiper-pagination cont2_swiper_pagination"></div>

View File

@@ -34,9 +34,9 @@
<li>
<img src="/image/web/profile1.jpg" alt="profile"/>
<div class="text_box">
<p class="field">
<!--<p class="field">
<span>비만</span>
</p>
</p>-->
<p class="name">
<span class="name">박재우</span>
대표원장 / <span>Chief Medical Director</span>
@@ -45,14 +45,13 @@
<span>Profile</span><br/>
&#41; 메이드유의원 프랜차이즈 대표원장 <br/>
&#41; 메이드유의원 강남본점 대표원장 <br/>
&#41; 메이드유의원 비만센터 대표원장 <br/>
대한미용외과학회 회원 <br/>
대한미용성형레이저의학회 회원 <br/>
대한비만치료학회 회원
</p>
</div>
</li>
<li>
<!--<li>
<img src="/image/web/profile2.png" alt="profile"/>
<div class="text_box">
<p class="field">
@@ -74,7 +73,7 @@
한국미용성형학회 회원
</p>
</div>
</li>
</li>-->
<!-- <li> 2025.09.03 요구사항으로 인한 주석처리 byPJS
<img src="/image/web/profile3.png" alt="profile"/>
<div class="text_box">
@@ -98,7 +97,7 @@
</p>
</div>
</li> -->
<li>
<!--<li>
<img src="/image/web/profile4.png" alt="profile"/>
<div class="text_box">
<p class="field">
@@ -120,7 +119,7 @@
대한미용성형레이저의학회 회원
</p>
</div>
</li>
</li>-->
</ul>
</div>
</section>

View File

@@ -3,10 +3,21 @@
xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
<head>
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-N4SDGT5N');</script>
<!-- End Google Tag Manager -->
<th:block th:replace="/web/layout/layoutHead :: layoutHead"></th:block>
</head>
<body>
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-N4SDGT5N"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<!-- 상단 스크립트 타임리프 변수 선언 -->
<th:block layout:fragment="layout_top_script"></th:block>

View File

@@ -52,7 +52,9 @@
quickMenu.style.display = '';
}
}
function moveEvent(){
window.location.href="https://petit.madeu.co.kr/webevent/selectListWebEventIntro.do";
}
// 페이지 로드와 리사이즈 이벤트 연결
window.addEventListener('load', toggleQuickMenu);
window.addEventListener('resize', toggleQuickMenu);
@@ -79,7 +81,9 @@
</header>
<!-- 퀵메뉴 -->
<div class="quick-menu-simple">
<div class="quick-item" onclick="moveEvent()">
<img src="/image/quick_menu/event.png" alt="이벤트">
</div>
<!-- 다이어트센터 -->
<div class="quick-item" onclick="moveDietCenter()">
<img src="/image/quick_menu/diet_center.png" alt="다이어트센터">

View File

@@ -28,8 +28,7 @@
.container {
max-width: 1280px;
width: 100%;
height: calc(100vh - 300px); /* 헤더/푸터 공간 확보 */
min-height: calc(100vh - 300px);
height: 100vh; /* 헤더/푸터 공간 확보 */
margin: 0 auto;
box-sizing: border-box;
display: flex;

View File

@@ -411,7 +411,7 @@ const CDN_URL = [[${@environment.getProperty('url.cdn')}]];
<div class="content-wrapper">
<!-- 좌측 사이드바 -->
<aside class="sidebar">
<div class="sidebar-header">이달의 이벤트</div>
<!--<div class="sidebar-header">이벤트</div>-->
<ul class="category-list" id="category-list">
<!-- 카테고리 JS로 렌더링 -->
</ul>
@@ -530,43 +530,44 @@ class EventManager {
});
}
renderEvents() {
const html = this.events.map(event => `
<div class="event-card" data-category-div="${event.categoryDiv}"
data-category-no="${event.categoryNo}" data-post-no="${event.postNo}">
<div class="event-img">
<img src="${event.img}" alt="${event.title}">
</div>
<div class="event-info">
<div class="event-title">${event.title}</div>
<div class="event-desc">${event.desc}</div>
${event.meta ? `<div class="event-meta">${event.meta}</div>` : ''}
<div class="event-price">
<span style="text-decoration:line-through; color:#9ca3af; font-size:0.95em; margin-right:8px;">
${event.price.before.toLocaleString()}
</span>
${event.price.after.toLocaleString()}원 부터
</div>
</div>
</div>
`).join('');
document.getElementById('event-grid').innerHTML = html;
// 카드 클릭 이벤트 추가
document.querySelectorAll('.event-card').forEach(card => {
card.addEventListener('click', () => {
const categoryDiv = card.dataset.categoryDiv;
const categoryNo = card.dataset.categoryNo;
const postNo = card.dataset.postNo;
this.goToDetail(categoryDiv, categoryNo, postNo);
});
});
}
renderEvents() {
const html = this.events.map(event => `
<div class="event-card" data-category-div="${event.categoryDiv}"
data-category-no="${event.categoryNo}" data-post-no="${event.postNo}">
<div class="event-img">
<img src="${event.img}" alt="${event.title}">
</div>
<div class="event-info">
<div class="event-title">${event.title}</div>
${event.meta ? `<div class="event-meta">${event.meta}</div>` : ''}
<div class="event-price">
${event.price.before !== event.price.after
? `<span style="text-decoration:line-through; color:#9ca3af; font-size:0.95em; margin-right:8px;">
${event.price.before.toLocaleString()}
</span>`
: ''}
${event.price.after.toLocaleString()}원 부터
</div>
</div>
</div>
`).join('');
document.getElementById('event-grid').innerHTML = html;
// 카드 클릭 이벤트 추가
document.querySelectorAll('.event-card').forEach(card => {
card.addEventListener('click', () => {
const categoryDiv = card.dataset.categoryDiv;
const categoryNo = card.dataset.categoryNo;
const postNo = card.dataset.postNo;
this.goToDetail(categoryDiv, categoryNo, postNo);
});
});
}
goToDetail(categoryDiv, categoryNo, postNo) {
const form = document.createElement('form');
form.method = 'post';
form.method = 'get';
form.action = '/webevent/selectEventDetailIntro.do';
const fields = [