Преглед изворни кода

Merge branch 'develop' into jsshin

jsshin пре 5 година
родитељ
комит
ba1716c4cd
25 измењених фајлова са 743 додато и 339 уклоњено
  1. 9 0
      src/main/java/com/style24/front/biz/dao/TsfReviewDao.java
  2. 47 2
      src/main/java/com/style24/front/biz/service/TsfReviewService.java
  3. 7 0
      src/main/java/com/style24/persistence/domain/GoodsSearch.java
  4. 6 0
      src/main/java/com/style24/persistence/domain/ReviewAttach.java
  5. 77 4
      src/main/java/com/style24/persistence/mybatis/shop/TsfDisplay.xml
  6. 3 3
      src/main/java/com/style24/persistence/mybatis/shop/TsfPoint.xml
  7. 119 113
      src/main/java/com/style24/persistence/mybatis/shop/TsfReview.xml
  8. 2 2
      src/main/webapp/WEB-INF/views/mob/goods/GoodsIncludeFormMob.html
  9. 11 8
      src/main/webapp/WEB-INF/views/web/common/fragments/FooterWeb.html
  10. 3 3
      src/main/webapp/WEB-INF/views/web/common/fragments/GnbWeb.html
  11. 123 37
      src/main/webapp/WEB-INF/views/web/display/CategoryGoodsListFormWeb.html
  12. 83 38
      src/main/webapp/WEB-INF/views/web/goods/GoodsDealDetailFormWeb.html
  13. 6 6
      src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html
  14. 15 7
      src/main/webapp/WEB-INF/views/web/goods/GoodsDetailQnaFormWeb.html
  15. 20 5
      src/main/webapp/WEB-INF/views/web/goods/GoodsDetailReviewFormWeb.html
  16. 21 20
      src/main/webapp/WEB-INF/views/web/goods/GoodsIncludeFormWeb.html
  17. 5 1
      src/main/webapp/WEB-INF/views/web/goods/GoodsQnaDetailFormWeb.html
  18. 2 2
      src/main/webapp/WEB-INF/views/web/mypage/MypageGiftcardFormWeb.html
  19. 5 5
      src/main/webapp/WEB-INF/views/web/mypage/MypagePointFormWeb.html
  20. 4 4
      src/main/webapp/WEB-INF/views/web/mypage/MypageReviewCreateFormWeb.html
  21. 18 19
      src/main/webapp/WEB-INF/views/web/mypage/MypageReviewFormWeb.html
  22. 61 59
      src/main/webapp/WEB-INF/views/web/mypage/MypageWishListFormWeb.html
  23. 6 0
      src/main/webapp/WEB-INF/views/web/planning/PlanningEventPollFormWeb.html
  24. 89 0
      src/main/webapp/biz/goods.js
  25. 1 1
      src/main/webapp/ux/style24_link.js

+ 9 - 0
src/main/java/com/style24/front/biz/dao/TsfReviewDao.java

@@ -178,6 +178,15 @@ public interface TsfReviewDao {
 	 */
 	void reviewCustomerConfirm(Review review);
 	
+	/**
+	 * 마이페이지 이미지/동영상등록
+	 * @param review
+	 * @return 
+	 * @author sowon
+	 * @since 2021. 4. 26
+	 */
+	void saveReviewAttach(ReviewAttach reviewAttach);
+	
 	
 	
 	

+ 47 - 2
src/main/java/com/style24/front/biz/service/TsfReviewService.java

@@ -1,16 +1,23 @@
 package com.style24.front.biz.service;
 
+import java.io.File;
 import java.util.ArrayList;
 import java.util.Collection;
 
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import com.gagaframework.web.util.GagaDateUtil;
+import com.gagaframework.web.util.GagaFileUtil;
 import com.style24.front.biz.dao.TsfReviewDao;
 import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.domain.Goods;
+import com.style24.persistence.domain.Plan;
 import com.style24.persistence.domain.Review;
+import com.style24.persistence.domain.ReviewAttach;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -26,6 +33,9 @@ public class TsfReviewService {
 
 	@Autowired
 	private TsfReviewDao reviewDao;
+	
+	@Autowired
+	private Environment env;
 
 	/**
 	 * 상품 리뷰 목록 건수
@@ -152,9 +162,44 @@ public class TsfReviewService {
 		review.setDispYn("Y");
 		review.setDelYn("N");
 		review.setRegNo(TsfSession.getInfo().getCustNo());
-		review.setUpdNo(TsfSession.getInfo().getCustNo());
-		
+		review.setUpdNo(TsfSession.getInfo().getCustNo());		
 		reviewDao.saveMypageReview(review);
+		
+		//이미지등록
+		ReviewAttach fileReview = new ReviewAttach();
+		if(!StringUtils.isAllEmpty(review.getOrgFileNmArr())) {
+			fileReview.setRegNo(TsfSession.getInfo().getCustNo());
+			fileReview.setUpdNo(TsfSession.getInfo().getCustNo());
+			fileReview.setReviewSq(review.getReviewSq());
+			fileReview.setFileGb("I");
+			fileReview.setDelYn("N");
+			//파일아이템 등록
+			String[] fileItemVal1 = review.getOrgFileNmArr();
+			int ind = 1;
+			for (int j = 0; j < fileItemVal1.length; j++) {
+				String imgInd = String.valueOf(ind);
+				if (ind < 10) {
+					imgInd = "0" + imgInd;
+				}
+				String planUploadPath = env.getProperty("upload.default.target.path");
+				String yearMonth = GagaDateUtil.getToday().substring(0, 6);
+				planUploadPath = GagaFileUtil.getConcatenationPath(planUploadPath, "/review");
+				File newFile = new File(GagaFileUtil.getConcatenationPath(planUploadPath, fileItemVal1[j]));
+				planUploadPath = GagaFileUtil.getConcatenationPath(planUploadPath, yearMonth);
+				String newFilename = "REVIEW_" + GagaDateUtil.getTodayDateTime() + "_" + imgInd + "." + org.springframework.util.StringUtils.getFilenameExtension(fileItemVal1[j]);
+				File uniqueFile = GagaFileUtil.getUniqueFile(new File(GagaFileUtil.getConcatenationPath(planUploadPath, newFilename)));
+				// Rename a file
+				File path = new File(planUploadPath);
+				if (!path.exists()) {
+					path.mkdir();
+				}
+				newFile.renameTo(uniqueFile);
+				fileReview.setOrgFileNm("/review/" + yearMonth + "/" + newFilename);
+				fileReview.setSysFileNm("/review/" + yearMonth + "/" + newFilename);
+				reviewDao.saveReviewAttach(fileReview);
+				ind++;
+			}
+		}
 	}
 	
 	/**

+ 7 - 0
src/main/java/com/style24/persistence/domain/GoodsSearch.java

@@ -59,6 +59,13 @@ public class GoodsSearch extends TscBaseDomain {
     private String  filterCd;
     private String  filterNm;
 
+    private String priceHigh;
+    private String priceRow;
+    private String dcrateHigh;
+    private String dcrateRow;
+    private String sexGb;
+    private String newProd;
+
     private TscPageRequest pageable;				// 페이징
     private int pageNo = 1;
     private int pageSize = 50;

+ 6 - 0
src/main/java/com/style24/persistence/domain/ReviewAttach.java

@@ -1,5 +1,6 @@
 package com.style24.persistence.domain;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.style24.persistence.TscBaseDomain;
 
 import lombok.Data;
@@ -23,5 +24,10 @@ public class ReviewAttach extends TscBaseDomain {
 	private String kufKey;		// Kollus업로드파일키
 	private String kmcKey;		// Kollus미디어컨텐츠키
 	private String delYn;		// 삭제여부
+	
+	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
+	private String[] orgFileNmArr;
+	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
+	private String[] sysFileNmArr;
 
 }

+ 77 - 4
src/main/java/com/style24/persistence/mybatis/shop/TsfDisplay.xml

@@ -83,7 +83,7 @@
 		    </when>
 		    <otherwise>
 		     , GTAB_SQ                                            /*GNB탭일련번호*/
-		     , CASE WHEN CONTENTS_TYPE = 'C' THEN (SELECT CONTENTS_TITLE FROM	TB_MAIN_LAYOUT WHERE CONTENTS_LOC = 'STAB003') ELSE '' END AS GTAB_BANNER_TITLE
+		     , CASE WHEN CONTENTS_TYPE = 'C' OR CONTENTS_TYPE = 'O' THEN (SELECT CONTENTS_TITLE FROM	TB_MAIN_LAYOUT WHERE CONTENTS_LOC = 'STAB003') ELSE '' END AS GTAB_BANNER_TITLE
 		FROM   TB_GNB_TAB A
 		    </otherwise>
 		</choose>
@@ -757,6 +757,27 @@
 		           AND    S.STOCK_QTY > 0 /*재고있는 상품*/
 		           AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
 		           AND    BG.USE_YN = 'Y' /*사용하는 브랜드그룹*/
+		           <if test="priceHigh != null and priceHigh != ''">
+		           AND    G.CURR_PRICE <![CDATA[<=]]> #{priceHigh}
+		           </if>
+		           <if test="priceRow != null and priceRow != ''">
+		           AND    G.CURR_PRICE <![CDATA[>=]]> #{priceRow}
+		           </if>
+		           <if test="dcrateHigh != null and dcrateHigh != ''">
+		           AND    G.DC_RATE <![CDATA[<=]]> #{dcrateHigh}
+		           </if>
+		           <if test="dcrateRow != null and dcrateRow != ''">
+		           AND    G.DC_RATE <![CDATA[>=]]> #{dcrateRow}
+		           </if>
+		           <if test="sexGb != null and sexGb != ''">
+		           AND    G.SEX_GB = #{sexGb}
+		           </if>
+		           <if test="newProd != null and newProd != ''">
+		           AND    EXISTS ( SELECT 1 FROM TB_GOODS_BENEFIT
+		                           WHERE GOODS_CD = G.GOODS_CD
+		                           AND BENEFIT_GB IN (#{newProd}) )
+		           </if>
+		           <include refid="getCategoryGoodsList_sql"/>
 		) G
 		WHERE  1 = 1
 		)
@@ -908,6 +929,28 @@
 		                    AND    S.STOCK_QTY > 0 /*재고있는 상품*/
 		                    AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
 		                    AND    BG.USE_YN = 'Y' /*사용하는 브랜드그룹*/
+		                <if test="priceHigh != null and priceHigh != ''">
+		                    AND    G.CURR_PRICE <![CDATA[<=]]> #{priceHigh}
+		                </if>
+		                <if test="priceRow != null and priceRow != ''">
+		                    AND    G.CURR_PRICE <![CDATA[>=]]> #{priceRow}
+		                </if>
+		                <if test="dcrateHigh != null and dcrateHigh != ''">
+		                    AND    G.DC_RATE <![CDATA[<=]]> #{dcrateHigh}
+		                </if>
+		                <if test="dcrateRow != null and dcrateRow != ''">
+		                    AND    G.DC_RATE <![CDATA[>=]]> #{dcrateRow}
+		                </if>
+		                <if test="sexGb != null and sexGb != ''">
+		                    AND    G.SEX_GB = #{sexGb}
+		                </if>
+		                <if test="newProd != null and newProd != ''">
+		                    AND    EXISTS ( SELECT 1 FROM TB_GOODS_BENEFIT
+		                                    WHERE GOODS_CD = G.GOODS_CD
+		                                    AND BENEFIT_GB IN (#{newProd})
+		                        )
+		                </if>
+		                <include refid="getCategoryGoodsList_sql"/>
 		                ) G
 		          WHERE  1 = 1
 		)
@@ -941,9 +984,24 @@
 		                 , G.REG_DT             /*등록일시*/
 		                 , G.SELL_WEEK_QTY
 		                 , G.REVIEW_REG_CNT
-		                 , RANK() OVER(ORDER BY G.FORMAL_GB
-		                 , G.REG_DT DESC
-		                 , G.GOODS_CD) AS NUMB
+		                 <choose>
+		                    <when test="sortGb != null and sortGb !=''">
+		                        <choose>
+		                           <when test="sortGb == 'new'">
+		                 , RANK() OVER(ORDER BY G.FORMAL_GB , G.REG_DT DESC , G.GOODS_CD) AS NUMB
+		                           </when>
+		                           <when test="sortGb == 'best'">
+		                 , RANK() OVER(ORDER BY G.FORMAL_GB , G.SELL_WEEK_QTY DESC , G.REG_DT DESC, G.GOODS_CD) AS NUMB
+		                           </when>
+		                           <when test="sortGb == 'review'">
+		                 , RANK() OVER(ORDER BY G.FORMAL_GB , G.REVIEW_REG_CNT DESC , G.REG_DT DESC, G.GOODS_CD) AS NUMB
+		                           </when>
+		                        </choose>
+		                    </when>
+		                    <otherwise>
+		                 , RANK() OVER(ORDER BY G.FORMAL_GB , G.REG_DT DESC , G.GOODS_CD) AS NUMB
+		                    </otherwise>
+		                 </choose>
 		                 FROM TAB_GOODS G
 		                 LEFT OUTER JOIN TAB_OPTION O ON G.GOODS_CD = O.GOODS_CD
 		        ) ORIGINAL
