Browse Source

Merge remote-tracking branch 'origin/develop' into xodud1202

xodud lee 5 years ago
parent
commit
5cb2d77add
22 changed files with 669 additions and 212 deletions
  1. 1 1
      src/main/java/com/style24/front/biz/service/TsfGoodsService.java
  2. 3 3
      src/main/java/com/style24/front/biz/web/TsfGoodsController.java
  3. 4 0
      src/main/java/com/style24/persistence/domain/Freegift.java
  4. 109 0
      src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml
  5. 96 0
      src/main/resources/config/application-style.yml
  6. 2 0
      src/main/webapp/WEB-INF/views/mob/goods/GoodsDetailReviewFormMob.html
  7. 4 2
      src/main/webapp/WEB-INF/views/mob/goods/GoodsShopBenefitFormMob.html
  8. 3 2
      src/main/webapp/WEB-INF/views/mob/mypage/MypageGiftcardFormMob.html
  9. 7 7
      src/main/webapp/WEB-INF/views/mob/planning/PlanningMainFormMob.html
  10. 106 52
      src/main/webapp/WEB-INF/views/web/display/BrandMainFormWeb.html
  11. 161 34
      src/main/webapp/WEB-INF/views/web/display/CategoryGoodsListFormWeb.html
  12. 60 43
      src/main/webapp/WEB-INF/views/web/display/MallMainFormWeb.html
  13. 1 1
      src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html
  14. 10 3
      src/main/webapp/WEB-INF/views/web/goods/GoodsDetailReviewFormWeb.html
  15. 3 1
      src/main/webapp/WEB-INF/views/web/goods/GoodsReviewDetailFormWeb.html
  16. 6 3
      src/main/webapp/WEB-INF/views/web/goods/GoodsShopBenefitFormWeb.html
  17. 4 4
      src/main/webapp/WEB-INF/views/web/mypage/MypageGiftcardFormWeb.html
  18. 20 15
      src/main/webapp/WEB-INF/views/web/social/SocialMainFormWeb.html
  19. 47 23
      src/main/webapp/biz/goods.js
  20. 6 3
      src/main/webapp/ux/pc/css/layout.css
  21. 8 7
      src/main/webapp/ux/pc/css/main.css
  22. 8 8
      src/main/webapp/ux/plugins/gaga/gaga.infinite.scrollSession.js

+ 1 - 1
src/main/java/com/style24/front/biz/service/TsfGoodsService.java

@@ -702,7 +702,7 @@ public class TsfGoodsService {
 			// 이미지 정보
 			goodsExtend.setGoodsImgList(goodsDao.getGoodsImgList(tmpGoods));
 			// 상품 안전인증 정보
-			goodsExtend.setGoodsSafeNo(goodsDao.getGoodsSafeNo(tmpGoods));
+			//goodsExtend.setGoodsSafeNo(goodsDao.getGoodsSafeNo(tmpGoods));
 
 		}
 		return getGoodsSetComposeList;

+ 3 - 3
src/main/java/com/style24/front/biz/web/TsfGoodsController.java

