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

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

eskim 5 лет назад
Родитель
Сommit
62f60d120a

+ 2 - 0
src/main/java/com/style24/front/biz/service/TsfCartService.java

@@ -68,6 +68,7 @@ public class TsfCartService {
 	 * 세트 : goodsCd,
 	 * @param params
 	 */
+	@Transactional("shopTxnManager")
 	public GagaMap saveCartInfo(Collection<Cart> params) {
 		GagaMap result = new GagaMap();
 		List<Integer> cartSqList = new ArrayList<>();
@@ -984,6 +985,7 @@ public class TsfCartService {
 		order.setCartGoodsList(cartGoodsList);
 	}
 
+	@Transactional("shopTxnManager")
 	public void deleteCart(Cart param) {
 		cartDao.deleteCart(param);
 	}

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

@@ -2441,7 +2441,12 @@ public class TsfMypageController extends TsfBaseController {
 		// 주문목록조회
 		ModelAndView mav = new ModelAndView();
 
-		mav.addObject("orderList", orderService.getOrderListForMypage(order));
+		Collection<GagaMap> orderList = orderService.getOrderListForMypage(order);
+		
+		mav.addObject("orderList"		, 	orderList);
+		mav.addObject("orderListCnt"	, 	orderList.size());
+		mav.addObject("pageNo"			, 	order.getPageNo());
+		
 		mav.setViewName(super.getDeviceViewName("mypage/MypageOrderListInfo"));
 
 		return mav;

+ 1 - 1
src/main/webapp/WEB-INF/views/mob/cart/CartDelvFeeSaveGoodsPopupMob.html

@@ -26,7 +26,7 @@
 									<span class="selling_price"><em th:text="${#numbers.formatInteger(goods.currPrice, 1, 'COMMA')}"></em>원</span>
 									<th:block th:if="${goods.listPrice != goods.currPrice}">
 										<span class="sale_price"><del><em th:text="${#numbers.formatInteger(goods.listPrice, 1, 'COMMA')}"></em>원</del></span>
-										<span class="sale_percent" th:text="${goods.dcRate + '%'}"></span>
+										<span class="sale_percent" th:text="${#numbers.formatInteger(goods.dcRate, 0, 'COMMA') + '%'}"></span>
 									</th:block>
 								</p>
 							</div>

+ 8 - 8
src/main/webapp/WEB-INF/views/mob/cart/CartListAjaxFormMob.html

@@ -130,7 +130,7 @@
 							<div class="info_box">
 								<div class="od_name">
 									<div class="brand">
-										<span th:text="|${cart.brandEnm} ${cart.brandKnm}|"></span>
+										<span th:text="${cart.brandGroupNm}"></span>
 									</div>
 									<div class="name"><a th:href="|javascript:fnGoToGoodsDetail('${cart.goodsCd}', '${cart.ordCanYn}')|" th:text="${cart.goodsNm}"></a></div>
 								</div>
@@ -173,7 +173,7 @@
 							<div><button type="button" class="btn btn_default btn_option_pop01" th:onclick="|fnChangeCartOptCd(${cart.cartSq})|" th:disabled="${cart.ordCanYn.equals('N')}"><span>옵션/수량변경</span></button></div> <!-- 옵션변경_팝업01 호출 -->
 							<div>
 								<button th:if="${cart.soldoutYn.equals('Y') or cart.ordCanYn.equals('N')}" type="button" class="btn btn_primary_line" disabled=""><span>구매 불가</span></button>
-								<button th:if="${cart.soldoutYn.equals('N') and cart.ordCanYn.equals('Y')}" type="button" class="btn btn_primary_line" th:onclick="|fnSubmitNoMember(${cart.cartSq})|"><span>바로주문</span></button>
+								<button th:if="${cart.soldoutYn.equals('N') and cart.ordCanYn.equals('Y')}" type="button" class="btn btn_primary_line" th:onclick="|fnSubmitNoMember(${cart.cartSq})|"><span>바로구매</span></button>
 							</div> <!-- 210406_ID 추가 -->
 						</div>
 
@@ -233,7 +233,7 @@
 							<div class="info_box">
 								<div class="od_name">
 									<div class="brand">
-										<span th:text="|${cart.brandEnm} ${cart.brandKnm}|"></span>
+										<span th:text="${cart.brandGroupNm}"></span>
 									</div>
 									<div class="name"><a th:href="|javascript:fnGoToGoodsDetail('${cart.goodsCd}', '${cart.ordCanYn}')|" th:text="${cart.goodsNm}"></a></div>
 								</div>
@@ -276,7 +276,7 @@
 							<div><button type="button" class="btn btn_default btn_option_pop01" th:onclick="|fnChangeCartOptCd(${cart.cartSq})|" th:disabled="${cart.ordCanYn.equals('N')}"><span>옵션/수량변경</span></button></div> <!-- 옵션변경_팝업01 호출 -->
 							<div>
 								<button th:if="${cart.soldoutYn.equals('Y') or cart.ordCanYn.equals('N')}" type="button" class="btn btn_primary_line" disabled=""><span>구매 불가</span></button>
-								<button th:if="${cart.soldoutYn.equals('N') and cart.ordCanYn.equals('Y')}" type="button" class="btn btn_primary_line" th:onclick="|fnSubmitNoMember(${cart.cartSq})|"><span>바로주문</span></button>
+								<button th:if="${cart.soldoutYn.equals('N') and cart.ordCanYn.equals('Y')}" type="button" class="btn btn_primary_line" th:onclick="|fnSubmitNoMember(${cart.cartSq})|"><span>바로구매</span></button>
 							</div> <!-- 210406_ID 추가 -->
 						</div>
 
@@ -356,7 +356,7 @@
 							<div class="info_box">
 								<div class="od_name">
 									<div class="brand">
-										<span th:text="|${cart.brandEnm} ${cart.brandKnm}|"></span>
+										<span th:text="${cart.brandGroupNm}"></span>
 									</div>
 									<div class="name"><a th:href="|javascript:fnGoToGoodsDetail('${cart.goodsCd}', '${cart.ordCanYn}')|" th:text="${cart.goodsNm}"></a></div>
 								</div>
@@ -399,7 +399,7 @@
 							<div><button type="button" class="btn btn_default" th:onclick="|fnChangeCartOptCd(${cart.cartSq})|" th:disabled="${cart.ordCanYn.equals('N')}"><span>옵션/수량변경</span></button></div>
 							<div>
 								<button th:if="${cart.soldoutYn.equals('Y') or cart.ordCanYn.equals('N')}" type="button" class="btn btn_primary_line" disabled=""><span>구매 불가</span></button>
-								<button th:if="${cart.soldoutYn.equals('N') and cart.ordCanYn.equals('Y')}" type="button" class="btn btn_primary_line" th:onclick="|fnSubmitNoMember(${cart.cartSq})|"><span>바로주문</span></button>
+								<button th:if="${cart.soldoutYn.equals('N') and cart.ordCanYn.equals('Y')}" type="button" class="btn btn_primary_line" th:onclick="|fnSubmitNoMember(${cart.cartSq})|"><span>바로구매</span></button>
 							</div>
 						</div>
 
@@ -1070,7 +1070,7 @@
 						let message = info.goodsNm + " 의 최소 구매수량은 " + info.minOrdQty + "개입니다.\n최소 구매 수량으로 주문하시겠습니까?";
 						fnUpdateConfirmChangeQty(message, info.cartSq, info.minOrdQty, list, listIndex, cartSqArr, allYn);
 					} else if (info.goodsQty > info.maxOrdQty) {
-						let message = info.goodsNm + " 의 최대 구매 능 수량은 " + info.maxOrdQty + "개입니다. 최대 구매 가능한 수량으로 주문하시겠습니까?";
+						let message = info.goodsNm + " 의 최대 구매 능 수량은 " + info.maxOrdQty + "개입니다. 최대 구매 가능한 수량으로 주문하시겠습니까?";
 						fnUpdateConfirmChangeQty(message, info.cartSq, info.maxOrdQty, list, listIndex, cartSqArr, allYn);
 					} else if (listIndex < list.length) {
 						fnOrderValidation(list, listIndex, cartSqArr, allYn);
@@ -1308,7 +1308,7 @@
 					});
 
 					if(cartArr.length < 1) {
-						mcxDialog.alert("선택된 상품이 없습니다.");
+						mcxDialog.alert("삭제하실 상품을 선택해 주세요.");
 						return false;
 					}
 

+ 1 - 1
src/main/webapp/WEB-INF/views/mob/cart/CartTmtbSalesGoodsPopupMob.html

@@ -35,7 +35,7 @@
 									<span class="selling_price"><em th:text="${#numbers.formatInteger(goods.currPrice, 1, 'COMMA')}"></em>원</span>
 									<th:block th:if="${goods.listPrice != goods.currPrice}">
 										<span class="sale_price"><del><em th:text="${#numbers.formatInteger(goods.listPrice, 1, 'COMMA')}"></em>원</del></span>
-										<span class="sale_percent" th:text="${goods.dcRate + '%'}"></span>
+										<span class="sale_percent" th:text="${#numbers.formatInteger(goods.dcRate, 0, 'COMMA') + '%'}"></span>
 									</th:block>
 								</p>
 							</div>

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

@@ -25,7 +25,7 @@
 			<div class="inner wide">
 				<div class="category_nav">
 					<ul id="cateListArea">
-						<li><button type="button" class="active" id="li0" onclick="fnBestListSearch(this,'');">전체</button></li>
+						<li class="" id="li0"><button type="button" onclick="fnBestListSearch(this,'');">전체</button></li>
 						<th:block th:each="item, stat : ${bestCateList}">
 							<li class="" th:id="${'li'+item.cateNo}"><button type="button" th:onclick="fnBestListSearch(this,[[${item.cateNo}]]);" th:text="${item.cateNm}">여성</button></li>
 						</th:block>
@@ -313,10 +313,15 @@
 			// 	cateNo = 0;
 			// }
 
-			$.each($("#cateListArea").find('li'), function() {
+			$.each($("#cateListArea").find('li').find('button'), function() {
 				$(this).removeClass();
 			});
-			$("#li"+cateNo).addClass('active');
+			if(gagajf.isNull(cateNo)){
+				$("#li0").find("button").addClass('active');
+			}else{
+				$("#li"+cateNo).find("button").addClass('active');
+			}
+
 			$("#bestGoodsForm input[name=cateNo]").val(cateNo);
 			fnCategoryGoodsInfiniteScrollInit();
 			gagaInfiniteScroll.getHistory();
@@ -338,7 +343,7 @@
 				var goodsUrl = [[${@environment.getProperty('upload.goods.view')}]];;
 				let lastPage = result.paging.pageable.pageNo;
 				let endRow = result.endRow - result.paging.pageable.pageSize;
-				var htm = fnCreateGoodsList(result, ithrCd, contentLoc, goodsUrl, lastPage, endRow);
+				var htm = fnCreateGoodsList(result, ithrCd, contentLoc, goodsUrl, lastPage, endRow, 'Mob');
 				gagaInfiniteScroll.draw(htm);
 			}else{
 				if($("#bestGoodsForm input[name=pageNo]").val()==1){

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

@@ -33,7 +33,9 @@
 												<img th:src="${@environment.getProperty('domain.image') + '/' + item.imgPath1}" alt="">
 											</div>
 											<div class="txtWrap">
-												<p th:text="${item.strTitle1}">겨울정기 가격제안전<br>겨울정기 가격</p>
+												<p class="bText">
+													<input type="hidden" name="bannerTitle" th:value="${item.strTitle1}">
+												</p>
 												<p class="txt_xs" th:text="${item.subText1}">나만의 겨울 스타일 찾기</p>
 											</div>
 										</a>
@@ -165,6 +167,16 @@
 				}
 			});
 		}