@@ -1131,6 +1189,21 @@
 		             AND O.GOODS_CD = G.GOODS_CD
 		     )
 		</if>
+		<if test='seasonSearch != null and seasonSearch.length > 0'>
+		     AND G.SEASON_CD IN
+		    <foreach collection="seasonSearch" item="item" index="index"  open="(" close=")" separator=",">
+		         #{item}
+		    </foreach>
+		</if>
+		<if test='benefitSearch != null and benefitSearch.length > 0'>
+			AND EXISTS ( SELECT 1 FROM TB_GOODS_BENEFIT
+			WHERE GOODS_CD = G.GOODS_CD
+			AND BENEFIT_GB IN
+			<foreach collection="benefitSearch" item="item" index="index" open="(" close=")" separator=",">
+				#{item}
+			</foreach>
+			)
+		</if>
 	</sql>
 
 	<!-- 카테고리별 상품 총 리스트 -->

+ 3 - 3
src/main/java/com/style24/persistence/mybatis/shop/TsfPoint.xml

@@ -48,14 +48,14 @@
 	<select id="getAccumulatePointList" parameterType="Point" resultType="Point">
 	/* TsfPoint.getAccumulatePointList */
 		SELECT CASE TCHP.OCCUR_GB
-		            WHEN 'G069_12' THEN '상품구매'
+		            WHEN 'G069_12' THEN '상품 구매'
 		            WHEN 'G069_20' THEN '리뷰'
 		            WHEN 'G069_30' THEN '이벤트'
 		            WHEN 'G069_31' THEN '회원가입'
 		            WHEN 'G069_32' THEN '생일축하'
 		            WHEN 'G069_35' THEN 'APP다운'
 		            WHEN 'G069_36' THEN '사은품구매'
-		            WHEN 'G069_37' THEN '출석체크'
+		            WHEN 'G069_37' THEN '이벤트'
 		            WHEN 'G069_90' THEN '관리자'
 		       END                                          AS OCCUR_GB
 		     , CASE TCHP.OCCUR_GB
@@ -150,7 +150,7 @@
 		WHEN   'G069_32' THEN '생일축하'
 		WHEN   'G069_35' THEN 'APP다운'
 		WHEN   'G069_36' THEN '사은품구매'
-		WHEN   'G069_37' THEN '출석체크'
+		WHEN   'G069_37' THEN '이벤트'
 		WHEN   'G069_40' THEN '구매 사용'
 		WHEN   'G069_42' THEN '사은품'
 		WHEN   'G069_90' THEN '관리자'

+ 119 - 113
src/main/java/com/style24/persistence/mybatis/shop/TsfReview.xml

@@ -117,16 +117,22 @@
 		     , R.HEIGHT
 		     , R.WEIGHT
 		     , R.SCORE_SIZE
+		     -- , CAST(R.SCORE_SIZE AS UNSIGNED) AS SCORE_SIZE
 		     , FN_GET_CODE_NM('G040',R.SCORE_SIZE) AS SCORE_SIZE_NM
 		     , R.SCORE_COLOR
+		     -- , CAST(R.SCORE_COLOR AS UNSIGNED) AS SCORE_COLOR
 		     , FN_GET_CODE_NM('G039',R.SCORE_COLOR) AS SCORE_COLOR_NM
 		     , R.SCORE_FIT
+		     -- , CAST(IFNULL(NULLIF(R.SCORE_FIT,'') , 0) AS UNSIGNED) AS SCORE_FIT
 		     , FN_GET_CODE_NM('G042',R.SCORE_FIT) AS SCORE_FIT_NM
 		     , R.SCORE_THICK
+		     -- ,  CAST(IFNULL(NULLIF(R.SCORE_THICK,'') , 0) AS UNSIGNED) AS SCORE_THICK
 		     , FN_GET_CODE_NM('G079',R.SCORE_THICK) AS SCORE_THICK_NM
 		     , R.SCORE_WEIGHT
+		     -- ,  CAST(IFNULL(NULLIF(R.SCORE_WEIGHT,'') , 0) AS UNSIGNED) AS SCORE_WEIGHT
 		     , FN_GET_CODE_NM('G080',R.SCORE_WEIGHT) AS SCORE_WEIGHT_NM
 		     , R.SCORE_BALL
+		     -- ,  CAST(IFNULL(NULLIF(R.SCORE_BALL,'') , 0) AS UNSIGNED) AS SCORE_BALL
 		     , FN_GET_CODE_NM('G041',R.SCORE_BALL) AS SCORE_BALL_NM
 		     , R.GIVE_DUE_PNT
 		     , R.PNT_GIVE_STAT
@@ -830,120 +836,120 @@
 		/* TsfReivew.getAlreadyReviewList */
 		<include refid="selectForPagingHeader"/>
 		SELECT F.*
-			  , (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG  WHERE GOODS_CD = F.GOODS_CD AND COLOR_CD = F.MAIN_COLOR_CD AND DEFAULT_IMG_YN = 'Y' ) AS SYS_IMG_NM
+		      , (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG  WHERE GOODS_CD = F.GOODS_CD AND COLOR_CD = F.MAIN_COLOR_CD AND DEFAULT_IMG_YN = 'Y' ) AS SYS_IMG_NM
 		FROM
 		(
-			SELECT O.ORD_NO 
-			      ,O.ORD_NM
-			      ,DATE_FORMAT(O.PAY_DT, '%Y-%m-%d') AS PAY_DT 
-			      ,O.CUST_NO 
-			      ,OD.ORD_DTL_NO
-			      ,OD.ORD_EXCH_GB 
-			      ,OD.GOODS_CD 
-			      ,OD.REAL_ORD_AMT 
-			      ,OD.SAVE_PNT_AMT 
-			      ,OD.GFCD_USE_AMT 
-			      ,ODI.ORD_DTL_ITEM_SQ 
-			      ,ODI.ITEM_CD 
-			      ,ODI.OPT_CD 
-			      ,ODI.OPT_CD1
-			      ,ODI.OPT_CD2
-			      ,IFNULL(C.COLOR_KNM, ODI.OPT_CD1) AS OPT_CD1_NM
-			      ,ODI.ITEM_QTY 
-			      ,ODI.ITEM_PRICE
-			      ,G.GOODS_NM 
-			      ,G.MAIN_COLOR_CD
-			      ,B.BRAND_ENM 
-			      ,I.ITEMKIND_NM 
-			      ,I.ITEMKIND_CD 
-			      ,I.SIZE_GB 
-			      ,R.REVIEW_SQ
-			      ,R.REVIEW_GB
-			      ,R.REVIEW_CONTENT
-			      ,R.SCORE
-			      ,R.HEIGHT
-			      ,R.WEIGHT
-			      ,(CASE R.SCORE_SIZE   WHEN 1 THEN '작음' 
-	      								WHEN 2 THEN '딱맞음'
-	      								WHEN 3 THEN '큼'
-	      													END) AS SCORE_SIZE
-			      ,(CASE R.SCORE_COLOR  WHEN 1 THEN '밝음' 
-			      						WHEN 2 THEN '똑같음'
-			      						WHEN 3 THEN '어두움'   
-			      						 					END) AS SCORE_COLOR
-			      ,(CASE R.SCORE_FIT    WHEN 1 THEN '슬림' 
-			      						WHEN 2 THEN '레귤러' 
-			      						WHEN 3 THEN '오버' 
-			      											END) AS SCORE_FIT
-			      ,(CASE R.SCORE_THICK  WHEN 1 THEN '얇음' 
-			      						WHEN 2 THEN '적당함' 
-			      						WHEN 3 THEN '도톰함'
-			      											END) AS SCORE_THICK
-			      ,(CASE R.SCORE_WEIGHT WHEN 1 THEN '가벼움' 
-			      						WHEN 2 THEN '적당함'
-			      						WHEN 3 THEN '무거움'
-			      											END) AS SCORE_WEIGHT
-			      ,(CASE R.SCORE_BALL   WHEN 1 THEN '작음'
-			      						WHEN 2 THEN '딱맞음'
-		                                WHEN 3 THEN '큼' 
+		     SELECT O.ORD_NO 
+		           ,O.ORD_NM
+		           ,DATE_FORMAT(O.PAY_DT, '%Y-%m-%d') AS PAY_DT 
+		           ,O.CUST_NO 
+		           ,OD.ORD_DTL_NO
+		           ,OD.ORD_EXCH_GB 
+		           ,OD.GOODS_CD 
+		           ,OD.REAL_ORD_AMT 
+		           ,OD.SAVE_PNT_AMT 
+		           ,OD.GFCD_USE_AMT 
+		           ,ODI.ORD_DTL_ITEM_SQ 
+		           ,ODI.ITEM_CD 
+		           ,ODI.OPT_CD 
+		           ,ODI.OPT_CD1
+		           ,ODI.OPT_CD2
+		           ,IFNULL(C.COLOR_KNM, ODI.OPT_CD1) AS OPT_CD1_NM
+		           ,ODI.ITEM_QTY 
+		           ,ODI.ITEM_PRICE
+		           ,G.GOODS_NM 
+		           ,G.MAIN_COLOR_CD
+		           ,B.BRAND_ENM 
+		           ,I.ITEMKIND_NM 
+		           ,I.ITEMKIND_CD 
+		           ,I.SIZE_GB 
+		           ,R.REVIEW_SQ
+		           ,R.REVIEW_GB
+		           ,R.REVIEW_CONTENT
+		           ,R.SCORE
+		           ,R.HEIGHT
+		           ,R.WEIGHT
+		           ,(CASE R.SCORE_SIZE   WHEN 1 THEN '작음' 
+		                               	WHEN 2 THEN '딱맞음'
+		                                WHEN 3 THEN '큼'
+		                                                   END) AS SCORE_SIZE
+		           ,(CASE R.SCORE_COLOR  WHEN 1 THEN '밝음' 
+		           						WHEN 2 THEN '똑같음'
+		           						WHEN 3 THEN '어두움'   
+		           						 					END) AS SCORE_COLOR
+		           ,(CASE R.SCORE_FIT    WHEN 1 THEN '슬림' 
+		           						WHEN 2 THEN '레귤러' 
+		           						WHEN 3 THEN '오버' 
+		           											END) AS SCORE_FIT
+		           ,(CASE R.SCORE_THICK  WHEN 1 THEN '얇음' 
+		           						WHEN 2 THEN '적당함' 
+		           						WHEN 3 THEN '도톰함'
+		           											END) AS SCORE_THICK
+		           ,(CASE R.SCORE_WEIGHT WHEN 1 THEN '가벼움' 
+		           						WHEN 2 THEN '적당함'
+		           						WHEN 3 THEN '무거움'
+		           											END) AS SCORE_WEIGHT
+		           ,(CASE R.SCORE_BALL   WHEN 1 THEN '작음'
+		           						WHEN 2 THEN '딱맞음'
+	                                     WHEN 3 THEN '큼' 
 		                                					END) AS SCORE_BALL
-			      ,R.GIVE_DUE_PNT
-			      ,R.PNT_GIVE_STAT
-			      ,R.BEST_YN
-			      ,R.GIVE_DUE_BPNT
-			      ,R.BPNT_GIVE_YN
-			      ,R.DISP_YN
-			      ,R.DEL_YN
-			      ,R.CONFIRM_YN
-			      ,R.CONFIRM_UNO
-			      ,R.CONFIRM_DT
-			      ,R.REG_NO
-			      ,DATE_FORMAT(R.REG_DT , '%Y-%m-%d') AS REG_DT
-			      ,R.UPD_NO
-			      ,DATE_FORMAT(R.UPD_DT , '%Y-%m-%d') AS UPD_DT
-			      ,R.ADM_RPL
-			      ,R.ADM_RPL_REG_NO
-			      ,DATE_FORMAT(R.ADM_RPL_DT , '%Y-%m-%d %H:%i:%s') AS ADM_RPL_DT
-			      ,DATEDIFF( DATE_ADD(O.PAY_DT,INTERVAL 90 DAY),NOW()) AS REMAIN_DT -- 남은시간
-			      , RANK() OVER(ORDER BY O.PAY_DT DESC) AS RNUM
-			FROM TB_ORDER O INNER JOIN TB_ORDER_DETAIL OD ON O.ORD_NO = OD.ORD_NO 
-			                INNER JOIN TB_ORDER_DETAIL_ITEM ODI ON OD.ORD_DTL_NO = ODI.ORD_DTL_NO 
-			                  					 AND OD.ORD_DTL_NO = ODI.ORD_DTL_NO
-			                INNER JOIN TB_GOODS G ON G.GOODS_CD = OD.GOODS_CD 
-			                INNER JOIN TB_BRAND B ON B.BRAND_CD = G.BRAND_CD
-			                INNER JOIN TB_REVIEW R ON R.ORD_NO = O.ORD_NO 
-			                              		AND R.ORD_NO = O.ORD_NO
-			                              		AND R.ORD_DTL_NO = OD.ORD_DTL_NO 
-			                              		AND R.DEL_YN = 'N'
-			                              		AND R.DISP_YN = 'Y'
-			                LEFT JOIN TB_ITEMKIND I ON G.ITEMKIND_CD = I.ITEMKIND_CD 
-			                LEFT OUTER JOIN TB_COLOR C ON ODI.OPT_CD1 = C.COLOR_CD
-		                                               AND C.USE_YN = 'Y'
-			WHERE 1=1
-				AND O.CUST_NO = #{custNo}
-				AND O.DISP_YN = 'Y'
-				AND O.SITE_CD = #{siteCd}
-			GROUP BY O.ORD_NO 
-			      ,O.ORD_NM 
-			      ,O.PAY_DT 
-			      ,O.CUST_NO 
-			      ,OD.ORD_DTL_NO
-			      ,OD.ORD_EXCH_GB 
-			      ,OD.GOODS_CD 
-			      ,OD.REAL_ORD_AMT 
-			      ,OD.SAVE_PNT_AMT 
-			      ,OD.GFCD_USE_AMT 
-			      ,ODI.ORD_DTL_ITEM_SQ 
-			      ,ODI.ITEM_CD 
-			      ,ODI.OPT_CD 
-			      ,ODI.OPT_CD1
-			      ,ODI.OPT_CD2
-			      ,ODI.ITEM_QTY 
-			      ,ODI.ITEM_PRICE
-			      ,G.GOODS_NM 
-			      ,G.MAIN_COLOR_CD
-			      ,B.BRAND_ENM 
-		)F
+		        ,R.GIVE_DUE_PNT
+		        ,R.PNT_GIVE_STAT
+		        ,R.BEST_YN
+		        ,R.GIVE_DUE_BPNT
+		        ,R.BPNT_GIVE_YN
+		        ,R.DISP_YN
+		        ,R.DEL_YN
+		        ,R.CONFIRM_YN
+		        ,R.CONFIRM_UNO
+		        ,R.CONFIRM_DT
+		        ,R.REG_NO
+		        ,DATE_FORMAT(R.REG_DT , '%Y-%m-%d') AS REG_DT
+		        ,R.UPD_NO
+		        ,DATE_FORMAT(R.UPD_DT , '%Y-%m-%d') AS UPD_DT
+		        ,R.ADM_RPL
+		        ,R.ADM_RPL_REG_NO
+		        ,DATE_FORMAT(R.ADM_RPL_DT , '%Y-%m-%d %H:%i:%s') AS ADM_RPL_DT
+		        ,DATEDIFF( DATE_ADD(O.PAY_DT,INTERVAL 90 DAY),NOW()) AS REMAIN_DT -- 남은시간
+		        , RANK() OVER(ORDER BY O.PAY_DT DESC) AS RNUM
+		  FROM TB_ORDER O INNER JOIN TB_ORDER_DETAIL OD ON O.ORD_NO = OD.ORD_NO 
+		                  INNER JOIN TB_ORDER_DETAIL_ITEM ODI ON OD.ORD_DTL_NO = ODI.ORD_DTL_NO 
+		                    					 AND OD.ORD_DTL_NO = ODI.ORD_DTL_NO
+		                  INNER JOIN TB_GOODS G ON G.GOODS_CD = OD.GOODS_CD 
+		                  INNER JOIN TB_BRAND B ON B.BRAND_CD = G.BRAND_CD
+		                  INNER JOIN TB_REVIEW R ON R.ORD_NO = O.ORD_NO 
+		                                		AND R.ORD_NO = O.ORD_NO
+		                                		AND R.ORD_DTL_NO = OD.ORD_DTL_NO 
+		                                		AND R.DEL_YN = 'N'
+		                                		AND R.DISP_YN = 'Y'
+		                  LEFT JOIN TB_ITEMKIND I ON G.ITEMKIND_CD = I.ITEMKIND_CD 
+		                  LEFT OUTER JOIN TB_COLOR C ON ODI.OPT_CD1 = C.COLOR_CD
+		  	                                           AND C.USE_YN = 'Y'
+		       WHERE 1=1
+		     AND O.CUST_NO = #{custNo}
+		     AND O.DISP_YN = 'Y'
+		     AND O.SITE_CD = #{siteCd}
+		     GROUP BY O.ORD_NO 
+		           ,O.ORD_NM 
+		           ,O.PAY_DT 
+		           ,O.CUST_NO 
+		           ,OD.ORD_DTL_NO
+		           ,OD.ORD_EXCH_GB 
+		           ,OD.GOODS_CD 
+		           ,OD.REAL_ORD_AMT 
+		           ,OD.SAVE_PNT_AMT 
+		           ,OD.GFCD_USE_AMT 
+		           ,ODI.ORD_DTL_ITEM_SQ 
+		           ,ODI.ITEM_CD 
+		           ,ODI.OPT_CD 
+		           ,ODI.OPT_CD1
+		           ,ODI.OPT_CD2
+		           ,ODI.ITEM_QTY 
+		           ,ODI.ITEM_PRICE
+		           ,G.GOODS_NM 
+		           ,G.MAIN_COLOR_CD
+		           ,B.BRAND_ENM 
+		     )F
 		ORDER BY F.PAY_DT DESC
 		<include refid="selectForPagingFooter"/>
 	</select>
