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

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

gagamel 5 лет назад
Родитель
Сommit
18a1e82b30
21 измененных файлов с 1073 добавлено и 200 удалено
  1. 0 1
      src/main/java/com/style24/front/biz/dao/TsfCustomerDao.java
  2. 2 1
      src/main/java/com/style24/front/biz/service/TsfCustomerService.java
  3. 4 8
      src/main/java/com/style24/front/biz/web/TsfCustomerController.java
  4. 6 1
      src/main/java/com/style24/front/biz/web/TsfDisplayController.java
  5. 24 2
      src/main/java/com/style24/front/biz/web/TsfMypageController.java
  6. 13 1
      src/main/java/com/style24/persistence/mybatis/shop/TsfDisplay.xml
  7. 6 3
      src/main/java/com/style24/persistence/mybatis/shop/TsfReview.xml
  8. 63 22
      src/main/java/com/style24/persistence/mybatis/shop/TsfWishlist.xml
  9. 1 0
      src/main/resources/i18n/messages/message_ko_KR.properties
  10. 1 0
      src/main/webapp/WEB-INF/views/mob/customer/UseTermsLayerFormMob.html
  11. 191 0
      src/main/webapp/WEB-INF/views/mob/mypage/MypageCustDeliveryAddrFormMob.html
  12. 250 49
      src/main/webapp/WEB-INF/views/mob/mypage/MypageReviewFormMob.html
  13. 1 1
      src/main/webapp/WEB-INF/views/web/display/BrandMainFormWeb.html
  14. 139 69
      src/main/webapp/WEB-INF/views/web/display/MallMainFormWeb.html
  15. 2 2
      src/main/webapp/WEB-INF/views/web/mypage/MypageCustDeliveryAddrFormWeb.html
  16. 277 0
      src/main/webapp/WEB-INF/views/web/mypage/MypageReviewDetailFormWeb.html
  17. 7 7
      src/main/webapp/WEB-INF/views/web/mypage/MypageReviewFormWeb.html
  18. 28 6
      src/main/webapp/WEB-INF/views/web/mypage/MypageWishListFormWeb.html
  19. 13 0
      src/main/webapp/ux/mo/css/common_m.css
  20. 0 6
      src/main/webapp/ux/pc/js/common-ui.js
  21. 45 21
      src/main/webapp/ux/style24_link.js

+ 0 - 1
src/main/java/com/style24/front/biz/dao/TsfCustomerDao.java

@@ -1,7 +1,6 @@
 package com.style24.front.biz.dao;
 
 import com.style24.core.support.annotation.ShopDs;
-import com.style24.persistence.domain.CustDeliveryAddr;
 import com.style24.persistence.domain.CustGrade;
 import com.style24.persistence.domain.CustSnsInfo;
 import com.style24.persistence.domain.Customer;

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

@@ -7,7 +7,7 @@ import java.util.List;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
 
