Pārlūkot izejas kodu

Merge remote-tracking branch 'origin/bin2107' into card007

card007 5 gadi atpakaļ
vecāks
revīzija
13076039d3
21 mainītis faili ar 1432 papildinājumiem un 365 dzēšanām
  1. 3 2
      src/main/java/com/style24/front/biz/service/TsfGoodsService.java
  2. 9 5
      src/main/java/com/style24/front/biz/web/TsfDisplayController.java
  3. 2 1
      src/main/java/com/style24/front/biz/web/TsfPlanningController.java
  4. 2 2
      src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml
  5. 9 8
      src/main/resources/config/application-run.yml
  6. 10 10
      src/main/resources/config/application-style.yml
  7. 2 1
      src/main/webapp/WEB-INF/views/mob/common/fragments/HeadMob.html
  8. 3 3
      src/main/webapp/WEB-INF/views/mob/common/layout/DefaultLayoutMob.html
  9. 588 0
      src/main/webapp/WEB-INF/views/mob/display/BrandMainFormMob.html
  10. 2 2
      src/main/webapp/WEB-INF/views/mob/display/MallMainFormMob.html
  11. 17 11
      src/main/webapp/WEB-INF/views/mob/mypage/MypageCustDeliveryAddrFormMob.html
  12. 325 0
      src/main/webapp/WEB-INF/views/mob/planning/PlanningEventPollFormMob.html
  13. 3 2
      src/main/webapp/WEB-INF/views/mob/planning/PlanningMainFormMob.html
  14. 372 293
      src/main/webapp/WEB-INF/views/mob/planning/PlanningShotGuideFormMob.html
  15. 45 4
      src/main/webapp/WEB-INF/views/web/display/BrandMainFormWeb.html
  16. 18 11
      src/main/webapp/WEB-INF/views/web/mypage/MypageCustDeliveryAddrFormWeb.html
  17. 0 1
      src/main/webapp/WEB-INF/views/web/mypage/MypageReviewCreateFormWeb.html
  18. 16 2
      src/main/webapp/WEB-INF/views/web/planning/PlanningDetailFormWeb.html
  19. 3 2
      src/main/webapp/WEB-INF/views/web/planning/PlanningMainFormWeb.html
  20. 0 2
      src/main/webapp/WEB-INF/views/web/planning/PlanningShotGuideFormWeb.html
  21. 3 3
      src/main/webapp/WEB-INF/views/web/social/SocialMainFormWeb.html

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