@@ -1076,9 +1082,9 @@
 		, #{kmcKey}
 		, #{kufKey}
 		, #{delYn}
-		, #{custNo}
+		, #{regNo}
 		, CURRENT_TIMESTAMP
-		, #{custNo}
+		, #{updNo}
 		, CURRENT_TIMESTAMP
 		)
 	</insert>

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

@@ -389,7 +389,7 @@
 	}
 	
 	// 상품선택시 상품상세내용 변경
-	var fnOpenGoodsDealDetail = function(goodsCd, compsGoodsCd){debugger;
+	var fnOpenGoodsDealDetail = function(goodsCd, compsGoodsCd){
 		
 		// 탭별 선택시 기본 상품 설정
 		let selIdx = 0;
@@ -429,7 +429,7 @@
 	}
 	
 	// 레이어에서 상품선택시
-	var fnGoodsDealDesc = function(goodsCd){debugger;
+	var fnGoodsDealDesc = function(goodsCd){
 		var params = new Object();
 		params.goodsCd = goodsCd;
 		params.adminYn = "Y";

+ 11 - 8
src/main/webapp/WEB-INF/views/web/common/fragments/FooterWeb.html

@@ -1170,9 +1170,10 @@
 						$('#quickMenuWishList').html('');
 						$('#quick03').find('span').html(result.length);
 						$('#quickMenuWishListCount').html(result.length);
-						
+						tag = '';
 						if (result.length > 0) {
-							let tag = '<div class="product_count"><span class="c_primary" id="quickMenuWishListCount">'+result.length+'</span>개의 상품</div>\n';
+							$("#quickMenuWishList").attr("class","quick_body");
+							tag += '<div class="product_count"><span class="c_primary" id="quickMenuWishListCount">'+result.length+'</span>개의 상품</div>\n';
 							tag += '	<div class="itemsGrp">\n';
 							
 							$.each(result, function (idx, item) {
@@ -1197,18 +1198,20 @@
 								tag += '			</div>';	    
 								tag += '		</div>';	    
 								tag += '	</div>	';		
-								tag += '	<div class="no_item">';	    
-								tag += '		최근 본 상품이 없습니다.';	    
-								tag += '	</div>';	    
 								
 							});
-							
 							tag += '	</div>\n';
 							
-							$('#quickMenuWishList').html(tag);
 						} else {
-							$('#quickMenuWishList').addClass('nodata');
+							$("#quickMenuWishList").addClass("nodata");
+							tag += '<div class="itemsGrp">';
+							tag += '<div class="no_item" style="display:block">';
+							tag += '	등록된 위시리스트가 없습니다.';
+							tag += '</div>';
+							tag += '</div>';
 						}
+						
+						$('#quickMenuWishList').html(tag);
 					}
 			});
 	}

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