+
+		// 배너 슬라이더 <br> 처리
+		$('.bText').each(function (){
+			let tag = '';
+			if(!gagajf.isNull($(this).find("input[name=bannerTitle]").val())){
+				var brText = $(this).find("input[name=bannerTitle]").val();
+				tag = brText.replace(/(<br>|<br\/>|<br \/>)/g, '<br>');
+				$(this).append(tag);
+			}
+		});
 	</script>
 
 </th:block>

+ 60 - 120
src/main/webapp/WEB-INF/views/mob/mypage/MypageOrderListFormMob.html

@@ -94,16 +94,12 @@
 		</th:block>
 		<!-- only 주문목록 -->
 		
-		<!-- common 주문목록 -->
-		<div data-id="layer_infinite_item" >
-			<section id="infiniteContainer">
-				<div id="listBoxOuter">
-					<div class="area_list" id="listBox">
-					</div>
-				</div>
-			</section>
- 		</div>
- 		<!-- common 주문목록 -->
+		<section id="infiniteContainer">
+			<div id="listBoxOuter">
+				<ul class="area_list" id="listBox">
+				</ul>
+			</div>
+		</section>
  		
  		<!-- only 마이페이지메인 -->
  		<th:block th:if="${mypageMainYn} == 'Y'">
@@ -170,9 +166,8 @@
 </div>
 <!-- //주문상태 선택 팝업 -->
 
