Compare commits

...

16 Commits

Author SHA1 Message Date
bd091
957652682f cdn url 변경 2025-12-07 19:49:02 +09:00
bd091
75618dad0d 다시 수정 2025-12-02 21:37:59 +09:00
bd091
4f2b9fd2a2 인스타 키 변경 2025-12-02 17:00:00 +09:00
bd091
8b637c0a84 Merge branch 'master' of http://183.98.184.84:3000/admin/madeu_diet_home.git 2025-12-02 16:37:08 +09:00
bd091
ac1ca3020a 의료진 삭제 2025-12-02 16:36:46 +09:00
wntk8
81ff7701b6 구글 태그매니저 추가 2025-11-04 16:11:41 +09:00
bd091
38fa238bc5 퀵메뉴 이벤트 추가 2025-10-27 22:40:11 +09:00
bd091
3e0cdab291 상세페이지 이동시 post > get방식으로 변경 2025-10-25 08:49:02 +09:00
bd091
f935efaa93 원가=할인가 비교 후 할인가만 표시 2025-10-24 22:43:34 +09:00
bd091
9efdac26cb madeu 시그니처 변경 2025-10-24 22:11:47 +09:00
bd091
6bb3ae8f7c 홈페이지 출력순서 변경 및 메인 MADEU시그니처 타이틀 변경 2025-10-24 21:27:48 +09:00
wntk8
b73b3fd3f7 컨텐츠영역 푸터 올라온것 수정 2025-10-24 10:05:27 +09:00
bd091
37664d94ef 이벤트 숨김 2025-10-24 06:48:31 +09:00
bd091
677bd4d818 장비소개 이미지 교체 2025-10-24 06:45:01 +09:00
bd091
76bbfca086 Merge branch 'master' of http://183.98.184.84:3000/admin/madeu_diet_home.git 2025-10-23 19:08:26 +09:00
bd091
c5d4bee27c 팝업 글자 넘침 수정 2025-10-23 18:58:09 +09:00
19 changed files with 90 additions and 67 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

@@ -7,7 +7,7 @@ spring:
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: 17841468400622116
accesstoken: IGAAMzYDUuoLJBZAE04bnBiaHFicnBybGJrTVVYQmVBa0p0WV9XNVRXLUpiV0taTFJFelBBQTZAoeXhxckpLelcwMVAyQ1VMdGhpUUhydWZAnYWpJSXFGeXozcGNMOFFmWGEtTXRxWHFDMUpJRkcycGoxT2o5MlppY09mRWhNVUVxOAZDZD
accesstoken: IGAAMzYDUuoLJBZAFNCckI5TlJrd1Y4NE9VYjFSbXJPSWhwZA28tWmhlanN3ZAlpPSGg2MUxIdGFsYnR3dWw5MUhDeGNZAZAE84ZAHFGdGREb0VORUNsWFB4RWZAEWGxfUnJNNXVLVlhUcHhHNm0xQUxyV0FTX0JDQVZAYTTBzU3RGQ3NpawZDZD

View File

@@ -26,7 +26,7 @@
WHERE A.USE_YN = 'Y'
AND A.CATEGORY_DIV_CD = '02'
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 = '01'
AND A.CATEGORY_NO = #{categoryNo}
ORDER BY ORD_NO
</select>
<!-- 카테고리 상세 조회 -->

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: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 389 KiB

View File

@@ -50,7 +50,7 @@ const cont1Urls = [
// 필요시 추가
];
const bullet1 = ['다이어트약','지방분해주사']
const bullet1 = ['다이어트약','쉬다주사']
const useCont1Loop = bullet1.length > 2; // slidesPerView(1.3)보다 많을 때만 loop
const cont1Swiper = new Swiper('.cont1_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

@@ -29,8 +29,8 @@
<img class="mb" src="/image/main-slide/signature_diet_medicine_20251001.jpg" alt="img">
</div>
<div class="swiper-slide">
<img class="pc" src="/image/main-slide/지방분해주사_20250911.jpg" alt="img">
<img class="mb" src="/image/main-slide/지방분해주사_20250911.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>
@@ -61,12 +61,12 @@
<div class="swiper cont2_swiper">
<div class="swiper-wrapper">
<div class="swiper-slide">
<img class="pc" src="/image/main-slide/울핏_20250911.jpg" alt="img">
<img class="mb" src="/image/main-slide/울핏_20250911.jpg" alt="img">
<img class="pc" src="/image/equip/20251014/울핏.jpg" alt="img">
<img class="mb" src="/image/equip/20251014/울핏.jpg" alt="img">
</div>
<div class="swiper-slide">
<img class="pc" src="/image/main-slide/튠바디_20250911.jpg" alt="img">
<img class="mb" src="/image/main-slide/튠바디_20250911.jpg" alt="img">
<img class="pc" src="/image/equip/20251014/튠바디.jpg" alt="img">
<img class="mb" src="/image/equip/20251014/튠바디.jpg" alt="img">
</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

@@ -17,6 +17,10 @@
window.open('https://pf.kakao.com/_puZExd', '_blank');
}
function moveEvent(){
window.location.href="https://diet.madeu.co.kr/webevent/selectListWebEventIntro.do";
}
// 전화걸기 함수 (모바일에서만 동작)
function makePhoneCall() {
if (isMobileDevice()) {
@@ -76,7 +80,10 @@
</header>
<!-- 퀵메뉴 -->
<div class="quick-menu-simple">
<div class="quick-item" onclick="movePetitCenter()">
<div class="quick-item" onclick="moveEvent()">
<img src="/image/quick_menu/event.png" alt="이벤트">
</div>
<div class="quick-item" onclick="movePetitCenter()">
<img src="/image/quick_menu/petit_center.png" alt="쁘띠센터">
</div>
<!-- 카카오톡 상담 -->

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 = [