@@ -678,11 +678,11 @@
 								});
 							} else if(item.contentsType == 'O'){
 								let outletCate = fnGetOutletCategory(item.gtabNm);
-
 								$('#divGnbTab').append(outletCate);
 								// $('#divGnbTab').append('<li><a href="' + item.linkUrl + '">' + item.gtabNm + '</a></li>');
 								$('#ulGnbTab').append('<li><a href="' + item.linkUrl + '">' + item.gtabNm + '</a></li>');
 								fnGetOutletLeafCategory();
+								fnGetGnbBanner('3000',item.gtabBannerTitle);
 							} else if (item.contentsType == 'L') { // 컨텐츠유형:링크
 								$('#divGnbTab').append('<li><a href="' + item.linkUrl + '">' + item.gtabNm + '</a></li>');
 								$('#ulGnbTab').append('<li><a href="' + item.linkUrl + '">' + item.gtabNm + '</a></li>');
@@ -715,8 +715,8 @@
 		tag += '				</ul>\n';
 		tag += '			</div>\n';
 		tag += '		</div>\n';
-		// tag += '	<div class="head_banner" id="outlet'+allCateItem.cate1No+'">\n';
-		// tag += '	</div>';
+		tag += '	<div class="head_banner" id="id3000">\n';
+		tag += '	</div>';
 		tag += '	</div>\n';
 		tag += '</li>\n';
 		return tag;

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

@@ -76,10 +76,10 @@
 								</ul>
 								<div class="form_field">
 									<div>
-										<input id="price" type="checkbox" ><label for="price"> <span>남여 공용만 보기</span> </label>
+										<input id="sexGb" type="checkbox" onclick="fnFilterOption(this,'on');"><label for="sexGb"> <span>남여 공용만 보기</span> </label>
 									</div>
 									<div>
-										<input id="chk-2" type="checkbox" checked=""><label for="chk-2"> <span>신상품만 보기</span> </label>
+										<input id="newProd" type="checkbox" onclick="fnFilterOption(this,'on');"><label for="newProd"> <span>신상품만 보기</span> </label>
 									</div>
 								</div>
 							</div>
@@ -113,7 +113,7 @@
 											<strong>하의</strong>
 											<th:block th:each="filterSizeData, filterSizeStat : ${filterSizeList}" th:if="${filterSizeData.filterCd == 'B'}">
 												<label class="size_btn">
-													<input type="checkbox" group="filterValue" th:id="${'chkFilterBSize'+filterSizeStat.count}" name="size2" th:vale="${filterSizeData.filterNm}" th:data-id="${filterSizeData.filterNm}" onclick="filterSel(this,'size','off','2');"><span th:text="${filterSizeData.filterNm}">80</span>
+													<input type="checkbox" group="filterValue" th:id="${'chkFilterBSize'+filterSizeStat.count}" name="size" th:vale="${filterSizeData.filterNm}" th:data-id="${filterSizeData.filterNm}" onclick="filterSel(this,'size','off','2');"><span th:text="${filterSizeData.filterNm}">80</span>
 												</label>
 											</th:block>
 										</li>
@@ -121,7 +121,7 @@
 											<strong>신발</strong>
 											<th:block th:each="filterSizeData, filterSizeStat : ${filterSizeList}" th:if="${filterSizeData.filterCd == 'S'}">
 												<label class="size_btn">
-													<input type="checkbox" group="filterValue" th:id="${'chkFilterSSize'+filterSizeStat.count}" name="size3" th:vale="${filterSizeData.filterNm}" th:data-id="${filterSizeData.filterNm}" onclick="filterSel(this,'size','off','3');"><span th:text="${filterSizeData.filterNm}">80</span>
+													<input type="checkbox" group="filterValue" th:id="${'chkFilterSSize'+filterSizeStat.count}" name="size" th:vale="${filterSizeData.filterNm}" th:data-id="${filterSizeData.filterNm}" onclick="filterSel(this,'size','off','3');"><span th:text="${filterSizeData.filterNm}">80</span>
 												</label>
 											</th:block>
 										</li>
@@ -132,7 +132,9 @@
 								<!-- 가격 -->
 								<div class="sort tap04" id="priceFilterDiv">
 									<div class="range">
-										<input type="text" class="js-range-slider01" name="my_range01" value="" />
+										<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"/>
 									</div>
 									<a href="javascript:void(0)" class="tap_close">delete-btn</a>
 								</div>
@@ -152,7 +154,9 @@
 										<li><input type="checkbox" id="percent10" name="range" value="100"><label for="percent10"><span></span><span>100%</span></label></li>
 									</ul>
 									<div class="range">
-										<input type="text" class="js-range-slider02" name="my_range02" value="" />
+										<input type="text" class="js-range-slider02" name="" value="" />
+										<input type="hidden" id="dcrate_input_from" value="0"/>
+										<input type="hidden" id="dcrate_input_to" value="0"/>
 									</div>
 									<a href="javascript:void(0)" class="tap_close">delete-btn</a>
 								</div>
@@ -218,18 +222,8 @@
 								<!-- 필터 -->
 								<div class="fillter">
 									<div class="fillter_box" id="filterData">
-										<!--										<span>-->
-										<!--											모이몰른-->
-										<!--											<a href="javascript:;" class="filter_delete"></a >-->
-										<!--										</span>-->
-										<!-- 컬러 표시 -->
-										<!--										<span>-->
-										<!--											<span class="pdColor-color12"></span>-->
-										<!--											<a href="javascript:;" class="filter_delete"></a >-->
-										<!--										</span>-->
-										<!-- 컬러 표시 -->
 									</div>
-									<button class="fillter_reset" onclick="fnFilterReset();"><span>전체 초기화</span></button>
+									<button type="button" class="fillter_reset" onclick="fnFilterReset();"><span>전체 초기화</span></button>
 								</div>
 								<!-- //필터 -->
 							</div>
@@ -247,15 +241,15 @@
 										<p><span id="totCntId"></span>개의 상품</p>
 									</div>
 									<div>
-										<ul>
+										<ul id="sortArea">
 											<li>
-												<a href="" class="on">최신상품순</a>
+												<a href="javascript:void(0);" class="on" onclick="fnSortList(this,'new');">최신상품순</a>
 											</li>
 											<li>
-												<a href="">인기상품순</a>
+												<a href="javascript:void(0);" onclick="fnSortList(this,'best');">인기상품순</a>
 											</li>
 											<li>
-												<a href="">리뷰 많은순</a>
+												<a href="javascript:void(0);" onclick="fnSortList(this,'review');">리뷰 많은순</a>
 											</li>
 										</ul>
 									</div>
@@ -290,7 +284,7 @@
 		<input type="hidden" name="cate2No" th:value="${cateInfo.cate2No}"/>
 		<input type="hidden" name="cate3No" th:value="${cateInfo.cate3No}"/>
 		<input type="hidden" name="cate4No" th:value="${cateInfo.cate4No}"/>
-		<input type="hidden" name="sortGb"/>
+		<input type="hidden" name="sortGb" value="new"/>
 	</form>
 
 	<script src="/ux/plugins/gaga/gaga.infinite.scrollSession.js"></script>
@@ -299,13 +293,17 @@
 	<script th:inline="javascript">
 		/*<![CDATA[*/
 		var filterPriceList = [[${filterPriceList}]];
+		var custom_values = [];
+		var custom_values02  = [];
+		var currUrl = document.location.href;
+		console.log('currUrl>>'+currUrl);
 
 		// 컨텐츠 호출
 		$(document).ready( function() {
 			//가격 슬라이드
 			//var custom_values = ['9,000원', '230,000원', '487,000원', '700,000원', '1,360,000원', '1,799,000원'];
 			if(!gagajf.isNull(filterPriceList)){
-				var custom_values = [];
+
 				$.each(filterPriceList, function (priceIdx, priceItem){
 					custom_values[priceIdx] = priceItem.filterNm;
 				});
@@ -314,7 +312,6 @@
 				var my_to = custom_values.indexOf(custom_values[5]); //custom_values.indexOf('230,000원');
 				var minValue = custom_values[0];
 				var maxValue = custom_values[5];
-				console.log('my_from>>'+my_from);
 
 				$(".dp .js-range-slider01, .sch_result .js-range-slider01").ionRangeSlider({
 					type: "double",
@@ -326,14 +323,22 @@
 					skin: "round",
 					postfix: "원",
 					prettify_separator: ",",
-					values: custom_values
+					values: custom_values,
+					// onStart : function(data){
+					// 	fnCheckPrice(data);
+					// },
+					// onChange : fnCheckPrice,
+					onFinish : function(data){
+						fnCheckPrice(data);
+					}
 				});
 			}
 
 			//할인율
-			var custom_values02 = ['0%', '10%', '20%', '30%', '40%', '50%', '60%', '70%', '80%', '90%', '100%'];
+			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('10%');
+			var my_to02 = custom_values02.indexOf('100%');
+
 			$(".dp .js-range-slider02, .sch_result .js-range-slider02").ionRangeSlider({
 				type: "double",
 				min: 0,
@@ -344,22 +349,87 @@
 				skin: "round",
 				postfix: "%",
 				prettify_separator: ",",
-				values: custom_values02
+				values: custom_values02,
+				// onStart : function(data){
+				// 	fnCheckDcRate(data);
+				// },
+				// onChange : fnCheckDcRate,
+				onFinish : function (data){
+					fnCheckDcRate(data);
+				}
 			});
 
 			fnCreateCategoryList();
-
-			//fnGoodsListSearch();
 		});
 
+		var fnFilterOption = function (obj, stat){
+			var thisId = $(obj).attr('id');
+			var tag = '';
+
+			if(thisId == 'sexGb'){
+				if(stat=='on'){
+					$(obj).attr('onclick','fnFilterOption(this,\'off\');');
+					tag += '<input type="hidden" name="sexGb" value="G007_Z"/>\n';
+					$("#searchGoodsForm").append(tag);
+				}else{
+					$(obj).attr('onclick','fnFilterOption(this,\'on\');');
+					$("#searchGoodsForm input:hidden[name=sexGb]").remove();
+				}
+			}else{
+				if(stat=='on'){
+					$(obj).attr('onclick','fnFilterOption(this,\'off\');');
+					tag += '<input type="hidden" name="newProd" value="40"/>\n';
+					$("#searchGoodsForm").append(tag);
+				}else{
+					$(obj).attr('onclick','fnFilterOption(this,\'on\');');
+					$("#searchGoodsForm input:hidden[name=newProd]").remove();
+				}
+			}
+			fnCategoryGoodsInfiniteScrollInit();
+			fnGoodsListSearch();
+		}
+
+		// 필터 가격 확인
+		var fnCheckPrice = function (data){
+			$("#priceSpan").remove();
+			$("#searchGoodsForm input:hidden[name=priceRow]").remove();
+			$("#searchGoodsForm input:hidden[name=priceHigh]").remove();
+			let min = data.from;
+			let max = data.to;
+			// 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]);
+
+			fnFilterSlider('price' , custom_values[min], custom_values[max]);
+		}
+
+		// 필터 할인율 확인
+		var fnCheckDcRate = function (data){
+			$("#dcrateSpan").remove();
+			$("#searchGoodsForm input:hidden[name=dcrateRow]").remove();
+			$("#searchGoodsForm input:hidden[name=dcrateHigh]").remove();
+			let min = data.from;
+			let max = data.to;
+			console.log('DcRate from>>'+custom_values02[min].replace('%',''));
+			console.log('DcRate to>>'+custom_values02[max].replace('%',''));
+			$("#price_input_from").val(0);
+			$("#price_input_to").val(100);
+
+			fnFilterSlider('dcrate' , custom_values02[min].replace('%',''), custom_values02[max].replace('%',''));
+		}
+
 		var fnFilterReset = function (){
-			$("#searchGoodsForm input:hidden[name=brandSearch]").remove();
-			$("#searchGoodsForm input:hidden[name=sizeSearch]").remove();
-			$("#searchGoodsForm input:hidden[name=priceSearch]").remove();
-			$("#searchGoodsForm input:hidden[name=dcrateSearch]").remove();
-			$("#searchGoodsForm input:hidden[name=seasonSearch]").remove();
-			$("#searchGoodsForm input:hidden[name=colorSearch]").remove();
-			$("#searchGoodsForm input:hidden[name=benefitSearch]").remove();
+			document.location.href = currUrl;
+			// $("#searchGoodsForm input:hidden[name=brandSearch]").remove();
+			// $("#searchGoodsForm input:hidden[name=sizeSearch]").remove();
+			// $("#searchGoodsForm input:hidden[name=priceRow]").remove();
+			// $("#searchGoodsForm input:hidden[name=priceHigh]").remove();
+			// $("#searchGoodsForm input:hidden[name=dcrateRow]").remove();
+			// $("#searchGoodsForm input:hidden[name=dcrateHigh]").remove();
+			// $("#searchGoodsForm input:hidden[name=seasonSearch]").remove();
+			// $("#searchGoodsForm input:hidden[name=colorSearch]").remove();
+			// $("#searchGoodsForm input:hidden[name=benefitSearch]").remove();
 		}
 
 		var fnGoodsListSearch = function (){
@@ -380,6 +450,8 @@
 			var ithrCd = '';
 			var contentLoc = '';
 			if (result.dataList != null && result.dataList.length > 0) {
+				$('.list_content .list_defult').hide();
+				$('.list_content .count_wrap').show();
 				var goodsUrl = [[${@environment.getProperty('upload.goods.view')}]];;
 				let lastPage = result.paging.pageable.pageNo;
 				let endRow = result.endRow - result.paging.pageable.pageSize;
@@ -389,6 +461,9 @@
 			}else {
 				if($("#searchForm input[name=pageNo]").val()==1){
 					$('#listBox').html('<li class="none">상품정보가 존재하지 않습니다.</li>');
+				}else{
+					$('.list_content .list_defult').show();
+					$('.list_content .count_wrap').hide();
 				}
 				gagaInfiniteScroll.draw('not');
 			}
@@ -608,6 +683,17 @@
 			}
 		});
 
+		var fnSortList = function (obj, sortGb){
+			$("#sortArea").find('li').each(function (){
+				$(this).find('a').attr('class','off');
+			});
+
+			$(obj).addClass("on");
+			$("#searchGoodsForm").find("[name=sortGb]").val(sortGb);
+			fnCategoryGoodsInfiniteScrollInit();
+			fnGoodsListSearch();
+		}
+
 		/*]]>*/
 	</script>
 

+ 83 - 38
src/main/webapp/WEB-INF/views/web/goods/GoodsDealDetailFormWeb.html

@@ -161,7 +161,7 @@
 																<div class="itemPic">
 																	<img alt="" class="vLHTC pd_img" th:src="${imgGoodsUrl+'/'+goodsInfo.sysImgNm+'?RS=285'}" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
 																</div>
-																<div class="itemName">선택</div>
+																<div class="itemName">상품선택</div>
 															</a>
 														</div>
 													</div>
@@ -216,7 +216,7 @@
 								<div class="opt_result">
 								</div>
 							</div>
-							<div class="price_box">
+							<div class="price_box" style="display:none;">
 								<p class="number">
 									총&nbsp;<span id="goodsTotalQty">0</span>개
 								</p>
@@ -230,10 +230,10 @@
 								<div class="btn_group_block ui_row">
 								<th:block  th:if="${goodsInfo.stockQty > 0 and goodsInfo.goodsStat == 'G008_90'}">
 									<div class="ui_col_6">
