BestMainFormMob.html 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375
  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="mob/common/layout/DefaultLayoutMob">
  6. <!--
  7. *******************************************************************************
  8. * @source : BestMainFormMob.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.05.10 bin2107 최초 작성
  17. *******************************************************************************
  18. -->
  19. <body>
  20. <th:block layout:fragment="content">
  21. <main role="" id="" class="container dp">
  22. <section class="content dp_best">
  23. <div class="inner wide">
  24. <div class="category_nav">
  25. <ul id="cateListArea">
  26. <li><button type="button" class="active" id="li0" onclick="fnBestListSearch(this,0);">전체</button></li>
  27. <th:block th:each="item, stat : ${bestCateList}">
  28. <li class="" th:id="${'li'+item.cateNo}"><button type="button" th:onclick="fnBestListSearch(this,[[${item.cateNo}]]);" th:text="${item.cateNm}">여성</button></li>
  29. </th:block>
  30. </ul>
  31. </div>
  32. </div>
  33. <div class="inner bg_gray">
  34. <div class="view_item">
  35. <div class="count_wrap">
  36. <div>
  37. <p>지금 많이 <span>보고 있어요</span></p>
  38. </div>
  39. <div>
  40. <ul class="dp_util">
  41. <li><a href="#none" class="refresh">17:30 기준</a></li>
  42. </ul>
  43. </div>
  44. </div>
  45. <div class="swiper-container item_list">
  46. <div class="swiper-wrapper">
  47. <div class="swiper-slide">
  48. <div class="item_prod">
  49. <div class="item_state">
  50. <a href="#none" class="itemLink">
  51. <div class="itemPic">
  52. <img alt="BLACK-a" class=" vLHTC pd_img" src="/images/mo/thumb/prod3.jpg">
  53. </div>
  54. <div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
  55. <div class="viewComment">508명 보는중</div>
  56. </a>
  57. </div>
  58. </div>
  59. </div>
  60. <div class="swiper-slide">
  61. <div class="item_prod">
  62. <div class="item_state">
  63. <a href="#none" class="itemLink">
  64. <div class="itemPic">
  65. <img alt="BLACK-a" class=" vLHTC pd_img" src="/images/mo/thumb/prod3.jpg">
  66. </div>
  67. <div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
  68. <div class="viewComment">320명 보는중</div>
  69. </a>
  70. </div>
  71. </div>
  72. </div>
  73. <div class="swiper-slide">
  74. <div class="item_prod">
  75. <div class="item_state">
  76. <a href="#none" class="itemLink">
  77. <div class="itemPic">
  78. <img alt="BLACK-a" class=" vLHTC pd_img" src="/images/mo/thumb/prod3.jpg">
  79. </div>
  80. <div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
  81. <div class="viewComment">1500명 보는중</div>
  82. </a>
  83. </div>
  84. </div>
  85. </div>
  86. <div class="swiper-slide">
  87. <div class="item_prod">
  88. <div class="item_state">
  89. <a href="#none" class="itemLink">
  90. <div class="itemPic">
  91. <img alt="BLACK-a" class=" vLHTC pd_img" src="/images/mo/thumb/prod3.jpg">
  92. </div>
  93. <div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
  94. <div class="viewComment">508명 보는중</div>
  95. </a>
  96. </div>
  97. </div>
  98. </div>
  99. <div class="swiper-slide">
  100. <div class="item_prod">
  101. <div class="item_state">
  102. <a href="#none" class="itemLink">
  103. <div class="itemPic">
  104. <img alt="BLACK-a" class=" vLHTC pd_img" src="/images/mo/thumb/prod3.jpg">
  105. </div>
  106. <div class="itemName">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
  107. <div class="viewComment">508명 보는중</div>
  108. </a>
  109. </div>
  110. </div>
  111. </div>
  112. </div>
  113. </div>
  114. </div>
  115. </div>
  116. <div class="inner">
  117. <div class="best_item">
  118. <h2 class="dp_subtitle">베스트 TOP 100</h2>
  119. <div class="item_list">
  120. <div class="count_wrap">
  121. <ul class="dp_util">
  122. <li>
  123. <div class="open_categori sex">
  124. <a id="filter">구매 성별 전체
  125. <!--<option value="hide">구매 성별 전체</option>
  126. <option value="Test_SELECT_OPTION_1" rel="icon-temperature">구매 성별 전체1</option>
  127. <option value="Test_SELECT_OPTION_2">구매 성별 전체2</option>
  128. <option value="Test_SELECT_OPTION_3">구매 성별 전체3</option>-->
  129. </a>
  130. </div>
  131. </li>
  132. <li>
  133. <div class="open_categori age">
  134. <a id="filter">구매 연령 전체
  135. <!--<option value="hide">구매 연령전체</option>
  136. <option value="Test_SELECT_OPTION_1" rel="icon-temperature">구매 연령전체1</option>
  137. <option value="Test_SELECT_OPTION_2">구매 연령전체2</option>
  138. <option value="Test_SELECT_OPTION_3">구매 연령전체3</option>-->
  139. </a>
  140. </div>
  141. </li>
  142. </ul>
  143. </div>
  144. <div id="infiniteContainer">
  145. <div id="listBoxOuter" class="itemsGrp">
  146. <ul class="productlist quarter" >
  147. </ul>
  148. </div>
  149. </div>
  150. <div class="list_content">
  151. <div class="itemsGrp" id="listBox">
  152. </div>
  153. </div>
  154. <div class="list_last" id="divLastPage" style="display: none;">마지막페이지 입니다.</div>
  155. </div>
  156. </div>
  157. </div>
  158. </section>
  159. <!-- 카테고리 -->
  160. <div class="category_box">
  161. <div class="lap">
  162. <div class="category_close">카테고리닫기</div>
  163. <div class="category_list">
  164. <!-- 카테고리 선택 -->
  165. <div class="selcet_list">
  166. <ul>
  167. <li class="active"><a href="javascript:void(0)">구매성별 전체</a></li>
  168. <li><a href="javascript:void(0)">구매성별1</a></li>
  169. <li><a href="javascript:void(0)">구매성별2</a></li>
  170. <li><a href="javascript:void(0)">구매성별3</a></li>
  171. <li><a href="javascript:void(0)">구매성별4</a></li>
  172. </ul>
  173. </div>
  174. <!-- //카테고리 선택 -->
  175. </div>
  176. </div>
  177. </div>
  178. <!-- //카테고리 -->
  179. <!-- 210415_최신상품순 리스트 팝업 추가 -->
  180. <div id="odDatePop1" class="popup_box odDatePop">
  181. <div class="lap">
  182. <div class="popup_close">카테고리닫기</div>
  183. <div class="popup_head sr-only">
  184. <h2 class="">기간 선택 팝업</h2>
  185. </div>
  186. <div class="popup_con">
  187. <div class="button_list clear">
  188. <button type="button" class="on"><span>구매성별 전체</span></button>
  189. <button type="button"><span>구매성별1</span></button>
  190. <button type="button"><span>구매성별2</span></button>
  191. <button type="button"><span>구매성별3</span></button>
  192. <button type="button"><span>구매성별4</span></button>
  193. </div>
  194. </div>
  195. </div>
  196. </div>
  197. <div id="odDatePop2" class="popup_box odDatePop">
  198. <div class="lap">
  199. <div class="popup_close">카테고리닫기</div>
  200. <div class="popup_head sr-only">
  201. <h2 class="">기간 선택 팝업</h2>
  202. </div>
  203. <div class="popup_con">
  204. <div class="button_list clear">
  205. <button type="button" class="on"><span>구매연령 전체</span></button>
  206. <button type="button"><span>구매연령1</span></button>
  207. <button type="button"><span>구매연령2</span></button>
  208. <button type="button"><span>구매연령3</span></button>
  209. <button type="button"><span>구매연령4</span></button>
  210. </div>
  211. </div>
  212. </div>
  213. </div>
  214. </main>
  215. <form id="bestGoodsForm" name="bestGoodsForm">
  216. <input type="hidden" name="pageNo" id="pageNo" value ="1"/>
  217. <input type="hidden" name="pageSize" value ="30"/>
  218. <input type="hidden" name="cateNo" value=""/>
  219. <input type="hidden" name="sortGb"/>
  220. </form>
  221. <script src="/ux/plugins/gaga/gaga.infinite.scrollSession.js"></script>
  222. <script src="/ux/plugins/jquery/jquery.history.min.js"></script>
  223. <script th:src="@{'/biz/goods.js?v=' + ${#calendars.format(#calendars.createNow(), 'yyyyMMddHHmmss')}}" src="/biz/goods.js"></script>
  224. <script th:inline="javascript">
  225. /*<![CDATA[*/
  226. var bestCateList = [[${bestCateList}]];
  227. $(document).ready(function(){
  228. $(document).on('click','.sub_category .more_btn',function(){
  229. $(this).toggleClass('on');
  230. $('.sub_category .cate_wrap').toggleClass('on');
  231. if($(this).hasClass('on')){
  232. $(this).find('span').text('접기');
  233. }else{
  234. $(this).find('span').text('더보기');
  235. }
  236. });
  237. //카테고리
  238. function category(){
  239. var categoryOpen=$(".open_categori .select_dress");
  240. var categoryClose=$(".category_box .category_close");
  241. var categoryPop=$(".category_box");
  242. categoryOpen.on("click",function(){
  243. categoryPop.show();
  244. categoryPop.addClass("active");
  245. $("body").css({"overflow":"hidden"});
  246. });
  247. categoryClose.on("click",function(){
  248. categoryPop.hide();
  249. $("body").css({"overflow":"visible"});
  250. });
  251. }
  252. category();
  253. var dp_viewitem_slide = new Swiper('.view_item .swiper-container', {
  254. slidesPerView: 'auto',
  255. slidesPerView: 3,
  256. spaceBetween: 8,
  257. centerMode: true,
  258. });
  259. // 210415_팝업관련 추가
  260. //기간 선택 팝업
  261. $(document).on("click", ".open_categori.sex", function(){
  262. $('#odDatePop1').show().addClass("active");
  263. $("body").css({"overflow":"hidden"});
  264. });
  265. $(document).on("click", ".open_categori.age", function(){
  266. $('#odDatePop2').show().addClass("active");
  267. $("body").css({"overflow":"hidden"});
  268. });
  269. //팝업_닫기
  270. $('.popup_close').on("click",function(){
  271. $('.popup_box').hide().removeClass('active');
  272. $("body").css({"overflow":"visible"});
  273. });
  274. //210510_수정 : 토스트 팝업 버튼 on 클래스 제어.
  275. $(document).on('click','.popup_box .button_list button',function(){
  276. $(this).siblings('.button_list button').removeClass('on');
  277. $(this).addClass('on');
  278. })
  279. //210510_추가 : 토스트 팝업 button 클릭 시 팝업 닫기.
  280. $(document).on('click','.popup_box.odDatePop .button_list button',function(){
  281. $(this).parents('.popup_box.odDatePop').hide().removeClass('active');
  282. $("body").css({"overflow":"visible"});
  283. })
  284. $(document).on('click','.popup_box.odDatePop .button_list button',function(){
  285. $(this).parents('.popup_box.odDatePop').hide().removeClass('active');
  286. $("body").css({"overflow":"visible"});
  287. })
  288. });
  289. var fnBestListSearch = function (obj, cateNo){
  290. if(gagajf.isNull(cateNo)){
  291. cateNo = 0;
  292. }
  293. $.each($("#cateListArea").find('li'), function() {
  294. $(this).removeClass();
  295. });
  296. $("#li"+cateNo).addClass('active');
  297. $("#bestGoodsForm input[name=cateNo]").val(cateNo);
  298. fnCategoryGoodsInfiniteScrollInit();
  299. gagaInfiniteScroll.getHistory();
  300. }
  301. // 상품 검색
  302. var fnGetInfiniteScrollDataList = function (pageNum){
  303. $("#bestGoodsForm input[name=pageNo]").val(pageNum+1);
  304. gagajf.ajaxFormSubmit("/display/best/main/goods/list", document.bestGoodsForm, gagaInfiniteScroll.jsonToHtml);
  305. }
  306. var fnDrawInfiniteScrollData = function (result){
  307. let totalCnt = result.totalCnt;
  308. gagaInfiniteScroll.pageStatus.totalCount = result.totalCnt;
  309. var ithrCd = '';
  310. var contentLoc = '';
  311. if (result.dataList != null && result.dataList.length > 0) {
  312. var goodsUrl = [[${@environment.getProperty('upload.goods.view')}]];;
  313. let lastPage = result.paging.pageable.pageNo;
  314. let endRow = result.endRow - result.paging.pageable.pageSize;
  315. var htm = fnCreateGoodsList(result, ithrCd, contentLoc, goodsUrl, lastPage, endRow);
  316. gagaInfiniteScroll.draw(htm);
  317. }else{
  318. if($("#bestGoodsForm input[name=pageNo]").val()==1){
  319. $('#listBox').html('<li class="none">상품정보가 존재하지 않습니다.</li>');
  320. }
  321. $("#divLastPage").show();
  322. gagaInfiniteScroll.draw('not');
  323. }
  324. }
  325. // 사파리 - event.persisted || 크롬 - window.performance.navigation.type 이 1이면 새로고침, 2면 페이지 이동을 통한 캐쉬페이징
  326. $(window).on("pageshow", function(event) {
  327. if ( (event.originalEvent && event.originalEvent.persisted) || (window.performance && window.performance.navigation.type == 2)) {
  328. var historyData = sessionStorage.getItem(document.location.href);
  329. if(historyData!=null){
  330. historyData = JSON.parse(historyData);
  331. }else{
  332. historyData = {};
  333. }
  334. fnBestListSearch();
  335. }else{
  336. fnCategoryGoodsInfiniteScrollInit();
  337. fnBestListSearch();
  338. }
  339. });
  340. /*]]>*/
  341. </script>
  342. </th:block>
  343. </body>
  344. </html>