@@ -209,7 +209,7 @@ public class TsfGoodsController extends TsfBaseController {
 
 			// 사은품
 			paramsGoods.setMaxRownum(1);
-			mav.addObject("freeGoodsList", goodsService.getFreeGoodsList(paramsGoods));
+			mav.addObject("freeGoodsList", goodsService.getFreeGoodsList(paramsGoods)); 
 
 			// 딜용 상품평건수
 			Review review = new Review();
@@ -237,7 +237,7 @@ public class TsfGoodsController extends TsfBaseController {
 //				// 상품 고시정보
 				mav.addObject("goodsNotiList", goodsService.getGoodsNotiList(goods));
 				// 상품 안전인증 정보
-				mav.addObject("goodsSafeNo", goodsService.getGoodsSafeNo(goods));
+				//mav.addObject("goodsSafeNo", goodsService.getGoodsSafeNo(goods));
 
 			} else if (TscConstants.GoodsType.SET.value().equals(goods.getGoodsType())) {		// 셋트상품
 				mav.addObject("goodsComposeList", goodsService.getGoodsSetComposeList(paramsGoods));
@@ -1334,7 +1334,7 @@ public class TsfGoodsController extends TsfBaseController {
 		// 상품 고시정보
 		mav.addObject("goodsNotiList", goodsService.getGoodsNotiList(goods));
 		// 상품 안전인증 정보
-		mav.addObject("goodsSafeNo", goodsService.getGoodsSafeNo(goods));
+		//mav.addObject("goodsSafeNo", goodsService.getGoodsSafeNo(goods)); 
 
 		// 상품 공통 베너
 		log.info("paramsGoods={}", paramsGoods);

+ 4 - 0
src/main/java/com/style24/persistence/domain/Freegift.java

@@ -25,4 +25,8 @@ public class Freegift {
 	private String leftQty;
 	private String targetVal;
 	
+	private int rnum;
+	
+	private String freeGoods;
+
 }

+ 109 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml

@@ -1073,6 +1073,103 @@
 	<!-- 상품의 사은품 목록 -->
 	<select id="getFreeGoodsList"  parameterType="Goods" resultType="Freegift">
 		/* TsfGoods.getFreeGoodsList */
+		WITH TAB_GOODS AS (
+		          SELECT GOODS_CD
+		               , SUPPLY_COMP_CD
+		               , BRAND_CD
+		          FROM TB_GOODS
+		          WHERE GOODS_CD =  #{goodsCd}
+		      )
+		, TAB_FREEGIFT AS (
+		     SELECT A.FREEGIFT_SQ
+		          , B.FREEGIFT_SECTION_SQ
+		          , A.ALL_YN     -- 모두지급
+		          , B.SECTION_GB -- G810_10|수량, G810_11|금액
+		          , B.SECTION_VAL
+		          , D.GOODS_CD
+		     FROM TB_FREEGIFT A
+		     INNER JOIN TB_FREEGIFT_SECTION B ON A.FREEGIFT_SQ = B.FREEGIFT_SQ
+		     AND B.DEL_YN = 'N'
+		     INNER JOIN (SELECT D.FREEGIFT_SQ
+		                      , G.GOODS_CD
+		                 FROM TAB_GOODS G
+		                          INNER JOIN TB_FREEGIFT_GOODS D ON G.GOODS_CD = D.TARGET_VAL
+		                     AND D.GOODS_GB IN ('G800_10', 'G800_20')
+		                     AND D.TARGET_GB = 'G260_10' -- 상품코드
+		                     AND D.DEL_YN = 'N'
+		                 UNION
+		                 SELECT S.FREEGIFT_SQ
+		                      , G.GOODS_CD
+		                 FROM TAB_GOODS G
+		                          INNER JOIN TB_FREEGIFT_GOODS S ON G.SUPPLY_COMP_CD = S.TARGET_VAL
+		                     AND S.GOODS_GB IN ('G800_10', 'G800_20')
+		                     AND S.TARGET_GB = 'G260_13' -- 공급업체코드
+		                     AND S.DEL_YN = 'N'
+		                 UNION
+		                 SELECT SB.FREEGIFT_SQ
+		                      , G.GOODS_CD
+		                 FROM TAB_GOODS G
+		                          INNER JOIN TB_FREEGIFT_GOODS SB ON G.BRAND_CD = SB.TARGET_VAL
+		                     AND SB.GOODS_GB IN ('G800_10', 'G800_20')
+		                     AND SB.TARGET_GB = 'G260_12' -- 브랜드코드
+		                     AND SB.DEL_YN = 'N'
+		     ) D ON A.FREEGIFT_SQ = D.FREEGIFT_SQ
+		     LEFT OUTER JOIN TB_FREEGIFT_GOODS E ON A.FREEGIFT_SQ = E.FREEGIFT_SQ
+		                                         AND E.GOODS_GB = 'G800_30'
+		                                         AND E.TARGET_GB = 'G260_10'
+		                                         AND E.DEL_YN = 'N'
+		                                         AND E.TARGET_VAL = #{goodsCd}
+		     WHERE NOW() BETWEEN A.FREEGIFT_STAT AND A.FREEGIFT_EDDT
+		     AND A.FREEGIFT_STAT = 'G232_11'
+		     AND NULLIF(E.TARGET_VAL, '') IS NULL
+		     AND A.DEL_YN = 'N'
+		     ORDER BY A.FREEGIFT_SQ, B.FREEGIFT_SECTION_SQ
+		 )
+		 , TAB_FREEGOODS AS (
+		     SELECT B.ALL_YN
+		          , C.FREEGIFT_SQ
+		          , C.FREEGIFT_SECTION_SQ
+		          , C.FREEGIFT_VAL_SQ
+		          , F.GOODS_NM
+		          , C.ITEM_QTY
+		          , CASE WHEN B.ALL_YN = 'Y' THEN 1
+		                 ELSE (RANK() OVER (PARTITION BY B.ALL_YN , C.FREEGIFT_SQ, C.FREEGIFT_SECTION_SQ
+		                                    ORDER BY  C.FREEGIFT_SQ , C.FREEGIFT_SECTION_SQ , C.FREEGIFT_VAL_SQ)) 
+		                 END AS ROWNUM
+		     FROM TAB_FREEGIFT B
+		     INNER JOIN TB_FREEGIFT_VAL C ON B.FREEGIFT_SQ = C.FREEGIFT_SQ
+		                                  AND B.FREEGIFT_SECTION_SQ = C.FREEGIFT_SECTION_SQ
+		                                  AND C.DEL_YN = 'N'
+		                                  AND C.LEFT_QTY - C.ITEM_QTY > 0 -- 사은품 잔여수량
+		     INNER JOIN TB_FREE_GOODS F ON F.PRODUCT_NO = C.PRODUCT_NO
+		                                AND F.USE_YN = 'Y'
+		 )
+		SELECT Z.*
+		FROM (
+		    SELECT  F.FREEGIFT_SQ
+		          , F.FREEGIFT_SECTION_SQ
+		          , F.ALL_YN     -- 모두지급
+		          , F.SECTION_GB -- G810_10|수량, G810_11|금액
+		          , F.SECTION_VAL
+		          , FG.GOODS_NM
+		          , GROUP_CONCAT(CONCAT(FG.GOODS_NM,':',FG.ITEM_QTY)) AS FREE_GOODS
+		          -- , RANK() OVER (PARTITION BY F.FREEGIFT_SQ , F.FREEGIFT_SECTION_SQ ORDER BY  FG.FREEGIFT_VAL_SQ ) AS RNUM
+		    FROM TAB_FREEGIFT F
+		    INNER JOIN TAB_FREEGOODS FG ON F.FREEGIFT_SQ = FG.FREEGIFT_SQ
+		                                AND F.FREEGIFT_SECTION_SQ = F.FREEGIFT_SECTION_SQ
+		                                AND FG.ROWNUM = 1
+		    GROUP BY  F.FREEGIFT_SQ , F.FREEGIFT_SECTION_SQ , F.ALL_YN , F.SECTION_GB , F.SECTION_VAL
+		    ORDER BY F.FREEGIFT_SQ, F.FREEGIFT_SECTION_SQ
+		) Z
+		WHERE 1 = 1
+		<if test="maxRownum != null and maxRownum > 0">
+		LIMIT #{maxRownum}
+		</if> 
+	</select>
+	
+	<!-- 상품의 사은품 목록 -->
+	<select id="getFreeGoodsList_org"  parameterType="Goods" resultType="Freegift">
+		/* TsfGoods.getFreeGoodsList_org */
 		SELECT Z.*
 		FROM (
 		      WITH TAB_GOODS AS (
@@ -1946,6 +2043,18 @@
 		                </choose>
 		                FROM   TAB_GOODS G
 		                LEFT OUTER JOIN TAB_OPTION O ON G.GOODS_CD = O.GOODS_CD
+		                WHERE 1=1
+		            <if test="colorArr != null and colorArr.length > 0"> <!-- 색상 -->
+		                AND    O.MAIN_COLOR_CD IN (SELECT COLOR_CD
+		                                     FROM   TB_COLOR
+		                                     WHERE  1 = 1
+		                                     AND    COLOR_GRP_CD IN
+		                                     <foreach collection="colorArr" item="item" index="index"  open="(" close=")" separator=",">
+		                                     	#{item}
+		                                     </foreach>
+		                                     AND    USE_YN = 'Y' /*사용하는색상*/
+		                                     )
+		            </if>
 		        ) ORIGINAL
 		        WHERE  1 = 1
 		        <if test="pageable != null and pageable.endRow != null and pageable.endRow > 0">

+ 96 - 0
src/main/resources/config/application-style.yml

@@ -0,0 +1,96 @@
+spring:
+    profiles:
+        active: style
+    cache.type: redis
+    redis:
+        lettuce:
+            pool:
+                max-active: 10
+                max-idle: 10
+                min-idle: 2
+        host: 172.30.90.111
+        port: 6379
+        password:
+        cluster:
+            nodes:
+                172.30.90.111:6379
+                172.30.90.112:6379
+                172.30.90.113:6379
+                172.30.90.111:6380
+                172.30.90.112:6380
+                172.30.90.113:6380
+                172.30.90.111:6381
+                172.30.90.112:6381
+                172.30.90.113:6381
+
+# SSL Server
+has-ssl: false
+
+logging:
+    config: classpath:log/logback-run.xml
+
+domain:
+    admin: //admin.style24.com
+    front: //www.style24.com
+    image: //www.style24.com
+    uximage: //www.style24.com
+
+
+upload:
+    default:
+        target.path: /files/data/style24
+        max.size: 10
+        allow.extension: jpg|gif|jpeg|png|bmp|txt|doc|docx|ppt|pptx|xls|xlsx|hwp|pdf
+        view: //image.style24.com
+    goods:
+        target.path: /files/data/style24/Upload/ProductImage
+        max.size: 10
+        allow.extension: jpg|gif|jpeg|png
+        view: //image.istyle24.com/Upload/ProductImage
+    image:
+        target.path: /files/data/style24
+        max.size: 10
+        allow.extension: jpg|gif|jpeg|png
+        view: //image.style24.com
+    excel:
+        target.path: /files/data/style24/excel
+        max.size: 10
+        allow.extension: xls|xlsx
+        view: //image.style24.com/excel
+    sample:
+        target.path: /files/data/style24/sample
+        max.size: 10
+        allow.extension: txt|doc|docx|ppt|pptx|xls|xlsx|hwp|pdf
+        view: //image.style24.com/sample
+
+download.path: /files/data
+
+# USAFE 보증보험 정보
+usafe.guarantee:
+    mall.id: TEST00
+    send.url: http://gateway.usafe.co.kr/esafe/guartrn.asp
+
+
+# PG
+pg:
+    kcp:
+        log.dir: /files/data/style24/logs/kcpLogs/front
+        gw:
+            url: testpaygw.kcp.co.kr
+            port: 8090
+        js.url: https://testpay.kcp.co.kr/plugin/payplus_web.jsp
+        server: false
+        site:
+            cd: U3476
+            key:
+            name: KCP TEST SHOP
+        log.level: 3
+        module.type: 01
+        tx.mode: 0
+
+# 네이버페이 API
+naverPay:
+    apiUrl: https://dev.apis.naver.com/
+    payUrl:
+        web : test-pay.naver.com
+        mob : test-m.pay.naver.com

+ 2 - 0
src/main/webapp/WEB-INF/views/mob/goods/GoodsDetailReviewFormMob.html

@@ -44,6 +44,7 @@
 	<!-- //등록리뷰 없을 시 -->
 	<!-- 등록리뷰 있을 시 -->
 	<div class="area_rv_average" th:if="${reviewList != null and !reviewList.empty}">
+		<th:block th:if="${goodsInfo.reviewRegCnt > 0}">
 		<h6 class="sr-only">구매평점</h6>
 		<div class="star_score">
 			<span class="tit">구매평점</span>
@@ -52,6 +53,7 @@
 				<em class="progbar" th:style="${'width:'+starScore+'%;' }"></em> <!-- 평점 style로 표기 -->
 			</span>
 		</div>
+		</th:block>
 		<!-- 착용정보 있을 시 노출 -->
 		<th:block th:if="${not #strings.isEmpty(goodsInfo.sizeGb)}">
 		<div class="average">

+ 4 - 2
src/main/webapp/WEB-INF/views/mob/goods/GoodsShopBenefitFormMob.html

@@ -76,8 +76,10 @@
 							<tbody>
 								<tr th:each="freeGoods, status : ${freeGoodsList}">
 									<th>
-										<th:block th:text="${#numbers.formatInteger(freeGoods.sectionVal, 0,'COMMA')}"></th:block></th:block><th:block th:text="${(freeGoods.sectionGb == 'G810_10')? '개':'원'}"></th:block> 이상 구매 시
-										<p><th:block th:text="${freeGoods.goodsNm}"></th:block> <th:block th:text="${#numbers.formatInteger(freeGoods.itemQty, 0,'COMMA')}"></th:block>개 증정 <th:block th:if="${freeGoods.allYn == 'N'}" th:text="${'외 택1'}"></th:block></p>
+										<th:block th:text="${#numbers.formatInteger(freeGoods.sectionVal, 0,'COMMA')}"></th:block><th:block th:text="${(freeGoods.sectionGb == 'G810_10')? '개':'원'}"></th:block> 이상 구매 시
+										<th:block th:each="goodsNm : ${#strings.arraySplit(freeGoods.freeGoods,',')}" th:with="goodsArray=${#strings.arraySplit(goodsNm,':')}">
+										<p><th:block th:text="${goodsArray[0]}"></th:block> <th:block th:text="${#numbers.formatInteger(goodsArray[1], 0,'COMMA')}"></th:block>개 증정 <th:block th:if="${freeGoods.allYn == 'N'}" th:text="${'외 택1'}"></th:block></p>
+										</th:block>
 									</th>
 								</tr>
 							</tbody>

+ 3 - 2
src/main/webapp/WEB-INF/views/mob/mypage/MypageGiftcardFormMob.html

@@ -358,8 +358,8 @@ function giftcardSave() {
 			gagajf.ajaxJsonSubmit(
 					'/mypage/gift/use/confirm', jsonData,
 					function() {
-						$("#gift_input").val('');
-						//cfnGoToPage(_PAGE_MYPAGE_GIFTCARD);
+						//$("#gift_input").val('');
+						cfnGoToPage(_PAGE_MYPAGE_GIFTCARD);
 					});
 		}
 	});
@@ -370,6 +370,7 @@ function giftcardSave() {
 
 /*<![CDATA[*/
 $(document).ready(function() {
+	$('#htopTitle').text('상품권');
 	// 전체내역 표시
 	$("#SearchUseGiftcard").trigger('click');
 	// 셀렉트박스 활성화

+ 7 - 7
src/main/webapp/WEB-INF/views/mob/planning/PlanningMainFormMob.html

@@ -34,15 +34,15 @@
 				<div class="list_content"> <!-- 데이터 없을시 클래스 nodata 추가 -->
 					<div class="count_wrap">
 						<div>
-							<p id="planningTotCnt"></p>
+							<p id="planningTotCnt">></p>
 						</div>
 					</div>
-					<div class="list_defult nodata" style="display: none;" id="divPlanningNoData">
-						<div>
-							<p>등록된 기획전이 없습니다.</p>
-						</div>
-						<button type="button" class="btn btn_default" onclick="cfnGoToPage(_PAGE_MAIN);"><span>홈으로 가기</span></button>
-					</div>
+					 <div class="list_defult" style="display: none;" id="divPlanningNoData">
+                          <div>
+                              <p>등록된 기획전이 없습니다.</p>
+                          </div>
+                         <button type="button" class="btn btn_default" onclick="cfnGoToPage(_PAGE_MAIN);"><span>홈으로 가기</span></button>
+                     </div>
 					<div class="list_item" style="display: none;" id="divPlanningList">
 					</div>
 				</div>

+ 106 - 52
src/main/webapp/WEB-INF/views/web/display/BrandMainFormWeb.html

@@ -42,8 +42,8 @@
 														</dd>
 														<dd class="txt_xs" th:text="${ContentsData.subText1}"></dd>
 													</dl>
-													<button type="button" th:if="${ContentsData.contentsType=='SELF'}" class="btn" th:onclick="cfnGoToPage([[${ContentsData.strVar1}]]);"><span>자세히 보기</span></button>
-													<button type="button" th:unless="${ContentsData.contentsType=='SELF'}" class="btn" th:onclick="window.open(_frontUrl+[[${ContentsData.strVar1}]], '_blank','width=1180,height=800,toolbars=no,scrollbars=no'); return false;"><span>VIEW MORE</span></button>
+													<a th:if="${ContentsData.contentsType=='SELF'}" th:href="${ContentsData.strVar1}" target="_self" title="새 창으로 열기" class="btn"><span>자세히 보기</span></a>
+													<a th:unless="${ContentsData.contentsType=='SELF'}" th:href="${ContentsData.strVar1}" target="_blank" title="새 창으로 열기" class="btn"><span>자세히 보기</span></a>
 												</div>
 												<img th:src="${@environment.getProperty('domain.image')+ContentsData.imgPath1}">
 											</th:block>
@@ -89,7 +89,7 @@
 
 				<!-- new_item -->
 				<th:block th:if="${contentsLoc=='007'}">
-					<div class="content wide new_item" th:if="${brandMainLayoutData.goodsList != null}">
+					<div class="content new_item" th:if="${brandMainLayoutData.goodsList != null}">
 						<div class="cont_head">
 							<p class="displayH t_c" th:text="${contentsTitle}"></p>
 						</div>
@@ -170,7 +170,7 @@
 												<div class="item_state">
 													<button type="button" class="itemLike" th:classappend="${goodsData.likeIt == 'likeit'}? 'likeit' : ''"  onclick="cfnPutWishList(this);" th:attr="goodsCd=${goodsData.goodsCd}, ithrCd='', contentsLoc='SBM008', planDtlSq=''">관심상품 추가</button>
 													<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${goodsData.goodsCd}]], '', '', 'SBM008');">
-														<div class="shape ranker"><span th:text="${goodsStat.index+1}"></span></div>
+														<div class="shape" th:classappend="${goodsStat.count==1}?'ranker'"><span th:text="${goodsStat.index+1}"></span></div>
 														<div class="itemPic">
 															<img alt="BLACK-a" class="vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}">
 														</div>
@@ -198,7 +198,7 @@
 
 				<!-- LOOKBOOK -->
 				<th:block th:if="${contentsLoc=='010'}">
-					<div class="content br_lookbook" th:if="${brandMainLayoutData.lookbookList != null and !brandMainLayoutData.lookbookList.empty}">
+					<div class="content wide br_lookbook" th:if="${brandMainLayoutData.lookbookList != null and !brandMainLayoutData.lookbookList.empty}">
 						<div class="cont_head">
 							<p class="displayH t_c" th:text="${contentsTitle}"></p>
 						</div>
@@ -224,8 +224,8 @@
 										</div>
 									</th:block>
 								</div>
-								<div class="swiper-button-prev"></div>
-								<div class="swiper-button-next"></div>
+								<div class="swiper-button-prev white"></div>
+								<div class="swiper-button-next white"></div>
 							</div>
 							<div class="swiper-pagination"></div>
 						</div>
@@ -492,32 +492,67 @@ $(document).ready( function() {
 	//$("#br_header").load("br_head.html");
 	//$("#footer").load("foot.html");
 
-	/* SLIDE - BRAND_VISUAL */
-	var br_post_slide = new Swiper('.brand_main .brand_visual .post-visual', {
-		loop: true,
-		spaceBetween: 60,
-		slidesPerView: 'auto',
-		centeredSlides: true,
-		speed : 1000,
-		autoplay: {
-			delay: 3000,
-			disableOnInteraction: false,
-		},
-		navigation: {
-			nextEl: '.brand_main .brand_visual .swiper-button-next',
-			prevEl: '.brand_main .brand_visual .swiper-button-prev',
-		},
-		pagination: {
-			el: '.brand_main .brand_visual .swiper-pagination',
-			clickable: true,
-		},
+	/* 210503_수정 : 배너 2개 이상일시 자동 롤링 */
+	var postVisualCont = $('.brand_visual .post-visual .swiper-slide');
+	var postVisualLength = postVisualCont.length;
+	if (postVisualLength < 2) {
+		//배너 1개일 때
+		var br_post_slide = new Swiper('.brand_main .brand_visual .post-visual', {
+			loop: false,
+			watchOverflow : true,
+			spaceBetween: 60,
+			slidesPerView: 'auto',
+			centeredSlides: true,
+			speed : 1000,
+			autoplay: {
+				delay: 7000, //210422_수정 : delay 시간 늘림.
+				disableOnInteraction: false,
+			},
+			navigation: {
+				nextEl: '.brand_main .brand_visual .swiper-button-next',
+				prevEl: '.brand_main .brand_visual .swiper-button-prev',
+			},
+			pagination: {
+				el: '.brand_main .brand_visual .swiper-pagination',
+				clickable: true,
+			},
 
-		on: {
-			slideChangeTransitionStart: function () {
-				//$('.brand_main .post-visual .swiper-slide-prev .txtWrap').hide();
+			on: {
+				slideChangeTransitionStart: function () {
+					$('.brand_main .post-visual .swiper-slide-prev').css({'opacity':'0'});
+				},
 			},
-		},
-	});
+		});
+	}else{
+		//배너 1개 이상일 때
+		var br_post_slide = new Swiper('.brand_main .brand_visual .post-visual', {
+			loop: true,
+			spaceBetween: 60,
+			slidesPerView: 'auto',
+			centeredSlides: true,
+			speed : 1000,
+			//autoplay: {
+			//	delay: 7000, //210422_수정 : delay 시간 늘림.
+			//	disableOnInteraction: false,
+			//},
+			navigation: {
+				nextEl: '.brand_main .brand_visual .swiper-button-next',
+				prevEl: '.brand_main .brand_visual .swiper-button-prev',
+			},
+			pagination: {
+				el: '.brand_main .brand_visual .swiper-pagination',
+				clickable: true,
+			},
+
+			on: {
+				slideChangeTransitionStart: function () {
+					$('.brand_main .post-visual .swiper-slide-prev').css({'opacity':'0'});
+				},
+			},
+		});
+	}
+	/* //210503_수정 : 배너 2개 이상일시 자동 롤링 */
+
 
 	//VISUAL SLIDE Control - PAUSE
 	$(document).on('click','.brand_main .brand_visual .slide-curb-pause',function(e){
@@ -548,10 +583,10 @@ $(document).ready( function() {
 			nextEl: '.new_item .swiper-button-next',
 			prevEl: '.new_item .swiper-button-prev',
 		},
-		pagination: {
-			el: '.new_item .swiper-pagination',
-			clickable: true,
-		},
+		// pagination: {
+		// 	el: '.new_item .swiper-pagination',
+		// 	clickable: true,
+		// },
 		slidesPerView: 'auto',
 		spaceBetween: 22,
 	});
@@ -578,18 +613,33 @@ $(document).ready( function() {
 		$(".new_item .swiper-wrapper").css("transform","translateX(-"+ (slideWidth * newitemIndex) +"px)");
 	});
 
-
-	/* SLIDE - WIDE BANNER */
-	var br_bn_slide = new Swiper ('.brand_main .main_1stage .post-bnnWide', {
-		loop: true,
-		slidesPerView: 1,
-		speed : 1500,
-		navigation: {
-			nextEl: '.main_1stage .swiper-button-next',
-			prevEl: '.main_1stage .swiper-button-prev',
-		},
-	});
-
+	//210506_수정 : 기획전 배너 swiper 무한루프 변경.
+	var pickBnnCont = $('.post-bnnWide .swiper-slide');
+	var pickBnnLength = pickBnnCont.length;
+	if (pickBnnLength < 2) {
+		/* SLIDE - WIDE BANNER */
+		var br_bn_slide = new Swiper ('.brand_main .main_1stage .post-bnnWide', {
+			loop: false,
+			watchOverflow : true, //210503_추가 : 슬라이드 1개일때 롤링 막는 기능 추가.
+			slidesPerView: 1,
+			speed : 1500,
+			navigation: {
+				nextEl: '.main_1stage .swiper-button-next',
+				prevEl: '.main_1stage .swiper-button-prev',
+			},
+		});
+	}else{
+		/* SLIDE - WIDE BANNER */
+		var br_bn_slide = new Swiper ('.brand_main .main_1stage .post-bnnWide', {
+			loop: true,
+			slidesPerView: 1,
+			speed : 1500,
+			navigation: {
+				nextEl: '.main_1stage .swiper-button-next',
+				prevEl: '.main_1stage .swiper-button-prev',
+			},
+		});
+	}
 
 	/* SLIDE - BEST ITEMS */
 	var br_best_slide = new Swiper('.brand_main .best_item .swiper-container', {
@@ -597,7 +647,9 @@ $(document).ready( function() {
 			nextEl: '.best_item .swiper-button-next',
 			prevEl: '.best_item .swiper-button-prev',
 		},
+		loop:true,
 		slidesPerView: 5,
+		slidesPerGroup:5, //210429_추가 : slidesPerGroup 추가.
 		spaceBetween: 22,
 		pagination: {
 			el: '.best_item .swiper-pagination',
@@ -612,7 +664,9 @@ $(document).ready( function() {
 			nextEl: '.md_item .swiper-button-next',
 			prevEl: '.md_item .swiper-button-prev',
 		},
+		loop:true,
 		slidesPerView: 5,
+		slidesPerGroup:5, //210429_추가 : slidesPerGroup 추가.
 		spaceBetween: 22,
 		pagination: {
 			el: '.md_item .swiper-pagination',
@@ -633,9 +687,11 @@ $(document).ready( function() {
 		on: {
 			slideChangeTransitionStart: function () {
 				$('.brand_main .spe_pr_list .spe_sl').hide();
-				$('.brand_main .spe_pr_list .spe_sl').eq(br_special_left_slide.activeIndex).show();
+				$('.brand_main .spe_pr_list .spe_sl').eq(this.realIndex).show();
 			},
-		}
+		},
+
+		loop:true,
 	});
 
 	$(".brand_main .special_shop .spe_pr_list .spe_sl .swiper-container").each(function(index, element){
@@ -719,10 +775,8 @@ $(document).ready( function() {
 			var brText = $(this).find("input[name=mainTitle]").val().replaceAll("<BR>", "<br>").replaceAll("<bR>", "<br>").replaceAll("<Br>", "<br>").replaceAll("<br/>", "<br>");
 			if(brText.indexOf('<br>') > -1){
 				var reText = brText.split("<br>");
-				tag += '</dd>';
 				tag += reText[0];
-				// tag += '<br>';
-				tag += '<dd>';
+				tag += '<br>';
 				tag += reText[1];
 			}else{
 				tag += brText;

+ 161 - 34
src/main/webapp/WEB-INF/views/web/display/CategoryGoodsListFormWeb.html

@@ -106,7 +106,7 @@
 											<strong>상의</strong>
 											<th:block th:each="oneData, status : ${filterSizeList}" th:if="${#strings.startsWith(oneData.filterCd,'T')}">
 												<label class="size_btn">
-													<input type="checkbox" group="filterValue" th:id="${'chkFilterTSize' + status.index}" name="size" th:vale="${oneData.filterNm}" th:data-id="${oneData.filterNm}" onclick="filterSel(this,'size','off','1');"><span th:text="${oneData.filterNm}">80</span>
+													<input type="checkbox" group="filterValue" th:id="${'chkFilterTSize' + status.index}" name="size" th:vale="${oneData.filterNm}" th:data-id="${oneData.filterNm}" data-idx="1" onclick="filterSel(this,'size','off','1');"><span th:text="${oneData.filterNm}">80</span>
 												</label>
 											</th:block>
 										</li>
@@ -114,7 +114,7 @@
 											<strong>하의</strong>
 											<th:block th:each="oneData, status : ${filterSizeList}" th:if="${#strings.startsWith(oneData.filterCd,'B')}">
 												<label class="size_btn">
-													<input type="checkbox" group="filterValue" th:id="${'chkFilterBSize' + status.index}" name="size" th:vale="${oneData.filterNm}" th:data-id="${oneData.filterNm}" onclick="filterSel(this,'size','off','2');"><span th:text="${oneData.filterNm}">80</span>
+													<input type="checkbox" group="filterValue" th:id="${'chkFilterBSize' + status.index}" name="size" th:vale="${oneData.filterNm}" th:data-id="${oneData.filterNm}" data-idx="2" onclick="filterSel(this,'size','off','2');"><span th:text="${oneData.filterNm}">80</span>
 												</label>
 											</th:block>
 										</li>
@@ -122,7 +122,7 @@
 											<strong>신발</strong>
 											<th:block th:each="oneData, status : ${filterSizeList}" th:if="${#strings.startsWith(oneData.filterCd,'S')}">
 												<label class="size_btn">
-													<input type="checkbox" group="filterValue" th:id="${'chkFilterSSize' + status.index}" name="size" th:vale="${oneData.filterNm}" th:data-id="${oneData.filterNm}" onclick="filterSel(this,'size','off','3');"><span th:text="${oneData.filterNm}">80</span>
+													<input type="checkbox" group="filterValue" th:id="${'chkFilterSSize' + status.index}" name="size" th:vale="${oneData.filterNm}" th:data-id="${oneData.filterNm}" data-idx="3" onclick="filterSel(this,'size','off','3');"><span th:text="${oneData.filterNm}">80</span>
 												</label>
 											</th:block>
 										</li>
@@ -134,8 +134,8 @@
 								<div class="sort tap04" id="priceFilterDiv">
 									<div class="range">
 										<input type="text" class="js-range-slider01" name="" value="" />
-										<input type="hidden" id="price_input_from" value="0"/>
-										<input type="hidden" id="price_input_to" value="0"/>
+										<input type="hidden" id="price_input_from" name="price_input_from" value="0"/>
+										<input type="hidden" id="price_input_to" name="price_input_to" value="0"/>
 									</div>
 									<a href="javascript:void(0)" class="tap_close">delete-btn</a>
 								</div>
@@ -316,15 +316,23 @@
 			//가격 슬라이드
 			//var custom_values = ['9,000원', '230,000원', '487,000원', '700,000원', '1,360,000원', '1,799,000원'];
 			if(!gagajf.isNull(filterPriceList)){
-
+				console.log('111');
 				$.each(filterPriceList, function (priceIdx, priceItem){
 					custom_values[priceIdx] = priceItem.filterNm;
 				});
 
-				var my_from = custom_values.indexOf(custom_values[0]); //custom_values.indexOf('9,000원');
-				var my_to = custom_values.indexOf(custom_values[5]); //custom_values.indexOf('230,000원');
-				var minValue = custom_values[0];
-				var maxValue = custom_values[5];
+				let my_from = custom_values.indexOf(custom_values[0]);
+				let my_to = custom_values.indexOf(custom_values[5]);
+				console.log('1>>priceFrom>>'+$("#filterData").find("input:hidden[name=priceFrom]").val());
+				console.log('1>>priceTo>>'+$("#filterData").find("input:hidden[name=priceTo]").val());
+				if(gagajf.isNull($("#filterForm input:hidden[name=priceFrom]").val())){
+					my_from = $("#filterForm input:hidden[name=priceFrom]").val();
+				}
+				if(gagajf.isNull($("#filterForm input:hidden[name=priceTo]").val())){
+					my_to = $("#filterForm input:hidden[name=priceTo]").val();
+				}
+				let minValue = custom_values[0];
+				let maxValue = custom_values[5];
 
 				$(".dp .js-range-slider01, .sch_result .js-range-slider01").ionRangeSlider({
 					type: "double",
@@ -339,7 +347,7 @@
 					values: custom_values,
 					min_interval: 1,
 					// onStart : function(data){
-					// 	fnCheckPrice(data);
+					//  	fnCheckPrice(data);
 					// },
 					// onChange : fnCheckPrice,
 					onFinish : function(data){
@@ -348,6 +356,7 @@
 				});
 			}
 
+			/*
 			//할인율
 			custom_values02 = ['0%', '10%', '20%', '30%', '40%', '50%', '60%', '70%', '80%', '90%', '100%'];
 			var my_from02 = custom_values02.indexOf('0%');
@@ -372,7 +381,7 @@
 				onFinish : function (data){
 					fnCheckDcRate(data);
 				}
-			});
+			});*/
 
 			fnCreateCategoryList();
 			
@@ -411,12 +420,12 @@
 		// 필터 가격 확인
 		var fnCheckPrice = function (data){
 			$("#priceSpan").remove();
-			$("#searchGoodsForm input:hidden[name=priceRow]").remove();
-			$("#searchGoodsForm input:hidden[name=priceHigh]").remove();
+			$("#searchGoodsForm input:hidden[name=priceFrom]").remove();
+			$("#searchGoodsForm input:hidden[name=priceTo]").remove();
 			let min = data.from;
 			let max = data.to;
-			// console.log('Price from>>'+custom_values[min]);
-			// console.log('Price to>>'+custom_values[max]);
+			console.log('Price from>>'+custom_values[min]);
+			console.log('Price to>>'+custom_values[max]);
 			$("#price_input_from").val(custom_values[0]);
 			$("#price_input_to").val(custom_values[5]);
 
@@ -426,8 +435,8 @@
 		// 필터 할인율 확인
 		var fnCheckDcRate = function (data){
 			$("#dcrateSpan").remove();
-			$("#searchGoodsForm input:hidden[name=dcrateRow]").remove();
-			$("#searchGoodsForm input:hidden[name=dcrateHigh]").remove();
+			$("#searchGoodsForm input:hidden[name=dcRateFrom]").remove();
+			$("#searchGoodsForm input:hidden[name=dcRateTo]").remove();
 			let min = data.from;
 			let max = data.to;
 			$("#price_input_from").val(0);
@@ -483,7 +492,7 @@
 				}else{
 					// 마지막 페이지 일때
 					$('#endPage').show();
-					$('.list_content .count_wrap').hide();
+					//$('.list_content .count_wrap').hide();
 				}
 				gagaInfiniteScroll.draw('not');
 			}
@@ -715,7 +724,6 @@
 			var formTitle = "";
 			let tag = '';
 
-			console.log('cate1>>'+cate1.cate1No+ 'LL'+cate1.cate2List.length);
 			if (cate1 != null) {
 				tag += '<li';
 				if (cate1.cate1No == cate1No) {
@@ -923,58 +931,177 @@
 
 		// 사파리 - event.persisted || 크롬 - window.performance.navigation.type 이 1이면 새로고침, 2면 페이지 이동을 통한 캐쉬페이징
 		$(window).on("pageshow", function(event) {
-			$('#filterForm input[name=brand]:checked').each(function(){
+			console.log('test1');
+			$('#filterForm input[name=brandGroup]:checked').each(function(){
+				let filterGb = 'brandGroup';
+				$(this).attr('onclick','filterSel(this,\''+filterGb+'\',\'on\');');
 				$(this).parent().addClass("active");
 			});
 			$('#filterForm input[name=size]:checked').each(function(){
+				let filterGb = 'size';
+				let rowNum = $(this).attr('data-idx');
+				$(this).attr('onclick','filterSel(this,\''+filterGb+'\',\'on\',\''+rowNum+'\');');
+				$(this).parent().addClass("active");
+			});
+			// $('#filterForm input[name=price]').each(function(){
+			// 	console.log('priceFrom>>'+ $("#searchGoodsForm input:hidden[name=priceFrom]").val() );
+			// 	console.log('priceTo>>'+ $("#searchGoodsForm input:hidden[name=priceTo]").val() );
+			// 	// $(this).parent().addClass("active");
+			// 	$("#priceSpan").remove();
+			// 	$("#searchGoodsForm input:hidden[name=priceFrom]").remove();
+			// 	$("#searchGoodsForm input:hidden[name=priceTo]").remove();
+			// 	let min = $("#searchGoodsForm input:hidden[name=priceFrom]").val();
+			// 	let max = $("#searchGoodsForm input:hidden[name=priceTo]").val();
+			// 	$("#price_input_from").val(custom_values[0]);
+			// 	$("#price_input_to").val(custom_values[5]);
+			//
+			// 	fnFilterSlider('price' , custom_values[min].addComma(), custom_values[max].addComma());
+			// });
+			// $('#filterForm input[name=range]:checked').each(function(){
+			// 	console.log('eeeeeeeeeeeeeee');
+			// 	$("#dcrateSpan").remove();
+			// 	//$("#searchGoodsForm input:hidden[name=dcRateFrom]").remove();
+			// 	//$("#searchGoodsForm input:hidden[name=dcRateTo]").remove();
+			// 	let min = $("#searchGoodsForm input:hidden[name=dcRateFrom]").val();
+			// 	let max =  $("#searchGoodsForm input:hidden[name=dcRateTo]").val();
+			// 	$("#price_input_from").val(0);
+			// 	$("#price_input_to").val(100);
+			//
+			// 	fnFilterSlider('dcrate' , custom_values02[min].replace('%',''), custom_values02[max].replace('%',''));
+			// });
+			$('#filterForm input[name=season]:checked').each(function(){
+				let filterGb = 'season';
+				$(this).attr('onclick','filterSel(this,\''+filterGb+'\',\'on\');');
+				$(this).parent().addClass("active");
+			});
+			$('#filterForm input[name=color]:checked').each(function(){
+				let filterGb = 'color';
+				$(this).attr('onclick','filterSel(this,\''+filterGb+'\',\'on\');');
 				$(this).parent().addClass("active");
 			});
-			$('#filterForm input[name=price]:checked').each(function(){
+			$('#filterForm input[name=benefit]:checked').each(function(){
+				let filterGb = 'benefit';
+				$(this).attr('onclick','filterSel(this,\''+filterGb+'\',\'on\');');
 				$(this).parent().addClass("active");
 			});
+
+			//할인율
+			custom_values02 = ['0%', '10%', '20%', '30%', '40%', '50%', '60%', '70%', '80%', '90%', '100%'];
+			var my_from02 = custom_values02.indexOf('0%');
+			var my_to02 = custom_values02.indexOf('100%');
+			if(gagajf.isNull($('#searchGoodsForm').find("input[name=dcRateFrom]").val())){
+				my_from02 = $('#searchGoodsForm').find("input[name=dcRateFrom]").val();
+			}
+			if(gagajf.isNull($('#searchGoodsForm').find("input[name=dcRateTo]").val())){
+				my_to02 = $('#searchGoodsForm').find("input[name=dcRateTo]").val();
+			}
+
+			$(".dp .js-range-slider02, .sch_result .js-range-slider02").ionRangeSlider({
+				type: "double",
+				min: 0,
+				max: 100,
+				from: my_from02,
+				to: my_to02,
+				grid: true,
+				skin: "round",
+				postfix: "%",
+				prettify_separator: ",",
+				values: custom_values02,
+				min_interval: 1,
+				onFinish : function (data){
+					fnCheckDcRate(data);
+				}
+			});
 			if ( (event.originalEvent && event.originalEvent.persisted) || (window.performance && window.performance.navigation.type == 2)) {
 				var historyData = sessionStorage.getItem(document.location.href);
 				if(historyData!=null){
+					console.log('historyData1111>>'+historyData);
 					historyData = JSON.parse(historyData);
 				}else{
+					console.log('nnnnnnooooo');
 					historyData = {};
 				}
+
 				if(typeof historyData.sortingTypeNm!='undefined' && historyData.sortingTypeNm!=''){
 					$(".arrayWrap .btn").text(historyData.sortingTypeNm);
 				}
 				if(typeof historyData.filterHtml!='undefined' && historyData.filterHtml!=''){
-					$("#searchForm").append(historyData.filterHtml);
+					$("#searchGoodsForm").append(historyData.filterHtml);
 					filterHtml = historyData.filterHtml;
 				}
 				if(typeof historyData.filterStatHtml!='undefined' && historyData.filterStatHtml!=''){
-					$(".filterstate").append(historyData.filterStatHtml);
+					$("#filterData").append(historyData.filterStatHtml);
 					filterStatHtml = historyData.filterStatHtml;
 				}
 				if(typeof historyData.totalCount!='undefined' && historyData.totalCount!=''){
-					$("#totalGoodsCnt").text(historyData.totalCount);
+					$("#totCntId").text(historyData.totalCount);
+				}
+				if(!gagajf.isNull(filterPriceList)){
+					console.log('111');
+					$.each(filterPriceList, function (priceIdx, priceItem){
+						custom_values[priceIdx] = priceItem.filterNm;
+					});
+
+					let my_from = custom_values.indexOf(custom_values[0]);
+					let my_to = custom_values.indexOf(custom_values[5]);
+					console.log('1>>priceFrom>>'+$("#filterData").find("input:hidden[name=priceFrom]").val());
+					console.log('1>>priceTo>>'+$("#filterData").find("input:hidden[name=priceTo]").val());
+					if(gagajf.isNull($("#filterData").find("input:hidden[name=priceFrom]").val())){
+						my_from = $("#filterData").find("input:hidden[name=priceFrom]").val().addComma();
+					}
+					if(gagajf.isNull($("#filterData").find("input:hidden[name=priceTo]").val())){
+						my_to = $("#filterData").find("input:hidden[name=priceTo]").val().addComma();
+					}
+					let minValue = custom_values[0];
+					let maxValue = custom_values[5];
+
+					$(".dp .js-range-slider01, .sch_result .js-range-slider01").ionRangeSlider({
+						type: "double",
+						min: minValue,
+						max: maxValue,
+						from: my_from,
+						to: my_to,
+						grid: true,
+						skin: "round",
+						postfix: "원",
+						prettify_separator: ",",
+						values: custom_values,
+						min_interval: 1,
+						// onChange : fnCheckPrice,
+						onFinish : function(data){
+							fnCheckPrice(data);
+						}
+					});
 				}
 				if(typeof historyData.sortingType!='undefined' && historyData.sortingType!=''){
 					$("#sortSelect").val(historyData.sortingType);
-					$("#searchForm input:hidden[name=sortingType]").val(historyData.sortingType);
-					fnSortChange(historyData.sortingType);
+					$("#searchGoodsForm input:hidden[name=sortingType]").val(historyData.sortingType);
+					fnSortList(this,historyData.sortingType);
 				}else{
+					$(".fillter").show();
 					fnGoodsListSearch();
 				}
 			}else{
 				fnCategoryGoodsInfiniteScrollInit();
-				/*var sortingType = [[${sortingType}]];
-				if(sortingType=='NEW' || sortingType=='BEST'){
-					$("#sortSelect").val(sortingType);
-					$("#sortSelect").parent('div').children('span').text($("#sortSelect option:selected").text())
-					fnSortChange(sortingType);
+				var sortingType = [[${sortingType}]];
+				if(sortingType=='BEST' || sortingType=='REVIEW'){
+					$("#sortArea").find('li').each(function (){
+						$(this).find('a').attr('class','off');
+					});
+
+					$(this).addClass("on");
+					fnSortList(this, sortingType);
 				}else{
 					fnGoodsListSearch();
-				}*/
-				fnGoodsListSearch();
+				}
 			}
 		});
 
 		var fnSortList = function (obj, sortingType){
+			if($("#searchGoodsForm input[name=sortingType]").val()==sortingType){
+				return;
+			}
+
 			$("#sortArea").find('li').each(function (){
 				$(this).find('a').attr('class','off');
 			});

+ 60 - 43
src/main/webapp/WEB-INF/views/web/display/MallMainFormWeb.html

@@ -71,9 +71,6 @@
 								</div>
 							</div>
 						</div>
-						<div class="cont_foot dpnone">
-							CONT-FOOT
-						</div>
 					</div>
 				</th:block>
 
@@ -229,9 +226,6 @@
 								</th:block>
 							</th:block>
 						</div>
-						<div class="cont_foot dpnone">
-							CONT-FOOT
-						</div>
 					</div>
 				</th:block>
 
@@ -1038,10 +1032,10 @@ if (pickLength < 2) {
 			nextEl: '.main_pick .swiper-button-next',
 			prevEl: '.main_pick .swiper-button-prev',
 		},
-		autoplay: {
-			delay: 5000,
-			disableOnInteraction: false,
-		},
+		// autoplay: {
+		// 	delay: 5000,
+		// 	disableOnInteraction: false,
+		// },
 	});
 } else {
 	/* SLIDE - MAIN_PICK */
@@ -1063,10 +1057,10 @@ if (pickLength < 2) {
 			nextEl: '.main_pick .swiper-button-next',
 			prevEl: '.main_pick .swiper-button-prev',
 		},
-		autoplay: {
-			delay: 5000,
-			disableOnInteraction: false,
-		},
+		// autoplay: {
+		// 	delay: 5000,
+		// 	disableOnInteraction: false,
+		// },
 	});
 
 
@@ -1094,10 +1088,10 @@ if (pickForLength < 2) {
 		thumbs: {
 			swiper: main_pick_nav
 		},
-		autoplay: {
-			delay: 5000,
-			disableOnInteraction: false,
-		},
+		// autoplay: {
+		// 	delay: 5000,
+		// 	disableOnInteraction: false,
+		// },
 	});
 }else{
 	var main_pick_post = new Swiper('.main_pick .post-pick-for', { //thumbs
@@ -1106,7 +1100,7 @@ if (pickForLength < 2) {
 		// slidesPerGroup: 6,
 		loop: true,
 		loopeSlides: 6,
-		spaceBetween: 10,
+		//spaceBetween: 10,
 		// loopFillGroupWithBlank : true,
 		loopAdditionalSlides: 1,
 		allowTouchMove: false,
@@ -1117,10 +1111,10 @@ if (pickForLength < 2) {
 		thumbs: {
 			swiper: main_pick_nav
 		},
-		autoplay: {
-			delay: 5000,
-			disableOnInteraction: false,
-		},
+		// autoplay: {
+		// 	delay: 5000,
+		// 	disableOnInteraction: false,
+		// },
 	});
 }
 
@@ -1142,24 +1136,48 @@ var main_pick_lookbook = new Swiper ('.main_pick .post-lookbook', {
 	},
 });
 
-/* SLIDE - MAIN_BANNER WIDE */
-var main_bnnWide_slide = new Swiper ('.main_1stage .post-bnnWide', {
-	slidesPerView: 1,
-	speed : 1500,
-	initialSlide: 0,
-	//loop: true,
-	watchOverflow: true, //loop와 함께 사용 불가.
-	autoplay: {
-		delay: 4000,
-		disableOnInteraction: false,
-	},
-	navigation: {
-		nextEl: '.main_1stage .swiper-button-next',
-		prevEl: '.main_1stage .swiper-button-prev',
-	},
-	// allowTouchMove : false,
-	// centeredSlides: true,
-});
+//210506_수정 : 기획전 배너 swiper 무한루프 변경.
+var pickBnnCont = $('.post-bnnWide .swiper-slide');
+var pickBnnLength = pickBnnCont.length;
+if (pickBnnLength < 2) {
+	/* SLIDE - MAIN_BANNER WIDE */
+	var main_bnnWide_slide = new Swiper ('.main_1stage .post-bnnWide', {
+		slidesPerView: 1,
+		speed : 1500,
+		initialSlide: 0,
+		loop: false,
+		watchOverflow: true, //loop와 함께 사용 불가.
+		autoplay: {
+			delay: 4000,
+			disableOnInteraction: false,
+		},
+		navigation: {
+			nextEl: '.main_1stage .swiper-button-next',
+			prevEl: '.main_1stage .swiper-button-prev',
+		},
+		// allowTouchMove : false,
+		// centeredSlides: true,
+	});
+}else{
+	/* SLIDE - MAIN_BANNER WIDE */
+	var main_bnnWide_slide = new Swiper ('.main_1stage .post-bnnWide', {
+		slidesPerView: 1,
+		speed : 1500,
+		initialSlide: 0,
+		loop: true,
+		watchOverflow: true, //loop와 함께 사용 불가.
+		autoplay: {
+			delay: 4000,
+			disableOnInteraction: false,
+		},
+		navigation: {
+			nextEl: '.main_1stage .swiper-button-next',
+			prevEl: '.main_1stage .swiper-button-prev',
+		},
+		// allowTouchMove : false,
+		// centeredSlides: true,
+	});
+}
 
 /* SLIDE - MAIN_RECOMM */
 //MAIN_RECOMM_키워드 탭
@@ -1299,9 +1317,8 @@ $(document).ready(function() {
 		var brText = $(this).find("input[name=mainTitlee]").val().replace("<BR>", "<br>").replace("<bR>", "<br>").replace("<Br>", "<br>");
 		if(brText.indexOf('<br>') > -1){
 			var reText = brText.split("<br>");
-			tag += '</dd>';
 			tag += reText[0];
-			tag += '<dd>';
+			tag += '<br>';
 			tag += reText[1];
 		}else{
 			tag += brText;

+ 1 - 1
src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html

@@ -45,7 +45,7 @@
 												<img th:src="${'https://img.youtube.com/vi/'+goodsVideo.kmcKey+'/default.jpg'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
 												</th:block>
 												<th:block th:unless="${goodsVideo.videoGb == 'Y'}">
-												<iframe width="100%" height="100%" th:src="${kollusMediaUrl+'/'+goodsVideo.kmcKey +'?player_version=html5'}" frameborder="0" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>
+												<iframe width="100%" height="100%" th:src="${kollusMediaUrl+'/'+goodsVideo.kmcKey +'?enable_initialize_focus=false&controls_activation=none'}" frameborder="0" allowfullscreen></iframe>
 												</th:block>
 												</span>
 											</a>

+ 10 - 3
src/main/webapp/WEB-INF/views/web/goods/GoodsDetailReviewFormWeb.html

@@ -44,7 +44,8 @@
 	</div>
 	<!-- //등록리뷰 없을 시 -->
 	<!-- 등록리뷰 있을 시 -->
-	<div class="area_rv_average" th:if="${reviewList != null and !reviewList.empty}">
+	<div class="area_rv_average" th:if="${reviewList != null and !reviewList.empty }">
+		<th:block th:if="${goodsInfo.reviewRegCnt > 0}">
 		<h6 class="sr-only">구매평점</h6>
 		<div class="star_score">
 			<span class="tit">구매평점</span>
@@ -53,8 +54,9 @@
 				<em class="progbar" th:style="${'width:'+starScore+'%;' }"></em> <!-- 평점 style로 표기 -->
 			</span>
 		</div>
+		</th:block>
 		<!-- 착용정보 있을 시 노출 -->
-		<th:block th:if="${not #strings.isEmpty(goodsInfo.sizeGb)}">
+		<th:block th:if="${not #strings.isEmpty(goodsInfo.sizeGb) and goodsInfo.reviewRegCnt > 0}">
 		<div class="average">
 			<div class="part_average">
 				<span class="tit">사이즈</span>
@@ -491,9 +493,14 @@
 				tag += '				<div>\n';
 				tag += '					<dt>구매옵션</dt>\n';
 				if (item.goodsOptionList != null && item.goodsOptionList.length > 0){
+				tag += '					<dd>';	
 					$.each(item.goodsOptionList, function(gIdx, goodsOption){
-				tag += '					<dd>'+ goodsOption.optCd1Nm +' / '+ goodsOption.optCd2 +'</dd>\n';		
+				tag += '					'+ goodsOption.optCd1Nm +' / '+ goodsOption.optCd2 ;		
+				if ((gIdx+1) < item.goodsOptionList.length){
+				tag += ', ';
+				}
 					});
+				tag += '					</dd>';	
 				}
 				tag += '				</div>\n';
 				tag += '			</dl>\n';

+ 3 - 1
src/main/webapp/WEB-INF/views/web/goods/GoodsReviewDetailFormWeb.html

@@ -105,9 +105,11 @@
 				tag +='						<div>\n';
 				tag +='							<dt>구매옵션</dt>\n';
 				if (review.goodsOptionList != null && review.goodsOptionList.length > 0){
+				tag +='							<dd>\n';	
 					$.each(review.goodsOptionList, function(aIdx, reviewGoods){
-				tag +='							<dd>'+ reviewGoods.optCd1Nm +' / '+ reviewGoods.optCd2+'</dd>\n';
+				tag +='							<p><span>'+ reviewGoods.optCd1Nm +'</span> / <span>'+ reviewGoods.optCd2+'</span></p>\n';
 					});		
+				tag +='							<dd>\n';	
 				}
 
 				tag +='						</div>\n';

+ 6 - 3
src/main/webapp/WEB-INF/views/web/goods/GoodsShopBenefitFormWeb.html

@@ -73,11 +73,14 @@
 								<col width="50%">
 								<col width="*">
 							</colgroup>
-							<tbody>
+							<tbody> 
 								<tr th:each="freeGoods, status : ${freeGoodsList}">
 									<td>
-										<div class="th"><th:block th:text="${#numbers.formatInteger(freeGoods.sectionVal, 0,'COMMA')}"></th:block></th:block><th:block th:text="${(freeGoods.sectionGb == 'G810_10')? '개':'원'}"></th:block> 이상 구매 시</div>
-										<div class="td"><th:block th:text="${freeGoods.goodsNm}"></th:block> <th:block th:text="${#numbers.formatInteger(freeGoods.itemQty, 0,'COMMA')}"></th:block>개 증정 <th:block th:if="${freeGoods.allYn == 'N'}" th:text="${'외 택1'}"></th:block></div>
+										<div class="th"><th:block th:text="${#numbers.formatInteger(freeGoods.sectionVal, 0,'COMMA')}"></th:block><th:block th:text="${(freeGoods.sectionGb == 'G810_10')? '개':'원'}"></th:block> 이상 구매 시</div>
+										<th:block th:each="goodsNm : ${#strings.arraySplit(freeGoods.freeGoods,',')}" th:with="goodsArray=${#strings.arraySplit(goodsNm,':')}">
+										<div class="td"><th:block th:text="${goodsArray[0]}"></th:block> <th:block th:text="${#numbers.formatInteger(goodsArray[1], 0,'COMMA')}"></th:block>개 증정 
+										<th:block th:if="${freeGoods.allYn == 'N'}" th:text="${'외 택1'}"></th:block></div>
+										</th:block>
 									</td>
 								</tr>
 							</tbody>

+ 4 - 4
src/main/webapp/WEB-INF/views/web/mypage/MypageGiftcardFormWeb.html

@@ -216,8 +216,8 @@
 						+ useGiftcard.gfcdAmt.addComma()
 						+ '</em>원';
 				}else{
-					tmtbHtml += '<td><span class="amount_plus"> <em>'
-						+ ' '
+					tmtbHtml += '<td><span class="amount_plus" style="color:#fd4802"> <em>'
+						+ '+'
 						+ useGiftcard.gfcdAmt.addComma()
 						+ '</em>원';
 				}
@@ -355,8 +355,8 @@
 				gagajf.ajaxJsonSubmit(
 						'/mypage/gift/use/confirm', jsonData,
 						function() {
-							$("#gift_input").val('');
-							//cfnGoToPage(_PAGE_MYPAGE_GIFTCARD);
+							//$("#gift_input").val('');
+							cfnGoToPage(_PAGE_MYPAGE_GIFTCARD);
 						});
 			}
 		});

+ 20 - 15
src/main/webapp/WEB-INF/views/web/social/SocialMainFormWeb.html

@@ -27,7 +27,17 @@
 			</ul> 
 		</div>
 		<div class="wrap">
-		<th:block th:if="${socialInfo != null}">
+				<div class="nodata" style="display: none;">
+					<div class="txt_box">
+						<p>진행하는 핫딜이 없습니다.</p>
+					</div>
+					<div class="btn_box">
+						<button class="btn btn_default" onclick="cfnGoToPage(_PAGE_MAIN);">
+							<span>홈으로 가기</span>
+						</button>
+					</div>
+				</div>
+				<th:block th:if="${socialInfo != null}">
 			<div class="content wide dp_hotdeal"> <!-- 페이지특정 클래스 = dp_hotdeal -->
 				<div class="cont_body">
                     <div class="hotdeal">
@@ -166,6 +176,7 @@ var fnDrawInfiniteScrollData = function (result){
 	gagaInfiniteScroll.pageStatus.totalCount = result.totalCnt;
 
 	if (result.dataList != null && result.dataList.length > 0) {
+		$(".nodata").hide();		
 		let lastPage = result.paging.pageable.pageNo;
 		let endRow = result.endRow - result.paging.pageable.pageSize;
 		
@@ -173,22 +184,11 @@ var fnDrawInfiniteScrollData = function (result){
 		gagaInfiniteScroll.draw(htm);
 	}else{
 		if($("#socialForm input[name=pageNo]").val()==1){
-			var html = '';
-			html += '<div class="nodata" >';
-			html += '	<div class="txt_box">';
-			html += '		<p>';
-			html += '			진행하는 핫딜이 없습니다.';
-			html += '		</p>';
-			html += '	</div>';
-			html += '	<div class="btn_box">';
-			html += '		<button class="btn btn_default" onclick="cfnGoToPage(_PAGE_MAIN);"><span>홈으로 가기</span></button>';
-			html += '	</div>';
-			html += '</div>';	
-			
-			$('#listBox').html(html);
+			$(".nodata").show();		
 		}
 		$("#divLastPage").show();
 		gagaInfiniteScroll.draw('not');
+		
 	}
 }
 
@@ -196,6 +196,7 @@ var fnDrawInfiniteScrollData = function (result){
 $(function(){
 	fnSocialListSearch();
        /* 핫딜 countDown */
+    
        function hotdealTimer() {
            var endTime = new Date(socialInfo.socialEddt); // 남은시간 지정
 
@@ -220,7 +221,11 @@ $(function(){
                $('#h-minutes').html(minutes);
                $('#h-seconds').html(seconds);		
        }
-       setInterval(function() { hotdealTimer(); }, 1000);
+       
+     if (socialInfo != null) {
+    	setInterval(function() { hotdealTimer(); }, 1000);
+  	 }
+       
        /* countDown */
 });
 

+ 47 - 23
src/main/webapp/biz/goods.js

@@ -323,9 +323,18 @@ var filterStatHtml = '';
 
 // 상품상세 필터 조회
 var filterSel = function (obj, gubun, staus, sizeGb){
+	filterHtml = '';
+	filterStatHtml = '';
+	gagaInfiniteScroll.pageStatus.filterHtml = filterHtml;
+	gagaInfiniteScroll.pageStatus.filterStatHtml = filterStatHtml;
 	let $obj = $(obj);
 	if(staus=='on'){
-		$(obj).attr('onclick','filterSel(this,\''+gubun+'\',\'off\',\'\');');
+		if(gubun=='size'){
+			$(obj).attr('onclick','filterSel(this,\''+gubun+'\',\'off\',\''+sizeGb+'\');');
+		}else{
+			$(obj).attr('onclick','filterSel(this,\''+gubun+'\',\'off\',\'\');');
+		}
+
 		$("#filterData").find('span').each(function(idx,item) {
 			if(gubun=='color'){
 				if($obj.attr('data-id').replace('#','').trim() == $(this).closest("span").attr('id')) {
@@ -338,7 +347,11 @@ var filterSel = function (obj, gubun, staus, sizeGb){
 			}
 		});
 	}else{
-		$(obj).attr('onclick','filterSel(this,\''+gubun+'\',\'on\',\'\');');
+		if(gubun=='size'){
+			$(obj).attr('onclick','filterSel(this,\''+gubun+'\',\'on\',\''+sizeGb+'\');');
+		}else{
+			$(obj).attr('onclick','filterSel(this,\''+gubun+'\',\'on\',\'\');');
+		}
 
 		let tag = '';
 		if(gubun=='color'){
@@ -361,50 +374,57 @@ var filterSel = function (obj, gubun, staus, sizeGb){
 		}
 
 		$("#filterData").append(tag);
+		filterStatHtml += tag;
 	}
 
+	gagaInfiniteScroll.pageStatus.filterStatHtml = filterStatHtml;
 	fnFilterSet(gubun, sizeGb);
 }
 
 var fnFilterSet = function (searchId, sizeGb){
 	fnCategoryGoodsInfiniteScrollInit();
-	console.log('searchId>>'+searchId);
 	$("#searchGoodsForm input:hidden[name="+searchId+"Arr]").remove();
 	var tag = '';
 	if(searchId=='size'){
 		$('#filterForm input[name='+searchId+']:checked').each(function(){
 			tag = '<input type="hidden" name="'+searchId+'Arr" value="'+$(this).attr('data-id')+'"/>\n';
 			$("#searchGoodsForm").append(tag);
+			filterHtml += tag;
 		});
 	}else{
 		$('#filterForm input[name='+searchId+']:checked').each(function(){
 			tag = '<input type="hidden" name="'+searchId+'Arr" value="'+$(this).val()+'"/>\n';
 			$("#searchGoodsForm").append(tag);
+			filterHtml += tag;
 		});
 	}
-
+	gagaInfiniteScroll.pageStatus.filterHtml = filterHtml;
 	fnGoodsListSearch();
 }
 
 // 상품상세 필터 삭제
 var fnDeleteFilter = function (obj, gubun, staus, sizeGb){
-	$("#"+gubun+"FilterDiv > ul > li").each(function(idx,item) {
-		if(gubun == 'size'){
+	if(gubun=='size'){
+		$("#"+gubun+"FilterDiv #sizeLi"+sizeGb).each(function(idx,item) {
 			$('#sizeLi'+sizeGb+' .size_btn').each(function (){
 				if($(obj).closest("span").text() == $(this).find('input').attr('data-id')){
 					$(this).find('input').click();
 				}
 			});
-		}else if(gubun == 'color'){
-			if($(obj).closest("span").attr('id') == $(this).find('input').attr('data-id').trim()){
-				$(this).find('input').click();
-			}
-		}else{
-			if($(obj).closest("span").text() == $(this).find('input').attr('data-id')){
-				$(this).find('input').click();
+		});
+	}else{
+		$("#"+gubun+"FilterDiv > ul > li").each(function(idx,item) {
+			if(gubun == 'color'){
+				if($(obj).closest("span").attr('id') == $(this).find('input').attr('data-id').trim()){
+					$(this).find('input').click();
+				}
+			}else{
+				if($(obj).closest("span").text() == $(this).find('input').attr('data-id')){
+					$(this).find('input').click();
+				}
 			}
-		}
-	});
+		});
+	}
 
 	$(obj).closest("span").remove();
 }
@@ -438,20 +458,24 @@ var fnFilterSlider = function (gubun, min, max){
 	tag += '</span>';
 
 	$("#filterData").append(tag);
+	filterStatHtml += tag;
 
 	var tag2 = '';
 	if(gubun=='price'){
-		tag2 += '<input type="hidden" name="priceRow" value="'+min.replace(",", "")+'"/>\n';
-		tag2 += '<input type="hidden" name="priceHigh" value="'+max.replace(",", "")+'"/>\n';
+		tag2 += '<input type="hidden" name="priceFrom" value="'+min.replace(",", "")+'"/>\n';
+		tag2 += '<input type="hidden" name="priceTo" value="'+max.replace(",", "")+'"/>\n';
 		$("#searchGoodsForm").append(tag2);
+		filterStatHtml += tag2;
 		fnCategoryGoodsInfiniteScrollInit();
 	}else{
-		tag2 += '<input type="hidden" name="dcrateRow" value="'+min+'"/>\n';
-		tag2 += '<input type="hidden" name="dcrateHigh" value="'+max+'"/>\n';
+		tag2 += '<input type="hidden" name="dcRateFrom" value="'+min+'"/>\n';
+		tag2 += '<input type="hidden" name="dcRateTo" value="'+max+'"/>\n';
 		$("#searchGoodsForm").append(tag2);
 		fnCategoryGoodsInfiniteScrollInit();
+		filterStatHtml += tag2;
 	}
 
+	gagaInfiniteScroll.pageStatus.filterStatHtml = filterStatHtml;
 	fnGoodsListSearch();
 }
 
@@ -472,8 +496,8 @@ var fnDeleteFilterSlider = function (obj, gubun, minVal, maxVal){
 			to: 5
 		});
 		$inputTo.prop("value",maxVal);
-		$("#searchGoodsForm input:hidden[name=priceRow]").remove();
-		$("#searchGoodsForm input:hidden[name=priceHigh]").remove();
+		$("#filterForm input:hidden[name=priceFrom]").remove();
+		$("#filterForm input:hidden[name=priceTo]").remove();
 	}else{
 		var $range = $(".dp .js-range-slider02, .sch_result .js-range-slider02");
 		var $inputFrom = $("#dcrate_input_from");
@@ -490,8 +514,8 @@ var fnDeleteFilterSlider = function (obj, gubun, minVal, maxVal){
 			to: 10
 		});
 		$inputTo.prop("value",maxVal);
-		$("#searchGoodsForm input:hidden[name=dcrateRow]").remove();
-		$("#searchGoodsForm input:hidden[name=dcrateHigh]").remove();
+		$("#searchGoodsForm input:hidden[name=dcRateFrom]").remove();
+		$("#searchGoodsForm input:hidden[name=dcRateTo]").remove();
 	}
 	$(obj).closest("span").remove();
 	fnCategoryGoodsInfiniteScrollInit();

+ 6 - 3
src/main/webapp/ux/pc/css/layout.css

@@ -64,7 +64,7 @@ header .common_header {}
 .gnb .nav .bundle > li:last-child > a::after{content: ''; display: block; width: 1px; height: 18px; background: #4e4e4e; position: absolute; top:50%; bottom:auto; right: -20px; left:auto; transform: translateY(-50%);}
 .gnb .nav .bundle:last-child > li > a::after{content: ''; display: none;}
 .gnb .nav .bundle > li > .depth_menu {}
-.depth_menu {position:absolute; top:80px; left:0; width:100%; background:#fff; color:#222; z-index:150; display:none;height: 450px;}
+.depth_menu {position:absolute; top:80px; left:0; width:100%; background:#fff; color:#222; z-index:150; display:none;}
 .depth_menu::after {content:''; display: block; clear:both;}
 .depth_menu .head_category {position:relative; float:left; width: 68.75%;padding:50px 70px;padding: 50px 70px 50px 240px;}
 .depth_menu .head_category .tit {position:absolute; width:170px; left:70px;}
@@ -3326,7 +3326,7 @@ ul.maintabs li [class^='box_depth'] {display:none; position:absolute; left:100%;
     .modal[class*="reviewdetail_pop"] .detail .review .review_cont .response_box > div.full dl div {width:100%}
 	.modal[class*="reviewdetail_pop"] .detail .review .review_cont .response_box > div dl div dt {float:left; width:60px; color:#888}
 	.modal[class*="reviewdetail_pop"] .detail .review .review_cont .response_box > div dl div dd {float:left; margin-left:20px; color:#fd4802}
-	.modal[class*="reviewdetail_pop"] .detail .review .review_cont .response_box > div dl div dd p{margin-bottom:0.4rem;}
+	.modal[class*="reviewdetail_pop"] .detail .review .review_cont .response_box > div dl div dd p{margin-bottom:0.4rem; width:250px;}
 	.modal[class*="reviewdetail_pop"] .detail .review .review_cont .response_box > div dl div dd p:last-child{margin-bottom:0;}
     .modal[class*="reviewdetail_pop"] .detail .review .review_cont .txt_review_box {color:#666; font-size:14px; line-height:24px;}
     .modal[class*="reviewdetail_pop"] .detail .review .review_cont .writer_box {}
@@ -3851,7 +3851,8 @@ ul.maintabs li [class^='box_depth'] {display:none; position:absolute; left:100%;
 	.br_lookbook_view.cont_visual .cont_head {margin-bottom:60px}
 	.br_lookbook_view.cont_visual .cont_body .area_slider {margin-left:-70px; margin-right:-70px;}
 	.br_lookbook_view.cont_visual .swiper-slide {width: auto; height: 660px;}
-	.br_lookbook_view.cont_visual .swiper-slide img {width: 100%; height:auto;}
+	/* .br_lookbook_view.cont_visual .swiper-slide img {width: 100%; height:auto;} */
+	.br_lookbook_view.cont_visual .swiper-slide img {width: auto; height:100%;} /* .0506.높이기준으로 변경 */
 	.br_lookbook_view.cont_visual .bt_lb_item {}
 	.br_lookbook_view.cont_visual .swiper-container {padding-top:60px;}
 	.br_lookbook_view.cont_visual .swiper-slide .bt_lb_item:after {content:''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,.3);}
@@ -3874,6 +3875,8 @@ ul.maintabs li [class^='box_depth'] {display:none; position:absolute; left:100%;
 	.br_lookbook_view.cont_items .cont_head h3 span.number {margin-left:4px; color:#888; font-weight:200;}
 	.br_lookbook_view.cont_items .cont_head .btn {position:absolute; right:0; bottom:0; padding:13px 24px; font-size:14px; font-weight:300; height:42px;}
 	.br_lookbook_view.cont_items .cont_head .btn span {display:inline-block; line-height:1;}
+	.br_lookbook_view.cont_items .ioTit {display:none;}
+	.br_lookbook_view.cont_items .ioTit.active {display: block;}
 	.br_lookbook_view.cont_items .items_outside {background: #f5f5f5;}
 	.br_lookbook_view.cont_items .items_inside {background: #f5f5f5;}
 	.br_lookbook_view.cont_items .items_outside .itemsOut {display: none;}

+ 8 - 7
src/main/webapp/ux/pc/css/main.css

@@ -81,10 +81,10 @@
 .post-visual .btn {font-weight:300; border:1px solid #a7a7a7;}
 .post-visual .txtWrap{position:absolute; top:auto;bottom:100px;left:90px;right:auto;z-index:1; width: 85%;} 
 .post-visual .txtWrap dl,
-.post-visual .txtWrap dl + button {opacity:0; transition:all 200ms ease;}
+.post-visual .txtWrap dl + .btn {opacity:0; transition:all 200ms ease;}
 .post-visual .txtWrap dl {color:#222; line-height:1; padding-bottom:40px;}
 .post-visual .txtWrap dl.w,
-.post-visual .txtWrap dl.w + button {color:#ffffff; border-color:#fff;}
+.post-visual .txtWrap dl.w + .btn {color:#ffffff; border-color:#fff;}
 .post-visual .txtWrap dt {font-size:18px; padding-bottom:20px; font-weight:200;}
 .post-visual .txtWrap dd {font-size:62px;line-height:1;font-weight:500; display: -webkit-box;text-overflow: ellipsis;-webkit-line-clamp: 2;-webkit-box-orient: vertical; overflow:hidden;}
 .post-visual .txtWrap dd.txt_xs {font-size:18px;line-height:1;font-weight:200;padding:20px 0 0px 0; display: -webkit-box;text-overflow: ellipsis;-webkit-line-clamp: 1;-webkit-box-orient: vertical; max-height:37px; overflow:hidden;}
@@ -95,7 +95,7 @@
 .post-visual .swiper-wrapper{width:100%;height:750px; height:auto; margin:0px auto;padding-bottom:65px;filter:drop-shadow(0px 0px 10px rgba(0, 0, 0, 0.2));}
 .post-visual .swiper-slide-active {}
 .post-visual .swiper-slide-active .txtWrap dl, 
-.post-visual .swiper-slide-active .txtWrap dl + button {opacity:1;}
+.post-visual .swiper-slide-active .txtWrap dl + .btn {opacity:1;}
 .post-visual .swiper-slide{width:auto;/* margin-right:440px !important; */}
 .post-visual .swiper-button-next,
 .post-visual .swiper-button-prev {display:inline-block; position:absolute; top:50%; transform:translateY(-50%);}
@@ -368,6 +368,7 @@
 .bnnbox_crop {width:100%;}
 .bnnbox_crop::after {content:''; clear:both; display:block;}
 .bnnbox_crop > div {width: 100%;height: 230px;float: none;overflow: hidden;}
+.bnnbox_crop > div > img {width: 100%;height: auto;}
 .bnnbox_crop > .bnn_half {float:left; width:50%;}
 .bnnbox_crop > .bnn_half > a {display:block; position:relative; width:100%; height:0%; padding-top:26.0918%; overflow:hidden;}
 .bnnbox_crop > .bnn_half > a img {position:absolute; left:50%; right:0; top:50%; bottom:auto; transform:translate(-50%, -50%); width:auto; height:100%;}
@@ -513,7 +514,7 @@
 .fy_item .part .item_state:hover .itemInfo,
 .fy_item .part .item_state:active .itemInfo,
 .fy_item .part .item_state:focus .itemInfo {display:block;}
-.fy_item .part .itemLink:hover::after{content:''; position:absolute; left:0; right:0; top:0; bottom:0; width:100%; height:100%; background:rgba(0,0,0,0.8); z-index: 19;}
+.fy_item .part .item_prod:hover .itemLink::after{content:''; position:absolute; left:0; right:0; top:0; bottom:0; width:100%; height:100%; background:rgba(0,0,0,0.8); z-index: 19;}
 .fy_item .part .itemBrand,
 .fy_item .part .itemName,
 .fy_item .part .itemPrice {color:#ffffff; width:100%; max-width:none; word-break:keep-all;}
@@ -583,9 +584,9 @@ header.minify .common_header.br_header::after {bottom:-565px;}
 .brand_main .brand_visual .swiper-button-disabled {display: none;}
 .brand_main .post-visual .swiper-container {margin-left:0;}
 .brand_main .post-visual .swiper-wrapper {padding-bottom:0;}
-.brand_main .post-visual .swiper-slide {position:relative; max-width:1520px; padding-left:28.9473%; mask-size:86.6072% 0%, 9.3928% 21.4285%, 90.6072% 100%, 100% 78.5715%; -webkit-mask-size:86.6072% 0%, 9.3928% 21.4285%, 90.6072% 100%, 100% 78.5715%; /*transition:all 200ms ease;*/}
+.brand_main .post-visual .swiper-slide {position:relative; max-width:1520px; padding-left:23.6%; mask-size:86.6072% 0%, 9.3928% 21.4285%, 90.6072% 100%, 100% 78.5715%; -webkit-mask-size:86.6072% 0%, 9.3928% 21.4285%, 90.6072% 100%, 100% 78.5715%; /*transition:all 200ms ease;*/}
 .brand_main .post-visual .swiper-slide img {width:1080px; margin:0;}
-.brand_main .post-visual .swiper-slide .txtWrap {opacity:0; position:absolute; padding-left:0px; top:110px; bottom:auto; left:0px; right:auto; z-index:1;}
+.brand_main .post-visual .swiper-slide .txtWrap {width: 30%; opacity:0; position:absolute; padding-left:0px; top:110px; bottom:auto; left:0px; right:auto; z-index:1;}
 .brand_main .post-visual .txtWrap dt {font-size:0; padding-bottom:0;}
 .brand_main .post-visual .swiper-slide-active {opacity:1 !important;}
 .brand_main .post-visual .swiper-slide-active .txtWrap {animation-name: fade-in;animation-duration: 1.5s;animation-delay: 1s;animation-fill-mode: both;}
@@ -605,7 +606,7 @@ header.minify .common_header.br_header::after {bottom:-565px;}
 
 .brand_main .post-visual .swiper-slide-prev {opacity:0;}
 .brand_main .post-visual .swiper-slide-next {opacity:1 !important; padding-left:0px; padding-right:440px;}
-.brand_main .post-visual .swiper-controls {position:absolute; width:auto; bottom:100px; left:190px; padding-right:15px; z-index:10;}
+.brand_main .post-visual .swiper-controls {position:absolute; width:auto; bottom:100px; left:50%; padding-right:15px; z-index:10; margin-left:-780px;}
 .brand_main .post-visual .swiper-controls .swiper-pagination {margin-top:0}
 
 /* brand_about */

+ 8 - 8
src/main/webapp/ux/plugins/gaga/gaga.infinite.scrollSession.js

@@ -49,8 +49,8 @@ var gagaInfiniteScroll = {
 		, nowPage : null    // 현재 페이지
 		, pageUrl : {       // page url
 		}
-		, sortGb : ''
-		, sortGbNm : ''
+		, sortingType : ''
+		, sortingTypeNm : ''
 		, filterHtml : ''
 		, filterStatHtml : ''
 		, totalCount : ''
@@ -109,8 +109,8 @@ var gagaInfiniteScroll = {
 			this.pageStatus.pageNum[0] = historyData.pageNum;
 			this.pageStatus.historyScroll = historyData.dataIndex;
 			this.pageStatus.loadAlign = 'next';
-			this.pageStatus.sortGb = historyData.sortGb;
-			this.pageStatus.sortGbNm = historyData.sortGbNm;
+			this.pageStatus.sortingType = historyData.sortingType;
+			this.pageStatus.sortingTypeNm = historyData.sortingTypeNm;
 			this.pageStatus.filterHtml = historyData.filterHtml;
 			this.pageStatus.filterStatHtml = historyData.filterStatHtml;
 			this.pageStatus.totalCount = historyData.totalCount;
@@ -183,8 +183,8 @@ var gagaInfiniteScroll = {
 				, pageNum : sPageNum
 				, dataIndex : sDataIndex
 				, htm : sHtml
-				, sortGb : gagaInfiniteScroll.pageStatus.sortGb
-				, sortGbNm : gagaInfiniteScroll.pageStatus.sortGbNm
+				, sortingType : gagaInfiniteScroll.pageStatus.sortingType
+				, ssortingTypeNm : gagaInfiniteScroll.pageStatus.sortingTypeNm
 				, filterHtml : gagaInfiniteScroll.pageStatus.filterHtml
 				, filterStatHtml : gagaInfiniteScroll.pageStatus.filterStatHtml
 				, totalCount : gagaInfiniteScroll.pageStatus.totalCount
@@ -207,8 +207,8 @@ var gagaInfiniteScroll = {
 					, pageNum : $pageNum
 					, dataIndex : $dataIndex
 					, htm : $html
-					, sortGb : gagaInfiniteScroll.pageStatus.sortGb
-					, sortGbNm : gagaInfiniteScroll.pageStatus.sortGbNm
+					, sortingType : gagaInfiniteScroll.pageStatus.sortingType
+					, sortingTypeNm : gagaInfiniteScroll.pageStatus.sortingTypeNm
 					, filterHtml : gagaInfiniteScroll.pageStatus.filterHtml
 					, filterStatHtml : gagaInfiniteScroll.pageStatus.filterStatHtml
 					, totalCount : gagaInfiniteScroll.pageStatus.totalCount