-										<button type="button" class="btn btn_dark btn_block" id="btnGoodsWish" onclick="fnAddCart('C');"><span>쇼핑백</span></button>
+										<button type="button" class="btn btn_dark btn_block" id="btnGoodsWish" onclick="fnAddCart('C','Up');"><span>쇼핑백</span></button>
 									</div>
 									<div class="ui_col_6">
-										<button type="button" class="btn btn_primary btn_block" id="btnGoodsCart" onclick="fnAddCart('O');"><span>바로구매</span></button>
+										<button type="button" class="btn btn_primary btn_block" id="btnGoodsCart" onclick="fnAddCart('O','Up');"><span>바로구매</span></button>
 									</div>
 								</th:block>
 								<th:block  th:unless="${goodsInfo.stockQty > 0 and goodsInfo.goodsStat == 'G008_90'}">
@@ -297,9 +297,9 @@
 					};
 		let jsonData = JSON.stringify(data);
 		
-		$('.form_field .select_custom.deal_opt1').find('.combo .select').html('선택');
+		$('.form_field .select_custom.deal_opt1').find('.combo .select').html('옵션1');
 		$('.form_field .select_custom.deal_opt2').attr('disabled', true);
-		$('.form_field .select_custom.deal_opt2').find('.combo .select').html('선택');
+		$('.form_field .select_custom.deal_opt2').find('.combo .select').html('옵션2');
 		
 		gagajf.ajaxJsonSubmit('/goods/detail/option1/list', jsonData, function(result) {
 			
@@ -319,27 +319,28 @@
 						if (flag == "layer"){
 							$objUp = $('.pd_descrp_pop .opt_select .select_custom.deal_opt1');
 							$objUp.html('');
-						}else{
+						}else if (flag == "Up"){
 							$objUp = $('.pd_detail .opt_select .select_custom.deal_opt1');
 							$objUp.html('');
+						}else{
 							$objDown = $('.pd_desc_wrap .opt_select .select_custom.deal_opt1');
 							$objDown.html('');
-							
 						}
 						$('.form_field .select_custom.deal_opt1').attr('disabled', false);
 						//------
 						tag1 += '<div class="combo">\n';
-						tag1 += '<div class="select">선택</div>\n';
+						tag1 += '<div class="select">옵션1</div>\n';
 						tag1 += '<ul class="list">\n';
 						//------
-						tag1 += '<li class="selected" id="goodsOpt1">선택</li>\n';	
+						tag1 += '<li class="selected" id="goodsOpt1">옵션1</li>\n';	
 					}
 					let soldoutYn = ""; 
 					if (item.stockQty <= 0) soldoutYn = "true";
 					if (flag == "layer"){
 						tagUp = '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnOption2(this, \'layer\')">\n';
-					}else{
+					}else if (flag == "Up"){
 						tagUp = '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnOption2(this, \'Up\')">\n';
+					}else{ 
 						tagDown = '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnOption2(this, \'Down\')">\n';	
 					}
 					tag2 += '<div>'+ item.optCd1Nm+'</div>\n';
@@ -351,6 +352,7 @@
 					
 					tagUpS += tag1+tagUp+tag2;
 					tagDownS += tag1+tagDown+tag2;
+					
 				});
 				
 				if (!gagajf.isNull(tagUpS)){
@@ -363,16 +365,17 @@
 				}
 				
 				if (flag == "layer"){
-					$objUp.append(tagUpS);
+					$objUp.prepend(tagUpS);
 					var pop_desc_option02 = new sCombo('.pd_descrp_pop .opt_select .select_custom.deal_opt1');
 					$('.pd_descrp_pop .opt_select .select_custom.deal_opt1').addClass('on');
 					$('.pd_descrp_pop .opt_select .select_custom.deal_opt1').find('.list').css('display','block');
-				}else{
-					$objUp.append(tagUpS);
-					$objDown.append(tagDownS);
+				}else if (flag == "Up"){
+					$objUp.prepend(tagUpS);
 					var detail_deal_option02 = new sCombo('.pd_detail .opt_select .select_custom.deal_opt1');
 					$('.pd_detail .opt_select .select_custom.deal_opt1').addClass('on');
 					$('.pd_detail .opt_select .select_custom.deal_opt1').find('.list').css('display','block');
+				}else{
+					$objDown.prepend(tagDownS);
 					var desc_option02 = new sCombo('.pd_desc_wrap .opt_select .select_custom.deal_opt1');
 					$('.pd_desc_wrap .opt_select .select_custom.deal_opt1').addClass('on');
 					$('.pd_desc_wrap .opt_select .select_custom.deal_opt1').find('.list').css('display','block');
@@ -380,7 +383,7 @@
 				
 			}
 			
-			if (flag != "layer"){
+/* 			if (flag != "layer"){
 				// 상품 선태값 적용
 				let $obj = null;
 				let $taget = null;
@@ -394,7 +397,7 @@
 				}
 				let goodsDealInfo = $obj.html();
 				$taget.html(goodsDealInfo);
-			}
+			} */
 			
 		});
 		
@@ -433,9 +436,10 @@
 						if (flag == "layer"){
 							$objUp = $('.pd_descrp_pop .opt_select .select_custom.deal_opt2');
 							$objUp.html('');
-						}else{
+						}else if (flag == "Up"){
 							$objUp = $('.pd_detail .opt_select .select_custom.deal_opt2');
 							$objUp.html('');
+						}else{
 							$objDown = $('.pd_desc_wrap .opt_select .select_custom.deal_opt2');
 							$objDown.html('');
 							
@@ -443,17 +447,18 @@
 						$('.form_field .select_custom.deal_opt2').attr('disabled', false);	
 						//------
 						tag1 += '<div class="combo">\n';
-						tag1 += '<div class="select">선택</div>\n';
+						tag1 += '<div class="select">옵션2</div>\n';
 						tag1 += '<ul class="list">\n';
 						//------
-						tag1 += '<li class="selected" id="goodsOpt2">선택</li>\n';	
+						tag1 += '<li class="selected" id="goodsOpt2">옵션2</li>\n';	
 					}
 					let soldoutYn = ""; 
 					if ("Y" == item.soldoutYn || item.stockQty <= 0)soldoutYn = "true";
 					if (flag == "layer"){
 						tagUp = '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStock(this, \'layer\' )">\n';
-					}else{
+					}else if (flag == "Up"){
 						tagUp = '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStock(this, \'Up\' )">\n';
+					}else{
 						tagDown = '<li aria-disabled="'+soldoutYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStock(this, \'Down\' )">\n';	
 					}
 					tag2 += '<div>'+ item.optCd2+'</div>\n';
@@ -465,6 +470,7 @@
 					
 					tagUpS += tag1+tagUp+tag2;
 					tagDownS += tag1+tagDown+tag2;
+					
 				});
 				
 				if (!gagajf.isNull(tagUpS)){
@@ -477,16 +483,17 @@
 				}
 				
 				if (flag == "layer"){
-					$objUp.append(tagUpS);
+					$objUp.prepend(tagUpS);
 					var pop_desc_option02 = new sCombo('.pd_descrp_pop .opt_select .select_custom.deal_opt2');
 					$('.pd_descrp_pop .opt_select .select_custom.deal_opt2').addClass('on');
 					$('.pd_descrp_pop .opt_select .select_custom.deal_opt2').find('.list').css('display','block');
-				}else{
-					$objUp.append(tagUpS);
-					$objDown.append(tagDownS);
+				}else if (flag == "Up"){
+					$objUp.prepend(tagUpS);
 					var detail_deal_option03 = new sCombo('.pd_detail .opt_select .select_custom.deal_opt2');
 					$('.pd_detail .opt_select .select_custom.deal_opt2').addClass('on');
 					$('.pd_detail .opt_select .select_custom.deal_opt2').find('.list').css('display','block');
+				}else{
+					$objDown.prepend(tagDownS);
 					var desc_option03 = new sCombo('.pd_desc_wrap .opt_select .select_custom.deal_opt2');
 					$('.pd_desc_wrap .opt_select .select_custom.deal_opt2').addClass('on');
 					$('.pd_desc_wrap .opt_select .select_custom.deal_opt2').find('.list').css('display','block');
@@ -494,7 +501,7 @@
 				}
 			}
 			
-			if (flag != "layer"){
+		/* 	if (flag != "layer"){
 				// 옵션 1 선태값 적용
 				let $obj2 = null;
 				let $taget2 = null;
@@ -509,8 +516,7 @@
 				
 				let goodsDealInfo = $obj2.html();
 				$taget2.html(goodsDealInfo);	
-			}
-			
+			} */
 			
 		});	
 	}
@@ -604,14 +610,14 @@
 				$objLayer = $('.pd_descrp_pop .opt_result'); 
 				$objUp = $('.pd_detail .opt_result'); 
 				$objDown = $('.pd_desc_wrap .opt_result');
-				$objLayer.append(tag);
+				$objLayer.prepend(tag);
 			}else{
 				$objUp = $('.pd_detail .opt_result'); 
 				$objDown = $('.pd_desc_wrap .opt_result');
 			}
 			
-			$objUp.append(tag);
-			$objDown.append(tag);
+			$objUp.prepend(tag);
+			$objDown.prepend(tag);
 			
 			if (flag  != "layer"){
 				// 옵션 2 선태값 적용
@@ -634,6 +640,28 @@
 			}
 			fnSetTotalPrice();	
 			
+			var dTag = '';
+			dTag += '';
+			dTag += '<div class="item_prod">\n';
+			dTag += '<div class="item_state">\n';
+			dTag += '	<a href="javascript:void(0);" class="itemLink">\n';
+			dTag += '		<div class="itemPic">\n';
+			dTag +='			<img class="vLHTC pd_img" src="'+_uploadGoodsUrl +'/'+[[${goodsInfo.sysImgNm}]]+'?RS=285" alt="" onerror="' + _uximgUrl + '/images/pc/thumb/bg_item_none.png"  />\n';
+			dTag += '		</div>\n';
+			dTag += '		<div class="itemName">상품선택</div>\n';
+			dTag += '	</a>\n';
+			dTag += '</div>\n';
+			dTag += '</div>\n';
+			
+			$('.pd_detail .opt_select .select_custom.deal_opt_item').find('.combo .select').html(dTag);
+			$('.pd_desc_wrap .opt_select .select_custom.deal_opt_item').find('.combo .select').html(dTag);
+			//$('.pd_descrp_pop .form_field .select_custom.deal_opt_item').find('.combo .select').html(dTag);
+
+			$('.form_field .select_custom.deal_opt1').attr('disabled', true);
+			$('.form_field .select_custom.deal_opt1').find('.combo .select').html('옵션1');
+			$('.form_field .select_custom.deal_opt2').attr('disabled', true);
+			$('.form_field .select_custom.deal_opt2').find('.combo .select').html('옵션2');
+			
 		}, "text");
 	}
 	
@@ -705,6 +733,8 @@
 	
 	//합계 계산
 	var fnSetTotalPrice = function() {
+		
+		$('.price_box').show();
 		//let f = document.cartForm;
 
 		let totalEa = 0;
@@ -728,17 +758,32 @@
 	}
 	
 	//장바구니담기
