Просмотр исходного кода

Merge branch 'develop' of http://112.172.147.34:4936/style24/style24.front into develop

card007 5 лет назад
Родитель
Сommit
3a3e116fd3
20 измененных файлов с 367 добавлено и 131 удалено
  1. 2 1
      src/main/java/com/style24/front/biz/web/TsfDisplayController.java
  2. 36 0
      src/main/java/com/style24/persistence/mybatis/shop/TsfCounsel.xml
  3. 5 21
      src/main/java/com/style24/persistence/mybatis/shop/TsfDisplay.xml
  4. 1 1
      src/main/webapp/WEB-INF/views/mob/common/fragments/FooterMob.html
  5. 2 2
      src/main/webapp/WEB-INF/views/mob/common/fragments/GnbMob.html
  6. 16 1
      src/main/webapp/WEB-INF/views/mob/display/AllBrandFormMob.html
  7. 8 6
      src/main/webapp/WEB-INF/views/mob/display/BrandMainFormMob.html
  8. 47 5
      src/main/webapp/WEB-INF/views/mob/display/CategoryGoodsListFormMob.html
  9. 19 6
      src/main/webapp/WEB-INF/views/mob/display/LookbookDetailFormMob.html
  10. 105 23
      src/main/webapp/WEB-INF/views/mob/display/MallMainFormMob.html
  11. 1 1
      src/main/webapp/WEB-INF/views/mob/display/OutletMainFormMob.html
  12. 1 1
      src/main/webapp/WEB-INF/views/mob/mypage/MypageReviewCreateFormMob.html
  13. 4 2
      src/main/webapp/WEB-INF/views/web/common/fragments/GnbWeb.html
  14. 1 1
      src/main/webapp/WEB-INF/views/web/display/LookbookDetailFormWeb.html
  15. 96 43
      src/main/webapp/WEB-INF/views/web/display/MallMainFormWeb.html
  16. 1 1
      src/main/webapp/WEB-INF/views/web/mypage/MypageReviewCreateFormWeb.html
  17. 13 8
      src/main/webapp/WEB-INF/views/web/mypage/MypageReviewDetailFormWeb.html
  18. 7 6
      src/main/webapp/WEB-INF/views/web/mypage/MypageReviewFormWeb.html
  19. 1 1
      src/main/webapp/WEB-INF/views/web/planning/PlanningEventMainFormWeb.html
  20. 1 1
      src/main/webapp/biz/goods.js

+ 2 - 1
src/main/java/com/style24/front/biz/web/TsfDisplayController.java

@@ -425,7 +425,7 @@ public class TsfDisplayController extends TsfBaseController {
 				Contents contents = new Contents();
 				contents.setContentsLoc("SCM001");
 				contents.setCateNo(cate.getCate1No());
-				mav.addObject("planningList", displayService.getContentsList(contents));
+				mav.addObject("planningList", displayService.getGnbTabBannerlist(contents));
 			} else if ("SCM002".equals(cateMain.getContentsLoc())) {
 				// 신상품
 				Contents contents = new Contents();
@@ -835,6 +835,7 @@ public class TsfDisplayController extends TsfBaseController {
 		} else {
 			contents.setContentsLoc("SCM005");
 		}
+		contents.setMaxRow(2);
 
 		return displayService.getGnbTabBannerlist(contents);
 	}

+ 36 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfCounsel.xml

@@ -220,6 +220,10 @@
 		     , QUEST_DT
 		     , SECRET_YN
 		     , ANS_STAT
+		     , ANS_TRANS_YN
+		     , ANS_COMP_CD
+		     , ANS_TRANS_NO
+		     , ANS_TRANS_DT
 		     , DEL_YN
 		     , REG_NO
 		     , REG_DT
