Przeglądaj źródła

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

xodud lee 5 lat temu
rodzic
commit
fc4752224f
29 zmienionych plików z 366 dodań i 190 usunięć
  1. 10 1
      src/main/java/com/style24/front/biz/service/TsfCustomerService.java
  2. 1 1
      src/main/java/com/style24/front/biz/web/TsfAppController.java
  3. 1 1
      src/main/java/com/style24/front/biz/web/TsfCustomerController.java
  4. 4 3
      src/main/java/com/style24/front/biz/web/TsfGoodsController.java
  5. 11 1
      src/main/java/com/style24/persistence/domain/Plan.java
  6. 20 3
      src/main/java/com/style24/persistence/mybatis/shop/TsfPlanning.xml
  7. 57 22
      src/main/webapp/WEB-INF/views/mob/app/NoticeFormMob.html
  8. 4 3
      src/main/webapp/WEB-INF/views/mob/app/SettingFormMob.html
  9. 12 12
      src/main/webapp/WEB-INF/views/mob/common/fragments/GnbMob.html
  10. 16 0
      src/main/webapp/WEB-INF/views/mob/customer/JoinCompleteFormMob.html
  11. 7 4
      src/main/webapp/WEB-INF/views/mob/display/CategoryGoodsListFormMob.html
  12. 2 2
      src/main/webapp/WEB-INF/views/mob/display/CategoryMainFormMob.html
  13. 25 25
      src/main/webapp/WEB-INF/views/mob/goods/GoodsDealDetailFormMob.html
  14. 2 2
      src/main/webapp/WEB-INF/views/mob/goods/GoodsDetailFormMob.html
  15. 4 4
      src/main/webapp/WEB-INF/views/mob/goods/GoodsIncludeFormMob.html
  16. 1 1
      src/main/webapp/WEB-INF/views/mob/goods/GoodsQnaDetailFormMob.html
  17. 36 32
      src/main/webapp/WEB-INF/views/mob/mypage/MypageCustSecedeFormMob.html
  18. 4 4
      src/main/webapp/WEB-INF/views/mob/mypage/MypageReviewCreateFormMob.html
  19. 31 11
      src/main/webapp/WEB-INF/views/mob/planning/PlanningDetailFormMob.html
  20. 15 8
      src/main/webapp/WEB-INF/views/mob/planning/PlanningEventAttendFormMob.html
  21. 4 1
      src/main/webapp/WEB-INF/views/web/display/CategoryGoodsListFormWeb.html
  22. 3 3
      src/main/webapp/WEB-INF/views/web/display/CategoryMainFormWeb.html
  23. 2 5
      src/main/webapp/WEB-INF/views/web/goods/GoodsIncludeFormWeb.html
  24. 7 4
      src/main/webapp/WEB-INF/views/web/mypage/MypageCustSecedeFormWeb.html
  25. 4 4
      src/main/webapp/WEB-INF/views/web/mypage/MypageReviewCreateFormWeb.html
  26. 40 18
      src/main/webapp/WEB-INF/views/web/planning/PlanningDetailFormWeb.html
  27. 14 12
      src/main/webapp/WEB-INF/views/web/planning/PlanningEventAttendFormWeb.html
  28. 20 1
      src/main/webapp/biz/goods.js
  29. 9 2
      src/main/webapp/ux/plugins/gaga/gaga.infinite.scrollSession.js

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