-	var fnAddCart = function(btnType){
+	var fnAddCart = function(btnType, flag){
 		let compsList = [];
 		
-		let target = $('#cartForm input[name=cea]');
-		let targetSize = target.length;	//선택성품 갯수
-		if (target.length <= 0){
-			mcxDialog.alert("구성상품들의 옵션을 선택하세요.");
-			return false;
+		let $target = $('#cartForm input[name=cea]');
+		let targetSize = $target.length;	//선택성품 갯수
+		if ($target.length <= 0){
+			let $selObj = null;
+			if (flag  == "layer"){
+				$selObj = $('.pd_descrp_pop .form_field .select_custom.deal_opt_item');
+			}else if (flag  == "Up"){
+				$selObj = $('.pd_detail .opt_select .select_custom.deal_opt_item');
+			}else{
+				$selObj = $('.pd_desc_wrap .opt_select .select_custom.deal_opt_item');
+			}
+			
+			let selGoodsCd = $selObj.find('.combo .select').find('input[name=selectGoods]').attr('goodscd');
+			if (gagajf.isNull(selGoodsCd) || typeof (selGoodsCd) == 'undefined'){
+				mcxDialog.alert("상품을 선택해 주세요.");
+				return false;
+			}else{
+				mcxDialog.alert("옵션을 선택해 주세요.");
+				return false;
+			}
 		}
 		
-		target.each(function() {
+		$target.each(function() {
 			
 			let ea = parseInt($(this).val());
 			let goodsCd = $(this).parent().find('input[name="coption"]').attr('goodscd');

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

@@ -264,7 +264,6 @@
 												<div class="select">옵션1</div>
 												<ul class="list">
 													<th:block th:each="goodsOption, optionStatus : ${goodsCompose.goodsOption1List}" >
-													<li class="selected" th:id="|selfGoodsOpt1${goodsCompose.compsGoodsCd}|" th:if=${optionStatus.first}>선택</li> 
 													<li th:onclick="fnOption2([[${status.count}]], [[${goodsOption.goodsCd}]],[[${goodsOption.optCd1}]],[[${goodsCompose.qty}]],[[${goodsInfo.minOrdQty}]], [[${goodsInfo.maxOrdQty}]])"
 														th:attr="aria-disabled=${(goodsCompose.goodsStat != 'G008_90')? 'true':''}, data-soldout=${(goodsCompose.goodsStat != 'G008_90')? 'true':''}"
 														>
@@ -303,7 +302,6 @@
 											<div class="combo">
 												<div class="select">옵션1</div>
 												<ul class="list">
-													<li class="selected" th:id="|selfGoodsOpt1${goodsInfo.goodsCd}|" >선택</li> 
 													<th:block th:each="goodsOption, optionStatus : ${goodsOption1List}" >
 													<li th:onclick="fnOption2([[${optionStatus.count}]], [[${goodsOption.goodsCd}]],[[${goodsOption.optCd1}]],1,[[${goodsInfo.minOrdQty}]], [[${goodsInfo.maxOrdQty}]])">
 														<div th:text="${goodsOption.optCd1}">상품옵션</div>
@@ -442,7 +440,7 @@
 		</div>
 		<!-- 상품 대표설명 -->
 		<!-- 함께하면 할인되는 다다익선 상품 -->
-		<div class="content wide pd_together" id="goodsTmtbArea">
+		<div class="content pd_together" id="goodsTmtbArea">
 			
 		</div>
 		<!-- // 함께하면 할인되는 다다익선 상품 -->
@@ -899,7 +897,7 @@
 				$("#cartForm  input[name=cea]").attr("readonly",false);
 				$("#cartForm  input[name=stock]").val(itemCnt);
 	
-				$('.price_box').show();
+				
 				fnSetTotalPrice();
 			}); 
 		}
@@ -1009,6 +1007,8 @@
 	var fnSetTotalPrice = function() {
 		//let f = document.cartForm;
 
+		$('.price_box').show();
+		
 		let totalEa = 0;
 		let totalPrice = 0;
 		
@@ -1218,10 +1218,10 @@
 						$('.form_field .select_custom.item_opt2.' +item.goodsCd ).attr('disabled', false)
 						//------
 						tag += '<div class="combo">\n';
-						tag += '<div class="select">선택</div>\n';
+						tag += '<div class="select">옵션2</div>\n';
 						tag += '<ul class="list">\n';
 						//------
-						tag += '<li class="selected" id="goodsOpt2'+item.goodsCd+'">선택</li>\n';	
+						//tag += '<li class="selected" id="goodsOpt2'+item.goodsCd+'">선택</li>\n';	
 					}
 					let soldoutYn = ""; 
 					let saleQty = (Number(qty) * Number(minOrdQty));

+ 15 - 7
src/main/webapp/WEB-INF/views/web/goods/GoodsDetailQnaFormWeb.html

@@ -33,7 +33,7 @@
 		<div class="qna_list">
 			<!-- 나열조건결과 있을 때 노출 내용 -->
 			<div class="form_field">
-				<input id="except_secret" name="except_secret" type="checkbox"  onclick="fnGetList();"><label for="except_secret"><span>비밀글제외</span></label>
+				<input id="except_secret" name="except_secret" type="checkbox"  onclick="fnGoodsQnaList();"><label for="except_secret"><span>비밀글제외</span></label>
 				<input  type="hidden" name="secretYn" >
 			</div>
 			<div class="ui_row">
@@ -44,7 +44,7 @@
 			</div>
 			<div class="ui_foot">
 				<div class="ui_row">
-					<ul class="pageNav" id="pageNav">
+					<ul class="pageNav" id="goodsQnaPageNav">
 					</ul>
 				</div>			
 			</div>
@@ -65,7 +65,7 @@
 <script th:inline="javascript">
 /*<![CDATA[*/
 	
-	var fnGetList = function() {
+	var fnGoodsQnaList = function() {
 		
 		// 상품문의창 닫기
 		//$("#layer_goods_qna_reg").modal("hide");
@@ -77,13 +77,13 @@
 			$('#goodsQnaForm  input[name="secretYn"]').val('N');
 		}
 		// Initialize a pagination
-		gagaPaging.init('goodsQnaForm', fnGetListCallback, 'pageNav', 20);
+		gagaPaging.init('goodsQnaForm', fnGoodsQnaListCallback, 'goodsQnaPageNav', 20);
 
 		// Load data
 		gagaPaging.load(1);
 	}
 	
-	var fnGetListCallback = function(result) {
+	var fnGoodsQnaListCallback = function(result) {
 		$('#ulGoodsQna').html('');
 		$('#goodsQnaForm').find('.nodata').hide();
 		// 목록
@@ -136,18 +136,26 @@
 				tag += '</li>\n';
 				
 				$('#ulGoodsQna').append(tag);
+				$('#goodsQnaForm').find('.ui_foot').show();
 			});
 		} else {
 			$('#goodsQnaForm').find('.nodata').show();
 			$('#goodsQnaForm').find('.ui_foot').hide();
 		}
-
+		
 		// Create pagination
 		gagaPaging.createPagination(result.paging.pageable);
+		debugger;
+		if ('G056_N' == $('#cartForm input[name=goodsType]')){
+			$('.ex_qna').find('.number').html('('+ result.paging.pageable.totalCount +')');	
+		}else{
+			$('.pd_qnalist').find('.select_custom.deal_opt_item').find('.combo .select').find('.itemPostCount').html('(문의 '+ result.paging.pageable.totalCount +')');	
+		}
+		
 	}
 	
 	$(document).ready(function() {
-		fnGetList();
+		fnGoodsQnaList();
 	});
 	
 /*]]>*/

+ 20 - 5
src/main/webapp/WEB-INF/views/web/goods/GoodsDetailReviewFormWeb.html

@@ -299,12 +299,12 @@
 					<div class="best_review">
 						<a href="javascript:void(0);" th:onclick="cfGoodsReviewDetail([[${goodsInfo.goodsCd}]], 'Y', '', [[${bestReview.reviewSq}]])" >
 							<div class="pic" th:if="${bestReview.reviewAttachList != null and !bestReview.reviewAttachList.empty}">
-								<th:block th:each="reviewAttach, attachStatus : ${bestReview.reviewAttachList}">
+								<th:block th:each="reviewAttach, attachStatus : ${bestReview.reviewAttachList}" th:if="${attachStatus.first}">
 								<span class="thumb" th:classAppend="${(reviewAttach.fileGb == 'M') ? 'mov' :''}" th:style="${'background-image:url('+imgUrl+ reviewAttach.sysFileNm+');'}"></span><!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->
 								</th:block>
 							</div>
 							<div class="pic" th:unless="${bestReview.reviewAttachList != null and !bestReview.reviewAttachList.empty}">
-								<span class="thumb" th:style="${'background-image:url('+imgGoodsUrl+ '/'+goodsInfo.sysImgNm+'?RS=365);'}">
+								<span class="thumb" th:style="${'background-image:url('+imgGoodsUrl+ '/'+goodsInfo.sysImgNm+'?RS=162);'}">
 								</span>
 							</div>
 							<div class="star_score" th:with="starScore=${#numbers.formatDecimal((bestReview.iscore*100/5), 0,0)}">
@@ -347,7 +347,7 @@
 			</th:block>
 		</div>
 	</div>
-	<div class="area_rv_all">
+	<div class="area_rv_all"  style="display:none;">
 	<form id="goodsReviewForm" name="goodsReviewForm" action="#" th:action="@{'/goods/review/list'}">
 	<input type="hidden" name="pageNo" value ="1"/>
 	<input type="hidden" name="pageSize" value ="20"/>
@@ -474,6 +474,7 @@
 		// 목록
 		if (result.dataList != null && result.dataList.length > 0) {
 			
+			$('.area_rv_all').show();
 			$.each(result.dataList, function(idx, item) {
 				let tag = '<li>\n';
 				tag += '<div class="review">\n';
@@ -637,6 +638,21 @@
 	
 	$(document).ready( function() {
 
+		//슬라이드 - 베스트리뷰
+	    var bestReviewtSwiper = new Swiper('.area_rv_best .swiper-container', {
+	        slidesPerView: 2,
+	        spaceBetween: 20,
+	        navigation: {
+	            nextEl: '.area_rv_best .swiper-button-next',
+	            prevEl: '.area_rv_best .swiper-button-prev',
+	        },
+	        pagination: {
+	            el: '.area_rv_best .swiper-pagination',
+	            clickable: true,
+	        },
+	    });
+
+		
 		var sort_selecter01 = new sCombo('.area_rv_all .selection .select_custom.sort_opt1');
 		var sort_selecter02 = new sCombo('.area_rv_all .selection .select_custom.sort_opt2');
 		var sort_selecter03 = new sCombo('.area_rv_all .selection .select_custom.sort_opt3');
@@ -651,8 +667,7 @@
 				$(this).parents('div dl dd').find('.ratio .progbar').attr('style', 'width:' + reviewRatio);
 			}
 		});
-		
-		fnGetList();
+			fnGetList();	
 		
 	});
 	

+ 21 - 20
src/main/webapp/WEB-INF/views/web/goods/GoodsIncludeFormWeb.html

@@ -133,7 +133,7 @@
 													<div class="itemPic">
 														<img alt="" class="vLHTC pd_img" th:src="${imgGoodsUrl+'/'+goodsInfo.sysImgNm+'?RS=80'}" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
 													</div>
-													<div class="itemName">선택</div>
+													<div class="itemName">상품선택</div>
 												</a>
 											</div>
 										</div>
@@ -149,7 +149,7 @@
 															<img alt="" class="vLHTC pd_img" th:src="${imgGoodsUrl+'/'+goodsInfo.sysImgNm+'?RS=80'}" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
 														</div>
 														<p class="itemBrand" th:text="${goodsInfo.brandGroupNm}">BRAND NAME1</p>
-														<div class="itemName" th:text="${goodsInfo.goodsFullNm}">남성 </div>
+														<div class="itemName" ><span class="tit_option" th:text="${'[상품'+status.count+']'}">[상품1]</span><th:block th:text="${goodsInfo.goodsFullNm}"></th:block> </div>
 														 <div class="itemPostCount">
 															 (리뷰 <span><th:block  th:text="${(goodsInfo.reviewRegCnt <= 9999) ? #numbers.formatInteger(goodsInfo.reviewRegCnt, 0,'COMMA')  : '9,999+'}"></th:block></span>)
 														 </div>
@@ -183,7 +183,7 @@
 													<div class="itemPic">
 														<img alt="" class="vLHTC pd_img" th:src="${imgGoodsUrl+'/'+goodsInfo.sysImgNm+'?RS=80'}" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
 													</div>
-													<div class="itemName">선택</div>
+													<div class="itemName">상품선택</div>
 												</a>
 											</div>
 										</div>
@@ -199,7 +199,7 @@
 															<img alt="" class="vLHTC pd_img" th:src="${imgGoodsUrl+'/'+goodsInfo.sysImgNm+'?RS=80'}" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
 														</div>
 														<p class="itemBrand" th:text="${goodsInfo.brandGroupNm}">BRAND NAME1</p>
-														<div class="itemName" th:text="${goodsInfo.goodsFullNm}">남성 </div>
+														<div class="itemName" ><span class="tit_option" th:text="${'[상품'+status.count+']'}">[상품1]</span><th:block th:text="${goodsInfo.goodsFullNm}"></th:block> </div>
 														<div class="itemPostCount">
 															(문의 <span><th:block  th:text="${(goodsInfo.goodsQnaCnt <= 9999) ? #numbers.formatInteger(goodsInfo.goodsQnaCnt, 0,'COMMA')  : '9,999+'}"></th:block></span>)
 														</div>
@@ -233,7 +233,7 @@
 													<div class="itemPic">
 														<img alt="" class="vLHTC pd_img" th:src="${imgGoodsUrl+'/'+goodsInfo.sysImgNm+'?RS=80'}" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
 													</div>
-													<div class="itemName">선택</div>
+													<div class="itemName">상품선택</div>
 												</a>
 											</div>
 										</div>
@@ -249,7 +249,7 @@
 															<img alt="" class="vLHTC pd_img" th:src="${imgGoodsUrl+'/'+goodsInfo.sysImgNm+'?RS=80'}" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
 														</div>
 														<p class="itemBrand" th:text="${goodsInfo.brandGroupNm}">BRAND NAME1</p>
-														<div class="itemName" th:text="${goodsInfo.goodsFullNm}">남성 </div>
+														<div class="itemName" ><span class="tit_option" th:text="${'[상품'+status.count+']'}">[상품1]</span><th:block th:text="${goodsInfo.goodsFullNm}"></th:block> </div>
 													</a>
 													<input type="hidden" name="selectGoods" th:value="${goodsInfo.compsGoodsCd}" />
 												</div>
@@ -280,7 +280,7 @@
 															<div class="itemPic">
 																<img alt="" class="vLHTC pd_img" th:src="${imgGoodsUrl+'/'+goodsInfo.sysImgNm+'?RS=80'}" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
 															</div>
-															<div class="itemName">선택</div>
+															<div class="itemName">상품선택</div>
 														</a>
 													</div>
 												</div>
@@ -314,7 +314,7 @@
 								<div class="form_field">
 									<div class="select_custom deal_opt1" disabled>
 										<div class="combo">
-											<div class="select">선택</div>
+											<div class="select">옵션1</div>
 											<ul class="list" id="goodsDealOptDown1">
 												<!--  옵션 1 -->
 											</ul>
@@ -324,7 +324,7 @@
 								<div class="form_field">
 									<div class="select_custom deal_opt2" disabled>
 										<div class="combo">
-											<div class="select">선택</div>
+											<div class="select">옵션2</div>
 											<ul class="list" id="goodsDealOptDown2">
 												<!--  옵션 2 -->
 											</ul>
@@ -335,7 +335,7 @@
 						<div class="opt_result">
 						</div>
 					</div>
-					<div class="price_box">
+					<div class="price_box" style="display:none;">
 						<p class="number">
 							총&nbsp;<span>0</span>개
 						</p>
@@ -349,10 +349,10 @@
 						<div class="btn_group_block ui_row">
 						<th:block  th:if="${goodsInfo.stockQty > 0 and goodsInfo.goodsStat == 'G008_90'}">
 							<div class="ui_col_6">
-								<button type="button" class="btn btn_dark btn_block" id="btnGoodsWish" onclick="fnAddCart('C');"><span>쇼핑백</span></button>
+								<button type="button" class="btn btn_dark btn_block" id="btnGoodsWish" onclick="fnAddCart('C','Down');"><span>쇼핑백</span></button>
 							</div>
 							<div class="ui_col_6">
-								<button type="button" class="btn btn_primary btn_block" id="btnGoodsCart" onclick="fnAddCart('O');"><span>바로구매</span></button>
+								<button type="button" class="btn btn_primary btn_block" id="btnGoodsCart" onclick="fnAddCart('O','Down');"><span>바로구매</span></button>
 							</div>
 						</th:block>
 						<th:block  th:unless="${goodsInfo.stockQty > 0 and goodsInfo.goodsStat == 'G008_90'}">
@@ -387,7 +387,7 @@
 												<div class="itemPic">
 													<img alt="" class="vLHTC pd_img" th:src="${imgGoodsUrl+'/'+goodsInfo.sysImgNm+'?RS=80'}" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
 												</div>
-												<div class="itemName">선택</div>
+												<div class="itemName">상품선택</div>
 											</a>
 										</div>
 									</div>
@@ -426,7 +426,7 @@
 						<div class="form_field">
 							<div class="select_custom deal_opt1" disabled>
 								<div class="combo">
-									<div class="select">선택</div>
+									<div class="select">옵션1</div>
 									<ul class="list"  id="goodsDealOptLayer1">
 										<!--  옵션 1 -->
 									</ul>
@@ -436,7 +436,7 @@
 						<div class="form_field">
 							<div class="select_custom deal_opt2" disabled>
 								<div class="combo">
-									<div class="select">선택</div>
+									<div class="select">옵션2</div>
 									<ul class="list"  id="goodsDealOptLayer2">
 										<!--  옵션 2 -->
 									</ul>
@@ -447,7 +447,7 @@
 					<div class="opt_result">
 					</div>
 				</div>
-				<div class="price_box">
+				<div class="price_box" style="display:none;">
 					<p class="number">
 						총&nbsp;<span>0</span>개
 					</p>
@@ -461,10 +461,10 @@
 					<div class="btn_group_block ui_row">
 					<th:block  th:if="${goodsInfo.stockQty > 0}">
 						<div class="ui_col_6">
-							<button type="button" class="btn btn_dark btn_block" id="btnGoodsWish" onclick="fnAddCart('C');"><span>쇼핑백</span></button>
+							<button type="button" class="btn btn_dark btn_block" id="btnGoodsWish" onclick="fnAddCart('C','layer');"><span>쇼핑백</span></button>
 						</div>
 						<div class="ui_col_6">
-							<button type="button" class="btn btn_primary btn_block" id="btnGoodsCart" onclick="fnAddCart('O');"><span>바로구매</span></button>
+							<button type="button" class="btn btn_primary btn_block" id="btnGoodsCart" onclick="fnAddCart('O','layer');"><span>바로구매</span></button>
 						</div>
 					</th:block>
 					<th:block  th:unless="${goodsInfo.stockQty > 0}">
@@ -553,8 +553,9 @@
 		let $obj = $('.pd_detail .opt_result'); 
 		let $taget = $('.full_pop_fix_r .opt_result');
 		$taget.html($obj.html());
-		
-		fnSetTotalPrice();
+		if (!gagajf.isNull($obj.html())){
+			fnSetTotalPrice();	
+		}
 		
 		$('body').addClass('lock');
 		$("#layer_goods_deal_detail").show(); 

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

@@ -102,7 +102,7 @@
 			return false;
 		}
 		
-		gagajf.ajaxFormSubmit($('#goodsQnaDetailForm').prop('action') , $('#goodsQnaDetailForm'), fnGetList());
+		gagajf.ajaxFormSubmit($('#goodsQnaDetailForm').prop('action') , $('#goodsQnaDetailForm'), btnGoodsQnaSaveCallBack());
 		
 		/* mcxDialog.confirm("저장하시겠습니까?", {
 			cancelBtnText: "취소",
@@ -116,6 +116,10 @@
 		}); */
 	
 	});
