GoodsDealDetailFormWeb.html 41 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000
  1. <!DOCTYPE html>
  2. <html lang="ko"
  3. xmlns:th="http://www.thymeleaf.org"
  4. xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
  5. layout:decorator="web/common/layout/DefaultLayoutWeb">
  6. <!--
  7. *******************************************************************************
  8. * @source : GoodsDetailFormWeb.html
  9. * @desc : 딜 상품상세 Page
  10. *============================================================================
  11. * STYLE24
  12. * Copyright(C) 2020 TSIT, All rights reserved.
  13. *============================================================================
  14. * VER DATE AUTHOR DESCRIPTION
  15. * === =========== ========== =============================================
  16. * 1.0 2021.03.02 eskim 최초 작성
  17. *******************************************************************************
  18. -->
  19. <body>
  20. <th:block layout:fragment="content">
  21. <script src="https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/js/ion.rangeSlider.min.js"></script>
  22. <script src="https://developers.kakao.com/sdk/js/kakao.min.js"></script>
  23. <div id="container" class="container pd deal" th:with="imgGoodsUrl=${@environment.getProperty('upload.goods.view')}, uxImgUrl=${@environment.getProperty('domain.uximage')}, imgUrl=${@environment.getProperty('upload.image.view')}">
  24. <div class="wrap">
  25. <!-- 상품 대표설명 -->
  26. <div class="content pd_detail">
  27. <div class="cont_head">
  28. <h3 class="sr-only">상품 대표설명</h3>
  29. </div>
  30. <div class="cont_body">
  31. <!-- CONT-BODY -->
  32. <div class="item_detail">
  33. <div class="area_pic">
  34. <div class="thumb_nav_wrap" th:if="${goodsImgList != null and !goodsImgList.empty}" >
  35. <div class="thumbnav">
  36. <div class="swiper-container">
  37. <div class="swiper-wrapper">
  38. <th:block th:each="goodsImg, status : ${goodsImgList}">
  39. <div class="swiper-slide" th:classappend="${status.first}? 'on' : ''"
  40. th:if="${ not (#strings.contains(goodsImg.sysImgNm,'_S1.')
  41. or #strings.contains(goodsImg.sysImgNm,'_L1.')
  42. or #strings.contains(goodsImg.sysImgNm,'_L2.'))}">
  43. <a th:href="${'#navLocate'+ status.count}"><span class="thumb"><img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=48'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'"></span></a></div>
  44. </th:block>
  45. </div>
  46. </div>
  47. <div class="swiper-button-next"></div>
  48. <div class="swiper-button-prev"></div>
  49. </div>
  50. </div>
  51. <div class="thumb_list_wrap" th:if="${goodsImgList != null and !goodsImgList.empty}" >
  52. <ul>
  53. <th:block th:each="goodsImg, status : ${goodsImgList}">
  54. <li th:id="${'navLocate'+ status.count}" th:classappend="${status.first}? 'on' : ''"
  55. th:if="${ not (#strings.contains(goodsImg.sysImgNm,'_S1.')
  56. or #strings.contains(goodsImg.sysImgNm,'_L1.')
  57. or #strings.contains(goodsImg.sysImgNm,'_L2.'))}">
  58. <a href="javascript:void(0);"><span class="thumb"><img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=558'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'"></span></a></li>
  59. </th:block>
  60. </ul>
  61. </div>
  62. </div>
  63. <form name="cartForm" id="cartForm" method="post">
  64. <input type="hidden" name="mode">
  65. <input type="hidden" name="goodsCd" th:value="${params.goodsCd}" />
  66. <input type="hidden" name="contentsLoc" th:value="${params.contentsLoc}" />
  67. <input type="hidden" name="ithrCd" th:value="${params.ithrCd}" />
  68. <input type="hidden" name="planDtlSq" th:value="${params.planDtlSq}" />
  69. <input type="hidden" name="adminYn" th:value="${params.adminYn}" />
  70. <input type="hidden" name="optCd" />
  71. <input type="hidden" name="optCd1" />
  72. <input type="hidden" name="optCd2" />
  73. <input type="hidden" name="addPrice" />
  74. <input type="hidden" name="ordQty" />
  75. <input type="hidden" name="stock" />
  76. <input type="hidden" name="minOrdQty"/>
  77. <input type="hidden" name="maxOrdQty"/>
  78. <input type="hidden" name="goodsType" th:value="${goodsInfo.goodsType}"/>
  79. <input type="hidden" name="selfGoodsYn" th:value="${goodsInfo.selfGoodsYn}"/>
  80. <div class="area_desc">
  81. <div class="desc_wrap">
  82. <div class="timer_box" style="display:none;">
  83. <p>
  84. <span class="tit">남은시간</span>
  85. <span class="timer">
  86. <em id="d-days">0</em>
  87. <em id="d-hours">0</em>
  88. <em id="d-minutes">0</em>
  89. <em id="d-seconds">0</em>
  90. </span>
  91. </p>
  92. </div>
  93. <div class="descript_box">
  94. <div class="desc_top">
  95. <div class="shareSet">
  96. <button class="btn_share" data-name="openShare">공유하기</button>
  97. <th:block th:include="~{web/goods/GoodsIncludeFormWeb :: goodsSnsForm}"></th:block>
  98. </div>
  99. <button type="button" class="itemLike" th:classappend="${goodsInfo.wishYn == 'Y'}? 'likeit' : ''" onclick="cfnPutWishList(this);" th:attr="goodsCd=${params.goodsCd}, ithrCd=${params.ithrCd}, contentsLoc=${params.contentsLoc}, planDtlSq=${params.planDtlSq}">관심상품 추가</button>
  100. </div>
  101. <div class="desc_info">
  102. <div class="title_blk">
  103. <span class="comment" th:text="${goodsInfo.goodsTnm}">
  104. #본사 직영 인기캐주얼 특가전
  105. </span>
  106. <span class="name" th:text="${goodsInfo.goodsFullNm}">
  107. [NBA외] 본사 직영~ 봄 신상 야구모자/백팩 외 99종 무료배송!
  108. </span>
  109. </div>
  110. <div class="price_blk">
  111. <span class="sale_price">
  112. <em th:text="${#numbers.formatInteger(goodsInfo.currPrice, 0,'COMMA')}">134,100</em>원 ~
  113. </span>
  114. <button type="button" id="btn_saleCoupon_pop" class="btn btn_primary btn_sm btn_coupon" th:if="${goodsCouponList != null and !goodsCouponList.empty}" th:onclick="cfGoodsCouponInfo([[${goodsInfo.goodsCd}]],[[${goodsInfo.goodsType}]] )"><span>쿠폰받기</span></button>
  115. </div>
  116. </div>
  117. </div>
  118. <div class="benefit_box" th:if="${(cardInfoList != null and !cardInfoList.empty) or
  119. (goodsCouponList != null and !goodsCouponList.empty)
  120. }" >
  121. <dl>
  122. <div class="bnf_shopping" th:if="${goodsCouponList != null and !goodsCouponList.empty}">
  123. <dt>쇼핑혜택</dt>
  124. <!------------ 색상 강조 텍스트 영역 <em class="c_primary"></em> 사용요청 ------------>
  125. <dd>
  126. <span th:if="${goodsCouponList != null and !goodsCouponList.empty}">
  127. <th:block th:each="goodsCoupon, status : ${goodsCouponList}" th:if="${status.first}">
  128. 최대 <em class="c_primary" >
  129. <th:block th:if="${goodsCoupon.dcWay == 'G240_10'}" th:text="|${#numbers.formatInteger(goodsCoupon.dcVal, 0,'COMMA')}원|"></th:block>
  130. <th:block th:unless="${goodsCoupon.dcWay == 'G240_10'}" th:text="|${goodsCoupon.dcVal}%|"></th:block>
  131. </em> 쿠폰 할인
  132. </th:block>
  133. </span>
  134. <span><em class="c_primary">99개</em> 이상 구매 시 <em class="c_primary">9,999,999원</em> 할인</span>
  135. <span>미니언즈 우산 증정</span>
  136. <button type="button" id="btn_bnfShopping_pop" class="btn_popup" th:onclick="cfGoodsShopBenefitInfo([[${goodsInfo.goodsCd}]])"><span>자세히</span></button>
  137. </dd>
  138. </div>
  139. <div class="bnf_card" th:if="${cardInfoList != null and !cardInfoList.empty}">
  140. <dt>카드혜택</dt>
  141. <dd>
  142. <th:block th:each="cardInfo, status : ${cardInfoList}">
  143. <span th:if="${cardInfo.prmtGb == 'A' and cardInfo.dcGb != '3'}"><th:block th:text="${cardInfo.prmtTargetNm}"></th:block> <em class="c_primary"><th:block th:text="${#numbers.formatInteger(cardInfo.dcVal, 0,'COMMA')+ cardInfo.dcWayNm}"></th:block></em> <th:block th:text="${cardInfo.prmtGbNm}"></span>
  144. <span th:if="${cardInfo.prmtGb == 'A' and cardInfo.dcGb == '3'}" th:text="${cardInfo.prmtNm}">프로모션명</span>
  145. <span th:if="${cardInfo.prmtGb == 'B'}">신용카드 무이자 혜택</span>
  146. </th:block>
  147. <button type="button" id="btn_bnfCard_pop" class="btn_popup" onclick="cfCardInfo();return false;"><span>자세히</span></button>
  148. </dd>
  149. </div>
  150. </dl>
  151. </div>
  152. <div class="option_box">
  153. <div class="opt_select">
  154. <div class="form_field">
  155. <div class="select_custom deal_opt_item">
  156. <div class="combo">
  157. <div class="select">
  158. <div class="item_prod">
  159. <div class="item_state">
  160. <a href="javascript:void(0);" class="itemLink">
  161. <div class="itemPic">
  162. <img alt="" class="vLHTC pd_img" th:src="${imgGoodsUrl+'/'+goodsInfo.sysImgNm+'?RS=285'}" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  163. </div>
  164. <div class="itemName">선택</div>
  165. </a>
  166. </div>
  167. </div>
  168. </div>
  169. <ul class="list" th:if="${goodsDealComposeList != null and !goodsDealComposeList.empty}">
  170. <th:block th:each="goodsInfo, status : ${goodsDealComposeList}" th:attr="aria-disabled=${(goodsInfo.goodsStat != 'G008_90' or goodsInfo.stockQty <= 0)? 'true':''}, data-soldout=${(goodsInfo.stockQty <= 0)? 'true':''}">
  171. <li th:onclick="fnOption1('Up', [[${goodsInfo.compsGoodsCd}]], [[${goodsInfo.currPrice}]] , [[${goodsInfo.selfGoodsYn}]]);"
  172. th:attr="aria-disabled=${(goodsInfo.goodsStat != 'G008_90' or goodsInfo.stockQty <= 0)? 'true':''}, data-soldout=${(goodsInfo.stockQty <= 0)? 'true':''}">
  173. <div class="item_prod">
  174. <div class="item_state" >
  175. <a href="javascript:void(0);" class="itemLink" >
  176. <div class="itemPic">
  177. <img alt="" class="vLHTC pd_img" th:src="${imgGoodsUrl+'/'+goodsInfo.sysImgNm+'?RS=285'}" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  178. </div>
  179. <p class="itemBrand" th:text="${goodsInfo.brandGroupNm}">NBA 키즈</p>
  180. <div class="itemName" ><span class="tit_option" th:text="${'[상품'+status.count+']'}">[상품1]</span><th:block th:text="${goodsInfo.goodsFullNm}"></th:block></div>
  181. <p class="itemPrice" ><th:block th:text="${#numbers.formatInteger(goodsInfo.currPrice, 0,'COMMA')}"> 134,100</th:block>
  182. <span class="itemPrice_original" th:if="${goodsInfo.listPrice > goodsInfo.currPrice}" th:text="${#numbers.formatInteger(goodsInfo.listPrice, 0,'COMMA')}">149,000</span>
  183. <span class="itemPercent" th:if="${goodsInfo.dcRate > 0}" th:text="|${#numbers.formatDecimal(goodsInfo.dcRate,0,0)}%|">30%</span>
  184. </p>
  185. </a>
  186. <input type="hidden" name="selectGoods" th:attr="goodsNm=${'[상품'+status.count+']' +goodsInfo.goodsFullNm}, currPrice=${goodsInfo.currPrice}, goodsCd=${goodsInfo.compsGoodsCd}" />
  187. </div>
  188. </div>
  189. </li>
  190. </th:block>
  191. </ul>
  192. </div>
  193. </div>
  194. </div>
  195. <div class="form_field">
  196. <div class="select_custom deal_opt1" disabled>
  197. <div class="combo">
  198. <div class="select">선택</div>
  199. <ul class="list" id="goodsDealOptUp1">
  200. <!-- 옵션 1 -->
  201. </ul>
  202. </div>
  203. </div>
  204. </div>
  205. <div class="form_field">
  206. <div class="select_custom deal_opt2" disabled>
  207. <div class="combo">
  208. <div class="select">선택</div>
  209. <ul class="list" id="goodsDealOptUp2">
  210. <!-- 옵션 2 -->
  211. </ul>
  212. </div>
  213. </div>
  214. </div>
  215. </div>
  216. <div class="opt_result">
  217. </div>
  218. </div>
  219. <div class="price_box">
  220. <p class="number">
  221. 총&nbsp;<span id="goodsTotalQty">0</span>개
  222. </p>
  223. <p class="price">
  224. <span>
  225. <b id="goodsTotalPrice">0</b><em>원</em>
  226. </span>
  227. </p>
  228. </div>
  229. <div class="btn_box">
  230. <div class="btn_group_block ui_row">
  231. <th:block th:if="${goodsInfo.stockQty > 0}">
  232. <div class="ui_col_6">
  233. <button type="button" class="btn btn_dark btn_block" id="btnGoodsWish" onclick="fnAddCart('C');"><span>쇼핑백</span></button>
  234. </div>
  235. <div class="ui_col_6">
  236. <button type="button" class="btn btn_primary btn_block" id="btnGoodsCart" onclick="fnAddCart('O');"><span>바로구매</span></button>
  237. </div>
  238. </th:block>
  239. <th:block th:unless="${goodsInfo.stockQty > 0}">
  240. <div class="ui_col_12">
  241. <button type="button" class="btn btn_dark btn_block" disabled=""><span>SOLD OUT</span></button>
  242. </div>
  243. </th:block>
  244. </div>
  245. </div>
  246. </div>
  247. </div>
  248. </form>
  249. </div>
  250. </div>
  251. </div>
  252. <!-- 상품 대표설명 -->
  253. <!-- //***** 상품소개영역 ***** -->
  254. <th:block th:include="~{web/goods/GoodsIncludeFormWeb :: goodsDealComposeForm}"></th:block>
  255. <!-- 이 상품과 함께 본 상품 -->
  256. <div class="content wide pd_clickother" id="goodsTogetherbArea">
  257. </div>
  258. <!-- // 이 상품과 함께 본 상품 -->
  259. </div>
  260. <!-- 상품썸네일 크게보기 팝업 -->
  261. <div class="pd_pop full_pop pd_itemthumb_pop" id="pdItemThumbPop">
  262. <div class="full_popup_wrap">
  263. <h5 class="sr-only">상품썸네일 크게보기</h5>
  264. <div class="btn_close">
  265. <a href="" id="btn_close_itemThumbPop">닫기버튼</a>
  266. </div>
  267. <div class="full_pop_container">
  268. <!-- 배송교환반품안내 리스트 내용 -->
  269. </div>
  270. </div>
  271. </div>
  272. <!-- //상품썸네일 크게보기 팝업 -->
  273. <!-- **************** 개별상품 상세정보 팝업 **************** -->
  274. <!-- 바로구매 장바구니 등록 정보 저장을 위한 form -->
  275. <form id="directOrderForm" method="POST" action="/order/noMember"></form>
  276. </div>
  277. <script th:inline="javascript">
  278. /*<![CDATA[*/
  279. var cateNm = "";
  280. // 함께본 상품
  281. var fnGoodsTogetherSearch = function(params) {
  282. gagajf.ajaxSubmit("/goods/detail/together/frame", "html", "goodsTogetherbArea", params);
  283. }
  284. // 옵션1 조회
  285. var fnOption1 = function(flag, goodsCd, currPrice, selfGoodsYn){
  286. let data = {goodsCd : goodsCd
  287. };
  288. let jsonData = JSON.stringify(data);
  289. $('.form_field .select_custom.deal_opt1').find('.combo .select').html('선택');
  290. $('.form_field .select_custom.deal_opt2').attr('disabled', true);
  291. $('.form_field .select_custom.deal_opt2').find('.combo .select').html('선택');
  292. gagajf.ajaxJsonSubmit('/goods/detail/option1/list', jsonData, function(result) {
  293. if (result.dataList != null && result.dataList.length > 0) {
  294. let tagUpS = "";
  295. let tagDownS = "";
  296. let tagUp = "";
  297. let tagDown = "";
  298. let $objUp = null;
  299. let $objDown = null;
  300. let qty = 1;
  301. $.each(result.dataList, function(idx, item) {
  302. let tag1 = "";
  303. let tag2 = "";
  304. if (idx == 0){
  305. if (flag == "layer"){
  306. $objUp = $('.pd_descrp_pop .opt_select .select_custom.deal_opt1');
  307. $objUp.html('');
  308. }else{
  309. $objUp = $('.pd_detail .opt_select .select_custom.deal_opt1');
  310. $objUp.html('');
  311. $objDown = $('.pd_desc_wrap .opt_select .select_custom.deal_opt1');
  312. $objDown.html('');
  313. }
  314. $('.form_field .select_custom.deal_opt1').attr('disabled', false);
  315. //------
  316. tag1 += '<div class="combo">\n';
  317. tag1 += '<div class="select">선택</div>\n';
  318. tag1 += '<ul class="list">\n';
  319. //------
  320. tag1 += '<li class="selected" id="goodsOpt1">선택</li>\n';
  321. }
  322. let soldoutYn = "";
  323. if (item.stockQty <= 0) soldoutYn = "true";
  324. if (flag == "layer"){
  325. tagUp = '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnOption2(this, \'layer\')">\n';
  326. }else{
  327. tagUp = '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnOption2(this, \'Up\')">\n';
  328. tagDown = '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnOption2(this, \'Down\')">\n';
  329. }
  330. tag2 += '<div>'+ item.optCd1+'</div>\n';
  331. if (item.addPrice > 0){
  332. tag2 += '<div>'+ item.addPrice.addComma() +'원</div>\n';
  333. }
  334. tag2 += '<input type="hidden" name="opt1" value="'+ goodsCd +'" currPrice="'+ currPrice+'" optCd1="'+item.optCd1+'" minOrdQty="'+item.minOrdQty+'" maxOrdQty="'+item.maxOrdQty+'" selfGoodsYn="'+selfGoodsYn+'" />\n';
  335. tag2 += '</li>\n';
  336. tagUpS += tag1+tagUp+tag2;
  337. tagDownS += tag1+tagDown+tag2;
  338. });
  339. if (!gagajf.isNull(tagUpS)){
  340. //------
  341. tagUpS += '</ul>\n';
  342. tagUpS += '</div>\n';
  343. tagDownS += '</ul>\n';
  344. tagDownS += '</div>\n';
  345. //------
  346. }
  347. if (flag == "layer"){
  348. $objUp.append(tagUpS);
  349. var pop_desc_option02 = new sCombo('.pd_descrp_pop .opt_select .select_custom.deal_opt1');
  350. }else{
  351. $objUp.append(tagUpS);
  352. $objDown.append(tagDownS);
  353. var detail_deal_option02 = new sCombo('.pd_detail .opt_select .select_custom.deal_opt1');
  354. var desc_option02 = new sCombo('.pd_desc_wrap .opt_select .select_custom.deal_opt1');
  355. }
  356. }
  357. if (flag != "layer"){
  358. // 상품 선태값 적용
  359. let $obj = null;
  360. let $taget = null;
  361. // 하단 우측 상품선택영역 Up/ Down
  362. if (flag == "Up"){
  363. $obj = $('.pd_detail .opt_select .select_custom.deal_opt_item').find('.combo .select');
  364. $taget = $('.pd_desc_wrap .opt_select .select_custom.deal_opt_item').find('.combo .select');
  365. }else{
  366. $taget = $('.pd_detail .opt_select .select_custom.deal_opt_item').find('.combo .select');
  367. $obj = $('.pd_desc_wrap .opt_select .select_custom.deal_opt_item').find('.combo .select');
  368. }
  369. let goodsDealInfo = $obj.html();
  370. $taget.html(goodsDealInfo);
  371. }
  372. });
  373. }
  374. // 옵션2 조회
  375. var fnOption2 = function(obj, flag){
  376. let $obj = $(obj);
  377. let $target = $obj.find('input[name="opt1"]');
  378. let goodsCd = $target.val();
  379. let currPrice = $target.attr("currPrice");
  380. let optCd1 = $target.attr("optCd1");
  381. let minOrdQty = $target.attr("minOrdQty");
  382. let maxOrdQty = $target.attr("maxOrdQty");
  383. let selfGoodsYn = $target.attr("selfGoodsYn");
  384. let data = {goodsCd : goodsCd
  385. ,optCd1 : optCd1
  386. };
  387. let jsonData = JSON.stringify(data);
  388. gagajf.ajaxJsonSubmit('/goods/detail/option2/list', jsonData, function(result) {
  389. if (result.dataList != null && result.dataList.length > 0) {
  390. let tagUpS = "";
  391. let tagDownS = "";
  392. let tagUp = "";
  393. let tagDown = "";
  394. let $objUp = null;
  395. let $objDown = null;
  396. $.each(result.dataList, function(idx, item) {
  397. let tag1 = "";
  398. let tag2 = "";
  399. if (idx == 0){
  400. if (flag == "layer"){
  401. $objUp = $('.pd_descrp_pop .opt_select .select_custom.deal_opt2');
  402. $objUp.html('');
  403. }else{
  404. $objUp = $('.pd_detail .opt_select .select_custom.deal_opt2');
  405. $objUp.html('');
  406. $objDown = $('.pd_desc_wrap .opt_select .select_custom.deal_opt2');
  407. $objDown.html('');
  408. }
  409. $('.form_field .select_custom.deal_opt2').attr('disabled', false);
  410. //------
  411. tag1 += '<div class="combo">\n';
  412. tag1 += '<div class="select">선택</div>\n';
  413. tag1 += '<ul class="list">\n';
  414. //------
  415. tag1 += '<li class="selected" id="goodsOpt2">선택</li>\n';
  416. }
  417. let soldoutYn = "";
  418. if ("Y" == item.soldoutYn || item.stockQty <= 0)soldoutYn = "true";
  419. if (flag == "layer"){
  420. tagUp = '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStock(this, \'layer\' )">\n';
  421. }else{
  422. tagUp = '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStock(this, \'Up\' )">\n';
  423. tagDown = '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStock(this, \'Down\' )">\n';
  424. }
  425. tag2 += '<div>'+ item.optCd2+'</div>\n';
  426. if (item.addPrice > 0){
  427. tag2 += '<div>'+ item.addPrice.addComma() +'원</div>\n';
  428. }
  429. tag2 += '<input type="hidden" name="opt2" value="'+ goodsCd +'" currPrice="'+ currPrice+'" addPrice="'+item.addPrice+'" optCd="'+item.optCd+'" optCd1="'+item.optCd1+'" optCd2="'+item.optCd2+'" minOrdQty="'+minOrdQty+'" maxOrdQty="'+maxOrdQty+'" selfGoodsYn="'+selfGoodsYn+'"/>\n';
  430. tag2 += '</li>\n';
  431. tagUpS += tag1+tagUp+tag2;
  432. tagDownS += tag1+tagDown+tag2;
  433. });
  434. if (!gagajf.isNull(tagUpS)){
  435. //------
  436. tagUpS += '</ul>\n';
  437. tagUpS += '</div>\n';
  438. tagDownS += '</ul>\n';
  439. tagDownS += '</div>\n';
  440. //------
  441. }
  442. if (flag == "layer"){
  443. $objUp.append(tagUpS);
  444. var pop_desc_option02 = new sCombo('.pd_descrp_pop .opt_select .select_custom.deal_opt2');
  445. }else{
  446. $objUp.append(tagUpS);
  447. $objDown.append(tagDownS);
  448. var detail_deal_option03 = new sCombo('.pd_detail .opt_select .select_custom.deal_opt2');
  449. var desc_option03 = new sCombo('.pd_desc_wrap .opt_select .select_custom.deal_opt2');
  450. }
  451. }
  452. if (flag != "layer"){
  453. // 옵션 1 선태값 적용
  454. let $obj2 = null;
  455. let $taget2 = null;
  456. // 하단 우측 상품선택영역 Up/ Down
  457. if (flag == "Up"){
  458. $obj2 = $('.pd_detail .opt_select .select_custom.deal_opt1').find('.combo .select');
  459. $taget2 = $('.pd_desc_wrap .opt_select .select_custom.deal_opt1').find('.combo .select');
  460. }else{
  461. $obj2 = $('.pd_desc_wrap .opt_select .select_custom.deal_opt1').find('.combo .select');
  462. $taget2 = $('.pd_detail .opt_select .select_custom.deal_opt1').find('.combo .select');
  463. }
  464. let goodsDealInfo = $obj2.html();
  465. $taget2.html(goodsDealInfo);
  466. }
  467. });
  468. }
  469. //사이즈 클릭시 - 단품
  470. var fnViewStock = function(obj, flag ) {
  471. let $obj = $(obj);
  472. let $target = $obj.find('input[name="opt2"]');
  473. let goodsCd = $target.val();
  474. let currPrice = $target.attr("currPrice");
  475. let optCd = $target.attr("optCd");
  476. let optCd1 = $target.attr("optCd1");
  477. let optCd2 = $target.attr("optCd2");
  478. let minOrdQty = $target.attr("minOrdQty");
  479. let maxOrdQty = $target.attr("maxOrdQty");
  480. let addPrice = $target.attr("addPrice");
  481. let selfGoodsYn = $target.attr("selfGoodsYn");
  482. let optQty = minOrdQty;
  483. let maxCnt = maxOrdQty;
  484. let params = new Object();
  485. params.goodsCd = goodsCd;
  486. params.optCd = optCd;
  487. params.optCd1 = optCd1;
  488. params.optCd2 = optCd2;
  489. params.selfGoodsYn = selfGoodsYn;
  490. // 중복선택 확인 opt_result
  491. var overlap = 0;
  492. $('.pd_detail .opt_result .number_count').each(function() {
  493. if ($('input[name="coption"]', this).val() == optCd) {
  494. ++overlap;
  495. }
  496. });
  497. if (overlap > 0) {
  498. mcxDialog.alert("이미 선택하신 옵션입니다.");
  499. return false;
  500. }
  501. $.get("/goods/detail/ajaxGoodsStockQty", $.param(params), function(result) {
  502. let itemCnt = eval(result); //해당 아이템에 선택되어진 사이즈의 수량
  503. if (maxCnt > itemCnt) {
  504. maxCnt = itemCnt;
  505. }
  506. if (minOrdQty > itemCnt) {
  507. //alert("무슨작업을 해야할가요?");
  508. return false; //무슨작업을 해야하나?
  509. }
  510. //상품정보
  511. let $selObj = null;
  512. if (flag == "layer"){
  513. $selObj = $('.pd_descrp_pop .form_field .select_custom.deal_opt_item');
  514. }else if (flag == "Up"){
  515. $selObj = $('.pd_detail .opt_select .select_custom.deal_opt_item');
  516. }else{
  517. $selObj = $('.pd_desc_wrap .opt_select .select_custom.deal_opt_item');
  518. }
  519. let $goodsObj =$selObj.find('.combo .select').find('input[name=selectGoods]');
  520. let goodsNm = $goodsObj.attr('goodsnm');
  521. let goodsCd = $goodsObj.attr('goodscd');
  522. let price = parseInt(currPrice)+ parseInt(addPrice);
  523. let tag = "";
  524. tag += '<div class="result_item result_'+optCd+'">\n';
  525. tag += ' <div class="opt_header">\n';
  526. tag += ' <span class="item_name">'+goodsNm+'</span>\n';
  527. tag += ' <span class="item_option">'+optCd1+'/'+optCd2+'</span>\n';
  528. tag += ' </div>\n';
  529. tag += ' <div class="number_count">\n';
  530. tag += ' <span class="minus min_val" onclick="fnAdjustOrderEa(this);" adjust="-"><em class="sr-only">감소</em></span>\n';
  531. tag += ' <input type="text" name="cea" optCd="'+optCd+'" maxlength="3" style="ime-mode:disabled" value="' +optQty+'" onblur="fnChangeOrderEa(this)" minOrdQty="'+minOrdQty+'" maxOrdQty="'+maxOrdQty+'" data-valid-type="numeric">\n';
  532. tag += ' <input type="hidden" name="coption" value="'+optCd+'" goodsCd="'+goodsCd+'" price="'+currPrice+'" addPrice="'+addPrice+'">\n';
  533. tag += ' <span class="plus" onclick="fnAdjustOrderEa(this);" adjust="+"><em class="sr-only">추가</em></span>\n';
  534. tag += ' </div>\n';
  535. tag += ' <div class="item_price">\n';
  536. tag += ' <p><em id="goodsPrice">'+price.addComma() +'</em>원</p>\n';
  537. tag += ' </div>\n';
  538. tag += ' <button type="button" class="btn_delete_item" onclick="fnSelectGoodsDel(\''+optCd+'\')"><span>삭제</span></button>\n';
  539. tag += '</div>\n';
  540. let $objUp = null;
  541. let $objDown = null;
  542. // 하단 우측 상품선택영역 Up/ Down/ layer
  543. if (flag == "layer"){
  544. $objLayer = $('.pd_descrp_pop .opt_result');
  545. $objUp = $('.pd_detail .opt_result');
  546. $objDown = $('.pd_desc_wrap .opt_result');
  547. $objLayer.append(tag);
  548. }else{
  549. $objUp = $('.pd_detail .opt_result');
  550. $objDown = $('.pd_desc_wrap .opt_result');
  551. }
  552. $objUp.append(tag);
  553. $objDown.append(tag);
  554. if (flag != "layer"){
  555. // 옵션 2 선태값 적용
  556. let $obj2 = null;
  557. let $taget2 = null;
  558. // 하단 우측 상품선택영역 Up/ Down
  559. if (flag == "Up"){
  560. $obj2 = $('.pd_detail .opt_select .select_custom.deal_opt2').find('.combo .select');
  561. $taget2 = $('.pd_desc_wrap .opt_select .select_custom.deal_opt2').find('.combo .select');
  562. }else{
  563. $obj2 = $('.pd_desc_wrap .opt_select .select_custom.deal_opt2').find('.combo .select');
  564. $taget2 = $('.pd_detail .opt_select .select_custom.deal_opt2').find('.combo .select');
  565. }
  566. let goodsDealInfo = $obj2.html();
  567. $taget2.html(goodsDealInfo);
  568. }
  569. fnSetTotalPrice();
  570. }, "text");
  571. }
  572. // 수량 변경 클릭
  573. var fnAdjustOrderEa = function(obj) {
  574. let $obj = $(obj);
  575. let $target = $obj.parent().children('input[name="cea"]');
  576. let minOrdQty = parseInt( $target.attr('minOrdQty'));
  577. let maxOrdQty = parseInt( $target.attr('maxOrdQty'));
  578. let ea =parseInt($target.val());
  579. if ($obj.attr('adjust') == '-') --ea;
  580. else ++ea;
  581. //var maxOrdQty = $("#cartForm input[name=maxOrdQty]").val();
  582. //if (maxOrdQty && ea > maxOrdQty) ea = maxOrdQty;
  583. if (ea.toString().length > maxOrdQty) --ea;
  584. if (ea < 1) ea = minOrdQty;
  585. $target.val(ea);
  586. $target.attr('value', ea);
  587. fnChangeOrderEa($target[0]);
  588. }
  589. //옵션 갯수 변경
  590. var fnChangeOrderEa = function(obj) {
  591. let $obj = $(obj);
  592. let ea = parseInt($obj.val());
  593. let maxOrdQty = parseInt($(obj).attr('maxOrdQty'));
  594. let minOrdQty = parseInt($(obj).attr('minOrdQty'));
  595. let optCd = $(obj).attr('optCd');
  596. let alertMsg = '';
  597. if (ea < minOrdQty) {
  598. mcxDialog.alert("최소 주문 가능 수량은 "+minOrdQty+"개 입니다.");
  599. ea = minOrdQty;
  600. }
  601. if (ea > maxOrdQty) {
  602. mcxDialog.alert("최대 주문 가능 수량은 "+maxOrdQty+"개 입니다.");
  603. ea = maxOrdQty;
  604. }
  605. obj.value = ea;
  606. if (alertMsg != ''){
  607. mcxDialog.alert(alertMsg);
  608. return false;
  609. }
  610. if (ea <= 1){
  611. $('.number_count').find('.minus').addClass('min_val');
  612. }else{
  613. $('.number_count').find('.minus').removeClass('min_val');
  614. }
  615. let addPrice = parseInt($obj.parent().find('input[name="coption"]').attr('addprice'));
  616. let goodsPrice = parseInt($obj.parent().find('input[name="coption"]').attr('price'));
  617. let totalPrice = ((goodsPrice+addPrice) * ea);
  618. //$obj.parent().parent().find('#goodsPrice').text(totalPrice.addComma());
  619. $('.opt_result .result_'+optCd+' .number_count').find('input[name=cea]').val(ea);
  620. $('.opt_result .result_'+optCd+' .number_count').find('input[name=cea]').attr('value',ea);
  621. $('.opt_result .result_'+optCd+' .item_price').find('em').text(totalPrice.addComma());
  622. fnSetTotalPrice();
  623. }
  624. //합계 계산
  625. var fnSetTotalPrice = function() {
  626. //let f = document.cartForm;
  627. let totalEa = 0;
  628. let totalPrice = 0;
  629. $('input[name="cea"]', document.cartForm).each(function() {
  630. let ea = parseInt($(this).val());
  631. let target=$('.select_custom.item_opt2');
  632. let addPrice = parseInt($(this).parent().find('input[name="coption"]').attr('addprice'));
  633. let goodsPrice = parseInt($(this).parent().find('input[name="coption"]').attr('price'));
  634. totalEa += ea;
  635. if (goodsPrice > 0) {
  636. totalPrice += ((goodsPrice+addPrice) * ea);
  637. }
  638. });
  639. $('.price_box .number span').html(totalEa.addComma());
  640. $('.price_box .price > span').html(totalPrice.addComma());
  641. }
  642. //장바구니담기
  643. var fnAddCart = function(btnType){
  644. let compsList = [];
  645. let target = $('#cartForm input[name=cea]');
  646. let targetSize = target.length; //선택성품 갯수
  647. if (target.length <= 0){
  648. mcxDialog.alert("구성상품들의 옵션을 선택하세요.");
  649. return false;
  650. }
  651. target.each(function() {
  652. let ea = parseInt($(this).val());
  653. let goodsCd = $(this).parent().find('input[name="coption"]').attr('goodscd');
  654. let optCd = $(this).parent().find('input[name="coption"]').val();
  655. //let addPrice = parseInt($(this).parent().find('input[name="coption"]').attr('addprice'));
  656. //let goodsPrice = parseInt($(this).parent().find('input[name="coption"]').attr('price'));
  657. var obj = new Object();
  658. obj.cartGb = btnType;
  659. obj.goodsType = $("#cartForm input[name=goodsType]").val();
  660. obj.goodsCd = goodsCd;
  661. obj.optCd = optCd;
  662. obj.goodsQty = ea;
  663. obj.dealGoodsCd = $("#cartForm input[name=goodsCd]").val();
  664. obj.afLinkCd =$("#cartForm input[name=afLinkCd]").val();
  665. obj.ithrCd =$("#cartForm input[name=ithrCd]").val();
  666. obj.contentsLoc =$("#cartForm input[name=contentsLoc]").val();
  667. obj.planDtlSq = $("#cartForm input[name=planDtlSq]").val();
  668. compsList.push(obj);
  669. });
  670. // 장바구니담기
  671. cfnAddCart(compsList);
  672. }
  673. // 선택상품 삭제
  674. var fnSelectGoodsDel = function(optCd){
  675. $('.result_'+optCd).remove();
  676. fnSetTotalPrice();
  677. }
  678. $(document).ready( function() {
  679. $('.timer_box').css('display', 'none');
  680. //공유 버튼 토글
  681. $("button[data-name=openShare]").on("click", function(){
  682. $(this).toggleClass("on").next(".shareWrap").toggleClass("on");
  683. return false;
  684. });
  685. //영역밖 클릭으로 공유토글 닫기
  686. $("body").on('click', function(e) {
  687. if(!$(".shareWrap.on").parent().has(e.target).length) {
  688. $("button[data-name=openShare]").removeClass("on");
  689. $(".shareWrap").removeClass("on");
  690. };
  691. });
  692. var params = new Object();
  693. params.goodsCd = [[${params.goodsCd}]];
  694. params.viewDt = [[${params.viewDt}]];
  695. params.preview = [[${params.preview}]];
  696. params.adminYn = [[${params.adminYn}]];
  697. params.goodsType = [[${params.goodsType}]];
  698. params.supplyCompCd = [[${params.supplyCompCd}]];
  699. params.brandGroupNm = [[${goodsInfo.brandGroupNm}]];
  700. // 함께본 상품(ajax html)
  701. params.goodsOtherGb = "together";
  702. params.ithrCd = "tmtb";
  703. params.contentsLoc = "tmtb";
  704. fnGoodsTogetherSearch(params);
  705. if (!gagajf.isNull([[${goodsInfo.socialSq}]])){
  706. $('.timer_box').css('display', 'block');
  707. /* 행사 남은시간 */
  708. function promotionTimer() {
  709. var endTime = new Date([[${goodsInfo.socialEddt}]]); // 남은시간 지정 30 March 2021 9:56:00 GMT+0900
  710. endTime = (Date.parse(endTime) / 1000);
  711. var now = new Date();
  712. now = (Date.parse(now) / 1000);
  713. var timeLeft = endTime - now;
  714. var days = Math.floor(timeLeft / 86400);
  715. var hours = Math.floor((timeLeft - (days * 86400)) / 3600);
  716. var minutes = Math.floor((timeLeft - (days * 86400) - (hours * 3600 )) / 60);
  717. var seconds = Math.floor((timeLeft - (days * 86400) - (hours * 3600) - (minutes * 60)));
  718. if (hours < '10') { hours = '0' + hours; }
  719. if (minutes < '10') { minutes = '0' + minutes; }
  720. if (seconds < '10') { seconds = '0' + seconds; }
  721. if (Number(days) > 0 ){
  722. $('#d-days').html(days);
  723. }else{
  724. $('#d-days').css('display','none');
  725. }
  726. $('#d-hours').html(hours);
  727. $('#d-minutes').html(minutes);
  728. $('#d-seconds').html(seconds);
  729. }
  730. setInterval(function() { promotionTimer(); }, 1000);
  731. }
  732. //상품 대표설명 > 우측 상품정보
  733. /* 딜 옵션선택 후 다음 옵션 활성화 */
  734. var detail_deal_option01 = new sCombo('.pd_detail .opt_select .select_custom.deal_opt_item');
  735. //var detail_deal_option02 = new sCombo('.pd_detail .opt_select .select_custom.deal_opt1');
  736. //var detail_deal_option03 = new sCombo('.pd_detail .opt_select .select_custom.deal_opt2');
  737. /* $('.pd_detail .opt_select .select_custom .combo .list > li').click(function(e) {
  738. $(this).parents('.form_field').next('.form_field').find('.select_custom').attr('disabled', false);
  739. return false;
  740. }); */
  741. // 하단 우측 상품선택영역
  742. /* 딜 옵션선택 후 다음 옵션 활성화 */
  743. var desc_option01 = new sCombo('.pd_desc_wrap .opt_select .select_custom.deal_opt_item');
  744. //var desc_option02 = new sCombo('.pd_desc_wrap .opt_select .select_custom.deal_opt1');
  745. //var desc_option03 = new sCombo('.pd_desc_wrap .opt_select .select_custom.deal_opt2');
  746. /* $('.pd_desc_wrap .opt_select .select_custom .combo .list > li').click(function(e) {
  747. $(this).parents('.form_field').next('.form_field').find('.select_custom').attr('disabled', false);
  748. return false;
  749. }); */
  750. // 상품선택 옵션 : 하단 상품정보 영역
  751. var tab_review_item = new sCombo('.tab_detail_cont .select_custom.deal_opt_item.forReview');
  752. var tab_qna_item = new sCombo('.tab_detail_cont .select_custom.deal_opt_item.forQna');
  753. var tab_exinfo_item = new sCombo('.tab_detail_cont .select_custom.deal_opt_item.forExinfo');
  754. // 상품선택 옵션 : 상세정보 > 상품 > 팝업
  755. var pop_desc_option01 = new sCombo('.pd_descrp_pop .select_custom.deal_opt_item');
  756. //var pop_desc_option02 = new sCombo('.pd_detail .opt_select .select_custom.deal_opt1');
  757. //var pop_desc_option03 = new sCombo('.pd_detail .opt_select .select_custom.deal_opt2');
  758. /* 상품옵션변경 팝업 > 수량조절 */
  759. //수량1개 이하 감소버튼 비활성화
  760. var valItemCount = $('.option_box .result_item .number_count input').val();
  761. if ( valItemCount == 1 ) {
  762. $(' .option_box .result_item .number_count .minus').addClass('min_val');
  763. }
  764. //상품상세정보 더보기
  765. $(document).on('click','.pd_descrp_pop .btn_more_box button',function(e){
  766. $('.pd_descrp_pop .cont_body').toggleClass('on');
  767. $(this).toggleClass('active');
  768. $(this).parent('.btn_more_box').toggleClass('covered');
  769. var descrpToggle = $(this).find('span');
  770. $(descrpToggle).text($(descrpToggle).text() == '상세정보 더보기' ? '상세정보 접기' : '상세정보 더보기');
  771. return false;
  772. });
  773. //상품상세정보 탭
  774. $(document).on('click','.pd.deal .tab_detail_nav ul li',function(e){
  775. $(this).addClass('active').siblings().removeClass('active');
  776. $('.pd.deal .tab_detail_cont').hide();
  777. $('.pd.deal .tab_detail_cont').eq($(this).index()).show();
  778. //상품상세정보 호출
  779. //$('.pd_review .cont_body').load('pd_review_pop.html');
  780. //$('.pd_qnalist .cont_body').load('pd_qnalist_pop.html');
  781. //$('.pd_delivery .cont_body').load('pd_delivery_pop.html');
  782. return false;
  783. });
  784. //슬라이드 - 이 상품과 함께 본 상품
  785. var otherItemSwiper = new Swiper('.pd .pd_clickother .area_slider .swiper-container', {
  786. slidesPerView: 5,
  787. spaceBetween: 20,
  788. navigation: {
  789. nextEl: '.pd_clickother .swiper-button-next',
  790. prevEl: '.pd_clickother .swiper-button-prev',
  791. },
  792. pagination: {
  793. el: '.pd_clickother .swiper-pagination',
  794. clickable: true,
  795. },
  796. });
  797. // 광고 스크립트용
  798. var goodsNavigation = [[${goodsNavigation}]];
  799. var cate1Nm = "";
  800. var cate2Nm = "";
  801. var cate3Nm = "";
  802. var cate4Nm = "";
  803. var cate5Nm = "";
  804. if (!gagajf.isNull(goodsNavigation)) {
  805. cate1Nm = goodsNavigation.cate1Nm;
  806. cate2Nm = goodsNavigation.cate2Nm;
  807. cate3Nm = goodsNavigation.cate3Nm;
  808. cate4Nm = goodsNavigation.cate4Nm;
  809. cate5Nm = goodsNavigation.cate3Nm;
  810. if (!gagajf.isNull(cate1Nm)) {
  811. cateNm += cate1Nm;
  812. }
  813. if (!gagajf.isNull(cate2Nm)) {
  814. cateNm += ' > ' + cate2Nm;
  815. }
  816. if (!gagajf.isNull(cate3Nm)) {
  817. cateNm += ' > ' + cate3Nm;
  818. }
  819. if (!gagajf.isNull(cate4Nm)) {
  820. cateNm += ' > ' + cate4Nm;
  821. }
  822. if (!gagajf.isNull(cate5Nm)) {
  823. cateNm += ' > ' + cate5Nm;
  824. }
  825. }
  826. // 광고 스크립트용
  827. var snsGoodsImg = _uploadGoodsUrl + [[${goodsInfo.sysImgNm}]];
  828. var snsUrl = location.protocol + _PAGE_GOODS_DETAIL + params.goodsCd +'&colorCd =' + params.colorCd ;
  829. var snsGoodsFullNm = [[${goodsInfo.goodsFullNm}]];
  830. <!-- 페이스북 카카오스토리 연동 관련 메타태그 -->
  831. $("meta[property='og:url']").attr('content', snsUrl);
  832. $("meta[property='og:title']").attr('content', snsGoodsFullNm);
  833. $("meta[property='og:description']").attr('content', snsGoodsFullNm);
  834. $("meta[property='og:image']").attr('content', snsGoodsImg);
  835. <!-- 트위터 관련 메타태그 -->
  836. $("meta[name='twitter:url']").attr('content', snsUrl);
  837. $("meta[name='twitter:title']").attr('content', snsGoodsFullNm);
  838. $("meta[name='twitter:description']").attr('content', snsGoodsFullNm);
  839. $("meta[name='twitter:image']").attr('content', snsGoodsImg);
  840. // 추천솔류션 meta 설정
  841. $("meta[property='eg:type']").attr('content',"product");
  842. $("meta[property='eg:cuid']").attr('content',eglqueueCuid);
  843. $("meta[property='eg:itemId']").attr('content', [[${goodsInfo.goodsCd}]] );
  844. $("meta[property='eg:itemName']").attr('content',[[${goodsInfo.goodsFullNm}]] );
  845. $("meta[property='eg:itemImage']").attr('content', snsGoodsImg);
  846. $("meta[property='eg:itemUrl']").attr('content',snsUrl);
  847. $("meta[property='eg:originalPrice']").attr('content',[[${goodsInfo.listPrice}]]);
  848. $("meta[property='eg:salePrice']").attr('content',[[${goodsInfo.currPrice}]]);
  849. $("meta[property='eg:category1']").attr('content',cate1Nm);
  850. $("meta[property='eg:category2']").attr('content',cate2Nm);
  851. $("meta[property='eg:category3']").attr('content',cate3Nm);
  852. $("meta[property='eg:category4']").attr('content',cate4Nm);
  853. $("meta[property='eg:category5']").attr('content',cate5Nm);
  854. $("meta[property='eg:brandId']").attr('content',[[${goodsInfo.brandGroupNo}]]);
  855. $("meta[property='eg:brandName']").attr('content',[[${goodsInfo.brandGroupNm}]]);
  856. $("meta[property='eg:regDate']").attr('content',[[${goodsInfo.regDt}]].toDate("YYYYMMDDHHmmss").format("YYYY-MM-DDTHH:mm:ssZ"));
  857. $("meta[property='eg:updateDate']").attr('content',[[${goodsInfo.updDt}]].toDate("YYYYMMDDHHmmss").format("YYYY-MM-DDTHH:mm:ssZ"));
  858. $("meta[property='eg:stock']").attr('content',"");
  859. $("meta[property='eg:state']").attr('content',[[${goodsInfo.goodsStatNm}]]);
  860. $("meta[property='eg:description']").attr('content',null);
  861. $("meta[property='eg:extraImage']").attr('content',null);
  862. $("meta[property='eg:locale']").attr('content',"KR");
  863. $("meta[property='eg:isNew']").attr('content',([[${goodsInfo.formalGb}]] == 'G009_10')? 'True' :'False');
  864. $("meta[property='eg:etc1']").attr('content', [[${goodsInfo.selfGoodsYn}]]);
  865. // 탭별 선택시 기본 상품 설정
  866. let selIdx = 0;
  867. $('.tab_detail_cont.pd_delivery').find('.combo .list li').each(function() {
  868. if (typeof ($(this).attr('aria-disabled')) == 'undefined' || !$(this).attr('aria-disabled')){
  869. return false;
  870. }
  871. selIdx ++;
  872. });
  873. $('.tab_detail_cont.pd_delivery').find('.combo .list li').eq(selIdx).trigger("click");
  874. $('.tab_detail_cont.pd_qnalist').find('.combo .list li').eq(selIdx).trigger("click");
  875. $('.tab_detail_cont.pd_review').find('.combo .list li').eq(selIdx).trigger("click");
  876. });
  877. /*]]>*/
  878. </script>
  879. <!-- 광고 스크립트 -->
  880. <!-- <th:block th:replace="~{web/common/advertisements/GoodsDetailScriptsWeb :: scripts}"></th:block> -->
  881. <!-- //광고 스크립트 -->
  882. </th:block>
  883. </body>
  884. </html>