Merge remote-tracking branch 'origin/master'

This commit is contained in:
이경숙
2026-05-06 17:05:25 +09:00
53 changed files with 2375 additions and 813 deletions

View File

@@ -381,7 +381,7 @@ since : 2023.12.19 김세엽 최초 생성
url : '<c:url value="/admin/use/mngr/insertJobUserRegist"/>',
data : params,
success:function(result) {
let mngrInnb = JSON.parse(result.resBody.result);
let mngrInnb = JSON.parse(result.resBody.result).mngrInnb;
$('#backupForm').find('[name=mngrInnb]').val(mngrInnb);
$('#backupForm').find('[name=pageDv]').val('I');

View File

@@ -372,9 +372,8 @@
fn_reflesh_cart_cnt()
/*비밀번호 변경 알림 여부 확인*/
$(document).ready(function () {
/*비밀번호 변경 알림 여부 확인*/
const url = '<c:url value="/sopmal/mbr/selectPasswordChng"/>';
const originalUrl = window.location.href;
let passwordAt = '<%=(String)session.getAttribute("passwordChngDeAt")%>'
@@ -383,6 +382,15 @@
location.href = url + '?originalUrl=' + encodeURIComponent(originalUrl);
}
/*연령확인 여부 확인*/
let ageChked = getCookieValue("ageChk");
if(!ageChked) {
fn_open_modal(
'#ageChkPopupDiv',
'#ageChkPopup',
'/sopmal/main/selectAgeChkPopup'
);
}
})
@@ -398,6 +406,7 @@
}%>
<input type="hidden" id="adscriptMbrId" value="${adscriptMbrId}"/>
<div id="mbrMarktClauseAgreeDiv"></div>
<div id="ageChkPopupDiv"></div>
<script>
@@ -466,6 +475,14 @@
}
//쿠키 값 가져오기
const getCookieValue = function(name) {
let matches = document.cookie.match(
new RegExp('(?:^|; )' + name + '=([^;]*)')
);
return matches ? matches[1] : null;
}
</script>
<!--로딩영역-->

View File

@@ -90,6 +90,9 @@
<%--theme적용--%>
<link rel="stylesheet" type="text/css" href="<c:out value="${sopmallInfo.themaPath}"/>">
<%--font적용--%>
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR&family=Noto+Sans+JP&display=swap" rel="stylesheet">
<%--Web-App연동 스크립트--%>
<script src="/mobile/js/bnft/common/Common_app.js" defer=""></script>
@@ -361,6 +364,8 @@
loadRecentSearches();
passwordChngDeAt();
ageChkAt();
fn_save_mbrdvc_info(${isAuthenticated});
});
@@ -470,6 +475,31 @@
}
}
/*연령확인 여부 확인 */
function ageChkAt() {
let ageChked = getCookieValue("ageChk");
if(!ageChked) {
openModal('confirm_ageChk_alert');
}
}
const fn_ageChk_yes = function() {
closeModal('confirm_ageChk_alert')
document.cookie = "ageChk=true; path=/; max-age=86400";
}
const fn_ageChk_no = function() {
window.location.href = "https://m.search.naver.com/search.naver?query=사케일잔";
}
//쿠키 값 가져오기
const getCookieValue = function(name) {
let matches = document.cookie.match(
new RegExp('(?:^|; )' + name + '=([^;]*)')
);
return matches ? matches[1] : null;
}
// 최근 검색어 저장
function saveSearch(param) {
let searches = JSON.parse(localStorage.getItem('recentSearches')) || [];
@@ -755,6 +785,32 @@
</div>
</div>
<%--연령확인 모달--%>
<div class="microModal microAlert" id="confirm_ageChk_alert" aria-hidden="true" style="font-family: 'Noto Sans JP', 'Noto Sans KR', sans-serif;">
<div class="microModal__overlay" tabindex="-1">
<div class="microModal__container" role="dialog" aria-modal="true" style="width: 350px;">
<div class="microModal__body">
<div class="microModal__top">
<p class="alert-content__text" style="font-size: 20px;">
満20歳以上ですか?<br>
(만20세 이상입니까?)
</p>
<br>
<p class="alert-content__text--sm" style="font-size: 15px;">
20歳未満の飲酒は法律で禁止されています。<br>
(20세 미만의 음주는 법으로 금지되어 있습니다.)
</p>
<br>
</div>
</div>
<div class="microModal__btnContainer">
<button class="microModal__btn microModal__btn-primary" onclick="fn_ageChk_yes();">はい (예)</button>
<button class="microModal__btn" onclick="fn_ageChk_no()">いいえ (아니오)</button>
</div>
</div>
</div>
</div>
<%--cutom 확인 모달--%>
<div class="microModal microAlert" id="custom_confirm_alert" aria-hidden="true" style="position: relative; z-index: 1010;">
<div class="microModal__overlay" tabindex="-1">
@@ -870,7 +926,6 @@
</div>
</div>
</div>
<!-- 햄버거 메뉴 모달 -->
<div class="microModal microFullMenu" id="hamburger-menu" aria-hidden="true">
<div class="microModal__overlay" tabindex="-1">
@@ -885,12 +940,12 @@
<div class="microModal__content">
<div class="fullMenu">
<c:if test="${not isAuthenticated}">
<div class="sub-box">
<div class="fullMenu__top">
<button type="button" class="btn md outline" onclick="fn_move_login();">로그인</button>
<button type="button" class="btn md theme" onclick="location.href='/sopmal/mbr/selectJoinGuidance'; setTopMenuCode(); ">회원가입</button>
<div class="sub-box">
<div class="fullMenu__top">
<button type="button" class="btn md outline" onclick="fn_move_login();">로그인</button>
<button type="button" class="btn md theme" onclick="location.href='/sopmal/mbr/selectJoinGuidance'; setTopMenuCode(); ">회원가입</button>
</div>
</div>
</div>
</c:if>
<div class="sub-box">
<div class="fullMenu__top">
@@ -921,15 +976,15 @@
<div class="member-rank-summary__summary">
<a href="/sopmal/mpage/bnef/selectMlgDtlsInqireForm" class="member-rank-summary__summary-item">
<img src="/mobile/images/icon_member-rank-mileage.png"
alt="">
alt="">
<div class="member-rank-summary__summary-description">
<span class="member-rank-summary__summary-name">마일리지</span>
<p class="member-rank-summary__summary-numberContainer">
<span
class="member-rank-summary__summary-number comma"
id = "hambergerMbrMlgAmt"></span>
class="member-rank-summary__summary-number comma"
id = "hambergerMbrMlgAmt"></span>
<span
class="member-rank-summary__summary-numberUnit">원</span>
class="member-rank-summary__summary-numberUnit">원</span>
</p>
</div>
</a>
@@ -940,7 +995,7 @@
<p class="member-rank-summary__summary-numberContainer">
<span class="member-rank-summary__summary-number comma" id = "hambergerCoupnCnt"></span>
<span
class="member-rank-summary__summary-numberUnit">장</span>
class="member-rank-summary__summary-numberUnit">장</span>
</p>
</div>
</a>
@@ -950,9 +1005,9 @@
<span class="member-rank-summary__summary-name">위시리스트</span>
<p class="member-rank-summary__summary-numberContainer">
<span class="member-rank-summary__summary-number comma"
id = "hambergerWslistCnt"></span>
id = "hambergerWslistCnt"></span>
<span
class="member-rank-summary__summary-numberUnit">개</span>
class="member-rank-summary__summary-numberUnit">개</span>
</p>
</div>
</a>
@@ -968,37 +1023,39 @@
<ul class="side_menu accordion">
<c:if test="${!empty sopmallInfo}">
<c:forEach var="topMenuList" items="${sopmallInfo.menuList}" varStatus="status">
<c:if test="${topMenuList.ctgryDvCd eq '01' && topMenuList.menuExpsrAt eq 'Y'}">
<c:if test="${topMenuList.rnum eq '2'}">
<c:set var="mDpth3Chk" value="N"/>
<li class="isSub list">
<div class="isSubDv">
<a href="<c:out value="${topMenuList.url}"/>" class="depth"><c:out value ="${topMenuList.ctgryNm}"/><em class="visually-hidden">상세내용닫기</em></a>
<a href="<c:out value="${topMenuList.url}"/>" class="moer"></a>
</div>
</c:if>
<c:if test="${'3' eq topMenuList.rnum}">
<!-- 메뉴 하위가 메뉴인 경우-->
<c:if test="${chkUpperMenuCd ne topMenuList.upperCtgryId}">
<c:set var="mDpth3Chk" value="Y"/>
<ul class="view">
</c:if>
<li><a href='<c:out value="${topMenuList.url}"/>'><c:out value ="${topMenuList.ctgryNm}"/></a></li>
</c:if>
<c:if test="${topMenuList.rnum < 4}">
<c:set var="chkUpperMenuCd" value="${topMenuList.upperCtgryId}"/>
</c:if>
</c:if>
<c:if test="${topMenuList.ctgryDvCd eq '01'}">
<c:if test="${'3' eq topMenuList.rnum && '0' eq topMenuList.nextDepth3 && '0' eq topMenuList.nextDepth2}">
<c:if test="${'Y' eq mDpth3Chk}">
</ul>
<c:if test="${topMenuList.gnbExpsrAt eq 'Y'}">
<c:if test="${topMenuList.rnum eq '2'}">
<c:set var="mDpth3Chk" value="N"/>
<li class="isSub list">
<div class="isSubDv">
<a href="<c:out value="${topMenuList.url}"/>" class="depth"><c:out value ="${topMenuList.ctgryNm}"/><em class="visually-hidden">상세내용닫기</em></a>
<a href="<c:out value="${topMenuList.url}"/>" class="moer"></a>
</div>
</c:if>
<c:if test="${topMenuList.rnum eq '3'}">
<!-- 메뉴 하위가 메뉴인 경우-->
<c:if test="${chkUpperMenuCd ne topMenuList.upperCtgryId}">
<c:set var="mDpth3Chk" value="Y"/>
<ul class="view">
</c:if>
<li><a href='<c:out value="${topMenuList.url}"/>'><c:out value ="${topMenuList.ctgryNm}"/></a></li>
</c:if>
<c:if test="${topMenuList.rnum < 4}">
<c:set var="chkUpperMenuCd" value="${topMenuList.upperCtgryId}"/>
</c:if>
</li>
</c:if>
<c:if test="${'2' eq topMenuList.rnum && '0' eq topMenuList.nextDepth3 && '0' eq topMenuList.nextDepth2}">
</li>
<c:if test="${topMenuList.nextDepth3 eq '0' && topMenuList.nextDepth2 eq '0'}">
<c:if test="${topMenuList.rnum eq '2'}">
</li>
</c:if>
<c:if test="${topMenuList.rnum eq '3'}">
<c:if test="${mDpth3Chk eq 'Y'}">
</ul>
</c:if>
</li>
</c:if>
</c:if>
</c:if>
</c:forEach>
@@ -1006,38 +1063,71 @@
</ul>
<!-- 최근 본 상품(SIDE) -->
<div class="recently_side" id = "recentlySite">
<%--<div class="swiper recentlySide-swiper">
<div class="swiper-wrapper" id="recentlySite">
<div class="swiper-slide recentlySide__image">
<a href="">
<img src="/mobile/images/상품이미지01.png" alt="해당 이미지에 대한 설명">
</a>
</div>
<div class="swiper-slide recentlySide__image">
<a href="">
<img src="/mobile/images/상품이미지01.png" alt="해당 이미지에 대한 설명">
</a>
</div>
<div class="swiper-slide recentlySide__image">
<a href="">
<img src="/mobile/images/상품이미지01.png" alt="해당 이미지에 대한 설명">
</a>
</div>
<div class="swiper-slide recentlySide__image">
<a href="">
<img src="/mobile/images/상품이미지01.png" alt="해당 이미지에 대한 설명">
</a>
</div>
<div class="swiper-slide recentlySide__image">
<a href="">
<img src="/mobile/images/상품이미지01.png" alt="해당 이미지에 대한 설명">
</a>
</div>
</div>
<div class="swiper-pagination theme-pagination"></div>
</div>--%>
</div>
</div>
</div>
<div class="sub-box">
<div class="fullMenu__miscLinks">
<h5 class="fullMenu__miscLinks__title">서비스</h5>
<ul class="fullMenu__miscLinks__list">
<li>
<a href="/sopmal/csc/selectCscMainForm" class="fullMenu__miscLinks__link">고객센터</a>
</li>
<c:if test="${sopmallInfo.shopInfo.sopmalCd eq 'NC' && sopmallInfo.shopInfo.sopmalCd eq 'CH'}"><%--뉴트리코어,참다한만--%>
<li><a href="/sopmal/main/selectStrListForm" class="fullMenu__miscLinks__link">매장안내</a></li>
</c:if>
</ul>
</div>
<div class="fullMenu__miscLinks">
<h5 class="fullMenu__miscLinks__title">서비스</h5>
<ul class="fullMenu__miscLinks__list">
<li>
<a href="/sopmal/csc/selectCscMainForm" class="fullMenu__miscLinks__link">고객센터</a>
</li>
<c:if test="${sopmallInfo.shopInfo.sopmalCd eq 'NC' && sopmallInfo.shopInfo.sopmalCd eq 'CH'}"><%--뉴트리코어,참다한만--%>
<li><a href="/sopmal/main/selectStrListForm" class="fullMenu__miscLinks__link">매장안내</a></li>
</c:if>
</ul>
</div>
</div>
<c:if test = "${sopmallInfo.shopInfo.cscTelnbOrdrPosblAt eq 'Y'}">
<div class="sub-box">
<div class="mainNotice__customerContact mainNotice__customerContact--moreInfo">
<i class="icon icon_notice03"></i>
<div class="mainNotice__customerContact__right">
<h4 class="notice__title customer-service">고객센터</h4>
<span class="notice__number"><c:out value="${sopmallInfo.shopInfo.cscTelnb}"/></span>
<p class="notice__paragraph">
<span class="notice__text01"><c:out value="${sopmallInfo.shopInfo.cscWkdayWorkTme}"/></span>
<span class="notice__text02">(<c:out value="${sopmallInfo.shopInfo.cscLunchTme}"/>)</span>
<br>
<span class="notice__text03"><c:out value="${sopmallInfo.shopInfo.cscRstde}"/></span>
</p>
</div>
</div>
</div>
<div class="sub-box">
<div class="mainNotice__customerContact mainNotice__customerContact--moreInfo">
<i class="icon icon_notice03"></i>
<div class="mainNotice__customerContact__right">
<h4 class="notice__title customer-service">고객센터</h4>
<span class="notice__number"><c:out value="${sopmallInfo.shopInfo.cscTelnb}"/></span>
<p class="notice__paragraph">
<span class="notice__text01"><c:out value="${sopmallInfo.shopInfo.cscWkdayWorkTme}"/></span>
<span class="notice__text02">(<c:out value="${sopmallInfo.shopInfo.cscLunchTme}"/>)</span>
<br>
<span class="notice__text03"><c:out value="${sopmallInfo.shopInfo.cscRstde}"/></span>
</p>
</div>
</div>
</div>
</c:if>
</div>
</div>
@@ -1087,6 +1177,7 @@
});
});
</script>
<%--광고스크립트 정보--%>
<input type="hidden" id="adScriptDeviceTy" value="${deviceType}"/>
<% String adscriptMbrId = "";

