|
|
@@ -18,6 +18,24 @@
|
|
|
-->
|
|
|
<body>
|
|
|
<th:block layout:fragment="content">
|
|
|
+<form name="cartForm" id="cartForm" method="post">
|
|
|
+ <input type="hidden" name="mode">
|
|
|
+ <input type="hidden" name="goodsCd" th:value="${params.goodsCd}" />
|
|
|
+ <input type="hidden" name="contentsLoc" th:value="${params.contentsLoc}" />
|
|
|
+ <input type="hidden" name="ithrCd" th:value="${params.ithrCd}" />
|
|
|
+ <input type="hidden" name="planDtlSq" th:value="${params.planDtlSq}" />
|
|
|
+ <input type="hidden" name="adminYn" th:value="${params.adminYn}" />
|
|
|
+ <input type="hidden" name="optCd" />
|
|
|
+ <input type="hidden" name="optCd1" />
|
|
|
+ <input type="hidden" name="optCd2" />
|
|
|
+ <input type="hidden" name="addPrice" />
|
|
|
+ <input type="hidden" name="ordQty" />
|
|
|
+ <input type="hidden" name="stock" />
|
|
|
+ <input type="hidden" name="minOrdQty"/>
|
|
|
+ <input type="hidden" name="maxOrdQty"/>
|
|
|
+ <input type="hidden" name="currPrice" th:value="${goodsInfo.currPrice}"/>
|
|
|
+ <input type="hidden" name="goodsType" th:value="${goodsInfo.goodsType}"/>
|
|
|
+ <input type="hidden" name="selfGoodsYn" th:value="${goodsInfo.selfGoodsYn}"/>
|
|
|
<main role="" id="" class="container pd deal" th:with="imgGoodsUrl=${@environment.getProperty('upload.goods.view')}, uxImgUrl=${@environment.getProperty('domain.uximage')}, imgUrl=${@environment.getProperty('upload.image.view')}">
|
|
|
|
|
|
<!-- ★ 컨텐츠 시작 -->
|
|
|
@@ -173,15 +191,15 @@
|
|
|
<span class="title">옵션선택</span>
|
|
|
<div class="check_excluding form_field">
|
|
|
<div>
|
|
|
- <input id="excluding" type="checkbox" onclick='getGuidance(event)'><label for="excluding"> <span>품절제외</span> </label>
|
|
|
+ <input id="soldoutSkipYn" name="soldoutSkipYn" type="checkbox" value="Y" th:onclick="fnDealCompsGoods('Up',[[${goodsInfo.goodsCd}]]);"><label for="soldoutSkipYn"><span>품절제외</span> </label>
|
|
|
</div>
|
|
|
<div class="guidance" >
|
|
|
<!--210409_ 추가 : .guidance에 .ontoast 추가 시, toast 팝업 작동 -->
|
|
|
- <p><span>99</span>개 품절 옵션이 제외되었습니다</p>
|
|
|
+ <p>품절 옵션이 제외되었습니다</p>
|
|
|
</div>
|
|
|
<script>
|
|
|
- function getGuidance(event) {
|
|
|
- if(event.target.checked){
|
|
|
+ function getGuidance() {
|
|
|
+ if($('.pop_option_select').find('input[name=soldoutSkipYn]').is(":checked")){
|
|
|
$(".guidance").addClass("ontoast");
|
|
|
setTimeout(function(){$(".guidance").removeClass("ontoast");}, 5000);
|
|
|
}
|
|
|
@@ -189,11 +207,11 @@
|
|
|
</script>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <form class="form_wrap">
|
|
|
- <div class="form_field mb20">
|
|
|
+ <div class="form_wrap">
|
|
|
+ <div class="form_field mb20" id="form_field_item_Up">
|
|
|
<div class="select_custom deal_opt_item"> <!-- active -->
|
|
|
<div class="combo">
|
|
|
- <div class="select">상품</div>
|
|
|
+ <div class="select">상품선택</div>
|
|
|
<ul class="list">
|
|
|
<!-- 선택처리 class="selected" / 선택불가 aria-disabled="true" / 품절표기 data-soldout="true" 추가 -->
|
|
|
<li th:each="goodsInfo, status : ${goodsDealComposeList}"
|
|
|
@@ -214,7 +232,7 @@
|
|
|
<span class="itemPercent" th:if="${goodsInfo.dcRate > 0}" th:text="|${#numbers.formatDecimal(goodsInfo.dcRate,0,0)}%|">10%</span>
|
|
|
</p>
|
|
|
</a>
|
|
|
- <input type="hidden" name="selectGoods" th:value="${goodsInfo.compsGoodsCd}" />
|
|
|
+ <input type="hidden" name="selectGoods" th:attr="goodsNm=${'[상품'+status.count+']' +goodsInfo.goodsFullNm}, currPrice=${goodsInfo.currPrice}, goodsCd=${goodsInfo.compsGoodsCd}" />
|
|
|
</div>
|
|
|
</div>
|
|
|
</li>
|
|
|
@@ -242,7 +260,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </form>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -252,36 +270,29 @@
|
|
|
<div class="body btPop_foot btPopAuto_foot">
|
|
|
<!-- 총 결재금액, 하단버튼 -->
|
|
|
<div class="pay_box">
|
|
|
- <div class="price_box">
|
|
|
+ <div class="price_box" style="display:none;">
|
|
|
<p class="number">
|
|
|
- 총 <span>99</span>개
|
|
|
+ 총 <span id="goodsTotalQty">0</span>개
|
|
|
</p>
|
|
|
<p class="price">
|
|
|
<span>
|
|
|
- 99,999,999<em>원</em>
|
|
|
+ <b id="goodsTotalPrice">0</b><em>원</em>
|
|
|
</span>
|
|
|
</p>
|
|
|
</div>
|
|
|
<div class="btn_box">
|
|
|
- <button class="gift" id="btn_gift">
|
|
|
+ <button type="button" class="gift" id="btn_gift" onclick="fnAddCart('G','Up');" th:if="${goodsInfo.giftPackYn == 'Y'}">
|
|
|
<span><span>선물해보세요!</span></span>
|
|
|
</button>
|
|
|
- <button class="cart" id="btn_shoppingBag_pop">쇼핑백</button>
|
|
|
- <button class="buyNow" id="btn_now_purchase">바로구매</button>
|
|
|
+ <th:block th:if="${goodsInfo.stockQty > 0 and goodsInfo.goodsStat == 'G008_90'}">
|
|
|
+ <button type="button" class="cart" id="btnGoodsWish" onclick="fnAddCart('C','Up');" >쇼핑백</button>
|
|
|
+ <button type="button" class="buyNow" id="btnGoodsCart" onclick="fnAddCart('O','Up');">바로구매</button>
|
|
|
+ </th:block>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<!-- 구매하기팝업 -->
|
|
|
-
|
|
|
- <!-- 쇼핑백팝업 -->
|
|
|
- <div id="shoppingBagModal">
|
|
|
- <div class="shoppingBag_box">
|
|
|
- <p>쇼핑백에 상품을 담았습니다.</p>
|
|
|
- <a href="#none" class="link_shoppingBag">쇼핑백 바로가기</a>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <!-- //쇼핑백팝업 -->
|
|
|
</div>
|
|
|
<!-- 팝업영역 -->
|
|
|
|
|
|
@@ -291,17 +302,23 @@
|
|
|
<!-- 바닥메뉴 -->
|
|
|
<div class="product_floormenu"><!-- ☞☞ 제품이 품절되면 soldout클래스 추가 -->
|
|
|
<div class="share_like">
|
|
|
- <button class="share">공유하기</button>
|
|
|
- <button class="like">위시리스트</button>
|
|
|
+ <button type="button" class="share">공유하기</button>
|
|
|
+ <button type="button" class="like" th:classappend="${goodsInfo.wishYn == 'Y'}? 'active' : ''"
|
|
|
+ onclick="cfnPutWishList(this);"
|
|
|
+ th:attr="goodsCd=${params.goodsCd}, ithrCd=${params.ithrCd}, contentsLoc=${params.contentsLoc}, planDtlSq=${params.planDtlSq}">위시리스트</button>
|
|
|
</div>
|
|
|
<div class="prd_buy">
|
|
|
- <button class="buying btPop_auto" id="btn_purchase">구매하기</button>
|
|
|
- <button class="cantbuying">SOLD OUT</button>
|
|
|
+ <th:block th:if="${goodsInfo.stockQty > 0 and goodsInfo.goodsStat == 'G008_90'}">
|
|
|
+ <button type="button" class="buying btPop_auto" id="btn_purchase">구매하기</button>
|
|
|
+ </th:block>
|
|
|
+ <th:block th:unless="${goodsInfo.stockQty > 0 and goodsInfo.goodsStat == 'G008_90'}">
|
|
|
+ <button type="button" class="cantbuying" style="display:block;">SOLD OUT</button>
|
|
|
+ </th:block>
|
|
|
</div>
|
|
|
</div>
|
|
|
<!-- //바닥메뉴 -->
|
|
|
</main>
|
|
|
-
|
|
|
+</form>
|
|
|
<!-- 바로구매 및 선물하기 장바구니 등록 정보 저장을 위한 form -->
|
|
|
<form id="directOrderForm" method="POST" action="/order/noMember"></form>
|
|
|
|
|
|
@@ -315,10 +332,90 @@
|
|
|
gagajf.ajaxSubmit("/goods/detail/together/frame", "html", "goodsTogetherbArea", params);
|
|
|
}
|
|
|
|
|
|
+ //구성상품 조회
|
|
|
+ var fnDealCompsGoods = function(flag, goodsCd){
|
|
|
+ // 품절제외 여부
|
|
|
+ let optionSoldoutSkip = $('.pop_option_select').find('input[name=soldoutSkipYn]').is(":checked") ? 'Y' : 'N';
|
|
|
+ let data = {goodsCd : goodsCd
|
|
|
+ ,optionSoldoutSkip : optionSoldoutSkip
|
|
|
+ };
|
|
|
+ let jsonData = JSON.stringify(data);
|
|
|
+
|
|
|
+ $('.form_field .select_custom.item_opt1').attr('disabled', true);
|
|
|
+ $('.form_field .select_custom.item_opt1').find('.combo .select').html('옵션1선택');
|
|
|
+ $('.form_field .select_custom.item_opt2').attr('disabled', true);
|
|
|
+ $('.form_field .select_custom.item_opt2').find('.combo .select').html('옵션2선택');
|
|
|
+
|
|
|
+ gagajf.ajaxJsonSubmit('/goods/detail/compsGoods/list', jsonData, function(result) {
|
|
|
+ if (result.dataList != null && result.dataList.length > 0) {
|
|
|
+ let tagUpS = "";
|
|
|
+ $.each(result.dataList, function(idx, item) {
|
|
|
+ let tagUp = "";
|
|
|
+ let tag1 = "";
|
|
|
+ if (idx == 0){
|
|
|
+ $objUp = $('.pd_detail .opt_select .select_custom.deal_opt_item');
|
|
|
+ $objUp.remove();
|
|
|
+ //------
|
|
|
+ tag1 += '<div class="select_custom deal_opt_item">\n';
|
|
|
+ tag1 += '<div class="combo">\n';
|
|
|
+ tag1 += '<div class="select">상품선택</div>\n';
|
|
|
+ tag1 += '<ul class="list">\n';
|
|
|
+ //------
|
|
|
+ }
|
|
|
+ let soldoutYn = "";
|
|
|
+ let disabledYn = "";
|
|
|
+ if (item.stockQty <= 0) soldoutYn = "true";
|
|
|
+ if (soldoutYn == "true" || item.goodsStat != 'G008_90') disabledYn = "true";
|
|
|
+ tagUp += '<li aria-disabled="'+disabledYn+'" data-soldout="'+soldoutYn +'" onclick="fnOption1(\'Up\', \''+ item.compsGoodsCd+'\', '+ item.currPrice+ ', \''+ item.selfGoodsYn+'\')">\n';
|
|
|
+ tagUp += ' <div class="item_prod" goodsCd='+item.compsGoodsCd+'">\n';
|
|
|
+ tagUp += ' <div class="item_state">\n';
|
|
|
+ tagUp += ' <a href="javascript:void(0);" class="itemLink">\n';
|
|
|
+ tagUp += ' <div class="itemPic">\n';
|
|
|
+ tagUp += ' <img alt="" class="vLHTC pd_img" src="'+_uploadGoodsUrl+'/'+item.sysImgNm+'?RS=44" onerror="' + _uximgUrl + '/images/pc/thumb/bg_item_none.png" >\n';
|
|
|
+ tagUp += ' </div>\n';
|
|
|
+ tagUp += ' <p class="itemBrand">'+item.brandGroupNm+'</p>\n';
|
|
|
+ tagUp += ' <div class="itemName" ><span class="tit_option">[상품'+(idx+1)+']</span> '+ item.goodsFullNm +'</div>\n';
|
|
|
+ tagUp += ' <p class="itemPrice">\n';
|
|
|
+ if (Number(item.listPrice) > Number(item.currPrice)){
|
|
|
+ tagUp += ' <span class="itemPrice_original">'+item.listPrice.addComma()+'</span>\n';
|
|
|
+ }
|
|
|
+ tagUp += ' '+item.currPrice.addComma()+'\n';
|
|
|
+ if (Number(item.dcRate) > 0){
|
|
|
+ tagUp += ' <span class="itemPercent">'+item.dcRate+'%</span>\n';
|
|
|
+ }
|
|
|
+ tagUp += ' </p>\n';
|
|
|
+ tagUp += ' </a>\n';
|
|
|
+ tagUp += ' <input type="hidden" name="selectGoods" goodsNm="[상품'+(idx+1)+']'+item.goodsFullNm +'" currPrice="'+ item.currPrice +'" goodsCd="'+ item.compsGoodsCd +'" />\n';
|
|
|
+ tagUp += ' </div>\n';
|
|
|
+ tagUp += ' </div>\n';
|
|
|
+ tagUp += '</li>\n';
|
|
|
+
|
|
|
+ tagUpS += tag1+tagUp
|
|
|
+
|
|
|
+ });
|
|
|
+
|
|
|
+ if (!gagajf.isNull(tagUpS)){
|
|
|
+ //------
|
|
|
+ tagUpS += '</ul>\n';
|
|
|
+ tagUpS += '</div>\n';
|
|
|
+ tagUpS += '</div>\n';
|
|
|
+ //------
|
|
|
+ }
|
|
|
+
|
|
|
+ $('#form_field_item_'+flag).append(tagUpS);
|
|
|
+ var detail_deal_option = new sCombo('.pd_detail .opt_select .select_custom.deal_opt_item');
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
// 옵션1 조회
|
|
|
var fnOption1 = function(flag, goodsCd, currPrice, selfGoodsYn){
|
|
|
|
|
|
+ // 품절제외 여부
|
|
|
+ let optionSoldoutSkip = $('.pop_option_select').find('input[name=soldoutSkipYn]').is(":checked") ? 'Y' : 'N';
|
|
|
+
|
|
|
let data = {goodsCd : goodsCd
|
|
|
+ ,optionSoldoutSkip : optionSoldoutSkip
|
|
|
};
|
|
|
let jsonData = JSON.stringify(data);
|
|
|
|
|
|
@@ -331,17 +428,14 @@
|
|
|
if (result.dataList != null && result.dataList.length > 0) {
|
|
|
|
|
|
let tagUpS = "";
|
|
|
- let tagDownS = "";
|
|
|
let tagUp = "";
|
|
|
- let tagDown = "";
|
|
|
let $objUp = null;
|
|
|
- let $objDown = null;
|
|
|
let qty = 1;
|
|
|
$.each(result.dataList, function(idx, item) {
|
|
|
let tag1 = "";
|
|
|
let tag2 = "";
|
|
|
if (idx == 0){
|
|
|
- $objUp = $('.pd_detail .pop_option_select .select_custom.item_opt1');
|
|
|
+ $objUp = $('.pd_detail .opt_select .select_custom.item_opt1');
|
|
|
$objUp.remove();
|
|
|
//------
|
|
|
tag1 += '<div class="select_custom item_opt1">\n';
|
|
|
@@ -351,9 +445,12 @@
|
|
|
//------
|
|
|
//tag1 += '<li class="selected" id="goodsOpt1">옵션1선택</li>\n';
|
|
|
}
|
|
|
+
|
|
|
let soldoutYn = "";
|
|
|
+ let disabledYn = "";
|
|
|
if (item.stockQty <= 0) soldoutYn = "true";
|
|
|
- tagUp = '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnOption2(this, \'Up\')">\n';
|
|
|
+ if (soldoutYn == "true" || item.goodsStat != 'G008_90') disabledYn = "true";
|
|
|
+ tagUp = '<li aria-disabled="'+disabledYn+'" data-soldout="'+soldoutYn +'" onclick="fnOption2(this, \'Up\')">\n';
|
|
|
tag2 += '<div class="opt_name">'+ item.optCd1Nm+'</div>\n';
|
|
|
if (item.addPrice > 0){
|
|
|
tag2 += '<div class="opt_price">+'+ item.addPrice.addComma() +'원</div>\n';
|
|
|
@@ -362,7 +459,6 @@
|
|
|
tag2 += '</li>\n';
|
|
|
|
|
|
tagUpS += tag1+tagUp+tag2;
|
|
|
- tagDownS += tag1+tagDown+tag2;
|
|
|
|
|
|
});
|
|
|
|
|
|
@@ -375,8 +471,7 @@
|
|
|
}
|
|
|
|
|
|
$('#form_field1_'+flag).append(tagUpS);
|
|
|
- var detail_deal_option02 = new sCombo('.pd_detail .pop_option_select .select_custom.item_opt1');
|
|
|
- //$('.pd_detail .opt_select .select_custom.deal_opt1').find('.combo .select').trigger('click');
|
|
|
+ var detail_deal_option02 = new sCombo('.pd_detail .opt_select .select_custom.item_opt1');
|
|
|
|
|
|
}
|
|
|
|
|
|
@@ -396,8 +491,13 @@
|
|
|
let maxOrdQty = $target.attr("maxOrdQty");
|
|
|
let selfGoodsYn = $target.attr("selfGoodsYn");
|
|
|
|
|
|
+ // 품절제외 여부
|
|
|
+ let optionSoldoutSkip = $('.pop_option_select').find('input[name=soldoutSkipYn]').is(":checked") ? 'Y' : 'N';
|
|
|
+
|
|
|
let data = {goodsCd : goodsCd
|
|
|
,optCd1 : optCd1
|
|
|
+ ,optionSoldoutSkip : optionSoldoutSkip
|
|
|
+ ,mastrGoodsCd : $('#cartFprm input[name=goodsCd]').val()
|
|
|
};
|
|
|
let jsonData = JSON.stringify(data);
|
|
|
|
|
|
@@ -405,17 +505,14 @@
|
|
|
|
|
|
if (result.dataList != null && result.dataList.length > 0) {
|
|
|
let tagUpS = "";
|
|
|
- let tagDownS = "";
|
|
|
let tagUp = "";
|
|
|
- let tagDown = "";
|
|
|
let $objUp = null;
|
|
|
- let $objDown = null;
|
|
|
$.each(result.dataList, function(idx, item) {
|
|
|
let tag1 = "";
|
|
|
let tag2 = "";
|
|
|
if (idx == 0){
|
|
|
|
|
|
- $objUp = $('.pd_detail .pop_option_select .select_custom.item_opt2');
|
|
|
+ $objUp = $('.pd_detail .opt_select .select_custom.item_opt2');
|
|
|
// $objUp.html('');
|
|
|
$objUp.remove();
|
|
|
|
|
|
@@ -428,15 +525,12 @@
|
|
|
//------
|
|
|
//tag1 += '<li class="selected" id="goodsOpt2">옵션2</li>\n';
|
|
|
}
|
|
|
+
|
|
|
let soldoutYn = "";
|
|
|
- if ("Y" == item.soldoutYn || item.stockQty <= 0)soldoutYn = "true";
|
|
|
- if (flag == "layer"){
|
|
|
- tagUp = '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStock(this, \'layer\' )">\n';
|
|
|
- }else if (flag == "Up"){
|
|
|
- tagUp = '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStock(this, \'Up\' )">\n';
|
|
|
- }else{
|
|
|
- tagDown = '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStock(this, \'Down\' )">\n';
|
|
|
- }
|
|
|
+ let disabledYn = "";
|
|
|
+ if ("Y" == item.soldoutYn || item.stockQty <= 0) soldoutYn = "true";
|
|
|
+ if (soldoutYn == "true") disabledYn = "true";
|
|
|
+ tagUp = '<li aria-disabled="'+disabledYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStock(this, \'Up\' )">\n';
|
|
|
tag2 += '<div class="opt_name">'+ item.optCd2+'</div>\n';
|
|
|
if (item.addPrice > 0){
|
|
|
tag2 += '<div class="opt_price">+'+ item.addPrice.addComma() +'원</div>\n';
|
|
|
@@ -445,8 +539,6 @@
|
|
|
tag2 += '</li>\n';
|
|
|
|
|
|
tagUpS += tag1+tagUp+tag2;
|
|
|
- tagDownS += tag1+tagDown+tag2;
|
|
|
-
|
|
|
});
|
|
|
|
|
|
if (!gagajf.isNull(tagUpS)){
|
|
|
@@ -459,13 +551,121 @@
|
|
|
}
|
|
|
|
|
|
$('#form_field2_'+flag).append(tagUpS);
|
|
|
- var detail_deal_option03 = new sCombo('.pd_detail .pop_option_select .select_custom.item_opt2');
|
|
|
+ var detail_deal_option03 = new sCombo('.pd_detail .opt_select .select_custom.item_opt2');
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+ //사이즈 클릭시 - 단품
|
|
|
+ var fnViewStock = function(obj, flag ) {
|
|
|
+
|
|
|
+ let $obj = $(obj);
|
|
|
+ let $target = $obj.find('input[name="opt2"]');
|
|
|
+ let goodsCd = $target.val();
|
|
|
+ let currPrice = $target.attr("currPrice");
|
|
|
+ let optCd = $target.attr("optCd");
|
|
|
+ let optCd1 = $target.attr("optCd1");
|
|
|
+ let optCd1Nm = $target.attr("optCd1Nm");
|
|
|
+ let optCd2 = $target.attr("optCd2");
|
|
|
+ let minOrdQty = $target.attr("minOrdQty");
|
|
|
+ let maxOrdQty = $target.attr("maxOrdQty");
|
|
|
+ let addPrice = $target.attr("addPrice");
|
|
|
+ let selfGoodsYn = $target.attr("selfGoodsYn");
|
|
|
+ let optQty = minOrdQty;
|
|
|
+ let maxCnt = maxOrdQty;
|
|
|
+
|
|
|
+ let params = new Object();
|
|
|
+ params.goodsCd = goodsCd;
|
|
|
+ params.optCd = optCd;
|
|
|
+ params.optCd1 = optCd1;
|
|
|
+ params.optCd2 = optCd2;
|
|
|
+ params.selfGoodsYn = selfGoodsYn;
|
|
|
+
|
|
|
+ // 중복선택 확인 opt_result
|
|
|
+ var overlap = 0;
|
|
|
+ $('.pd_detail .opt_result .number_count').each(function() {
|
|
|
+ if ($('input[name="coption"]', this).val() == optCd) {
|
|
|
+ ++overlap;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (overlap > 0) {
|
|
|
+ mcxDialog.alert("이미 선택하신 옵션입니다.");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ $.get("/goods/detail/ajaxGoodsStockQty", $.param(params), function(result) {
|
|
|
+ let itemCnt = eval(result); //해당 아이템에 선택되어진 사이즈의 수량
|
|
|
+
|
|
|
+ if (maxCnt > itemCnt) {
|
|
|
+ maxCnt = itemCnt;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (minOrdQty > itemCnt) {
|
|
|
+ //alert("무슨작업을 해야할가요?");
|
|
|
+ return false; //무슨작업을 해야하나?
|
|
|
+ }
|
|
|
+
|
|
|
+ //상품정보
|
|
|
+ let $selObj = null;
|
|
|
+ $selObj = $('.pd_detail .opt_select .select_custom.deal_opt_item');
|
|
|
+ let $goodsObj =$selObj.find('.combo .select').find('input[name=selectGoods]');
|
|
|
+ let goodsNm = $goodsObj.attr('goodsnm');
|
|
|
+ let goodsCd = $goodsObj.attr('goodscd');
|
|
|
+ let price = parseInt(currPrice)+ parseInt(addPrice);
|
|
|
+
|
|
|
+ let tag = "";
|
|
|
+ tag += '<div class="result_item result_'+optCd+'">\n';
|
|
|
+ tag += ' <div class="opt_header">\n';
|
|
|
+ tag += ' <span class="item_name">'+goodsNm+'</span>\n';
|
|
|
+ tag += ' <span class="item_option">'+optCd1Nm+'/'+optCd2+'</span>\n';
|
|
|
+ tag += ' </div>\n';
|
|
|
+ tag += ' <div class="number_count">\n';
|
|
|
+ tag += ' <span class="minus min_val" onclick="fnAdjustOrderEa(this);" adjust="-"><em class="sr-only">감소</em></span>\n';
|
|
|
+ tag += ' <input type="text" name="cea" optCd="'+optCd+'" maxlength="3" style="ime-mode:disabled" value="' +optQty+'" readonly>\n';
|
|
|
+ tag += ' <input type="hidden" name="coption" value="'+optCd+'" goodsCd="'+goodsCd+'" price="'+currPrice+'" addPrice="'+addPrice+'">\n';
|
|
|
+ tag += ' <span class="plus" onclick="fnAdjustOrderEa(this);" adjust="+"><em class="sr-only">추가</em></span>\n';
|
|
|
+ tag += ' </div>\n';
|
|
|
+ tag += ' <div class="item_price">\n';
|
|
|
+ tag += ' <p><em id="goodsPrice">'+price.addComma() +'</em>원</p>\n';
|
|
|
+ tag += ' </div>\n';
|
|
|
+ tag += ' <button type="button" class="btn_delete_item" onclick="fnSelectGoodsDel(\''+optCd+'\')"><span>삭제</span></button>\n';
|
|
|
+ tag += '</div>\n';
|
|
|
+
|
|
|
+
|
|
|
+ let $objUp = null;
|
|
|
+ $objUp = $('.pd_detail .opt_result');
|
|
|
+ $objUp.prepend(tag);
|
|
|
+
|
|
|
+ $('.price_box').show();
|
|
|
+ fnSetTotalPrice();
|
|
|
+
|
|
|
+ var dTag = '';
|
|
|
+ dTag += '';
|
|
|
+ dTag += '<div class="item_prod">\n';
|
|
|
+ dTag += '<div class="item_state">\n';
|
|
|
+ dTag += ' <a href="javascript:void(0);" class="itemLink">\n';
|
|
|
+ dTag += ' <div class="itemPic">\n';
|
|
|
+ dTag +=' <img class="vLHTC pd_img" src="'+_uploadGoodsUrl +'/'+[[${goodsInfo.sysImgNm}]]+'?RS=285" alt="" onerror="' + _uximgUrl + '/images/pc/thumb/bg_item_none.png" />\n';
|
|
|
+ dTag += ' </div>\n';
|
|
|
+ dTag += ' <div class="itemName">상품선택</div>\n';
|
|
|
+ dTag += ' </a>\n';
|
|
|
+ dTag += '</div>\n';
|
|
|
+ dTag += '</div>\n';
|
|
|
+
|
|
|
+ //$('.pd_detail .opt_select .select_custom.deal_opt_item').find('.combo .select').html(dTag);
|
|
|
+ //var opt_selecter_item = new sCombo('.opt_select .select_custom.deal_opt_item');
|
|
|
+ $('.form_field .select_custom.item_opt1').attr('disabled', true);
|
|
|
+ $('.form_field .select_custom.item_opt1').find('.combo .select').html('옵션1선택');
|
|
|
+ $('.form_field .select_custom.item_opt2').attr('disabled', true);
|
|
|
+ $('.form_field .select_custom.item_opt2').find('.combo .select').html('옵션2선택');
|
|
|
+
|
|
|
+ $('.pop_option_select').css("display", "none");
|
|
|
+
|
|
|
+ }, "text");
|
|
|
+ }
|
|
|
+
|
|
|
// 수량 변경 클릭
|
|
|
var fnAdjustOrderEa = function(obj) {
|
|
|
|
|
|
@@ -572,31 +772,17 @@
|
|
|
|
|
|
//합계 계산
|
|
|
var fnSetTotalPrice = function() {
|
|
|
+
|
|
|
+ $('.price_box').show();
|
|
|
//let f = document.cartForm;
|
|
|
|
|
|
let totalEa = 0;
|
|
|
let totalPrice = 0;
|
|
|
|
|
|
- $('input[name="cea"]').each(function() {
|
|
|
+ $('input[name="cea"]', document.cartForm).each(function() {
|
|
|
let ea = parseInt($(this).val());
|
|
|
- let addPrice = 0;
|
|
|
-
|
|
|
- if("G056_N" == $("#cartForm input[name=goodsType]").val() && "Y" == $("#cartForm input[name=selfGoodsYn]").val()){
|
|
|
- let target=$('.opt_size').find('input[name=opt]');
|
|
|
- target.each(function() {
|
|
|
- if ($(this).is(":checked")){
|
|
|
- addPrice += Number($(this).attr('addPrice'));
|
|
|
- }
|
|
|
- });
|
|
|
- }else{
|
|
|
-
|
|
|
- let target=$('.select_custom.item_opt2');
|
|
|
- target.each(function() {
|
|
|
- if (typeof ($(this).find('input[name=opt2]').val()) != 'undefined' && !gagajf.isNull($(this).find('input[name=opt2]').val())){
|
|
|
- addPrice += Number($(this).find('input[name=opt2]').attr('addPrice'));
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
+ let target=$('.select_custom.item_opt2');
|
|
|
+ let addPrice = parseInt($(this).parent().find('input[name="coption"]').attr('addprice'));
|
|
|
let goodsPrice = parseInt($(this).parent().find('input[name="coption"]').attr('price'));
|
|
|
|
|
|
totalEa += ea;
|
|
|
@@ -605,8 +791,12 @@
|
|
|
}
|
|
|
});
|
|
|
|
|
|
- $('#goodsTotalQty').html(totalEa.addComma());
|
|
|
- $('#goodsTotalPrice').html(totalPrice.addComma());
|
|
|
+ $('.price_box .number span').html(totalEa.addComma());
|
|
|
+ $('.price_box .price > span').html(totalPrice.addComma());
|
|
|
+
|
|
|
+ if ($('input[name="cea"]', document.cartForm).length <= 0 ) {
|
|
|
+ $('.price_box').hide();
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|
|
|
@@ -617,110 +807,43 @@
|
|
|
}
|
|
|
|
|
|
//장바구니담기
|
|
|
- var fnAddCart = function(btnType){
|
|
|
+ var fnAddCart = function(btnType, flag){
|
|
|
+ let compsList = [];
|
|
|
|
|
|
- let params = [];
|
|
|
- let goodsType = $("#cartForm input[name=goodsType]").val();
|
|
|
- let selfGoodsYn = $("#cartForm input[name=selfGoodsYn]").val();
|
|
|
-
|
|
|
- if (goodsType == 'G056_N' && selfGoodsYn == 'Y' ){
|
|
|
- if (gagajf.isNull($("#cartForm input[name=optCd2]").val())) {
|
|
|
- mcxDialog.alert("사이즈를 선택해 주세요.");
|
|
|
- return;
|
|
|
- }
|
|
|
+ let $target = $('#cartForm input[name=cea]');
|
|
|
+ let targetSize = $target.length; //선택성품 갯수
|
|
|
|
|
|
- let compsList = [];
|
|
|
- let obj = new Object();
|
|
|
- obj.goodsCd = $("#cartForm input[name=goodsCd]").val();
|
|
|
- obj.optCd = $("#cartForm input[name=optCd]").val();
|
|
|
- obj.goodsQty = $("#cartForm input[name=ordQty]").val();
|
|
|
- obj.goodsType = $("#cartForm input[name=goodsType]").val();
|
|
|
+ $target.each(function() {
|
|
|
+
|
|
|
+ let ea = parseInt($(this).val());
|
|
|
+ let goodsCd = $(this).parent().find('input[name="coption"]').attr('goodscd');
|
|
|
+ let optCd = $(this).parent().find('input[name="coption"]').val();
|
|
|
+ //let addPrice = parseInt($(this).parent().find('input[name="coption"]').attr('addprice'));
|
|
|
+ //let goodsPrice = parseInt($(this).parent().find('input[name="coption"]').attr('price'));
|
|
|
+
|
|
|
+ var obj = new Object();
|
|
|
obj.cartGb = btnType;
|
|
|
+ obj.goodsType = $("#cartForm input[name=goodsType]").val();
|
|
|
+ obj.goodsCd = goodsCd;
|
|
|
+ obj.optCd = optCd;
|
|
|
+ obj.goodsQty = ea;
|
|
|
+ obj.dealGoodsCd = $("#cartForm input[name=goodsCd]").val();
|
|
|
obj.afLinkCd =$("#cartForm input[name=afLinkCd]").val();
|
|
|
obj.ithrCd =$("#cartForm input[name=ithrCd]").val();
|
|
|
obj.contentsLoc =$("#cartForm input[name=contentsLoc]").val();
|
|
|
obj.planDtlSq = $("#cartForm input[name=planDtlSq]").val();
|
|
|
compsList.push(obj);
|
|
|
|
|
|
- // 장바구니담기
|
|
|
- cfnAddCart(compsList);
|
|
|
-
|
|
|
- }else {
|
|
|
-
|
|
|
- let cartGoodsList = [];
|
|
|
-
|
|
|
- let target = $('#cartForm input[name=cea]');
|
|
|
-
|
|
|
- if (goodsType == 'G056_N'){
|
|
|
- let compsList = [];
|
|
|
- target.each(function() {
|
|
|
-
|
|
|
- let ea = parseInt($(this).val());
|
|
|
- let goodsCd = $(this).parent().find('input[name="coption"]').attr('goodscd');
|
|
|
- let optCd = $(this).parent().find('input[name="coption"]').val();
|
|
|
- //let addPrice = parseInt($(this).parent().find('input[name="coption"]').attr('addprice'));
|
|
|
- //let goodsPrice = parseInt($(this).parent().find('input[name="coption"]').attr('price'));
|
|
|
-
|
|
|
- var obj = new Object();
|
|
|
- obj.cartGb = btnType;
|
|
|
- obj.goodsType = $("#cartForm input[name=goodsType]").val();
|
|
|
- obj.goodsCd = goodsCd
|
|
|
- obj.optCd = optCd;
|
|
|
- obj.goodsQty = ea;
|
|
|
- obj.afLinkCd =$("#cartForm input[name=afLinkCd]").val();
|
|
|
- obj.ithrCd =$("#cartForm input[name=ithrCd]").val();
|
|
|
- obj.contentsLoc =$("#cartForm input[name=contentsLoc]").val();
|
|
|
- obj.planDtlSq = $("#cartForm input[name=planDtlSq]").val();
|
|
|
- compsList.push(obj);
|
|
|
-
|
|
|
- });
|
|
|
-
|
|
|
-
|
|
|
- // 장바구니담기
|
|
|
- cfnAddCart(compsList);
|
|
|
-
|
|
|
- }else{ // 세트
|
|
|
-
|
|
|
- target.each(function() {
|
|
|
- let compsList = [];
|
|
|
- let goodsList = {
|
|
|
- cartCompsList : new Array()
|
|
|
- }
|
|
|
-
|
|
|
- let ea = parseInt($(this).val());
|
|
|
-
|
|
|
- let targetItem = $(this).parent().parent().find('.bundle'); // 구성상품
|
|
|
- targetItem.each(function() {
|
|
|
- var obj = new Object();
|
|
|
- obj.cartGb = btnType;
|
|
|
- obj.goodsType = $("#cartForm input[name=goodsType]").val();
|
|
|
- obj.goodsCd = $("#cartForm input[name=goodsCd]").val();
|
|
|
-
|
|
|
- obj.itemCd = $(this).find('input[name=selOption]').attr('goodsCd');
|
|
|
- obj.optCd = $(this).find('input[name=selOption]').attr('optCd');
|
|
|
-
|
|
|
- obj.goodsQty = ea;
|
|
|
- obj.afLinkCd =$("#cartForm input[name=afLinkCd]").val();
|
|
|
- obj.ithrCd =$("#cartForm input[name=ithrCd]").val();
|
|
|
- obj.contentsLoc =$("#cartForm input[name=contentsLoc]").val();
|
|
|
- obj.planDtlSq = $("#cartForm input[name=planDtlSq]").val();
|
|
|
- compsList.push(obj);
|
|
|
- });
|
|
|
-
|
|
|
- goodsList.cartCompsList = compsList;
|
|
|
- cartGoodsList.push(goodsList);
|
|
|
-
|
|
|
- });
|
|
|
-
|
|
|
- // 장바구니담기
|
|
|
- cfnAddCart(cartGoodsList);
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
+ });
|
|
|
+
|
|
|
+ // 장바구니담기
|
|
|
+ cfnAddCart(compsList);
|
|
|
+
|
|
|
}
|
|
|
-
|
|
|
|
|
|
$(document).ready( function() {
|
|
|
+
|
|
|
+ $('.timer_box').css('display', 'none');
|
|
|
|
|
|
var params = new Object();
|
|
|
params.goodsCd = [[${params.goodsCd}]];
|
|
|
@@ -732,13 +855,42 @@
|
|
|
params.supplyCompCd = [[${params.supplyCompCd}]];
|
|
|
params.brandGroupNm = [[${goodsInfo.brandGroupNm}]];
|
|
|
|
|
|
- // selecter
|
|
|
- $(function(){
|
|
|
- var opt_selecter_item = new sCombo('.pop_option_select .select_custom.deal_opt_item');
|
|
|
- //var item_opt01 = new sCombo('.pd .pop_option_select .item_opt1');
|
|
|
- //var item_opt02 = new sCombo('.pd .pop_option_select .item_opt2');
|
|
|
- var opt_select = new sCombo('.pd .op1 .opt_select .select_custom');
|
|
|
- });
|
|
|
+ if (!gagajf.isNull([[${goodsInfo.socialSq}]])){
|
|
|
+ $('.timer_box').css('display', 'block');
|
|
|
+ /* 행사 남은시간 */
|
|
|
+ function promotionTimer() {
|
|
|
+ var endTime = new Date([[${goodsInfo.socialEddt}]]); // 남은시간 지정 30 March 2021 9:56:00 GMT+0900
|
|
|
+ endTime = (Date.parse(endTime) / 1000);
|
|
|
+
|
|
|
+ var now = new Date();
|
|
|
+ now = (Date.parse(now) / 1000);
|
|
|
+
|
|
|
+ var timeLeft = endTime - now;
|
|
|
+
|
|
|
+ var days = Math.floor(timeLeft / 86400);
|
|
|
+ var hours = Math.floor((timeLeft - (days * 86400)) / 3600);
|
|
|
+ var minutes = Math.floor((timeLeft - (days * 86400) - (hours * 3600 )) / 60);
|
|
|
+ var seconds = Math.floor((timeLeft - (days * 86400) - (hours * 3600) - (minutes * 60)));
|
|
|
+
|
|
|
+ if (hours < '10') { hours = '0' + hours; }
|
|
|
+ if (minutes < '10') { minutes = '0' + minutes; }
|
|
|
+ if (seconds < '10') { seconds = '0' + seconds; }
|
|
|
+
|
|
|
+ if (Number(days) > 0 ){
|
|
|
+ hours = Number(hours) + (Number(days) * 24);
|
|
|
+ }
|
|
|
+ $('#d-hours').html(hours);
|
|
|
+ $('#d-minutes').html(minutes);
|
|
|
+ $('#d-seconds').html(seconds);
|
|
|
+ }
|
|
|
+ setInterval(function() { promotionTimer(); }, 1000);
|
|
|
+ }
|
|
|
+
|
|
|
+ var opt_selecter_item = new sCombo('.opt_select .select_custom.deal_opt_item');
|
|
|
+ //var item_opt01 = new sCombo('.pd .pop_option_select .item_opt1');
|
|
|
+ //var item_opt02 = new sCombo('.pd .pop_option_select .item_opt2');
|
|
|
+ var opt_select = new sCombo('.pd .op1 .opt_select .select_custom');
|
|
|
+
|
|
|
|
|
|
//옵션변경 셀렉트
|
|
|
var opt_selecter01 = new sCombo('.pd .pop_option_select .item_opt1');
|