@@ -244,6 +248,38 @@
 		     , NOW()
 		     , IFNULL(#{secretYn},'N')
 		     , 'G060_10' /*답변상태:처리중*/
+		     , CASE WHEN IFNULL((SELECT SUPPLY_COMP_CD
+		                         FROM   TB_GOODS
+		                         WHERE  GOODS_CD = #{relGoodsCd}
+		                         AND    SELF_GOODS_YN = 'N' /*입점상품*/
+		                        ),'') = '' THEN
+		                'N'
+		            ELSE
+		                'Y' /*입점상품은 답변의뢰한 것으로*/
+		       END
+		     , (SELECT SUPPLY_COMP_CD
+		        FROM   TB_GOODS
+		        WHERE  GOODS_CD = #{relGoodsCd}
+		        AND    SELF_GOODS_YN = 'N' /*입점상품*/
+		       )
+		     , CASE WHEN IFNULL((SELECT SUPPLY_COMP_CD
+		                         FROM   TB_GOODS
+		                         WHERE  GOODS_CD = #{relGoodsCd}
+		                         AND    SELF_GOODS_YN = 'N' /*입점상품*/
+		                        ),'') = '' THEN
+		                NULL
+		            ELSE
+		                24  /*입점상품은 답변의뢰자를 스타일이십사로*/
+		       END
+		     , CASE WHEN IFNULL((SELECT SUPPLY_COMP_CD
+		                         FROM   TB_GOODS
+		                         WHERE  GOODS_CD = #{relGoodsCd}
+		                         AND    SELF_GOODS_YN = 'N' /*입점상품*/
+		                        ),'') = '' THEN
+		                NULL
+		            ELSE
+		                NOW() /*입점상품은 답변의뢰한 것으로*/
+		       END
 		     , 'N'
 		     , #{regNo}
 		     , NOW()

+ 5 - 21
src/main/java/com/style24/persistence/mybatis/shop/TsfDisplay.xml

@@ -650,13 +650,7 @@
 		            ELSE
 		                FILTER_CD
 		       END       AS FILTER_CD
-		<choose>
-		    <when test="cate1No == null and cate2No == null and cate3No == null and cate4No == null">
-		    </when>
-		    <otherwise>
 		     , DISP_ORD
-		    </otherwise>
-		</choose>
 		     , FILTER_NM
 		FROM   TB_CATE_FILTER
 		WHERE  SITE_CD = #{siteCd}
@@ -665,10 +659,6 @@
 		AND    FORMAL_GB = #{formalGb}
 		</if>
 		AND    BRAND_GROUP_NO = #{brandGroupNo}
-		<choose>
-		  <when test="cate1No == null and cate2No == null and cate3No == null and cate4No == null">
-		  </when>
-		  <otherwise>
 		  AND    CATE_NO = CASE WHEN IFNULL(#{cate4No},0) > 0 THEN
 		                                    #{cate4No}
 		                             ELSE
@@ -678,20 +668,11 @@
 		                                           CASE WHEN IFNULL(#{cate2No},0) > 0 THEN
 		                                                     #{cate2No}
 		                                                ELSE
-		                                                     #{cate1No}
+		                                                    IFNULL(#{cate1No},0)
 		                                            END
 		                                  END
 		                             END
-		  </otherwise>
-		</choose>
-		<choose>
-		    <when test="brandGroupNo > 0 and cate1No == null and cate2No == null and cate3No == null and cate4No == null">
-		 ORDER  BY FILTER_GB
-		    </when>
-		    <otherwise>
 		 ORDER  BY FILTER_GB, DISP_ORD
-		    </otherwise>
-		</choose>
 	</select>
 	
 	<!-- 검색상품리스트 카테고리별 필터 목록 -->
@@ -1007,11 +988,14 @@
 		            WHERE  1=1
 		              AND  B.CATE_NO = #{cateNo}
 		              AND  A.OPEN_YN = 'Y'
+		              AND  A.DEL_YN = 'N'
 		              AND  B.DISP_YN = 'Y'
 		              AND  A.DISP_STDT <![CDATA[<=]]> NOW()
 		              AND  A.DISP_EDDT <![CDATA[>=]]> NOW()
 		        ) Z
-		LIMIT 2
+		<if test="maxRow != null and maxRow != ''">
+			LIMIT #{maxRow}
+		</if>
 	</select>
 	
 </mapper>

+ 1 - 1
src/main/webapp/WEB-INF/views/mob/common/fragments/FooterMob.html

@@ -188,7 +188,7 @@
 									}
 								});
 							} else if (item.contentsType == 'O') { // 컨텐츠유형: 아울렛
-								$('#ulQuickContents').append('<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_OUTLET_MAIN);"><span>' + item.gtabNm + '</span></a></li>\n');
+								$('#ulQuickContents').append('<li><a href="javascript:void(0);" onclick="cfnGoToOutletMain(\'G032_103\');"><span>' + item.gtabNm + '</span></a></li>\n');
 							} else if (item.contentsType == 'L') { // 컨텐츠유형:링크
 								$('#ulQuickContents').append('<li><a href="' + item.linkUrl + '"><span>' + item.gtabNm + '</span></a></li>\n');
 							}

+ 2 - 2
src/main/webapp/WEB-INF/views/mob/common/fragments/GnbMob.html

@@ -18,7 +18,7 @@
 	<header class="main">
 		<section class="htop" id="htopMain">
 			<h1>
-				<a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MAIN);"><img src="/images/mo/logo_STYLE24.png" alt="STYLE24"></a>
+				<a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MAIN);fnClickGnbTab('');"><img src="/images/mo/logo_STYLE24.png" alt="STYLE24"></a>
 				<button class="btn_gnb" title="메인메뉴 열기/닫기"><span><i></i></span></button>
 			</h1>
 			<div class="button_wrap">
@@ -121,7 +121,7 @@
 						let ckGnbTabSq = gagajf.getCookie("st24ck_gnb_tab");
 						
 						let tag = '';
-						tag += '<li class="' + (gagajf.isNull(ckGnbTabSq) ? "on" : "") + '"><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MAIN);">홈</a></li>\n';
+						tag += '<li class="' + (gagajf.isNull(ckGnbTabSq) ? "on" : "") + '"><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MAIN); fnClickGnbTab(\'\');">홈</a></li>\n';
 						tag += '<li class="' + (ckGnbTabSq == 100 ? "on" : "") + '"><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_ALL_BRAND); fnClickGnbTab(100);">브랜드</a></li>\n';
 						
 						$.each(result, function(idx, item) {

+ 16 - 1
src/main/webapp/WEB-INF/views/mob/display/AllBrandFormMob.html

@@ -2,7 +2,7 @@
 <html lang="ko"
 	xmlns:th="http://www.thymeleaf.org"
 	xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
-	layout:decorator="mob/common/layout/DefaultLayoutMob">
+	layout:decorator="mob/common/layout/BrandLayoutMob">
 <!--
  *******************************************************************************
  * @source  : AllBrandFormMob.html
@@ -53,6 +53,13 @@
 				</form>
 			</div>
 			<div id="idBrandList"></div>
+			<div class="inner" id="idNodata">
+				<div class="brand nodata">
+					<p>브랜드 검색 결과가 없습니다.</p>
+					<button type="button" class="btn" onclick="fnAllBrand();">브랜드 전체보기</button>
+				</div>
+			</div>
+
 
 		</section>
 		<!-- ★ 컨텐츠 종료 -->
@@ -62,10 +69,17 @@
 <script th:inline="javascript">
 /*<![CDATA[*/
 	$(document).ready(function(){
+		$("#htopTitle").html('전체 브랜드');
+		$("#idNodata").hide();
 		setHtop();
 		fnCreateAllBrandList();
 	});
 
+	let fnAllBrand = function (){
+		$("#searchBrandForm").find("input[name=search]").val('');
+		fnCreateAllBrandList();
+	}
+
 	let fnSearchBrand = function(){
 		var searchBrand = $("#searchBrandForm").find("input[name=search]").val();
 		fnCreateAllBrandList(searchBrand);
@@ -111,6 +125,7 @@
 						tag += '	</div>\n';
 						tag += '</div>\n';
 						$("#idBrandList").html(tag);
+						$("#idNodata").hide();
 					}else{
 						$("#idBrandList").html('');
 						$("#idNodata").show();

+ 8 - 6
src/main/webapp/WEB-INF/views/mob/display/BrandMainFormMob.html

@@ -275,16 +275,18 @@
 											<div class="swiper-slide">
 												<div class="sp_item">
 													<div class="sp_img">
-														<img th:src="${@environment.getProperty('domain.image') + planningData.mainImg}" alt="">
-														<div class="s-text">
-															<p th:text="${planningData.planNm}">단 28시간 퓨어 아우터<br>최대 80%세일</p>
-															<p th:text="${planningData.dtlTitle1}">신상 아우터 7만원~</p>
-														</div>
+														<a href="javascript:void(0);" th:onclick="cfnGoToPlanDetail([[${planningData.planSq}]])">
+															<img th:src="${@environment.getProperty('domain.image') + planningData.mainImg}" alt="">
+															<div class="s-text">
+																<p th:text="${planningData.planNm}">단 28시간 퓨어 아우터<br>최대 80%세일</p>
+																<p th:text="${planningData.dtlTitle1}">신상 아우터 7만원~</p>
+															</div>
+														</a>
 													</div>
 													<div class="sp_item">
 														<div class="itemsGrp rowtype">
 															<th:block th:if="${planningData.planningGoodsList != null and !planningData.planningGoodsList.empty}" th:each="planningGoods, status : ${planningData.planningGoodsList}">
-																<div class="item_prod">
+																<div class="item_prod" th:if="${status.count<3}">
 																	<div class="item_state">
 																		<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${planningGoods.goodsCd}]], '', '', 'SBMM011');">
 																			<div class="itemPic">