+	
+	var btnGoodsQnaSaveCallBack = function(){
+		setTimeout(fnGoodsQnaList, 100);
+	}
 
 /*]]>*/
 </script>

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

@@ -128,9 +128,9 @@
 	//동적으로 날짜 년도 append
 	function appendYear() {
 		for (var i = 0; i < date.length; i++) {
-			$("#searchDt").append(	"<li onclick='fnChangeDate(this.value)' value='"+ date[i].year + "" + date[i].month + "'>" + date[i].year	+ "년" + date[i].month + "월 </li>")
+			$("#searchDt").append(	"<li onclick='fnChangeDate(this.value)' value='"+ date[i].year + "" + date[i].month + "'>" + date[i].year	+ "년" +  "  " + date[i].month + "월 </li>")
 		}
-		$(".select").append("<li class='selected' value='"+date[0].year+""+date[0].month+"'>"+ date[0].year + "년" + date[0].month + "월 </li>"); // 현재년도 선택 */ 
+		$(".select").append("<li class='selected' value='"+date[0].year+""+date[0].month+"'>"+ date[0].year + "년" +  "  " + date[0].month + "월 </li>"); // 현재년도 선택 */ 
 	}
 	appendYear($("#searchDt"));
 

+ 5 - 5
src/main/webapp/WEB-INF/views/web/mypage/MypagePointFormWeb.html

@@ -130,9 +130,9 @@
 	//동적으로 날짜 년도 append
 	function appendYear() {
 		for (var i = 0; i < date.length; i++) {
-			$("#searchDt").append(	"<li onclick='fnChangeDate(this.value)' value='"+ date[i].year + "" + date[i].month + "'>" + date[i].year	+ "년" + date[i].month + "월 </li>")
+			$("#searchDt").append(	"<li onclick='fnChangeDate(this.value)' value='"+ date[i].year + "" + date[i].month + "'>" + date[i].year	+ "년" +  "  " + date[i].month + "월 </li>")
 		}
-		$(".select").append("<li class='selected' value='"+date[0].year+""+date[0].month+"'>"+ date[0].year + "년" + date[0].month + "월 </li>"); // 현재년도 선택 */ 
+		$(".select").append("<li class='selected' value='"+date[0].year+""+date[0].month+"'>"+ date[0].year + "년"  +  "  " + date[0].month + "월 </li>"); // 현재년도 선택 */ 
 	}
 	appendYear($("#searchDt"));
 
@@ -196,11 +196,11 @@
 				tag += '	<td>';
 				if(item.pntAmt > 0){
 					tag += '		<span class="amount_plus">';
-					tag += '			<em>'+item.pntAmt.addComma()+'</em>P';
+					tag += '			<em>+'+item.pntAmt.addComma()+'</em>P';
 					tag += '		</span>';
 				}else{
-					tag += '		<span class="c_primary">';
-					tag += '			<em>'+item.pntAmt+'</em>P';
+					tag += '		<span class="amount_minus">';
+					tag += '			<em>'+item.pntAmt.addComma()+'</em>P';
 					tag += '		</span>';
 				}
 				

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