View File

@@ -31,243 +31,4 @@
<div class="tab-bar__bg">
<div class="tab-bar__bg-fraction"></div>
</div>
</aside>
<!-- 햄버거 메뉴 모달 -->
<div class="microModal microFullMenu" id="hamburger-menu" aria-hidden="true">
<div class="microModal__overlay" tabindex="-1">
<div class="microModal__container" role="dialog" aria-modal="true">
<div class="microModal__body" id = "hambergerModal">
<div class="microModal__top">
<h2 class="microModal__title">
전체메뉴
</h2>
<button type="button" class="microModal__close" onclick="closeModal('hamburger-menu');"></button>
</div>
<div class="microModal__content">
<div class="fullMenu">
<c:if test="${not isAuthenticated}">
<div class="sub-box">
<div class="fullMenu__top">
<button type="button" class="btn md outline" onclick="fn_move_login();">로그인</button>
<button type="button" class="btn md theme" onclick="location.href='/sopmal/mbr/selectJoinGuidance'; setTopMenuCode(); ">회원가입</button>
</div>
</div>
</c:if>
<div class="sub-box">
<div class="fullMenu__top">
<div class="member-rank-summary">
<div class="textBtns">
<a href="/sopmal/ordr/selectSpbk" class="textBtns__btn">장바구니</a>
<c:choose>
<c:when test="${isAuthenticated}"><%--회원일시--%>
<a href="/sopmal/mpage/mbr/selectMpageMainInqire" class="textBtns__btn">마이페이지</a>
<a href="/sopmal/logout" class="textBtns__btn">로그아웃</a>
</c:when>
<c:otherwise><%--비회원일시--%>
<a href="/sopmal/mpage/ordr/selectMbrOrdrListInqire" class="textBtns__btn">주문조회</a>
</c:otherwise>
</c:choose>
</div>
<c:if test = "${isAuthenticated}">
<div class="member-rank-summary__top">
<div class="member-rank-summary__icon" id = "hambergerGradImg"></div>
<a href="/sopmal/mpage/mbr/selectMpageMainInqire" class="member-rank-summary__user">
<span class="member-rank-summary__rank" id = "hambergerGradNm"></span>
<span class="member-rank-summary__name" id = "hambergermbrNm"></span>
</a>
<a class="member-rank-summary__benefit-link" href="/sopmal/mpage/bnef/selectMbrGradInqire">등급별 혜택</a>
</div>
<div class="member-rank-summary__bottom">
<div class="member-rank-summary__summary">
<a href="/sopmal/mpage/bnef/selectMlgDtlsInqireForm" class="member-rank-summary__summary-item">
<img src="/mobile/images/icon_member-rank-mileage.png"
alt="">
<div class="member-rank-summary__summary-description">
<span class="member-rank-summary__summary-name">마일리지</span>
<p class="member-rank-summary__summary-numberContainer">
<span
class="member-rank-summary__summary-number comma"
id = "hambergerMbrMlgAmt"></span>
<span
class="member-rank-summary__summary-numberUnit">원</span>
</p>
</div>
</a>
<a href="/sopmal/mpage/bnef/selectCouponDtlsForm" class="member-rank-summary__summary-item">
<img src="/mobile/images/icon_member-rank-coupon.png" alt="">
<div class="member-rank-summary__summary-description">
<span class="member-rank-summary__summary-name">쿠폰</span>
<p class="member-rank-summary__summary-numberContainer">
<span class="member-rank-summary__summary-number comma" id = "hambergerCoupnCnt"></span>
<span
class="member-rank-summary__summary-numberUnit">장</span>
</p>
</div>
</a>
<a href="/sopmal/mpage/ordr/selectWslistInqireForm" class="member-rank-summary__summary-item">
<img src="/mobile/images/icon_member-rank-wishlist.png" alt="">
<div class="member-rank-summary__summary-description">
<span class="member-rank-summary__summary-name">위시리스트</span>
<p class="member-rank-summary__summary-numberContainer">
<span class="member-rank-summary__summary-number comma"
id = "hambergerWslistCnt"></span>
<span
class="member-rank-summary__summary-numberUnit">개</span>
</p>
</div>
</a>
</div>
</div>
</c:if>
</div>
</div>
</div>
<div class="sub-box">
<div class="menu_navigation_wrap">
<!-- 카테고리 -->
<ul class="side_menu accordion">
<c:if test="${!empty sopmallInfo}">
<c:forEach var="topMenuList" items="${sopmallInfo.menuList}" varStatus="status">
<c:if test="${topMenuList.ctgryDvCd eq '01' && topMenuList.gnbExpsrAt eq 'Y'}">
<c:if test="${topMenuList.rnum eq '2'}">
<li class="isSub list">
<div class="isSubDv">
<a href="<c:out value="${topMenuList.url}"/>" class="depth"><c:out value ="${topMenuList.ctgryNm}"/><em class="visually-hidden">상세내용닫기</em></a>
<a href="<c:out value="${topMenuList.url}"/>" class="moer"></a>
</div>
</c:if>
<c:if test="${'3' eq topMenuList.rnum}">
<!-- 메뉴 하위가 메뉴인 경우-->
<c:if test="${chkUpperMenuCd ne topMenuList.upperCtgryId}">
<ul class="view">
</c:if>
<li><a href='<c:out value="${topMenuList.url}"/>'><c:out value ="${topMenuList.ctgryNm}"/></a></li>
<c:if test="${'0' eq topMenuList.nextDepth3 && '0' eq topMenuList.nextDepth2}">
</ul>
</li>
</c:if>
</c:if>
<c:if test="${topMenuList.rnum < 4}">
<c:set var="chkUpperMenuCd" value="${ topMenuList.upperCtgryId }"/>
</c:if>
</c:if>
</c:forEach>
</c:if>
</ul>
<!-- 최근 본 상품(SIDE) -->
<div class="recently_side" id="recentlySite">
<!-- <div class="swiper recentlySide-swiper"> -->
<!-- <div class="swiper-wrapper" id="recentlySite"> -->
<!-- <div class="swiper-slide recentlySide__image"> -->
<!-- <a href=""> -->
<!-- <img src="/mobile/images/상품이미지01.png" alt="해당 이미지에 대한 설명"> -->
<!-- </a> -->
<!-- </div> -->
<!-- <div class="swiper-slide recentlySide__image"> -->
<!-- <a href=""> -->
<!-- <img src="/mobile/images/상품이미지01.png" alt="해당 이미지에 대한 설명"> -->
<!-- </a> -->
<!-- </div> -->
<!-- <div class="swiper-slide recentlySide__image"> -->
<!-- <a href=""> -->
<!-- <img src="/mobile/images/상품이미지01.png" alt="해당 이미지에 대한 설명"> -->
<!-- </a> -->
<!-- </div> -->
<!-- <div class="swiper-slide recentlySide__image"> -->
<!-- <a href=""> -->
<!-- <img src="/mobile/images/상품이미지01.png" alt="해당 이미지에 대한 설명"> -->
<!-- </a> -->
<!-- </div> -->
<!-- <div class="swiper-slide recentlySide__image"> -->
<!-- <a href=""> -->
<!-- <img src="/mobile/images/상품이미지01.png" alt="해당 이미지에 대한 설명"> -->
<!-- </a> -->
<!-- </div> -->
<!-- </div> -->
<!-- <div class="swiper-pagination theme-pagination"></div> -->
<!-- </div> -->
</div>
</div>
</div>
<div class="sub-box">
<div class="fullMenu__miscLinks">
<h5 class="fullMenu__miscLinks__title">서비스</h5>
<ul class="fullMenu__miscLinks__list">
<li>
<a href="/sopmal/csc/selectCscMainForm" class="fullMenu__miscLinks__link">고객센터</a>
</li>
</ul>
</div>
</div>
<c:if test = "${sopmallInfo.shopInfo.cscTelnbOrdrPosblAt eq 'Y'}">
<div class="sub-box">
<div class="mainNotice__customerContact mainNotice__customerContact--moreInfo">
<i class="icon icon_notice03"></i>
<div class="mainNotice__customerContact__right">
<h4 class="notice__title customer-service">고객센터</h4>
<span class="notice__number"><c:out value="${sopmallInfo.shopInfo.cscTelnb}"/></span>
<p class="notice__paragraph">
<span class="notice__text01"><c:out value="${sopmallInfo.shopInfo.cscWkdayWorkTme}"/></span>
<span class="notice__text02">(<c:out value="${sopmallInfo.shopInfo.cscLunchTme}"/>)</span>
<br>
<span class="notice__text03"><c:out value="${sopmallInfo.shopInfo.cscRstde}"/></span>
</p>
</div>
</div>
</div>
</c:if>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
////햄버거 메뉴 관련 스크립트
// 좌측 메뉴 클릭시 해당 메뉴 보여주기
$('.fullMenu__menu__btn').on('click', function () {
$(this).addClass('current');
$(this).closest('li').siblings().find('.fullMenu__menu__btn').removeClass('current');
var index = $(this).closest('li').index() - 1; // 전체 메뉴 버튼을 뺀 나머지 버튼의 인덱스
$(this).closest('.fullMenu__content').find('.fullMenu__itemSection').eq(index).siblings().hide();
$(this).closest('.fullMenu__content').find('.fullMenu__itemSection').eq(index).show();
});
// 전체 메뉴 클릭시 전체 메뉴 보여주기
$('.fullMenuAll').on('click', function () {
$(this).addClass('current');
$(this).closest('li').siblings().find('.fullMenu__menu__btn').removeClass('current');
$(this).closest('.fullMenu__content').find('.fullMenu__itemSection').show();
});
//
$('.hamburgerTabBtn').on('click', function () {
$('.hamburgerTabBtn').removeClass('active');
$(this).addClass('active');
var index = $(this).closest('li').index();
$('.fullMenu__content').removeClass('active');
$('.fullMenu__content').eq(index).addClass('active');
});
$(document).ready(function(){
MicroModal.init({
disableScroll: true,
awaitCloseAnimation: true,
});
$(".menu_navigation_wrap .depth").on('click', function () {
/*하위레벨 없을 시 페이지 이동*/
if ($(this).closest(".isSub").find(".view").length === 0) {
const href = $(this).attr("href");
location.href = href;
}
});
});
</script>
</aside>

View File