+ 47 - 5
src/main/webapp/WEB-INF/views/mob/display/CategoryGoodsListFormMob.html

@@ -761,6 +761,20 @@
 					let allCate = [[${cateList}]];
 					if(brandGroupNo > 0){
 						if(gagajf.isNull(cate1No)){
+							let tag = '';
+							tag += '<a href="javascript:void(0);" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\', \'\' ';
+							if(formalGb=='G009_20'){
+								tag += ' ,\'\',\'\',\'\',\'\',\''+formalGb+'\'';
+							}
+							tag += ');">전체</a>';
+							$.each(result, function(idx, item) {
+								tag += '<a href="javascript:void(0);" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + [[${cateInfo.cateGb}]] + '\', ' + item.cate1No + ' ';
+								if(formalGb=='G009_20'){
+									tag += ' ,\'\',\'\',\'\',\'\',\''+formalGb+'\'';
+								}
+								tag += ');">'+item.cate1Nm+'</a>';
+							});
+							$('#leafCateList').append(tag);
 							$('#htopTitle').append('상품');
 						}else{
 							$.each(result, function(idx, item) {
@@ -772,13 +786,31 @@
 							});
 						}
 					}else{
-						$.each(result, function(idx, item) {
-							$.each(allCate, function(allCateIdx, allCateItem) {
-								if (item.cate1No == allCateItem.cate1No) {
-									$('#leafCateList').append(fnGetCategoryList(item));
+						if(gagajf.isNull(cate1No)){
+							let tag = '';
+							tag += '<a href="javascript:void(0);" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\', \'\' ';
+							if(formalGb=='G009_20'){
+								tag += ' ,\'\',\'\',\'\',\'\',\''+formalGb+'\'';
+							}
+							tag += ');">전체</a>';
+							$.each(result, function(idx, item) {
+								tag += '<a href="javascript:void(0);" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + [[${cateInfo.cateGb}]] + '\', ' + item.cate1No + ' ';
+								if(formalGb=='G009_20'){
+									tag += ' ,\'\',\'\',\'\',\'\',\''+formalGb+'\'';
 								}
+								tag += ');">'+item.cate1Nm+'</a>';
 							});
-						});
+							$('#leafCateList').append(tag);
+							$('#htopTitle').append('전체');
+						}else{
+							$.each(result, function(idx, item) {
+								$.each(allCate, function(allCateIdx, allCateItem) {
+									if (item.cate1No == allCateItem.cate1No) {
+										$('#leafCateList').append(fnGetCategoryList(item));
+									}
+								});
+							});
+						}
 					}
 				}
 			});
@@ -1129,6 +1161,16 @@
 
 	</script>
 
+	<script>
+		//(진행 중)
+		/* 210427_수정 : err 이미지 스크립트 */
+		function noneImg(noneSrc){
+			$(noneSrc).parents('.itemPic').css({'background':'url(/images/pc/thumb/bg_item_none.png)'});
+			$(noneSrc).css({'opacity':'0'});
+			//$(noneSrc).attr("src", no_src);
+		}
+	</script>
+
 
 </th:block>
 </body>

+ 19 - 6
src/main/webapp/WEB-INF/views/mob/display/LookbookDetailFormMob.html

@@ -2,7 +2,7 @@
 <html lang="ko"
 	xmlns:th="http://www.thymeleaf.org"
 	xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
-	layout:decorator="mob/common/layout/DefaultLayoutMob">
+	layout:decorator="mob/common/layout/BrandLayoutMob">
 <!--
  *******************************************************************************
  * @source  : LookbookDetailFormMob.html
@@ -40,7 +40,13 @@
 												<!-- 상품피커 -->
 												<th:block th:if="${item.lookbookGoodsList != null and !item.lookbookGoodsList.empty}" th:each="goodsItem, goodsStatus : ${item.lookbookGoodsList}">
 													<div class="item_picker" th:style="${'left:'+goodsItem.xlim+'%; top:'+goodsItem.ylim+'%;'}">
-														<button type="button" th:onclick="fnLookbookGoodsPopup([[${goodsItem.sysImgNm}]],[[${goodsItem.brandGroupNm}]],[[${goodsItem.goodsFullNm}]],[[${goodsItem.listPrice}]],[[${goodsItem.currPrice}]],[[${goodsItem.dcRate}]],[[${goodsItem.goodsCd}]],[[${goodsItem.stockQty}]],[[${goodsItem.soldoutYn}]])"><span class="ico ico_picker"></span></button>
+														<div>
+															<button type="button" th:onclick="fnLookbookGoodsPopup([[${goodsItem.sysImgNm}]],[[${goodsItem.brandGroupNm}]],[[${goodsItem.goodsFullNm}]],[[${goodsItem.listPrice}]],[[${goodsItem.currPrice}]],[[${goodsItem.dcRate}]],[[${goodsItem.goodsCd}]],[[${goodsItem.stockQty}]],[[${goodsItem.soldoutYn}]])"><span class="ico ico_picker"></span></button>
+															<div class="pick_descr">
+																<a href="javascript:void(0);">
+																</a>
+															</div>
+														</div>
 													</div>
 												</th:block>
 												<!-- //상품피커 -->