@@ -521,10 +521,10 @@ var reviewUpdate = function() {
 }
 var fnSaveCallback = function (result) {
 	if(result.status == "200"){
-		mcxDialog.confirm("상품리뷰를 등록 하였습니다.리뷰 등록으로 STYLE포인트 XXXP가 적립예정입니다. / 첨부파일이 업로드 된 후 등록이 가능합니다.", {
+		mcxDialog.confirm("상품리뷰를 등록 하였습니다. 150P 적립 예정입니다.", {
 			sureBtnText: "확인",
 			sureBtnClick: function() { 
-				cfnGoToPage(_PAGE_MYPAGE_REVIEW);
+				//cfnGoToPage(_PAGE_MYPAGE_REVIEW);
 			}
 		});
 	}
@@ -533,8 +533,8 @@ var fnSaveCallback = function (result) {
 var fnUpdateCallback = function (result) {
 	if(result.status == "200"){
 		//포인트 예정금액 고지해야함
-		cfnGoToPage(_PAGE_MYPAGE_REVIEW);
-		$("#alreadyReview").trigger('click');
+		//cfnGoToPage(_PAGE_MYPAGE_REVIEW);
+		//$("#alreadyReview").trigger('click');
 		//mcxDialog.alert("상품 리뷰를 수정하였습니다.");
 	}
 }

+ 18 - 19
src/main/webapp/WEB-INF/views/web/mypage/MypageReviewFormWeb.html

@@ -188,8 +188,6 @@
 				}else{
 					html += '							<span class="option">'+item.optCd1Nm+'&nbsp;/&nbsp;'+item.optCd2+'</span>     ';
 				}
-				
-				
 				html += '						</div>                                                                                            ';
 				html += '					</div>                                                                                                ';
 				html += '				</div>                                                                                                    ';
@@ -318,27 +316,28 @@
 				html+='							</div>';
 				html+='						</div>';
 				if (attachList != null && attachList.length >0) {
+					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) {
-							html+='						<div class="photo_box">';
-							html+='							<div class="photo_list">';
-							html+='								<ul>';
-							html+='									<li>';
-							html+='										<a href="">';
-							html+='											<div class="pic">';
-							if (attachList[i].fileGb == 'M') {
-								html+='												<span class="thumb mov" style="background-image:url(' + reviewUrl + '/' + attachList[i].sysFileNm + ');"></span>';
-							}else{
-								html+='												<span class="thumb" style="background-image:url(' + reviewUrl + '/' + attachList[i].sysFileNm + ');"></span>';
-							}
-							html+='											</div>';
-							html+='										</a>';
-							html+='									</li>';
-							html+='								</ul>';
-							html+='							</div>';
-							html+='						</div>';
+
+						html+='									<li>';
+						html+='										<a onclick="cfGoodsReviewDetail(\''+item.goodsCd+'\',\'\', \'Y\',\''+item.reviewSq+'\');">';
+						html+='											<div class="pic">';
+						if (attachList[i].fileGb == 'M') {
+							html+='												<span class="thumb mov" style="background-image:url(' + reviewUrl + '/' + attachList[i].sysFileNm + ');"></span>';
+						}else{
+							html+='												<span class="thumb" style="background-image:url(' + reviewUrl + '/' + attachList[i].sysFileNm + ');"></span>';
+						}
+						html+='											</div>';
+						html+='										</a>';
+						html+='									</li>';
 						}
 					}
+					html+='								</ul>';
+					html+='							</div>';
+					html+='						</div>';
 					
 				}
 				html+='						<div class="txt_review_box"  id="admin_'+item.reviewSq+'">';

+ 61 - 59
src/main/webapp/WEB-INF/views/web/mypage/MypageWishListFormWeb.html

@@ -37,14 +37,7 @@
 			</div>
 			<div class="sec_body" id="wishList">
 				<!-- 데이터 없을 시 -->
-				 <div class="nodata" style="display:none;">
-					<div class="txt_box">
-						<p>
-							등록된 위시리스트가 없습니다.<br>
-							
-						</p>
-					</div>
-				</div> 
+				
 				<!-- //데이터 없을 시 -->											
 			</div>
 		</div>
@@ -58,14 +51,10 @@ let month = [[${wishMonth}]];
 
 // 마이페이지 위시리스트 해제
 var wishlistDelete = function(obj) {
-	mcxDialog.confirm("위시리스트를 해제하시겠습니까?", {
-		cancelBtnText : "취소",
-		sureBtnText : "확인",
-		sureBtnClick : function() {
-			cfnPutWishList(obj);
-			ajaxWishList();
-		}
-	});
+	
+	cfnPutWishList(obj);
+	ajaxWishList();
+
 }
 
 // 마이페이지 위시리스트 
@@ -74,54 +63,67 @@ var ajaxWishList = function () {
 		if (status == 'success') {
 			$('#wishList').html('');
 			html = '';
-			for (var i = 0; i < month.length; i++) {
-				html+='<div class="monthly_wish_wrap">';
-				html+='	<div class="date">';
-				html+='		<span>'+month[i].regDt+'</span>';
-				html+='	</div>';
-				html+='	<div class="itemsGrp">';
-				
-				$.each(result, function (idx, item) {
-					if (item.regDtMonth == month[i].regDt) {
-						html+='		<div class="item_prod">';
-						html+='			<div class="item_state">';
-						html+='				<button type="button" class="itemLike active" goodsCd="'+item.goodsCd+'" onclick="wishlistDelete(this)">관심상품 추가</button>';
-						html+='				<a href="javascript:void(0);" class="itemLink" onclick="cfnGoToGoodsDetail('+item.goodsCd+')">';
-						html+='					<div class="itemPic">';
-						html+='						<img alt="" class=" vLHTC pd_img" src="' + _uploadGoodsUrl + '/' + item.sysImgNm + '">';
-						html+='					</div>';
-						html+='					<p class=" itemBrand">'+item.brandGroupNm+'</p>';
-						html+='					<div class=" itemName">'+item.goodsNm+'</div>';
-						html+='					<p class="itemPrice">'+item.currPrice.addComma();
-						if (item.currPrice != item.listPrice) {
-							html+='						<span class="itemPrice_original">'+item.listPrice.addComma()+'</span>';
-						}
-						if (item.dcRate>0) {
-							html+='						<span class=" itemPercent">'+item.dcRate+'%</span>';
+			if (result.length>0) {
+				$(".nodata").hide();
+				for (var i = 0; i < month.length; i++) {
+					html+='<div class="monthly_wish_wrap">';
+					html+='	<div class="date">';
+					html+='		<span>'+month[i].regDt+'</span>';
+					html+='	</div>';
+					html+='	<div class="itemsGrp">';
+					
+					$.each(result, function (idx, item) {
+						if (item.regDtMonth == month[i].regDt) {
+							html+='		<div class="item_prod">';
+							html+='			<div class="item_state">';
+							html+='				<button type="button" class="itemLike active" goodsCd="'+item.goodsCd+'" onclick="wishlistDelete(this)">관심상품 추가</button>';
+							html+='				<a href="javascript:void(0);" class="itemLink" onclick="cfnGoToGoodsDetail(\'' + item.goodsCd + '\')">';
+							html+='					<div class="itemPic">';
+							html+='						<img alt="" class=" vLHTC pd_img" src="' + _uploadGoodsUrl + '/' + item.sysImgNm + '">';
+							html+='					</div>';
+							html+='					<p class=" itemBrand">'+item.brandGroupNm+'</p>';
+							html+='					<div class=" itemName">'+item.goodsNm+'</div>';
+							html+='					<p class="itemPrice">'+item.currPrice.addComma();
+							if (item.currPrice != item.listPrice) {
+								html+='						<span class="itemPrice_original">'+item.listPrice.addComma()+'</span>';
+							}
+							if (item.dcRate>0) {
+								html+='						<span class=" itemPercent">'+item.dcRate+'%</span>';
+							}
+							
+							html+='					</p>';
+							html+='					<div class="itemcolorchip">';
+							html+='						<span class="chip_color35" value="ABM">BEIGE</span>';
+							html+='						<span class="chip_color54" value="BDS">BLACK</span>';
+							html+='						<span class="chip_color40" value="YBR">WHITE</span>';
+							html+='					</div>';
+							html+='					 <p class="itemBadge">';
+							html+='						<span class="badge13">베스트 </span>';
+							html+='					</p>';
+							if (item.goodsTnm != null && item.goodsTnm != '') {
+								html+='					<div class="itemComment">'+item.goodsTnm+'</div>';
+							}
+							html+='				</a>';
+							html+='			</div>';
+							html+='		</div>';
 						}
 						
-						html+='					</p>';
-						html+='					<div class="itemcolorchip">';
-						html+='						<span class="chip_color35" value="ABM">BEIGE</span>';
-						html+='						<span class="chip_color54" value="BDS">BLACK</span>';
-						html+='						<span class="chip_color40" value="YBR">WHITE</span>';
-						html+='					</div>';
-						html+='					 <p class="itemBadge">';
-						html+='						<span class="badge13">베스트 </span>';
-						html+='					</p>';
-						if (item.goodsTnm != null && item.goodsTnm != '') {
-							html+='					<div class="itemComment">'+item.goodsTnm+'</div>';
-						}
-						html+='				</a>';
-						html+='			</div>';
-						html+='		</div>';
-					}
-					
-				});
+					});
+				}
 				html+='	</div>';
 				html+='</div>';
-				$('#wishList').html(html);
+				
+			}else{
+				html += ' <div class="nodata">';
+				html += '	<div class="txt_box">';
+				html += '		<p>';
+				html += '			등록된 위시리스트가 없습니다.<br>';
+				html += '			';
+				html += '		</p>';
+				html += '	</div>';
+				html += '</div>';
 			}
+			$('#wishList').html(html);
 		}
 	});
 }

+ 6 - 0
src/main/webapp/WEB-INF/views/web/planning/PlanningEventPollFormWeb.html

@@ -239,6 +239,12 @@ var fnSubmitPoll = function () {
 				mcxDialog.alert("Q"+(i+1)+"항목은 필수항목입니다.");
 				return;
 			}
+			if($('input:radio[name='+pollQsq+'_'+(i+1)+']:checked').val() == '기타'){
+				if($('input:text[name=etc_input_'+pollQsq+']').val()==''){
+					mcxDialog.alert("Q"+(i+1)+"기타 내용을 입력해주세요.");
+					return;
+				}
+			}
 			if ($('input:radio[name='+pollQsq+'_'+(i+1)+']:checked').val() == '기타') {
 				pollQsq_10 += pollQsq +'-'+$('input:text[name=etc_input_'+pollQsq+']').val() + '/';
 			}else{

+ 89 - 0
src/main/webapp/biz/goods.js

@@ -404,4 +404,93 @@ var fnDeleteFilter = function (obj, gubun, staus, sizeGb){
 	$(obj).closest("span").remove();
 }
 
+var fnFilterSlider = function (gubun, min, max){
+	let tag = '';
+	let oriMin = '';
+	let oriMax = '';
+	if(gubun=='price'){
+		oriMin = $("#price_input_from").val();
+		oriMax = $("#price_input_to").val();
+	}else{
+		oriMin = $("#dcrate_input_from").val();
+		oriMax = $("#dcrate_input_to").val();
+	}
+
+	if(gubun=='price'){
+		if(min!=max){
+			tag += '<span id="priceSpan">'+ min +'원~'+max+'원';
+		}else{
+			tag += '<span id="priceSpan">'+max+'원';
+		}
+	}else{
+		if(min!=max){
+			tag += '<span id="dcrateSpan">'+ min +'~'+max+'%';
+		}else{
+			tag += '<span id="dcrateSpan">'+max+'%';
+		}
+	}
+	tag += '<a href="javascript:void(0);" class="filter_delete" onclick="fnDeleteFilterSlider(this,\''+gubun+'\', '+oriMin+', '+oriMax+');"></a >';
+	tag += '</span>';
+
+	$("#filterData").append(tag);
+
+	var tag2 = '';
+	if(gubun=='price'){
+		tag2 += '<input type="hidden" name="priceRow" value="'+min+'"/>\n';
+		tag2 += '<input type="hidden" name="priceHigh" value="'+max+'"/>\n';
+		$("#searchGoodsForm").append(tag2);
+		fnCategoryGoodsInfiniteScrollInit();
+	}else{
+		tag2 += '<input type="hidden" name="dcrateRow" value="'+min+'"/>\n';
+		tag2 += '<input type="hidden" name="dcrateHigh" value="'+max+'"/>\n';
+		$("#searchGoodsForm").append(tag2);
+		fnCategoryGoodsInfiniteScrollInit();
+	}
+
+	fnGoodsListSearch();
+}
+
+var fnDeleteFilterSlider = function (obj, gubun, minVal, maxVal){
+	if(gubun=='price'){
+		var $range = $(".dp .js-range-slider01, .sch_result .js-range-slider01");
+		var $inputFrom = $("#price_input_from");
+		var $inputTo = $("#price_input_to");
+		var instance;
+
+		instance = $range.data("ionRangeSlider");
+		instance.update({
+			from: 0
+		});
+		$inputFrom.val(minVal);
+
+		instance.update({
+			to: 5
+		});
+		$inputTo.prop("value",maxVal);
+		$("#searchGoodsForm input:hidden[name=priceRow]").remove();
+		$("#searchGoodsForm input:hidden[name=priceHigh]").remove();
+	}else{
+		var $range = $(".dp .js-range-slider02, .sch_result .js-range-slider02");
+		var $inputFrom = $("#dcrate_input_from");
+		var $inputTo = $("#dcrate_input_to");
+		var instance;
+
+		instance = $range.data("ionRangeSlider");
+		instance.update({
+			from: 0
+		});
+		$inputFrom.prop("value",minVal);
+
+		instance.update({
+			to: 10
+		});
+		$inputTo.prop("value",maxVal);
+		$("#searchGoodsForm input:hidden[name=dcrateRow]").remove();
+		$("#searchGoodsForm input:hidden[name=dcrateHigh]").remove();
+	}
+	$(obj).closest("span").remove();
+	fnCategoryGoodsInfiniteScrollInit();
+	fnGoodsListSearch();
+}
+
 //****************상품리스트  end **********************************

+ 1 - 1
src/main/webapp/ux/style24_link.js

@@ -610,7 +610,7 @@ function cfGoodsReviewDetail(goodsCd, bestYn, photoYn, reviewSq) {
 	var params = '?goodsCd=' + goodsCd;
 	params += '&reviewSq=' + reviewSq;
 	params += '&bestYn=' + bestYn;
-	params += '&photoYn=' + photoYn;debugger;
+	params += '&photoYn=' + photoYn;
 	
 	cfOpenLayer(_PAGE_GOODS_REVIEW_DETAIL_LAYER+params, 'layer_review_best');
 }