-<!--<script src="/ux/plugins/jquery/jquery.history.min.js"></script> -->
-<!--<script src="/ux/plugins/gaga/gaga.infinite.scrollLayer.js"></script> -->
-<!--<script src="/ux/plugins/gaga/gaga.paging.js"></script> -->
+<script src="/ux/plugins/gaga/gaga.infinite.scrollSession.js"></script>
+<script src="/ux/plugins/jquery/jquery.history.min.js"></script>
 
 <script th:inline="javascript">
 // 변수설정
@@ -184,12 +179,10 @@ var jsonObj 		= {};
 var scrollTemp		= true;
 var mypageMainYn	= [[${mypageMainYn}]];
 let customerInfo 	= [[${customerInfo}]];
+var pageNo			= 0;
 
 // 초기설정
 $(document).ready(function() {
-	
-	// 인피니티스크롤 초기화
-	//fnGoodsReviewInfiniteScrollInit();
 
 	// AJAX 로드를 위한 변수 설정
 	jsonObj = {
@@ -209,44 +202,11 @@ $(document).ready(function() {
 	if (mypageMainYn == 'Y') {
 		// 타이틀명
 		$('#htopTitle').text('마이페이지');
-
-		jsonObj.pageSize = 1;
-		jsonObj.pageUnit = 1;
-		fnSetSearchPeriod(1);
 	}
 	// 마이페이지 주문목록화면일때
 	else {
 		// 타이틀명
 		$('#htopTitle').text('주문확인/배송조회');
-
-		// 전체페이지 구하기
-		totalPage 	= parseInt(totalCnt / 10);
-		remainList 	= totalCnt % 10; 
-		
-		// 나머지가 있으면 전체 페이지 + 1
-		if (remainList > 0) {
-			totalPage = totalPage + 1;
-		}
-		
-		fnSetSearchPeriod(3);
-		
-		var win = $(window);
-		 
-		// Each time the user scrolls
-		win.scroll(function() {
-			// End of the document reached?
-			if ($(document).height() - win.height() == win.scrollTop()) {
-				if (scrollTemp) {
-					var tempPage 	= parseInt($("#searchForm input[name=pageNo]").val());
-					tempPage 		= tempPage + 1;
-					
-					if (totalPage > tempPage) {
-						scrollTemp = false;
-						fnGetInfiniteScrollDataList(tempPage);
-					}
-				}
-			}
-		});
 	}
 	
 	// 주문상세상태코드 셀렉트박스 변경 이벤트
@@ -268,14 +228,10 @@ $(document).ready(function() {
 				$(".container .my_order .od_status_btn").text(ordDtlStatNm);
 			}
 		});
-
-		// 리헷
-		$("#listBox").html("");
 		
-		// 초기화설정
-		fnGetInfiniteScrollDataList(1);
-		//fnOrderListInfiniteScrollInit();
-		//fnOrderListSearch();
+		// 인피니티스크롤 초기화
+		fnMypageOrderListInfiniteScrollInit();
+		fnGetInfiniteScrollDataList();
 
 		// 팝업닫기
 		$(".popup_close").trigger("click");
@@ -287,12 +243,38 @@ $(document).ready(function() {
 	}
 });
 
-// 주문 목록 조회
-var fnGetInfiniteScrollDataList = function(pageNo) {
+//사파리 - event.persisted || 크롬 - window.performance.navigation.type 이 1이면 새로고침, 2면 페이지 이동을 통한 캐쉬페이징
+$(window).on("pageshow", function(event) {
+	if ((event.originalEvent && event.originalEvent.persisted) || (window.performance && window.performance.navigation.type == 2)) {
+		var historyData = sessionStorage.getItem(document.location.href);
+		if (historyData != null) {
+			historyData = JSON.parse(historyData);
+		} else {
+			historyData = {};
+		}
+	} else {
+		// 마이페이지 메인화면일때 초기 1개월 조회
+		if (mypageMainYn == 'Y') {
+			jsonObj.pageSize = 1;
+			jsonObj.pageUnit = 1;
+			fnSetSearchPeriod(1);
+		}
+		// 마이페이지 주문목록화면일때
+		else {
+			// 2021.05.28 인피니티스크롤 초기화
+			fnMypageOrderListInfiniteScrollInit();
+			fnGetInfiniteScrollDataList();
+		}
+	}
+});
 
-	// 페이지번호가 없으면 1페이지 설정
-	if (pageNo == null || pageNo == 0) {
-		pageNo = 1;
+// 주문 목록 조회
+var fnGetInfiniteScrollDataList = function() {	
+	// 2021.05.28 페이지 기능 수정
+	if (pageNo <= totalPage) {
+		pageNo++;
+	} else {
+		return false;
 	}
 
 	// 페이지설정
@@ -303,35 +285,13 @@ var fnGetInfiniteScrollDataList = function(pageNo) {
 	jsonObj.edDate = $("#searchForm input[name=edDate]").val();
 	jsonObj.ordDtlStat = $('#searchForm input[name=ordDtlStat]').val();
 	
-	//$.ajax( {
-	//	type		: "POST",
-	//	url 		: '/mypage/order/listInfo',
-	//	data		: JSON.stringify(jsonObj),
-	//	dataType 	: 'html',
-	//	beforeSend : function(xhr, settings) {
-	//		xhr.setRequestHeader("AJAX"			, "true");
-	//		xhr.setRequestHeader('Accept'		, 'application/json');
-	//		xhr.setRequestHeader('Content-Type'	, 'application/json');
-	//	},
-	//	success 	: function(result) {
-	//		if (result != null) {
-	//			$("#listBox").css("display", "block");
-	//			$("#listBox").append(result);
-	//			scrollTemp = true;
-	//			
-	//			// 인피니티 스크롤 기억기능
-	//			//gagaInfiniteScroll.draw(result);
-	//			//gagaInfiniteScroll.draw('not');
-	//
-	//		}
-	//	}
-	//});
-	
 	gagajf.ajaxJsonSubmit('/mypage/order/list/pre/info', JSON.stringify(jsonObj), function(result) {
-		let totalCount = result.paging.totalCount;
-		totalCnt = totalCount;
+		let totalCount 	= result.paging.totalCount;
+		totalCnt 		= totalCount;
+		
 		getTotalPage(totalCount);
-		//gagaInfiniteScroll.pageStatus.totalCount = totalCount;
+		
+		gagaInfiniteScroll.pageStatus.totalCount = totalCount;
 		
 		let ordNoList = []; 
 		$.each(result.ordNoList, function(idx, item) {
@@ -353,9 +313,13 @@ var fnGetInfiniteScrollDataList = function(pageNo) {
 				},
 				success: function (result) {
 					if (result != null) {
+						// 2021.05.28
 						$("#listBox").css("display", "block");
-						$("#listBox").append(result);
-						scrollTemp = true;
+						if (mypageMainYn == 'Y') {
+							$("#listBox").append(result);
+						} else {
+							gagaInfiniteScroll.draw(result);
+						}
 					}
 				}
 			});
@@ -363,7 +327,7 @@ var fnGetInfiniteScrollDataList = function(pageNo) {
 	});
 }
 
-//검색기간 버튼 클릭 이벤트 처리
+// 검색기간 버튼 클릭 이벤트 처리
 var fnSetSearchPeriod = function(period) {
 	let date 		= new Date();
 	let edDate 		= date.getFullYear() + '-' + ('0' + (date.getMonth() + 1)).slice(-2) + '-' + ('0' + (date.getDate() + 1)).slice(-2);
@@ -376,10 +340,8 @@ var fnSetSearchPeriod = function(period) {
 	// 리헷
 	$("#listBox").html("");
 	
-	// 초기화설정
-	fnGetInfiniteScrollDataList(1);
-	//fnOrderListInfiniteScrollInit();
-	//fnOrderListSearch();
+	// 인피니티스크롤 초기화
+	fnMypageOrderListInfiniteScrollInit();
 	
 	$("#odDatePop .popup_con button").removeClass("on");
 	
@@ -400,36 +362,14 @@ var fnSetSearchPeriod = function(period) {
 }
 
 // 2021.04.21 인피니티 스크롤 기능 구현전 추후 수정
-// 인피니트 스크롤 초기화
-/*
-var fnGoodsReviewInfiniteScrollInit = function(){
-	// sessionStorage.removeItem(document.location.href);
-	History.replaceState(null, null);
-	gagaInfiniteScroll.pageStatus = {
-			  pageNum 			: []      // [0,1,2...] 로드된 페이지 (Array)
-			, loadPage 			: 0      // 로드할 페이지
-			, loadAlign 		: 'not' // 로드 상태(prev, next, not)
-			, historyScroll 	: 0 //
-			, nowPage 			: null    // 현재 페이지
-			, pageUrl 			: {       // page url
-				
-			}
-	}
+var fnMypageOrderListInfiniteScrollInit = function(){
+	sessionStorage.removeItem(document.location.href);
 	
-	//History 초기화
+	// History 초기화
 	$("#listBox").html("");
 }
 
-var fnDrawInfiniteScrollData = function (result){
-	let totalCnt 								= result.totalCnt;
-	gagaInfiniteScroll.pageStatus.totalCount 	= result.totalCnt;
-	
-	var htm = fnCreateGoodsList(result);
-	gagaInfiniteScroll.draw(htm);
-}
-
 $(function() { gagaInfiniteScroll.getHistory(); });
-*/
 </script>
 
 <script>

+ 3 - 3
src/main/webapp/WEB-INF/views/mob/order/OrderDcAmtInfoMob.html

@@ -46,7 +46,7 @@
 								<div class="form_field">
 									<input id="chk-maxdisc01" type="checkbox" checked>
 									<label for="chk-maxdisc01">
-										<span>최대 할인혜택을 바로 적용하세요!</span>&nbsp;<span class="maxdisc_amount">(<em class="cpnDcAmt">0</em>원할인)</span>
+										<span>최대 할인혜택을 바로 적용</span>&nbsp;<span class="maxdisc_amount">(<em class="cpnDcAmt">0</em>원할인)</span>
 									</label>
 								</div>
 							</dd>
@@ -188,7 +188,7 @@
 												</div>
 											</th:block>
 											<!-- //스타일 포인트 3만원 미만 결제시 노출 -->
-											<p><span>보유:&nbsp;<em class="rmPntAmt" th:text="${#numbers.formatInteger(rmPntAmt, 1, 'COMMA')}"></em>P</span></p>
+											<p><span class="remain_point">보유:&nbsp;<em class="rmPntAmt" th:text="${#numbers.formatInteger(rmPntAmt, 1, 'COMMA')}"></em>P</span></p>
 										</div>
 									</dd>
 								</div>
@@ -222,7 +222,7 @@
 												</div>
 											</th:block>
 											<!-- //스타일 포인트 3만원 미만 결제시 노출 -->
-											<p><span>보유:&nbsp;<em class="rmPntAmt" th:text="${#numbers.formatInteger(rmPntAmt, 1, 'COMMA')}"></em>P</span></p>
+											<p><span class="remain_point">보유:&nbsp;<em class="rmPntAmt" th:text="${#numbers.formatInteger(rmPntAmt, 1, 'COMMA')}"></em>P</span></p>
 										</div>
 									</dd>
 								</div>

+ 1 - 1
src/main/webapp/WEB-INF/views/mob/order/OrderFormMob.html

@@ -1628,7 +1628,7 @@ var dcAmtInfoSet = function() {
 					}
 					
 					// 2021.04.23 추가
-					mcxDialog.alert("총 " + gfcdUseAmt.addComma() + " 원 상품권 금액에서 차감 결제 합니다.");
+					mcxDialog.alert("총 " + gfcdUseAmt.addComma() + " 원 상품권 금액에서 차감 결제 합니다.");
 					
 					// 상품권 적용
 					$("#orderAmtForm .gfcdUseSumAmt").text(gfcdUseAmt);

+ 11 - 0
src/main/webapp/WEB-INF/views/mob/order/OrderPaymentInfoMob.html

@@ -87,6 +87,17 @@
 								</li>
 							</ul>
 						</div>
+						<!-- 210527_ 추가 : 결제수단 반복사용 체크 -->
+						<th:blcok th:if="${isLogin}">
+							<div class="form_field">
+								<div class="agree_paymethod123">
+									<input id="chk-agree_paymethod123" type="checkbox">
+									<label for="chk-agree_paymethod123">
+										<span>선택한 결제수단으로 향후 결제 이용에 동의합니다.&nbsp;&nbsp;<em class="tmark_optional">(선택)</em></span>
+									</label>
+								</div>
+							</div>
+						</th:blcok>
 						<div class="form_field">
 							<div class="agree_insurance">
 								<input id="chk-insurance" type="checkbox" name="insuranceYn"> 

+ 1 - 1
src/main/webapp/WEB-INF/views/web/cart/CartDelvFeeSaveGoodsPopupWeb.html

@@ -23,7 +23,7 @@
 													<span th:text="${#numbers.formatInteger(goods.price, 1, 'COMMA')}"></span>
 													<th:block th:if="${goods.currPrice != goods.price}">
 														<span class="itemPrice_original" th:text="${#numbers.formatInteger(goods.currPrice, 1, 'COMMA')}"></span>
-														<span class="itemPercent" th:text="${#strings.replace(goods.dcRate, '.0', '') + '%'}"></span>
+														<span class="itemPercent" th:text="${#numbers.formatInteger(goods.dcRate, 0, 'COMMA') + '%'}"></span>
 													</th:block>
 												</p>
 											</a>

+ 1 - 1
src/main/webapp/WEB-INF/views/web/cart/CartListAjaxFormWeb.html

@@ -1059,7 +1059,7 @@
 					let message = info.goodsNm + " 의 최소 구매수량은 " + info.minOrdQty + "개입니다.\n최소 구매 수량으로 주문하시겠습니까?";
 					fnUpdateConfirmChangeQty(message, info.cartSq, info.minOrdQty, list, listIndex, cartSqArr, allYn);
 				} else if (info.goodsQty > info.maxOrdQty) {
-					let message = info.goodsNm + " 의 최대 구매 능 수량은 " + info.maxOrdQty + "개입니다. 최대 구매 가능한 수량으로 주문하시겠습니까?";
+					let message = info.goodsNm + " 의 최대 구매 능 수량은 " + info.maxOrdQty + "개입니다. 최대 구매 가능한 수량으로 주문하시겠습니까?";
 					fnUpdateConfirmChangeQty(message, info.cartSq, info.maxOrdQty, list, listIndex, cartSqArr, allYn);
 				} else if (listIndex < list.length) {
 					fnOrderValidation(list, listIndex, cartSqArr, allYn);

+ 1 - 1
src/main/webapp/WEB-INF/views/web/cart/CartTmtbSalesGoodsPopupWeb.html

@@ -30,7 +30,7 @@
 												<span th:text="${#numbers.formatInteger(goods.currPrice, 1, 'COMMA')}"></span>
 												<th:block th:if="${goods.listPrice != goods.currPrice}">
 													<span class="itemPrice_original" th:text="${#numbers.formatInteger(goods.listPrice, 1, 'COMMA')}"></span>
-													<span class="itemPercent" th:text="${goods.dcRate + '%'}"></span>
+													<span class="itemPercent" th:text="${#numbers.formatInteger(goods.dcRate, 0, 'COMMA') + '%'}"></span>
 												</th:block>
 											</p>
 										</a>

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

@@ -303,7 +303,12 @@
 		$.each($("#cateListArea").find('li'), function() {
 			$(this).removeClass();
 		});
-		$("#li"+cateNo).addClass('active');
+		if(gagajf.isNull(cateNo)){
+			$("#li0").addClass('active');
+		}else{
+			$("#li"+cateNo).addClass('active');
+		}
+
 		$("#bestGoodsForm input[name=cateNo]").val(cateNo);
 		fnCategoryGoodsInfiniteScrollInit();
 		gagaInfiniteScroll.getHistory();

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

@@ -47,7 +47,9 @@
 												<img  th:src="${@environment.getProperty('domain.image') + '/' + item.imgPath1}" alt="서브메인 썸네일"/>
 											</div>
 											<div class="txt">
-												<p class="subject" th:text="${item.strTitle1}"></p>
+												<p class="subject bText">
+													<input type="hidden" name="bannerTitle" th:value="${item.strTitle1}">
+												</p>
 												<span th:text="${item.subText1}"></span>
 											</div>
 										</a>
@@ -127,6 +129,9 @@
 										<a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${item.goodsCd}]], '', '', 'SCM002');">
 											<div class="rank" th:classappend="${status.count==1}?'ranker'"><span th:text="${status.index+1}">1</span></div>
 											<div class="itemPic">
+<!--												<th:block th:each="option,idx:${item.videos}" th:with="videoArr=${#strings.arraySplit(idx.current,':')}">-->
+
+<!--												</th:block>-->
 												<img class="vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + item.sysImgNm}" th:alt="${item.goodsCd}" onerror="noneImg(this)"/>
 											</div>
 											<p class="itemBrand" th:text="${item.brandGroupNm}">BRAND NAME</p>
@@ -237,6 +242,16 @@
 			}
 		});
 	}
+
+	// 배너 슬라이더 <br> 처리
+	$('.bText').each(function (){
+		let tag = '';
+		if(!gagajf.isNull($(this).find("input[name=bannerTitle]").val())){
+			var brText = $(this).find("input[name=bannerTitle]").val();
+			tag = brText.replace(/(<br>|<br\/>|<br \/>)/g, '<br>');
+			$(this).append(tag);
+		}
+	});
 /*]]>*/
 </script>
 

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

@@ -137,7 +137,11 @@ var fnCreateGoodsList = function(result, ithrCd, contentLoc, goodsUrl, lastPage,
 			tag += ' likeit';
 		}
 		tag += ' "';
-		tag += ' onClick="cfnPutWishList(this);" selfGoodsYn=\''+item.selfGoodsYn+'\' goodsCd=\''+item.goodsCd+'\', ithrCd=\'\', contentsLoc=\'\', planDtlSq=\'\'>관심상품 추가</button>';
+		if(appGb == 'Mob'){
+			tag += ' onClick="cfnMoPutWishList(this);" goodsCd=\''+item.goodsCd+'\', ithrCd=\'\', contentsLoc=\'\', planDtlSq=\'\'>관심상품 추가</button>';
+		}else{
+			tag += ' onClick="cfnPutWishList(this);" goodsCd=\''+item.goodsCd+'\', ithrCd=\'\', contentsLoc=\'\', planDtlSq=\'\'>관심상품 추가</button>';
+		}
 		tag += '<a href="javascript:void(0);" class="itemLink" onclick="fnClickGoodsCd(\''+item.goodsCd+'\',\''+item.mainColorCd+'\');">';
 		tag += '			<div class="itemPic">';
 		if(!gagajf.isNull(item.videos)){

+ 16 - 0
src/main/webapp/biz/mypage.js

@@ -67,12 +67,20 @@ var fnGoToOrderDetail = function(param, noMember) {
 
 // 상품상세 페이지 이동 처리
 var fnGoToGoodsDetail = function(param) {
+	// 2021.05.27 인피니스크롤위치이동
+	let scrollpos = $(window).scrollTop();
+	localStorage.setItem('scrollpos', scrollpos);
+	
 	let goodsCd = $(param).attr('goodsCd');
 	cfnGoToPage(_PAGE_GOODS_DETAIL + goodsCd);
 }
 
 // 배송조회 버튼 클릭 이벤트
 var fnGoToDelivery = function(param, noMember) {
+	// 2021.05.27 인피니스크롤위치이동
+	let scrollpos = $(window).scrollTop();
+	localStorage.setItem('scrollpos', scrollpos);
+	
 	let url = '';
 	
 	if (noMember == 'noMember') {
@@ -126,6 +134,10 @@ var fnDecideOrder = function(param) {
 
 // 리뷰작성 버튼 클릭 이벤트
 var fnCreateReview = function(param) {
+	// 2021.05.27 인피니스크롤위치이동
+	let scrollpos = $(window).scrollTop();
+	localStorage.setItem('scrollpos', scrollpos);
+	
 	let ordNo = $(param).attr('ordNo');
 	let ordDtlNo = $(param).attr('ordDtlNo');
 	let goodsCd = $(param).attr('goodsCd');
@@ -181,6 +193,10 @@ var fnReSendSms = function(param) {
 
 // 반품/취소/교환 버튼 클릭 이벤트
 var fnCreateChange = function(param, gubun, noMember) {
+	// 2021.05.27 인피니스크롤위치이동
+	let scrollpos = $(window).scrollTop();
+	localStorage.setItem('scrollpos', scrollpos);
+	
 	let ordCanChgQty = $(param).attr('ordCanChgQty');
 	let str = '';
 	let url = '';