@@ -54,9 +60,10 @@
 						</div>
 					</div>
 					<!-- //상품이미지pic -->
-					<div class="lb_text" th:if="${lookbookDetailList != null}">
+					<div class="lb_text" id="lbImgDesc" th:if="${lookbookDetailList != null}">
 						<th:block th:each="item, stat : ${lookbookDetailList}">
-							<div class="text_cont" th:text="${item.imgDesc}">
+							<div class="text_cont">
+								<input type="hidden" name="title" th:value="${item.imgDesc}">
 							</div>
 						</th:block>
 						<button class="btn btnText"><p>더보기</p><span></span></button>
@@ -130,9 +137,9 @@
 							<div class="swiper-wrapper">
 								<th:block th:if="${otherLookbookList}" th:each="oneData, status : ${otherLookbookList}">
 									<div class="swiper-slide">
-										<a th:href="|javascript:cfnGoToLookbookDetail('${oneData.lookbookSq}','${oneData.brandCd}')|">
+										<a th:href="|javascript:cfnGoToLookbookDetail('${lookbookInfo.lookbookGb}','${oneData.lookbookSq}','${oneData.brandCd}')|">
 											<div class="thumb">
-												<img th:src="${@environment.getProperty('domain.image')+oneData.sysFileNm}" alt="">
+												<img th:src="${@environment.getProperty('domain.image')+oneData.sysFileNm}" style="height:100%" alt="">
 											</div>
 											<div class="txt">
 												<p class="tt" th:text="${oneData.title}"></p>
@@ -423,7 +430,13 @@
 <script>
 	// 픽커모달
 	$(document).ready(function () {
+		$("#htopTitle").html('룩북');
+	});
 
+	$('#lbImgDesc .text_cont').each(function (){
+		var brText = $(this).find("input[name=title]").val();
+		let tag = brText.replace(/(?:\r\n|\r|\n)/g, '<br>');
+		$(this).append(tag);
 	});
 </script>
 

+ 105 - 23
src/main/webapp/WEB-INF/views/mob/display/MallMainFormMob.html

@@ -37,7 +37,7 @@
 											<div class="txtWrap">
 												<dl th:class="${ContentsData.strVar7=='BLACK'?'':'w'}">
 													<dt th:if="${ContentsData.strVar5=='P'}" th:text="${ContentsData.planBrandGroupNm}">NBA</dt>
-<!--													<dt th:if="${ContentsData.strVar5!='P'}">EVENT</dt>-->
+													<dt th:if="${ContentsData.strVar5=='P' and ContentsData.planGb=='E'}">EVENT</dt>
 													<dd class="mainTitle">
 														<input type="hidden" name="mainTitlee" th:value="${ContentsData.strTitle1}"/>
 													</dd>
@@ -255,7 +255,7 @@
 								<th:block th:each="socialData, socialStat : ${mainData.socialInfo}">
 									<th:block th:each="goodsData, goodsStat : ${socialData.socialGoodsList}">
 										<div class="swiper-slide" th:if="${goodsStat.count<21}">
-											<div class="item_prod">
+											<div class="item_prod" style="width:100%">
 												<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='SMM006', planDtlSq=''">관심상품 추가</button>
 													<a href="javascript:void(0)" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${goodsData.goodsCd}]], '', '', 'SMM006');">
@@ -337,15 +337,16 @@
 										</div>
 									</th:block>
 								</div> <!--pick-post 종료 -->
+								<!-- 210524 : pick-post 형제로 버튼그룹 이동 -->
+								<div class="btn_group_flex">
+									<div>
+										<button class="btn btn_default" th:onclick="cfnGoToBrandMain([[${brandPickData.brandGroupNo}]])">다음 브랜드 보기<span></span></button>
+									</div>
+								</div>
+								<!-- //210329 : 브랜드 pick 상품 swiper 제거 -->
 								<!-- 210329 : 브랜드 pick 상품 swiper 제거 -->
 							</div>
 							</th:block>
-							<div class="btn_group_flex">
-								<div>
-									<button class="btn btn_default">다음 브랜드 보기<span></span></button>
-								</div>
-							</div>
-
 						</div>
 					</div>
 				</div>
@@ -382,7 +383,7 @@
 				</div>
 			</th:block>
 
-			<th:block th:if="${contentsLoc=='012'}">
+			<th:block th:if="${contentsLoc=='009'}">
 				<!-- 9. MD추천 스타일 -->
 				<div class="inner">
 					<div class="main_recomm">
@@ -736,7 +737,7 @@
 	var mainLayoutList = [[${mainLayoutList}]];
 	console.log(mainLayoutList);
 
-	var targetTime = $("#socailForm").find("input[name=targetTime]").val();
+	var targetTime = $("#socailForm").find("input[name=targetTime]").val().toDate("YYYYMMDD");
 	if(targetTime != null && targetTime != ''){
 		/* 핫딜 countDown */
 		var endTime = new Date(targetTime); // 남은시간 지정
@@ -930,7 +931,7 @@
 			$pickHd.parent().removeClass('on')
 			target.addClass('on');
 			muCenter(target);
-		})
+		});
 		function muCenter(target){
 			var snbwrap = $('.pick-head .swiper-wrapper');
 			var targetPos = target.position();
@@ -966,6 +967,12 @@
 		//post-pick-post
 		var post_pick = new Swiper(".pick-cont .swiper-container", {
 			//slidesPerView: 1,
+			watchOverflow:true, //210520_ 추가 : 슬라이드 1개일 경우 롤링 제거.
+			//210520_ 추가 : 자동재생 시간 추가.
+			autoplay: {
+				delay: 4000,
+				disableOnInteraction: false,
+			},
 			observer: true,
 			observeParents: true
 		});
@@ -1025,27 +1032,103 @@
 		});
 
 		// post_sug