@@ -756,7 +756,7 @@ public class TsfGoodsService {
 
 		Collection<Goods> goodsList = new ArrayList<>();
 
-		if (cate.getContentsLoc().equals("SCM002") || cate.getContentsLoc().equals("SBM007") || cate.getContentsLoc().equals("SMM003") || cate.getContentsLoc().equals("SBM003")) { // 신상품인 경우
+		if (cate.getContentsLoc().equals("SCM002") || cate.getContentsLoc().equals("SBM007") || cate.getContentsLoc().equals("SMM003") || cate.getContentsLoc().equals("SBM003") || cate.getContentsLoc().equals("SBMM007")) { // 신상품인 경우
 			int maxRow = 20;
 			if (cate.getContentsLoc().equals("SBM003")) {
 				maxRow = 3;
@@ -801,7 +801,7 @@ public class TsfGoodsService {
 					temp.setBenefitArr(temp.getIcon().split(","));
 				}
 			}
-		} else if (cate.getContentsLoc().equals("SBM013")) {
+		} else if (cate.getContentsLoc().equals("SBM013") || cate.getContentsLoc().equals("SBMM013")) {
 //			GoodsSearch goodsSearch = new GoodsSearch();
 //			goodsSearch.setSiteCd(TscConstants.Site.STYLE24.value());
 //			goodsSearch.setFormalGb(cate.getFormalGb());
@@ -811,6 +811,7 @@ public class TsfGoodsService {
 //			goodsSearch.setMaxRow(cate.getMaxRow());
 //			goodsSearch.setContentsLoc(cate.getContentsLoc());
 //			goodsList = displayDao.getCategoryGoodsList(goodsSearch);
+			//todo 최신상품 불러오는거 만들어야함
 			log.info("SBM013 goodsList cate>>>{}", cate);
 			goodsList = goodsDao.getContentsCategoryGoodsList(cate);
 

+ 9 - 5
src/main/java/com/style24/front/biz/web/TsfDisplayController.java

@@ -162,7 +162,7 @@ public class TsfDisplayController extends TsfBaseController {
 				mainLayout.setBrandPickList(displayService.getContentsForGoods(contents));
 			}
 
-			if (contentsLoc.equals("SMM009")) {
+			if (contentsLoc.equals("SMM009") || contentsLoc.equals("SMM012")) {
 				mainLayout.setMdPickList(displayService.getContentsForGoods(contents));
 			}
 
@@ -290,7 +290,7 @@ public class TsfDisplayController extends TsfBaseController {
 			brandMain.setCate4Srch(cate4Srch);
 
 			if ("C".equals(brandMain.getContentsYn())) {
-				if (contentsLoc.equals("SBM013")) {
+				if (contentsLoc.equals("SBM013") || contentsLoc.equals("SBMM013")) {
 					cate4Srch.setBrandGroupNo(brandMain.getBrandGroupNo());
 					cate4Srch.setMaxRow(50);
 					Collection<Goods> goodsList = goodsService.getContentsCategoryGoodsList(cate4Srch);
@@ -301,7 +301,7 @@ public class TsfDisplayController extends TsfBaseController {
 				cate4Srch.setBrandGroupNo(brandMain.getBrandGroupNo());
 				if (cate4Srch.getContentsLoc().equals("SBM008")) {
 					cate4Srch.setMaxRow(10);
-				} else if (cate4Srch.getContentsLoc().equals("SBM013")) {
+				} else if (cate4Srch.getContentsLoc().equals("SBM013") || cate4Srch.getContentsLoc().equals("SBMM013")) {
 					cate4Srch.setMaxRow(50);
 				} else {	// SBM007, SBM009
 					cate4Srch.setMaxRow(20);
@@ -315,10 +315,14 @@ public class TsfDisplayController extends TsfBaseController {
 			}
 
 			// 기획전 컨텐츠일때
-			if ("SBM011".equals(brandMain.getContentsLoc())) {
+			if ("SBM011".equals(brandMain.getContentsLoc()) || "SBMM011".equals(brandMain.getContentsLoc())) {
 				Plan plan = new Plan();
 				plan.setBrandGroupNo(Integer.parseInt(paramMap.get("brandGroupNo")));
-				plan.setMaxRow(6);
+				if("SBM011".equals(brandMain.getContentsLoc())){
+					plan.setMaxRow(6);
+				}else{
+					plan.setMaxRow(2);
+				}
 				plan.setFrontGb(TsfSession.getFrontGb());
 				plan.setSiteCd(TscConstants.Site.STYLE24.value());
 				brandMain.setPlanningList(planningService.getPlanningMainList(plan));

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

@@ -87,7 +87,7 @@ public class TsfPlanningController extends TsfBaseController {
 	 * @since 2021. 3. 5
 	 */
 	@GetMapping("/main/form")
-	public ModelAndView planningMainForm(@RequestParam(value = "cateNo", required = false) Integer cateNo) {
+	public ModelAndView planningMainForm(@RequestParam(value = "cateNo", required = false) Integer cateNo, @RequestParam(value = "brandGroupNo", required = false) Integer brandGroupNo) {
 		ModelAndView mav = new ModelAndView(super.getDeviceViewName("planning/PlanningMainForm"));
 
 		Plan plan = new Plan();
@@ -98,6 +98,7 @@ public class TsfPlanningController extends TsfBaseController {
 		mav.addObject("cateList", planningService.getPlanningCategoryList(plan));
 
 		mav.addObject("cateNo", cateNo);
+		mav.addObject("brandGroupNo", brandGroupNo);
 
 		return mav;
 	}

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

@@ -1280,7 +1280,7 @@
 		                 , ROW_NUMBER() OVER(ORDER BY GS.SELL_WEEK_QTY DESC
 		                                            , G.GOODS_CD) AS NUMB
 		                     </when>
-		                     <when test="contentsLoc == 'SMM009' or contentsLoc == 'SMM007'"> <!-- md추천 -->
+		                     <when test="contentsLoc == 'SMM009' or contentsLoc == 'SMM007' or contentsLoc == 'SMM012'"> <!-- md추천 -->
 		                 , ROW_NUMBER() OVER(ORDER BY CTG.DISP_ORD
 		                 , G.REG_DT DESC
 		                 , G.GOODS_CD) AS NUMB
@@ -1298,7 +1298,7 @@
 		                     </otherwise>
 		                 </choose>
 		            <choose>
-		                <when test="contentsLoc == 'SMM009' or contentsLoc == 'SMM007'"> <!-- md추천 -->
+		                <when test="contentsLoc == 'SMM009' or contentsLoc == 'SMM007' or contentsLoc == 'SMM012'"> <!-- md추천 -->
 		                    FROM	TB_CONTENTS CT
 		                    , TMP_CONTENTS_GOODS CTG
 		                    , TB_GOODS G

+ 9 - 8
src/main/resources/config/application-run.yml

@@ -27,31 +27,32 @@ spring:
 logging.config: classpath:log/logback-run.xml
 
 domain:
+    admin: //bos.style24.com
     front: //www.style24.com
-    image: //image.style24.com
-    uximage: //image.istyle24.com/Upload
+    image: //image.style24.com/Upload
+    uximage: //www.style24.com
 
 # SSL Server
 has-ssl: true
 
 upload:
     default:
-        target.path: /usr/local/data/style24
+        target.path: /files/data/style24
         max.size: 10
         allow.extension: jpg|gif|jpeg|png|bmp|txt|doc|docx|ppt|pptx|xls|xlsx|hwp|pdf
-        view: //image.istyle24.com
+        view: //image.istyle24.com/Upload
     goods:
-        target.path: /usr/local/data/style24/productimage
+        target.path: /files/data/style24/ProductImage
         max.size: 10
         allow.extension: jpg|gif|jpeg|png
         view: //image.istyle24.com/Upload/ProductImage
     image:
-        target.path:  /usr/local/data/style24
+        target.path: /files/data/style24
         max.size: 10
         allow.extension: jpg|gif|jpeg|png
-        view: //image.istyle24.com
+        view: //image.istyle24.com/Upload
 
-download.path: /usr/local/data
+download.path: /files/data/style24
 
 # SMTP
 mail:

+ 10 - 10
src/main/resources/config/application-style.yml

@@ -27,32 +27,32 @@ domain:
 
 upload:
     default:
-        target.path: /usr/local/data/style24
+        target.path: /files/data/style24
         max.size: 10
         allow.extension: jpg|gif|jpeg|png|bmp|txt|doc|docx|ppt|pptx|xls|xlsx|hwp|pdf
-        view: //image.istyle24.com
+        view: //image.istyle24.com/Upload
     goods:
-        target.path: /usr/local/data/style24/productimage
+        target.path: /files/data/style24/ProductImage
         max.size: 10
         allow.extension: jpg|gif|jpeg|png
         view: //image.istyle24.com/Upload/ProductImage
     image:
-        target.path: /usr/local/data/style24
+        target.path: /files/data/style24
         max.size: 10
         allow.extension: jpg|gif|jpeg|png
-        view: //image.istyle24.com
+        view: //image.istyle24.com/Upload
     excel:
-        target.path: /usr/local/data/style24/excel
+        target.path: /files/data/style24/excel
         max.size: 10
         allow.extension: xls|xlsx
-        view: //image.istyle24.com/excel
+        view: //image.istyle24.com/Upload/excel
     sample:
-        target.path: /usr/local/data/style24/sample
+        target.path: /files/data/style24/sample
         max.size: 10
         allow.extension: txt|doc|docx|ppt|pptx|xls|xlsx|hwp|pdf
-        view: //image.style24.com/sample
+        view: //image.style24.com/Upload/sample
 
-download.path: /usr/local/data
+download.path: /files/data/style24
 
 # USAFE 보증보험 정보
 usafe.guarantee:

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

@@ -90,7 +90,8 @@
 			/*]]>*/
 		</script>
 	</th:block>
-	
+
+	<script type="text/javascript" th:src="@{'/ux/plugins/gaga/gaga.validation.js?v=' + ${#calendars.format(#calendars.createNow(), 'yyyyMMddHHmmss')}}" src="/ux/plugins/gaga/gaga.validation.js"></script>
 	<script src="/ux/sha512.min.js"></script>
 	<script>
 		String.prototype.hashCode = function() {

+ 3 - 3
src/main/webapp/WEB-INF/views/mob/common/layout/DefaultLayoutMob.html

@@ -8,7 +8,7 @@
 <body>
 
 	<th:block th:replace="~{web/common/fragments/VariablesWeb :: variables}"></th:block>
-	
+	<th:block th:replace="~{mob/common/fragments/ScriptsMob :: scripts}"></th:block>
 	<div class="app">
 		<!-- GNB -->
 		<th:block th:replace="~{mob/common/fragments/GnbMob :: gnb}"></th:block>
@@ -17,11 +17,11 @@
 		<!-- CONTENT AREA -->
 		<th:block layout:fragment="content"></th:block>
 		<!-- // CONTENT AREA -->
-
+		
 		<!-- Footer -->
 		<th:block th:replace="~{mob/common/fragments/FooterMob :: footer}"></th:block>
 
-		<th:block th:replace="~{mob/common/fragments/ScriptsMob :: scripts}"></th:block>
+		
 
 <script th:inline="javascript">
 /*<![CDATA[*/

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

@@ -0,0 +1,588 @@
+<!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/DefaultLayoutMob">
+<!--
+ *******************************************************************************
+ * @source  : BrandMainFormMob.html
+ * @desc    : 브랜드메인 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.05.10   bin2107     최초 작성
+ *******************************************************************************
+ -->
+<body>
+
+<link rel="stylesheet" href="/ux/mo/css/layout_m.css">
+
+<th:block layout:fragment="content">
+<main role="" id="" class="container br">
+	<section class="content br_main">
+		<div class="inner sr-only">
+			<p class="br_subtitle">브랜드 메인</p>
+		</div>
+
+		<th:block th:if="${brandMainLayoutList}" th:each="brandMainLayoutData, mainStat : ${brandMainLayoutList}" th:with="contentsLoc=${#strings.replace(brandMainLayoutData.contentsLoc,'SBMM','')},contentsTitle=${brandMainLayoutData.contentsTitle}">
+			<th:block th:if="${brandMainLayoutData.ContentsList != null and !brandMainLayoutData.ContentsList.empty}">
+				<th:block th:if="${contentsLoc=='004'}">
+					<!-- 첫번째 슬라이드 -->
+					<div class="inner wide">
+						<div class="swiper-container submain_visual">
+							<div class="swiper-wrapper">
+								<th:block th:each="ContentsData, ContentsStat : ${brandMainLayoutData.ContentsList}">
+									<div class="swiper-slide">
+										<!-- 210506_추가 : 새창에 띄우기 -->
+										<a th:href="${ContentsData.strVar1}" th:target="${ContentsData.contentsType=='SELF'?'_self':'_blank'}" title="현재 창으로 열기">
+											<div class="img">
+												<img th:src="${@environment.getProperty('domain.image')+ContentsData.imgPath1}" alt="">
+											</div>
+											<div class="txtWrap">
+												<p class="bMainTitle">
+													<input type="hidden" name="mainTitle" th:value="${ContentsData.strTitle1}"/>
+												</p>
+												<p class="txt_xs" th:text="${ContentsData.subText1}">신상 15% 쿠폰 할인</p>
+											</div>
+										</a>
+									</div>
+								</th:block>
+							</div>
+							<!-- Add Pagination -->
+							<div class="swiper-pagination"></div>
+						</div>
+					</div>
+				</th:block>
+
+				<th:block th:if="${contentsLoc=='005'}">
+					<th:block th:each="ContentsData, ContentsStat : ${brandMainLayoutData.ContentsList}">
+						<!-- 정보 -->
+						<div class="inner">
+							<div class="br_top_info" id="brandDesc">
+								<p class="br_subtitle" th:text="${contentsTitle}"></p>
+								<p class="cate">
+									<input type="hidden" name="brandTitle" th:value="${ContentsData.strTitle1}">
+								</p>
+								<p class="desc">
+									<input type="hidden" name="brandNote" th:value="${ContentsData.subText1}"/>
+								</p>
+								<div class="btn_group_flex">
+									<div>
+										<button class="btn btn_default">브랜드 사이트<span></span></button>
+									</div>
+								</div>
+							</div>
+						</div>
+					</th:block>
+				</th:block>
+
+				<th:block th:if="${contentsLoc=='007'}">
+					<!-- 뉴아이템 슬라이드 -->
+					<div class="inner" th:if="${brandMainLayoutData.goodsList != null}">
+						<div class="new_item">
+							<p class="br_subtitle" th:text="${contentsTitle}"></p>
+							<div class="area_slider">
+								<div class="swiper-container">
+									<div class="swiper-wrapper">
+										<th:block th:each="goodsData, goodsStat : ${brandMainLayoutData.goodsList}">
+											<th:block th:if="${(goodsStat.index%4)==0 or goodsStat.first}">
+												<div class="swiper-slide">
+											</th:block>
+											<div class="item_prod">
+												<div class="item_state">
+													<button type="button" class="itemLike" th:classappend="${goodsData.likeIt == 'likeit'}? 'likeit' : ''"  onclick="cfnPutWishList(this);" th:attr="goodsCd=${goodsData.goodsCd}, ithrCd='', contentsLoc='SBMM007', planDtlSq=''">관심상품 추가</button>
+													<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${goodsData.goodsCd}]], '', '', 'SBMM007');">
+														<div class="itemPic">
+															<img class="vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}">
+														</div>
+														<p class="itemBrand" th:text="${goodsData.brandGroupNm}"></p>
+														<div class="itemName" th:text="${goodsData.goodsFullNm}"></div>
+														<p class="itemPrice" th:text="${#numbers.formatInteger(goodsData.currPrice,1,'COMMA')}"></p>
+														<div class="itemComment" th:text="${goodsData.goodsTnm}"></div>
+													</a>
+												</div>
+											</div>
+											<th:block th:if="${(goodsStat.index%4)== 3 or goodsStat.last}">
+												<th:block th:utext="'</div>'"></th:block>
+											</th:block>
+										</th:block>
+									</div>
+									<!-- Add Pagination -->
+									<div class="swiper-pagination"></div>
+								</div>
+							</div>
+						</div>
+					</div>
+				</th:block>
+
+				<th:block th:if="${contentsLoc=='006'}">
+					<!-- 배너 슬라이드 -->
+					<div class="inner wide" th:if="${brandMainLayoutData.ContentsList!=null}">
+						<div class="swiper-container br_second_slide">
+							<div class="swiper-wrapper">
+								<th:block th:each="ContentsData, ContentsStat : ${brandMainLayoutData.ContentsList}">
+									<div class="swiper-slide">
+										<a th:href="${ContentsData.strVar1}" target="_blank" title="새 창으로 열기">
+											<img th:src="${@environment.getProperty('domain.image')+ContentsData.imgPath1}" alt="">
+											<div class="s-text" id="bannerS">
+												<p class="bText">
+													<input type="hidden" name="bannerDesc" th:value="${ContentsData.strTitle1}">
+												</p>
+											</div>
+										</a>
+									</div>
+								</th:block>
+							</div>
+							<!-- Add Pagination -->
+							<div class="swiper-pagination"></div>
+						</div>
+					</div>
+				</th:block>
+
+				<th:block th:if="${contentsLoc=='008'}">
+					<!-- 베스트아이템 슬라이드 -->
+					<div class="inner" th:if="${brandMainLayoutData.goodsList != null}">
+						<div class="pd_together best_item">
+							<p class="br_subtitle" th:text="${contentsTitle}">BEST ITEMS</p>
+							<div class="area_slider">
+								<!-- Swiper -->
+								<div class="swiper-container">
+									<div class="swiper-wrapper">
+										<th:block th:each="goodsData, goodsStat : ${brandMainLayoutData.goodsList}">
+											<div class="swiper-slide">
+												<div class="item_prod">
+													<div class="item_state">
+														<button type="button" class="itemLike" th:classappend="${goodsData.likeIt == 'likeit'}? 'likeit' : ''"  onclick="cfnPutWishList(this);" th:attr="goodsCd=${goodsData.goodsCd}, ithrCd='', contentsLoc='SBMM008', planDtlSq=''">관심상품 추가</button>
+														<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${goodsData.goodsCd}]], '', '', 'SBMM008');">
+															<div class="shape" th:classappend="${goodsStat.count==1}?'ranker'"><span th:text="${goodsStat.index+1}"></span></div>
+															<div class="itemPic">
+																<img class="vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}">
+															</div>
+															<p class="itemBrand" th:text="${goodsData.brandGroupNm}">BRAND NAME</p>
+															<div class="itemName"th:text="${goodsData.goodsFullNm}">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
+															<p class="itemPrice">
+																<span class="itemPrice_original" th:text="${#numbers.formatInteger(goodsData.listPrice,1,'COMMA')}">89,000</span>
+																[[${#numbers.formatInteger(goodsData.currPrice,1,'COMMA')}]]
+																<span class="itemPercent" th:if="${goodsData.currPrice != goodsData.listPrice}" th:text="${(goodsData.listPrice == 0 ? 0 : #numbers.formatDecimal((goodsData.listPrice - goodsData.currPrice) / (goodsData.listPrice * 1.0) * 100, 1, 0)) + '%'}">10%</span>
+															</p>
+															<div class="itemComment" th:text="${goodsData.goodsTnm}">#가을 느낌 물씬!!</div>
+														</a>
+													</div>
+												</div>
+											</div>
+										</th:block>
+									</div>
+									<!-- Add Pagination -->
+									<div class="swiper-pagination"></div>
+								</div>
+							</div>
+						</div>
+					</div>
+				</th:block>
+
+				<th:block th:if="${contentsLoc=='010'}">
+					<!-- 룩북 슬라이드 -->
+					<div class="inner wide" th:if="${brandMainLayoutData.lookbookList != null and !brandMainLayoutData.lookbookList.empty}">
+						<div class="br_lookbook">
+							<p class="br_subtitle" th:text="${contentsTitle}"></p>
+							<div class="recommendedArea">
+								<!-- 상품이미지pic -->
+								<div class="area_slider pic_img">
+									<div class="swiper-container">
+										<div class="swiper-wrapper">
+											<th:block th:each="LookbookData, LookbookStat : ${brandMainLayoutData.lookbookList}">
+												<div class="swiper-slide">
+													<div class="page">
+														<div class="pic">
+															<span class="thumb" th:style="${'background-image:url(' + @environment.getProperty('domain.image') + LookbookData.sysFileNm + ');'}"></span>
+															<!-- 상품피커 -->
+															<th:block th:if="${LookbookData.lookbookGoodsList != null and !LookbookData.lookbookGoodsList.empty}" th:each="lookbookGoods, status : ${LookbookData.lookbookGoodsList}">
+																<div class="item_picker" th:style="${'left:'+lookbookGoods.xlim+'%; top:'+lookbookGoods.ylim+'%;'}">
+																	<div>
+																		<button type="button" th:onclick="fnGoodsPopup([[${lookbookGoods.sysImgNm}]],[[${lookbookGoods.brandGroupNm}]],[[${lookbookGoods.goodsFullNm}]],[[${lookbookGoods.listPrice}]],[[${lookbookGoods.currPrice}]],[[${lookbookGoods.dcRate}]],[[${lookbookGoods.goodsCd}]])"><span class="ico ico_picker"></span></button>
+																		<div class="pick_descr">
+																			<a href="javascript:void(0);"></a>
+																		</div>
+																	</div>
+																</div>
+															</th:block>
+															<!-- //상품피커 -->
+														</div>
+													</div>
+												</div>
+											</th:block>
+										</div>
+										<!-- Add Pagination -->
+										<div class="swiper-pagination"></div>
+									</div>
+								</div>
+								<!-- //상품이미지pic -->
+							</div>
+						</div>
+					</div>
+				</th:block>
+
+				<th:block th:if="${contentsLoc=='009' or contentsLoc=='017' or contentsLoc=='018' or contentsLoc=='019'}">
+					<!-- 엠디픽 슬라이드 -->
+					<div class="inner" th:if="${brandMainLayoutData.goodsList != null}">
+						<div class="pd_together md_item">
+							<p class="br_subtitle" th:text="${contentsTitle}"></p>
+							<div class="area_slider">
+								<!-- Swiper -->
+								<div class="swiper-container">
+									<div class="swiper-wrapper">
+										<th:block th:each="goodsData, goodsStat : ${brandMainLayoutData.goodsList}">
+											<div class="swiper-slide">
+												<div class="item_prod">
+													<div class="item_state">
+														<button type="button" class="itemLike" th:classappend="${goodsData.likeIt == 'likeit'}? 'likeit' : ''"  onclick="cfnPutWishList(this);" th:attr="goodsCd=${goodsData.goodsCd}, ithrCd='', contentsLoc=${contentsLoc}, planDtlSq=''">관심상품 추가</button>
+														<a href="javascript:void(0);" class="itemLink"  th:onclick="cfnGoToGoodsDetail([[${goodsData.goodsCd}]], '', '', [[${contentsLoc}]]);">
+															<div class="itemPic">
+																<img class="vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}">
+															</div>
+															<p class="itemBrand" th:text="${goodsData.brandGroupNm}">BRAND NAME</p>
+															<div class="itemName" th:text="${goodsData.goodsFullNm}">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
+															<p class="itemPrice">
+																<span class="itemPrice_original" th:text="${#numbers.formatInteger(goodsData.listPrice,1,'COMMA')}">89,000</span>
+																[[${#numbers.formatInteger(goodsData.currPrice,0,'COMMA')}]]
+																<span class="itemPercent" th:if="${goodsData.currPrice != goodsData.listPrice}" th:text="${(goodsData.listPrice == 0 ? 0 : #numbers.formatDecimal((goodsData.listPrice - goodsData.currPrice) / (goodsData.listPrice * 1.0) * 100, 1, 0)) + '%'}">10%</span>
+															</p>
+															<div class="itemComment" th:text="${goodsData.goodsTnm}">#가을 느낌 물씬!!</div>
+														</a>
+													</div>
+												</div>
+											</div>
+										</th:block>
+									</div>
+									<!-- Add Pagination -->
+									<div class="swiper-pagination"></div>
+								</div>
+							</div>
+						</div>
+					</div>
+				</th:block>
+
+				<th:block th:if="${contentsLoc=='011'}">
+					<!-- 스페셜샵 슬라이드 -->
+					<div class="inner" th:if="${brandMainLayoutData.planningList != null}">
+						<div class="special_shop">
+							<p class="br_subtitle" th:text="${contentsTitle}"></p>
+							<div class="area_slider">
+								<div class="swiper-container">
+									<div class="swiper-wrapper">
+										<th:block th:each="planningData, planningStat : ${brandMainLayoutData.planningList}">
+											<div class="swiper-slide">
+												<div class="sp_item">
+													<div class="sp_img">
+														<img th:src="${@environment.getProperty('domain.image') + planningData.mainImg}" alt="">
+														<div class="s-text">
+															<p th:text="${planningData.planNm}">단 28시간 퓨어 아우터<br>최대 80%세일</p>
+															<p th:text="${planningData.dtlTitle1}">신상 아우터 7만원~</p>
+														</div>
+													</div>
+													<div class="sp_item">
+														<div class="itemsGrp rowtype">
+															<th:block th:if="${planningData.planningGoodsList != null and !planningData.planningGoodsList.empty}" th:each="planningGoods, status : ${planningData.planningGoodsList}">
+																<div class="item_prod">
+																	<div class="item_state">
+																		<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${planningGoods.goodsCd}]], '', '', 'SBMM011');">
+																			<div class="itemPic">
+																				<img class="vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + planningGoods.sysImgNm}">
+																			</div>
+																			<p class="itemBrand" th:text="${planningGoods.brandGroupNm}">BRAND NAME</p>
+																			<div class="itemName" th:text="${planningGoods.goodsNm}">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
+																			<p class="itemPrice">
+																				<span class="itemPrice_original" th:text="${#numbers.formatInteger(planningGoods.listPrice,1,'COMMA')}">89,000</span>
+																				[[${#numbers.formatInteger(planningGoods.currPrice,0,'COMMA')}]]
+																				<span class="itemPercent" th:if="${planningGoods.currPrice != planningGoods.listPrice}" th:text="${(planningGoods.listPrice == 0 ? 0 : #numbers.formatDecimal((planningGoods.listPrice - planningGoods.currPrice) / (planningGoods.listPrice * 1.0) * 100, 1, 0)) + '%'}">10%</span>
+																			</p>
+																		</a>
+																	</div>
+																</div>
+															</th:block>
+														</div>
+													</div>
+												</div>
+											</div>
+										</th:block>
+									</div>
+								</div>
+							</div>
+						</div>
+					</div>
+				</th:block>
+
+				<th:block th:if="${contentsLoc=='013'}">
+					<!-- brand_product -->
+					<div class="inner" th:if="${brandMainLayoutData.goodsList != null and !brandMainLayoutData.goodsList.empty}">
+						<div class="brand_product">
+							<p class="br_subtitle" th:text="${contentsTitle}"></p>
+							<th:block th:each="goodsData, goodsStat : ${brandMainLayoutData.goodsList}">
+								<th:block th:if="${(goodsStat.index%2)==0 or goodsStat.first}">
+									<div class="itemsGrp">
+								</th:block>
+								<div class="item_prod">
+									<div class="item_state">
+										<button type="button" class="itemLike" th:classappend="${goodsData.likeIt == 'likeit'}? 'likeit' : ''"  onclick="cfnPutWishList(this);" th:attr="goodsCd=${goodsData.goodsCd}, ithrCd='', contentsLoc='SBMM013', planDtlSq=''">관심상품 추가</button>
+										<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${goodsData.goodsCd}]], '', '', 'SBMM013');">
+											<div class="itemPic">
+												<img class="vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}">
+											</div>
+											<p class="itemBrand" th:text="${goodsData.brandGroupNm}">BRAND NAME</p>
+											<div class="itemName" th:text="${goodsData.goodsFullNm}">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
+											<p class="itemPrice">
+												<span class="itemPrice_original" th:text="${#numbers.formatInteger(goodsData.listPrice,1,'COMMA')}">89,000</span>
+												[[${#numbers.formatInteger(goodsData.currPrice,0,'COMMA')}]]
+												<span class="itemPercent" th:if="${goodsData.currPrice != goodsData.listPrice}" th:text="${(goodsData.listPrice == 0 ? 0 : #numbers.formatDecimal((goodsData.listPrice - goodsData.currPrice) / (goodsData.listPrice * 1.0) * 100, 1, 0)) + '%'}">10%</span>
+											</p>
+											<div class="itemcolorchip" th:if="${goodsData.colorArr != null}">
+												<th:block th:each="option, idx : ${goodsData.colorArr}" th:with="colorArray=${#strings.arraySplit(idx.current,':')}">
+													<span th:if="${colorArray[1]=='#FFFFFF'}" th:style="${'background-color:'+colorArray[1]+';border:1px solid #aaa;'}" class="chip_color" th:value="${colorArray[0]}"></span>
+													<span th:if="${colorArray[1]!='#FFFFFF'}" th:style="${'background-color:'+colorArray[1]+';'}" class="chip_color" th:value="${colorArray[0]}"></span>
+												</th:block>
+											</div>
+											<p class="itemBadge" th:if="${goodsData.benefitArr != null}">
+												<th:block th:each="option, idx : ${goodsData.benefitArr}" th:with="iconArray=${#strings.arraySplit(idx.current,':')}" >
+													<span class="badge13" th:if="${idx.index<3}" th:value="${iconArray[0]}" th:text="${iconArray[1]}"></span>
+												</th:block>
+											</p>
+											<div class="itemComment" th:text="${goodsData.goodsTnm}">#주문 폭주 상품</div>
+										</a>
+									</div>
+								</div>
+								<th:block th:if="${(goodsStat.index%2)== 1 or goodsStat.last}">
+									<th:block th:utext="'</div>'"></th:block>
+								</th:block>
+							</th:block>
+
+							<div class="btn_group_flex">
+								<div>
+									<button class="btn btn_default"  th:onclick="cfnGoToGoodsList([[${brandGroupInfo.brandGroupNo}]],[[${brandGroupInfo.cateGb}]]);">더보기</button>
+								</div>
+							</div>
+						</div>
+					</div>
+				</th:block>
+
+				<th:block th:if="${contentsLoc=='012'}">
+					<!-- 유튜브 슬라이드 -->
+					<div class="inner wide" th:if="${brandMainLayoutData.ContentsList != null}">
+						<div class="youtube">
+							<p class="br_subtitle" th:text="${contentsTitle}">STYLE24 TV</p>
+							<div class="swiper-container br_youtube_slide">
+								<div class="swiper-wrapper">
+									<th:block th:each="item, stat : ${brandMainLayoutData.ContentsList}">
+										<div class="swiper-slide">
+											<div class="movbox">
+												<iframe th:if="${item.strVar1=='Y'}" width="100%" height="100%" th:src="${'https://www.youtube.com/embed/'+item.strVar2+'?rel=0'}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
+												<iframe th:if="${item.strVar1=='M'}" class="pd_mov"  th:src="${'http://v.kr.kollus.com/'+item.strVar2+'?enable_initialize_focus=false'}" allowfullscreen></iframe>
+											</div>
+										</div>
+									</th:block>
+								</div>
+								<!-- Add Pagination -->
+								<div class="swiper-pagination"></div>
+							</div>
+						</div>
+					</div>
+				</th:block>
+
+
+			</th:block>
+		</th:block>
+	</section>
+</main>
+	<script th:inline="javascript">
+		// 픽커모달
+		$(document).ready(function () {
+			$(document).on('click','.item_picker',function(e){
+				$("#reco_pop").modal("show");
+				$("body").addClass("recoPop");
+				return false;
+			});
+			$(document).on('click','#reco_pop .close-modal',function(e){
+				$("body").removeClass("recoPop");
+				return false;
+			});
+
+			var spc = $('.swiper-pagination-current');
+			var spt = $('.swiper-pagination-total');
+			setInterval(function(){
+				for(var i=0; i<spc.length; i++){
+					if(spc[i].innerText.length < 2){
+						var itNum = spc[i].innerText.toString();
+						spc[i].innerText = 0+itNum;
+					}
+				}
+				for(var i=0; i<spt.length; i++){
+					if(spt[i].innerText.length < 2){
+						var itNum2 = spt[i].innerText.toString();
+						spt[i].innerText = 0+itNum2;
+					}
+				}
+			}, 10);
+
+
+			var clNum = 0;
+			$(document).on('click', '.br .pnb_mo > button',function(e){
+				if(clNum === 0){
+					$('.br .pnb_mo > button').css("background", "url(/images/mo/ico_btn_narrow.png) center top/1.8rem 2.0rem no-repeat");
+					clNum = 1;
+				} else {
+					$('.br .pnb_mo > button').css("background", "url(/images/mo/ico_btn_expand.png) center top/1.8rem 2.0rem no-repeat");
+					clNum = 0;
+				}
+			});
+		});
+
+		// 서브비주얼 슬라이드
+		var myArray = ["01", "02", "03"];
+		var submainVisualSwiper = new Swiper('.swiper-container.submain_visual', {
+			//210414_자동롤링 추가
+			autoplay : {
+				delay : 3000,   // 시간 설정
+			},
+			pagination: {
+				el: '.swiper-pagination',
+				type: 'fraction',
+				//renderCustom: function (swiper, current, total) {
+				//	return current + ' of ' + total;
+				//}
+			}
+		});
+
+		//  이미지배너 슬라이드
+		var imgBannerSwiper = new Swiper('.swiper-container.br_second_slide', {
+			//210414_자동롤링 추가
+			autoplay : {
+				delay : 3000,   // 시간 설정
+			},
+			pagination: {
+				el: '.swiper-pagination',
+			},
+		});
+
+		// 뉴아이템 슬라이드
+		var newItemSwiper = new Swiper('.new_item .area_slider .swiper-container', {
+			slidesPerView: 1,
+			pagination: {
+				el: '.swiper-pagination',
+			},
+		});
+
+		// 베스트아이템 슬라이드
+		var bestItemSwiper = new Swiper('.best_item .area_slider .swiper-container', {
+			slidesPerView: 2,
+			spaceBetween: 8,
+		});
+
+		// 엠디픽 슬라이드
+		var mdItemSwiper = new Swiper('.md_item .area_slider .swiper-container', {
+			slidesPerView: 2,
+			spaceBetween: 8,
+		});
+
+		// 스페셜샵 슬라이드
+		var specialShopSwiper = new Swiper('.special_shop .area_slider .swiper-container', {
+			slidesPerView: 1,
+			spaceBetween: 10,
+		});
+
+		// 룩북 슬라이드
+		var rcmdPicimgSwiper = new Swiper('.recommendedArea .area_slider .swiper-container', {
+			slidesPerView: 1,
+			spaceBetween: 0,
+			pagination: {
+				el: '.swiper-pagination',
+				type: 'fraction',
+			},
+		});
+
+		// 유튜브 슬라이드
+		var swiperYoutu = new Swiper('.swiper-container.br_youtube_slide', {
+			pagination: {
+				el: '.swiper-pagination',
+			},
+		});
+
+		// 브랜드메인 배너 <br> 처리
+		$('.bMainTitle').each(function (){
+			let tag = '';
+			if(!gagajf.isNull($(this).find("input[name=mainTitle]").val())){
+				var brText = $(this).find("input[name=mainTitle]").val().replaceAll("<BR>", "<br>").replaceAll("<bR>", "<br>").replaceAll("<Br>", "<br>").replaceAll("<br/>", "<br>");
+				if(brText.indexOf('<br>') > -1){
+					var reText = brText.split("<br>");
+					tag += reText[0];
+					tag += '<br>';
+					tag += reText[1];
+				}else{
+					tag += brText;
+				}
+				$(this).append(tag);
+			}
+		});
+
+		// 브랜드소개 <br> 처리
+		if(!gagajf.isNull($("#brandDesc").find("input[name=brandTitle]").val())){
+			var brandDesc = $("#brandDesc").find("input[name=brandTitle]").val().replaceAll("<BR>", "<br>").replaceAll("<bR>", "<br>").replaceAll("<Br>", "<br>");
+			if(!gagajf.isNull(brandDesc)){
+				if(brandDesc.indexOf('<br>') > -1){
+					let tag = '';
+					var reText = brandDesc.split("<br>");
+					tag += reText[0];
+					tag += '<br>';
+					tag += reText[1];
+					$("#brandDesc .cate").append(tag);
+				}else{
+					let tag = '';
+					tag += brandDesc;
+					$("#brandDesc .cate").append(tag);
+				}
+			}
+		}
+
+		if(!gagajf.isNull($("#brandDesc").find("input[name=brandNote]").val())){
+			var brandDesc = $("#brandDesc").find("input[name=brandNote]").val().replaceAll("<BR>", "<br>").replaceAll("<bR>", "<br>").replaceAll("<Br>", "<br>");
+			if(!gagajf.isNull(brandDesc)){
+				if(brandDesc.indexOf('<br>') > -1){
+					let tag = '';
+					var reText = brandDesc.split("<br>");
+					tag += reText[0];
+					tag += '<br>';
+					tag += reText[1];
+					$("#brandDesc .desc").append(tag);
+				}else{
+					let tag = '';
+					tag += brandDesc;
+					$("#brandDesc .desc").append(tag);
+				}
+			}
+		}
+
+		// 배너 슬라이더 <br> 처리
+		$('.bText').each(function (){
+			let tag = '';
+			if(!gagajf.isNull($(this).find("input[name=bannerDesc]").val())){
+				var brText = $(this).find("input[name=bannerDesc]").val().replaceAll("<BR>", "<br>").replaceAll("<bR>", "<br>").replaceAll("<Br>", "<br>").replaceAll("<br/>", "<br>");
+				if(brText.indexOf('<br>') > -1){
+					var reText = brText.split("<br>");
+					tag += reText[0];
+					tag += '</p>';
+					tag += '<p>';
+					tag += reText[1];
+					tag += '</p>';
+				}else{
+					tag += brText;
+				}
+				$(this).append(tag);
+			}
+		});
+	</script>
+
+</th:block>
+
+</body>
+</html>

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

@@ -278,7 +278,7 @@
 
 			<th:block th:if="${contentsLoc=='007'}">
 				<!-- 7. 브랜드픽 -->
-				<div class="inner">
+				<div class="inner" th:if="${mainData.ContentsList != null}">
 					<div class="main_pick" >
 						<div class="titWrap">
 							<h2 th:text="${contentsTitle}"></h2>
@@ -375,7 +375,7 @@
 				</div>
 			</th:block>
 
-			<th:block th:if="${contentsLoc=='009'}">
+			<th:block th:if="${contentsLoc=='012'}">
 				<!-- 9. MD추천 스타일 -->
 				<div class="inner">
 					<div class="main_recomm">

+ 17 - 11
src/main/webapp/WEB-INF/views/mob/mypage/MypageCustDeliveryAddrFormMob.html

@@ -154,18 +154,24 @@
 	};
 
 	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;
+		mcxDialog.confirm("배송지를 삭제하시겠습니까?", {
+		cancelBtnText : "취소",
+		sureBtnText : "확인",
+		sureBtnClick : function() {
+				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() {

+ 325 - 0
src/main/webapp/WEB-INF/views/mob/planning/PlanningEventPollFormMob.html

@@ -0,0 +1,325 @@
+<!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/DefaultLayoutMob">
+<!--
+ *******************************************************************************
+ * @source  : PlanningEventPollFormMob.html
+ * @desc    : 설문조사 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.05.10   sowon     최초 작성
+ *******************************************************************************
+ -->
+<body>
+<th:block layout:fragment="content">
+<main role="" id="" class="container ev">
+			<section class="content renew">
+				<div class="inner">
+					<div class="promotion_tit">
+						<h3 th:text="${pollInfo.pollTitle}"></h3>
+						<div class="period">
+							<span th:text="${pollInfo.pollStdt}"></span> - <span th:text="${pollInfo.pollEddt}"></span>
+						</div> 
+						<!-- <button type="button" class="share_btn"><img src="/images/mo/ico_share_btn.png" alt="공유" /></button> -->
+					</div>
+				</div>
+				<div class="inner wide">
+					<div class="survey_wrap">
+						<div class="survey_con">
+							<form action="">
+							<th:block th:each="pollData, pollStat : ${pollList}">
+								<div class="survey_row q1" th:if="${pollData.pollQtype == '10'}">
+									<h4 th:text=${pollData.pollQtitle}></h4>
+									<div class="answer">
+										<div class="form_field">
+											<ul class="clear" th:id="${pollData.pollQsq+'_'+(pollStat.index+1)}">
+												<li th:if="${pollData.pollQval1 != null && pollData.pollQval1 != ''}">
+													<th:block th:if="${pollData.pollQval1 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-1-'+${pollData.pollQsq}" th:value="${pollData.pollQval1}" ><label th:for="'rdi-1-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval1}"></span></label>
+													</th:block>
+													<th:block th:unless="${pollData.pollQval1 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-1-'+${pollData.pollQsq}" th:value="${pollData.pollQval1}" class="etc"><label th:for="'rdi-1-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval1}"></span></label>
+														<textarea th:name="'etc_input_'+${pollData.pollQsq}" id=""></textarea>
+													</th:block>
+												</li>
+												<li th:if="${pollData.pollQval2 != null && pollData.pollQval2 != ''}">
+													<th:block th:if="${pollData.pollQval2 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-2-'+${pollData.pollQsq}" th:value="${pollData.pollQval2}" ><label th:for="'rdi-2-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval2}"></span></label>
+													</th:block>
+													<th:block th:unless="${pollData.pollQval2 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-2-'+${pollData.pollQsq}" th:value="${pollData.pollQval2}" class="etc"><label th:for="'rdi-2-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval2}"></span></label>
+														<textarea th:name="'etc_input_'+${pollData.pollQsq}" id=""></textarea>
+													</th:block>
+												</li>
+												<li th:if="${pollData.pollQval3 != null && pollData.pollQval3 != ''}">
+													<th:block th:if="${pollData.pollQval3 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-3-'+${pollData.pollQsq}" th:value="${pollData.pollQval3}" ><label th:for="'rdi-3-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval3}"></span></label>
+													</th:block>
+													<th:block th:unless="${pollData.pollQval3 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-3-'+${pollData.pollQsq}" th:value="${pollData.pollQval3}" class="etc"><label th:for="'rdi-3-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval3}"></span></label>
+														<textarea th:name="'etc_input_'+${pollData.pollQsq}" id=""></textarea>
+													</th:block>
+												</li>
+												<li th:if="${pollData.pollQval4 != null && pollData.pollQval4 != ''}">
+													<th:block th:if="${pollData.pollQval4 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-4-'+${pollData.pollQsq}" th:value="${pollData.pollQval4}" ><label th:for="'rdi-4-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval4}"></span></label>
+													</th:block>
+													<th:block th:unless="${pollData.pollQval4 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-4-'+${pollData.pollQsq}" th:value="${pollData.pollQval4}" class="etc"><label th:for="'rdi-4-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval4}"></span></label>
+														<textarea th:name="'etc_input_'+${pollData.pollQsq}" id=""></textarea>
+													</th:block>
+												</li>
+												<li th:if="${pollData.pollQval5 != null && pollData.pollQval5 != ''}">
+													<th:block th:if="${pollData.pollQval5 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-5-'+${pollData.pollQsq}" th:value="${pollData.pollQval5}" ><label th:for="'rdi-5-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval5}"></span></label>
+													</th:block>
+													<th:block th:unless="${pollData.pollQval5 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-5-'+${pollData.pollQsq}" th:value="${pollData.pollQval5}" class="etc"><label th:for="'rdi-5-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval5}"></span></label>
+														<textarea th:name="'etc_input_'+${pollData.pollQsq}" id=""></textarea>
+													</th:block>
+												</li>
+												<li th:if="${pollData.pollQval6 != null && pollData.pollQval6 != ''}">
+													<th:block th:if="${pollData.pollQval6 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-6-'+${pollData.pollQsq}" th:value="${pollData.pollQval6}"><label th:for="'rdi-6-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval6}"></span></label>
+													</th:block>
+													<th:block th:unless="${pollData.pollQval6 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-6-'+${pollData.pollQsq}" th:value="${pollData.pollQval6}" class="etc"><label th:for="'rdi-6-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval6}"></span></label>
+														<textarea th:name="'etc_input_'+${pollData.pollQsq}" id=""></textarea>
+													</th:block>
+												</li>
+												<li th:if="${pollData.pollQval7 != null && pollData.pollQval7 != ''}">
+													<th:block th:if="${pollData.pollQval7 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-7-'+${pollData.pollQsq}" th:value="${pollData.pollQval7}" ><label th:for="'rdi-7-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval7}"></span></label>
+													</th:block>
+													<th:block th:unless="${pollData.pollQval7 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-7-'+${pollData.pollQsq}" th:value="${pollData.pollQval7}" class="etc"><label th:for="'rdi-7-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval7}"></span></label>
+														<textarea th:name="'etc_input_'+${pollData.pollQsq}" id=""></textarea>
+													</th:block>
+												</li>
+												<li th:if="${pollData.pollQval8 != null && pollData.pollQval8 != ''}">
+													<th:block th:if="${pollData.pollQval8 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-8-'+${pollData.pollQsq}" th:value="${pollData.pollQval8}"><label th:for="'rdi-8-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval8}"></span></label>
+													</th:block>
+													<th:block th:unless="${pollData.pollQval8 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-8-'+${pollData.pollQsq}" th:value="${pollData.pollQval8}" class="etc"><label th:for="'rdi-8-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval8}"></span></label>
+														<textarea th:name="'etc_input_'+${pollData.pollQsq}" id=""></textarea>
+													</th:block>
+												</li>
+												<li th:if="${pollData.pollQval9 != null && pollData.pollQval9 != ''}">
+													<th:block th:if="${pollData.pollQval9 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-9-'+${pollData.pollQsq}" th:value="${pollData.pollQval9}" ><label th:for="'rdi-9-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval9}"></span></label>
+													</th:block>
+													<th:block th:unless="${pollData.pollQval9 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-9-'+${pollData.pollQsq}" th:value="${pollData.pollQval9}"class="etc"><label th:for="'rdi-9-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval9}"></span></label>
+														<textarea th:name="'etc_input_'+${pollData.pollQsq}" id=""></textarea>
+													</th:block>
+												</li>
+												<li th:if="${pollData.pollQval10 != null && pollData.pollQval10 != ''}">
+													<th:block th:if="${pollData.pollQval10 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-10-'+${pollData.pollQsq}" th:value="${pollData.pollQval10}"><label th:for="'rdi-10-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval10}"></span></label>
+													</th:block>
+													<th:block th:unless="${pollData.pollQval10 != '기타'}">
+														<input type="radio" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'rdi-10-'+${pollData.pollQsq}" th:value="${pollData.pollQval10}" class="etc"><label th:for="'rdi-10-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval10}"></span></label>
+														<textarea th:name="'etc_input_'+${pollData.pollQsq}" id=""></textarea>
+													</th:block>
+												</li>
+											</ul>
+										</div>
+									</div>
+								</div>
+								<div class="survey_row q2" th:if="${pollData.pollQtype == '20'}">
+									<h4 th:text=${pollData.pollQtitle}></h4>
+									<div class="answer">
+										<div class="form_field">
+											<ul class="clear" th:id="${pollData.pollQsq+'_'+(pollStat.index+1)}">
+												<li th:if="${pollData.pollQval1 != null && pollData.pollQval1 != ''}">
+													<input type="checkbox" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'chk-1-'+${pollData.pollQsq}" th:value="${pollData.pollQval1}"><label th:for="'chk-1-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval1}"></span></label>
+												</li>
+												<li th:if="${pollData.pollQval2 != null && pollData.pollQval2 != ''}">
+														<input type="checkbox" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'chk-2-'+${pollData.pollQsq}" th:value="${pollData.pollQval2}"><label th:for="'chk-2-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval2}"></span></label>
+												</li>
+												<li th:if="${pollData.pollQval3 != null && pollData.pollQval3 != ''}">
+														<input type="checkbox"  th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'chk-3-'+${pollData.pollQsq}" th:value="${pollData.pollQval3}"><label th:for="'chk-3-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval3}"></span></label>
+												</li>
+												<li th:if="${pollData.pollQval4 != null && pollData.pollQval4 != ''}">
+														<input type="checkbox" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'chk-4-'+${pollData.pollQsq}" th:value="${pollData.pollQval4}"><label th:for="'chk-4-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval4}"></span></label>
+												</li>
+												<li th:if="${pollData.pollQval5 != null && pollData.pollQval5 != ''}">
+														<input type="checkbox" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'chk-5-'+${pollData.pollQsq}" th:value="${pollData.pollQval5}"><label th:for="'chk-5-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval5}"></span></label>
+												</li>
+												<li th:if="${pollData.pollQval6 != null && pollData.pollQval6 != ''}">
+														<input type="checkbox" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'chk-6-'+${pollData.pollQsq}" th:value="${pollData.pollQval6}"><label th:for="'chk-6-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval6}"></span></label>
+												</li>
+												<li th:if="${pollData.pollQval7 != null && pollData.pollQval7 != ''}">
+														<input type="checkbox" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'chk-7-'+${pollData.pollQsq}" th:value="${pollData.pollQval7}"><label th:for="'chk-7-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval7}"></span></label>
+												</li>
+												<li th:if="${pollData.pollQval8 != null && pollData.pollQval8 != ''}">
+														<input type="checkbox" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'chk-8-'+${pollData.pollQsq}" th:value="${pollData.pollQval8}"><label th:for="'chk-8-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval8}"></span></label>
+												</li>
+												<li th:if="${pollData.pollQval9 != null && pollData.pollQval9 != ''}">
+														<input type="checkbox" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'chk-9-'+${pollData.pollQsq}" th:value="${pollData.pollQval9}"><label th:for="'chk-9-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval9}"></span></label>
+												</li>
+												<li th:if="${pollData.pollQval10 != null && pollData.pollQval10 != ''}">
+														<input type="checkbox" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="'chk-10-'+${pollData.pollQsq}" th:value="${pollData.pollQval10}"><label th:for="'chk-10-'+${pollData.pollQsq}"><span th:text="${pollData.pollQval10}"></span></label>
+												</li>
+											</ul>
+										</div>
+									</div>
+								</div>
+
+								<div class="survey_row q4" th:if="${pollData.pollQtype == '40'}">
+									<h4 th:text=${pollData.pollQtitle}></h4> <!-- 210414_수정 : br태그 삭제 -->
+									<div class="answer">
+										<textarea class="doc_ans" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="${pollData.pollQsq+'_'+(pollStat.index+1)}" placeholder="1,000자 이내로 입력해 주세요." style="resize: none;"></textarea>
+										<p class="txt_cnt"><span id="ans_cnt" class="c_primary">0</span>/1,000</p>
+									</div>
+								</div>
+								<div class="survey_row q3" th:if="${pollData.pollQtype == '30'}">
+								<h4 th:text=${pollData.pollQtitle}></h4> <!-- 210414_수정 : br태그 삭제 -->
+									<div class="answer">
+										<textarea class="q4_ans" name="" id="" th:name="${pollData.pollQsq+'_'+(pollStat.index+1)}" th:id="${pollData.pollQsq+'_'+(pollStat.index+1)}"></textarea>
+									</div>
+							
+								</div>
+								</th:block>
+								
+								<div class="btn_wrap">
+									<button type="button" id="btn_survey_success" class="btn btn_dark" onclick="fnSubmitPoll()">응답 완료</button>
+								</div>
+							</form>
+						</div>
+					</div>
+				</div>
+			</section>
+		</main>
+<script th:inline="javascript">
+let pollList = [[${pollList}]];
+
+var fnSubmitPoll = function () {
+	//let pollQsq_20 = new Array();
+	let pollQsq_10 = '';
+	let pollQsq_20 = '';
+	let pollQsq_30 = '';
+	let pollQsq_40 = '';
+	
+	
+	// 유효성검사
+	for (let i = 0; i < pollList.length; i++) {
+		let type = pollList[i].pollQtype;
+		let pollQsq = pollList[i].pollQsq;
+		
+		
+		if(type == "10"){
+			if($('input:radio[name='+pollQsq+'_'+(i+1)+']').is(':checked')== false){
+				mcxDialog.alert("Q"+(i+1)+"항목은 필수항목입니다.");
+				return;
+			}
+			if($('input:radio[name='+pollQsq+'_'+(i+1)+']:checked').val() == '기타'){
+				if($('textarea[name=etc_input_'+pollQsq+']').val()==''){
+					mcxDialog.alert("Q"+(i+1)+"기타 내용을 입력해주세요.");
+					return;
+				}
+			}
+			if ($('input:radio[name='+pollQsq+'_'+(i+1)+']:checked').val() == '기타') {
+				pollQsq_10 += pollQsq +'-'+$('textarea[name=etc'+pollQsq+']').val() + '/';
+			}else{
+				pollQsq_10 += pollQsq +'-'+$('input:radio[name='+pollQsq+'_'+(i+1)+']:checked').val() + '/';
+			}
+		}
+		if(type == "20"){
+			if($('input:checkbox[name='+pollQsq+'_'+(i+1)+']').is(':checked')== false){
+				mcxDialog.alert("Q"+(i+1)+"항목은 필수항목입니다.");
+				return;
+			}else{
+				let chk = $('input:checkbox[name='+pollQsq+'_'+(i+1)+']:checked');
+				pollQsq_20 += pollQsq + '-' ;
+				for(let i=0; i< chk.length; i++){
+					pollQsq_20 += chk.eq(i).val();
+					if (i != chk.length-1) {
+						pollQsq_20 += ',';
+					}
+				}
+				pollQsq_20 += '/' ;
+			}
+		}
+		if(type == "30"){
+			if($('textarea[name='+pollQsq+'_'+(i+1)+']').val() == ''){
+				mcxDialog.alert("Q"+(i+1)+"항목은 필수항목입니다.");
+				return;
+			}else{
+				pollQsq_30 += pollQsq +'-'+$('textarea[name='+pollQsq+'_'+(i+1)+']').val() + '/';
+			}
+		}
+		if(type == "40"){
+			if($('textarea[name='+pollQsq+'_'+(i+1)+']').val() == ''){
+				mcxDialog.alert("Q"+(i+1)+"항목은 필수항목입니다.");
+				return;
+			}else{
+				//max1.set(pollQsq,$('textarea[name='+pollQsq+'_'+(i+1)+']').val());
+				pollQsq_40 += pollQsq +'-'+$('textarea[name='+pollQsq+'_'+(i+1)+']').val() + '/';
+			}
+		}
+	}
+	var data = {pollQsq_10 : pollQsq_10,
+				pollQsq_20 : pollQsq_20,
+			    pollQsq_30 : pollQsq_30,
+			    pollQsq_40 : pollQsq_40};
+	
+
+	var jsonData = JSON.stringify(data);
+
+	$.ajax({
+		type : "POST",
+		data : jsonData,
+		url : '/planning/event/poll/save',
+		contentType : 'application/json',
+		dataType : 'json',
+		success : function(result) {
+			mcxDialog.alertC('설문조사 이벤트 참여가 완료되었습니다.', {
+				sureBtnText: "확인",
+				sureBtnClick: function() {
+					cfnGoToPage(_PAGE_EVENT_MAIN);
+				}
+			});
+		}
+	})
+}
+
+$(document).ready(function(){
+	//Q3 글자 수 카운트
+	$('.doc_ans').keyup(function (e){
+		var content = $(this).val();
+		$('#ans_cnt').html(content.length);
+		if (content.length > 1000){
+			$(this).val(content.substring(0, 1000));
+			$('#ans_cnt').html("500");
+		}
+	});
+	
+	$('.etc').keyup(function (e){
+		var content = $(this).val(); 
+		if (content.length > 50){
+			$(this).val(content.substring(0, 50));
+		}
+	});
+	
+	$('.q4_ans').keyup(function (e){
+		var content = $(this).val(); 
+		if (content.length > 50){
+			$(this).val(content.substring(0, 50));
+		}
+	});
+	
+	
+})
+</script>
+</th:block>
+
+</body>
+</html>

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

@@ -53,9 +53,10 @@
 
 <script th:inline="javascript">
 /*<![CDATA[*/
-	let fnGetPlanningList = function(cateNo) {
+	let fnGetPlanningList = function(cateNo,brandGroupNo) {
 		let actionUrl = '/planning/main/list';
 		if (!gagajf.isNull(cateNo)) actionUrl += '?cateNo=' + cateNo;
+		if (!gagajf.isNull(brandGroupNo)) actionUrl += '?brandGroupNo=' + brandGroupNo;
 		
 		$.getJSON(actionUrl
 			, function(result, status) {
@@ -118,7 +119,7 @@
 	}
 	
 	$(document).ready(function() {
-		fnGetPlanningList([[${cateNo}]]);
+		fnGetPlanningList([[${cateNo}]],[[${brandGroupNo}]]);
 	});
 /*]]>*/
 </script>

+ 372 - 293
src/main/webapp/WEB-INF/views/mob/planning/PlanningShotGuideFormMob.html

@@ -18,165 +18,82 @@
  -->
 <body>
 <th:block layout:fragment="content">
-		<main role="" id="" class="container dp">
-
-			<section class="content dp_Bulletship">
-				<div class="inner wide">
-                    <div class="Bulletship_head">
-                        <img src="/images/mo/thumb/bullet_bg1.png" alt="오늘 사서 오늘 입자 AM 10시까지 주문하면 당일 도착 대상지역 서울, 경기, 인천 외 일부 지역 제외">
-                    </div>
-                    <div class="Bulletship_body">
-                        <div class="inner">
-                            <div class="ico-area">
-                                <img src="/images/mo/ico_bulltet-house.png" alt="지붕이 그려진 아이콘입니다">
+	<main role="" id="" class="container dp">
+			<section class="content">
+                <div class="inner wide">
+                    <div class="bulletship">
+                        <div class="Bulletship_head">
+                        	 <img src="/images/mo/thumb/bullet_bg1.png" alt="오늘 사서 오늘 입자 AM 10시까지 주문하면 당일 도착 대상지역 서울, 경기, 인천 외 일부 지역 제외">
+                        </div>
+                        <div class="Bulletship_body">
+                            <div>
+                                <div class="ico-area">
+                                    <img src="/images/mo/ico_bulltet-house.png" alt="지붕이 그려진 아이콘입니다">
+                                </div>
+                                <div class="txt-area" id="shotHtml">
+                                    <!-- 배송가능지역 -->
+                                   
+                                    <!-- // 배송가능지역 -->
+                                </div>  
                             </div>
-                            <div class="txt-area">
-								 <!-- 배송가능지역 -->
-								 <p class="bulltetship-time">오전10시 이전 주문 당일도착</p>
-								 <p class="bulltetship-check"><span class="c_primary">총알배송이 가능한 지역</span>인지<br> 확인해보세요!</p>
-							 
-								 <div class="btn_group_flex">
-									 <div>
-										 <button class="btn btn_default" id="btn_bulletship_pop">
-											 <span>내 배송지 확인하기</span>
-										 </button>
-									 </div>
-								 </div>
-								 <p class="bulltetship-disc ptxt01">서울·경기·인천 중 일부지역은 총알배송이 불가합니다.</p>
-								 <!-- // 배송가능지역 -->
-                            </div>  
                         </div>
-                    </div>
-                    <div class="Bulletship_foot">
-                        <div class="inner custom-inner">
-                            <ul class="clear">
-                                <li>
-                                    <div class="img-box">
-                                        <img src="/images/mo/ico_bulltet-order.png" alt="택배차가 그려진 아이콘입니다">
-                                    </div>
-                                    <div class="txt-box">
-                                        <span class="tit">주문/도착</span>
-                                        <p class="disc">오전 10시 전 주문완료하면 <br>당일 밤 12시까지 도착</p>
-                                    </div>
-                                </li>
-                                <li>
-                                    <div class="img-box">
-                                        <img src="/images/mo/ico_bulltet-delivery.png" alt="달력이 그려진 아이콘입니다">
-                                    </div>
-                                    <div class="txt-box">
-                                        <span class="tit">배송일</span>
-                                        <p class="disc">월, 화, 수, 목, 금 <br class="mo-only">(영업일 기준, 공휴일 휴무)</p>
-                                    </div>
-                                </li>
-                                <li>
-                                    <div class="img-box">
-                                        <img src="/images/mo/ico_bulltet-object.png" alt="쇼핑백이 그려진 아이콘입니다">
-                                    </div>
-                                    <div class="txt-box">
-                                        <span class="tit">대상상품</span>
-                                        <p class="disc ptxt01">한세 패밀리 브랜드 <br class="mo-only">(스타일24 직배송 한정)</p>
-                                    </div>
-                                </li>
-                            </ul>
+                        <div class="Bulletship_foot" >
+                            <div>
+                                <ul class="clear">
+                                    <li>
+                                        <div class="img-box">
+                                            <img src="/images/mo/ico_bulltet-order.png" alt="택배차가 그려진 아이콘입니다">
+                                        </div>
+                                        <div class="txt-box">
+                                            <span class="tit">주문/도착</span>
+                                            <p class="disc">오전 10시 전 주문완료하면 <br>당일 밤 12시까지 도착</p>
+                                        </div>
+                                    </li>
+                                    <li>
+                                        <div class="img-box">
+                                            <img src="/images/mo/ico_bulltet-delivery.png" alt="달력이 그려진 아이콘입니다">
+                                        </div>
+                                        <div class="txt-box">
+                                            <span class="tit">배송일</span>
+                                            <p class="disc">월, 화, 수, 목, 금 <br class="mo-only">(영업일 기준, 공휴일 휴무)</p>
+                                        </div>
+                                    </li>
+                                    <li>
+                                        <div class="img-box">
+                                            <img src="/images/mo/ico_bulltet-object.png" alt="쇼핑백이 그려진 아이콘입니다">
+                                        </div>
+                                        <div class="txt-box">
+                                            <span class="tit">대상상품</span>
+                                            <p class="disc ptxt01">한세 패밀리 브랜드 <br class="mo-only">(스타일24 직배송 한정)</p>
+                                        </div>
+                                    </li>
+                                </ul>
+                            </div>
                         </div>
                     </div>
-
-					<!-- 210415_드롭박스 위치수정 -->
-					<div class="items_option">
-						<div class="open_categori">
-							<a id="filter">모이몰른
-								<!-- 210415_select > a태그로 변경 -->
-								<!--<option value="hide">모이몰른</option>
-								<option value="Test_SELECT_OPTION_1" rel="icon-temperature">모이몰른</option>
-								<option value="Test_SELECT_OPTION_2">모이몰른</option>
-								<option value="Test_SELECT_OPTION_3">모이몰른</option>-->
-							</a> 
+                </div>
+				<div class="inner wide">
+					<div class="dp_listItems_cont type1">
+						<!-- 210415_드롭박스 위치수정 -->
+						<div class="items_option">
+							<div class="open_categori" style="position: relative; width: 100%; z-index: 0;">
+								<a id="filter"></a> 
+							</div>
 						</div>
 					</div>
                 </div>
-				<div class="inner">
-					<div class="delivery_item">
-						<h2 class="dp_subtitle dp_another_st">모이몰른</h2>
-						<div class="item_list">
-							<div class="itemsGrp"> <!-- itemsGrp rank hot deal -->
-								<div class="item_prod">
-									<div class="item_state">
-										<button type="button" class="itemLike">관심상품 추가</button>
-										<a href="#none" class="itemLink">
-											<div class="itemPic">
-												<img class="vLHTC pd_img" src="/images/mo/thumb/prod1.jpg" alt="">
-											</div>
-											<p class="itemBrand">BRAND NAME</p>
-											<div class="itemName">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
-											<p class="itemPrice">
-												<span class="itemPrice_original">89,000</span>
-												80,100
-												<span class="itemPercent">10%</span>
-											</p>
-											<div class="itemcolorchip">
-												<span class="chip_color35" value="ABM">BEIGE</span>
-												<span class="chip_color54" value="BDS">BLACK</span>
-												<span class="chip_color40" value="YBR">WHITE</span>
-											</div>
-											<p class="itemBadge">
-												<span class="badge13">베스트 </span>
-											</p>
-											<div class="itemComment">#주문 폭주 상품</div>
-										</a>
-									</div>
-								</div>
-								<div class="item_prod">
-									<div class="item_state">
-										<button type="button" class="itemLike">관심상품 추가</button>
-										<a href="#none" class="itemLink">
-											<div class="itemPic">
-												<img class="vLHTC pd_img" src="/images/mo/thumb/prod1.jpg" alt="">
-											</div>
-											<p class="itemBrand">BRAND NAME</p>
-											<div class="itemName">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
-											<p class="itemPrice">
-												<span class="itemPrice_original">89,000</span>
-												80,100
-												<span class="itemPercent">10%</span>
-											</p>
-											<div class="itemcolorchip">
-												<span class="chip_color35" value="ABM">BEIGE</span>
-												<span class="chip_color54" value="BDS">BLACK</span>
-												<span class="chip_color40" value="YBR">WHITE</span>
-											</div>
-											<p class="itemBadge">
-												<span class="badge13">베스트 </span>
-											</p>
-											<div class="itemComment">#주문 폭주 상품</div>
-										</a>
-									</div>
-								</div>
-								<div class="item_prod">
-									<div class="item_state">
-										<button type="button" class="itemLike">관심상품 추가</button>
-										<a href="#none" class="itemLink">
-											<div class="itemPic">
-												<img class="vLHTC pd_img" src="/images/mo/thumb/prod1.jpg" alt="">
-											</div>
-											<p class="itemBrand">BRAND NAME</p>
-											<div class="itemName">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
-											<p class="itemPrice">
-												<span class="itemPrice_original">89,000</span>
-												80,100
-												<span class="itemPercent">10%</span>
-											</p>
-											<div class="itemcolorchip">
-												<span class="chip_color35" value="ABM">BEIGE</span>
-												<span class="chip_color54" value="BDS">BLACK</span>
-												<span class="chip_color40" value="YBR">WHITE</span>
-											</div>
-											<p class="itemBadge">
-												<span class="badge13">베스트 </span>
-											</p>
-											<div class="itemComment">#주문 폭주 상품</div>
-										</a>
-									</div>
+                <div id="cornerList"></div>
+<!-- 				<div class="inner">
+					<div class="dp_listItems_wrap type1">
+						<h2 class="dp_subtitle">겨울 아우터 재입고</h2>
+						<div class="list_content"> 데이터 없을시 클래스 nodata 추가
+							<div class="list_defult">
+								<div>
+									<p>선택하신 조건에 맞는 상품이 없습니다.<br>필터를 변경해 보세요.</p>
 								</div>
+								<button type="button" class="btn btn_default"><span>선택한 필터 초기화</span></button>
+							</div>
+							<div class="itemsGrp">
 								<div class="item_prod">
 									<div class="item_state">
 										<button type="button" class="itemLike">관심상품 추가</button>
@@ -206,140 +123,42 @@
 							</div>
 						</div>
 					</div>
-				</div>
-				<div class="inner">
-					<div class="delivery_item">
-						<h2 class="dp_subtitle">컬리수</h2>
-						<div class="item_list">
-							<div class="itemsGrp"> <!-- itemsGrp rank hot deal -->
-								<div class="item_prod">
-									<div class="item_state">
-										<button type="button" class="itemLike">관심상품 추가</button>
-										<a href="#none" class="itemLink">
-											<div class="itemPic">
-												<img class="vLHTC pd_img" src="/images/mo/thumb/prod1.jpg" alt="">
-											</div>
-											<p class="itemBrand">BRAND NAME</p>
-											<div class="itemName">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
-											<p class="itemPrice">
-												<span class="itemPrice_original">89,000</span>
-												80,100
-												<span class="itemPercent">10%</span>
-											</p>
-											<div class="itemcolorchip">
-												<span class="chip_color35" value="ABM">BEIGE</span>
-												<span class="chip_color54" value="BDS">BLACK</span>
-												<span class="chip_color40" value="YBR">WHITE</span>
-											</div>
-											<p class="itemBadge">
-												<span class="badge13">베스트 </span>
-											</p>
-											<div class="itemComment">#주문 폭주 상품</div>
-										</a>
-									</div>
-								</div>
-								<div class="item_prod">
-									<div class="item_state">
-										<button type="button" class="itemLike">관심상품 추가</button>
-										<a href="#none" class="itemLink">
-											<div class="itemPic">
-												<img class="vLHTC pd_img" src="/images/mo/thumb/prod1.jpg" alt="">
-											</div>
-											<p class="itemBrand">BRAND NAME</p>
-											<div class="itemName">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
-											<p class="itemPrice">
-												<span class="itemPrice_original">89,000</span>
-												80,100
-												<span class="itemPercent">10%</span>
-											</p>
-											<div class="itemcolorchip">
-												<span class="chip_color35" value="ABM">BEIGE</span>
-												<span class="chip_color54" value="BDS">BLACK</span>
-												<span class="chip_color40" value="YBR">WHITE</span>
-											</div>
-											<p class="itemBadge">
-												<span class="badge13">베스트 </span>
-											</p>
-											<div class="itemComment">#주문 폭주 상품</div>
-										</a>
-									</div>
-								</div>
-								<div class="item_prod">
-									<div class="item_state">
-										<button type="button" class="itemLike">관심상품 추가</button>
-										<a href="#none" class="itemLink">
-											<div class="itemPic">
-												<img class="vLHTC pd_img" src="/images/mo/thumb/prod1.jpg" alt="">
-											</div>
-											<p class="itemBrand">BRAND NAME</p>
-											<div class="itemName">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
-											<p class="itemPrice">
-												<span class="itemPrice_original">89,000</span>
-												80,100
-												<span class="itemPercent">10%</span>
-											</p>
-											<div class="itemcolorchip">
-												<span class="chip_color35" value="ABM">BEIGE</span>
-												<span class="chip_color54" value="BDS">BLACK</span>
-												<span class="chip_color40" value="YBR">WHITE</span>
-											</div>
-											<p class="itemBadge">
-												<span class="badge13">베스트 </span>
-											</p>
-											<div class="itemComment">#주문 폭주 상품</div>
-										</a>
-									</div>
-								</div>
-								<div class="item_prod">
-									<div class="item_state">
-										<button type="button" class="itemLike">관심상품 추가</button>
-										<a href="#none" class="itemLink">
-											<div class="itemPic">
-												<img class="vLHTC pd_img" src="/images/mo/thumb/prod1.jpg" alt="">
-											</div>
-											<p class="itemBrand">BRAND NAME</p>
-											<div class="itemName">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
-											<p class="itemPrice">
-												<span class="itemPrice_original">89,000</span>
-												80,100
-												<span class="itemPercent">10%</span>
-											</p>
-											<div class="itemcolorchip">
-												<span class="chip_color35" value="ABM">BEIGE</span>
-												<span class="chip_color54" value="BDS">BLACK</span>
-												<span class="chip_color40" value="YBR">WHITE</span>
-											</div>
-											<p class="itemBadge">
-												<span class="badge13">베스트 </span>
-											</p>
-											<div class="itemComment">#주문 폭주 상품</div>
-										</a>
-									</div>
+				</div> -->
+<!-- 				<div class="inner">
+					<div class="dp_listItems_wrap type2">
+						<h2 class="dp_subtitle">2021 신상 아우터</h2>
+						<div class="itemsGrp">
+                            <div class="item_prod">
+								<div class="item_state">
+									<button type="button" class="itemLike">관심상품 추가</button>
+									<a href="#none" class="itemLink">
+										<div class="itemPic">
+											<img class="vLHTC pd_img" src="/images/mo/thumb/prod1.jpg" alt="">
+										</div>
+										<p class="itemBrand">BRAND NAME</p>
+										<div class="itemName">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
+										<p class="itemPrice">
+											<span class="itemPrice_original">89,000</span>
+											80,100
+											<span class="itemPercent">10%</span>
+										</p>
+										<div class="itemcolorchip">
+											<span class="chip_color35" value="ABM">BEIGE</span>
+											<span class="chip_color54" value="BDS">BLACK</span>
+											<span class="chip_color40" value="YBR">WHITE</span>
+										</div>
+										<p class="itemBadge">
+											<span class="badge13">베스트 </span>
+										</p>
+										<div class="itemComment">#주문 폭주 상품</div>
+									</a>
 								</div>
 							</div>
-						</div>
+						 </div>
 					</div>
-				</div>
+				</div> -->
 			</section>
 
-			<!-- 배송검색팝업 -->
-			<div class="modal fade dp_pop bulletShip_pop" id="bulletShipPop" tabindex="-1" role="dialog" aria-labelledby="modalScrollLabel" aria-hidden="true">
-				<div class="modal-dialog" role="document">
-					<div class="modal-content">
-						<div class="modal-header">
-							<h5 class="modal-title" id="modalScrollLabel"><span class="sr-only">배송팝업</span></h5>
-						</div>
-						<div class="modal-body">
-							<div class="pop_cont"></div>
-						</div>
-						<div class="modal-footer">
-							<button type="button" id="" class="btn btn_dark"><span>계속 쇼핑하기</span></button>
-						</div>
-					</div>
-				</div>
-			</div>
-			<!-- //배송검색팝업 -->
-
 			<!-- 카테고리 -->
 			<div class="category_box brand">
 				<div class="lap">
@@ -348,15 +167,15 @@
 						<!-- 카테고리 선택 -->
 						<div class="selcet_list">
 							<ul>
-								<li class="active"><a href="javascript:void(0)">모이몰</a></li>
-								<li><a href="javascript:void(0)">모이몰</a></li>
-								<li><a href="javascript:void(0)">모이몰</a></li>
-								<li><a href="javascript:void(0)">모이몰</a></li>
-								<li><a href="javascript:void(0)">모이몰</a></li>
-								<li><a href="javascript:void(0)">모이몰</a></li>
-								<li><a href="javascript:void(0)">모이몰</a></li>
-								<li><a href="javascript:void(0)">모이몰</a></li>
-								<li><a href="javascript:void(0)">모이몰</a></li>
+								<li class="active"><a href="javascript:void(0)">모이몰</a></li>
+								<li><a href="javascript:void(0)">모이몰</a></li>
+								<li><a href="javascript:void(0)">모이몰</a></li>
+								<li><a href="javascript:void(0)">모이몰</a></li>
+								<li><a href="javascript:void(0)">모이몰</a></li>
+								<li><a href="javascript:void(0)">모이몰</a></li>
+								<li><a href="javascript:void(0)">모이몰</a></li>
+								<li><a href="javascript:void(0)">모이몰</a></li>
+								<li><a href="javascript:void(0)">모이몰</a></li>
 							</ul>
 						</div>
 						<!-- //카테고리 선택 -->
@@ -374,17 +193,277 @@
                     </div>
                     <div class="popup_con">
                         <div class="button_list clear">
-                            <button type="button" class="on"><span>모이몰른</span></button>
-                            <button type="button"><span>모이몰른</span></button>
-                            <button type="button"><span>모이몰른</span></button>
+                        	<th:block th:if="${planCornerList!=null}" th:each="a, cornerStat : ${planCornerList}">
+                           	 <button type="button" th:onclick="fnCornerClick([[${cornerStat.index+1}]], [[${a.cornerNm}]])"><span th:text="${a.cornerNm}"></span></button>
+                            </th:block>
                         </div>
                     </div>
                 </div>
             </div>
 		</main>
-
+		
+		<!-- 배송검색팝업 -->
+			<div class="modal fade dp_pop bulletShip_pop" id="bulletShipPop" tabindex="-1" role="dialog" aria-labelledby="modalScrollLabel" aria-hidden="true">
+				<div class="modal-dialog" role="document">
+					<div class="modal-content">
+						<div class="modal-header">
+							<h5 class="modal-title" id="modalScrollLabel"><span class="sr-only">배송팝업</span></h5>
+						</div>
+						<div class="modal-body">
+							<div class="pop_cont">
+								<div>
+								<div class="ico-area">
+									<img src="/images/mo/ico_bulltet-house.png"
+										alt="지붕이 그려진 아이콘입니다">
+								</div>
+								<div class="possible-popup" id="classPop">
+									<p class="">고객님이 찾으시는 지역은</p>
+									<p class="bulltetship-check">
+										<span class="c_primary" id="shotAdr"></span> 가능 지역
+									</p>
+									<div class="input-address" id="addr">
+										
+									</div>
+									<p class="possible-notice c_gray" id="infoTxt">
+										
+									</p>
+								</div>
+							</div>
+							</div>
+						</div>
+						<div class="modal-footer">
+							<button type="button" id="" class="btn btn_dark"  onclick="$.modal.close();"><span>계속 쇼핑하기</span></button>
+						</div>
+					</div>
+				</div>
+			</div>
+			<!-- //배송검색팝업 -->
 <script th:inline="javascript">
+let custAddr = [[${custAddr}]];
+let customerInfo = [[${customerInfo}]];
+let goodsView =[[${@environment.getProperty('upload.goods.view')}]]
+let planCornerList = [[${planCornerList}]];
+let planCornerGoodsList = [[${planCornerGoodsList}]];
+if(planCornerList.length>0){
+	var html = '';
+	$.each(planCornerList, function(idx, item)  {
+		html += '<div class="inner" id="type'+idx+'">';
+		html += '	<div class="dp_listItems_wrap type'+idx+'">';
+		html += '		<h2 class="dp_subtitle">'+item.cornerNm+'</h2>';
+		html += '			<div class="itemsGrp">';
+		$.each(planCornerGoodsList, function(idx2, item2)  {
+			if (item2.cornerNm == item.cornerNm) {
+			html += '				<div class="item_prod">';
+			html += '					<div class="item_state">';
+			if(item2.likeIt === 'likeit'){
+				html += '						<button type="button" class="itemLike likeit active" onclick="cfnPutWishList(this);" goodsCd=\''+item2.goodsCd+'\', ithrCd=\'\', contentsLoc=\'\', planDtlSq=\'\'>관심상품 추가</button>';
+			}else{
+				html += '						<button type="button" class="itemLike" onclick="cfnPutWishList(this);" goodsCd=\''+item2.goodsCd+'\', ithrCd=\'\', contentsLoc=\'\', planDtlSq=\'\'>관심상품 추가</button>';
+			}
+			
+			html += '						<a href="javascript:void(0);" onclick="cfnGoToGoodsDetail(\'' + item2.goodsCd + '\')" class="itemLink">';
+			html += '							<div class="itemPic">';
+			html += '								<img class="vLHTC pd_img" src="'+ goodsView +'/'+item2.sysImgNm +'">';
+			html += '							</div>';
+			html += '							<p class="itemBrand">'+item2.brandGroupNm+'</p>';
+			html += '							<div class="itemName">'+item2.goodsNm+'</div>';
+			html += '							<p class="itemPrice">';
+			if (item2.currPrice != item2.listPrice) {
+				html += '                                 <span class="itemPrice_original">'+item2.listPrice.addComma()+'</span>';
+			}
+			html += item2.currPrice.addComma();
+			if (item2.dcRate != 0) {
+				html += '                                 <span class=" itemPercent">'+item2.dcRate.addComma()+'%</span>';
+			}
+			html += '							</p>';
+			html += '							<div class="itemcolorchip">';
+			if(!gagajf.isNull(item2.colorChips)){
+				var colorArr = item2.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>';
+			if(!gagajf.isNull(item2.icon)){
+				var iconArr = item2.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(item2.goodsTnm != null){
+				html += '			<div class="itemComment">'+item2.goodsTnm+'</div>';
+			}
+			html += '						</a>';
+			html += '					</div>';
+			html += '				</div>';
+			}
+		});
+		html += '			</div>';
+		html += '	  </div>';
+		html += '</div>';
+	});
+	
+	$("#cornerList").append(html);
+
+}
+var shotBody = function () {
+	if (!cfCheckLogin() || (custAddr == null || custAddr == '')) {
+		html = '';
+		html += '<p class="bulltetship-time">오전10시 이전 주문 당일도착</p>';
+		html += '<p class="bulltetship-check"><span class="c_primary">총알배송이 가능한 지역</span>인지<br> 확인해보세요!</p>';
+		html += '    <div class="btn_group_flex">';
+		html += '        <div>';
+		html += '            <button class="btn btn_default" id="btn_bulletship_pop" onclick="fnOpenDaumAddr();">';
+		html += '                <span>내 배송지 확인하기</span>';
+		html += '            </button>';
+		html += '        </div>';
+		html += '    </div>';
+		html += '<p class="bulltetship-disc ptxt01">서울·경기·인천 중 일부지역은 총알배송이 불가합니다.</p>';
+		
+		$("#shotHtml").append(html);
+	}else{
+		html = '';
+		html += ' <span class="costumer-name">'+customerInfo.custNm+'</span>님의 배송지는';
+		if (custAddr.shotDelvUseYn  === 'Y') {
+			html += '<p class="bulltetship-check"><span class="c_primary">총알배송</span> 지역</p>';
+		}else{
+			html += '<p class="bulltetship-check"><span class="c_primary">일반배송</span> 지역</p>';
+		}
+		html += '<div class="input-address">';
+		html += custAddr.recipBaseAddr+' <br>'+custAddr.recipDtlAddr;
+		html += '</div>';
+		html += '<div class="btn_group_flex">';
+		html += '	<div>';
+		html += '		<button class="btn btn_default btn_block" id="btn_bulletship_pop" onclick="fnOpenDaumAddr();">';
+		html += '			<span>다른 배송지 확인하기</span>';
+		html += '		</button>';
+		html += '	</div>';
+		html += '</div>';
+		
+		$("#shotHtml").append(html);
+	}
+} 
+
+//우편번호 DAUM을 이용한 우편번호 팝업 레이어
+var fnOpenDaumAddr = function() {
+	let daumZip = new daum.Postcode({
+		oncomplete: function(data) {
+			// data.zonecode
+			
+			$.ajax( {
+						type		: "GET",
+						url 		: '/planning/shot/delivery/confirm?recipZipcode='+data.zonecode,
+						dataType 	: 'json',
+						success 	: function(result) {
+							if (result != null) {
+								$('#addr').text(cfnGetDaumRoadAddr(data));
+								if(result.shotYn.shotDelvUseYn == "Y"){
+									$("#classPop").attr("class","possible-popup");
+									$('#shotAdr').text("총알배송");
+									$("#infoTxt").html("오늘 오전 10시까지 주문하시면 오늘 도착합니다. <br>(토, 일, 공휴일 휴무)")
+									
+								}else{
+									$("#classPop").attr("class","impossible-popup");
+									$('#shotAdr').text("일반배송");
+									$("#infoTxt").html("주문시간/배송지에 따라 2~3일 이내 도착합니다.<br> (일, 공휴일 휴무)")
+								}
+								
+								$("#bulletShipPop").modal("show");
+								
+							}
+						}
+					}); 
+			
+			cfnCloseDaumAddr();
+		},
+		width: '100%'
+	});
+	cfnOpenDaumAddr(daumZip);
+}
+
+var fnCornerClick = function (result1,result2) {
+	var num = result1 - 1;
+	$("#filter").text(result2);
+	//var offset = $('.dp_listItems_cont.type'+(result1)).offset(); //선택한 태그의 위치를 반환
+	var offset = $('#type'+num).offset(); //선택한 태그의 위치를 반환
+	//animate()메서드를 이용해서 선택한 태그의 스크롤 위치를 지정해서 0.4초 동안 부드럽게 해당 위치로 이동함 
+	$('html').animate({scrollTop : offset.top}, 400);
+	
+}
+
+$(document).ready(function(){
+	shotBody();
+	$("#filter").text(planCornerList[0].cornerNm);
+	// 다른기획전
+	var other_promotion_slide = new Swiper('.other_promotion_slide .swiper-container', {
+		slidesPerView: 2,
+		spaceBetween: 8,
+		centerMode: true,
+	});
+	
+	$(window).scroll(function(){
+		var scrollTop= $(window).scrollTop();
+		var itemTop=$('.dp .dp_listItems_cont').offset().top;
+
+        if (scrollTop >= itemTop){
+            $('.dp .dp_listItems_cont .items_option').addClass('fix');
+        } else {
+            $('.dp .dp_listItems_cont .items_option').removeClass('fix');
+        }
+
+	});
+	
+	// 아이템스라이드(리스트갯수1)
+	var dp_listItems_cont1 = new Swiper('.dp_listItems_cont .swiper-container.item01', {
+		slidesPerView: 1,
+		spaceBetween: 0,
+		centerMode: true,
+		pagination: {
+			el: '.dp_listItems_cont .swiper-container.item01 .swiper-pagination',
+		},
+	});
+	
+	
+	
+	//기간 선택 팝업
+    $(document).on("click", ".open_categori", function(){
+        $('#odDatePop').show().addClass("active");
+        $("body").css({"overflow":"hidden"});
+    });
+    //팝업_닫기
+    $('.popup_close').on("click",function(){
+        $('.popup_box').hide().removeClass('active');
+        $("body").css({"overflow":"visible"});
+    });
+    // 210415_팝업 테두리 선택 추가
+    $(document).ready(function(){
+	    $(document).on('click','.popup_box .button_list button',function(){
+            $('.popup_box .button_list button').removeClass('on');
+            $(this).addClass('on');
+		});
+	});
+    
+    $("#bulletShipPop_close").click(function() {
+        $.modal.close();
+ });	
 
+});
 </script>
 </th:block>
 

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

@@ -77,7 +77,9 @@
 									<a th:unless="${ContentsData.contentsType=='SELF'}" th:href="${ContentsData.strVar1}" target="_blank">브랜드 사이트</a>
 								</div>
 								<div class="brand_desc" id="brandDesc">
-									<p class="cate" th:text="${ContentsData.strTitle1}"></p>
+									<p class="cate">
+										<input type="hidden" name="brandTitle" th:value="${ContentsData.strTitle1}">
+									</p>
 									<p class="desc" > <!--th:text="${ContentsData.subText1}"-->
 										<input type="hidden" name="brandNote" th:value="${ContentsData.subText1}"/>
 									</p>
@@ -136,9 +138,11 @@
 									<th:block th:each="ContentsData, ContentsStat : ${brandMainLayoutData.ContentsList}">
 										<div class="swiper-slide">
 											<a th:href="${ContentsData.strVar1}">
-												<div class="bnnbox" style="background:#e3e7ea;">
+												<div class="bnnbox" id="bannerS" style="background:#e3e7ea;">
 													<div class="txtWrap">
-														<p th:text="${ContentsData.strTitle1}"></p>
+														<p class="bText">
+															<input type="hidden" name="bannerDesc" th:value="${ContentsData.strTitle1}">
+														</p>
 														<!--<p>아우터 + 이너 단독세일</p>-->
 														<button type="button" class="btn">VIEW MORE</button>
 													</div>
@@ -274,7 +278,7 @@
 
 				<!-- special_shop -->
 				<th:block th:if="${contentsLoc=='011'}">
-					<div class="content wide special_shop">
+					<div class="content wide special_shop" th:if="${brandMainLayoutData.planningList != null}">
 						<div class="cont_head">
 							<p class="displayH t_c" th:text="${contentsTitle}"></p>
 						</div>
@@ -786,6 +790,24 @@ $(document).ready( function() {
 	});
 
 	// 브랜드소개 <br> 처리
+	if(!gagajf.isNull($("#brandDesc").find("input[name=brandTitle]").val())){
+		var brandDesc = $("#brandDesc").find("input[name=brandTitle]").val().replaceAll("<BR>", "<br>").replaceAll("<bR>", "<br>").replaceAll("<Br>", "<br>");
+		if(!gagajf.isNull(brandDesc)){
+			if(brandDesc.indexOf('<br>') > -1){
+				let tag = '';
+				var reText = brandDesc.split("<br>");
+				tag += reText[0];
+				tag += '<br>';
+				tag += reText[1];
+				$("#brandDesc .cate").append(tag);
+			}else{
+				let tag = '';
+				tag += brandDesc;
+				$("#brandDesc .cate").append(tag);
+			}
+		}
+	}
+
 	if(!gagajf.isNull($("#brandDesc").find("input[name=brandNote]").val())){
 		var brandDesc = $("#brandDesc").find("input[name=brandNote]").val().replaceAll("<BR>", "<br>").replaceAll("<bR>", "<br>").replaceAll("<Br>", "<br>");
 		if(!gagajf.isNull(brandDesc)){
@@ -804,6 +826,25 @@ $(document).ready( function() {
 		}
 	}
 
+	// 배너 슬라이더 <br> 처리
+	$('.bText').each(function (){
+		let tag = '';
+		if(!gagajf.isNull($(this).find("input[name=bannerDesc]").val())){
+			var brText = $(this).find("input[name=bannerDesc]").val().replaceAll("<BR>", "<br>").replaceAll("<bR>", "<br>").replaceAll("<Br>", "<br>").replaceAll("<br/>", "<br>");
+			if(brText.indexOf('<br>') > -1){
+				var reText = brText.split("<br>");
+				tag += reText[0];
+				tag += '</p>';
+				tag += '<p>';
+				tag += reText[1];
+				tag += '</p>';
+			}else{
+				tag += brText;
+			}
+			$(this).append(tag);
+		}
+	});
+
 });
 /*]]>*/
 </script>

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

@@ -174,18 +174,25 @@
 	};
 	
 	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;
+
+		mcxDialog.confirm("배송지를 삭제하시겠습니까?", {
+		cancelBtnText : "취소",
+		sureBtnText : "확인",
+		sureBtnClick : function() {
+				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() {

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

@@ -561,7 +561,6 @@ $('#reviewContent').keyup(function (e){
     
 
     if (content.length > 500){
-    	mcxDialog.alert("최대 500자까지 입력 가능합니다.");
         $(this).val(content.substring(0, 500));
         $('.txt_cnt').html('<span id="review_cnt" class="c_primary">500</span>/500');
     }

+ 16 - 2
src/main/webapp/WEB-INF/views/web/planning/PlanningDetailFormWeb.html

@@ -109,8 +109,22 @@
 				</th:block>
 			</th:block>
 			<div class="coner_item01" th:if="${fsrcInfoBtm != null}" th:utext="${#strings.replace(#strings.replace(fsrcInfoBtm.fsrcPc,'&amplt;','<'),'&ampgt;','>')}"></div>
-			
-			 <!-- 댓글리스트 -->
+			<div class="coner_item01" th:if="${planInfo.pollSq != null}">
+				<div class="content dp_btn_area">
+					<div class="cont_head">
+						<div>
+							<h4>버튼영역</h4>
+						</div>
+					</div>
+					<div class="cont_body">
+						<div class="btn_wrap">
+							<a href="javascript:void(0);" class="btn btn_primary go_next"
+								onclick="javascript:fnJoinConfirm()"> <span>설문조사 참여하기</span></a>
+						</div>
+					</div>
+				</div>
+			</div>
+				<!-- 댓글리스트 -->
 			<th:block th:if="${planInfo.replyYn == 'Y'}">
 			<div class="content wide cmt">
 				<div class="cont_body">

+ 3 - 2
src/main/webapp/WEB-INF/views/web/planning/PlanningMainFormWeb.html

@@ -113,9 +113,10 @@
 
 <script th:inline="javascript">
 /*<![CDATA[*/
-	let fnGetPlanningList = function(cateNo) {
+	let fnGetPlanningList = function(cateNo,brandGroupNo) {
 		let actionUrl = '/planning/main/list';
 		if (!gagajf.isNull(cateNo)) actionUrl += '?cateNo=' + cateNo;
+		if (!gagajf.isNull(brandGroupNo)) actionUrl += '?brandGroupNo=' + brandGroupNo;
 		
 		$.getJSON(actionUrl	, function(result, status) {
 				if (status == 'success') {
@@ -185,7 +186,7 @@
 	}
 	
 	$(document).ready(function() {
-		fnGetPlanningList([[${cateNo}]]);
+		fnGetPlanningList([[${cateNo}]],[[${brandGroupNo}]]);
 	});
 /*]]>*/
 </script>

+ 0 - 2
src/main/webapp/WEB-INF/views/web/planning/PlanningShotGuideFormWeb.html

@@ -194,8 +194,6 @@ if(planCornerList.length>0){
 				if (item2.dcRate != 0) {
 					html += '                                 <span class=" itemPercent">'+item2.dcRate.addComma()+'%</span>';
 				}
-				
-				
 				html += '                             </p>';
 				html += '                             <div class="itemcolorchip">';
 				if(!gagajf.isNull(item2.colorChips)){

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

@@ -109,10 +109,10 @@ let fnGetSocialList = function(result) {
 	$.each(result.dataList, function(idx, item) {
 		
 		html += ' <div class="item_prod">';
-		if (item.stockQtySum == 0) {
-			html += '    <div class="item_state sold_out"> ';
-		}else{
+		if (item.stockQtySum > 0 || item.stockQtySum == null) {
 			html += '    <div class="item_state"> ';
+		}else{
+			html += '    <div class="item_state soldout"> ';
 		}
 		if (item.likeIt == 'likeit') {
 			html += '        <button type="button" class="itemLike active" onclick="cfnPutWishList(this);" onClick="cfnPutWishList(this);" goodsCd=\''+item.goodsCd+'\', ithrCd=\'\', contentsLoc=\'\', planDtlSq=\'\'>관심상품 추가</button>';