-import com.gagaframework.web.util.GagaDateUtil;
+
 import com.style24.persistence.domain.CustGrade;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -284,6 +284,7 @@ public class TsfCustomerService {
 	 * @author jsshin
 	 * @since 2021. 02. 19
 	 */
+	@Transactional("shopTxnManager")
 	public boolean saveJoinCustomerSns (Customer customer) {
 		boolean isJoin = true;
 		String snsId = customer.getSnsType().equals(TscConstants.SnsType.YES24.value()) ? customer.getMemNo() : customer.getSnsId();

+ 4 - 8
src/main/java/com/style24/front/biz/web/TsfCustomerController.java

@@ -4,14 +4,11 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
 
 import com.style24.front.biz.thirdparty.Yes24Login;
-import com.style24.front.support.env.TsfConstants;
 import com.style24.persistence.domain.CustSnsInfo;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpRequest;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -96,7 +93,7 @@ public class TsfCustomerController extends TsfBaseController {
 		boolean isFind = false;
 
 		if (StringUtils.isBlank(customer.getAuthMethod())) {
-			throw new IllegalStateException("인증방법이 없습니다. <br>관리자에게 문의하시기 바랍니다.");
+			throw new IllegalStateException(message.getMessage("CUST_0005"));
 		}
 
 		Customer params = new Customer();
@@ -165,7 +162,7 @@ public class TsfCustomerController extends TsfBaseController {
 		boolean isFind = false;
 
 		if (StringUtils.isBlank(customer.getAuthMethod())) {
-			throw new IllegalStateException("인증방법이 없습니다. <br>관리자에게 문의하시기 바랍니다.");
+			throw new IllegalStateException(message.getMessage("CUST_0005"));
 		}
 
 		// 고객정보 찾기 - 아이디, 이름, 이메일
@@ -210,7 +207,7 @@ public class TsfCustomerController extends TsfBaseController {
 		boolean isFind = false;
 
 		if (StringUtils.isBlank(customer.getAuthMethod())) {
-			throw new IllegalStateException("인증방법이 없습니다. <br>관리자에게 문의하시기 바랍니다.");
+			throw new IllegalStateException(message.getMessage("CUST_0005"));
 		}
 
 		Customer params = new Customer();
@@ -875,8 +872,7 @@ public class TsfCustomerController extends TsfBaseController {
 
 		mav.addObject("custNm", customer.getCustNm());
 
-//		mav.setViewName(super.getDeviceViewName("customer/ConsentUseInfoForm"));
-		mav.setViewName("web/customer/ConsentUseInfoFormWeb");
+		mav.setViewName(super.getDeviceViewName("customer/ConsentUseInfoForm"));
 
 		return mav;
 	}

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

@@ -747,7 +747,12 @@ public class TsfDisplayController extends TsfBaseController {
 	@ResponseBody
 	public Collection<Contents> getGnbTabBannerlist(Contents contents) {
 //		contents.setContentsLoc("STAB003");
-		contents.setContentsLoc("SCM005");
+		if(contents.getCateNo().equals(3000)){
+			contents.setContentsLoc("SOM005");
+		}else{
+			contents.setContentsLoc("SCM005");
+		}
+
 		return displayService.getGnbTabBannerlist(contents);
 	}
 

+ 24 - 2
src/main/java/com/style24/front/biz/web/TsfMypageController.java

@@ -1569,8 +1569,6 @@ public class TsfMypageController extends TsfBaseController {
 		TscPageRequest pageable = new TscPageRequest((review.getPageNo() > 0 ? review.getPageNo() - 1 : 0), review.getPageSize(), review.getPageUnit());
 		pageable.setTotalCount(reviewService.getCompleteReviewList(review).size());
 		review.setPageable(pageable);
-		log.info("pageable: {}", pageable);
-		log.info("totalCount {}", pageable.getTotalCount());
 		
 		result.set("paging1", review);
 		
@@ -1705,6 +1703,30 @@ public class TsfMypageController extends TsfBaseController {
 		return result;
 	}
 	
+	/**
+	 * 상품상세 -  상품평 상세 레이어
+	 * @return
+	 * @author sowon
+	 * @since 2021. 5. 3
+	 */
+	@PostMapping("/review/detail/layer")
+	public ModelAndView mypageReviewDetailForm(Review review) {
+		ModelAndView mav = new ModelAndView();
+		// 상품관련 기본값 설정(회원 등급, 앱, PC/모바일 등)
+		Goods paramsGoods = new Goods();
+		paramsGoods.setGoodsCd(review.getGoodsCd());
+
+		// 상품 기본정보
+		mav.addObject("params", paramsGoods);
+
+		mav.addObject("review", review);
+
+		mav.addObject("reviewList", reviewService.getReviewList(review));
+
+		mav.setViewName(super.getDeviceViewName("mypage/MypageReviewDetailForm"));
+		return mav;
+	}
+	
 	/**
 	 * 마이페이지 어드민 댓글 확인
 	 *

+ 13 - 1
src/main/java/com/style24/persistence/mybatis/shop/TsfDisplay.xml

@@ -1534,7 +1534,15 @@
 	<!-- GNB TAB 기획전배너 조회 -->
 	<select id="getGnbTabBannerList" parameterType="Contents" resultType="Contents">
 		/* TsfDisplay.getGnbTabBannerList */
-		SELECT (SELECT CONTENTS_TITLE FROM TB_MAIN_LAYOUT WHERE 1=1 AND CATE_NO = #{cateNo} AND CONTENTS_LOC = #{contentsLoc}) AS GNB_TAB_TITLE
+		SELECT
+		       <choose>
+				   <when test="contentsLoc != null and contentsLoc =='SOM005'">
+					   (SELECT CONTENTS_TITLE FROM TB_MAIN_LAYOUT WHERE 1=1 AND CATE_NO = 1713 AND CONTENTS_LOC = #{contentsLoc}) AS GNB_TAB_TITLE
+				   </when>
+				   <otherwise>
+					   (SELECT CONTENTS_TITLE FROM TB_MAIN_LAYOUT WHERE 1=1 AND CATE_NO = #{cateNo} AND CONTENTS_LOC = #{contentsLoc}) AS GNB_TAB_TITLE
+				   </otherwise>
+			   </choose>
 		      , Z.BANNER_GB
 		      , Z.IMG_PATH1
 		      , Z.STR_VAR1
@@ -1551,6 +1559,8 @@
 		            AND     CATE_NO = #{cateNo}
 		            AND     CONTENTS_LOC = #{contentsLoc}
 		            AND     USE_YN = 'Y'
+		            AND    DISP_STDT <![CDATA[<=]]> NOW()
+		            AND    DISP_EDDT <![CDATA[>=]]> NOW()
 		            UNION ALL
 		            SELECT  'PLAN' AS BANNER_GB
 		                  , A.MAIN_PIMG AS IMG_PATH1
@@ -1563,6 +1573,8 @@
 		              AND  B.CATE_NO = #{cateNo}
 		              AND  A.OPEN_YN = 'Y'
 		              AND  B.DISP_YN = 'Y'
+		              AND  A.DISP_STDT <![CDATA[<=]]> NOW()
+		              AND  A.DISP_EDDT <![CDATA[>=]]> NOW()
 		        ) Z
 		LIMIT 2
 	</select>

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

@@ -347,7 +347,8 @@
 		/* TsfReivew.getCompleteReviewList */
 		<include refid="selectForPagingHeader"/>
 		SELECT GROUP_CONCAT(Z.ITEM_NM ORDER BY Z.ORD_DTL_ITEM_SQ SEPARATOR '!@!') AS ITEM_NM
-		     , GROUP_CONCAT(Z.COLOR_NM ORDER BY Z.ORD_DTL_ITEM_SQ) AS COLOR_NM
+		     -- , GROUP_CONCAT(Z.COLOR_NM ORDER BY Z.ORD_DTL_ITEM_SQ) AS COLOR_NM
+		     , GROUP_CONCAT(CONCAT(OPT_CD1_NM,'/', OPT_CD2) ORDER BY Z.ORD_DTL_ITEM_SQ) AS COLOR_NM
 		     , GROUP_CONCAT(Z.OPT_CD1 ORDER BY Z.ORD_DTL_ITEM_SQ) AS OPT_CD1
 		     , GROUP_CONCAT(Z.OPT_CD2 ORDER BY Z.ORD_DTL_ITEM_SQ) AS OPT_CD2
 		     , GROUP_CONCAT(Z.OPT_CD1_NM ORDER BY Z.ORD_DTL_ITEM_SQ) AS OPT_CD1_NM
@@ -478,7 +479,8 @@
 	<select id="getReviewGoodsInfo" parameterType="Review" resultType="Review">
 		/* TsfReivew.getReviewGoodsInfo */
 		SELECT GROUP_CONCAT(Z.ITEM_NM ORDER BY Z.ORD_DTL_ITEM_SQ SEPARATOR '!@!') AS ITEM_NM
-		     , GROUP_CONCAT(Z.COLOR_NM ORDER BY Z.ORD_DTL_ITEM_SQ) AS COLOR_NM
+		  -- , GROUP_CONCAT(Z.COLOR_NM ORDER BY Z.ORD_DTL_ITEM_SQ) AS COLOR_NM
+		     , GROUP_CONCAT(CONCAT(OPT_CD1_NM,'/', OPT_CD2) ORDER BY Z.ORD_DTL_ITEM_SQ) AS COLOR_NM
 		     , GROUP_CONCAT(Z.OPT_CD1 ORDER BY Z.ORD_DTL_ITEM_SQ) AS OPT_CD1
 		     , GROUP_CONCAT(Z.OPT_CD2 ORDER BY Z.ORD_DTL_ITEM_SQ) AS OPT_CD2
 		     , GROUP_CONCAT(Z.OPT_CD1_NM ORDER BY Z.ORD_DTL_ITEM_SQ) AS OPT_CD1_NM
@@ -906,7 +908,8 @@
 		/* TsfReivew.getAlreadyReviewList */
 		<include refid="selectForPagingHeader"/>
 		        SELECT GROUP_CONCAT(Z.ITEM_NM ORDER BY Z.ORD_DTL_ITEM_SQ SEPARATOR '!@!') AS ITEM_NM
-		             , GROUP_CONCAT(Z.COLOR_NM ORDER BY Z.ORD_DTL_ITEM_SQ) AS COLOR_NM
+		          -- , GROUP_CONCAT(Z.COLOR_NM ORDER BY Z.ORD_DTL_ITEM_SQ) AS COLOR_NM
+		             , GROUP_CONCAT(CONCAT(OPT_CD1_NM,'/', OPT_CD2) ORDER BY Z.ORD_DTL_ITEM_SQ) AS COLOR_NM
 		             , GROUP_CONCAT(Z.OPT_CD1 ORDER BY Z.ORD_DTL_ITEM_SQ) AS OPT_CD1
 		             , GROUP_CONCAT(Z.OPT_CD2 ORDER BY Z.ORD_DTL_ITEM_SQ) AS OPT_CD2
 		             , GROUP_CONCAT(Z.OPT_CD1_NM ORDER BY Z.ORD_DTL_ITEM_SQ) AS OPT_CD1_NM

+ 63 - 22
src/main/java/com/style24/persistence/mybatis/shop/TsfWishlist.xml

@@ -101,28 +101,69 @@
 			    AND    (GI.DEFAULT_IMG_YN = 'Y' OR GI.MOUSEOVER_IMG_YN = 'Y')
 			    GROUP  BY PG.GOODS_CD
 			)
-			SELECT 
-			       PG.BRAND_GROUP_NM
-			     , PG.GOODS_CD
-			     , PG.STOCK_QTY
-			     , PG.MIN_ORD_QTY
-			     , PG.GOODS_TYPE
-			     , PG.OPT_CD
-			     , 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(#{frontGb},PG.GOODS_CD,PG.CURR_PRICE,#{custGb})                     AS CURR_PRICE    /*현재판매가*/
-			     , GI.SYS_IMG_NM
-			     , GI.SYS_IMG_NM2
-				FROM   TAB_PLAN_GOODS PG
-			INNER JOIN TAB_GOODS_IMG GI ON PG.GOODS_CD = GI.GOODS_CD
-			)Z
+			, TAB_COLORCHIP AS (
+		            /* 상품 컬러칩 */
+		            SELECT PG.GOODS_CD
+		                 , GROUP_CONCAT(DISTINCT CONCAT(C.COLOR_CD,':',CC.CD_DESC) ORDER BY CC.DISP_ORD SEPARATOR ',') AS COLOR_CHIPS
+		            FROM   TAB_PLAN_GOODS PG
+		                 , TB_OPTION O
+		                 , TB_COLOR C
+		                 , TB_COMMON_CODE CC
+		            WHERE  PG.GOODS_CD = O.GOODS_CD
+		            AND    O.OPT_CD1 = C.COLOR_CD
+		            AND    C.COLOR_GRP_CD = CC.CD
+		            AND    O.DISP_YN = 'Y'
+		            AND    C.USE_YN = 'Y'
+		            AND    CC.USE_YN = 'Y'
+		            GROUP  BY PG.GOODS_CD
+		        )
+		    , TAB_GOODS_BENEFIT AS (
+		            /* 상품혜택 */
+		            SELECT GOODS_CD
+		                 , GROUP_CONCAT(CONCAT(BENEFIT_GB,':',BENEFIT_NM) ORDER BY NUMB SEPARATOR ',') AS ICON
+		            FROM   (
+		                    SELECT PG.GOODS_CD
+		                         , GB.BENEFIT_GB
+		                         , CASE WHEN GB.BENEFIT_GB = '10' THEN '쿠폰할인'
+		                                WHEN GB.BENEFIT_GB = '20' THEN '무료배송'
+		                                WHEN GB.BENEFIT_GB = '30' THEN '사은품'
+		                                ELSE '신상'
+		                           END                               AS BENEFIT_NM
+		                         , RANK() OVER(PARTITION BY PG.GOODS_CD
+		                                       ORDER BY GB.BENEFIT_GB
+		                                              , GB.GOODS_CD) AS NUMB
+		                    FROM   TAB_PLAN_GOODS PG
+		                         , TB_GOODS_BENEFIT GB
+		                    WHERE  PG.GOODS_CD = GB.GOODS_CD
+		                   ) Z
+		            GROUP  BY GOODS_CD
+		        )
+		    SELECT 
+		           PG.BRAND_GROUP_NM
+		         , PG.GOODS_CD
+		         , PG.STOCK_QTY
+		         , PG.MIN_ORD_QTY
+		         , PG.GOODS_TYPE
+		         , PG.OPT_CD
+		         , 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 
+		         , C.COLOR_CHIPS                                                                                                      /*컬러칩*/
+		         , GB.ICON 
+		         , PG.REG_DT
+		         , FN_GET_BENEFIT_PRICE(#{frontGb},PG.GOODS_CD,PG.CURR_PRICE,#{custGb})                     AS CURR_PRICE    /*현재판매가*/
+		         , GI.SYS_IMG_NM
+		         , GI.SYS_IMG_NM2
+		    	FROM   TAB_PLAN_GOODS PG
+		    INNER JOIN TAB_GOODS_IMG GI ON PG.GOODS_CD = GI.GOODS_CD
+		    LEFT OUTER JOIN TAB_COLORCHIP C ON PG.GOODS_CD = C.GOODS_CD
+		    LEFT OUTER JOIN TAB_GOODS_BENEFIT GB ON PG.GOODS_CD = GB.GOODS_CD
+		    )Z
 		ORDER BY Z.REG_DT DESC
 		<if test="quickYn != null and quickYn != ''">
 			,Z.STOCK_QTY

+ 1 - 0
src/main/resources/i18n/messages/message_ko_KR.properties

@@ -76,6 +76,7 @@ CUST_0001=\uC815\uC0C1\uC801\uC73C\uB85C \uD0C8\uD1F4\uB418\uC5C8\uC2B5\uB2C8\uB
 CUST_0002=\uC774\uBBF8 \uD0C8\uD1F4\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
 CUST_0003=\uC9C4\uD589\uC911\uC778 \uAC70\uB798\uAC00 \uC788\uC2B5\uB2C8\uB2E4. \uC9C4\uD589\uC911\uC778 \uAC70\uB798\uB97C \uC644\uB8CC \uD6C4 \uD0C8\uD1F4 \uC2E0\uCCAD\uC744 \uD574\uC8FC\uC138\uC694.
 CUST_0004=\uD0C8\uD1F4\uAC00 \uC815\uC0C1\uC801\uC73C\uB85C \uCC98\uB9AC\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \uB2E4\uC2DC \uC2DC\uB3C4\uD574 \uC8FC\uC138\uC694.
+CUST_0005=\uC778\uC99D\uBC29\uBC95\uC774 \uC5C6\uC2B5\uB2C8\uB2E4. <br>\uAD00\uB9AC\uC790\uC5D0\uAC8C \uBB38\uC758\uD558\uC2DC\uAE30 \uBC14\uB78D\uB2C8\uB2E4.
 
 #\uC0AC\uBC29\uB137
 SABANGNET_0001=\uC131\uACF5\uC801\uC73C\uB85C \uC0C1\uD488 \uC815\uBCF4\uAC00 \uC804\uC1A1\uB418\uC5C8\uC2B5\uB2C8\uB2E4.(\uCD1D {0}\uAC74 \uC911 {1}\uAC74 \uC131\uACF5)

+ 1 - 0
src/main/webapp/WEB-INF/views/mob/customer/UseTermsLayerFormMob.html

@@ -1,3 +1,4 @@
+<!DOCTYPE html>
 <html lang="ko"
 	  xmlns:th="http://www.thymeleaf.org">
 <!--

+ 191 - 0
src/main/webapp/WEB-INF/views/mob/mypage/MypageCustDeliveryAddrFormMob.html

@@ -0,0 +1,191 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org"
+	xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+	layout:decorator="mob/common/layout/MypageLayoutMob">
+<!--
+ *******************************************************************************
+ * @source  : MypageCustDeliveryAddrFormMob.html
+ * @desc    : 마이페이지 > 배송지관리 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2021 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.05.03   jsshin      최초 작성
+ *******************************************************************************
+ -->
+<body>
+<th:block layout:fragment="content">
+<main class="container my">
+	<section class="content my_delivery">
+		<div class="inner">
+			<div class="inner wide">
+				<div id="custDeliveryList" class="delivery_list"></div>
+				<div id="nodata" class="nodata" style="display: none;">
+					<div class="txt_box">
+						<p>
+							등록된 배송지가 없습니다.<br/>
+						</p>
+					</div>
+				</div>
+				<div class="inner wide">
+					<div class="btn_group btn_group_flex">
+						<button type="button" class="btn btn_dark" id="btnAdrsaddPop">
+							<span>배송지 추가</span>
+						</button>
+					</div>
+				</div>
+			</div>
+		</div>
+	</section>
+</main>
+<script th:inline="javascript">
+	/*<![CDATA[*/
+
+	var fnCustDeliveryAddList = function () {
+		$.get('/mypage/customer/delivery/addr/list', fnCustDeliveryAddListCallback);
+	}
+
+	var fnCustDeliveryAddListCallback = function (result) {
+		let html = '';
+		if (result.length < 1) {
+			$('#nodata').show();
+		} else {
+			$('#nodata').hide();
+			$.each(result, function (idx, custDeliveryAddr){
+				if (custDeliveryAddr.defaultYn  === 'Y') {
+					html += '<div class="ship_info active">\n';
+				} else {
+					html += '<div class="ship_info">\n';
+				}
+				html +=	'        <dl>\n';
+				html +=	'            <div class="name">\n';
+				html +=	'                <dt><span class="sr-only">배송지명</span></dt>\n';
+				html +=	'                    <dd>\n';
+				html +=	'                       '+custDeliveryAddr.recipNm +'\n';
+				html +=	'                       <div class="badge_wrap">\n';
+				if (custDeliveryAddr.defaultYn  === 'Y') {
+					html += '                       <em class="order_badge">기본배송지</em>\n';
+				}
+				if (custDeliveryAddr.shotDelvUseYn  === 'Y') {
+					html += '                       <em class="order_badge order_bullet_badge">총알배송</em>\n';
+				}
+				html +=	'                       </div>\n';
+				html +=	'                    </dd>\n';
+				html +=	'            </div>\n';
+				html +=	'            <div class="phone">\n';
+				html +=	'                <dt><span class="sr-only">휴대폰 번호</span></dt>\n';
+				html +=	'                <dd>'+custDeliveryAddr.recipPhnno+'</dd>\n';
+				html +=	'            </div>\n';
+				html +=	'            <div class="addr">\n';
+				html +=	'               <dt><span class="sr-only">배송주소</span></dt>\n';
+				html +=	'               <dd>'+custDeliveryAddr.recipBaseAddr + custDeliveryAddr.recipDtlAddr +'</dd>\n';
+				html +=	'            </div>\n';
+				html +=	'            <div class="ship_request">\n';
+				html +=	'                <dl>\n';
+				html +=	'                    <dt>배송요청 사항</dt>\n';
+				html +=	'                    <dd>'+custDeliveryAddr.delvMemo+'</dd>\n';
+				html +=	'                </dl>\n';
+				html +=	'            </div>\n';
+				html +=	'        </dl>\n';
+				html +=	'        <div class="btn_group btn_group_flex">\n';
+				html +=	'            <div>\n';
+				html +=	'                <button type="button" class="btn btn_gost" onclick="fnModiFyCustDelvAddr(\''+custDeliveryAddr.custDelvAddrSq+'\')">\n';
+				html +=	'                    <span>수정</span>\n';
+				html +=	'                </button>\n';
+				html +=	'            </div>\n';
+				html +=	'            <div>\n';
+				html +=	'                <button type="button" class="btn btn_dark" onclick="fnDeleteCustDelvAddr(\''+custDeliveryAddr.custDelvAddrSq+'\')">\n';
+				html +=	'                   <span>삭제</span>\n';
+				html +=	'                </button>\n';
+				html +=	'            </div>\n';
+				html +=	'        </div>\n';
+				html +=	'   </div>\n';
+			});
+		}
+		$('#custDeliveryList').html(html);
+	}
+
+	// 배송지 추가
+	$('#btnAdrsaddPop').on('click', function () {
+		$.ajax( {
+			type		: "POST",
+			url 		: '/common/delvAddrAddPop',
+			dataType 	: 'html',
+			beforeSend : function(xhr, settings) {
+				xhr.setRequestHeader("AJAX"			, "true");
+				xhr.setRequestHeader('Accept'		, 'application/json');
+				xhr.setRequestHeader('Content-Type'	, 'application/json');
+			},
+			success 	: function(result) {
+				$("#adrsAddPop .modal-dialog .modal-content").html(result);
+				$("#adrsAddPop").modal("show");
+			}
+		});
+	});
+
+	var delvAddrSet = function (delvObj) {
+		if(!gagajf.isNull(delvObj.custDelvAddrSq)) {
+			fnCustDeliveryAddList();
+		}
+	};
+
+	var fnModiFyCustDelvAddr = function (custDelvAddrSq) {
+		let params = {}
+		params.custDelvAddrSq = custDelvAddrSq;
+
+		$.ajax( {
+			type		: "POST",
+			url 		: '/common/delvAddrModifyPop',
+			data		: JSON.stringify(params),
+			dataType 	: 'html',
+			beforeSend : function(xhr, settings) {
+				xhr.setRequestHeader("AJAX"			, "true");
+				xhr.setRequestHeader('Accept'		, 'application/json');
+				xhr.setRequestHeader('Content-Type'	, 'application/json');
+			},
+			success 	: function(result) {
+				$("#adrsModifyPop .modal-dialog .modal-content").html(result);
+				$("#adrsModifyPop").modal("show");
+			}
+		});
+	};
+
+	var fnDeleteCustDelvAddr = function (custDelvAddrSq) {
+		let params = {}
+		params.custDelvAddrSq = custDelvAddrSq;
+		let jsonData = JSON.stringify(params);
+		gagajf.ajaxJsonSubmit("/mypage/customer/delivery/addr/delete", jsonData, function (result) {
+			if (result.isSuccess) {
+				fnCustDeliveryAddList();
+			} else {
+				mcxDialog.alert("배송지 삭제를 실패 하였습니다.");
+				return;
+			}
+		})
+	}
+
+
+	$(document).ready(function() {
+
+		$('#htopTitle').text('배송지 관리');
+
+		// 배송목록 조회
+		fnCustDeliveryAddList();
+
+		// $(document).on("scroll",function(){
+		// 	if($(".tabbar").hasClass("fixed")) {
+		// 		$(".my .my_delivery .inner > .btn_group").addClass('active');
+		// 	}else{
+		// 		$(".my .my_delivery .inner > .btn_group").removeClass('active');
+		// 	}
+		// });
+	});
+
+	/*]]>*/
+</script>
+</th:block>
+</body>
+</html>

+ 250 - 49
src/main/webapp/WEB-INF/views/mob/mypage/MypageReviewFormMob.html

@@ -50,59 +50,33 @@
 						</ul>
 						<div class="tabContents">
 							<div class="tab_cont active">
+							
+								<div class="once" th:if="${adminCount.count>0}" id="check_notice">
+									<div class="alert" role="alert">
+										<p>관리자가 댓글을 남긴 상품평이 있습니다.</p>
+										<p class="formOnly" th:onclick="fnMove([[${adminCount.reviewSq}]])">바로확인</p>
+										<button type="button" class="alertCls" onclick="location.href='#newreply2'" data-dismiss="alert"><span aria-hidden="true">바로 확인</span><span class="sr-only">move and Close</span></button>
+									</div>
+								</div>
 								<!-- tab_cont Start -->
-								<div class="inner">
-
+								<div class="inner" id="reviewList">
 									<div class="part_goods">
 										<!-- 굿즈_리뷰 -->
-										<div class="goods_section">
-											<div class="goods_detail">
-												<a href="">
-													<div class="thumb_box">
-														<img src="/images/mo/thumb/tmp_pdClickother1.jpg" alt="tmp_pdClickother1">
-													</div>
-													<div class="info_box">
-														<div class="od_name">
-															<div class="goods_date"><span class="date">2020.10.25</span> 구매</div>
-															<div class="brand">
-																<span>Mollimelli 몰리멜리</span>
-															</div>
-															<div class="name">몰리겨울상하복 균일가 택1 유아동/상하복/기모상하복/상하의세트 몰리겨울상하복 균일가 택1</div>
-														</div>
-														<div class="od_opt">
-															<div class="option">
-																<em>Black</em><em>XXL</em>
-															</div>
-														</div>
-													</div>
-												</a>
-											</div>
-											<div class="goods_btn_wrap btn_group_flex">
-												<div><button type="button" class="btn btn_default"><span>리뷰쓰기(</span><em>15</em><span>일 남음)</span></button></div>
-											</div>
-										</div>
+										
 										<!-- //굿즈_리뷰 -->
 									</div>
-									
+									<div class="nodata" id="nodata1" style="display: none;">
+									<div class="txt_box">
+										<p>
+											작성 가능한 리뷰가 없습니다.<br>
+										</p>
+									</div>
 								</div>
+							</div>
 								<!-- // tab_cont End -->
 							</div>
 							<div class="tab_cont ">
 								<!-- tab_cont Start -->
-
-								<div class="once">
-									<div class="alert" role="alert">
-										<p>관리자가 댓글을 남긴 상품평이 있습니다.</p>
-										<p class="formOnly">바로확인</p>
-										<button type="button" class="alertCls" onclick="location.href='#newreply2'" data-dismiss="alert"><span aria-hidden="true">바로 확인</span><span class="sr-only">move and Close</span></button>
-										<!--
-											.reply_box(관리자댓글)가 추가된 
-											부모, class="reviewMy"의 
-											id="newreply2"로 이동 됩니다.
-										 -->
-									</div>
-								</div>
-
 								<div class="inner">
 									<div class="part_goods">
 										<!-- 굿즈_리뷰 -->
@@ -233,6 +207,16 @@
 				</div>
 			</section>
 		</main>
+<form id="searchForm1" name="searchForm1" th:action="@{'/mypage/complete/review/list'}" th:method="post">
+	<input type="hidden" name="pageNo" value="1" />
+	<input type="hidden" name="pageSize" value="10" />
+</form>
+<form id="searchForm2" name="searchForm2" th:action="@{'/mypage/already/review/list'}" th:method="post">
+	<input type="hidden" name="pageNo2" value="1" />
+	<input type="hidden" name="pageSize2" value="10" />
+</form>
+<script src="/ux/plugins/jquery/jquery.history.min.js"></script>
+<script src="/ux/plugins/gaga/gaga.infinite.scrollLayer.js"></script>
 <script th:inline="javascript">
 /*<![CDATA[*/
 	let imageUrl = [[${@environment.getProperty('upload.goods.view')}]];
@@ -242,21 +226,238 @@
 	$("#completeReview").click(function() {
 		$("#alreadyReview").removeClass("active");
 		$("#completeReview").addClass("active");
-		$(".check_notice").hide();
-		gagaPaging.init('searchForm1', fnSearchCallback1, 'paging', 10);
-		gagaPaging.load(1);
+		$("#check_notice").hide();
+		
 	})
 	
+	var fnGetInfiniteScrollCompleteDataList = function(pageNum) {
+	
+		$("#searchForm1 input[name=pageNo]").val(pageNum+1);
+		// 콜백함수인 gagaInfiniteScroll.jsonToHtml 에서는 fnDrawInfiniteScrollData 함수를 호출한다.
+		gagajf.ajaxFormSubmit("/mypage/complete/review/list", document.goodsReviewForm,  gagaInfiniteScroll.jsonToHtml);
+	}
+	
+	
 	$("#alreadyReview").click(function() {
 		$("#completeReview").removeClass("active");
 		$("#alreadyReview").addClass("active");
-		$(".check_notice").show();
-		gagaPaging.init('searchForm2', fnSearchCallback2, 'paging2', 10);
-		gagaPaging.load(1);
+		$("#check_notice").show();
+		
+		var jsonData = JSON.stringify(data);
+		gagajf.ajaxJsonSubmit('/mypage/already/review/list', jsonData,	function(result) {
+			if (result.dataList1 != null && result.dataList1.length > 0) {
+				$.each(result.dataList1, function(idx, item) {
+					let html = '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					html += '';
+					$('#reviewList').append(html);
+				})
+			}else{
+				$('#nodata2').show();
+			}
+		});
+	
 	})
 /*]]>*/
  
  $(document).ready(function() {
+	 $("#completeReview").trigger('click');
  	$('#htopTitle').text('리뷰');
 
  });

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

@@ -281,7 +281,7 @@
 									<div class="swiper-wrapper">
 										<th:block th:each="planningData, planningStat : ${brandMainLayoutData.planningList}">
 										<div class="swiper-slide">
-											<a href="javascript:void(0);" th:onclick="cfnGoToGoodsDetail('','','','SBM011',[[${planningData.planSq}]],'');">
+											<a href="javascript:void(0);" th:onclick="cfnGoToPlanDetail([[${planningData.planSq}]],[[${brandGroupInfo.brandGroupNo}]]);">
 												<div class="txtWrap">
 													<p th:text="${planningData.planNm}">티.바지.점퍼의 계절!</p>
 													<!--<p>가을 전격 오픈</p>-->

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

@@ -203,17 +203,23 @@
 						<div class="cont_body">
 							<th:block th:each="ContentsData, ContentsStat : ${mainLayoutData.ContentsList}">
 								<th:block th:if="${ContentsData.contentsType!=null && ContentsData.contentsType!=''}">
-									<div class="ui_row" th:if="${ContentsData.contentsType=='1'}">
-										<div class="ui_col_6">
-											<a th:href="${ContentsData.strVar1}"><img th:src="${@environment.getProperty('domain.image')+ContentsData.imgPath1}" alt=""></a>
+									<div class="bnnbox_crop" th:if="${ContentsData.contentsType=='1'}">
+										<div class="bnn_half" style="width: 100%;height: 230px;float: none;overflow: hidden;">
+											<a th:href="${ContentsData.strVar1}" target="_blank">
+												<img th:src="${@environment.getProperty('domain.image')+ContentsData.imgPath1}" alt="">
+											</a>
 										</div>
 									</div>
-									<div class="ui_row" th:if="${ContentsData.contentsType=='2'}">
-										<div class="ui_col_6">
-											<a th:href="${ContentsData.strVar1}"><img th:src="${@environment.getProperty('domain.image')+ContentsData.imgPath1}" alt=""></a>
+									<div class="bnnbox_crop" th:if="${ContentsData.contentsType=='2'}">
+										<div class="bnn_half">
+											<a th:href="${ContentsData.strVar1}" target="_blank">
+												<img th:src="${@environment.getProperty('domain.image')+ContentsData.imgPath1}" alt="">
+											</a>
 										</div>
-										<div class="ui_col_6">
-											<a th:href="${ContentsData.strVar2}"><img th:src="${@environment.getProperty('domain.image')+ContentsData.imgPath2}" alt=""></a>
+										<div class="bnn_half">
+											<a th:href="${ContentsData.strVar2}" target="_blank">
+												<img th:src="${@environment.getProperty('domain.image')+ContentsData.imgPath2}" alt="">
+											</a>
 										</div>
 									</div>
 								</th:block>
@@ -836,11 +842,11 @@ if ( (navigator.appName == 'Netscape' && agent.indexOf('trident') != -1) || (age
 		loop: true,
 		slidesPerView: 'auto',
 		spaceBetween: 100,
-		
-		// initialSlide: 0, 
+
+		// initialSlide: 0,
 		// 초기 슬라이드의 색인 번호입니다
 		centeredSlides: true,
-		// slidesOffsetBefore: 250, 
+		// slidesOffsetBefore: 250,
 		// 컨테이너 시작 부분 (모든 슬라이드 이전)에 슬라이드 오프셋 추가 (픽셀 단위)
 		speed : 1000,
 		// Navigation arrows
@@ -865,11 +871,11 @@ if ( (navigator.appName == 'Netscape' && agent.indexOf('trident') != -1) || (age
 		loop: true,
 		slidesPerView: 'auto',
 		spaceBetween: 70,
-		
-		// initialSlide: 0, 
+
+		// initialSlide: 0,
 		// 초기 슬라이드의 색인 번호입니다
 		centeredSlides: true,
-		// slidesOffsetBefore: 250, 
+		// slidesOffsetBefore: 250,
 		// 컨테이너 시작 부분 (모든 슬라이드 이전)에 슬라이드 오프셋 추가 (픽셀 단위)
 		speed : 1000,
 		// Navigation arrows
@@ -929,22 +935,22 @@ var main_trendy_slide = new Swiper('.main_trendy .post-trendy', {
 main_trendy_slide.on('slideChange', function () {
 	var newitemIndex = main_trendy_slide.activeIndex;
 	var slideWidth = $(".main_trendy .swiper-slide-visible").eq(0).width() + 22;
-	
+
 	$(".main_trendy .swiper-slide").removeClass('scaleBig');
 	$(".main_trendy .swiper-slide-visible").eq(0).addClass('scaleBig');
 	$(".main_trendy .swiper-slide-visible").eq(3).addClass('scaleBig');
-	
+
 	$(".main_trendy .swiper-wrapper").css("transform","translateX(-"+ (slideWidth * newitemIndex) +"px)");
 });
 
 main_trendy_slide.on('reachEnd', function () {
 	var newitemIndex = main_trendy_slide.activeIndex + 1;
 	var slideWidth = $(".main_trendy .swiper-slide-visible").eq(0).width() + 22;
-	
+
 	$(".main_trendy .swiper-slide").removeClass('scaleBig');
 	$(".main_trendy .swiper-slide-visible").eq(1).addClass('scaleBig');
 	$(".main_trendy .swiper-slide-visible").eq(4).addClass('scaleBig');
-	
+
 	$(".main_trendy .swiper-wrapper").css("transform","translateX(-"+ (slideWidth * newitemIndex) +"px)");
 	function l(n) {
 		if (n.direction !== "none")
@@ -1002,52 +1008,116 @@ var main_deal_slide = new Swiper ('.main_deal .post-deal', {
 	},
 });
 
-/* SLIDE - MAIN_PICK */
-var main_pick_nav = new Swiper('.main_pick .post-pick-nav', { //top
-	initialSlide: 1,
-	slidesPerView: 6,
-	// slidesPerGroup: 6,
-	loop: true,
-	loopeSlides: 6,
-	loopFillGroupWithBlank : true,
-	// slideToClickedSlide : true,
-	slideToClickedSlide : true,
-	loopAdditionalSlides : 1,
-	// centeredSlides : true,
-	watchSlidesVisibility: true,
-	watchSlidesProgress: true,
-	freeMode: false,
-	navigation: {
-		nextEl: '.main_pick .swiper-button-next',
-		prevEl: '.main_pick .swiper-button-prev',
-	},
-	autoplay: {
-		delay: 5000,
-		disableOnInteraction: false,
-	},
-});
-var main_pick_post = new Swiper('.main_pick .post-pick-for', { //thumbs
-	initialSlide: 1,
-	slidesPerView: 1,
-	// slidesPerGroup: 6,
-	loop: true,
-	loopeSlides: 6,
-	spaceBetween: 10,
-	// loopFillGroupWithBlank : true,
-	loopAdditionalSlides: 1,
-	allowTouchMove: false,
-	navigation: {
-		nextEl: '.main_pick .swiper-button-next',
-		prevEl: '.main_pick .swiper-button-prev',
-	},
-	thumbs: {
-		swiper: main_pick_nav
-	},
-	autoplay: {
-		delay: 5000,
-		disableOnInteraction: false,
-	},
-});
+/* 브랜드 PICK 갯수체크 210430_수정 */
+var pickCont = $('.post-pick-nav .swiper-slide');
+var pickLength = pickCont.length;
+if (pickLength < 2) {
+	/* SLIDE - MAIN_PICK */
+	var main_pick_nav = new Swiper('.main_pick .post-pick-nav', { //top
+		initialSlide: 0,
+		slidesPerView: 6,
+		// slidesPerGroup: 6,
+		loop: false,
+		watchOverflow : true,
+		loopeSlides: 6,
+		loopFillGroupWithBlank : true,
+		// slideToClickedSlide : true,
+		slideToClickedSlide : true,
+		loopAdditionalSlides : 1,
+		// centeredSlides : true,
+		watchSlidesVisibility: true,
+		watchSlidesProgress: true,
+		freeMode: false,
+		navigation: {
+			nextEl: '.main_pick .swiper-button-next',
+			prevEl: '.main_pick .swiper-button-prev',
+		},
+		autoplay: {
+			delay: 5000,
+			disableOnInteraction: false,
+		},
+	});
+} else {
+	/* SLIDE - MAIN_PICK */
+	var main_pick_nav = new Swiper('.main_pick .post-pick-nav', { //top
+		initialSlide: 0,
+		slidesPerView: 6,
+		// slidesPerGroup: 6,
+		loop: true,
+		loopeSlides: 6,
+		loopFillGroupWithBlank : true,
+		// slideToClickedSlide : true,
+		slideToClickedSlide : true,
+		loopAdditionalSlides : 1,
+		// centeredSlides : true,
+		watchSlidesVisibility: true,
+		watchSlidesProgress: true,
+		freeMode: false,
+		navigation: {
+			nextEl: '.main_pick .swiper-button-next',
+			prevEl: '.main_pick .swiper-button-prev',
+		},
+		autoplay: {
+			delay: 5000,
+			disableOnInteraction: false,
+		},
+	});
+
+
+}
+
+/* 브랜드 PICK 갯수체크 210430_수정 */
+var pickForCont = $('.post-pick-for .swiper-slide');
+var pickForLength = pickForCont.length;
+if (pickForLength < 2) {
+	var main_pick_post = new Swiper('.main_pick .post-pick-for', { //thumbs
+		initialSlide: 0,
+		slidesPerView: 1,
+		// slidesPerGroup: 6,
+		loop: false,
+		watchOverflow : true,
+		loopeSlides: 6,
+		spaceBetween: 10,
+		// loopFillGroupWithBlank : true,
+		loopAdditionalSlides: 1,
+		allowTouchMove: false,
+		navigation: {
+			nextEl: '.main_pick .swiper-button-next',
+			prevEl: '.main_pick .swiper-button-prev',
+		},
+		thumbs: {
+			swiper: main_pick_nav
+		},
+		autoplay: {
+			delay: 5000,
+			disableOnInteraction: false,
+		},
+	});
+}else{
+	var main_pick_post = new Swiper('.main_pick .post-pick-for', { //thumbs
+		initialSlide: 0,
+		slidesPerView: 1,
+		// slidesPerGroup: 6,
+		loop: true,
+		loopeSlides: 6,
+		spaceBetween: 10,
+		// loopFillGroupWithBlank : true,
+		loopAdditionalSlides: 1,
+		allowTouchMove: false,
+		navigation: {
+			nextEl: '.main_pick .swiper-button-next',
+			prevEl: '.main_pick .swiper-button-prev',
+		},
+		thumbs: {
+			swiper: main_pick_nav
+		},
+		autoplay: {
+			delay: 5000,
+			disableOnInteraction: false,
+		},
+	});
+}
+
 // main_pick_nav.controller.control = main_pick_post;
 // main_pick_post.controller.control = main_pick_nav;
 
@@ -1070,8 +1140,8 @@ var main_pick_lookbook = new Swiper ('.main_pick .post-lookbook', {
 var main_bnnWide_slide = new Swiper ('.main_1stage .post-bnnWide', {
 	slidesPerView: 1,
 	speed : 1500,
-	initialSlide: 2,
-	loop: true,
+	initialSlide: 0,
+	//loop: true,
 	watchOverflow: true, //loop와 함께 사용 불가.
 	autoplay: {
 		delay: 4000,
@@ -1095,9 +1165,9 @@ $(".main_recomm .tag_list .btn").click(function(){
 	$('#'+recommActive).addClass('active');
 });
 function init(){
-	
+
 	if(main_recomm_slide != null) main_recomm_slide.destroy();
-	
+
 	var main_recomm_slide = new Swiper ('.main_recomm .post-recomm', {
 		slidesPerView: 5,
 		slidesPerGroup: 5,
@@ -1149,7 +1219,7 @@ var main_foryou_slide = new Swiper ('.main_foryou .post-sug .swiper-container',
 				$('#fy1').addClass('active');
 				cntNum = 0;
 			}
-			
+
 			clearInterval(ti);
 			ti = startTimeInterval();
 		}

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

@@ -52,7 +52,7 @@
 				<div id="nodata" class="nodata">
 					<div class="txt_box">
 						<p>
-							현재 노출 할 수 있는 데이터가 없습니다.<br>
+							등록된 배송지가 없습니다.<br/>
 						</p>
 					</div>
 				</div>
@@ -65,7 +65,7 @@
 		<!-- // CONT-BODY -->
 	</div>
 </div>
-	<script th:inline="javascript">
+<script th:inline="javascript">
 	/*<![CDATA[*/
 
 	var fnCustDeliveryAddList = function () {

+ 277 - 0
src/main/webapp/WEB-INF/views/web/mypage/MypageReviewDetailFormWeb.html

@@ -0,0 +1,277 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * * @source  : MypageReviewDetailFormWeb.html
+ * @desc	: 상품평 상세 팝업
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE		 AUTHOR	  DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.05.03   sowon		최초 작성
+ *******************************************************************************
+ -->
+<div class="modal-dialog" role="document" th:with="imgGoodsUrl=${@environment.getProperty('upload.goods.view')}, uxImgUrl=${@environment.getProperty('domain.uximage')}, imgUrl=${@environment.getProperty('upload.image.view')}">
+	<div class="modal-content">
+		<div class="modal-header">
+			<h5 class="modal-title" id="pdPhotoReviewDetailLabel">포토/영상 리뷰</h5>
+		</div>
+		<div class="modal-body" id="reviewBody">
+		</div>
+	</div>
+</div>
+<form name="reviewDetailForm" id="reviewDetailForm" method="post">
+<input type="hidden" name="goodsCd" th:value="${review.goodsCd}" />
+<!-- <input type="hidden" name="bestYn" th:value="${review.bestYn}" /> -->
+<input type="hidden" name="photoYn" th:value="${review.photoYn}" />
+<input type="hidden" name="reviewSq" th:value="${review.reviewSq}" />
+</form>
+<a href="javascript:void(0);" rel="modal:close" onclick="cfCloseLayer('layer_review_best')" class="close-modal">Close</a> 
+<script th:inline="javascript">
+/*<![CDATA[*/
+	
+	var fnReviewDetail = function() {
+		
+		var params = new Object();
+		params.goodsCd = $('#reviewDetailForm input[name=goodsCd]').val();
+		params.reviewSq = $('#reviewDetailForm input[name=reviewSq]').val();
+		//params.bestYn =$('#reviewDetailForm input[name=bestYn]').val();
+		params.photoYn = $('#reviewDetailForm input[name=photoYn]').val();
+		
+		gagajf.ajaxSubmit("/goods/review/detail/list", "json", fnReviewDetailCallback, params);
+	}
+
+	var fnReviewDetailCallback = function(result) {
+		$('#reviewBody').html('');
+		// 목록
+		if (result.reviewList != null && result.reviewList.length > 0) {
+			let fileGbClass = '';
+			$.each(result.reviewList, function(idx, review) {
+				let tag = '';
+				tag +='<div class="pop_cont">\n';
+				tag +='<div class="swiper-container detail">\n';
+				tag +='<div class="swiper-wrapper">\n';
+				tag +='<div class="swiper-slide">\n';
+				
+				let reviewClass = 'empty_photo';
+				if (review.reviewAttachList != null && review.reviewAttachList.length > 0){
+					reviewClass = '';
+				}
+				tag +='<div class="review '+reviewClass+'" >\n';  <!-- 첨부이미지 없을 시 empty_photo 클래스 추가 --> 
+				tag +='	<div class="pic">\n';
+				if (review.reviewAttachList != null && review.reviewAttachList.length > 0){
+					$.each(review.reviewAttachList, function(aIdx, reviewAttach){
+						fileGbClass = '';
+						if (reviewAttach.fileGb == "M") fileGbClass = "mov";
+				tag +='		<span class="thumb" class="'+fileGbClass+'">\n';<!-- 동영상의 썸네일일 경우 mov 클래스 추가-->
+						if (reviewAttach.fileGb == "M") {
+				tag +='			<video poster="http://cdn.011st.com/11dims/resize/1999x1999/quality/75/11src/review/10201202/3121412332/2e66698576d64c5c9977a6fe6606008d.jpg" muted="muted" preload="metadata" controls="controls">\n';
+				tag +='				<source src="http://snsvideo.11st.co.kr/movie/item/www/675/67518524_06_1_C1.mp4" type="video/mp4">\n';
+				tag +='			</video>\n';
+						}else{
+				tag +='			<img src="'+ _imgUrl + reviewAttach.sysFileNm +'" alt="">\n';	
+						}
+				tag +='		</span>\n';
+						return false;
+					});	
+				}else{
+				tag +='		<span class="thumb">\n';
+				tag +='			<img src="'+_uploadGoodsUrl +'/'+review.sysImgNm+'?RS=365" alt="" onerror="' + _uximgUrl + '/images/pc/thumb/bg_item_none.png"  />\n';
+				tag +='		</span>\n';	
+				}
+				tag +='	</div>\n';
+				tag +='	<div class="review_cont">\n';
+				tag +='		<div class="box_wrap">\n';
+				tag +='			<div class="star_box">\n';
+				tag +='				<div class="star_score">\n';
+				tag +='					<span class="star">\n';
+				tag +='						<em class="progbar" style="width:'+(review.iscore*20)+'%;"></em>\n'; <!-- 평점 style로 표기 -->
+				tag +='					</span>\n';
+				tag +='				</div>\n';
+				tag +='			</div>\n';
+				tag +='			<div class="response_box">\n';
+				tag +='				<div class="full">\n';
+				tag +='					<dl>\n';
+				if (review.goodsOptionList != null && review.goodsOptionList.length > 0){
+					$.each(review.goodsOptionList, function(aIdx, reviewGoods){
+				tag +='						<div>\n';
+				tag +='							<dt>구매옵션</dt>\n';
+				tag +='							<dd>'+ reviewGoods.optCd1Nm +' / '+ reviewGoods.optCd2+'</dd>\n';
+				tag +='						</div>\n';
+					});		
+				}
+				tag +='					</dl>\n';
+				tag +='				</div>\n';
+				tag +='				<div class="full">\n';
+				tag +='					<dl>\n';
+				tag +='						<div>\n';
+				tag +='							<dt>키/몸무게</dt>\n';
+				tag +='							<dd>'+review.height+' / '+review.weight +' \n';
+				tag +='							</dd>\n';
+				tag +='						</div>\n';
+				tag +='					</dl>\n';
+				tag +='				</div>\n';
+				if (!gagajf.isNull(review.sizeGb)){  <!-- 사이즈구분(T:상의, B:하의, S:신발) -->
+				tag +='				<div>\n'; 
+				tag +='					<dl > \n';
+				tag +='						<div>\n';
+				tag +='							<dt>사이즈</dt>\n';
+				tag +='							<dd>'+review.scoreSizeNm+'</dd>\n';
+				tag +='						</div>\n';
+				tag +='						<div>\n';
+				tag +='							<dt>컬러</dt>\n';
+				tag +='							<dd>'+review.scoreColorNm+'</dd>\n';
+				tag +='						</div>\n';
+					if (review.sizeGb == 'T' || review.sizeGb == 'B'){
+				tag +='						<div>\n';
+				tag +='							<dt>핏</dt>\n';
+				tag +='							<dd>'+review.scoreFitNm+'</dd>\n';
+				tag +='						</div>\n';
+				tag +='						<div>\n';
+				tag +='							<dt>두께감</dt>\n';
+				tag +='							<dd>'+ review.scoreThickNm+'</dd>\n';
+				tag +='						</div>\n';
+					}
+					if (review.sizeGb == 'S'){
+				tag +='						<div>\n';
+				tag +='							<dt>무게감</dt>\n';
+				tag +='							<dd>'+review.scoreWeightNm+'</dd>\n';
+				tag +='						</div>\n';
+				tag +='						<div>\n';
+				tag +='							<dt>볼너비</dt>\n';
+				tag +='							<dd>'+review.scoreBallNm+'</dd>\n';
+				tag +='						</div>\n';
+					}
+				tag +='					</dl>\n';
+				tag +='				</div>\n';
+				}
+				tag +='			</div>\n';
+				tag +='			<div class="txt_review_box">\n';
+				tag +='				<p>' + review.reviewContent +'</p>\n';
+				tag +='			</div>\n';
+				tag +='			<div class="writer_box">\n';
+				tag += '			<div class="writer">\n';
+				tag += '				<span class="wr_id">'+ review.maskingCustId +'</span>\n';
+				tag += '				<span class="wr_date">' + review.regDt + '</span>\n';
+				tag += '			</div>\n'
+				tag +='			</div>\n';
+				if (!gagajf.isNull(review.admRpl)){
+				tag += '		<div class="reply_box">\n';
+				tag += '			<div class="reply">\n';
+				tag += '				<div class="reply_writer">\n';
+				tag += '					<span class="wr_name">관리자</span>\n';
+				tag += '					<span class="wr_date">'+review.admRplDt+'</span>\n';
+				tag += '				</div>\n';
+				tag += '				<div class="reply_txt">\n';
+				tag += '					<p>' + review.admRpl+'</p>\n';
+				tag += '				</div>\n';
+				tag += '			</div>\n';
+				tag += '		</div>\n';	
+				}
+				tag +='		</div>\n';
+				tag +='	</div>\n';
+				if (review.reviewAttachList != null && review.reviewAttachList.length >= 2){
+				tag +='	<div class="thumblist">\n';
+				tag +='		<ul>\n';
+					let activeClass = '';
+					$.each(review.reviewAttachList, function(aIdx, reviewAttach){
+						activeClass = '';
+						if (aIdx == 0){
+							activeClass = 'active';
+						}
+						fileGbClass = '';
+						if (reviewAttach.fileGb == "M") fileGbClass = "mov";
+				tag +='			<li>\n';
+				tag +='				<div class="pic '+activeClass+'"> \n'; <!-- 활성화시 active 클래스 추가 -->
+				tag +='					<span class="thumb" class="'+fileGbClass+'" style="background-image:url('+ _imgUrl + reviewAttach.sysFileNm +');\" >\n';<!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->
+				tag +='					<img src="'+ _imgUrl + reviewAttach.sysFileNm +'" alt="">\n';
+				tag +='					</span>\n';
+				tag +='				</div>\n';
+				tag +='			</li>\n';
+					});
+				tag +='		</ul>\n';
+				tag +='	</div>\n';
+				}
+				tag +='</div>\n';
+				
+				tag +='</div>\n';
+				tag +='</div>\n';
+				tag +='</div>\n';
+				tag +='</div>\n';
+				
+				$('#reviewBody').append(tag);
+				
+				$('.pd_photoreviewdetail_pop .swiper-slide').each(function(index, element){
+				        var $this = $(this);
+				        
+				        var thumbCount = $this.find('.thumblist ul li').length;
+				        var thumbUlWidth = $this.find('.thumblist ul li').width() * thumbCount;
+				        var thumbMargin = 8 * thumbCount;
+				        var thumbListWidth = thumbUlWidth + thumbMargin;
+
+				        $this.find('.thumblist ul').attr('style', 'width:' + thumbListWidth + 'px;');
+				        
+				    }); 
+
+			});
+		}
+		
+	}
+	
+	// 다른 상품평 보기
+	var fnReviewNext = function(reviewSq){
+		if (gagajf.isNull(reviewSq)) return false;
+		
+		$('#reviewDetailForm input[name=reviewSq]').val(reviewSq);
+		fnReviewDetail();
+	}
+	
+	$(document).ready( function() {
+		
+		fnReviewDetail();
+       
+		 //슬라이드 - 상품 베스트 리뷰 자세히보기 영역 
+	    var photoReviewDetailSwiper = new Swiper('.pd_photoreviewdetail_pop .swiper-container.detail', {
+	        effect :'fade',
+	        slidesPerView: 1,
+	        spaceBetween: 0,
+	        simulateTouch:false,
+	        navigation: {
+	            nextEl: '.pd_photoreviewdetail_pop .swiper-button-next',
+	            prevEl: '.pd_photoreviewdetail_pop .swiper-button-prev',
+	        },
+	    });   
+
+	    $('.pd_photoreviewdetail_pop .swiper-slide').each(function(index, element){
+	        var $this = $(this);
+	        
+	        var thumbCount = $this.find('.thumblist ul li').length;
+	        var thumbUlWidth = $this.find('.thumblist ul li').width() * thumbCount;
+	        var thumbMargin = 8 * thumbCount;
+	        var thumbListWidth = thumbUlWidth + thumbMargin;
+
+	        $this.find('.thumblist ul').attr('style', 'width:' + thumbListWidth + 'px;');
+	        
+	    });
+
+	    $(document).on('click','.pd_photoreviewdetail_pop .thumblist ul li',function(e){
+
+	        $(this).parents(".swiper-slide").find(".review > .pic > .thumb").empty();
+	        $(this).parents(".swiper-slide").find(".thumblist ul li .pic").removeClass('active');
+	        $(this).find(".pic").addClass('active');
+
+	        var thumbIndex = $(this).index();
+	        thumbContentHtml = $(this).find('.pic .thumb').html();
+	        $(this).parents(".swiper-slide").find(".review > .pic > .thumb").append(thumbContentHtml);
+
+	        return false;
+	    });
+	});		
+
+	 
+/*]]>*/
+</script>	
+ </html>

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

@@ -173,7 +173,7 @@
 						html += '							<span class="option">' + item.itemNmArr[index2] + ' / ' + option + ' / ' + item.optCd2Arr[index2] + '</span>\n';
 					})
 				}else{
-					html += '							<span class="option">'+item.optCd1Nm+'&nbsp;/&nbsp;'+item.optCd2+'</span>     ';
+					html += '							<span class="option">'+item.colorNm+'</span>     ';
 				}
 				html += '						</div>                                                                                            ';
 				html += '					</div>                                                                                                ';
@@ -232,7 +232,7 @@
 				html+='						<div class="gd_opt">';
 				html+='							<div class="option_wrap">';
 				html+='								<span class="title sr-only">주문 옵션</span>';
-				html+='								<span class="option">'+item.optCd1Nm+'&nbsp;/&nbsp;'+item.optCd2+'</span>';
+				html+='								<span class="option">'+item.colorNm+'</span>';
 				html+='							</div>';
 				html+='						</div>';
 				html+='					</div>';
@@ -260,7 +260,7 @@
 				html+='								<dl>';
 				html+='									<div>';
 				html+='										<dt>구매옵션</dt>';
-				html+='										<dd>'+item.optCd1Nm+' / '+item.optCd2+'</dd>';
+				html+='										<dd>'+item.colorNm+'</dd>';
 				html+='									</div>';
 				html+='								</dl>';
 				html+='							</div>';
@@ -268,7 +268,7 @@
 				html+='								<dl>';
 				html+='									<div>';
 				html+='										<dt>키/몸무게</dt>';
-				html+='										<dd>'+item.weight+'cm/'+item.height+'kg</dd>';
+				html+='										<dd>'+item.height+'cm/'+item.weight+'kg</dd>';
 				html+='									</div>';
 				if (item.sizeGb == 'T' || item.sizeGb == 'B' || item.sizeGb == 'S') {
 					html+='									<div>';
@@ -310,12 +310,12 @@
 					for (var i = 0; i < attachList.length; i++) {
 						if (attachList[i].reviewSq == item.reviewSq) {
 						html+='									<li>';
-						html+='										<a onclick="cfGoodsReviewDetail(\''+item.goodsCd+'\',\'\', \'Y\',\''+item.reviewSq+'\');">';
+						html+='										<a>';
 						html+='											<div class="pic">';
 						if (attachList[i].fileGb == 'M') {
-							html+='												<span class="thumb mov" style="background-image:url(' + _kollusMediaUrl + '/' + attachList[i].kmcKey + '?player_version=html5);"></span>';
+							html+='												<span onclick="cfMypageReviewDetail(\''+item.goodsCd+'\', \'Y\',\''+item.reviewSq+'\');" class="thumb mov" style="background-image:url(' + _kollusMediaUrl + '/' + attachList[i].kmcKey + '?player_version=html5);"></span>';
 						}else{
-							html+='												<span class="thumb" style="background-image:url(' + reviewUrl + '/' + attachList[i].sysFileNm + ');"></span>';
+							html+='												<span onclick="cfMypageReviewDetail(\''+item.goodsCd+'\', \'Y\',\''+item.reviewSq+'\');" class="thumb" style="background-image:url(' + reviewUrl + '/' + attachList[i].sysFileNm + ');"></span>';
 						}
 						html+='											</div>';
 						html+='										</a>';

+ 28 - 6
src/main/webapp/WEB-INF/views/web/mypage/MypageWishListFormWeb.html

@@ -93,13 +93,35 @@ var ajaxWishList = function () {
 							
 							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>';
+							if(!gagajf.isNull(item.colorChips)){
+								var colorArr = item.colorChips.split(",");
+								var colorCd = '';
+								var rgbColor = '';
+								for(let i=0; i<colorArr.length; i++){
+									var colorInfo = colorArr[i].split(":");
+									colorCd = colorInfo[0];
+									rgbColor = colorInfo[1];
+									if(rgbColor=='#FFFFFF'){
+										html += '	<span class="chip_color" style="background-color: '+rgbColor+';border:1px solid #aaa;" value="'+colorCd+'">'+colorCd+'</span>';
+									}else{
+										html += '	<span class="chip_color" style="background-color: '+rgbColor+'" value="'+colorCd+'">'+colorCd+'</span>';
+									}
+								}
+							}
 							html+='					</div>';
-							html+='					 <p class="itemBadge">';
-							html+='						<span class="badge13">베스트 </span>';
-							html+='					</p>';
+							if(!gagajf.isNull(item.icon)){
+								var iconArr = item.icon.split(",");
+								var iconGb = '';
+								var iconNm = '';
+								html += '	<p class="itemBadge">';
+								for(let i=0; i<iconArr.length; i++){
+									var iconInfo = iconArr[i].split(":");
+									iconGb = iconInfo[0];
+									iconNm = iconInfo[1];
+									html += '	<span class="badge13" value="'+iconGb+'">'+iconNm+' </span>';
+								}
+								html += '	</p>';
+							}
 							if (item.goodsTnm != null && item.goodsTnm != '') {
 								html+='					<div class="itemComment">'+item.goodsTnm+'</div>';
 							}

+ 13 - 0
src/main/webapp/ux/mo/css/common_m.css

@@ -1765,6 +1765,19 @@ button.alertCls {-webkit-appearance: none;padding: 0;cursor: pointer;background:
 .modal.pop_fullCol .modal-body .pop_cont{max-height: 100%;}
 .modal.pop_fullCol .modal-body [class^="ui_col_"]{margin: 0;}
 
+
+
+.pop_cont .nodata {padding:8.0rem 0 10.0rem;  text-align:center;}
+.pop_cont .nodata .txt_box {color:#666; font-size:1.6rem; font-weight:300; line-height:2.6rem;}
+.pop_cont .nodata .txt_box::before {content:''; display:block; width:3.6rem; height:4.6rem; margin:0 auto 2.4rem; background:url('/images/mo/ico_content_none.png') no-repeat;}
+.pop_cont .nodata .txt_box span {color:#fd4802; font-weight:500;}
+.pop_cont .nodata .btn_box {margin-top:4.0rem;}
+.pop_cont .nodata .btn_box .btn span {color:#222; font-size:1.4rem; font-weight:300;}
+
+
+
+
+
 .modal::-webkit-scrollbar,.pop_cont::-webkit-scrollbar {width: 2px;}
 .modal::-webkit-scrollbar-thumb,.pop_cont::-webkit-scrollbar-thumb {background-color: #888888;border-radius: 0px;background-clip: padding-box;border: 0px solid transparent;}
 .modal::-webkit-scrollbar-track, .pop_cont::-webkit-scrollbar-track{background-color: #dddddd;border-radius: 0px;}

+ 0 - 6
src/main/webapp/ux/pc/js/common-ui.js

@@ -404,12 +404,6 @@ $(document).ready( function() {
 		return false;
 	});
 
-	// $(".jquery-modal").modal({
-	// 	escapeClose: false,
-	// 	clickClose: false
-	// });
-
-
 	/* 같은 데이터 노출시 동일 영역끼리 병합 */
 	$(".merge_row").each(function() {
 		var txtcont = $(this).text();

+ 45 - 21
src/main/webapp/ux/style24_link.js

@@ -58,25 +58,26 @@ const _PAGE_CART = _frontUrl + "/cart/list/form";								// 장바구니
 //== 주문 ==/
 
 //== 마이페이지 ==/
-const _PAGE_MYPAGE = _frontUrl + "/mypage/main/form";							// 마이페이지 > 메인
-const _PAGE_MYPAGE_ORDER_LIST = _frontUrl + "/mypage/order/list/form";			// 마이페이지 > 주문확인/배송조회
-const _PAGE_MYPAGE_ORDER_DETAIL = _frontUrl + "/mypage/order/detail/form/";		// 마이페이지 > 주문/배송 상세
-const _PAGE_MYPAGE_CRE_LIST = _frontUrl + "/mypage/cre/list/form";				// 마이페이지 > 취소/교환/반품 목록
-const _PAGE_MYPAGE_RESTOCK = _frontUrl + "/mypage/restock/form";				// 마이페이지 > 재입고 알림 내역
-const _PAGE_MYPAGE_COUPON = _frontUrl + "/mypage/coupon/form";					// 마이페이지 > 쿠폰
-const _PAGE_MYPAGE_POINT = _frontUrl + "/mypage/point/form";					// 마이페이지 > 포인트
-const _PAGE_MYPAGE_GIFTCARD = _frontUrl + "/mypage/gift/card/form";				// 마이페이지 > 상품권
-const _PAGE_MYPAGE_REVIEW = _frontUrl + "/mypage/review/form";					// 마이페이지 > 리뷰
-const _PAGE_MYPAGE_CREATE_REVIEW = _frontUrl + "/mypage/review/create/form/";	// 마이페이지 > 리뷰 > 리뷰작성
-const _PAGE_MYPAGE_DELIVERY_ADDR = _frontUrl + "/mypage/delivery/addr/form";	// 마이페이지 > 배송지 관리
-const _PAGE_MYPAGE_WISHLIST = _frontUrl + "/mypage/wish/list/form";				// 마이페이지 > 위시리스트
-const _PAGE_MYPAGE_CUSTOMER = _frontUrl + "/mypage/customer/confirm/form";		// 마이페이지 > 내정보 관리 > 회원정보 확인
-const _PAGE_MYPAGE_CUSTOMER_MODIFY = _frontUrl + "/mypage/customer/modify/form";// 마이페이지 > 내정보 관리 > 회원정보 수정
-const _PAGE_PASSWORD_MODIFY = _frontUrl + "/mypage/password/modify/form";		// 마이페이지 > 비밀번호 변경
-const _PAGE_MYPAGE_SECEDE = _frontUrl + "/mypage/customer/secede/form";			// 마이페이지 > 회원탈퇴
-const _PAGE_WISHLIST = _frontUrl + "/mypage/wish/list/form";					// 마이페이지 > 위시리스트
-const _PAGE_WISHLIST_PUT = _frontUrl + "/mypage/wish/list/put";					// 위시리스트 담기
-const _PAGE_WISHLIST_DEL = _frontUrl + "/mypage/wish/list/delete";				// 위시리스트 삭제
+const _PAGE_MYPAGE = _frontUrl + "/mypage/main/form";								// 마이페이지 > 메인
+const _PAGE_MYPAGE_ORDER_LIST = _frontUrl + "/mypage/order/list/form";				// 마이페이지 > 주문확인/배송조회
+const _PAGE_MYPAGE_ORDER_DETAIL = _frontUrl + "/mypage/order/detail/form/";			// 마이페이지 > 주문/배송 상세
+const _PAGE_MYPAGE_CRE_LIST = _frontUrl + "/mypage/cre/list/form";					// 마이페이지 > 취소/교환/반품 목록
+const _PAGE_MYPAGE_RESTOCK = _frontUrl + "/mypage/restock/form";					// 마이페이지 > 재입고 알림 내역
+const _PAGE_MYPAGE_COUPON = _frontUrl + "/mypage/coupon/form";						// 마이페이지 > 쿠폰
+const _PAGE_MYPAGE_POINT = _frontUrl + "/mypage/point/form";						// 마이페이지 > 포인트
+const _PAGE_MYPAGE_GIFTCARD = _frontUrl + "/mypage/gift/card/form";					// 마이페이지 > 상품권
+const _PAGE_MYPAGE_REVIEW = _frontUrl + "/mypage/review/form";						// 마이페이지 > 리뷰
+const _PAGE_MYPAGE_CREATE_REVIEW = _frontUrl + "/mypage/review/create/form/";		// 마이페이지 > 리뷰 > 리뷰작성
+const _PAGE_MYPAGE_REVIEW_DETAIL_LAYER = _frontUrl +"/mypage/review/detail/layer/";// 마이페이지- 포토/영상 리뷰 (list)
+const _PAGE_MYPAGE_DELIVERY_ADDR = _frontUrl + "/mypage/delivery/addr/form";		// 마이페이지 > 배송지 관리
+const _PAGE_MYPAGE_WISHLIST = _frontUrl + "/mypage/wish/list/form";					// 마이페이지 > 위시리스트
+const _PAGE_MYPAGE_CUSTOMER = _frontUrl + "/mypage/customer/confirm/form";			// 마이페이지 > 내정보 관리 > 회원정보 확인
+const _PAGE_MYPAGE_CUSTOMER_MODIFY = _frontUrl + "/mypage/customer/modify/form";	// 마이페이지 > 내정보 관리 > 회원정보 수정
+const _PAGE_PASSWORD_MODIFY = _frontUrl + "/mypage/password/modify/form";			// 마이페이지 > 비밀번호 변경
+const _PAGE_MYPAGE_SECEDE = _frontUrl + "/mypage/customer/secede/form";				// 마이페이지 > 회원탈퇴
+const _PAGE_WISHLIST = _frontUrl + "/mypage/wish/list/form";						// 마이페이지 > 위시리스트
+const _PAGE_WISHLIST_PUT = _frontUrl + "/mypage/wish/list/put";						// 위시리스트 담기
+const _PAGE_WISHLIST_DEL = _frontUrl + "/mypage/wish/list/delete";					// 위시리스트 삭제
 
 //== 마이페이지 ==/
 const _PAGE_NOMEMBER_ORDER_LIST = _frontUrl + "/noMember/order/list/form";		// 비회원 > 주문확인/배송조회
@@ -1233,8 +1234,31 @@ var cfnGoToMypageReview = function (ordNo,ordDtlNo,goodsCd) {
 		cfnGoToPage(_PAGE_MYPAGE_CREATE_REVIEW + ordNo +'/'+ordDtlNo+'/'+goodsCd+'/'+reviewStat);
 	}
 
-    
-    
+}
+
+/**
+* @type   : function
+* @access : public
+* @desc   : 상품평- 베스트 리뷰 보기
+* <pre>
+*		cfMypageReviewDetail(goodsCd, photoYn, reviewSq);
+* </pre>
+*/
+function cfMypageReviewDetail(goodsCd, photoYn, reviewSq) {
+	var str = '<div class="modal fade pd_pop pd_photoreviewdetail_pop" id="layer_review_best" tabindex="-1" role="dialog" aria-labelledby="pdBestReviewLabel" aria-hidden="true"></div>';
+	if ("P" != _frontGb){
+		str = '<div class="modal pop_full fade pd_pop pd_photoreviewdetail_pop" id="layer_review_best" tabindex="-1" role="dialog" aria-labelledby="exampleFullLabel" aria-hidden="true"></div>';
+	}
+
+	if ($('#layer_review_best').length == 0) {
+		$('body').append(str);
+	}
+	
+	var params = '?goodsCd=' + goodsCd;
+	params += '&reviewSq=' + reviewSq;
+	params += '&photoYn=' + photoYn;
+	
+	cfOpenLayer(_PAGE_MYPAGE_REVIEW_DETAIL_LAYER+params, 'layer_review_best');
 }
 
 /**