@@ -264,7 +264,11 @@ public class TsfCustomerService {
 		customer.setCustStat(TscConstants.CustStat.ACTIVE.value());
 		customer.setCustGb(TscConstants.CustGb.NORMAL.value());
 		customer.setCustGrade(TscConstants.CustGrade.WELCOME.value());
-
+		// 앱이면 앱푸시 기본값으로 수신동의 처리
+		String isApp = TsfSession.getAttribute("isApp");
+		if ("true".equals(isApp)) {
+			customer.setAppAgreeYn("Y");
+		}
 		int custCnt = customerDao.createCustomer(customer);
 		customerDao.saveBatchBirth(customer);
 
@@ -298,6 +302,11 @@ public class TsfCustomerService {
 		customer.setCustStat(TscConstants.CustStat.ACTIVE.value());
 		customer.setCustGb(TscConstants.CustGb.NORMAL.value());
 		customer.setCustGrade(TscConstants.CustGrade.WELCOME.value());
+		// 앱이면 앱푸시 기본값으로 수신동의 처리
+		String isApp = TsfSession.getAttribute("isApp");
+		if ("true".equals(isApp)) {
+			customer.setAppAgreeYn("Y");
+		}
 
 		int custCnt = customerDao.createCustomer(customer);
 		customerDao.createCustomerSns(customer);

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

@@ -105,7 +105,7 @@ public class TsfAppController extends TsfBaseController {
 	}
 
 	/**
-	 * 앱 설정 화면
+	 * 앱알림 화면
 	 *
 	 * @author jsshin
 	 * @since 2020. 5. 11

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

@@ -643,7 +643,7 @@ public class TsfCustomerController extends TsfBaseController {
 		String maskingCustId = TsfSession.getAttribute("maskingCustId");
 
 		mav.addObject("maskingCustId", maskingCustId);
-
+		mav.addObject("custNo", TsfSession.getInfo().getCustNo());
 		mav.setViewName(super.getDeviceViewName("customer/JoinCompleteForm"));
 
 		return mav;

+ 4 - 3
src/main/java/com/style24/front/biz/web/TsfGoodsController.java

@@ -1398,7 +1398,7 @@ public class TsfGoodsController extends TsfBaseController {
 		ModelAndView mav = new ModelAndView();
 		// 상품관련 기본값 설정(회원 등급, 앱, PC/모바일 등)
 		setGoods(paramsGoods);
-
+		paramsGoods.setAdminYn("Y"); //20210526 soldout된 상품도 정보 조회는 가능해야함
 		Goods goods = goodsService.getGoodsInfo(paramsGoods);
 
 		// 배송업체명, 반품비, 교환비, 주소
@@ -1446,6 +1446,7 @@ public class TsfGoodsController extends TsfBaseController {
 		ModelAndView mav = new ModelAndView();
 		// 상품관련 기본값 설정(회원 등급, 앱, PC/모바일 등)
 		setGoods(paramsGoods);
+		paramsGoods.setAdminYn("Y"); //20210526 soldout된 상품도 정보 조회는 가능해야함
 		Goods goods = goodsService.getGoodsInfo(paramsGoods);
 
 		// 상품 기본정보
@@ -1461,7 +1462,7 @@ public class TsfGoodsController extends TsfBaseController {
 		Review review = new Review();
 		review.setGoodsCd(goods.getGoodsCd());
 		review.setGoodsType(goods.getGoodsType());
-		log.info("review {}", review);
+		//log.info("review {}", review);
 		mav.addObject("reviewCount", reviewService.getReviewTotalCount(review));	// 전체상품평 건수
 
 		review.setRownum(1);
@@ -1484,7 +1485,7 @@ public class TsfGoodsController extends TsfBaseController {
 
 		// 키전체 
 		Collection<CommonCode> reviewHeightList = new ArrayList<CommonCode>();
-		log.info("goods.getItemkindCd().substring(0, 2) => {} ", goods.getItemkindCd().substring(0, 2));
+		//log.info("goods.getItemkindCd().substring(0, 2) => {} ", goods.getItemkindCd().substring(0, 2));
 		if (itemList.contains(goods.getItemkindCd().substring(0, 2))) {
 			reviewHeightList = rendererService.getAvailCommonCodeList("G091");
 		} else {

+ 11 - 1
src/main/java/com/style24/persistence/domain/Plan.java

@@ -185,7 +185,17 @@ public class Plan extends TscBaseDomain {
 	private String reviewDispStdt;		//리뷰노출시작일시
 	private String reviewDispEddt;		//리뷰노툴종료일시
 	private String linkOpenGb;			//링크 본창 새창
-
+	private String cpnNote0;
+	private String cpnNote1;
+	private String cpnNote2;
+	private String cpnNote3;
+	private String cpnNote4;
+	private String cpnNote5;
+	private String cpnNote6;
+	private String cpnNote7;
+	private String cpnNote8;
+	private String cpnNote9;
+	
 	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
 	private String[] multiPlanReview;		//리뷰상품목록
 	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)

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

@@ -612,7 +612,6 @@
 		     , TITLE 
 		     , LINK_URL
 		     , LINK_OPEN_GB
-		     , NOTE 
 		     , DISP_YN 
 		FROM TB_PLAN_CONTENTS TPC 
 		WHERE 1=1 
@@ -788,8 +787,17 @@
 		      ,C.MAX_DC_AMT 
 		      ,C.CPN_STAT 
 		      ,C.REG_DT
-		      ,PC.NOTE 
 		      ,PC.TITLE
+		      ,PC.CPN_NOTE0
+		      ,PC.CPN_NOTE1
+		      ,PC.CPN_NOTE2
+		      ,PC.CPN_NOTE3
+		      ,PC.CPN_NOTE4
+		      ,PC.CPN_NOTE5
+		      ,PC.CPN_NOTE6
+		      ,PC.CPN_NOTE7
+		      ,PC.CPN_NOTE8
+		      ,PC.CPN_NOTE9
 		      , IFNULL((SELECT COUNT(1) FROM TB_CUST_COUPON WHERE CPN_ID = C.CPN_ID AND CUST_NO = #{custNo}),0) AS CUST_COUPON_CNT
 		      , CONCAT(CASE WHEN C.BUY_LIMIT_AMT = 0 THEN ''
 		                   ELSE CONCAT(FORMAT(C.BUY_LIMIT_AMT , 0),'원 이상 구매 시 ')
@@ -841,8 +849,17 @@
 		           ,C.TOT_PUB_LIMIT_QTY
 		           ,C.MAX_DC_AMT
 		           ,C.REG_DT
-		           ,PC.NOTE 
 		           ,PC.TITLE
+		           ,PC.CPN_NOTE0
+		           ,PC.CPN_NOTE1
+		           ,PC.CPN_NOTE2
+		           ,PC.CPN_NOTE3
+		           ,PC.CPN_NOTE4
+		           ,PC.CPN_NOTE5
+		           ,PC.CPN_NOTE6
+		           ,PC.CPN_NOTE7
+		           ,PC.CPN_NOTE8
+		           ,PC.CPN_NOTE9
 		)Z
 	  ORDER BY  Z.REG_DT DESC ,Z.AVAIL_EDDT ASC LIMIT 10
 	</select>

+ 57 - 22
src/main/webapp/WEB-INF/views/mob/app/NoticeFormMob.html

@@ -20,35 +20,70 @@
 <th:block layout:fragment="content">
 <main class="container app-only">
 	<!-- ★ 컨텐츠 시작 -->
-	<section class="notice">
-		<!--<section class="notice nodata">--><!-- 데이터 없을 경우, .nodata 추가 -->
-			<!-- 컨텐츠 추가 시, .inner 반복합니다 -->
-			<div class="inner">
-				<a href="javascript:void(0);">
-					<dl>
-						<dt class="tit">쇼핑백 미구매 상품</dt>
-						<dd class="cont_txt">쇼핑백에 아직도 구매하지 않은 상품이 있습니다. 스타일24를 방문하여 상품을 확인해주세요.</dd>
-						<dd class="cont_img"><img src="/images/mo/thumb/thumb_notice1.jpg" alt="공지 이미지 예제 1"></dd>
-						<dd class="cont_data"><span>2021.03.08</span></dd>
-					</dl>
-				</a>
-			</div>
-			<div class="inner">
-				<a href="javascript:void(0);">
-					<dl>
-						<dt class="tit">한파주의! 지금 입으면 딱 좋은 상품 모음 한파주의! 지금 입으면 딱 좋은 상품 모음  긴글 예제  긴글 예제  긴글 예제</dt>
-						<dd class="cont_txt">(광고) 올 겨울 필수템! 롱패딩 기획전! 지금 확인해 보세요. (광고) 올 겨울 필수템! 롱패딩 기획전! 지금 확인해 보세요. 긴글 예제 긴글 예제</dd>
-						<dd class="cont_data"><span>2021.03.08</span></dd>
-					</dl>
-				</a>
-			</div>
+	<section id="notice" class="notice">
 	</section>
 	<!-- ★ 컨텐츠 종료 -->
 </main>
 <script th:inline="javascript">
+
+
 	$(document).ready(function(){
 		$('#htopTitle').text('알림함');
+			if (_isApp === 'true') {
+				if (_osType === 'A') {
+					 window.style24.getPushList();
+				} else if (_osType === 'I') {
+
+				}
+			}
 	});
+
+	var pushListInfo = function (pushList) {
+		if (!gagajf.isNull(pushList)) {
+			let pushListJosn = JSON.parse(pushList);
+
+			let html = '';
+			$.each(pushListJosn.pushList, function(idx, item) {
+				html += '<div class="inner">\n';
+				html += '    <a href="'+item.link+'">\n';
+				html += '        <dl>\n';
+				html += '            <dt class="tit">\n';
+				html += item.title;
+				html += '            </dt>\n'
+				html += '            <dd class="cont_txt">\n';
+				html += item.content;
+				html += '            </dd>\n';
+				if (!gagajf.isNull(item.imgUrl)) {
+					html += '            <dd class="cont_img">\n';
+					html += '                <img src="'+ item.imgUrl +'" />\n';
+					html += '            </dd>\n';
+				}
+				html += '            <dd class="cont_data">\n';
+				html += '                <span>\n';
+				html += fnDisplayDate(item.date);
+				html += '                </span>\n';
+				html += '            </dd>\n'
+				html += '        </dl>\n'
+				html += '    </a>';
+				html += '</div>\n'
+			});
+			$('#notice').html(html);
+		} else {
+			$('#notice').addClass('nodata');
+		}
+	}
+	
+	var fnDisplayDate = function (date) {
+		let resultDate = '';
+		if(!gagajf.isNull(date)) {
+			let year = date.substring(0, 4);
+			let month = date.substring(4, 6);
+			let day = date.substring(6, 8);
+			resultDate = year+'.'+month+'.'+day;
+		}
+		return resultDate;
+	}
+
 </script>
 
 </th:block>

+ 4 - 3
src/main/webapp/WEB-INF/views/mob/app/SettingFormMob.html

@@ -111,7 +111,8 @@
 				window.style24.isPushEnable(); // 정보성(푸시수신 API) settingsSwtichPush
 				window.style24.isAdEnable();   // 마케팅성(광고푸시 API) settingsSwtichAdvertise
 			} else if (_osType === 'I') {
-				// 아래와 같이 호출 시 settingsSwtichPush 함수가 앱에서 호출됨
+				// 아래와 같이 호출 시 settingsSwtichPush, settingsSwtichAdvertise 함수가 앱에서 호출됨
+				window.webkit.messageHandlers.isPushEnable.postMessage({"dummy":"dummy"});
 				window.webkit.messageHandlers.isAdEnable.postMessage({"dummy":"dummy"});
 			}
 		}
@@ -162,7 +163,7 @@
 				if (_osType === 'A') {
 					window.style24.pushEnable('ON');
 				} else if (_osType == 'I') {
-					window.webkit.messageHandlers.adEnable.postMessage({"status":"ON"});
+					window.webkit.messageHandlers.pushEnable.postMessage({"status":"ON"});
 				}
 				appAgreeYn = 'Y';
 			} else {
@@ -170,7 +171,7 @@
 					window.style24.pushEnable('OFF');
 					window.style24.adEnable('OFF'); // 정보성 푸시가 상위 개념이라 마케팅도 같이 OFF가 되어여함
 				} else if(_osType === 'I') {
-					window.webkit.messageHandlers.adEnable.postMessage({"status":"OFF"});
+					window.webkit.messageHandlers.pushEnable.postMessage({"status":"OFF"});
 				}
 				appAgreeYn = 'N';
 			}

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

@@ -85,17 +85,17 @@
 	
 	// 브랜드 GNB탭 생성
 	let fnCreateBrandGnbTab = function() {
+		$('#ulGnbTab').html('');
+		
+		let tag = '';
+		tag += '<ul>\n';
+		tag += '	<li><a href="javascript:void(0);" onclick="cfnGoToBrandMain(' + [[${brandGroupInfo?.brandGroupNo}]] + ');" class="on">홈</a></li>\n';
+		tag += '	<li><a href="javascript:void(0);" onclick="cfnGoToGoodsList(' + [[${brandGroupInfo?.brandGroupNo}]] + ',\'' + [[${brandGroupInfo?.cateGb}]] + '\');" class="on">상품</a></li>\n';
+		
 		$.getJSON('/display/brand/gnb/tab/list?brandGroupNo=' + [[${brandGroupInfo?.brandGroupNo}]]
 			, function(result, status) {
 				if (status == 'success') {
 					if (result.length > 0) {
-						$('#ulGnbTab').html('');
-						
-						let tag = '';
-						tag += '<ul>\n';
-						tag += '	<li><a href="javascript:void(0);" onclick="cfnGoToBrandMain(' + [[${brandGroupInfo?.brandGroupNo}]] + ');" class="on">홈</a></li>\n';
-						tag += '	<li><a href="javascript:void(0);" onclick="cfnGoToGoodsList(' + [[${brandGroupInfo?.brandGroupNo}]] + ',\'' + [[${brandGroupInfo?.cateGb}]] + '\');" class="on">상품</a></li>\n';
-						
 						$.each(result, function(idx, item) {
 							if (item.contentsType == 'L') { // 컨텐츠유형:링크
 								tag += '<li><a href="' + item.linkUrl + '">' + item.gtabNm + '</a></li>\n';
@@ -103,14 +103,14 @@
 								tag += '<li><a href="' + item.linkUrl + '">' + item.gtabNm + '</a></li>\n';
 							}
 						});
-						
-						tag += '</ul>\n';
-						tag += '<button>+</button>';
-						
-						$('#ulGnbTab').html(tag);
 					}
 				}
 			});
+		
+		tag += '</ul>\n';
+		tag += '<button>+</button>';
+		
+		$('#ulGnbTab').html(tag);
 	}
 	
 	// GNB탭 생성

+ 16 - 0
src/main/webapp/WEB-INF/views/mob/customer/JoinCompleteFormMob.html

@@ -90,6 +90,22 @@
 		</section>
 		<!-- ★ 컨텐츠 종료 -->
 	</main>
+<script th:inline="javascript">
+	const maskingCustId = [[${maskingCustId}]];
+
+	$(document).ready(function(){
+		if (_isApp === 'true') {
+			if (gagajf.isNull(maskingCustId)) {
+				document.location.href = "idsend://?id=" + [[${custNo}]] + "^link=";
+				if (_osType === 'A') {
+					window.style24.pushEnable('ON');
+				} else if (_osType === 'I') {
+					window.webkit.messageHandlers.pushEnable.postMessage({"status":"ON"});
+				}
+			}
+		}
+	});
+</script>
 </th:block>
 </body>
 </html>

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

@@ -948,6 +948,7 @@
 		}
 
 		var fnGoodsListSearch = function (){
+			console.log('ya');
 			gagaInfiniteScroll.getHistory();
 		}
 
@@ -1015,6 +1016,7 @@
 
 		// 사파리 - event.persisted || 크롬 - window.performance.navigation.type 이 1이면 새로고침, 2면 페이지 이동을 통한 캐쉬페이징
 		$(window).on("pageshow", function(event) {
+			// if( history.scrollRestoration ) window.history.scrollRestoration = 'manual';
 			$('#filterForm input[name=brandGroup]:checked').each(function(){
 				$(this).attr('checked', true);
 			});
@@ -1037,15 +1039,16 @@
 				$(this).attr('checked', true);
 			});
 			if ( (event.originalEvent && event.originalEvent.persisted) || (window.performance && window.performance.navigation.type == 2)) {
+				if( history.scrollRestoration ) window.history.scrollRestoration = 'manual';
+
 				var historyData = sessionStorage.getItem(document.location.href);
 				if(historyData!=null){
-					// console.log('M historyData>>'+historyData);
 					historyData = JSON.parse(historyData);
 				}else{
 					historyData = {};
 				}
 				if(typeof historyData.filterHtml!='undefined' && historyData.filterHtml!=''){
-					// console.log('historyData.filterHtml>>>'+historyData.filterHtml);
+					//console.log('historyData.filterHtml>>>'+historyData.filterHtml);
 					$("#searchGoodsForm").append(historyData.filterHtml);
 					filterHtml = historyData.filterHtml;
 				}
@@ -1081,9 +1084,9 @@
 				}else{
 					// fnCategoryGoodsInfiniteScrollInit();
 					console.log('here*'+historyData.scroll);
-					// $('html, body').animate({scrollTop: $('#'+scrollLoc).offset().top}, 'slow');
-					$('html, body').animate({scrollTop: historyData.scroll}, 'slow');
 					fnGoodsListSearch();
+					$('html, body').animate({scrollTop: historyData.backScroll});
+					// window.scrollTo(0, historyData.backScroll);
 				}
 			}else{
 				fnCategoryGoodsInfiniteScrollInit();

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

@@ -74,7 +74,7 @@
 													</div>
 													<p class="itemBrand" th:text="${item.brandGroupNm}">BRAND NAME</p>
 													<div class="itemName" th:text="${item.goodsFullNm}">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-													<p class="itemPrice" th:text="${#numbers.formatInteger(item.currPrice,3,'POINT')}">80,100</p>
+													<p class="itemPrice" th:text="${#numbers.formatInteger(item.currPrice,3,'COMMA')}">80,100</p>
 													<div class="itemComment" th:if="${not #strings.isEmpty(item.goodsTnm)}" th:text="${item.goodsTnm}">#주문 폭주 상품</div>
 												</a>
 											</div>
@@ -102,7 +102,7 @@
 												</div>
 												<p class="itemBrand" th:text="${item.brandGroupNm}">BRAND NAME</p>
 												<div class=" itemName" th:text="${item.goodsFullNm}">여성 체인 프린트 큐롯 스커트 프린트 큐롯 스커트</div>
-												<p class="itemPrice_original" th:if="${item.currPrice != item.listPrice}" th:text="${#numbers.formatInteger(item.listPrice,3,'POINT')}">89,000</p>
+												<p class="itemPrice_original" th:if="${item.currPrice != item.listPrice}" th:text="${#numbers.formatInteger(item.listPrice,3,'COMMA')}">89,000</p>
 												<p class="itemPrice">[[${#numbers.formatInteger(item.currPrice,1,'COMMA')}]]
 													<span class=" itemPercent" th:if="${item.currPrice != item.listPrice}" th:text="${(item.listPrice == 0 ? 0 : #numbers.formatDecimal((item.listPrice - item.currPrice) / (item.listPrice * 1.0) * 100, 1, 0)) + '%'}">10%</span>
 												</p>

+ 25 - 25
src/main/webapp/WEB-INF/views/mob/goods/GoodsDealDetailFormMob.html

@@ -167,7 +167,7 @@
 									<div class="form_field">
 										<div class="select_custom option_open">
 											<div class="combo">
-												<div class="select">옵션을 선택해주세요</div>
+												<div class="select">옵션을 선택해주세요.</div>
 											</div>
 										</div>
 									</div>
@@ -302,7 +302,7 @@
 	<div class="product_floormenu"><!--  ☞☞ 제품이 품절되면 soldout클래스 추가 -->
 		<div class="share_like">
 			<button type="button" class="share">공유하기</button>
-			<button type="button" class="itemLike" th:classappend="${goodsInfo.wishYn == 'Y'}? 'active' : ''"  
+			<button type="button" class="itemLike" th:classappend="${goodsInfo.wishYn == 'Y'}? 'likeit active' : ''"  
 					onclick="cfnPutWishList(this);" 
 					th:attr="goodsCd=${params.goodsCd}, ithrCd=${params.ithrCd}, contentsLoc=${params.contentsLoc}, planDtlSq=${params.planDtlSq}">위시리스트</button>
 		</div>
@@ -861,7 +861,7 @@
 		});
 		
 		$('.Purchase_pop .pop_option_select').find('#form_field_item_Up .list li').eq(selIdx).trigger("click");
-        return false;
+		return false;
 	}	
 	
 	//팝업 - 딜상세정보 옵션선택 > 옵션셀렉트팝업
@@ -878,7 +878,7 @@
 		});
 		
 		$('.Purchase_pop .pop_option_select').find('#form_field_item_Up .list li').eq(selIdx).trigger("click");
-        return false;
+		return false;
 	}	
 	
 	// pop open
@@ -1180,27 +1180,27 @@
 		// =============딜리스트팝업========================================================
 			//팝업 - 딜리뷰상품 리스트팝업
 			$(document).on('click','.deal_listReview_open',function(e){
-                $("#listReviewPop").show();
-                return false;
-            }).on('click','#listReviewPop .close, #listReviewPop .deal_list_select ul > li',function(e){
+				$("#listReviewPop").show();
+				return false;
+			}).on('click','#listReviewPop .close, #listReviewPop .deal_list_select ul > li',function(e){
 				$("#listReviewPop").hide(); 
 				return false;
 			});
 
 			//팝업 - 딜문의상품 리스트팝업
 			$(document).on('click','.deal_listQna_open',function(e){
-                $("#listQnaPop").show();
-                return false;
-            }).on('click','#listQnaPop .close, #listQnaPop .deal_list_select ul > li',function(e){
+				$("#listQnaPop").show();
+				return false;
+			}).on('click','#listQnaPop .close, #listQnaPop .deal_list_select ul > li',function(e){
 				$("#listQnaPop").hide(); 
 				return false;
 			});
 
 			//팝업 - 딜배송상품 리스트팝업
 			$(document).on('click','.deal_listDelivery_open',function(e){
-                $("#listDeliveryPop").show();
-                return false;
-            }).on('click','#listDeliveryPop .close, #listDeliveryPop .deal_list_select ul > li',function(e){
+				$("#listDeliveryPop").show();
+				return false;
+			}).on('click','#listDeliveryPop .close, #listDeliveryPop .deal_list_select ul > li',function(e){
 				$("#listDeliveryPop").hide(); 
 				return false;
 			});
@@ -1208,9 +1208,9 @@
 			//팝업 - 딜상세정보 리스트팝업
 			$(document).on('click','#pdDescrpPop .deal_listDescrp_open',function(e){
 				$(this).toggleClass("active");
-                $("#listDescrpPop").toggle();
-                return false;
-            }).on('click','#listDescrpPop .deal_list_select ul > li',function(e){
+				$("#listDescrpPop").toggle();
+				return false;
+			}).on('click','#listDescrpPop .deal_list_select ul > li',function(e){
 				$("#pdDescrpPop .deal_listDescrp_open").removeClass("active");
 				$("#listDescrpPop").hide(); 
 				return false;
@@ -1251,14 +1251,14 @@
 		});
 			
 
-	      //관심상품 등록
-        $(document).on('click','.pd .itemLike',function(e){
-            $(this).toggleClass('active');
-            return false;
-        });   
-      
-	      
-      //pd전용 - 썸네일/헤더 블라인드 생성 : 210520_ 추가
+		  //관심상품 등록
+		$(document).on('click','.pd .itemLike',function(e){
+			$(this).toggleClass('active');
+			return false;
+		});   
+	  
+		  
+	  //pd전용 - 썸네일/헤더 블라인드 생성 : 210520_ 추가
 		$('.pd .thumb_box .thumb_list .swiper-slide').prepend('<span></span>');
 		// pd전용 - 스크롤 스크립트
 		//탭 - 딜상품 > 상세정보 탭 고정
@@ -1301,7 +1301,7 @@
 				lastScrollTop = st;
 			}
 		});
-	      
+		  
 			// 광고 스크립트용
 			var goodsNavigation = [[${goodsNavigation}]];
 			var cate1Nm = "";

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

@@ -1093,7 +1093,7 @@
 		<div class="share_like">
 			<button type="button" class="share">공유하기</button>
 			<!-- <th:block th:include="~{web/goods/GoodsIncludeFormMob :: goodsSnsForm}"></th:block> -->
-			<button type="button" class="itemLike" th:classappend="${goodsInfo.wishYn == 'Y'}? 'active' : ''"  
+			<button type="button" class="itemLike" th:classappend="${goodsInfo.wishYn == 'Y'}? 'likeit active' : ''"  
 					onclick="cfnPutWishList(this);" 
 					th:attr="goodsCd=${params.goodsCd}, ithrCd=${params.ithrCd}, contentsLoc=${params.contentsLoc}, planDtlSq=${params.planDtlSq}">위시리스트</button>
 		</div>
@@ -2322,7 +2322,7 @@
 		$(document).on('click','.pd_qnawrite_pop .close-modal',function(e){
 			if(qnaCount === 2){
 				$('#layer_goods_qna').modal('show');
-				setTimeout(fnGoodsQnaList, 100);
+				setTimeout(fnGoodsQnaList, 100);    //일반상품상세 용
 				qnaCount = 1;
 			}
             return false;

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

@@ -151,7 +151,6 @@
 			<div class="deal_list_select">
 				<ul class="list">
 					<li th:each="goodsInfo, status : ${goodsDealComposeList}" 
-						th:attr="aria-disabled=${(goodsInfo.goodsStat != 'G008_90' or goodsInfo.stockQty <= 0)? 'true':''}, data-soldout=${(goodsInfo.stockQty <= 0)? 'true':''}"
 						th:onclick="fnSelGoodsDealReview([[${goodsInfo.compsGoodsCd}]])">
 						<div class="item_prod" th:attr="goodsCd=${goodsInfo.compsGoodsCd}">
 							<div class="item_state active">
@@ -186,7 +185,6 @@
 			<div class="deal_list_select">
 				<ul class="list">
 					<li th:each="goodsInfo, status : ${goodsDealComposeList}" 
-						th:attr="aria-disabled=${(goodsInfo.goodsStat != 'G008_90' or goodsInfo.stockQty <= 0)? 'true':''}, data-soldout=${(goodsInfo.stockQty <= 0)? 'true':''}"
 						th:onclick="fnSelGoodsDealQna([[${goodsInfo.compsGoodsCd}]])">
 						<div class="item_prod" th:attr="goodsCd=${goodsInfo.compsGoodsCd}">
 							<div class="item_state active">
@@ -221,7 +219,6 @@
 			<div class="deal_list_select">
 				<ul class="list">
 					<li th:each="goodsInfo, status : ${goodsDealComposeList}" 
-						th:attr="aria-disabled=${(goodsInfo.goodsStat != 'G008_90' or goodsInfo.stockQty <= 0)? 'true':''}, data-soldout=${(goodsInfo.stockQty <= 0)? 'true':''}"
 						th:onclick="fnSelGoodsDealDelivery([[${goodsInfo.compsGoodsCd}]])">
 						<div class="item_prod" th:attr="goodsCd=${goodsInfo.compsGoodsCd}">
 							<div class="item_state active">
@@ -282,7 +279,6 @@
 							<div class="deal_list_select">
 								<ul class="list">
 									<li th:each="goodsInfo, status : ${goodsDealComposeList}" 
-										th:attr="aria-disabled=${(goodsInfo.goodsStat != 'G008_90' or goodsInfo.stockQty <= 0)? 'true':''}, data-soldout=${(goodsInfo.stockQty <= 0)? 'true':''}"
 										th:onclick="fnOpenGoodsDealDetail([[${goodsInfo.goodsCd}]], [[${goodsInfo.compsGoodsCd}]])"
 										 class="selected">
 										<div class="item_prod" th:attr="goodsCd=${goodsInfo.compsGoodsCd}">
@@ -439,6 +435,10 @@
 		params.adminYn = "Y";
 		gagajf.ajaxSubmit("/goods/deal/detail/info/frame", "html", "goodsDealDetail", params);
 		$("#pdDescrpPop").modal("show");
+		
+		//개별 상품 상세에서 상품 선택 Select가 펼쳐진 상태에서 팝업을 닫은 다음 재진입한 경우 상품 선택 Select가 닫힌 상태로 노출
+		$("#pdDescrpPop .deal_listDescrp_open").removeClass("active");
+		$("#listDescrpPop").hide(); 
 	}
 	
 	//팝업 - 딜상세팝업 구매하기버튼

+ 1 - 1
src/main/webapp/WEB-INF/views/mob/goods/GoodsQnaDetailFormMob.html

@@ -115,7 +115,7 @@
 	var btnGoodsQnaSaveCallBack = function(){
 		$('#layer_goods_qna_reg').find('.close-modal').trigger("click");
 		//$('#layer_goods_qna').modal('show');
-		//setTimeout(fnGoodsQnaList, 100);
+		setTimeout(fnGoodsQnaList, 100);  //딜상품상세 용
 	}
 	
 	

+ 36 - 32
src/main/webapp/WEB-INF/views/mob/mypage/MypageCustSecedeFormMob.html

@@ -91,36 +91,37 @@
 
 		</div>
 		<form id="secedeCustForm" class="form_wrap" action="/mypage/customer/secede/complete/form" method="post">
-		<div class="inner">
-			<div class="titWrap">
-				<div class="">보안을 위해 회원님의<br>아이디 및 비밀번호를 다시 확인 합니다.</div>
-			</div>
-				<div class="tblWrap">
-					<div class="tbl">
-						<table>
-							<colgroup>
-								<col width="*">
-							</colgroup>
-							<tbody>
-								<tr>
-									<td>
-										<div class="form_field">
-											<input type="text" id="custId" name="custId" class="form_control" readonly="readonly"/>
-										</div>
-									</td>
-								</tr>
-								<tr>
-									<td>
-										<div class="form_field">
-											<input type="password" id="passwd" name="passwd" class="form_control" placeholder="비밀번호를 입력해주세요." minlength="8" maxlength="20"/>
-										</div>
-									</td>
-								</tr>
-							</tbody>
-						</table>
-					</div>
+			<div class="inner">
+				<div class="titWrap">
+					<div class="">보안을 위해 회원님의<br>아이디 및 비밀번호를 다시 확인 합니다.</div>
 				</div>
-		</div>
+					<div class="tblWrap">
+						<div class="tbl">
+							<table>
+								<colgroup>
+									<col width="*">
+								</colgroup>
+								<tbody>
+									<tr>
+										<td>
+											<div class="form_field">
+												<input type="text" id="custId" name="custId" class="form_control" readonly="readonly"/>
+											</div>
+										</td>
+									</tr>
+									<tr>
+										<td>
+											<div class="form_field">
+												<input type="password" id="passwd" name="passwd" class="form_control" placeholder="비밀번호를 입력해주세요." minlength="8" maxlength="20"/>
+											</div>
+										</td>
+									</tr>
+								</tbody>
+							</table>
+						</div>
+					</div>
+			</div>
+		</form>
 		<div class="inner">
 			<div class="announce_txt">
 				<div class="announce_list">
@@ -132,7 +133,7 @@
 					</ul>
 				</div>
 			</div>
-			<div class="check_box">
+			<div id="checkSecedeDiv" class="check_box">
 				<div class="form_field">
 					<div>
 						<input type="checkbox" name="checkSecede" id="checkSecede" value="Y">
@@ -143,7 +144,6 @@
 				</div>
 			</div>
 		</div>
-		</form>
 		<div class="inner">
 			<div class="goods_btn_wrap btn_group_flex">
 				<div>
@@ -171,6 +171,7 @@
 		let $btnConfirm = $('#btnConfirm');
 		let $secedeCustForm = $('#secedeCustForm');
 		let $subH3 = $('.subH3');
+		let $checkSecedeDiv = $('#checkSecedeDiv');
 
 		let isPossible = true;
 
@@ -228,12 +229,14 @@
 			$btnConfirm.hide();
 			$leaveIncomplete.hide();
 			$btnSaveSecede.show();
+			$checkSecedeDiv.show();
 		} else {
 			$subH3.hide();
 			$secedeCustForm.hide();
 			$btnSaveSecede.hide();
 			$leaveIncomplete.show();
 			$btnConfirm.show();
+			$checkSecedeDiv.hide();
 		}
 
 
@@ -241,6 +244,7 @@
 
 	$('#btnSaveSecede').on('click', function () {
 		let secedeCustInfo = $('#secedeCustForm').serializeObject();
+		let $checkSecede = $('#checkSecede');
 
 		if (gagajf.isNull(secedeCustInfo.passwd)) {
 			mcxDialog.alertC('비밀번호를 입력해주세요.',{
@@ -252,7 +256,7 @@
 			return;
 		}
 
-		if (gagajf.isNull(secedeCustInfo.checkSecede)) {
+		if (!$checkSecede.is(':checked')) {
 			mcxDialog.alertC('회원탈퇴 처리사항 안내에 동의해주세요.',{
 				sureBtnText: "확인",
 				sureBtnClick: function() {

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

@@ -303,7 +303,7 @@ let reviewAttach = [[${alreadyReviewAttach}]];
 
 //별점 class="on"
 var $starEls = $('#star_grade button#starBtn');
-var rate = 0;
+var rate = 1;
 
 $starEls.each(function (index, el) {
     $(el).on('click', function () {
@@ -322,7 +322,7 @@ function rating(score) {
         }
     });
 
-    rate = score + 1;
+    rate = score;
 }
 
 // 리뷰  취소
@@ -492,9 +492,9 @@ $(function(){
 	}
 	
 	 if(reviewStat=='u'){
-		 var reviewScore = reviewList.score-1;
+		 var reviewScore = reviewList.score;
 		 $("#score").val(reviewScore);
-		 rating(reviewScore);
+		 rating(reviewScore-1);
 		$("#reviewForm input[name=height]").val(reviewList.height);
 		$("#reviewForm input[name=weight]").val(reviewList.weight);
 		$("#reviewForm textarea[name=reviewContent]").val(reviewList.reviewContent.escapeHtml());

+ 31 - 11
src/main/webapp/WEB-INF/views/mob/planning/PlanningDetailFormMob.html

@@ -896,17 +896,37 @@ if(coupon.length>0){
 	});
 	html += '		</ul>\n';
 	html += '	</div>\n';
-	html += '	<div class="announce_txt">\n';
-	html += '		<div class="note_txt">\n';
-	html += '			<img src="/images/mo/ico_content_find.png" alt="유의사항">\n';
-	html += '			<p>유의사항</p>\n';
-	html += '		</div>\n';
-	html += '		<div class="announce_list">\n';
-	html += '			<ul>\n';
-	html += coupon[0].note;
-	html += '			</ul>\n';
-	html += '		</div>\n';
-	html += '	</div>\n';
+	if (coupon[0].cpnNote0 != null && coupon[0].cpnNote0 != '') {
+		html += '	<div class="announce_txt">\n';
+		html += '		<div class="note_txt">\n';
+		html += '			<img src="/images/mo/ico_content_find.png" alt="유의사항">\n';
+		html += '			<p>유의사항</p>\n';
+		html += '		</div>\n';
+		html += '		<div class="announce_list">\n';
+		html += '			<ul>\n';
+		html += '                  <li>' + coupon[0].cpnNote0 +'</li>\n';
+		if(coupon[0].cpnNote1 != null && coupon[0].cpnNote1 != '')
+			html += '                  <li>' + coupon[0].cpnNote1 +'</li>\n';
+		if(coupon[0].cpnNote2 != null && coupon[0].cpnNote2 != '')
+			html += '                  <li>' + coupon[0].cpnNote2 +'</li>\n';
+		if(coupon[0].cpnNote3 != null && coupon[0].cpnNote3 != '')
+			html += '                  <li>' + coupon[0].cpnNote3 +'</li>\n';	
+		if(coupon[0].cpnNote4 != null && coupon[0].cpnNote4 != '')
+			html += '                  <li>' + coupon[0].cpnNote4 +'</li>\n';
+		if(coupon[0].cpnNote5 != null && coupon[0].cpnNote5 != '')
+			html += '                  <li>' + coupon[0].cpnNote5 +'</li>\n';
+		if(coupon[0].cpnNote6 != null && coupon[0].cpnNote6 != '')
+			html += '                  <li>' + coupon[0].cpnNote6 +'</li>\n';
+		if(coupon[0].cpnNote7 != null && coupon[0].cpnNote7 != '')
+			html += '                  <li>' + coupon[0].cpnNote7 +'</li>\n';
+		if(coupon[0].cpnNote8 != null && coupon[0].cpnNote8 != '')
+			html += '                  <li>' + coupon[0].cpnNote8 +'</li>\n';
+		if(coupon[0].cpnNote9 != null && coupon[0].cpnNote9 != '')
+			html += '                  <li>' + coupon[0].cpnNote9 +'</li>\n';
+		html += '			</ul>\n';
+		html += '		</div>\n';
+		html += '	</div>\n';
+	}
 	html += '</div>\n';
 		
 	$("#G082_20").append(html);

+ 15 - 8
src/main/webapp/WEB-INF/views/mob/planning/PlanningEventAttendFormMob.html

@@ -115,18 +115,18 @@
 						</div>
 					</div>
 				</div>
-				<div class="inner">
-					<div class="announce_txt " th:if="${fsrcInfoTop != null}"> 
+				<div class="inner" style="display: none;" id="noticeDiv">
+					<div class="announce_txt "> 
 						<div class="note_txt">
 							<img src="/images/mo/ico_content_find03.png" alt="유의사항">
 							<p>유의사항</p>
 						</div>
-						<div class="announce_list"  th:if="${fsrcInfoTop != null}" th:utext="${#strings.replace(#strings.replace(fsrcInfoTop.fsrcMob,'&amplt;','<'),'&ampgt;','>')}">
-							<!-- <ul>
-								<li>본 이벤트는 ID당 1회만 참여 가능합니다.</li>
-								<li>설문조사 참여 시 포인트를 지급해드립니다. (이벤트 종료 후, 일괄 지급)</li>
-								<li>지급된 포인트는 [ 마이페이지 > 나의 지갑 ] 메뉴에서 확인할 수 있습니다.</li>
-							</ul> -->
+						<div class="announce_list">
+							<ul>
+							<th:block th:each="a, notice : ${noticeInfo}">
+								<li th:text="${a.itemVal}"></li>
+							</th:block>
+							</ul>
 						</div>
 					</div>
 				</div>
@@ -203,6 +203,7 @@ let date = today.getDate();
 let month =today.getMonth()+1;
 let calendar = [[${month}]];
 let planInfo = [[${planInfo}]];
+let noticeInfo = [[${noticeInfo}]];
 var custAttendList = [[${custAttendList}]];
 var appendHtml = function () {
 	
@@ -318,6 +319,12 @@ $(document).ready(function() {
 	$("#monthHead").html("<strong>"+month+"월</strong> 출석체크");
 	appendHtml();
 	
+	if (noticeInfo.length>0) {
+		$("#noticeDiv").show();
+	}else{
+		$("#noticeDiv").hide();
+	}
+	
 	if (!cfCheckLogin()) {
 		$(".day").html("<span>0</span>일");
 	}else{

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

@@ -1031,6 +1031,7 @@
 				}
 			});
 			if ( (event.originalEvent && event.originalEvent.persisted) || (window.performance && window.performance.navigation.type == 2)) {
+				// if( history.scrollRestoration ) window.history.scrollRestoration = 'manual';
 				var historyData = sessionStorage.getItem(document.location.href);
 				if(historyData!=null){
 					// console.log('historyData>>'+historyData);
@@ -1073,10 +1074,12 @@
 				}else{
 					$(".fillter").show();
 					// fnCategoryGoodsInfiniteScrollInit();
-					$('html, body').animate({scrollTop: historyData.scroll}, 'slow');
+					// $('html, body').animate({scrollTop: historyData.scroll}, 'slow');
 					fnGoodsListSearch();
 					fnSetPriceFilter();
 					fnImgOnoff();
+					console.log('here*++ '+historyData.scroll);
+					$('html, body').animate({scrollTop: historyData.backScroll});
 				}
 			}else{
 				fnCategoryGoodsInfiniteScrollInit();

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

@@ -98,7 +98,7 @@
 												</div>
 												<p class="itemBrand" th:text="${item.brandGroupNm}">BRAND NAME</p>
 												<div class="itemName" th:text="${item.goodsFullNm}">스타 착용 여성 퍼 아플리케 오버핏 투마일 웨어링 점퍼</div>
-												<p class="itemPrice" th:text="${#numbers.formatInteger(item.currPrice,3,'POINT') + '원'}">488,000원</p>
+												<p class="itemPrice" th:text="${#numbers.formatInteger(item.currPrice,3,'COMMA') + '원'}">488,000원</p>
 												<div class="itemComment" th:if="${not #strings.isEmpty(item.goodsTnm)}" th:text="${item.goodsTnm}">#가을느낌 물씬!</div>
 											</a>
 										</div>
@@ -132,8 +132,8 @@
 											<p class="itemBrand" th:text="${item.brandGroupNm}">BRAND NAME</p>
 											<div class="itemName" th:text="${item.goodsFullNm}">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
 											<p class="itemPrice">
-												<span th:text="${#numbers.formatInteger(item.currPrice,3,'POINT') + '원'}">80,100</span>
-												<span class="itemPrice_original" th:if="${item.currPrice != item.listPrice}" th:text="${#numbers.formatInteger(item.listPrice,3,'POINT') + '원'}">89,000</span>
+												<span th:text="${#numbers.formatInteger(item.currPrice,3,'COMMA') + '원'}">80,100</span>
+												<span class="itemPrice_original" th:if="${item.currPrice != item.listPrice}" th:text="${#numbers.formatInteger(item.listPrice,3,'COMMA') + '원'}">89,000</span>
 												<span class="itemPercent" th:if="${item.currPrice != item.listPrice}" th:text="${(item.listPrice == 0 ? 0 : #numbers.formatDecimal((item.listPrice - item.currPrice) / (item.listPrice * 1.0) * 100, 1, 0)) + '%'}">10%</span>
 											</p>
 											<div class="itemcolorchip">

+ 2 - 5
src/main/webapp/WEB-INF/views/web/goods/GoodsIncludeFormWeb.html

@@ -140,7 +140,6 @@
 									</div>
 									<ul class="list" th:if="${goodsDealComposeList  != null and !goodsDealComposeList.empty}">
 										<li th:each="goodsInfo, status : ${goodsDealComposeList}" 
-											th:attr="aria-disabled=${(goodsInfo.goodsStat != 'G008_90' or goodsInfo.stockQty <= 0)? 'true':''}, data-soldout=${(goodsInfo.stockQty <= 0)? 'true':''}"
 											th:onclick="fnSelGoodsDealReview([[${goodsInfo.compsGoodsCd}]])" >
 											<div class="item_prod">
 												<div class="item_state">
@@ -190,7 +189,6 @@
 									</div>
 									<ul class="list" th:if="${goodsDealComposeList  != null and !goodsDealComposeList.empty}">
 										<li th:each="goodsInfo, status : ${goodsDealComposeList}" 
-											th:attr="aria-disabled=${(goodsInfo.goodsStat != 'G008_90' or goodsInfo.stockQty <= 0)? 'true':''}, data-soldout=${(goodsInfo.stockQty <= 0)? 'true':''}"
 											th:onclick="fnSelGoodsDealQna([[${goodsInfo.compsGoodsCd}]])" >
 											<div class="item_prod">
 												<div class="item_state">
@@ -240,7 +238,6 @@
 									</div>
 									<ul class="list" th:if="${goodsDealComposeList  != null and !goodsDealComposeList.empty}">
 										<li th:each="goodsInfo, status : ${goodsDealComposeList}" 
-											th:attr="aria-disabled=${(goodsInfo.goodsStat != 'G008_90' or goodsInfo.stockQty <= 0)? 'true':''}, data-soldout=${(goodsInfo.stockQty <= 0)? 'true':''}"
 											th:onclick="fnSelGoodsDealDelivery([[${goodsInfo.compsGoodsCd}]])" >
 											<div class="item_prod">
 												<div class="item_state">
@@ -393,8 +390,8 @@
 									</div>
 							</div>
 							<ul class="list" th:if="${goodsDealComposeList  != null and !goodsDealComposeList.empty}">
-								<li class="selected" th:each="goodsInfo, status : ${goodsDealComposeList}" th:attr="aria-disabled=${(goodsInfo.goodsStat != 'G008_90' or goodsInfo.stockQty <= 0)? 'true':''}, data-soldout=${(goodsInfo.stockQty <= 0)? 'true':''}">
-									<div class="item_prod"  th:classappend="${(goodsInfo.goodsStat != 'G008_90' or goodsInfo.stockQty <= 0)? 'soldout':'' }">
+								<li class="selected" th:each="goodsInfo, status : ${goodsDealComposeList}" >
+									<div class="item_prod" >
 										<div class="item_state">
 											<a href="javascript:void(0);" class="itemLink" th:onclick="fnGoodsDealDesc([[${goodsInfo.compsGoodsCd}]], [[${goodsInfo.currPrice}]], [[${goodsInfo.selfGoodsYn}]], [[${(goodsInfo.goodsStat != 'G008_90' or goodsInfo.stockQty <= 0)? 'Y':'N' }]])">
 												<div class="itemPic">

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

@@ -121,6 +121,7 @@
 								</tr>
 							</table>
 						</div>
+						</form>
 						<div class="com_info_txt">
 							<p class="tit">회원 탈퇴 안내</p>
 							<ul>
@@ -130,7 +131,7 @@
 								<li>회원 탈퇴 후 STYLE24에 입력하신 상품문의 및 후기,댓글은 삭제되지 않으며,회원정보 삭제로 인해 작성자 본인을 확인 할 수 없어<br>편집 및 삭제처리가 원천적으로 불가능 합니다. 상품문의 및 후기, 댓글 삭제를 원하시는 경우에는 먼저 해당 게시물을 삭제하신 후 탈퇴를 신청하시기 바랍니다.</li>
 								<li>진행중인 주문/취소/반품/교환건이 있을 경우에는 탈퇴가 되지 않습니다.</li>
 							</ul>
-							<div class="check_box">
+							<div id="checkSecedeDiv" class="check_box">
 								<div class="form_field">
 									<div>
 										<input type="checkbox" id="checkSecede" name="checkSecede" value="Y"/>
@@ -141,7 +142,6 @@
 								</div>
 							</div>
 						</div>
-					</form>
 				</div>
 				<div class="btn_footer_area">
 					<button type="button" id="btnSaveSecede" class="btn btn_dark btn_md hide">
@@ -167,6 +167,7 @@
 		let $btnConfirm = $('#btnConfirm');
 		let $secedeCustForm = $('#secedeCustForm');
 		let $subH3 = $('.subH3');
+		let $checkSecedeDiv = $('#checkSecedeDiv');
 
 		let isPossible = true;
 
@@ -224,12 +225,14 @@
 			$btnConfirm.hide();
 			$leaveIncomplete.hide();
 			$btnSaveSecede.show();
+			$checkSecedeDiv.show();
 		} else {
 			$subH3.hide();
 			$secedeCustForm.hide();
 			$btnSaveSecede.hide();
 			$leaveIncomplete.show();
 			$btnConfirm.show();
+			$checkSecedeDiv.hide();
 		}
 
 
@@ -237,7 +240,7 @@
 
 	$('#btnSaveSecede').on('click', function () {
 		let secedeCustInfo = $('#secedeCustForm').serializeObject();
-
+		let $checkSecede = $('#checkSecede');
 		if (gagajf.isNull(secedeCustInfo.passwd)) {
 			mcxDialog.alertC('비밀번호를 입력해주세요.',{
 				sureBtnText: "확인",
@@ -248,7 +251,7 @@
 			return;
 		}
 
-		if (gagajf.isNull(secedeCustInfo.checkSecede)) {
+		if (!$checkSecede.is(':checked')) {
 			mcxDialog.alertC('회원탈퇴 처리사항 안내에 동의해주세요.',{
 				sureBtnText: "확인",
 				sureBtnClick: function() {

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

@@ -385,7 +385,7 @@ let reviewAttach = [[${alreadyReviewAttach}]];
 
 // 별점 class="on"
 var $starEls = $('#star button#starBtn');
-var rate = 0;
+var rate = 1;
 
 $starEls.each(function (index, el) {
     $(el).on('click', function () {
@@ -403,7 +403,7 @@ function rating(score) {
         }
     });
 
-    rate = score + 1;
+    rate = score;
 }
 
 // 리뷰  취소
@@ -637,9 +637,9 @@ $(document).ready(function() {
 	}
 	
 	 if(reviewStat=='u'){
-		 var reviewScore = reviewList.score-1;
+		 var reviewScore = reviewList.score;
 		 $("#score").val(reviewScore);
-		 rating(reviewScore);
+		 rating(reviewScore-1);
 		$("#reviewForm input[name=height]").val(reviewList.height);
 		$("#reviewForm input[name=weight]").val(reviewList.weight);
 		$("#reviewForm textarea[name=reviewContent]").val(reviewList.reviewContent.escapeHtml());

+ 40 - 18
src/main/webapp/WEB-INF/views/web/planning/PlanningDetailFormWeb.html

@@ -753,24 +753,46 @@ if(coupon.length>0){
 	html += '		</ul>\n';
 	html += '	</div>\n';
 	html += '</div>\n';
-	html += '<div class="content dp_announce line">\n                                                 ';
-	html += '    <div class="cont_head">\n                                                       ';
-	html += '        <div>\n                                                                     ';
-	html += '            <h4>유의사항</h4>\n                                                         ';
-	html += '        </div>\n                                                                    ';
-	html += '    </div>\n                                                                        ';
-	html += '    <div class="cont_body">\n                                                       ';
-	html += '        <div class="announce_txt">\n                                                ';
-	html += '            <div class="note_txt">\n                                                ';
-	html += '                <img src="/images/pc/ico_content_find.png" alt="유의사항">\n            ';
-	html += '                <p>유의사항</p>\n                                                       ';
-	html += '            </div>\n                                                                ';
-	html += '            <div class="announce_list">\n                                           ';
-	html += coupon[0].note;
-	html += '            </div>                                                                '; 
-	html += '        </div>                                                                    '; 
-	html += '    </div>                                                                        '; 
-	html += '</div>                                                                            ';  
+	if(coupon[0].cpnNote0 != null && coupon[0].cpnNote0 != ''){
+		html += '<div class="content dp_announce line">\n                                                 ';
+		html += '    <div class="cont_head">\n                                                       ';
+		html += '        <div>\n                                                                     ';
+		html += '            <h4>유의사항</h4>\n                                                         ';
+		html += '        </div>\n                                                                    ';
+		html += '    </div>\n                                                                        ';
+		html += '    <div class="cont_body">\n                                                       ';
+		html += '        <div class="announce_txt">\n                                                ';
+		html += '            <div class="note_txt">\n                                                ';
+		html += '                <img src="/images/pc/ico_content_find.png" alt="유의사항">\n            ';
+		html += '                <p>유의사항</p>\n                                                       ';
+		html += '            </div>\n                                                                ';
+		html += '            <div class="announce_list">\n                                           ';
+		html += '               <ul>\n';
+		html += '                  <li>' + coupon[0].cpnNote0 +'</li>\n';
+		if(coupon[0].cpnNote1 != null && coupon[0].cpnNote1 != '')
+			html += '                  <li>' + coupon[0].cpnNote1 +'</li>\n';
+		if(coupon[0].cpnNote2 != null && coupon[0].cpnNote2 != '')
+			html += '                  <li>' + coupon[0].cpnNote2 +'</li>\n';
+		if(coupon[0].cpnNote3 != null && coupon[0].cpnNote3 != '')
+			html += '                  <li>' + coupon[0].cpnNote3 +'</li>\n';	
+		if(coupon[0].cpnNote4 != null && coupon[0].cpnNote4 != '')
+			html += '                  <li>' + coupon[0].cpnNote4 +'</li>\n';
+		if(coupon[0].cpnNote5 != null && coupon[0].cpnNote5 != '')
+			html += '                  <li>' + coupon[0].cpnNote5 +'</li>\n';
+		if(coupon[0].cpnNote6 != null && coupon[0].cpnNote6 != '')
+			html += '                  <li>' + coupon[0].cpnNote6 +'</li>\n';
+		if(coupon[0].cpnNote7 != null && coupon[0].cpnNote7 != '')
+			html += '                  <li>' + coupon[0].cpnNote7 +'</li>\n';
+		if(coupon[0].cpnNote8 != null && coupon[0].cpnNote8 != '')
+			html += '                  <li>' + coupon[0].cpnNote8 +'</li>\n';
+		if(coupon[0].cpnNote9 != null && coupon[0].cpnNote9 != '')
+			html += '                  <li>' + coupon[0].cpnNote9 +'</li>\n';
+		html += '               </ul>\n';
+		html += '            </div>                                                                '; 
+		html += '        </div>                                                                    '; 
+		html += '    </div>                                                                        '; 
+		html += '</div>                                                                            ';
+	}
 	
 		
 	$("#G082_20").append(html);

+ 14 - 12
src/main/webapp/WEB-INF/views/web/planning/PlanningEventAttendFormWeb.html

@@ -172,7 +172,7 @@
                  	</div>
 				</div>
 			</div>
-			<div class="content dp_announce" th:if="${fsrcInfoTop != null}">
+			<div class="content dp_announce" style="display: none;" id="noticeDiv">
 				<div class="cont_head">
 					<div>
 						<h4>유의사항</h4>
@@ -184,12 +184,12 @@
 							<img src="/images/pc/ico_content_find.png" alt="유의사항">
 							<p>유의사항</p>
 						</div>
-						<div class="announce_list" th:if="${fsrcInfoTop != null}" th:utext="${#strings.replace(#strings.replace(fsrcInfoTop.fsrcPc,'&amplt;','<'),'&ampgt;','>')}">
-							<!-- <ul>
-								<li>본 이벤트는 ID당 1회만 참여 가능합니다.</li>
-								<li>설문조사 참여 시 포인트를 지급해드립니다. (이벤트 종료 후, 일괄 지급)</li>
-								<li>지급된 포인트는 [ 마이페이지 > 나의 지갑 ] 메뉴에서 확인할 수 있습니다.</li>
-							</ul> -->
+						<div class="announce_list">
+							<ul>
+							<th:block th:each="a, notice : ${noticeInfo}">
+								<li th:text="${a.itemVal}"></li>
+							</th:block>
+							</ul>
 						</div>
 					</div> 
 				</div>
@@ -234,6 +234,7 @@ let date = today.getDate();
 let month =today.getMonth()+1;
 let calendar = [[${month}]];
 let planInfo = [[${planInfo}]];
+let noticeInfo = [[${noticeInfo}]];
 var custAttendList = [[${custAttendList}]];
 var appendHtml = function () {
 	
@@ -349,6 +350,12 @@ $(document).ready(function() {
 	$("#monthHead").html("<strong>"+month+"월</strong> 출석체크");
 	appendHtml();
 	
+	if (noticeInfo.length>0) {
+		$("#noticeDiv").show();
+	}else{
+		$("#noticeDiv").hide();
+	}
+	
 	if (!cfCheckLogin()) {
 		$(".day").html("<span>0</span>일");
 	}else{
@@ -363,11 +370,6 @@ $(document).ready(function() {
 	}
 	
 	
-	
-	
-	
-	
-	
 	$("#title").html("<strong>"+month+"월</strong> 출석체크");
 	
 	//공유 버튼 토글 

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

@@ -138,7 +138,7 @@ var fnCreateGoodsList = function(result, ithrCd, contentLoc, goodsUrl, lastPage,
 		}
 		tag += ' "';
 		tag += ' onClick="cfnPutWishList(this);" selfGoodsYn=\''+item.selfGoodsYn+'\' goodsCd=\''+item.goodsCd+'\', ithrCd=\'\', contentsLoc=\'\', planDtlSq=\'\'>관심상품 추가</button>';
-		tag += '<a href="javascript:void(0);" class="itemLink" onclick="cfnGoToGoodsDetail(\''+item.goodsCd+'\',\''+item.mainColorCd+'\');">';
+		tag += '<a href="javascript:void(0);" class="itemLink" onclick="fnClickGoodsCd(\''+item.goodsCd+'\',\''+item.mainColorCd+'\');">';
 		tag += '			<div class="itemPic">';
 		if(!gagajf.isNull(item.videos)){
 			var videoArr = item.videos.split(",");
@@ -875,4 +875,23 @@ var fnReCheckFilterList = function (){
 	});
 }
 
+var fnClickGoodsCd = function (goodsCd, mainColorCd){
+	let scrollTop = document.documentElement.scrollTop;
+	gagaInfiniteScroll.pageStatus.backScroll = scrollTop;
+	fnPushHistory();
+	cfnGoToGoodsDetail(goodsCd, mainColorCd);
+}
+
+var fnPushHistory = function(){
+	gagaInfiniteScroll.pushHistory(
+		gagaInfiniteScroll.pageStatus.nowPage
+		, $(window).scrollTop()
+		, $('#container').height()
+		, gagaInfiniteScroll.pageStatus.loadPage
+		, 0
+		, gagaInfiniteScroll.obj.$ajaxBox.html()
+		, gagaInfiniteScroll.pageStatus.backScroll
+	);
+}
+
 //****************상품리스트  end **********************************

+ 9 - 2
src/main/webapp/ux/plugins/gaga/gaga.infinite.scrollSession.js

@@ -54,6 +54,7 @@ var gagaInfiniteScroll = {
 		, filterHtml : ''
 		, filterStatHtml : ''
 		, totalCount : ''
+		, backScroll : ''
 	},
 	obj : {
 		  $ajaxBoxOuter : $('#listBoxOuter')
@@ -105,6 +106,7 @@ var gagaInfiniteScroll = {
 
 			this.getDataList();
 		} else {
+			if( history.scrollRestoration ) window.history.scrollRestoration = 'manual';
 			this.pageStatus.loadPage = historyData.pageNum;
 			this.pageStatus.pageNum[0] = historyData.pageNum;
 			this.pageStatus.historyScroll = historyData.dataIndex;
@@ -114,6 +116,7 @@ var gagaInfiniteScroll = {
 			this.pageStatus.filterHtml = historyData.filterHtml;
 			this.pageStatus.filterStatHtml = historyData.filterStatHtml;
 			this.pageStatus.totalCount = historyData.totalCount;
+			this.pageStatus.backScroll = historyData.backScroll;
 
 			gagaInfiniteScroll.draw(historyData.htm);
 		};
@@ -151,7 +154,9 @@ var gagaInfiniteScroll = {
 						, $('#infiniteContainer').height()
 						, gagaInfiniteScroll.pageStatus.loadPage
 						, 0
-						, gagaInfiniteScroll.obj.$ajaxBox.html());
+						, gagaInfiniteScroll.obj.$ajaxBox.html()
+						, gagaInfiniteScroll.pageStatus.backScroll
+					);
 				if (scrollTop && containerHeight) {
 					gagaInfiniteScroll.obj.$window.scrollTop.scrollTop(0).scrollTop(scrollTop);
 				} else {
@@ -173,7 +178,7 @@ var gagaInfiniteScroll = {
 			this.pageStatus.loadAlign = 'not';
 		}
 	},
-	pushHistory : function(page, sScrollTop, sHeight, sPageNum, sDataIndex, sHtml) {
+	pushHistory : function(page, sScrollTop, sHeight, sPageNum, sDataIndex, sHtml, sBackScroll) {
 		var historyData = {
 				state: page
 				, scroll: sScrollTop
@@ -188,6 +193,7 @@ var gagaInfiniteScroll = {
 				, filterHtml : gagaInfiniteScroll.pageStatus.filterHtml
 				, filterStatHtml : gagaInfiniteScroll.pageStatus.filterStatHtml
 				, totalCount : gagaInfiniteScroll.pageStatus.totalCount
+				, backScroll : sBackScroll
 		};
 		historyData = JSON.stringify(historyData);
 		sessionStorage.setItem(document.location.href, historyData);
@@ -212,6 +218,7 @@ var gagaInfiniteScroll = {
 					, filterHtml : gagaInfiniteScroll.pageStatus.filterHtml
 					, filterStatHtml : gagaInfiniteScroll.pageStatus.filterStatHtml
 					, totalCount : gagaInfiniteScroll.pageStatus.totalCount
+					, backScroll : gagaInfiniteScroll.pageStatus.backScroll
 		};
 		historyData = JSON.stringify(historyData);
 		sessionStorage.setItem(document.location.href, historyData);