OutletMainFormWeb.html 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265
  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 : OutletMainFormWeb.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.04.20 bin2107 최초 작성
  17. *******************************************************************************
  18. -->
  19. <body>
  20. <th:block layout:fragment="content">
  21. <div id="container" class="container dp">
  22. <div class="breadcrumb">
  23. <ul>
  24. <li class="bread_home"><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MAIN);">홈</a></li>
  25. <li class="bread_2depth">아울렛</li>
  26. </ul>
  27. </div>
  28. <div class="wrap">
  29. <th:block th:if="${outletMainLayoutList}" th:each="mainLayoutData, mainStat : ${outletMainLayoutList}" th:with="contentsLoc=${#strings.replace(mainLayoutData.contentsLoc,'SOM','')},contentsTitle=${mainLayoutData.contentsTitle}">
  30. <!-- 상단 스크롤 슬라이드 배너 -->
  31. <th:block th:if="${contentsLoc=='001'}">
  32. <div class="content dp_submain">
  33. <div class="cont_head">
  34. <div>
  35. <h3>아울렛</h3>
  36. </div>
  37. </div>
  38. <div class="cont_body" th:if="${planningList != null and !planningList.empty}">
  39. <div class="swiper-container">
  40. <div class="swiper-wrapper">
  41. <div class="swiper-slide" th:each="item, status : ${planningList}">
  42. <a th:href="${item.strVar1}">
  43. <div class="img">
  44. <img th:src="${@environment.getProperty('domain.image') + item.imgPath1}" alt="서브메인 썸네일">
  45. </div>
  46. <div class="txt">
  47. <p class="subject">
  48. <input type="hidden" name="mainTitle" th:value="${item.strTitle1}"/>
  49. </p>
  50. <span th:text="${item.subText1}"></span>
  51. </div>
  52. </a>
  53. </div>
  54. </div>
  55. <div class="swiper-controls">
  56. <div class="swiper-scrollbar"></div>
  57. </div>
  58. </div>
  59. </div>
  60. </div>
  61. </th:block>
  62. <!-- //상단 스크롤 슬라이드 배너 -->
  63. <th:block th:if="${contentsLoc=='004'}">
  64. <!-- 카테고리 바로가기 -->
  65. <div class="content wide dp_category">
  66. <div class="cont_head">
  67. <h4 th:text="${contentsTitle!=null and contentsTitle!=''}?${contentsTitle}:'카테고리 바로가기'"></h4>
  68. </div>
  69. <div class="cont_body">
  70. <div class="dp_cate_list">
  71. <!-- <a href="">전체</a>-->
  72. <!-- <a href="">여성</a>-->
  73. <!-- <a href="">남성</a>-->
  74. <!-- <a href="">유아동</a>-->
  75. <!-- <a href="">골프</a>-->
  76. <!-- <a href="">라이프</a>-->
  77. </div>
  78. </div>
  79. </div>
  80. </th:block>
  81. <!-- MD 추천 아이템 -->
  82. <th:block th:if="${contentsLoc=='002'}">
  83. <div class="content md_item" th:if="${mdPickGoodsList != null and !mdPickGoodsList.empty}">
  84. <div class="cont_head">
  85. <h4 th:text="${contentsTitle}">MD가 추천하는 아울렛 아이템</h4>
  86. </div>
  87. <div class="cont_body">
  88. <div class="swiper-container">
  89. <div class="swiper-wrapper">
  90. <div class="swiper-slide" th:each="item, status : ${mdPickGoodsList}">
  91. <div class="item_prod">
  92. <div class="item_state">
  93. <button type="button" class="itemLike" th:classappend="${item.likeIt == 'likeit'}? 'likeit' : ''" onclick="cfnPutWishList(this);" th:attr="goodsCd=${item.goodsCd}, ithrCd='', contentsLoc='SOM002', planDtlSq=''">관심상품 추가</button>
  94. <a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${item.goodsCd}]], '', '', 'SOM002');">
  95. <div class="itemPic">
  96. <th:block th:each="option,idx:${item.videos}" th:with="videoArr=${#strings.arraySplit(idx.current,':')}">
  97. <iframe th:if="${videoArr[0]=='Y'}" id="pdThumbVideo" class="pd_mov" th:src="${'https://www.youtube.com/embed/'+videoArr[1]+'?autoplay=1&mute=1'}"></iframe>
  98. <iframe th:unless="${videoArr[0]=='Y'}" id="pdThumbVideo" class="pd_mov" th:src="${kollusMediaUrl+'/'+videoArr[1]+'?enable_initialize_focus=false&autoplay&mute&controls_activation=none'}" allow="fullscreen" allowFullScreen></iframe>
  99. </th:block>
  100. <img alt="BLUE-a" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + item.sysImgNm}" th:alt="${item.goodsCd}"/>
  101. </div>
  102. <p class="itemBrand" th:text="${item.brandGroupNm}">BRAND NAME</p>
  103. <div class="itemName" th:text="${item.goodsFullNm}">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
  104. <p class="itemPrice">[[${#numbers.formatInteger(item.currPrice,0,'COMMA')} + 원]]
  105. <span class="itemPrice_original" th:if="${item.currPrice != item.listPrice}" th:text="${#numbers.formatInteger(item.listPrice,3,'COMMA')}">89,000</span>
  106. <span class=" itemPercent" th:if="${item.currPrice != item.listPrice}" th:text="${(item.listPrice == 0 ? 0 : #numbers.formatDecimal((item.listPrice - item.currPrice) / (item.listPrice * 1.0) * 100, 1, 0)) + '%'}">10%</span>
  107. </p>
  108. <div class="itemComment" th:if="${not #strings.isEmpty(item.goodsTnm)}" th:text="${item.goodsTnm}">#주문 폭주 상품</div>
  109. </a>
  110. </div>
  111. </div>
  112. </div>
  113. </div>
  114. </div>
  115. <div class="swiper-pagination"></div>
  116. <div class="swiper-button-prev"></div>
  117. <div class="swiper-button-next"></div>
  118. </div>
  119. </div>
  120. </th:block>
  121. <!-- //MD 추천 아이템 -->
  122. <!-- 베스트 상품 리스트 -->
  123. <th:block th:if="${contentsLoc=='003'}">
  124. <div class="content dp_best_list" th:if="${bestGoodsList != null and !bestGoodsList.empty}">
  125. <div class="cont_head">
  126. <div>
  127. <h4 th:text="${contentsTitle}">베스트</h4>
  128. </div>
  129. </div>
  130. <div class="cont_body">
  131. <div class="list_content">
  132. <div class="itemsGrp"> <!-- itemsGrp rank hot deal -->
  133. <div class="item_prod" th:each="item, status : ${bestGoodsList}">
  134. <div class="item_state">
  135. <button type="button" class="itemLike" th:classappend="${item.likeIt == 'likeit'}? 'likeit' : ''" onclick="cfnPutWishList(this);" th:attr="goodsCd=${item.goodsCd}, ithrCd='', contentsLoc='SOM003', planDtlSq=''">관심상품 추가</button>
  136. <a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${item.goodsCd}]], '', '', 'SOM003');">
  137. <div class="shape" th:classappend="${status.count==1}?'ranker'"><span th:text="${status.index+1}">1</span></div>
  138. <div class="itemPic">
  139. <th:block th:each="option,idx:${item.videos}" th:with="videoArr=${#strings.arraySplit(idx.current,':')}">
  140. <iframe th:if="${videoArr[0]=='Y'}" id="pdThumbVideo" class="pd_mov" th:src="${'https://www.youtube.com/embed/'+videoArr[1]+'?autoplay=1&mute=1'}"></iframe>
  141. <iframe th:unless="${videoArr[0]=='Y'}" id="pdThumbVideo" class="pd_mov" th:src="${kollusMediaUrl+'/'+videoArr[1]+'?enable_initialize_focus=false&autoplay&mute&controls_activation=none'}" allow="fullscreen" allowFullScreen></iframe>
  142. </th:block>
  143. <img alt="BLUE-a" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + item.sysImgNm}">
  144. </div>
  145. <p class="itemBrand" th:text="${item.brandGroupNm}">BRAND NAME</p>
  146. <div class="itemName" th:text="${item.goodsFullNm}">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
  147. <p class="itemPrice">[[${#numbers.formatInteger(item.currPrice,0,'COMMA')} + 원]]
  148. <span class="itemPrice_original" th:if="${item.currPrice != item.listPrice}" th:text="${#numbers.formatInteger(item.listPrice,3,'COMMA')}">89,000</span>
  149. <span class=" itemPercent" th:if="${item.currPrice != item.listPrice}" th:text="${(item.listPrice == 0 ? 0 : #numbers.formatDecimal((item.listPrice - item.currPrice) / (item.listPrice * 1.0) * 100, 1, 0)) + '%'}">10%</span>
  150. </p>
  151. <div class="itemcolorchip">
  152. <th:block th:each="option, idx : ${item.colorArr}" th:with="colorArray=${#strings.arraySplit(idx.current,':')}">
  153. <span th:if="${colorArray[1]=='#FFFFFF'}" th:style="${'background-color:'+colorArray[1]+';border:1px solid #aaa;'}" class="chip_color" th:value="${colorArray[0]}"></span>
  154. <span th:if="${colorArray[1]!='#FFFFFF'}" th:style="${'background-color:'+colorArray[1]+';'}" class="chip_color" th:value="${colorArray[0]}"></span>
  155. </th:block>
  156. </div>
  157. <p class="itemBadge">
  158. <th:block th:each="option, idx : ${item.benefitArr}" th:with="iconArray=${#strings.arraySplit(idx.current,':')}" >
  159. <span class="badge13" th:if="${idx.index<3}" th:value="${iconArray[0]}" th:text="${iconArray[1]}"></span>
  160. </th:block>
  161. </p>
  162. <div class="itemComment" th:if="${not #strings.isEmpty(item.goodsTnm)}" th:text="${item.goodsTnm}">#주문 폭주 상품</div>
  163. </a>
  164. </div>
  165. </div>
  166. </div>
  167. </div>
  168. </div>
  169. </div>
  170. </th:block>
  171. </th:block>
  172. <!-- //베스트 상품 리스트 -->
  173. </div>
  174. </div>
  175. <script th:inline="javascript">
  176. /*<![CDATA[*/
  177. $(document).ready(function() {
  178. fnSetCategory1Depts();
  179. /* SLIDE - 상단 스크롤 슬라이드 배너 */
  180. var submain_slide = new Swiper('.dp_submain .swiper-container', {
  181. slidesPerView: 4,
  182. spaceBetween: 20,
  183. freeMode:true,
  184. scrollbar: {
  185. el: '.dp_submain .swiper-scrollbar',
  186. hide: false,
  187. },
  188. });
  189. /* SLIDE - MD ITEMS */
  190. var dp_submain_mditem = new Swiper('.dp .md_item .swiper-container', {
  191. slidesPerView: 5,
  192. slidesPerGroup: 5,
  193. spaceBetween: 20,
  194. loop: true,
  195. watchSlidesProgress: true,
  196. watchSlidesVisibility: true,
  197. allowTouchMove: false,
  198. speed : 1000,
  199. // autoplay: {
  200. // delay: 3000,
  201. // disableOnInteraction:false,
  202. // },
  203. navigation: {
  204. nextEl: '.dp .md_item .swiper-button-next',
  205. prevEl: '.dp .md_item .swiper-button-prev',
  206. },
  207. pagination: {
  208. el: '.dp .md_item .swiper-pagination',
  209. clickable: true,
  210. },
  211. });
  212. });
  213. // 카테고리1Depts 설정
  214. var fnSetCategory1Depts = function() {
  215. let allCate = [[${allCateList}]];
  216. let cateGb = 'G032_101';
  217. let formalGb = 'G009_20';
  218. let tag = '';
  219. tag += '<a href="javascript:void(0);" onclick="cfnGoToGoodsList(0,\'' + cateGb + '\',\'\',\'\',\'\',\'\',\'\',\'' + formalGb + '\');">전체</a>\n';
  220. $.each(allCate, function(allCateIdx, allCateItem) {
  221. console.log('param::'+[[${params.cate1No}]]);
  222. //console.log('cate1.cate1No::'+cate1.cate1No);
  223. //if ([[${params.cate1No}]] == cate1.cate1No) {
  224. // let tag = '<a href="javascript:void(0);" onclick="cfnGoToGoodsList(0,\'' + cate1.cateGb + '\', ' + cate1.cate1No + ',\'\',\'\',\'\',\'\','+formalGb+');">전체</a>\n';
  225. // if (cate1.leafYn == 'N' && cate1.cate2List.length > 0) {
  226. // $.each(cate1.cate2List, function(idx2, cate2) {
  227. // tag += '<a href="javascript:void(0);" onclick="cfnGoToGoodsList(0,\'' + cate2.cateGb + '\',' + cate2.cate1No + ',' + cate2.cate2No + ',\'\',\'\',\'\','+formalGb+');">' + cate2.cate2Nm + '</a>\n';
  228. // });
  229. // }
  230. // $('.dp_cate_list').html(tag);
  231. // $('.cate1Nm').html(cate1.cate1Nm);
  232. //}
  233. // tag += ' <li id="cate'+allCateItem.cate1No+'">\n';
  234. tag += ' <a id="cate'+allCateItem.cate1No+'" href="javascript:void(0);" onclick="cfnGoToGoodsList(0,\'' + allCateItem.cateGb + '\',' + allCateItem.cate1No + ',\'\',\'\',\'\',\'\',\'' + formalGb + '\');">' + allCateItem.cate1Nm + '</a>\n';
  235. // tag += ' </li>\n';
  236. });
  237. $('.dp_cate_list').html(tag);
  238. // $('.cate1Nm').html(cate1.cate1Nm);
  239. $('.subject').each(function (){
  240. let tag = '';
  241. if(!gagajf.isNull($(this).find("input[name=mainTitle]").val())) {
  242. var brText = $(this).find("input[name=mainTitle]").val();
  243. tag = brText.replace(/(<br>|<br\/>|<br \/>)/g, '<br>');
  244. $(this).append(tag);
  245. }
  246. });
  247. }
  248. /*]]>*/
  249. </script>
  250. </th:block>
  251. </body>
  252. </html>