+		var numCnt = 0;
 		var post_sug = new Swiper('.swiper-container.post-sug', {
 			pagination: {
 				el: '.swiper-pagination',
 			},
-			// autoHeight: true,
+			//autoHeight: true,
 			autoplay: {
-				delay: 9500,
+				delay: 24700,
 				disableOnInteraction: false,
 			},
+			on : {
+				slideChange: function(){
+					foryouIndex = 0;
+					if(numCnt === 0){
+						$(".swiper-slide.type1 .list_cate > li").removeClass('on');
+						$(".swiper-slide.type2 .list_cate > li").removeClass('on');
+						$(".swiper-slide.type2 .list_cate .first").addClass('on');
+						numCnt = 1;
+					} else {
+						$(".swiper-slide.type1 .list_cate > li").removeClass('on');
+						$(".swiper-slide.type2 .list_cate > li").removeClass('on');
+						$(".swiper-slide.type1 .list_cate .first").addClass('on');
+						numCnt = 0;
+					}
+				}
+			},
 		});
+		var foryouIndex = 0;
+		//var foryouIndex1 = -1;
+		//var foryouIndex2 = -1;
+		var cntNum = 0;
 		function foryouInterval(_foryouIndex) {
-			var foryouCateItems = $(".main_foryou .post-sug .swiper-slide-active .list_cate li");
-			$(foryouCateItems[(_foryouIndex + 1) % 5]).addClass("on");
-			$(foryouCateItems[_foryouIndex % 5]).removeClass("on");
+			//console.log($(".main_foryou .post-sug .swiper-slide.swiper-slide-active .list_cate li")[0]);
+			var foryouCateItems1 = $(".main_foryou .post-sug .swiper-slide.type1.swiper-slide-active .list_cate li");
+			var foryouCateItems2 = $(".main_foryou .post-sug .swiper-slide.type2.swiper-slide-active .list_cate li");
+			$(".main_foryou .post-sug .swiper-slide.type1 .list_cate li").removeClass("on");
+			$(".main_foryou .post-sug .swiper-slide.type2 .list_cate li").removeClass("on");
+
+			if($(".main_foryou .post-sug .swiper-slide.type1").hasClass("swiper-slide-active")){
+				$(foryouCateItems1[(_foryouIndex + 1) % 5]).addClass("on");
+				if (_foryouIndex >= 5) foryouIndex = 0;
+				foryouIndex++;
+				//$(foryouCateItems1[_foryouIndex % 5]).removeClass("on");
+				//setTimeout(function () {
+				//		foryouInterval(foryouIndex1);
+				//		if (foryouIndex1 >= 5) foryouIndex1 = 0;
+				//		foryouIndex1++;
+				//}, 0);
+				$(foryouCateItems1).click(function () {
+					//console.log($(this).index());
+					foryouIndex = $(this).index();
+					//setInterval(function () {
+					//	foryouInterval(foryouIndex1);
+					//	if (foryouIndex1 >= 5) foryouIndex1 = 0;
+					//	foryouIndex1++;
+					//}, 2000);
+					clearInterval(stopInter);
+					stopInter = startTimeInterval();
+					//setTimeout(function () {
+					//	foryouInterval(foryouIndex);
+					//}, 0);
+				});
+			}
+			if($(".main_foryou .post-sug .swiper-slide.type2").hasClass("swiper-slide-active")){
+				$(foryouCateItems2[(_foryouIndex + 1) % 5]).addClass("on");
+				if (_foryouIndex >= 5) foryouIndex = 0;
+				foryouIndex++;
+				//$(foryouCateItems2[_foryouIndex % 5]).removeClass("on");
+				//setTimeout(function () {
+				//		foryouInterval(foryouIndex2);
+				//		if (foryouIndex2 >= 5) foryouIndex2 = 0;
+				//		foryouIndex2++;
+				//}, 0);
+				$(foryouCateItems2).click(function () {
+					//console.log($(this).index());
+					foryouIndex = $(this).index();
+					//setInterval(function () {
+					//	foryouInterval(foryouIndex2);
+					//	if (foryouIndex2 >= 5) foryouIndex2 = 0;
+					//	foryouIndex2++;
+					//}, 2000);
+					clearInterval(stopInter);
+					stopInter = startTimeInterval();
+					//setTimeout(function () {
+					//	foryouInterval(foryouIndex);
+					//}, 0);
+				});
+			}
 		}
-		var foryouIndex = 0;
-		setInterval(function () {
-			foryouInterval(foryouIndex);
-			if (foryouIndex >= 5) foryouIndex = 0;
-			foryouIndex++;
-		}, 2000);
+
+		function startTimeInterval(){
+			return setInterval(function () {
+				foryouInterval(foryouIndex);
+			}, 5000);
+		}
+		var stopInter = startTimeInterval();
+
 		var post_sug_items = new Swiper ('.swiper-container.post-sug-items', {
 			slidesPerView: 3,
 			spaceBetween: 10,
@@ -1079,7 +1162,6 @@
 			},
 		});
 
-
 	</script>
 
 </th:block>

+ 1 - 1
src/main/webapp/WEB-INF/views/mob/display/OutletMainFormMob.html

@@ -30,7 +30,7 @@
 									<div class="swiper-slide" th:each="item, status : ${planningList}">
 										<a th:href="${item.strVar1}">
 											<div class="img">
-												<img th:src="${@environment.getProperty('domain.image') + item.imgPath1}" alt="">
+												<img th:src="${@environment.getProperty('domain.image') + item.imgPath2}" alt="">
 											</div>
 											<div class="txtWrap">
 												<p th:text="${item.strTitle1}">오랫동안 기다려온<br>겨울세일 시작</p>

+ 1 - 1
src/main/webapp/WEB-INF/views/mob/mypage/MypageReviewCreateFormMob.html

