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

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

tsit14 5 лет назад
Родитель
Сommit
c6eb5662d4

+ 56 - 44
src/main/java/com/style24/persistence/mybatis/shop/TsfWishlist.xml

@@ -170,10 +170,10 @@
 	
 	<select id="getQuickWishList" parameterType="WishList" resultType="Goods">
 		/* TsfWishlist.getQuickWishList*/
-		SELECT Z.*
+SELECT Z.*
 		FROM
 		(
-		WITH TAB_PLAN_GOODS AS (
+		WITH TAB_GOODS AS (
 		    SELECT W.AF_LINK_CD 
 		          ,W.CONTENTS_LOC 
 		          ,W.CUST_NO 
@@ -207,7 +207,7 @@
 		    AND    G.SELF_MALL_YN = 'Y'   /*몰노출상품*/
 		    AND    B.USE_YN = 'Y'
 		    AND    BG.USE_YN = 'Y'
-		    AND    W.CUST_NO =  #{custNo}
+		    AND    W.CUST_NO =   #{custNo} /**P*/
 		    AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT
 		    GROUP BY W.AF_LINK_CD 
 		          ,W.CONTENTS_LOC 
@@ -227,62 +227,74 @@
 		         , G.MIN_ORD_QTY                                            /*최소주문수량*/  				
 		)
 		, TAB_GOODS_IMG AS (
-		    SELECT PG.GOODS_CD
+		    SELECT G.GOODS_CD
 		         , MAX(CASE WHEN GI.DEFAULT_IMG_YN = 'Y' THEN GI.SYS_IMG_NM ELSE NULL END)   AS SYS_IMG_NM
-		    FROM   TAB_PLAN_GOODS PG
+		    FROM   TAB_GOODS G
 		         , TB_GOODS_IMG GI
-		    WHERE  PG.GOODS_CD = GI.GOODS_CD
-		    AND    PG.MAIN_COLOR_CD = GI.COLOR_CD
+		    WHERE  G.GOODS_CD = GI.GOODS_CD
+		    AND    G.MAIN_COLOR_CD = GI.COLOR_CD
 		    AND    (GI.DEFAULT_IMG_YN = 'Y' OR GI.MOUSEOVER_IMG_YN = 'Y')
-		    GROUP  BY PG.GOODS_CD
+		    GROUP  BY G.GOODS_CD
 		)
 		, TAB_STOCK AS (
-		   SELECT PG.GOODS_CD
-		         , SUM(case WHEN S.SOLDOUT_YN = 'Y' THEN 0
+		   SELECT G.GOODS_CD
+		         , SUM(CASE WHEN S.SOLDOUT_YN = 'Y' THEN 0
 		                    ELSE S.CURR_STOCK_QTY - S.BASE_STOCK_QTY END ) AS STOCK_QTY_SUM
 		         , MIN(CASE WHEN S.SOLDOUT_YN = 'N' THEN S.OPT_CD ELSE 'XXX' END) AS OPT_CD 
-		    FROM   TAB_PLAN_GOODS PG
+		    FROM   TAB_GOODS G
 		         , VW_STOCK S
-		    WHERE  PG.GOODS_CD = S.GOODS_CD
-		    AND    PG.GOODS_TYPE = 'G056_N'
+		    WHERE  G.GOODS_CD = S.GOODS_CD
+		    AND    G.GOODS_TYPE = 'G056_N'
 		    AND    S.DISP_YN = 'Y' /*노출하는상품만*/
-		    GROUP  BY PG.GOODS_CD
+		    GROUP  BY G.GOODS_CD
 		    UNION ALL 
-		    SELECT PG.GOODS_CD
-		         , SUM(CASE WHEN S.SOLDOUT_YN = 'Y' THEN 0
-		                    ELSE S.CURR_STOCK_QTY - S.BASE_STOCK_QTY END ) AS STOCK_QTY_SUM
-		         , MIN(CASE WHEN S.SOLDOUT_YN = 'N' THEN S.OPT_CD ELSE 'XXX' END) AS OPT_CD 
-		    FROM   TAB_PLAN_GOODS PG
-		         , VW_STOCK_COMPOSE S
-		    WHERE  PG.GOODS_CD = S.GOODS_CD
-		    AND    PG.GOODS_TYPE != 'G056_N'
-		    AND    S.DISP_YN = 'Y' /*노출하는상품만*/
-		    GROUP  BY PG.GOODS_CD		
+		   		    SELECT GOODS_CD
+		         , SUM(CASE WHEN SOLDOUT_YN = 'Y' THEN 0
+		              ELSE CURR_STOCK_QTY END ) AS STOCK_QTY_SUM
+		         , GROUP_CONCAT(DISTINCT OPT_CD) AS OPT_CD
+		    FROM (
+		             SELECT G.GOODS_CD
+		                  , GC.COMPS_GOODS_CD
+		                  , S.OPT_CD
+		                  , S.SOLDOUT_YN
+		                  , S.CURR_STOCK_QTY - S.BASE_STOCK_QTY     AS CURR_STOCK_QTY
+		                  , RANK()
+		                     OVER (PARTITION BY G.GOODS_CD ,GC.COMPS_GOODS_CD ORDER BY S.SOLDOUT_YN, S.CURR_STOCK_QTY DESC , S.OPT_CD) AS NUMB
+		             FROM TAB_GOODS G
+		                , TB_GOODS_COMPOSE GC
+		                , VW_STOCK S
+		             WHERE 1 = 1
+		               AND G.GOODS_CD = GC.GOODS_CD
+		               AND GC.COMPS_GOODS_CD = S.GOODS_CD
+		               AND G.GOODS_TYPE IN ('G056_D','G056_S')
+		               AND S.DISP_YN = 'Y' /*노출하는상품만*/
+		         ) Z
+		    WHERE  NUMB = 1
+		    GROUP BY GOODS_CD
 		  )
 		    SELECT 
-		           PG.BRAND_GROUP_NM
-		         , PG.GOODS_CD
-		         , PG.MIN_ORD_QTY
-		         , PG.GOODS_TYPE
-		         , FN_GET_GOODS_NM(PG.GOODS_NM,PG.GOODS_GB,PG.FOREIGN_BUY_YN,PG.PARALLEL_IMPORT_YN,PG.ORDER_MADE_YN) AS GOODS_FULL_NM /*상품FULL명*/
-		         , PG.GOODS_NM
-		         , PG.GOODS_TNM
-		         , PG.MAIN_COLOR_CD
-		         , PG.LIST_PRICE
-		         , PG.AF_LINK_CD 
-		         , PG.CONTENTS_LOC 
-		         , PG.CUST_NO 
-		         , PG.REG_DT
-		         , FN_GET_BENEFIT_PRICE( 'P' /**P*/,PG.GOODS_CD,PG.CURR_PRICE, 'G100_10' /**P*/)                     AS CURR_PRICE    /*현재판매가*/
+		           G.BRAND_GROUP_NM
+		         , G.GOODS_CD
+		         , G.MIN_ORD_QTY
+		         , G.GOODS_TYPE
+		         , FN_GET_GOODS_NM(G.GOODS_NM,G.GOODS_GB,G.FOREIGN_BUY_YN,G.PARALLEL_IMPORT_YN,G.ORDER_MADE_YN) AS GOODS_FULL_NM /*상품FULL명*/
+		         , G.GOODS_NM
+		         , G.GOODS_TNM
+		         , G.MAIN_COLOR_CD
+		         , G.LIST_PRICE
+		         , G.AF_LINK_CD 
+		         , G.CONTENTS_LOC 
+		         , G.CUST_NO 
+		         , G.REG_DT
+		         , FN_GET_BENEFIT_PRICE( 'P' ,G.GOODS_CD,G.CURR_PRICE, 'G100_10' )                     AS CURR_PRICE    /*현재판매가*/
 		         , GI.SYS_IMG_NM
 		         , S.STOCK_QTY_SUM
 		         , S.OPT_CD 
-		    	FROM   TAB_PLAN_GOODS PG
-		    INNER JOIN TAB_GOODS_IMG GI ON PG.GOODS_CD = GI.GOODS_CD
-		    LEFT OUTER JOIN TAB_STOCK S ON PG.GOODS_CD = S.GOODS_CD
+		         , (SELECT GROUP_CONCAT(COMPS_GOODS_CD)  FROM TB_GOODS_COMPOSE WHERE GOODS_CD = G.GOODS_CD) AS COMPS_GOODS_CD  
+		    	FROM   TAB_GOODS G
+		    INNER JOIN TAB_GOODS_IMG GI ON G.GOODS_CD = GI.GOODS_CD
+		    LEFT OUTER JOIN TAB_STOCK S ON G.GOODS_CD = S.GOODS_CD
 		    )Z
-		ORDER BY Z.STOCK_QTY_SUM ASC,Z.REG_DT DESC
+		    ORDER BY FIELD(Z.STOCK_QTY_SUM, 1, 2 ,3 ,4 ,5) DESC ,Z.REG_DT DESC
 	</select>
-	
-
 </mapper>

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

@@ -450,6 +450,13 @@ var cfnInitLayerPosition = function() {
 $("#daumZipcodePop_close").on("click", function(){
 	$("#daumZipcodePop").hide();
 });
+
+/* 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>
 

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

@@ -17,7 +17,7 @@
 <th:block th:fragment="gnb">
 	<a href="#mainCon" class="skipNav">본문바로가기</a>
 	<header class=""> <!-- 서브페이지에서는 <header>의 클래스.main 제거 -->
-		<section class="htop" id="htopSub">
+		<section class="htop subs" id="htopSub">
 			<button class="btn_back" title="이전페이지로">
 				<span><i class="gl1"></i><i class="gl2"></i><i class="gl3"></i></span>
 			</button>

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

@@ -94,7 +94,7 @@
 													<button type="button" class="itemLike" th:classappend="${goodsData.likeIt == 'likeit'}? 'likeit' : ''"  onclick="cfnPutWishList(this);" th:attr="goodsCd=${goodsData.goodsCd}, ithrCd='', contentsLoc='SBMM007', planDtlSq=''">관심상품 추가</button>
 													<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${goodsData.goodsCd}]], '', '', 'SBMM007');">
 														<div class="itemPic">
-															<img class="vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}">
+															<img class="vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}" onerror="noneImg(this)">
 														</div>
 														<p class="itemBrand" th:text="${goodsData.brandGroupNm}"></p>
 														<div class="itemName" th:text="${goodsData.goodsFullNm}"></div>
@@ -157,7 +157,7 @@
 														<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${goodsData.goodsCd}]], '', '', 'SBMM008');">
 															<div class="shape" th:classappend="${goodsStat.count==1}?'ranker'"><span th:text="${goodsStat.index+1}"></span></div>
 															<div class="itemPic">
-																<img class="vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}">
+																<img class="vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}" onerror="noneImg(this)">
 															</div>
 															<p class="itemBrand" th:text="${goodsData.brandGroupNm}">BRAND NAME</p>
 															<div class="itemName"th:text="${goodsData.goodsFullNm}">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
@@ -239,7 +239,7 @@
 														<button type="button" class="itemLike" th:classappend="${goodsData.likeIt == 'likeit'}? 'likeit' : ''"  onclick="cfnPutWishList(this);" th:attr="goodsCd=${goodsData.goodsCd}, ithrCd='', contentsLoc=${contentsLoc}, planDtlSq=''">관심상품 추가</button>
 														<a href="javascript:void(0);" class="itemLink"  th:onclick="cfnGoToGoodsDetail([[${goodsData.goodsCd}]], '', '', [[${contentsLoc}]]);">
 															<div class="itemPic">
-																<img class="vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}">
+																<img class="vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}" onerror="noneImg(this)">
 															</div>
 															<p class="itemBrand" th:text="${goodsData.brandGroupNm}">BRAND NAME</p>
 															<div class="itemName" th:text="${goodsData.goodsFullNm}">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
@@ -290,7 +290,7 @@
 																	<div class="item_state">
 																		<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${planningGoods.goodsCd}]], '', '', 'SBMM011');">
 																			<div class="itemPic">
-																				<img class="vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + planningGoods.sysImgNm}">
+																				<img class="vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + planningGoods.sysImgNm}" onerror="noneImg(this)">
 																			</div>
 																			<p class="itemBrand" th:text="${planningGoods.brandGroupNm}">BRAND NAME</p>
 																			<div class="itemName" th:text="${planningGoods.goodsNm}">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
@@ -330,7 +330,7 @@
 										<button type="button" class="itemLike" th:classappend="${goodsData.likeIt == 'likeit'}? 'likeit' : ''"  onclick="cfnPutWishList(this);" th:attr="goodsCd=${goodsData.goodsCd}, ithrCd='', contentsLoc='SBMM013', planDtlSq=''">관심상품 추가</button>
 										<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${goodsData.goodsCd}]], '', '', 'SBMM013');">
 											<div class="itemPic">
-												<img class="vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}">
+												<img class="vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}" onerror="noneImg(this)">
 											</div>
 											<p class="itemBrand" th:text="${goodsData.brandGroupNm}">BRAND NAME</p>
 											<div class="itemName" th:text="${goodsData.goodsFullNm}">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
@@ -424,7 +424,7 @@
 		tag += '					<div class="item_state">\n';
 		tag += '						<a href="javascript:void(0);" class="itemLink" onclick="cfnGoToGoodsDetail(\''+obj7+'\',\'\',\'\')">\n';
 		tag += '							<div class="itemPic">\n';
-		tag += '								<img class="vLHTC pd_img" src="'+goodsImgUrl+'/'+obj1+'?RS=260" alt="">\n';
+		tag += '								<img class="vLHTC pd_img" src="'+goodsImgUrl+'/'+obj1+'?RS=260" alt="" onerror="noneImg(this)">\n';
 		tag += '							</div>\n';
 		tag += '							<p class="itemBrand">'+obj2+'</p>\n';
 		tag += '							<div class="itemName">'+obj3+'</div>\n';

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

@@ -1140,7 +1140,7 @@
 			var tag = '';
 
 			tag += '<span>'+cateNm+'</span>\n';
-			tag += '<button class="dp_list_btn_gnbs" title="서브타이틀 메뉴 열기/닫기">\n';
+			tag += '<button class="btn_gnbs" title="서브타이틀 메뉴 열기/닫기">\n';
 			tag += '	<span><i></i></span>\n';
 			tag += '</button>\n';
 
@@ -1174,11 +1174,11 @@
 	<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);
-		}
+		// 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>
 
 

+ 2 - 2
src/main/webapp/WEB-INF/views/mob/display/CategoryMainFormMob.html

@@ -69,7 +69,7 @@
 											<div class="item_state">
 												<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${item.goodsCd}]], '', '', 'SCM001');">
 													<div class="itemPic">
-														<img alt="BLACK-a" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + item.sysImgNm}" >
+														<img alt="BLACK-a" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + item.sysImgNm}" onerror="noneImg(this)">
 														<button type="button" class="itemLike" th:classappend="${item.likeIt == 'likeit'}? 'likeit' : ''"  onclick="cfnPutWishList(this);" th:attr="goodsCd=${item.goodsCd}, ithrCd='', contentsLoc='SCM001', planDtlSq=''">관심상품 추가</button>
 													</div>
 													<p class="itemBrand" th:text="${item.brandGroupNm}">BRAND NAME</p>
@@ -97,7 +97,7 @@
 											<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${item.goodsCd}]], '', '', 'SCM002');">
 												<div class="shape" th:classappend="${status.count==1}?'ranker'"><span th:text="${status.index+1}"></span></div>
 												<div class=" itemPic">
-													<img alt="BLUE-a" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + item.sysImgNm}" >
+													<img alt="BLUE-a" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + item.sysImgNm}" onerror="noneImg(this)">
 													<button type="button" class="itemLike" th:classappend="${item.likeIt == 'likeit'}? 'likeit' : ''"  onclick="cfnPutWishList(this);" th:attr="goodsCd=${item.goodsCd}, ithrCd='', contentsLoc='SCM002', planDtlSq=''">관심상품 추가</button>
 												</div>
 												<p class="itemBrand" th:text="${item.brandGroupNm}">BRAND NAME</p>

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

@@ -166,7 +166,7 @@
 																		<span><em class="number" th:text="${bestItemStat.count}">1</em></span>
 																	</div>
 																	<div class="itemPic">
-																		<img alt="" class=" pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + bestItemData.sysImgNm}">
+																		<img alt="" class=" pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + bestItemData.sysImgNm}" onerror="noneImg(this)">
 																	</div>
 																	<p class="itemBrand" th:text="${bestItemData.brandGroupNm}">TBJ</p>
 																	<div class="itemName" th:text="${bestItemData.goodsFullNm}">11111 남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
@@ -260,7 +260,7 @@
 															<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');">
 																<div class="itemPic">
-																	<img alt="" class=" pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}">
+																	<img alt="" class=" pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}" onerror="noneImg(this)">
 																</div>
 																<p class="itemBrand" th:text="${goodsData.brandEnm}">TBJ</p>
 																<div class="itemName" th:text="${goodsData.goodsNm}">11111 남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
@@ -328,7 +328,7 @@
 														<div class="item_state">
 															<a href="javascript:void(0)" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${goodsData.goodsCd}]], '', '', 'SMM007');">
 																<div class="itemPic">
-																	<img alt="" class=" pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}">
+																	<img alt="" class=" pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}" onerror="noneImg(this)">
 																</div>
 																<div class="itemName" th:text="${goodsData.goodsFullNm}">11111 남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
 																<p class="itemPrice" th:text="${#numbers.formatInteger(goodsData.currPrice,1,'COMMA')}">35,900</p>
@@ -415,7 +415,7 @@
 																	<button type="button" class="itemLike" th:classappend="${goodsData.likeIt == 'likeit'}? 'likeit' : ''"  onclick="cfnPutWishList(this);" th:attr="goodsCd=${goodsData.goodsCd}, ithrCd='', contentsLoc='SMM009', planDtlSq=''">관심상품 추가</button>
 																	<a href="javascript:void(0)" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${goodsData.goodsCd}]], '', '', 'SMM009');">
 																		<div class="itemPic">
-																			<img alt="" class=" pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}">
+																			<img alt="" class=" pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}" onerror="noneImg(this)">
 																		</div>
 																		<p class="itemBrand" th:text="${goodsData.brandGroupNm}">TBJ</p>
 																		<div class="itemName" th:text="${goodsData.goodsFullNm}">11111 남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>

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

@@ -40,7 +40,7 @@
 							<!-- 굿즈_리뷰 -->
 							<div class="goods_section">
 								<div class="goods_detail">
-									<a href="">
+									<a th:onclick="cfnGoToGoodsDetail([[${ reviewInfo.goodsCd}]])" >
 										<div class="thumb_box">
 											<img th:src="${imageUrl + '/' + reviewInfo.sysImgNm}" alt="tmp_pdClickother1">
 										</div>
@@ -252,7 +252,7 @@
 												</th>
 												<td>
 													<div class="textarea_wrap">
-													<textarea class="doc_review" name="reviewContent" id="reviewContent" cols="30" rows="10"></textarea>
+													<textarea class="doc_review" name="reviewContent" id="reviewContent" cols="30" rows="10" maxlength="500"></textarea>
 													<p class="txt_cnt"><span id="review_cnt" class="c_primary">0</span>/500</p>
 													</div>
 												</td>
@@ -676,6 +676,18 @@ function handleOnInput(el, maxlength) {
 		}
 	}
 </script>
+<script>
+	//210524_ 추가 : textarea focus시 outline 색상 넣는 스크립트
+	$(function() {
+		$('.doc_review').focus(function(){
+			$(this).parent('.textarea_wrap').css('outline', '1px auto rgb(229, 151, 0)');
+		})
+		$('.doc_review').blur(function(){
+			$(this).parent('.textarea_wrap').css('outline', 'none');
+		})
+	});
+</script>
+	
 </th:block>
 
 </body>

+ 51 - 1
src/main/webapp/WEB-INF/views/web/common/fragments/FooterWeb.html

@@ -1198,7 +1198,14 @@
 								tag += '			</a>';	
 								tag += '			<div class="hover_con">';
 								if (item.stockQtySum>0) {
-									tag += '			<button type="button" class="btn btn_sm cart_btn on" afLinkCd="'+item.afLinkCd+'" goodsCd="'+item.goodsCd+'" optCd="'+item.optCd+'" minOrdQty="'+item.minOrdQty+'" goodsType="'+item.goodsType+'" contentsLoc="'+item.contentLoc+'" onclick="wishCardAdd(this)"><span>쇼핑백 담기</span></button>';
+									if (item.goodsType == 'G056_N') {
+										tag += '			<button type="button" class="btn btn_sm cart_btn on" afLinkCd="'+item.afLinkCd+'" goodsCd="'+item.goodsCd+'" optCd="'+item.optCd+'" minOrdQty="'+item.minOrdQty+'" goodsType="'+item.goodsType+'" contentsLoc="'+item.contentLoc+'" onclick="wishCardAdd(this)"><span>쇼핑백 담기</span></button>';
+									}else if(item.goodsType == 'G056_D'){ // 딜상품
+										tag += '			<button type="button" class="btn btn_sm cart_btn on" onclick="wishDealGoods()"><span>쇼핑백 담기</span></button>';
+									}else{
+										tag += '			<button type="button" class="btn btn_sm cart_btn on" afLinkCd="'+item.afLinkCd+'" compsGoodsCd=\''+item.compsGoodsCd+'\' goodsCd="'+item.goodsCd+'" optCd="'+item.optCd+'" minOrdQty="'+item.minOrdQty+'" goodsType="'+item.goodsType+'" contentsLoc="'+item.contentLoc+'" onclick="wishCardSetAdd(this)"><span>쇼핑백 담기</span></button>';
+									}
+									
 								}
 								tag += '			</div>';	    
 								tag += '		</div>';	    
@@ -1221,6 +1228,12 @@
 			});
 	}
 	
+	// 딜상품일 경우 alert
+	var wishDealGoods = function() {
+		mcxDialog.alert("해당 상품은 옵션 선택 후 쇼핑백 담기가 가능합니다.");
+		return;
+	}
+	
 	// 위시리스트 해제
 	let fnWishDelete = function(obj) {
 		cfnPutWishList(obj);
@@ -1250,6 +1263,36 @@
 		}
 	}
 	
+	var wishCardSetAdd = function (obj) {
+		let cartGoodsList = [];
+		var optCdArr = $(obj).attr("optCd").split(",");
+		var compsGoodsCdArr = $(obj).attr("compsGoodsCd").split(",");
+
+		let compsList = [];
+		let goodsList = {
+		cartCompsList : new Array()
+		}
+
+		for(let j = 0 ; j <  optCdArr.length ; j++) { 
+			let temp = new Object;
+			temp.goodsCd = $(obj).attr("goodsCd");
+			temp.optCd = optCdArr[j];
+			temp.goodsQty = $(obj).attr("minOrdQty");
+			temp.goodsType = "G056_S";
+			temp.itemCd =  compsGoodsCdArr[j];
+			temp.cartGb = "C";
+			temp.afLinkCd = $(obj).attr("afLinkCd");
+			temp.ithrCd = "";
+			temp.contentsLoc = "";
+			temp.planDtlSq = "";
+			compsList.push(temp);
+		}  
+
+		goodsList.cartCompsList = compsList;
+		cartGoodsList.push(goodsList);
+		cfnAddCart(cartGoodsList);
+	}
+	
 	// 쿠폰리스트
 	let issueCouponBtn = function() {
 		if (!cfCheckLogin()) {
@@ -1726,6 +1769,13 @@ var cfnInitLayerPosition = function() {
 $("#daumZipcodePop_close").on("click", function(){
 	$("#daumZipcodePop").hide();
 });
+
+/* 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>
 

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

@@ -105,7 +105,7 @@
 													<button type="button" class="itemLike" th:classappend="${goodsData.likeIt == 'likeit'}? 'likeit' : ''"  onclick="cfnPutWishList(this);" th:attr="goodsCd=${goodsData.goodsCd}, ithrCd='', contentsLoc='SBM007', planDtlSq=''">관심상품 추가</button>
 													<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${goodsData.goodsCd}]], '', '', 'SBM007');">
 														<div class=" itemPic">
-															<img alt="BLUE-a" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}">
+															<img alt="BLUE-a" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}" onerror="noneImg(this)">
 														</div>
 														<p class="itemBrand" th:text="${goodsData.brandGroupNm}"></p>
 														<div class=" itemName" th:text="${goodsData.goodsFullNm}"></div>
@@ -176,7 +176,7 @@
 													<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${goodsData.goodsCd}]], '', '', 'SBM008');">
 														<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}">
+															<img alt="BLACK-a" class="vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}" onerror="noneImg(this)">
 														</div>
 														<p class="itemBrand" th:text="${goodsData.brandGroupNm}"></p>
 														<div class="itemName" th:text="${goodsData.goodsFullNm}"></div>
@@ -251,7 +251,7 @@
 											<div class="item_state">
 												<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${goodsData.goodsCd}]], '', '', 'SBM009');">
 													<div class="itemPic">
-														<img alt="BLACK-a" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}">
+														<img alt="BLACK-a" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}" onerror="noneImg(this)">
 														<button type="button" class="itemLike" th:classappend="${goodsData.likeIt == 'likeit'}? 'likeit' : ''"  onclick="cfnPutWishList(this);" th:attr="goodsCd=${goodsData.goodsCd}, ithrCd='', contentsLoc=${contentsLoc}, planDtlSq=''">관심상품 추가</button>
 													</div>
 													<p class=" itemBrand" th:text="${goodsData.brandGroupNm}">BRAND NAME</p>
@@ -315,7 +315,7 @@
 																<div class="item_state">
 																	<a href="javascript:void(0);" class=" itemLink" th:onclick="cfnGoToGoodsDetail([[${planningGoods.goodsCd}]], '', '', 'SBM011');">
 																		<div class="itemPic">
-																			<img alt="BLACK-a" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + planningGoods.sysImgNm}">
+																			<img alt="BLACK-a" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + planningGoods.sysImgNm}" onerror="noneImg(this)">
 																		</div>
 																		<div class="itemName" th:text="${planningGoods.goodsNm}">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
 																		<p class="itemPrice">[[${#numbers.formatInteger(planningGoods.currPrice,0,'COMMA')} + 원]]
@@ -352,7 +352,7 @@
 											<button type="button" class="itemLike" th:classappend="${goodsData.likeIt == 'likeit'}? 'likeit' : ''"  onclick="cfnPutWishList(this);" th:attr="goodsCd=${goodsData.goodsCd}, ithrCd='', contentsLoc='SBM013', planDtlSq=''">관심상품 추가</button>
 											<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${goodsData.goodsCd}]], '', '', 'SBM013');">
 												<div class="itemPic">
-													<img alt="BLACK-a" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}">
+													<img alt="BLACK-a" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}" onerror="noneImg(this)">
 												</div>
 												<p class=" itemBrand" th:text="${goodsData.brandGroupNm}"></p>
 												<div class="itemName" th:text="${goodsData.goodsFullNm}"></div>
@@ -467,7 +467,7 @@ var fnGoodsPopup = function(obj1,obj2,obj3,obj4,obj5,obj6,obj7){
 	tag += '						<div class="item_state">\n';
 	tag += '							<div class="itemLink">\n';
 	tag += '								<div class="itemPic">\n';
-	tag += '									<img alt="BLACK-a" class=" vLHTC pd_img" src="'+goodsImgUrl+'/'+obj1+'?RS=260" onerror="this.src=\'/images/pc/thumb/bg_item_none.png\'">\n';
+	tag += '									<img alt="BLACK-a" class=" vLHTC pd_img" src="'+goodsImgUrl+'/'+obj1+'?RS=260"  onerror="noneImg(this)">\n'; //onerror="this.src='/images/pc/thumb/bg_item_none.png'"
 	tag += '								</div>\n';
 	tag += '								<p class="itemBrand">'+obj2+'</p>\n';
 	tag += '								<div class="itemName">'+obj3+'</div>\n';

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

@@ -1171,11 +1171,11 @@
 	<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);
-		}
+		// 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>
 	
 

+ 2 - 2
src/main/webapp/WEB-INF/views/web/display/CategoryMainFormWeb.html

@@ -94,7 +94,7 @@
 											<button type="button" class="itemLike" th:classappend="${item.likeIt == 'likeit'}? 'likeit' : ''"  onclick="cfnPutWishList(this);" th:attr="goodsCd=${item.goodsCd}, ithrCd='', contentsLoc='SCM001', planDtlSq=''">관심상품 추가</button>
 											<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${item.goodsCd}]], '', '', 'SCM001');">
 												<div class=" itemPic">
-													<img class="vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + item.sysImgNm}" th:alt="${item.goodsCd}"/>
+													<img class="vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + item.sysImgNm}" th:alt="${item.goodsCd}" onerror="noneImg(this)"/>
 												</div>
 												<p class="itemBrand" th:text="${item.brandGroupNm}">BRAND NAME</p>
 												<div class="itemName" th:text="${item.goodsFullNm}">스타 착용 여성 퍼 아플리케 오버핏 투마일 웨어링 점퍼</div>
@@ -127,7 +127,7 @@
 										<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${item.goodsCd}]], '', '', 'SCM002');">
 											<div class="rank" th:classappend="${status.count==1}?'ranker'"><span th:text="${status.index+1}">1</span></div>
 											<div class="itemPic">
-												<img class="vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + item.sysImgNm}" th:alt="${item.goodsCd}"/>
+												<img class="vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + item.sysImgNm}" th:alt="${item.goodsCd}" onerror="noneImg(this)"/>
 											</div>
 											<p class="itemBrand" th:text="${item.brandGroupNm}">BRAND NAME</p>
 											<div class="itemName" th:text="${item.goodsFullNm}">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>

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

@@ -121,7 +121,7 @@
 													<button type="button" class="itemLike" th:classappend="${goodsData.likeIt == 'likeit'}? 'likeit' : ''"  onclick="cfnPutWishList(this);" th:attr="goodsCd=${goodsData.goodsCd}, ithrCd='', contentsLoc='SMM003', planDtlSq=''">관심상품 추가</button>
 													<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${goodsData.goodsCd}]], '', '', 'SMM003');">
 														<div class=" itemPic">
-															<img alt="BLUE-a" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}">
+															<img alt="BLUE-a" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}" onerror="noneImg(this)">
 														</div>
 														<p class="itemBrand" th:text="${goodsData.brandGroupNm}">BRAND NAME</p>
 														<div class=" itemName" th:text="${goodsData.goodsFullNm}">스타 착용 여성 퍼 아플리케 오버핏 투마일 웨어링 점퍼</div>
@@ -171,7 +171,7 @@
 														<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${bestItemData.goodsCd}]], '', '', 'SMM004');">
 															<div class="shape" th:classappend="${bestItemStat.count==1}?'ranker'"><span th:text="${bestItemStat.count}"></span></div>
 															<div class="itemPic">
-																<img alt="BLACK-a" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + bestItemData.sysImgNm}" >
+																<img alt="BLACK-a" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + bestItemData.sysImgNm}" onerror="noneImg(this)">
 															</div>
 															<p class=" itemBrand" th:text="${bestItemData.brandGroupNm}">BRAND NAME</p>
 															<div class=" itemName" th:text="${bestItemData.goodsFullNm}">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
@@ -324,7 +324,7 @@
 														<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');">
 															<div class="itemPic">
-																<img alt="" class="pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}">
+																<img alt="" class="pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}" onerror="noneImg(this)">
 															</div>
 															<p class="itemBrand" th:text="${goodsData.brandGroupNm}">BRAND NAME</p>
 															<div class="itemName" th:text="${goodsData.goodsNm}">여성 체인 프린트 큐롯 스커트 프린트 큐롯 스커트</div>
@@ -403,7 +403,7 @@
 															<button type="button" class="itemLike" tabindex="0" th:classappend="${goodsData.likeIt == 'likeit'}? 'likeit' : ''"  onclick="cfnPutWishList(this);" th:attr="goodsCd=${goodsData.goodsCd}, ithrCd='', contentsLoc='SMM007', planDtlSq=''">관심상품 추가</button>
 															<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${goodsData.goodsCd}]], '', '', 'SMM007');">
 																<div class="itemPic">
-																	<img alt="BLACK-a" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}">
+																	<img alt="BLACK-a" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}" onerror="noneImg(this)">
 																</div>
 																<div class=" itemName" th:text="${goodsData.goodsFullNm}">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
 																<p class="itemPrice" th:text="${#numbers.formatInteger(goodsData.currPrice,1,'COMMA')}">80,100
@@ -492,7 +492,7 @@
 																	<button type="button" class="itemLike" tabindex="0" th:classappend="${goodsData.likeIt == 'likeit'}? 'likeit' : ''"  onclick="cfnPutWishList(this);" th:attr="goodsCd=${goodsData.goodsCd}, ithrCd='', contentsLoc='SMM009', planDtlSq=''">관심상품 추가</button>
 																	<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${goodsData.goodsCd}]], '', '', 'SMM009');">
 																		<div class="itemPic">
-																			<img alt="" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}">
+																			<img alt="" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}" onerror="noneImg(this)">
 																		</div>
 																		<p class="itemBrand" th:text="${goodsData.brandGroupNm}">BRAND NAME</p>
 																		<div class=" itemName" th:text="${goodsData.goodsFullNm}">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>

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

@@ -58,7 +58,7 @@
 											<div class="order_desc">
 												<div class="goods_box">
 													<div class="gd_item">	
-														<a href="">
+														<a th:onclick="cfnGoToGoodsDetail([[${ reviewInfo.goodsCd}]])" >
 															<span class="thumb">
 																<img th:src="${imageUrl + '/' + reviewInfo.sysImgNm +'?RS=550'}" width="100%" alt="">
 															</span>