@@ -167,6 +167,7 @@
<c:if test="${ relmList.relmDvCd eq '03'}">
<div class="main-section__container section-3">
<input type="hidden" name="section-ordr" value="${ relmList.ordr }" />
<input type="hidden" name="section-mainSiteInnb" value="${ prevewVO.mainSiteInnb }"/>
<section class="main-section">
<div class="main-section-header" style="margin-bottom: 48px;">
<div class="main-section-title">
@@ -180,7 +181,7 @@
<c:forEach items="${ resultMap.baseCase }" var="baseCase" varStatus="status">
<c:if test="${ baseCase.relmDvCd == '03' && relmList.ordr eq baseCase.sOrdr }">
<li>
<button class="category-type-tab__btn category-type-tab__btn-${ relmList.ordr }" id="category-type-tab__btn-${ relmList.ordr }-${ baseCase.iOrdr }" onclick="fn_product_category_type('${ relmList.ordr }', '${ baseCase.iOrdr }'); return false;">
<button class="category-type-tab__btn category-type-tab__btn-${ relmList.ordr }" id="category-type-tab__btn-${ relmList.ordr }-${ baseCase.iOrdr }" onclick="fn_product_category_type('${ relmList.ordr }', '${ baseCase.iOrdr }', '${ prevewVO.mainSiteInnb }'); return false;">
<c:if test = "${not empty baseCase.filCours}">
<i class="icon icon_category-type-tab01" >
<img src="${cdnurl}${ baseCase.filCours }/${ baseCase.sysFilNm }" onerror="this.src='/pc/images/image_placeholder.png'">
@@ -1594,6 +1595,7 @@
<c:if test="${ relmList.relmDvCd eq '03'}">
<div class="main-section__container section-3">
<input type="hidden" name="section-ordr" value="${ relmList.ordr }" />
<input type="hidden" name="section-mainSiteInnb" value="${ prevewVO.mainSiteInnb }"/>
<section class="main-section">
<div class="main-section-header" style="margin-bottom: 48px;">
<div class="main-section-title">
@@ -1607,7 +1609,7 @@
<c:forEach items="${ resultMap.baseCase }" var="baseCase" varStatus="status">
<c:if test="${ baseCase.relmDvCd == '03' && relmList.ordr eq baseCase.sOrdr }">
<li>
<button class="category-type-tab__btn category-type-tab__btn-${ relmList.ordr }" id="category-type-tab__btn-${ relmList.ordr }-${ baseCase.iOrdr }" onclick="fn_product_category_type('${ relmList.ordr }', '${ baseCase.iOrdr }'); return false;">
<button class="category-type-tab__btn category-type-tab__btn-${ relmList.ordr }" id="category-type-tab__btn-${ relmList.ordr }-${ baseCase.iOrdr }" onclick="fn_product_category_type('${ relmList.ordr }', '${ baseCase.iOrdr }', '${ prevewVO.mainSiteInnb }'); return false;">
<c:if test = "${not empty baseCase.filCours}">
<i class="icon icon_category-type-tab01" >
<img src="${cdnurl}${ baseCase.filCours }/${ baseCase.sysFilNm }" onerror="this.src='/pc/images/image_placeholder.png'">
@@ -2351,6 +2353,129 @@
</div>
</c:if>
<!-- 베스트 리뷰 -->
<c:if test="${ relmList.relmDvCd eq '09'}">
<div class="main-section__container">
<section class="main-section main-section__best-review">
<c:forEach items="${ resultMap.baseCase }" var="baseCase" varStatus="status">
<c:if test="${ baseCase.relmDvCd == '09' && relmList.ordr eq baseCase.sOrdr }">
<div class="main-section-header">
<div class="main-section-title">
<span class="main-section-title__description">${ baseCase.subSj }</span>
<h2 class="main-section-title__title">
${ baseCase.mainSj }
</h2>
</div>
</div>
</c:if>
</c:forEach>
<div class="best-review">
<div class="best-review-slick">
<c:forEach items="${ resultMap.case09 }" var="case09" varStatus="status">
<c:if test="${ relmList.ordr eq case09.sOrdr }">
<div class="best-review__item">
<div class="best-review__review">
<a href="javascript:void(0);" onclick="fn_move_goods_dtl(${case09.goodsInnb});" class="best-review__review_a">
<div class="best-review__review-image">
<input type="hidden" class="npayBbscttSnb" value="${ case09.npayBbscttSnb }"/>
<c:choose>
<c:when test="${ case09.photoRvwAt eq 'Y' }">
<img src="${cdnurl}${ case09.reviwImg }" class="reviwImg" alt="해당 이미지에 대한 설명" onerror="this.src='/pc/images/image_placeholder.png'">
</c:when>
<c:when test="${ case09.photoRvwAt eq 'N' }">
<img src="${cdnurl}${ case09.goodsImgCours }" class="reviwImg" alt="해당 이미지에 대한 설명" onerror="this.src='/pc/images/image_placeholder.png'">
</c:when>
</c:choose>
</div>
<span class="best-review__title">${ case09.sj }
</span>
<div class="best-review__paragraph">
${ case09.cn }
</div>
</a>
</div>
<div class="best-review__product">
<div class="best-review__product-image">
<a href="javascript:void(0);" onclick="fn_move_goods_dtl(${case09.goodsInnb});">
<img src="${cdnurl}${ case09.goodsImgCours }" alt="${case09.goodsNm }" onerror="this.src='/pc/images/image_placeholder.png'">
</a>
</div>
<div class="product-unit-info">
<div class="product-unit-info__inner">
<div class="product-unit-title">
<a href="javascript:void(0);" onclick="fn_move_goods_dtl(${case09.goodsInnb});">${ case09.goodsNm }</a>
</div>
</div>
<div class="product-unit-misc">
<div class="product-unit-rating">
<i class="icon icon_rating-star"></i>
<span class="product-unit-rating__score"><c:out value="${case09.avgEvlScore}" default="0.0"/></span>
</div>
<div class="product-unit-price">
<span class="product-unit-price__original"><fmt:formatNumber value="${case09.cnsmrpric}" pattern="#,###"/>${curUnit}</span>
<span class="product-unit-price__current"><fmt:formatNumber value="${case09.slepric}" pattern="#,###"/>${curUnit}</span>
</div>
</div>
</div>
</div>
</div>
</c:if>
</c:forEach>
</div>
<div class="best-review-slick__btn-container">
<button class="best-review-slick__prev"><i class="icon icon_prev02"></i><span
class="visually-hidden">이전</span></button>
<button class="best-review-slick__next"><i class="icon icon_next02"></i><span
class="visually-hidden">다음</span></button>
</div>
</div>
</section>
</div>
</c:if>
<!-- 매거진 -->
<!-- 매거진 썸네일 이미지 사이즈 500x360 -->
<c:if test="${ relmList.relmDvCd eq '10'}">
<div class="main-section__container magazine">
<section class="main-section main-section__magazine">
<div class="main-section-header">
<div class="main-section-title">
<span class="main-section-title__description">${ relmList.subSj }</span>
<h2 class="main-section-title__title">
${ relmList.mainSj }
</h2>
</div>
</div>
<div class="magazine">
<div class="magazine-slick col-2">
<c:forEach items="${ resultMap.case10 }" var="case10" varStatus="status">
<c:if test="${ relmList.ordr eq case10.sOrdr }">
<div>
<a href="/sopmal/csc/selectBbscttAuth?bbsId=${ case10.bbsId }&bbscttInnb=${ case10.bbscttInnb }">
<img src="${cdnurl}${ case10.reprsntImgSysFilNm }" alt="해당 이미지에 대한 설명" onerror="this.src='/pc/images/image_placeholder.png'">
</a>
</div>
</c:if>
</c:forEach>
</div>
<div class="magazine-slick__btn-container">
<button class="magazine-slick__prev"><i class="icon icon_prev02"></i><span
class="visually-hidden">이전</span></button>
<button class="magazine-slick__next"><i class="icon icon_next02"></i><span
class="visually-hidden">다음</span></button>
</div>
</div>
<a href="/sopmal/csc/selectBbscttAuth?authDv=REDNG&reqUrl=subPage&bbsId=magazine" class="magazine__more-link">더보기
<i class="icon icon_magazine-more-icon"></i>
</a>
</section>
</div>
</c:if>
<!-- 브랜드 및 제품 바로가기 -->
<!-- 좌측이미지 사이즈 영역 620x400 -->
<!-- 우측이미지 2개 사이즈 영역 각각 620x180 -->
@@ -2413,6 +2538,94 @@
</section>
</div>
</c:if>
<!-- 공지사항 -->
<c:if test="${ relmList.relmDvCd eq '13'}">
<div class="main-section__container">
<section class="main-section main-section__notice">
<div class="main-section-header">
<div class="main-section-title">
<h2 class="main-section-title__title">
공지사항
</h2>
</div>
<div class="notice-line">
<i class="icon icon_notice-speaker"></i>
<div class="notice-line-slick">
<c:forEach items="${ resultMap.case13 }" var="case13" varStatus="status">
<c:if test="${ relmList.ordr eq case13.sOrdr }">
<div>
<span class="text">
<a href="/sopmal/csc/selectBbscttAuth?authDv=CM&reqUrl=csc&bbsId=${ case13.bbsId }&bbscttInnb=${ case13.bbscttInnb }">
${ case13.sj }
</a>
</span>
<span class="date">
<c:set var="registDt" value="${fn:replace(case13.registDt, 'T', ' ')}" />
<fmt:parseDate var="registDt" value="${ registDt }" pattern="yyyy-MM-dd HH:mm:ss"/>
<fmt:formatDate value="${registDt}" pattern="yyyy-MM-dd"/>
</span>
</div>
</c:if>
</c:forEach>
</div>
<div class="btn-container">
<button class="notice-line__prev">
<i class="icon icon_notice-chevron"></i>
</button>
<button class="notice-line__next">
<i class="icon icon_notice-chevron2"></i>
</button>
</div>
</div>
</div>
</section>
</div>
</c:if>
<!-- FAQ -->
<c:if test="${ relmList.relmDvCd eq '14'}">
<div class="main-section__container">
<section class="main-section main-section__notice">
<div class="notice">
<c:forEach items="${ resultMap.case14 }" var="case14" varStatus="status">
<c:if test="${ relmList.ordr eq case14.sOrdr }">
<c:if test="${ case14.iOrdr eq '1' }">
<div class="notice__box">
<a href="/sopmal/csc/selectBbscttAuth?authDv=REDNG&reqUrl=csc&bbsId=faq">
<i class="icon icon_notice01"></i>
</a>
<h4 class="notice__title"><a href="">${ case14.itemMainSj }</a></h4>
<span class="notice__description">${ case14.itemSubSj }</span>
</div>
</c:if>
<c:if test="${ case14.iOrdr eq '2' }">
<div class="notice__box">
<a href="/sopmal/csc/selectBbscttAuth?authDv=REDNG&reqUrl=useGuidance&bbsId=use_guidance">
<i class="icon icon_notice02"></i>
</a>
<h4 class="notice__title"><a href="">${ case14.itemMainSj }</a></h4>
<span class="notice__description">${ case14.itemSubSj }</span>
</div>
</c:if>
<c:if test="${ case14.iOrdr eq '3' }">
<div class="notice__box">
<i class="icon icon_notice03"></i>
<h4 class="notice__title customer-service">${ case14.itemMainSj }</h4>
<span class="notice__number">${ case14.cscTelnb }</span>
<p class="notice__paragraph">
<span class="notice__text01">${ case14.cscWkdayWorkTme }</span>
<span class="notice__text02">(${ case14.cscLunchTme })</span>
<br>
<span class="notice__text03">${ case14.cscRstde }</span>
</p>
</div>
</c:if>
</c:if>
</c:forEach>
</div>
</section>
</div>
</c:if>
</c:forEach>
</c:otherwise>
</c:choose>
@@ -2731,7 +2944,8 @@
// 상품 카테고리 탭
$('.section-3').each(function () {
let ordr = $(this).find('input[name="section-ordr"]').val();
fn_product_category_type(ordr, "1");
let mainSiteInnb = $(this).find('input[name="section-mainSiteInnb"]').val();
fn_product_category_type(ordr, "1", mainSiteInnb);
});
@@ -2775,11 +2989,11 @@
}
// 상품 카테고리 탭 클릭 시
const fn_product_category_type = function (ordr, tabNo) {
const fn_product_category_type = function (ordr, tabNo, mainSiteInnb) {
$('.category-type-tab__btn-' + ordr).removeClass('active');
$('#category-type-tab__btn-' + ordr + '-' + tabNo).addClass('active');
fn_select_product_category(ordr, tabNo);
fn_select_product_category(ordr, tabNo, mainSiteInnb);
$('.product-list-type-category-' + ordr).hide();
$('#product-list-type-category-' + ordr + '-' + tabNo).show();
@@ -2787,13 +3001,14 @@
// 상품 카테고리 가져오기
const fn_select_product_category = function (ordr, tabNo) {
const fn_select_product_category = function (ordr, tabNo, mainSiteInnb) {
$.ajax({
type: "post",
url: "/sopmal/main/selectMainSiteDesignCtgryListInqire",
data: {
ordr: ordr,
expsrOrdr: tabNo
expsrOrdr: tabNo,
mainSiteInnb: mainSiteInnb
},
success: function (data) {
let result = JSON.parse(data.resBody.result);

View File

@@ -10,7 +10,7 @@
<%--
Class Name : CmnuseInfoFormR.jsp
Description : 반품교환정보 상세 화면
Description : 배송/반품정보 상세 화면
Modification Information
수정일 수정자 수정내용
@@ -60,7 +60,7 @@
formData.append(item.name, item.value);
});
if(confirm('반품교환정보를 <spring:message code="confirm.common.update"/>')) {
if(confirm('배송/반품정보를 <spring:message code="confirm.common.update"/>')) {
$.ajax({
type : 'post',
url : url,
@@ -98,7 +98,7 @@
<div class="content__inner">
<button class="side-nav__fold"><span class="visually-hidden">좌측메뉴 펼치기/닫기</span></button>
<div class="page-title">
<h2 class="page-title__title">반품교환정보 수정</h2>
<h2 class="page-title__title">배송/반품정보 수정</h2>
<div class="page-title__btn-container">
<button class="btn outline" onclick="fn_move_list();"><spring:message code="button.list"/></button>
<button class="btn primary" onclick="fn_update_cmnuseInfor(${resultMap.cmnuseInfoInnb});"><spring:message code="button.update"/></button>
@@ -107,10 +107,10 @@
<form id="cmnuseInfoUpdForm" name="cmnuseInfoUpdForm">
<section class="content-section">
<h3 class="content-section__inner-title">반품교환정보</h3>
<h3 class="content-section__inner-title">배송/반품정보</h3>
<div class="table-wrapper">
<table class="table">
<caption>반품교환정보명</caption>
<caption>배송/반품정보명</caption>
<colgroup>
<col style="width: 12%;">
<col>
@@ -118,7 +118,7 @@
<tbody>
<tr>
<th>반품교환정보명</th>
<th>배송/반품정보명</th>
<td>
<div class="td-inner">
<div class="word-limit-input">

View File

@@ -9,7 +9,7 @@
<%--
Class Name : CmnuseInfoFormR.jsp
Description : 반품교환정보 등록 화면
Description : 배송/반품정보 등록 화면
Modification Information
수정일 수정자 수정내용
@@ -59,7 +59,7 @@
formData.append(item.name, item.value);
});
if(confirm('반품교환정보를 <spring:message code="confirm.common.insert"/>')) {
if(confirm('배송/반품정보를 <spring:message code="confirm.common.insert"/>')) {
$.ajax({
type : 'post',
url : url,
@@ -98,7 +98,7 @@
<div class="content__inner">
<button class="side-nav__fold"><span class="visually-hidden">좌측메뉴 펼치기/닫기</span></button>
<div class="page-title">
<h2 class="page-title__title">반품교환정보 등록</h2>
<h2 class="page-title__title">배송/반품정보 등록</h2>
<div class="page-title__btn-container">
<button class="btn outline" onclick="fn_move_list();"><spring:message code="button.list"/></button>
<button class="btn primary" onclick="fn_regist_cmnuseInfor();"><spring:message code="button.insert"/></button>
@@ -107,17 +107,17 @@
<form id="cmnuseInfoRegForm" name="cmnuseInfoRegForm">
<section class="content-section">
<h3 class="content-section__inner-title">반품교환정보</h3>
<h3 class="content-section__inner-title">배송/반품정보</h3>
<div class="table-wrapper">
<table class="table">
<caption>반품교환정보명</caption>
<caption>배송/반품정보명</caption>
<colgroup>
<col style="width: 12%;">
<col>
</colgroup>
<tbody>
<tr>
<th>반품교환정보명</th>
<th>배송/반품정보명</th>
<td>
<div class="td-inner">
<div class="word-limit-input">

View File

@@ -8,7 +8,7 @@
<%--
Class Name : GoodsInfoFormR.jsp
Description : 반품교환정보 목록 화면
Description : 배송/반품정보 목록 화면
Modification Information
수정일 수정자 수정내용
@@ -53,7 +53,7 @@
return false;
}
if (confirm('반품교환정보를 <spring:message code="confirm.common.delete"/>')) {
if (confirm('배송/반품정보를 <spring:message code="confirm.common.delete"/>')) {
$.ajax({
type : 'post',
url : '<c:url value="/mngr/goods/cmnuse/deleteCmnuseInfo"/>',
@@ -84,7 +84,7 @@
<div class="content__inner">
<button class="side-nav__fold"><span class="visually-hidden">좌측메뉴 펼치기/닫기</span></button>
<div class="page-title">
<h2 class="page-title__title">반품교환정보 목록</h2>
<h2 class="page-title__title">배송/반품정보 목록</h2>
<div class="page-title__btn-container">
<button class="btn primary" onclick="fn_move_inforRegist();">등록</button>
</div>

View File

@@ -163,14 +163,14 @@
}
// 반품교환정보 선택여부
// 배송/반품정보 선택여부
const cmnuseInfoUptAt = $('#cmnuseInfoUptAt').prop('checked')
if(cmnuseInfoUptAt){
const cmnuseInfoInnb = $('div.cmnuseInfoInnb')
const cmnuseInfoInnbSelect = $('#cmnuseInfoInnb option:selected')
if(fn_is_empty(cmnuseInfoInnbSelect.val())){
cmnuseInfoInnb.focus()
alert('반품교환정보를 선택해 주세요')
alert('배송/반품정보를 선택해 주세요')
return false;
}
}
@@ -295,7 +295,7 @@
formData.append('expsrSetupFwords', expsrSetupFwords)
}
//반품교환정보 선택 여부
//배송/반품정보 선택 여부
fn_create_input('hidden', "cmnuseInfoUptAt", $('#cmnuseInfoUptAt').prop('checked')?'Y':'N', hiddenForm);
//배송일 선택 여부
fn_create_input('hidden', "dlvyGroupUptAt", $('#dlvyGroupUptAt').prop('checked')?'Y':'N', hiddenForm);
@@ -553,7 +553,7 @@
<%-- <a href="#section06" class="content-tab__scroll-btn">상품 사진</a>--%>
<%-- <a href="#section07" class="content-tab__scroll-btn">상세 설명</a>--%>
<%-- <a href="#section08" class="content-tab__scroll-btn">모바일용 상세 설명</a>--%>
<a href="#section09" class="content-tab__scroll-btn">반품교환정보</a>
<a href="#section09" class="content-tab__scroll-btn">배송/반품정보</a>
<a href="#section10" class="content-tab__scroll-btn">배송</a>
<a href="#section11" class="content-tab__scroll-btn">입점 마케팅</a>
<%-- <a href="#section13" class="content-tab__scroll-btn">추천 상품</a>--%>
@@ -893,13 +893,13 @@
</section>
<section id="section09" class="content-section content-scroll-detect content-fold">
<div class="content-fold__header">
<h3 class="content-section__title">반품교환정보</h3>
<h3 class="content-section__title">배송/반품정보</h3>
<button class="content-fold__btn"><span class="visually-hidden">접기</span></button>
</div>
<div class="content-fold__content">
<div class="table-wrapper">
<table class="table">
<caption>반품교환정보</caption>
<caption>배송/반품정보</caption>
<colgroup>
<col style="width: 12%;">
<col style="width: 44%;">
@@ -909,7 +909,7 @@
<tr>
<th>
<div class="b-checkbox-container inner">
반품교환정보
배송/반품정보
<label class="b-checkbox checkbox">
<input type="checkbox" id="cmnuseInfoUptAt">
<span class="check"></span>
@@ -920,7 +920,7 @@
<td colspan="2">
<div class="td-inner">
<div class="select-box">
<select title="반품교환정보" id="cmnuseInfoInnb" class="cmnuseInfoInnb" name="cmnuseInfoInnb">
<select title="배송/반품정보" id="cmnuseInfoInnb" class="cmnuseInfoInnb" name="cmnuseInfoInnb">
<option value="">선택</option>
<c:forEach var="infoList" items="${ resultMap.infoList }" varStatus="">
<option value="${ infoList.cmnuseInfoInnb }" >${ infoList.cmnuseInfoSj }</option>
@@ -932,7 +932,7 @@
</td>
</tr>
<%-- <tr>--%>
<%-- <th>반품교환정보 설명</th>--%>
<%-- <th>배송/반품정보 설명</th>--%>
<%-- <td colspan="2">--%>
<%--&lt;%&ndash; <div class="td-inner" readonly="">&ndash;%&gt;--%>
<%--&lt;%&ndash; <textarea class="textarea" title="에디터 입력" cols="30" id="cmnuseInfoCn"&ndash;%&gt;--%>

View File

@@ -35,7 +35,7 @@
const sopmalCd = $('#sopmalCd').val()
fn_create_ckeditor('#goodsDc', sopmalCd); //상세 설명 > 상품 설명 ck에디터 적용
fn_create_ckeditor('#mblGoodsDc', sopmalCd); // 모바일용 상세 설명 > 모바일용 상품 설명 ck에디터 적용
// fn_create_ckeditor('#cmnuseInfoCn', sopmalCd); // 반품교환정보 상세 설명 > ck에디터 적용
// fn_create_ckeditor('#cmnuseInfoCn', sopmalCd); // 배송/반품정보 상세 설명 > ck에디터 적용
fn_ctrl_disable(['.purchsQy']) //구매 수량 초기 disable처리
/** 구매대상자 제한 버튼 활성화 여부 이벤트 */
@@ -771,12 +771,12 @@
return false;
}
// 반품교환정보 선택여부
// 배송/반품정보 선택여부
const cmnuseInfoInnb = $('div.cmnuseInfoInnb')
const cmnuseInfoInnbSelect = $('#cmnuseInfoInnb option:selected')
if(fn_is_empty(cmnuseInfoInnbSelect.val())){
cmnuseInfoInnb.focus()
alert('반품교환정보를 선택해 주세요')
alert('배송/반품정보를 선택해 주세요')
return false;
}
@@ -1173,7 +1173,7 @@
document.body.appendChild(hiddenForm);
//상세 설명 > 반품교환정보 설명 get_editor_data
//상세 설명 > 배송/반품정보 설명 get_editor_data
// let cmnuseInfoCn = fn_get_editor_data('#cmnuseInfoCn');
// $('#cmnuseInfoCn').val(cmnuseInfoCn);
@@ -2387,7 +2387,7 @@
<a href="#section06" class="content-tab__scroll-btn">상품 사진</a>
<a href="#section07" class="content-tab__scroll-btn">상세 설명</a>
<a href="#section08" class="content-tab__scroll-btn">모바일용 <br/> 상세 설명</a>
<a href="#section09" class="content-tab__scroll-btn">반품교환정보</a>
<a href="#section09" class="content-tab__scroll-btn">배송/반품정보</a>
<a href="#section10" class="content-tab__scroll-btn">배송</a>
<a href="#section11" class="content-tab__scroll-btn">입점 마케팅</a>
<a href="#section13" class="content-tab__scroll-btn">함께하면 <br/> 좋은 상품</a>
@@ -3698,13 +3698,13 @@
</section>
<section id="section09" class="content-section content-scroll-detect content-fold">
<div class="content-fold__header">
<h3 class="content-section__title">반품교환정보</h3>
<h3 class="content-section__title">배송/반품정보</h3>
<button class="content-fold__btn"><span class="visually-hidden">접기</span></button>
</div>
<div class="content-fold__content">
<div class="table-wrapper">
<table class="table">
<caption>반품교환정보</caption>
<caption>배송/반품정보</caption>
<colgroup>
<col style="width: 12%;">
<col style="width: 44%;">
@@ -3712,11 +3712,11 @@
</colgroup>
<tbody>
<tr>
<th>반품교환정보 선택<span class="red-7">*</span></th>
<th>배송/반품정보 선택<span class="red-7">*</span></th>
<td colspan="2">
<div class="td-inner">
<div class="select-box">
<select title="반품교환정보" id="cmnuseInfoInnb" class="cmnuseInfoInnb" name="cmnuseInfoInnb">
<select title="배송/반품정보" id="cmnuseInfoInnb" class="cmnuseInfoInnb" name="cmnuseInfoInnb">
<option value="">선택</option>
<c:forEach var="infoList" items="${ resultMap.infoList }" varStatus="">
<option value="${ infoList.cmnuseInfoInnb }" >${ infoList.cmnuseInfoSj }</option>
@@ -3728,7 +3728,7 @@
</td>
</tr>
<%-- <tr>--%>
<%-- <th>반품교환정보 설명</th>--%>
<%-- <th>배송/반품정보 설명</th>--%>
<%-- <td colspan="2">--%>
<%--&lt;%&ndash; <div class="td-inner" readonly="">&ndash;%&gt;--%>
<%--&lt;%&ndash; <textarea class="textarea" title="에디터 입력" cols="30" id="cmnuseInfoCn"&ndash;%&gt;--%>

View File

@@ -66,7 +66,7 @@
const sopmalCd = $('#sopmalCd').val()
fn_create_ckeditor('#goodsDc', sopmalCd); //상세 설명 > 상품 설명 ck에디터 적용
fn_create_ckeditor('#mblGoodsDc', sopmalCd); // 모바일용 상세 설명 > 모바일용 상품 설명 ck에디터 적용
// fn_create_ckeditor('#cmnuseInfoCn', sopmalCd); // 반품교환정보 상세 설명 > ck에디터 적용
// fn_create_ckeditor('#cmnuseInfoCn', sopmalCd); // 배송/반품정보 상세 설명 > ck에디터 적용
/** 구매대상자 제한 버튼 활성화 여부 이벤트 */
$('#r-18').click(function () {
@@ -825,12 +825,12 @@
return false;
}
// 반품교환정보 선택여부
// 배송/반품정보 선택여부
const cmnuseInfoInnb = $('div.cmnuseInfoInnb')
const cmnuseInfoInnbSelect = $('#cmnuseInfoInnb option:selected')
if(fn_is_empty(cmnuseInfoInnbSelect.val())){
cmnuseInfoInnb.focus()
alert('반품교환정보를 선택해 주세요')
alert('배송/반품정보를 선택해 주세요')
return false;
}
@@ -1228,7 +1228,7 @@
document.body.appendChild(hiddenForm);
//상세 설명 > 반품교환정보 설명 get_editor_data
//상세 설명 > 배송/반품정보 설명 get_editor_data
// let cmnuseInfoCn = fn_get_editor_data('#cmnuseInfoCn');
// $('#cmnuseInfoCn').val(cmnuseInfoCn);
@@ -2517,7 +2517,7 @@
<a href="#section06" class="content-tab__scroll-btn">상품 사진</a>
<a href="#section07" class="content-tab__scroll-btn">상세 설명</a>
<a href="#section08" class="content-tab__scroll-btn">모바일용 <br/> 상세 설명</a>
<a href="#section09" class="content-tab__scroll-btn">반품교환정보</a>
<a href="#section09" class="content-tab__scroll-btn">배송/반품정보</a>
<a href="#section10" class="content-tab__scroll-btn">배송</a>
<a href="#section11" class="content-tab__scroll-btn">입점 마케팅</a>
<a href="#section13" class="content-tab__scroll-btn">함께하면 <br/> 좋은 상품</a>
@@ -4403,14 +4403,14 @@
</section>
<section id="section09" class="content-section content-scroll-detect content-fold">
<div class="content-fold__header">
<h3 class="content-section__title">반품교환정보</h3>
<h3 class="content-section__title">배송/반품정보</h3>
<button class="content-fold__btn"><span class="visually-hidden">접기</span></button>
<%-- <button class="btn primary btn-light" id="cmnuseInfoInnb_update" name="btn_update_EtcInfo">반품교환정보 수정</button>--%>
<%-- <button class="btn primary btn-light" id="cmnuseInfoInnb_update" name="btn_update_EtcInfo">배송/반품정보 수정</button>--%>
</div>
<div class="content-fold__content">
<div class="table-wrapper">
<table class="table">
<caption>반품교환정보</caption>
<caption>배송/반품정보</caption>
<colgroup>
<col style="width: 12%;">
<col style="width: 44%;">
@@ -4418,11 +4418,11 @@
</colgroup>
<tbody>
<tr>
<th>반품교환정보 선택<span class="red-7">*</span></th>
<th>배송/반품정보 선택<span class="red-7">*</span></th>
<td colspan="2">
<div class="td-inner">
<div class="select-box">
<select title="반품교환정보" id="cmnuseInfoInnb" class="cmnuseInfoInnb" name="cmnuseInfoInnb">
<select title="배송/반품정보" id="cmnuseInfoInnb" class="cmnuseInfoInnb" name="cmnuseInfoInnb">
<option value="" >선택</option>
<c:forEach var="infoList" items="${ resultMap.infoList }" varStatus="">
<option value="${ infoList.cmnuseInfoInnb }" <c:if test="${infoList.cmnuseInfoInnb eq resultMap.goodsDtl.cmnuseInfoInnb }"> selected </c:if> >${ infoList.cmnuseInfoSj } </option>
@@ -4434,7 +4434,7 @@
</td>
</tr>
<%-- <tr>--%>
<%-- <th>반품교환정보 설명</th>--%>
<%-- <th>배송/반품정보 설명</th>--%>
<%-- <td colspan="2">--%>
<%-- <div class="ck-content">--%>
<%-- <c:forEach var="infoList" items="${ resultMap.infoList }" varStatus="">--%>

View File

@@ -93,7 +93,7 @@
const sopmalCd = $('#sopmalCd').val()
fn_create_ckeditor('#goodsDc', sopmalCd); //상세 설명 > 상품 설명 ck에디터 적용
fn_create_ckeditor('#mblGoodsDc', sopmalCd); // 모바일용 상세 설명 > 모바일용 상품 설명 ck에디터 적용
// fn_create_ckeditor('#cmnuseInfoCn', sopmalCd); // 반품교환정보 상세 설명 > ck에디터 적용
// fn_create_ckeditor('#cmnuseInfoCn', sopmalCd); // 배송/반품정보 상세 설명 > ck에디터 적용
/** 구매대상자 제한 버튼 활성화 여부 이벤트 */
$('#r-18').click(function () {
@@ -1998,12 +1998,12 @@
}
// 반품교환정보 선택여부
// 배송/반품정보 선택여부
const cmnuseInfoInnb = $('div.cmnuseInfoInnb')
const cmnuseInfoInnbSelect = $('#cmnuseInfoInnb option:selected')
if(fn_is_empty(cmnuseInfoInnbSelect.val())){
cmnuseInfoInnb.focus()
alert('반품교환정보를 선택해 주세요')
alert('배송/반품정보를 선택해 주세요')
return false;
}
@@ -2750,7 +2750,7 @@
const cmnuseInfoInnbSelect = $('#cmnuseInfoInnb option:selected')
if(fn_is_empty(cmnuseInfoInnbSelect.val())){
cmnuseInfoInnb.focus()
alert('반품교환정보를 선택해 주세요')
alert('배송/반품정보를 선택해 주세요')
return false;
}
}
@@ -2770,7 +2770,7 @@
fn_create_input('hidden', 'mblGoodsDc',$('#mblGoodsDc').val(), hiddenForm)
//반품교환정보
//배송/반품정보
fn_create_input('hidden', 'cmnuseInfoInnb',$('#cmnuseInfoInnb option:selected').val(), hiddenForm)
//배송그룹
@@ -2805,7 +2805,7 @@
break;
case 'mblGoodsDc_update': targetGubun = '모바일용 상세 설명'; sectionNo = '08';
break;
case 'cmnuseInfoInnb_update': targetGubun = '반품교환정보'; sectionNo = '09';
case 'cmnuseInfoInnb_update': targetGubun = '배송/반품정보'; sectionNo = '09';
break;
case 'dlvyGroupInnb_update': targetGubun = '배송'; sectionNo = '10';
break;
@@ -2960,7 +2960,7 @@
<a href="#section06" class="content-tab__scroll-btn">상품 사진</a>
<a href="#section07" class="content-tab__scroll-btn">상세 설명</a>
<a href="#section08" class="content-tab__scroll-btn">모바일용 <br/> 상세 설명</a>
<a href="#section09" class="content-tab__scroll-btn">반품교환정보</a>
<a href="#section09" class="content-tab__scroll-btn">배송/반품정보</a>
<a href="#section10" class="content-tab__scroll-btn">배송</a>
<a href="#section11" class="content-tab__scroll-btn">입점 마케팅</a>
<a href="#section13" class="content-tab__scroll-btn">함께하면 <br/> 좋은 상품</a>
@@ -4881,14 +4881,14 @@
</section>
<section id="section09" class="content-section content-scroll-detect content-fold">
<div class="content-fold__header">
<h3 class="content-section__title">반품교환정보</h3>
<h3 class="content-section__title">배송/반품정보</h3>
<button class="content-fold__btn"><span class="visually-hidden">접기</span></button>
<button class="btn primary btn-light cmnuseInfo" id="cmnuseInfoInnb_update" name="btn_update_EtcInfo">반품교환정보 수정</button>
<button class="btn primary btn-light cmnuseInfo" id="cmnuseInfoInnb_update" name="btn_update_EtcInfo">배송/반품정보 수정</button>
</div>
<div class="content-fold__content">
<div class="table-wrapper">
<table class="table">
<caption>반품교환정보</caption>
<caption>배송/반품정보</caption>
<colgroup>
<col style="width: 12%;">
<col style="width: 44%;">
@@ -4896,11 +4896,11 @@
</colgroup>
<tbody>
<tr>
<th>반품교환정보 선택<span class="red-7">*</span></th>
<th>배송/반품정보 선택<span class="red-7">*</span></th>
<td colspan="2">
<div class="td-inner">
<div class="select-box">
<select title="반품교환정보" id="cmnuseInfoInnb" class="cmnuseInfoInnb" name="cmnuseInfoInnb">
<select title="배송/반품정보" id="cmnuseInfoInnb" class="cmnuseInfoInnb" name="cmnuseInfoInnb">
<option value="" >선택</option>
<c:forEach var="infoList" items="${ resultMap.infoList }" varStatus="">
<option value="${ infoList.cmnuseInfoInnb }" <c:if test="${infoList.cmnuseInfoInnb eq resultMap.goodsDtl.cmnuseInfoInnb }"> selected </c:if> >${ infoList.cmnuseInfoSj } </option>
@@ -4912,7 +4912,7 @@
</td>
</tr>
<%-- <tr>--%>
<%-- <th>반품교환정보 설명</th>--%>
<%-- <th>배송/반품정보 설명</th>--%>
<%-- <td colspan="2">--%>
<%-- <div class="ck-content">--%>
<%-- <c:forEach var="infoList" items="${ resultMap.infoList }" varStatus="">--%>

View File

@@ -33,6 +33,9 @@
$(this).val(input.replace(/[^0-9]/g, "").replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,"));
});
//실판매가 세팅
fn_cal_selpric();
const expsrSetTable = document.getElementById('expsrSet');
//노출예약 체크되어있을 경우 enable 처리
if($("input[name='expsrDvCd']:checked").val() ==='03'){
@@ -542,7 +545,6 @@
<input type="hidden" id="delImg" name="delImg" value="">
<input type="hidden" id="expsrBgnDt" name="expsrBgnDt" value="<c:if test='${resultMap.subsvcDtl != null}'>${resultMap.subsvcDtl.expsrBgnDt}</c:if>">
<input type="hidden" id="expsrEndDt" name="expsrEndDt" value="<c:if test='${resultMap.subsvcDtl != null}'>${resultMap.subsvcDtl.expsrBgnDt}</c:if>">
<input type="hidden" id="usefulInvntryQy" name="usefulInvntryQy" value="<c:if test='${resultMap.subsvcDtl != null}'>${resultMap.subsvcDtl.usefulInvntryQy}</c:if>">
<spring:eval expression="@environment.getProperty('spring.servlet.multipart.max-file-size')" var="maxFileSize"/>
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.extensions.images')" var="acceptFileExtensions"/>
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.cdnurl')" var="cdnurl"/>
@@ -655,7 +657,7 @@
<th>실판매가<span class="red-7">*</span></th>
<td>
<div class="td-inner">
<input class="input-text sm number text-right allow-zero" type="text" title="실판매가" id="selpric" name="selpric" maxlength="11" value="<c:if test='${resultMap.subsvcDtl != null}'>${resultMap.subsvcDtl.selpric}</c:if>" readonly> 円(엔)
<input class="input-text sm number text-right allow-zero" type="text" title="실판매가" id="selpric" name="selpric" maxlength="11" required readonly> 円(엔)
</div>
</td>
</tr>
@@ -675,9 +677,9 @@
<caption>구독설정</caption>
<colgroup>
<col style="width: 12%;">
<col>
<col style="width: 38%;">
<col style="width: 12%;">
<col>
<col style="width: 38%;">
</colgroup>
<tbody>
<tr>
@@ -696,7 +698,7 @@
</tr>
<tr>
<th>판매 상태</th>
<td colspan="2">
<td>
<div class="td-inner">
<div class="custom-radio-container">
<c:forEach items="${resultMap.subsvcSttusList}" var="subsvcSttus" varStatus="status">
@@ -709,6 +711,12 @@
</div>
</div>
</td>
<th>판매수량</th>
<td>
<div class="td-inner">
<input class="input-text sm text-right" type="text" title="판매재고수량" id="usefulInvntryQy" name="usefulInvntryQy" value="0" readonly>
</div>
</td>
</tr>
<tr>
<th>노출 여부</th>

View File

@@ -372,6 +372,23 @@
!confirm("예상 마케팅 대상은 0명입니다 적용하시겠습니까?")) {
return false;
}
if ($("#srchBtn").attr("srchAt") === 'Y') {
let params = $('#mbrSrchForm').serialize();
$("#cndChngAt").val("N");
$.ajax({
type: 'post',
url: '<c:url value="/mngr/mbr/selectMarketingTrgetSrchPopupInqire"/>',
data: params,
success: function (data) {
data = JSON.parse(data.resBody.result);
let tot = data.cnt;
/*마케팅 대상 화면, 부모 화면 텍스트, value 제어*/
$(".srchMarketingTrgetCnt").text(fn_format_comma(tot));
$("#marketingTrgetInfo").val(data);
}
});
}
fn_close_modal("marketing-trget-search");
}
}

View File

@@ -10,6 +10,7 @@
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
<spring:eval expression="@environment.getProperty('currency-unit.default')" var="curUnit"/>
<spring:eval expression="@environment.getProperty('currency-unit.KR')" var="krUnit"/>
<script>
$(document).ready(function(){
@@ -92,6 +93,7 @@
{cd:'99', nm:'gray'} // 결제실패
];
var curUnit = '${curUnit}';
var krUnit = '${krUnit}';
/* ********************************************************
* 초기 설정
@@ -1217,7 +1219,7 @@
detail += ' </div>';
detail += ' <span class="sum-area__sign">=</span>';
detail += ' <div class="sum-area__item">';
detail += ' <div class="sum-area__title red-7">총 결제금액 ' + (tot.setleAmt).toLocaleString() + curUnit + '</div>';
detail += ' <div class="sum-area__title red-7">총 결제금액 ' + (tot.setleAmt).toLocaleString() + curUnit + ' / ' + (tot.wonRlSetleAmt).toLocaleString() + krUnit + '</div>';
detail += ' </div>';
detail += ' </div>';
detail += ' </div>';

View File

@@ -20,32 +20,7 @@
$('select').niceSelect();
fn_set_date();
});
const fn_coupon_excel_download = function(couponSndngInnb) {
var form = $('#listForm');
form.find('input[name="couponSndngInnb"]').remove();
form.append($('<input/>', {
type: 'hidden',
name: 'couponSndngInnb',
value: couponSndngInnb
}));
form.serialize();
form.attr('method', 'post');
form.attr('action', '<c:url value="/mngr/promtn/coupon/selectCouponListExcelDwld"/>');
form.submit();
}
</script>
<spring:eval expression="@environment.getProperty('currency-unit.default')" var="curUnit"/>
<div class="form-control-container">

View File

@@ -251,6 +251,27 @@
});
}
/************************************************
* 발송 쿠폰 내역 엑셀 다운로드
*************************************************/
const fn_coupon_excel_download = function(couponSndngInnb) {
var form = $('#listForm');
form.find('input[name="couponSndngInnb"]').remove();
form.append($('<input/>', {
type: 'hidden',
name: 'couponSndngInnb',
value: couponSndngInnb
}));
form.serialize();
form.attr('method', 'post');
form.attr('action', '<c:url value="/mngr/promtn/coupon/selectCouponListExcelDwld"/>');
form.submit();
}
/************************************************
* 쿠폰 상세 정보 조회 팝업

View File

@@ -1998,18 +1998,18 @@ since : 2024-01-30 추지훈 최초 생성
</button>
</th>
<th class="border-right">
<input class="input-text xsm number right" value="0" type="text" name="bgnCnt"
<input class="input-text xsm number right evt_benf_cnt" value="0" type="text" name="bgnCnt"
title="해당 인풋에 대한 설명">
개 이상 ~
<input class="input-text xsm number right" value="0" type="text" name="endCnt"
<input class="input-text xsm number right evt_benf_cnt" value="0" type="text" name="endCnt"
title="해당 인풋에 대한 설명">
개 미만
</th>
<th class="border-right">
<input class="input-text xsm number right" value="0" type="text" name="bgnAmt"
<input class="input-text xsm number right evt_benf_amt" value="0" type="text" name="bgnAmt"
title="해당 인풋에 대한 설명">
${curUnit} 이상 ~
<input class="input-text xsm number right" value="0" type="text" name="endAmt"
<input class="input-text xsm number right evt_benf_amt" value="0" type="text" name="endAmt"
title="해당 인풋에 대한 설명">
${curUnit} 미만
</th>

View File

@@ -0,0 +1,110 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%--
Class Name : ExchngrtUpdtU.jsp
Description : 환율 설정 상세
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2026-04-27 이대환 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<%-- 공통 include --%>
<%@include file ="/WEB-INF/views/comm/mngr/Include.jsp" %>
</head>
<script>
$(document).ready(function () {
});
/* ********************************************************
* 환율 설정 저장
******************************************************** */
const fn_update_exchngrt = function () {
if (confirm('환율 설정을 <spring:message code="confirm.common.save"/>')) {
$.ajax({
type: 'post',
url: '<c:url value="/mngr/setup/exchngrt/updateExchngrtSetup"/>',
data: $('#updtForm').serialize(),
success: function () {
alert("<spring:message code="success.common.save"/>");
location.reload();
}
});
}
}
</script>
<body>
<%-- 상단메뉴 공통화 적용 : 2023-11-30 / 박철민 추가 --%>
<%@include file="/WEB-INF/views/comm/mngr/Header.jsp" %>
<main class="main">
<%-- 좌측메뉴 공통화 적용 : 2023-11-30 / 박철민 추가 --%>
<%@include file="/WEB-INF/views/comm/mngr/Left.jsp" %>
<div class="content">
<div class="content__inner">
<button class="side-nav__fold"><span class="visually-hidden">좌측메뉴 펼치기/닫기</span></button>
<div class="page-title">
<h2 class="page-title__title">환율 설정</h2>
<div class="page-title__btn-container">
<button class="btn primary" onclick="fn_update_exchngrt()">저장하기
</button>
</div>
</div>
<form id="updtForm">
<section class="content-section">
<div class="form-control-container mb-8">
<div class="left">
<h3 class="content-section__inner-title">주문 설정</h3>
</div>
<div class="center"></div>
<div class="right"></div>
</div>
<div class="table-wrapper">
<table class="table ">
<caption>주문 설정</caption>
<colgroup>
<col style="width: 14%;">
<col style="width: 38%;">
<col style="width: 14%;">
<col style="width: 38%;">
</colgroup>
<tbody>
<tr>
<th>환율(살때) 일본 1円(엔)기준</th>
<td colspan="3">
<div class="td-inner">
<div class="input-container">
<input type="text" class="input-text sm right" name="buyRate" id="buyRate" title="1엔 환율(살때)" value="${resultMap.sopmalDetailList[0].buyRate}">
<span class="input-unit-text">원</span>
</div>
</div>
</td>
<%-- <th>환율(팔때) 일본 1円(엔)기준</th>
<td>
<div class="td-inner">
<div class="input-container">
<input type="text" class="input-text sm right" name="sellRate" id="sellRate" title="1엔 환율(팔때)" value="${resultMap.sopmalDetailList[0].sellRate}">
<span class="input-unit-text">원</span>
</div>
</div>
</td>--%>
</tr>
</tbody>
</table>
</div>
</section>
</form>
<button class="scroll-to-top"><span class="visually-hidden">위로가기</span></button>
</div>
</div>
</main>
</body>
</html>

View File

@@ -0,0 +1,236 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%--
Class Name : FamilySiteUpdtU.jsp
Description : 패밀리사이트 설정 상세
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2026-04-27 이대환 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<%-- 공통 include --%>
<%@include file ="/WEB-INF/views/comm/mngr/Include.jsp" %>
</head>
<script>
$(document).ready(function () {
});
/* ********************************************************
* 입력창 추가
******************************************************** */
const fn_add_emptyBox = function(_target) {
stplatChk = false;
let count = 0;
let trClone = '';
if (_target === 'clauseChk') {
count = $('#tableSorting').children('tr').length + 1;
trClone = '<tr>'
+ ' <td>'
+ ' <label class="b-checkbox checkbox is-medium">'
+ ' <input type="checkbox" name="clauseChk" value=""><span class="check"></span>'
+ ' </label>'
+ ' </td>'
+ ' <td>'
+ ' <div class="select-box">'
+ ' <select class="full" name="clause" id="clause' + count + '" title="약관구분" onchange="fn_select_subClause(this);">'
+ ' <option value="" selected >선택하세요</option>'
+ ' <c:forEach var="cgn002" items="${resultMap.cgn002}" varStatus="status">'
+ ' <option value="${cgn002.cd}"><c:out value="${cgn002.cdNm}"/></option>'
+ ' </c:forEach>'
+ ' </select>'
+ ' </div>'
+ ' </td>'
+ ' <td>'
+ ' <div class="select-box privacyPolicy-select">'
+ ' <select class="full" name="stplatInnbArr" id="privacyPolicy' + count + '" title="약관 내용">'
+ ' <option value="" selected >약관 구분을 선택하세요</option>'
+ ' </select>'
+ ' </div>'
+ ' </td>'
+ ' <td>'
+ ' <div class="manage-btn-container">'
+ ' <a href="#clause-info-modal" rel="modal:open" class="btn xsm primary outline privacy" onclick="fn_select_clauseInformation(\'new\');"><spring:message code="button.view"/></a>'
+ ' </div>'
+ ' </td>'
+ '</tr>';
$('#tableSorting').append(trClone);
$('#clause' + count).niceSelect();
$('#privacyPolicy' + count).niceSelect();
} else {
trClone = '<tr>'
+ ' <td>'
+ ' <label class="b-checkbox checkbox is-medium">'
+ ' <input type="checkbox" name="siteChk" value=""><span class="check"></span>'
+ ' </label>'
+ ' </td>'
+ ' <td>'
+ ' <div class="td-inner">'
+ ' <input type="text" class="input-text xl" name="familySiteNmArr" title="패밀리 사이트명" maxlength="20">'
+ ' </div>'
+ ' </td>'
+ ' <td>'
+ ' <div class="td-inner">'
+ ' <input type="text" class="input-text full" name="familySiteUrlArr" title="URL" maxlength="30">'
+ ' </div>'
+ ' </td>'
+ '</tr>';
$('#tableSiteSorting').append(trClone);
$('#noData').hide();
}
}
/* ********************************************************
* 입력창 삭제
******************************************************** */
const fn_remove_box = function(_target) {
const target = $('[name=' + _target + ']:checked');
if (target.length === 0) {
alert('항목을 선택해 주세요.');
} else {
target.each(function() {
$(this).parents('tr').remove();
});
}
if (_target === 'clauseChk') {
$('#clauseAll').prop('checked', false);
} else {
$('#siteAll').prop('checked', false);
const total = $('#tableSiteSorting').find('tr').length;
if (total === 1) {
$('#noData').show();
} else {
$('#noData').hide();
}
}
}
/* ********************************************************
* 패밀리사이트 설정 저장
******************************************************** */
const fn_update_family = function () {
if (confirm('패밀리사이트 설정을 <spring:message code="confirm.common.save"/>')) {
$.ajax({
type: 'post',
url: '<c:url value="/mngr/setup/family/updateFamilySiteSetup"/>',
data: $('#updtForm').serialize(),
success: function () {
alert("<spring:message code="success.common.save"/>");
location.reload();
}
});
}
}
</script>
<body>
<%-- 상단메뉴 공통화 적용 : 2023-11-30 / 박철민 추가 --%>
<%@include file ="/WEB-INF/views/comm/mngr/Header.jsp" %>
<main class="main">
<%-- 좌측메뉴 공통화 적용 : 2023-11-30 / 박철민 추가 --%>
<%@include file ="/WEB-INF/views/comm/mngr/Left.jsp" %>
<div class="content">
<div class="content__inner">
<button class="side-nav__fold"><span class="visually-hidden">좌측메뉴 펼치기/닫기</span></button>
<div class="page-title">
<h2 class="page-title__title">패밀리사이트 설정</h2>
<div class="page-title__btn-container">
<button class="btn primary" onclick="fn_update_family()">저장하기
</button>
</div>
</div>
<form id="updtForm">
<section class="content-section">
<div class="form-control-container mb-8">
<div class="left">
<h3 class="content-section__inner-title">패밀리사이트 설정</h3>
</div>
<div class="center"></div>
<div class="right">
<button type="button" class="btn primary outline xsm" onclick="fn_add_emptyBox('siteChk');"><spring:message code="button.add"/></button>
<button type="button" class="btn dark xsm" onclick="fn_remove_box('siteChk');"><spring:message code="button.delete"/></button>
</div>
</div>
<div class="table-wrapper">
<table class="table vertical">
<caption>패밀리사이트 설정</caption>
<colgroup>
<col style="width: 6%;">
<col style="width: 25%;">
<col style="width: auto;">
</colgroup>
<thead>
<tr>
<th>
<label class="b-checkbox checkbox is-medium check-all">
<input type="checkbox" value="" id="siteAll"><span class="check"></span>
</label>
</th>
<th>패밀리 사이트명</th>
<th>URL</th>
</tr>
</thead>
<tbody id="tableSiteSorting">
<c:if test="${not empty resultMap.siteList}">
<c:forEach var="site" items="${resultMap.siteList}" varStatus="status">
<tr>
<td>
<label class="b-checkbox checkbox is-medium">
<input type="checkbox" name="siteChk" value=""><span class="check"></span>
</label>
</td>
<td>
<div class="td-inner">
<input type="text" class="input-text xl" name="familySiteNmArr" title="패밀리 사이트명" maxlength="25" value="${site.familySiteNm}">
</div>
</td>
<td>
<div class="td-inner">
<input type="text" class="input-text full" name="familySiteUrlArr" title="URL" maxlength="60" value="${site.familySiteUrl}">
</div>
</td>
</tr>
</c:forEach>
<tr id="noData" style="display: none;"><td class="row-no-data" colspan="3">패밀리사이트를 설정해 주세요.</td></tr>
</c:if>
<c:if test="${empty resultMap.siteList}">
<tr id="noData"><td class="row-no-data" colspan="3">패밀리사이트를 설정해 주세요.</td></tr>
</c:if>
</tbody>
</table>
</div>
</section>
</form>
<button class="scroll-to-top"><span class="visually-hidden">위로가기</span></button>
</div>
</div>
</main>
</body>
</html>

View File

@@ -0,0 +1,161 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%--
Class Name : GuidanceUpdtU.jsp
Description : 안내문구 설정 상세
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2026-04-27 이대환 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<%-- 공통 include --%>
<%@include file ="/WEB-INF/views/comm/mngr/Include.jsp" %>
</head>
<script>
$(document).ready(function () {
const sopmalCd = '${sopmalCd}';
//에디터 적용
fn_create_ckeditor('#joinGuidanceSj', sopmalCd);
fn_create_ckeditor('#joinGuidanceWords', sopmalCd);
fn_create_ckeditor('#joinBnef', sopmalCd);
fn_create_ckeditor('#joinComptWords', sopmalCd);
fn_create_ckeditor('#subsvcGuidanceWords', sopmalCd);
});
/* ********************************************************
* 환율 설정 저장
******************************************************** */
const fn_update_guidance = function () {
let updtForm = $('#updtForm');
updtForm.find("#joinGuidanceSj").val(fn_get_editor_data('#joinGuidanceSj'));
updtForm.find("#joinGuidanceWords").val(fn_get_editor_data('#joinGuidanceWords'));
updtForm.find("#joinBnef").val(fn_get_editor_data('#joinBnef'));
updtForm.find("#joinComptWords").val(fn_get_editor_data('#joinComptWords'));
updtForm.find("#subsvcGuidanceWords").val(fn_get_editor_data('#subsvcGuidanceWords'));
if (confirm('환율 설정을 <spring:message code="confirm.common.save"/>')) {
$.ajax({
type: 'post',
url: '<c:url value="/mngr/setup/guidance/updateGuidanceSetup"/>',
data: $('#updtForm').serialize(),
success: function () {
alert("<spring:message code="success.common.save"/>");
location.reload();
}
});
}
}
</script>
<style>
.ck.ck-content:not(.ck-style-grid__button__preview) {
min-height: 100px;
}
</style>
<body>
<%-- 상단메뉴 공통화 적용 : 2023-11-30 / 박철민 추가 --%>
<%@include file="/WEB-INF/views/comm/mngr/Header.jsp" %>
<main class="main">
<%-- 좌측메뉴 공통화 적용 : 2023-11-30 / 박철민 추가 --%>
<%@include file="/WEB-INF/views/comm/mngr/Left.jsp" %>
<div class="content">
<div class="content__inner">
<button class="side-nav__fold"><span class="visually-hidden">좌측메뉴 펼치기/닫기</span></button>
<div class="page-title">
<h2 class="page-title__title">안내문구 설정</h2>
<div class="page-title__btn-container">
<button class="btn primary" onclick="fn_update_guidance()">저장하기
</button>
</div>
</div>
<form id="updtForm">
<section class="content-section">
<div class="form-control-container mb-8">
<div class="left">
<h3 class="content-section__inner-title">회원가입 안내 설정</h3>
</div>
<div class="center"></div>
<div class="right"></div>
</div>
<div class="table-wrapper">
<table class="table">
<caption>회원가입 안내 설정</caption>
<colgroup>
<col style="width: 12%;">
</colgroup>
<tbody>
<tr>
<th>회원가입 안내 타이틀</th>
<td colspan="3">
<div class="td-inner">
<textarea class="textarea" id="joinGuidanceSj" name="joinGuidanceSj"
title="회원가입 안내 타이틀" rows="2">
${resultMap.sopmalDetailList[0].joinGuidanceSj }
</textarea>
</div>
</td>
</tr>
<tr>
<th>회원가입 안내문구</th>
<td colspan="3">
<div class="td-inner">
<textarea class="textarea" id="joinGuidanceWords" name="joinGuidanceWords"
title="회원가입 안내문구" rows="2">
${resultMap.sopmalDetailList[0].joinGuidanceWords }
</textarea>
</div>
</td>
</tr>
<tr>
<th>회원가입 주요혜택</th>
<td colspan="3">
<div class="td-inner">
<textarea class="textarea" id="joinBnef" name="joinBnef"
title="회원가입 주요혜택" rows="2">
${resultMap.sopmalDetailList[0].joinBnef }
</textarea>
</div>
</td>
</tr>
<tr>
<th>회원가입 완료문구</th>
<td colspan="3">
<div class="td-inner">
<textarea class="textarea" id="joinComptWords" name="joinComptWords"
title="회원가입 완료문구" rows="2">
${resultMap.sopmalDetailList[0].joinComptWords }
</textarea>
</div>
</td>
</tr>
<tr>
<th>구독서비스 안내문구</th>
<td colspan="3">
<div class="td-inner">
<textarea class="textarea" id="subsvcGuidanceWords" name="subsvcGuidanceWords"
title="구독서비스 안내문구" rows="2">
${resultMap.sopmalDetailList[0].subsvcGuidanceWords }
</textarea>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</form>
<button class="scroll-to-top"><span class="visually-hidden">위로가기</span></button>
</div>
</div>
</main>
</body>
</html>

View File

@@ -3,6 +3,7 @@
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : OrdrListR.jsp
Description : 주문설정 jsp
@@ -21,10 +22,10 @@
$(document).ready(function () {
$("#mlgPymntRt").val(function(index, value) {
return Number(value).toLocaleString();
return Number(value).toLocaleString();
});
$("#mlgMxmmPymntAmt").val(function(index, value) {
return Number(value).toLocaleString();
return Number(value).toLocaleString();
});
/*선물하기 이벤트*/
@@ -102,6 +103,34 @@
$("#mlgPymntRt").val("0");
});
});
/* ********************************************************
* 마일리지 사용 조건 disabled 처리
******************************************************** */
const fn_set_mlgDisabled = function(_target) {
if (_target === 'other') {
$('#maxPct').prop('disabled', true);
$('#maxPct').val('0');
$('#maxMlg').prop('disabled', true);
$('#maxMlg').val('0');
} else if (_target === 'maxPct') {
$('#maxPct').prop('disabled', false);
$('#maxMlg').prop('disabled', true);
$('#maxMlg').val('0');
} else if (_target === 'maxMlg') {
$('#maxPct').prop('disabled', true);
$('#maxPct').val('0');
$('#maxMlg').prop('disabled', false);
}
}
/**************************************************************
hidden form 생성 함수
****************************************************************/
@@ -122,13 +151,12 @@
</script>
</head>
<body>
<c:set var = "ordrSetupInfo" value="${resultMap.ordrSetupInfo}"/>
<c:set var = "ordrSetupInfo" value="${resultMap.ordrSetupList.ordrSetupInfo}"/>
<%-- 상단메뉴 공통화 적용 : 2023-11-30 / 박철민 추가 --%>
<%@include file="/WEB-INF/views/comm/mngr/Header.jsp" %>
<main class="main">
<%-- 좌측메뉴 공통화 적용 : 2023-11-30 / 박철민 추가 --%>
<%@include file="/WEB-INF/views/comm/mngr/Left.jsp" %>
<form id = "updtForm">
<div class="content">
<div class="content__inner">
<button class="side-nav__fold"><span class="visually-hidden">좌측메뉴 펼치기/닫기</span></button>
@@ -139,268 +167,364 @@
<spring:message code="button.save"/></button>
</div>
</div>
<section class="content-section content-fold">
<div class="content-fold__header">
</div>
<c:if test = "${ordrSetupInfo.sopmalTyCd eq '01'}">
<form id = "updtForm">
<section class="content-section content-fold">
<div class="content-fold__header">
</div>
<c:if test = "${ordrSetupInfo.sopmalTyCd eq '01'}">
<div class="content-fold__content">
<h3 class="content-section__inner-title">여러 곳 배송</h3>
<div class="table-wrapper">
<table class="table">
<caption>여러 곳 배송 사용 여부 설정</caption>
<colgroup>
<col style="width: 12%;">
<col>
</colgroup>
<tbody>
<tr>
<th>여러 곳 배송 사용 여부</th>
<td>
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" id="multiDlvyUseAtY" name="multiDlvyAt" value="Y"
<c:if test = "${ordrSetupInfo.multiDlvyAt eq 'Y'}">checked</c:if>>
<label for="multiDlvyUseAtY">사용</label>
</div>
<div class="custom-radio">
<input type="radio" id="multiDlvyUseAtN" name="multiDlvyAt" value="N"
<c:if test = "${ordrSetupInfo.multiDlvyAt eq 'N'}">checked</c:if>>
<label for="multiDlvyUseAtN">미사용</label>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="content-fold__content">
<h3 class="content-section__inner-title">선물하기</h3>
<div class="table-wrapper">
<table class="table">
<caption>선물하기 설정</caption>
<colgroup>
<col style="width: 12%;">
<col>
</colgroup>
<tbody>
<tr>
<th>선물하기 사용 여부</th>
<td>
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" id="giftUseAtY" name="giftDlvyAt" value="Y"
<c:if test = "${ordrSetupInfo.giftDlvyAt eq 'Y'}">checked</c:if>>
<label for="giftUseAtY">사용</label>
</div>
<div class="custom-radio">
<input type="radio" id="giftUseAtN" name="giftDlvyAt" value="N"
<c:if test = "${ordrSetupInfo.giftDlvyAt eq 'N'}">checked</c:if>>
<label for="giftUseAtN">미사용</label>
</div>
</div>
</div>
</td>
</tr>
<tr id="giftDlvylcDv" <c:if test = "${ordrSetupInfo.giftDlvyAt eq 'N'}">style = "display: none"</c:if>>
<th>배송주소 등록기간<span class="red-7">*</span></th>
<td>
<div class="td-inner">
<div class="td-inner vertical">
<div class="input-container">
<input type="text" class="input-text xsm right number"
id="giftDlvyAtmcCanclPd" title="배송주소 등록기간 설정"
name="giftDlvyAtmcCanclPd" maxlength="2"
<c:choose>
<c:when test = "${not empty ordrSetupInfo.giftDlvyAtmcCanclPd}">
value = "<c:out value="${ordrSetupInfo.giftDlvyAtmcCanclPd}"/>"
</c:when>
<c:otherwise>
value = "0"
</c:otherwise>
</c:choose>
<c:if test = "${ordrSetupInfo.giftDlvyAt eq 'N'}">disabled</c:if>>
<span class="mr-10input-unit-text">&nbsp;일 이내 배송주소 등록되지 않으면 주문 자동취소</span>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="content-fold__content">
<h3 class="content-section__inner-title">GC 머니</h3>
<div class="table-wrapper">
<table class="table">
<caption>GC 머니 사용 여부 설정</caption>
<colgroup>
<col style="width: 12%;">
<col>
</colgroup>
<tbody>
<tr>
<th>GC 머니 사용 여부</th>
<td>
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" id="cashAtY" name="cashAt"
value="Y"
<c:if test="${ordrSetupInfo.cashAt eq 'Y'}">checked</c:if>>
<label for="cashAtY">사용</label>
</div>
<div class="custom-radio">
<input type="radio" id="cashAtN" name="cashAt"
value="N"
<c:if test="${ordrSetupInfo.cashAt eq 'N'}">checked</c:if>>
<label for="cashAtN">미사용</label>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</c:if>
<div class="content-fold__content">
<h3 class="content-section__inner-title">여러 곳 배송</h3>
<h3 class="content-section__inner-title">마일리지 지급</h3>
<div class="table-wrapper">
<table class="table">
<caption>여러 곳 배송 사용 여부 설정</caption>
<caption>마일리지 지급 설정</caption>
<colgroup>
<col style="width: 12%;">
<col>
</colgroup>
<tbody>
<tr>
<th>여러 곳 배송 사용 여부</th>
<th>지급 설정<span class="red-7">*</span></th>
<td>
<div class="td-inner">
<div class="custom-radio-container">
<div class="td-inner vertical">
<div class="custom-radio-container ">
<div class="custom-radio">
<input type="radio" id="multiDlvyUseAtY" name="multiDlvyAt" value="Y"
<c:if test = "${ordrSetupInfo.multiDlvyAt eq 'Y'}">checked</c:if>>
<label for="multiDlvyUseAtY">사용</label>
<input type="radio" id="mlgPymntY" name="mlgPymntAt" value="Y"
<c:if test = "${ordrSetupInfo.mlgPymntAt eq 'Y'}">checked</c:if>>
<label for="mlgPymntY">사용</label>
</div>
<div class="custom-radio">
<input type="radio" id="multiDlvyUseAtN" name="multiDlvyAt" value="N"
<c:if test = "${ordrSetupInfo.multiDlvyAt eq 'N'}">checked</c:if>>
<label for="multiDlvyUseAtN">미사용</label>
<input type="radio" id="mlgPymntN" name="mlgPymntAt" value="N"
<c:if test = "${ordrSetupInfo.mlgPymntAt eq 'N'}">checked</c:if>>
<label for="mlgPymntN">미사용</label>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="content-fold__content">
<h3 class="content-section__inner-title">선물하기</h3>
<div class="table-wrapper">
<table class="table">
<caption>선물하기 설정</caption>
<colgroup>
<col style="width: 12%;">
<col>
</colgroup>
<tbody>
<tr>
<th>선물하기 사용 여부</th>
<td>
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" id="giftUseAtY" name="giftDlvyAt" value="Y"
<c:if test = "${ordrSetupInfo.giftDlvyAt eq 'Y'}">checked</c:if>>
<label for="giftUseAtY">사용</label>
</div>
<div class="custom-radio">
<input type="radio" id="giftUseAtN" name="giftDlvyAt" value="N"
<c:if test = "${ordrSetupInfo.giftDlvyAt eq 'N'}">checked</c:if>>
<label for="giftUseAtN">미사용</label>
<div class="input-container ml-5 mlgPymntCtrTarget" <c:if test = "${ordrSetupInfo.mlgPymntAt eq 'N'}">style="display: none"</c:if>><%--사용 여부에 따른 이벤트 컨트롤--%>
<span class="mr-5">구매시</span>
<span class="mr-5 mlgPercent">총 상품 결제금액의</span>
<span class="mr-5 ">
<input type="text" class="input-text xsm right number" title="마일리지 적립" id="mlgPymntRt" name="mlgPymntRt"
<c:choose>
<c:when test = "${ordrSetupInfo.mlgPymntDvCd eq '01'}">
maxlength="2"
</c:when>
<c:when test = "${ordrSetupInfo.mlgPymntDvCd eq '02'}">
maxlength="12"
</c:when>
<c:otherwise>
maxlength="2"
</c:otherwise>
</c:choose>
<c:choose>
<c:when test = "${not empty ordrSetupInfo.mlgPymntRt}">
value ="<c:out value="${ordrSetupInfo.mlgPymntRt}"/>"
</c:when>
<c:otherwise>
value ="0"
</c:otherwise>
</c:choose>>
</span>
<div class="select-box mr-10 ">
<select id="accmlUnitDv" name="mlgPymntDvCd" class="short" title="마일리지 단위 선택">
<c:forEach var="accmlUnitDv" items="${resultMap.ordrSetupList.accmlUnitDv}">
<option value="<c:out value='${accmlUnitDv.cd}'/>"
<c:if test = "${ordrSetupInfo.mlgPymntDvCd eq accmlUnitDv.cd}">selected</c:if>>
<c:out value="${accmlUnitDv.cdNm}"/>
</option>
</c:forEach>
</select>
</div>
<span class="mr-5">적립</span>
</div>
</div>
</td>
</tr>
<tr id="giftDlvylcDv" <c:if test = "${ordrSetupInfo.giftDlvyAt eq 'N'}">style = "display: none"</c:if>>
<th>배송주소 등록기간<span class="red-7">*</span></th>
<td>
<div class="td-inner">
<div class="td-inner vertical">
<div class="input-container">
<input type="text" class="input-text xsm right number"
id="giftDlvyAtmcCanclPd" title="배송주소 등록기간 설정"
name="giftDlvyAtmcCanclPd" maxlength="2"
<c:choose>
<c:when test = "${not empty ordrSetupInfo.giftDlvyAtmcCanclPd}">
value = "<c:out value="${ordrSetupInfo.giftDlvyAtmcCanclPd}"/>"
</c:when>
<c:otherwise>
value = "0"
</c:otherwise>
</c:choose>
<c:if test = "${ordrSetupInfo.giftDlvyAt eq 'N'}">disabled</c:if>>
<span class="mr-10input-unit-text">&nbsp;일 이내 배송주소 등록되지 않으면 주문 자동취소</span>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="content-fold__content">
<h3 class="content-section__inner-title">GC 머니</h3>
<div class="table-wrapper">
<table class="table">
<caption>GC 머니 사용 여부 설정</caption>
<colgroup>
<col style="width: 12%;">
<col>
</colgroup>
<tbody>
<tr>
<th>GC 머니 사용 여부</th>
<td>
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" id="cashAtY" name="cashAt"
value="Y"
<c:if test="${ordrSetupInfo.cashAt eq 'Y'}">checked</c:if>>
<label for="cashAtY">사용</label>
</div>
<div class="custom-radio">
<input type="radio" id="cashAtN" name="cashAt"
value="N"
<c:if test="${ordrSetupInfo.cashAt eq 'N'}">checked</c:if>>
<label for="cashAtN">미사용</label>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</c:if>
<div class="content-fold__content">
<h3 class="content-section__inner-title">마일리지 지급</h3>
<div class="table-wrapper">
<table class="table">
<caption>마일리지 지급 설정</caption>
<colgroup>
<col style="width: 12%;">
<col>
</colgroup>
<tbody>
<tr>
<th>지급 설정<span class="red-7">*</span></th>
<td>
<div class="td-inner vertical">
<div class="custom-radio-container ">
<div class="custom-radio">
<input type="radio" id="mlgPymntY" name="mlgPymntAt" value="Y"
<c:if test = "${ordrSetupInfo.mlgPymntAt eq 'Y'}">checked</c:if>>
<label for="mlgPymntY">사용</label>
</div>
<div class="custom-radio">
<input type="radio" id="mlgPymntN" name="mlgPymntAt" value="N"
<c:if test = "${ordrSetupInfo.mlgPymntAt eq 'N'}">checked</c:if>>
<label for="mlgPymntN">미사용</label>
</div>
</div>
<div class="input-container ml-5 mlgPymntCtrTarget" <c:if test = "${ordrSetupInfo.mlgPymntAt eq 'N'}">style="display: none"</c:if>><%--사용 여부에 따른 이벤트 컨트롤--%>
<span class="mr-5">구매시</span>
<span class="mr-5 mlgPercent">총 상품 결제금액의</span>
<span class="mr-5 ">
<input type="text" class="input-text xsm right number" title="마일리지 적립" id="mlgPymntRt" name="mlgPymntRt"
<c:choose>
<c:when test = "${ordrSetupInfo.mlgPymntDvCd eq '01'}">
maxlength="2"
</c:when>
<c:when test = "${ordrSetupInfo.mlgPymntDvCd eq '02'}">
maxlength="12"
</c:when>
<c:otherwise>
maxlength="2"
</c:otherwise>
<div class="input-container mr-5 mlgPymntCtrTarget " id = "mlgMxmmDv" <c:if test = "${ordrSetupInfo.mlgPymntAt eq 'N' || ordrSetupInfo.mlgPymntDvCd eq '02'}">style="display: none"</c:if>><%--사용 여부에 따른 이벤트 컨트롤--%>
<span class="mr-5">최대</span>
<input class="input-text sm number right mr-5" type="text"
title="최대 마일리지 적립금액" id="mlgMxmmPymntAmt"
name="mlgMxmmPymntAmt" maxlength="12"
<c:choose>
<c:when test = "${not empty ordrSetupInfo.mlgMxmmPymntAmt}">
value ="${ordrSetupInfo.mlgMxmmPymntAmt}"
</c:when>
<c:otherwise>
value ="0"
</c:otherwise>
</c:choose>
<c:choose>
<c:when test = "${not empty ordrSetupInfo.mlgPymntRt}">
value ="<c:out value="${ordrSetupInfo.mlgPymntRt}"/>"
</c:when>
<c:otherwise>
value ="0"
</c:otherwise>
</c:choose>>
</span>
<div class="select-box mr-10 ">
<select id="accmlUnitDv" name="mlgPymntDvCd" class="short" title="마일리지 단위 선택">
<c:forEach var="accmlUnitDv" items="${resultMap.accmlUnitDv}">
<option value="<c:out value='${accmlUnitDv.cd}'/>"
<c:if test = "${ordrSetupInfo.mlgPymntDvCd eq accmlUnitDv.cd}">selected</c:if>>
<c:out value="${accmlUnitDv.cdNm}"/>
</option>
</c:forEach>
</select>
<c:if test = "${ordrSetupInfo.mlgMxmmPymntAmtAt eq 'N'}">disabled</c:if>>
<span class="mr-5">마일리지 까지 적립</span>
<div class="b-checkbox-container">
<label class="b-checkbox checkbox">
<input type="checkbox" value="N"
name="mlgMxmmPymntAmtAt"
id="mlgMxmmPymntAmtAt"
<c:if test = "${ordrSetupInfo.mlgMxmmPymntAmtAt eq 'N'}">checked</c:if>>
<span class="check"></span>
<span class="control-label">설정 안함</span>
</label>
</div>
</div>
<span class="mr-5">적립</span>
</div>
<div class="input-container mr-5 mlgPymntCtrTarget " id = "mlgMxmmDv" <c:if test = "${ordrSetupInfo.mlgPymntAt eq 'N' || ordrSetupInfo.mlgPymntDvCd eq '02'}">style="display: none"</c:if>><%--사용 여부에 따른 이벤트 컨트롤--%>
<span class="mr-5">최대</span>
<input class="input-text sm number right mr-5" type="text"
title="최대 마일리지 적립금액" id="mlgMxmmPymntAmt"
name="mlgMxmmPymntAmt" maxlength="12"
<c:choose>
<c:when test = "${not empty ordrSetupInfo.mlgMxmmPymntAmt}">
value ="${ordrSetupInfo.mlgMxmmPymntAmt}"
</c:when>
<c:otherwise>
value ="0"
</c:otherwise>
</c:choose>
<c:if test = "${ordrSetupInfo.mlgMxmmPymntAmtAt eq 'N'}">disabled</c:if>>
<span class="mr-5">마일리지 까지 적립</span>
</td>
</tr>
<tr class="mlgPymntCtrTarget" <c:if test = "${ordrSetupInfo.mlgPymntAt eq 'N'}">style="display: none"</c:if>><%--사용 여부에 따른 이벤트 컨트롤--%>
<th>유효기간<span class="red-7">*</span></th>
<td>
<div class="input-container ml-5 ">
<span class="mr-5 left">지급 마일리지의 유효기간은</span>
<input class="input-text xsm right number" type="text"
title="마일리지 유효기간" id="mlgValidPd" name="mlgValidPd"
maxlength="2"
<c:choose>
<c:when test="${not empty ordrSetupInfo.mlgValidPd}">
value="<c:out value="${ordrSetupInfo.mlgValidPd}"/>"
</c:when>
<c:otherwise>
value="0"
</c:otherwise>
</c:choose>
<c:if test = "${ordrSetupInfo.mlgValidPdAt eq 'N'}">disabled</c:if>>
<span class="mr-5">개월</span>
<%-- 유효기간 사용 유무 설정 --%>
<div class="b-checkbox-container">
<label class="b-checkbox checkbox">
<input type="checkbox" value="N"
name="mlgMxmmPymntAmtAt"
id="mlgMxmmPymntAmtAt"
<c:if test = "${ordrSetupInfo.mlgMxmmPymntAmtAt eq 'N'}">checked</c:if>>
<label class="b-checkbox checkbox ">
<input type="checkbox" value="N" name="mlgValidPdAt"
id="mlgValidPdAt"
<c:if test = "${ordrSetupInfo.mlgValidPdAt eq 'N'}">checked</c:if>>
<span class="check"></span>
<span class="control-label">설정 안함</span>
</label>
</div>
</div>
</div>
</td>
</tr>
<tr class="mlgPymntCtrTarget" <c:if test = "${ordrSetupInfo.mlgPymntAt eq 'N'}">style="display: none"</c:if>><%--사용 여부에 따른 이벤트 컨트롤--%>
<th>유효기간<span class="red-7">*</span></th>
<td>
<div class="input-container ml-5 ">
<span class="mr-5 left">지급 마일리지의 유효기간은</span>
<input class="input-text xsm right number" type="text"
title="마일리지 유효기간" id="mlgValidPd" name="mlgValidPd"
maxlength="2"
<c:choose>
<c:when test="${not empty ordrSetupInfo.mlgValidPd}">
value="<c:out value="${ordrSetupInfo.mlgValidPd}"/>"
</c:when>
<c:otherwise>
value="0"
</c:otherwise>
</c:choose>
<c:if test = "${ordrSetupInfo.mlgValidPdAt eq 'N'}">disabled</c:if>>
<span class="mr-5">개월</span>
<%-- 유효기간 사용 유무 설정 --%>
<div class="b-checkbox-container">
<label class="b-checkbox checkbox ">
<input type="checkbox" value="N" name="mlgValidPdAt"
id="mlgValidPdAt"
<c:if test = "${ordrSetupInfo.mlgValidPdAt eq 'N'}">checked</c:if>>
<span class="check"></span>
<span class="control-label">설정 안함</span>
</label>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
<section class="content-section content-fold">
<h3 class="content-section__inner-title">마일리지 사용 조건</h3>
<div class="table-wrapper">
<table class="table ">
<caption>마일리지 사용 조건</caption>
<colgroup>
<col style="width: 14%;">
<col>
</colgroup>
<tbody>
<tr>
<th>보유 마일리지 조건</th>
<td>
<div class="td-inner">
<div class="input-container">
<span class="mr-10">보유 마일리지가</span>
<input type="text" class="input-text sm right number" name="mlgHoldUseAmt" title="보유 마일리지가" maxlength="7" value="${resultMap.sopmalDetailList[0].mlgHoldUseAmt }">
<span class="input-unit-text mr-8">원</span>
<span>이상이면 마일리지 사용 가능</span>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</td>
</tr>
<tr>
<th>상품 금액 조건</th>
<td>
<div class="td-inner vertical">
<div class="input-container">
<span class="gray-7 mr-10">{상품 실 결제금액} + {좌동} + {좌동} ···</span>
<input type="text" class="input-text sm right number" name="mlgSetleAmtUseAmt" title="사용가능 마일리지" maxlength="7" value="${resultMap.sopmalDetailList[0].mlgSetleAmtUseAmt }">
<span class="input-unit-text mr-8">원</span>
<span>이상이면 마일리지 사용 가능</span>
</div>
<p class="blue-7 fyi">상품 실 결제 금액 = {상품 할인가(판매가) x 수량} - 할인(쿠폰, 등급, 좋아요, 모바일, 프로모션 코드)</p>
</div>
</td>
</tr>
<tr>
<th>마일리지 사용한도 조건</th>
<td>
<div class="td-inner">
<div class="input-container">
<span class="mr-10">마일리지는 최소</span>
<input type="text" class="input-text sm right number" name="mlgMummUseAmt" title="마일리지는 최소" maxlength="7" value="${resultMap.sopmalDetailList[0].mlgMummUseAmt }">
<span class="input-unit-text">원 이상</span>
</div>
<span class="tilde">~</span>
<div class="input-container">
<span class="mr-10">최대</span>
<div class="custom-radio-container vertical storeCondition">
<div class=" custom-radio">
<input type="radio" id="mlgMxmmUse-a" name="mlgMxmmUseDv" value="01" onclick="fn_set_mlgDisabled('other');" ${f:setChecked(resultMap.sopmalDetailList[0].mlgMxmmUseDv, '01') }>
<label for="mlgMxmmUse-a">1회 사용한도 제한 없이 사용 가능
</label>
</div>
<c:set var="mlgMxmmUseAmt_2" value="0" />
<c:set var="mlgMxmmUseAmt_Disabled_2" value="disabled" />
<c:set var="mlgMxmmUseAmt_3" value="0" />
<c:set var="mlgMxmmUseAmt_Disabled_3" value="disabled" />
<c:if test="${resultMap.sopmalDetailList[0].mlgMxmmUseDv eq '02'}" >
<c:set var="mlgMxmmUseAmt_2" value="${resultMap.sopmalDetailList[0].mlgMxmmUseAmt }" />
<c:set var="mlgMxmmUseAmt_Disabled_2" value="" />
</c:if>
<c:if test="${resultMap.sopmalDetailList[0].mlgMxmmUseDv eq '03'}" >
<c:set var="mlgMxmmUseAmt_3" value="${resultMap.sopmalDetailList[0].mlgMxmmUseAmt }" />
<c:set var="mlgMxmmUseAmt_Disabled_3" value="" />
</c:if>
<div class="custom-radio inner-input">
<input type="radio" id="mlgMxmmUse-b" name="mlgMxmmUseDv" value="02" onclick="fn_set_mlgDisabled('maxPct');" ${f:setChecked(resultMap.sopmalDetailList[0].mlgMxmmUseDv, '02') }>
<label for="mlgMxmmUse-b">
<span class="gray-7">{상품 실 결제금액} + {좌동} + {좌동} ···</span> 의
</label>
<div>
<input type="text" class="input-text xxsm ml-5 number right" name="mlgMxmmUseAmt" id="maxPct" title="마일리지 최대사용 %" maxlength="3" value="${mlgMxmmUseAmt_2 }" ${mlgMxmmUseAmt_Disabled_2 }>
<span class="input-unit-text mr-8">%</span>금액까지 사용 가능
</div>
</div>
<div class="custom-radio inner-input">
<input type="radio" id="mlgMxmmUse-c" name="mlgMxmmUseDv" value="03" onclick="fn_set_mlgDisabled('maxMlg');" ${f:setChecked(resultMap.sopmalDetailList[0].mlgMxmmUseDv, '03') } >
<label for="mlgMxmmUse-c">
</label>
<div>
<input class="input-text sm ml-5 number right" name="mlgMxmmUseAmt" id="maxMlg" title="마일리지 최대사용 금액" maxlength="7" value="${mlgMxmmUseAmt_3 }" ${mlgMxmmUseAmt_Disabled_3 }>
<span class="input-unit-text mr-8">원</span>까지 사용 가능
</div>
</div>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
</section>
</form>
<button class="scroll-to-top"><span class="visually-hidden">위로가기</span></button>
</div>
</div>
</form>
</main>
</body>

View File

@@ -271,11 +271,11 @@
/
<span>가로 :</span>
<span>모바일 가로 :</span>
<input class="input-text xsm" type="text" id="mblPopupLcX" name="mblPopupLcX"
oninput="fn_num_validateInput(this)" title="모바일 팝업위치 가로" maxlength="3">
<span class="gray-7">px</span>
<span class="ml-10">세로 :</span>
<span class="ml-10">모바일 세로 :</span>
<input class="input-text xsm" type="text" id="mblPopupLcY" name="mblPopupLcY"
oninput="fn_num_validateInput(this)" title="모바일 팝업위치 세로" maxlength="3">
<span class="gray-7">px</span>

View File

@@ -220,7 +220,7 @@
//상품문의 조회
fn_select_qna(1);
//반품교환정보 조회
//배송/반품정보 조회
fn_select_return_info();
//포토리뷰 이미지 제거
@@ -4533,7 +4533,7 @@
<a href="#productQnA" id="productQnAA">상품문의(<span id="goodsQnaCnt"><fmt:formatNumber value="${resultMap.bbscttInfo.qnaCnt}" pattern="#,###"/></span>)</a>
</li>
<li class="productDetailTab__item">
<a href="#productReTurn" id="productReTurnA">반품/교환정보</a>
<a href="#productReTurn" id="productReTurnA">배송/반품</a>
</li>
</ul>
</div>

View File

@@ -0,0 +1,40 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%--
Class Name : NtcntalkAtmcSndngTmplatUpdtPopupU.jsp
Description : 메시지 자동 발송 상세
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024.05.16 이대환 최초 생성
--%>
<script>
const fn_ageChk_yes = function() {
document.cookie = "ageChk=true; path=/; max-age=86400";
}
const fn_ageChk_no = function() {
window.location.href = "https://search.naver.com/search.naver?query=사케일잔";
}
</script>
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR&family=Noto+Sans+JP&display=swap" rel="stylesheet">
<div id="ageChkPopup" class="modal alert" style="max-width: 800px; font-family: 'Noto Sans JP', 'Noto Sans KR', sans-serif;">
<div class="alert-content">
<p class="alert-content__text" style="font-size: 35px;">
満20歳以上ですか?<br>
(만20세 이상입니까?)
</p>
<p class="alert-content__text--sm" style="font-size: 25px;">
20歳未満の飲酒は法律で禁止されています。<br>
(20세 미만의 음주는 법으로 금지되어 있습니다.)
</p>
</div>
<div class="alert-btn-container">
<a href="javascript:void(0);" onclick="fn_ageChk_yes();" rel="modal:close" class="alert-btn alert-btn--confirm" style="font-size: 20px;">はい (예)</a>
<a href="javascript:void(0);" onclick="fn_ageChk_no();" rel="modal:close" class="alert-btn alert-btn--confirm" style="font-size: 20px;">いいえ (아니오)</a>
</div>
</div>

View File

@@ -70,7 +70,7 @@
</c:if>
<div class="signUp-promotion__section">
<h5 class="signUp-promotion__section__title"><c:if test="${integrated}">GC ONE (통합 회원) </c:if>주요 혜택</h5>
<div class="signUp-promotion__col-3 ck-content">
<div class="signUp-promotion__section__content ck-content">
<c:out value='${sopmalInfo.joinBnef}' escapeXml='false'/>
</div>
</div>
@@ -83,10 +83,15 @@
<script type="text/javascript">
$(document).ready(function() {
let signUpPromo = $('.signUp-promotion__col-3.ck-content');
let figureTable = signUpPromo.find('figure.table');
if(figureTable.length == 4){
signUpPromo.removeClass('signUp-promotion__col-3').addClass('signUp-promotion__col-2');
let signUpPromo = $('.signUp-promotion__section__content');
let figureTable = signUpPromo.find('figure.table').length;
if(figureTable) {
if (figureTable % 3 == 0) {
signUpPromo.addClass('signUp-promotion__col-3');
} else if (figureTable % 2 == 0) {
signUpPromo.addClass('signUp-promotion__col-2');
}
}
});

View File

@@ -613,7 +613,11 @@
fn_set_csh_rcipt_issu(id);
}
} else {
$(form).find('#pgCmpnyNm').val($('input[name="pg"]:checked').val());
if('bank' === id) {
$(form).find('#pgCmpnyNm').val(id);
} else {
$(form).find('#pgCmpnyNm').val($('input[name="pg"]:checked').val());
}
if ('hndwr-card' !== id) {
if ('payco' === id || 'card' === id) {

View File

@@ -616,7 +616,11 @@
fn_set_csh_rcipt_issu(id);
}
} else {
$(form).find('#pgCmpnyNm').val($('input[name="pg"]:checked').val());
if('bank' === id) {
$(form).find('#pgCmpnyNm').val(id);
} else {
$(form).find('#pgCmpnyNm').val($('input[name="pg"]:checked').val());
}
if ('hndwr-card' !== id) {
if ('payco' === id || 'card' === id) {
@@ -3527,7 +3531,7 @@
function pay(method, requestJson, pgNm) {
if(pgNm === "naverpay"||pgNm === "kakaopay")
if(pgNm === "kakaopay")
tossPayments = TossPayments("${data.payInfo.easypayClntKey}");
tossPayments.requestPayment(method, requestJson)
@@ -4574,13 +4578,10 @@
</div>
</div>
</c:if>
<%--
<c:if test="${'Y' eq payInfo.npayUseAt}">
<div id="naverpay-content" class="order-method-normal__content" style="display: none">
<div id="naverpay-content-inner" class="order-method-normal__content-inner">
<div class="noempty">
</div>
</div>
<div id="naverpay-content-inner" class="order-method-normal__content-inner"></div>
</div>
</c:if>
<c:if test="${'Y' eq payInfo.kpayUseAt}">
@@ -4592,6 +4593,7 @@
</div>
</div>
</c:if>
--%>
</div>
</div>
</c:if>

View File

@@ -3935,7 +3935,7 @@ const fn_move_goodsDtl_login = () => {
<span class="productDetailTab__num"><span id="goodsQnaCnt"><fmt:formatNumber value="${resultMap.bbscttInfo.qnaCnt}" pattern="#,###"/></span></span>
</li>
<li class="productDetailTab__item">
<button id="productReTurnA">교환/반품</button>
<button id="productReTurnA">배송/반품</button>
</li>
</ul>
<div class="productDetailTab__content active">

View File

@@ -24,12 +24,15 @@
<script>
$(document).ready(function() {
fn_set_header_title("회원가입");
let signUpPromo = $('.signUp-promotion__section__content');
let figureTable = signUpPromo.find('figure.table').length;
let signUpPromo = $('.signUp-promotion__col-3.ck-content');
let figureTable = signUpPromo.find('figure.table');
if(figureTable.length == 4){
signUpPromo.removeClass('signUp-promotion__col-3').addClass('signUp-promotion__col-2');
if(figureTable) {
if (figureTable % 3 == 0) {
signUpPromo.addClass('signUp-promotion__col-3');
} else if (figureTable % 2 == 0) {
signUpPromo.addClass('signUp-promotion__col-2');
}
}
});
@@ -131,7 +134,7 @@
<div class="sub-box">
<div class="signUp-promotion__section">
<h5 class="signUp-promotion__section__title"><c:if test="${integrated}">GC ONE (통합 회원) </c:if>주요 혜택</h5>
<div class="signUp-promotion__col-3 ck-content">
<div class="signUp-promotion__section__content ck-content">
<c:out value='${sopmalInfo.joinBnef}' escapeXml='false'/>
</div>
</div>

View File

@@ -659,7 +659,11 @@
fn_set_csh_rcipt_issu(id);
}
} else {
$(form).find('#pgCmpnyNm').val($('input[name="pg"]:checked').val());
if('bank' === id) {
$(form).find('#pgCmpnyNm').val(id);
} else {
$(form).find('#pgCmpnyNm').val($('input[name="pg"]:checked').val());
}
if ('hndwr-card' !== id) {
if ('payco' === id || 'card' === id) {

View File

@@ -662,7 +662,11 @@
fn_set_csh_rcipt_issu(id);
}
} else {
$(form).find('#pgCmpnyNm').val($('input[name="pg"]:checked').val());
if('bank' === id) {
$(form).find('#pgCmpnyNm').val(id);
} else {
$(form).find('#pgCmpnyNm').val($('input[name="pg"]:checked').val());
}
if ('hndwr-card' !== id) {
if ('payco' === id || 'card' === id) {
@@ -4676,6 +4680,7 @@
</div>
</div>
</c:if>
<%--
<c:if test="${'Y' eq payInfo.npayUseAt}">
<div id="naverpay-content" class="order-method-normal__content" style="display: none">
<div id="naverpay-content-inner" class="order-method-normal__content-inner">
@@ -4694,6 +4699,7 @@
</div>
</div>
</c:if>
--%>
</div>
</div>
</c:if>