@@ -643,7 +643,7 @@ var fnChooseFile = function(obj) {
 				$(".pics").children().last().append("<input type='hidden' name='kufKeyArr' id='kufKey"+(picLength+1)+"'>");
 				$(".pics").children().last().append("<input type='hidden' name='kmcKeyArr' id='kmcKey"+(picLength+1)+"'>");
 				gagaKollus.upload('Review', file, $('#kufKey'+(picLength+1)));
-			}, 200);
+			}, 1000);
 		}else{
 			mcxDialog.alertC('첨부할 수 없는 파일 형식입니다.', {
 				sureBtnText: "확인",

+ 4 - 2
src/main/webapp/WEB-INF/views/web/common/fragments/GnbWeb.html

@@ -847,7 +847,9 @@
 						if(document.cookie.match('(^|;)?gnbtop_banner=([^;]*)(;|$)')==null){
 							bannerYn = "Y";
 							let tag = '';
+							console.log('contentsType:::'+item.contentsType);
 							if(item.contentsType == 'OPEN'){
+								console.log('strVar7:::'+item.strVar7);
 								tag +='<div class="bnrtype_open" style="background-color:#'+item.strVar5+';">';
 								if(item.strVar7=='IMG'){
 									tag +=' 	<a href="'+item.strVar1+'" target="">';
@@ -856,7 +858,7 @@
 									tag +=' 			<img src="'+bannerImgUrl+''+item.imgPath2+'" alt=""/>';
 									tag +=' 		</div>';
 									tag +=' 	</a>';
-									tag +=' 	<button class="btn_toggle_bnr"><span>열기</span></button>';
+									tag +=' 	<button class="btn_toggle_bnr">열기</button>';
 								}else{
 									tag +=' 	<a href="'+item.strVar1+'" target="">';
 									tag +=' 		<img src="'+bannerImgUrl+''+item.imgPath1+'" alt="">';
@@ -864,7 +866,7 @@
 									tag += '		'+item.html+' ';
 									tag +=' 		</div>';
 									tag +=' 	</a>';
-									tag +=' 	<button class="btn_toggle_bnr"><span>열기</span></button>';
+									tag +=' 	<button class="btn_toggle_bnr">열기</button>';
 								}
 								tag +='</div>';
 								//if(item.strVar8=='Y'){

+ 1 - 1
src/main/webapp/WEB-INF/views/web/display/LookbookDetailFormWeb.html

@@ -130,7 +130,7 @@
 							<div class="swiper-wrapper">
 								<th:block th:if="${otherLookbookList}" th:each="oneData, status : ${otherLookbookList}">
 									<div class="swiper-slide">
-										<a th:href="|javascript:cfnGoToLookbookDetail('${oneData.lookbookSq}','${oneData.brandCd}')|">
+										<a th:href="|javascript:cfnGoToLookbookDetail('${lookbookInfo.lookbookGb}','${oneData.lookbookSq}','${oneData.brandCd}')|">
 											<div class="thumb">
 												<img th:src="${@environment.getProperty('domain.image')+oneData.sysFileNm}" alt="" style="height:307px;">
 											</div>

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

@@ -40,12 +40,12 @@
 													<th:block th:if="${ContentsData.strVar5!=null && ContentsData.strVar5!=''}">
 														<p class="vrt_txt" th:if="${ContentsData.strVar5=='P' and ContentsData.planBrandCnt<2}" th:text="${ContentsData.planBrandGroupNm}"></p>
 														<p class="vrt_txt" th:if="${ContentsData.strVar5=='P' and ContentsData.planBrandCnt>1}" th:text="${ContentsData.planBrandGroupNm+' 외'}"></p>
-														<p class="vrt_txt" th:if="${ContentsData.strVar5!='P' or (ContentsData.strVar5=='P' and ContentsData.planGb=='E') }" >EVENT</p>
+														<p class="vrt_txt" th:if="${ContentsData.strVar5=='P' and ContentsData.planGb=='E'}" >EVENT</p>
 													</th:block>
 													<dl th:class="${ContentsData.strVar7=='BLACK'?'':'w'}">
 														<dt th:if="${ContentsData.strVar5=='P' and ContentsData.planBrandCnt<2}" th:text="${ContentsData.planBrandGroupNm}"></dt>
 														<dt th:if="${ContentsData.strVar5=='P' and ContentsData.planBrandCnt>1}" th:text="${ContentsData.planBrandGroupNm+' 외'}"></dt>
-														<dt th:if="${ContentsData.strVar5!='P' or (ContentsData.strVar5=='P' and ContentsData.planGb=='E') }" >EVENT</dt>
+														<dt th:if="${ContentsData.strVar5=='P' and ContentsData.planGb=='E' }" >EVENT</dt>
 														<dd class="mainTitle">
 															<input type="hidden" name="mainTitlee" th:value="${ContentsData.strTitle1}"/>
 														</dd>
@@ -238,7 +238,7 @@
 							</p>
 							<a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_SOCIAL_MAIN);"><span>전체보기</span></a>
 							<div class="deal_progress">
-								<div class="bar_current" style="width:33.333%"><span>HERE</span></div>
+								<div class="bar_current" id="barCurrent" style="width:33.333%"><span>HERE</span></div>
 								<div class="bar_bg"></div>
 							</div>
 							<th:block th:each="socialData, socialStat : ${mainLayoutData.socialInfo}">
@@ -252,13 +252,66 @@
 									<div id="countdown">
 										<div id="tiles"></div>
 									</div>
-									<div class="count_time">
-										<span>HOURS</span>
-										<span>MINS</span>
-										<span>SECS</span>
+									<div class="count_time" id="countdownTime">
+										<span id="h-hours">HOURS</span>
+										<span id="h-minutes">MINS</span>
+										<span id="h-seconds">SECS</span>
 									</div>
 								</div>
 							</div>
+							<script>
+								/* 핫딜 countDown */
+								// var target_date = new Date().getTime() + (1000*3600*8); // set the countdown date
+								var target_date = $("#socailForm").find("input[name=targetTime]").val().toDate("YYYYMMDD");
+								var days, hours, minutes, seconds; // variables for time units
+
+								var countdown = document.getElementById("tiles"); // get tag element
+
+								getCountdown();
+
+								var timerStop = setInterval(function () { getCountdown(); }, 1000);
+
+								var width = 0;
+								var fixDate = new Date().getTime();
+								var fixTarget = (target_date - fixDate) / 1000;
+
+								function getCountdown(){
+
+									// find the amount of "seconds" between now and target
+									var current_date = new Date().getTime();
+									var seconds_left = (target_date - current_date) / 1000;
+
+									seconds_left = seconds_left % 86400;
+
+									hours = pad( parseInt(seconds_left / 3600) );
+									seconds_left = seconds_left % 3600;
+
+									minutes = pad( parseInt(seconds_left / 60) );
+									seconds = pad( parseInt( seconds_left % 60 ) );
+
+									// format countdown string + set tag value
+									countdown.innerHTML = "<span>" + hours + "</span><span>" + minutes + "</span><span>" + seconds + "</span>";
+
+									var elem = document.getElementById("barCurrent");
+									function progressMove(){
+										width += 100/fixTarget;
+										elem.style.width = width + "%";
+									}
+									progressMove();
+
+									if(seconds_left < 1){
+										clearInterval(timerStop);
+										elem.style.width = "100%";
+									}
+
+								}
+
+								function pad(n) {
+									return (n < 10 ? '0' : '') + n;
+								}
+								/* countDown */
+
+							</script>
 						</div>
 						<div class="cont_body">
 							<div class="swiper-container post-deal">
@@ -785,42 +838,42 @@
 
 var mainLayoutList = [[${mainLayoutList}]];
 
-var targetTime = $("#socailForm").find("input[name=targetTime]").val();
-if(targetTime != null && targetTime != ''){
-	/* 핫딜 countDown */
-	var endTime = new Date(targetTime); // 남은시간 지정
-	endTime = (Date.parse(endTime) / 1000);
-
-	var countdown = document.getElementById("tiles"); // get tag element
-
-	getCountdown();
-
-	setInterval(function () { getCountdown(); }, 1000);
-
-	function getCountdown(){
-		// find the amount of "seconds" between now and target
-		var now = new Date();
-		now = (Date.parse(now) / 1000);
-
-		var timeLeft = endTime - now;
-
-		var days = Math.floor(timeLeft / 86400);
-		var hours = Math.floor((timeLeft - (days * 86400)) / 3600);
-		var minutes = Math.floor((timeLeft - (days * 86400) - (hours * 3600 )) / 60);
-		var seconds = Math.floor((timeLeft - (days * 86400) - (hours * 3600) - (minutes * 60)));
-
-		if (hours < '10') { hours = '0' + hours; }
-		if (minutes < '10') { minutes = '0' + minutes; }
-		if (seconds < '10') { seconds = '0' + seconds; }
-
-		// format countdown string + set tag value
-		countdown.innerHTML = "<span>" + hours + "</span><span>" + minutes + "</span><span>" + seconds + "</span>";
-	}
-
-	function pad(n) {
-		return (n < 10 ? '0' : '') + n;
-	}
-}
+// var targetTime = $("#socailForm").find("input[name=targetTime]").val();
+// if(targetTime != null && targetTime != ''){
+// 	/* 핫딜 countDown */
+// 	var endTime = new Date(targetTime); // 남은시간 지정
+// 	endTime = (Date.parse(endTime) / 1000);
+//
+// 	var countdown = document.getElementById("tiles"); // get tag element
+//
+// 	getCountdown();
+//
+// 	setInterval(function () { getCountdown(); }, 1000);
+//
+// 	function getCountdown(){
+// 		// find the amount of "seconds" between now and target
+// 		var now = new Date();
+// 		now = (Date.parse(now) / 1000);
+//
+// 		var timeLeft = endTime - now;
+//
+// 		var days = Math.floor(timeLeft / 86400);
+// 		var hours = Math.floor((timeLeft - (days * 86400)) / 3600);
+// 		var minutes = Math.floor((timeLeft - (days * 86400) - (hours * 3600 )) / 60);
+// 		var seconds = Math.floor((timeLeft - (days * 86400) - (hours * 3600) - (minutes * 60)));
+//
+// 		if (hours < '10') { hours = '0' + hours; }
+// 		if (minutes < '10') { minutes = '0' + minutes; }
+// 		if (seconds < '10') { seconds = '0' + seconds; }
+//
+// 		// format countdown string + set tag value
+// 		countdown.innerHTML = "<span>" + hours + "</span><span>" + minutes + "</span><span>" + seconds + "</span>";
+// 	}
+//
+// 	function pad(n) {
+// 		return (n < 10 ? '0' : '') + n;
+// 	}
+// }
 
 // 컨텐츠 호출
 $(document).ready( function() {

+ 1 - 1
src/main/webapp/WEB-INF/views/web/mypage/MypageReviewCreateFormWeb.html

@@ -601,7 +601,7 @@ var fnChooseFile = function(obj) {
 				$(".pics").children().eq(0).append("<input type='hidden' name='kufKeyArr' id='kufKey"+(picLength+1)+"'>");
 				$(".pics").children().eq(0).append("<input type='hidden' name='kmcKeyArr' id='kmcKey"+(picLength+1)+"'>");
 				gagaKollus.upload('Review', file, $('#kufKey'+(picLength+1)));
-			}, 200);
+			}, 1000);
 		}else{
 			mcxDialog.alertC('첨부할 수 없는 파일 형식입니다.', {
 				sureBtnText: "확인",

+ 13 - 8
src/main/webapp/WEB-INF/views/web/mypage/MypageReviewDetailFormWeb.html

@@ -28,7 +28,7 @@
 <!-- <input type="hidden" name="bestYn" th:value="${review.bestYn}" /> -->
 <input type="hidden" name="photoYn" th:value="${review.photoYn}" />
 <input type="hidden" name="reviewSq" th:value="${review.reviewSq}" />
-<input type="hidden" name="rvAtcSq" th:value="${review.rvAtcSq}" />
+<input type="hidden" name="attachSq" th:value="${review.attachSq}" />
 </form>
 <a href="javascript:void(0);" rel="modal:close" onclick="cfCloseLayer('layer_review_best')" class="close-modal">Close</a> 
 <script th:inline="javascript">
@@ -41,7 +41,7 @@
 		params.reviewSq = $('#reviewDetailForm input[name=reviewSq]').val();
 		//params.bestYn =$('#reviewDetailForm input[name=bestYn]').val();
 		params.photoYn = $('#reviewDetailForm input[name=photoYn]').val();
-		params.rvAtcSq = $('#reviewDetailForm input[name=rvAtcSq]').val();
+		params.attachSq = $('#reviewDetailForm input[name=attachSq]').val();
 		gagajf.ajaxSubmit("/mypage/review/detail/list", "json", fnReviewDetailCallback, params);
 	}
 
@@ -50,6 +50,7 @@
 		// 목록
 		if (result.reviewList != null && result.reviewList.length > 0) {
 			let fileGbClass = '';
+			let rdx = $('#reviewDetailForm input[name=attachSq]').val();
 			$.each(result.reviewList, function(idx, review) {
 				let tag = '';
 				tag +='<div class="pop_cont">\n';
@@ -183,20 +184,20 @@
 					let activeClass = '';
 					$.each(review.reviewAttachList, function(aIdx, reviewAttach){
 						activeClass = '';
-						if (aIdx == 0){
+						/* if (aIdx.rvAtcSq == rdx){
 							activeClass = 'active';
-						}
+						} */
 						fileGbClass = '';
 						if (reviewAttach.fileGb == "M") fileGbClass = "mov";
 						if (reviewAttach.fileGb == "M") {
-							tag +='			<li>\n';
+							tag +='			<li id="'+ reviewAttach.rvAtcSq+'">\n';
 							tag +='				<div class="pic '+activeClass+'"> \n'; <!-- 활성화시 active 클래스 추가 -->
 							tag +='							<span class="thumb '+ fileGbClass +'"><iframe width="100%" height="100%" src="'+_kollusMediaUrl +'/'+reviewAttach.kmcKey +'?player_version=html5" frameborder="0" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></span>\n';
 							tag +='				</div>\n';
 							tag +='			</li>\n';
 						}else{
-							tag +='			<li>\n';
-							tag +='				<div class="pic '+activeClass+'"> \n'; <!-- 활성화시 active 클래스 추가 -->
+							tag +='			<li id="'+ reviewAttach.rvAtcSq+'">\n';
+							tag +='				<div class="pic '+activeClass+'" > \n'; <!-- 활성화시 active 클래스 추가 -->
 							tag +='					<span class="thumb" class="'+fileGbClass+'" style="background-image:url('+ _imgUrl + reviewAttach.sysFileNm +');\" >\n';<!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->
 							tag +='					<img src="'+ _imgUrl + reviewAttach.sysFileNm +'" alt="">\n';
 							tag +='					</span>\n';
@@ -228,10 +229,14 @@
 				        $this.find('.thumblist ul').attr('style', 'width:' + thumbListWidth + 'px;');
 				        
 				    }); 
-
+				
+				$("#" + rdx).trigger("click");
 			});
+			
 		}
 		
+	
+		
 	}
 	
 	

+ 7 - 6
src/main/webapp/WEB-INF/views/web/mypage/MypageReviewFormWeb.html

@@ -310,21 +310,22 @@
 					html+='						<div class="photo_box">';
 					html+='							<div class="photo_list">';
 					html+='								<ul>';
-					for (var i = 0; i < attachList.length; i++) {
-						if (attachList[i].reviewSq == item.reviewSq) {
+					/* for (var i = 0; i < attachList.length; i++) { */
+					$.each(attachList, function(aIdx, attachList){
+						if (attachList.reviewSq == item.reviewSq) {
 						html+='									<li>';
 						html+='										<a>';
 						html+='											<div class="pic">';
-						if (attachList[i].fileGb == 'M') {
-							html+='												<span onclick="cfMypageReviewDetail(\''+item.goodsCd+'\', \'Y\',\''+item.reviewSq+'\',\''+attachList[i].rvAtcSq+'\');" class="thumb mov" style="background-image:url(' + _kollusMediaUrl + '/poster/' + attachList[i].kmcKey + '?player_version=html5);"></span>';
+						if (attachList.fileGb == 'M') {
+							html+='												<span onclick="cfMypageReviewDetail(\''+item.goodsCd+'\', \'Y\',\''+item.reviewSq+'\',\''+attachList.rvAtcSq+'\');" class="thumb mov" style="background-image:url(' + _kollusMediaUrl + '/poster/' + attachList.kmcKey + '?player_version=html5);"></span>';
 						}else{
-							html+='												<span onclick="cfMypageReviewDetail(\''+item.goodsCd+'\', \'Y\',\''+item.reviewSq+'\',\''+attachList[i].rvAtcSq+'\');" class="thumb" style="background-image:url(' + _uploadImageUrl + '/' + attachList[i].sysFileNm + ');"></span>';
+							html+='												<span onclick="cfMypageReviewDetail(\''+item.goodsCd+'\', \'Y\',\''+item.reviewSq+'\',\''+attachList.rvAtcSq+'\');" class="thumb" style="background-image:url(' + _uploadImageUrl + '/' + attachList.sysFileNm + ');"></span>';
 						}
 						html+='											</div>';
 						html+='										</a>';
 						html+='									</li>';
 						}
-					}
+					})
 					html+='								</ul>';
 					html+='							</div>';
 					html+='						</div>';

+ 1 - 1
src/main/webapp/WEB-INF/views/web/planning/PlanningEventMainFormWeb.html

@@ -29,7 +29,7 @@
 		<div class="wrap">
 			<div class="content ev_list"> <!-- 페이지특정 클래스 = ev_list -->
 				<div class="cont_head">
-                    <h2 class="displayH t_c">이벤트</h2>
+                    <h2 class="displayH t_c">이벤트/혜택</h2>
 				</div>
 				<div class="cont_body">
 					<div class="ev_mem_rank">

+ 1 - 1
src/main/webapp/biz/goods.js

@@ -114,7 +114,7 @@ var fnCreateGoodsList = function(result, ithrCd, contentLoc, goodsUrl, lastPage,
 			categoryGoodsList.push(item.goodsCd);
 		}
 
-		tag += '<div class="item_prod">';
+		tag += '<div class="item_prod" id="'+item.goodsCd+item.mainColorCd+'">';
 		tag += '	<div class="item_state';
 		if(!gagajf.isNull(item.sizes)){
 			var sizeArr = item.sizes.split(",");