浏览代码

Merge remote-tracking branch 'origin/style' into ST24PRJ-333(무료배송)

# Conflicts:
#	src/main/java/com/style24/front/support/security/TsfAuthenticationProvider.java
jsh77b@naver.com 4 年之前
父节点
当前提交
1a67b556d6

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

@@ -38,6 +38,15 @@ public interface TsfCustomerDao {
 	 * @since 2021. 02. 18
 	 */
 	Customer getCustomerInfo(Customer customer);
+	
+	/**
+	 * 활동, 탈퇴, 휴면 테이블 조회
+	 * @param customer - ci, 휴대폰
+	 * @return 임시비밀번호
+	 * @author jsshin
+	 * @since 2021. 02. 18
+	 */
+	Customer getCustomerInfoCI(Customer customer);
 
 	/**
 	 * 고객 데이터 생성

+ 50 - 6
src/main/java/com/style24/front/biz/service/TsfCustomerService.java

@@ -101,11 +101,31 @@ public class TsfCustomerService {
 	public Customer getCustomerFindByCustNo(Integer custNo) {
 		Customer customer = new Customer();
 		customer.setCustNo(custNo);
+		
 		customer.setCustStat(TscConstants.CustStat.ACTIVE.value());
 		customer.setSiteCd(TscConstants.Site.STYLE24.value());
 		customer.encryptData();
 		return coreCustomerService.getCustomerInfo(customer);
 	}
+	
+	/**
+	 * 고객정보찾기 (휴면회원 비밀번호변경)
+	 *
+	 * @param custNo - 고객번호
+	 * @return Customer 고객정보
+	 * @author jsshin
+	 * @since 2021. 02. 24
+	 */
+	public Customer getCustomerFindByCustNoDormant(Integer custNo) {
+		Customer customer = new Customer();
+		customer.setCustNo(custNo);
+		
+		// 2022.01.22 휴면계정 비밀번호 변경시 처리
+		// customer.setCustStat(TscConstants.CustStat.ACTIVE.value());
+		customer.setSiteCd(TscConstants.Site.STYLE24.value());
+		customer.encryptData();
+		return coreCustomerService.getCustomerInfo(customer);
+	}
 
 	/**
 	 * 휴면고객 정보 찾기
@@ -219,9 +239,9 @@ public class TsfCustomerService {
 
 		return result > 0;
 	}
-
+	
 	/**
-	 * 해당 CI로 가입된 이력이 있는지 확인
+	 * 해당 CI로 가입된 이력이 있는지 확인 (회원가입, 휴대폰중복체크)
 	 * @param ci - 연계정보
 	 * @return boolean - 있으면 TRUE/ 없으면 FALSE
 	 * @author jsshin
@@ -237,6 +257,24 @@ public class TsfCustomerService {
 		return customerDao.getCustomerInfo(customer);
 	}
 
+	/**
+	 * 해당 CI로 가입된 이력이 있는지 확인 (TB_CUSTOMER.CI NULL)
+	 * @param ci - 연계정보
+	 * @return boolean - 있으면 TRUE/ 없으면 FALSE
+	 * @author jsshin
+	 * @since 2021. 02. 15
+	 */
+	public Customer getCustomerFindByCiCustomer(String ci) {
+		TscSession.setAttribute("maskingYn", "Y");
+		Customer customer = new Customer();
+		customer.setCi(ci);
+		customer.setSiteCd(TscConstants.Site.STYLE24.value());
+		customer.encryptData();
+		
+		// 2022.01.10 본인인증시 휴면회원, 탈퇴회원은 CI 중복체크 안함
+		return customerDao.getCustomerInfoCI(customer);
+	}
+
 	/**
 	 * 해당 휴대폰 번호로 가입된 이력이 있는지 확인
 	 * @param cellPhnno - 휴대전화번호
@@ -707,9 +745,14 @@ public class TsfCustomerService {
 		Customer custInfo = getDormantCustomerFindByCustNo(customer.getCustNo());
 
 		if (!customer.getCi().equals(custInfo.getCi())) {
-			result.setBoolean("isRelase", false);
-			result.setString("errorType", "DIFFERENT_CI"); // 계정이 등록된 CI랑 인증한 CI가 다를떄
-			return result;
+			// 2022.01.10 TB_CUSTOMER.CI 값이 없을때 TB_CUSTOMER CI UPDATE 
+			if (StringUtils.isBlank(custInfo.getCi())) {
+				// CI가 없으면 로그인시 본인인증을 한번더 하게끔 처리 로직으로 변경
+			} else {
+				result.setBoolean("isRelase", false);
+				result.setString("errorType", "DIFFERENT_CI"); // 계정이 등록된 CI랑 인증한 CI가 다를떄
+				return result;
+			}
 		}
 
 		customer.setRegNo(customer.getCustNo());
@@ -738,7 +781,7 @@ public class TsfCustomerService {
 		boolean isSuccess = false;
 
 		// CI 유효성 체크
-		Customer custInfo = getCustomerFindByCi(customer.getCi());
+		Customer custInfo = getCustomerFindByCiCustomer(customer.getCi());
 		if (custInfo != null) {
 			TsfSession.setAttribute("maskingCustId", custInfo.getMaskingCustId());
 			resultMap.setBoolean("isSuccess", isSuccess);
@@ -747,6 +790,7 @@ public class TsfCustomerService {
 
 		// 1.이력 쌓고
 		coreCustomerService.createCustomerHistory(customer);
+		
 		// 2.CI 업데이트
 		int resultCnt = customerDao.updateCustomerCi(customer);
 

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

@@ -300,7 +300,8 @@ public class TsfCustomerController extends TsfBaseController {
 		}
 
 		// 고객정보 찾기
-		Customer custInfo = customerService.getCustomerFindByCustNo(Integer.valueOf(custNo));
+		// 2022.01.22 휴면계정 비밀번호 변경시 처리
+		Customer custInfo = customerService.getCustomerFindByCustNoDormant(Integer.valueOf(custNo));
 
 		if (custInfo != null) {
 			customer.setTempPasswdYn("N"); // 임시비밀번호여부

+ 1 - 0
src/main/java/com/style24/front/support/security/TsfAuthenticationProvider.java

@@ -111,6 +111,7 @@ public class TsfAuthenticationProvider implements AuthenticationProvider {
 		if (TscConstants.CustStat.SECEDE.value().equals(loginInfo.getCustStat())) {
 			throw new TsfSecedeAccountException(message.getMessage("LOGN_0007"));
 		}
+		
 		// 활동회원 중 본인인증이 필요한 회원
 //		2021.10.26 김유중 : ci 없는 회원이 본인 인증 시 실패가 많아서 로그인 처리로 변경(정지혜과장,전석훈차장 협의)
 		if (TscConstants.CustStat.ACTIVE.value().equals(loginInfo.getCustStat()) && StringUtils.isBlank(loginInfo.getCi())) {

+ 29 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfCustomer.xml

@@ -163,6 +163,35 @@
 		      </if>
 		     ) A
 	</select>
+	
+	<!-- 활동, 탈퇴, 휴면 테이블 조회(2022.01.10 본인인증시 휴면회원, 탈퇴회원은 CI 중복체크 안함) -->
+	<select id="getCustomerInfoCI" parameterType="Customer" resultType="Customer">
+		/* TsfCustomer.getCustomerInfoCI */
+		SELECT A.CUST_NO
+		     , A.CUST_ID
+		     , A.EMAIL
+		     , A.CELL_PHNNO
+		     , A.CUST_STAT
+		     , A.JOIN_DT
+		     , A.SECEDE_DT
+		     , A.DORMANT_DT
+		FROM (
+		      SELECT CUST_NO
+		           , CUST_ID
+		           , EMAIL
+		           , CELL_PHNNO
+		           , CUST_STAT
+		           , DATE_FORMAT(JOIN_DT, '%Y%m%d%H%i%S')   AS JOIN_DT
+		           , ''                                     AS SECEDE_DT
+		           , ''                                     AS DORMANT_DT
+		      FROM   TB_CUSTOMER
+		      WHERE  CUST_STAT = 'G104_10'   /* 활동회원*/
+		      AND    SITE_CD = #{siteCd}
+		     <if test="ci != null and ci != ''">
+		      AND    CI = #{ci}
+		     </if>
+		     ) A
+	</select>
 
 	<!--고객정보 생성-->
 	<insert id="createCustomer" parameterType="Customer" keyProperty="custNo">

+ 0 - 4
src/main/webapp/WEB-INF/views/mob/SigninFormMob.html

@@ -76,15 +76,11 @@
 				<div class="t_c sns_wrap">
 					<h3 class="sr-only">간편로그인</h3>
 					<ul class="login_utill">
-						<!-- 2021.09.01 card007 카카오싱크 검수 주석처리 -->
-						<th:block th:if="${ipAddress == '180.71.39.150' || ipAddress == '127.0.0.1' || ipAddress == '192.168.104.72'}">
 						<li class="lu_kakao">
 							<a href="javascript:void(0)" onclick="cfnLoginKakao();">
 								<div class="ico"></div>카카오
 							</a>
 						</li>
-						</th:block>
-						<!-- //2021.09.01 card007 카카오싱크 검수 주석처리 -->
 						<li class="lu_naver">
 							<a href="javascript:void(0)" onclick="cfnLoginNaver();">
 								<div class="ico"></div>네이버

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

@@ -84,16 +84,16 @@
 	<script src="https://www.google.com/recaptcha/api.js" async defer></script>
 
 	<!-- Global site tag (gtag.js) - Google Analytics -->
-	<!-- Global site tag (gtag.js) - Google Analytics -->
-	<script async src="https://www.googletagmanager.com/gtag/js?id=G-MQWD9VX4KH"></script>
+	<script async src="https://www.googletagmanager.com/gtag/js?id=UA-216844259-1"></script>
 	<script>
-		window.dataLayer = window.dataLayer || [];
-		function gtag(){dataLayer.push(arguments);}
-		gtag('js', new Date());
-// 		gtag('config', 'AW-865781638');
-		gtag('config', 'G-MQWD9VX4KH');
+	  window.dataLayer = window.dataLayer || [];
+	  function gtag(){dataLayer.push(arguments);}
+	  gtag('js', new Date());
+	
+	  gtag('config', 'UA-216844259-1');
 	</script>
 
+
 	<th:block th:if="${sessioninfo != null}">
 		<script th:inline="javascript">
 		/*<![CDATA[*/

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

@@ -875,7 +875,7 @@
 			<!-- 리뷰영역 -->
 			<div class="riview_box" th:if="${reviewDisplayYn == 'Y'}">
 				<div class="ex_review">
-					<a href="javascript:void(0);" id="btn_pdReview_pop" th:onclick="cfGoodsReview([[${goodsInfo.goodsCd}]])">
+					<a href="#hspop_rv" id="btn_pdReview_pop" th:onclick="cfGoodsReview([[${goodsInfo.goodsCd}]])">
 						<span class="tit">리뷰<em class="number">(<th:block  th:text="${(goodsInfo.reviewRegCnt <= 9999) ? #numbers.formatInteger(goodsInfo.reviewRegCnt, 0,'COMMA')  : '9,999+'}"></th:block>)</em></span>
 						<div class="star_score" th:if="${goodsInfo.reviewRegCnt  > 0 }">
 							<span class="star" th:with="starScore=${#numbers.formatDecimal((goodsInfo.score*100/5), 0,0)}">
@@ -2584,7 +2584,14 @@
 
 	// 상품평 상세 레이어 호출후 콜백에서 호출하므로 여기에 있어야함
 	var fnReviewDetailLayerCollBack = function(){
-
+		// 활성화 안되는 경우가 종종발생하여 추가.
+		setTimeout(function() {
+			if( "#hsSpop_rv" == location.hash ){
+				if("none" == $("#layer_review_best").css("display")){
+					$("#layer_review_best").css("display", "inline-block")
+				}
+			}
+		}, 400);
 	}
 
 
@@ -2867,37 +2874,57 @@
 		//팝업 - 상품상세 베스트리뷰
 		$(document).on('click','.pd_detail #btn_pdBestReview_pop a',function(e){
                reviewCount = 1;
-               return false;
+               //return false;
            })
         //팝업 - 상품상세>리뷰팝업>포토상세(포토영상상세)
 		$(document).on('click','.pd_review_pop .area_rv_photo a',function(e){
                $("#layer_review_best").modal("show");
                reviewCount = 2;
-               return false;
+               //return false;
            })
         //팝업 - 상품상세>리뷰팝업>포토상세(베스트상세)
 		$(document).on('click','.pd_review_pop .area_rv_best a',function(e){
                $("#layer_review_best").modal("show");
                reviewCount = 2;
-               return false;
+               //return false;
            })
         //팝업 - 상품상세>리뷰팝업>포토상세 닫기
 		$(document).on('click','#layer_review_best .close-modal',function(e){
 			if(reviewCount === 2){
 				$('.pd_review_pop').modal('show');
+				if( -1 < location.hash.indexOf("#hsSpop")){
+					history.back();
+				}
+				setTimeout(function() {
+					if( "#hspop_rv" == location.hash ){
+						if("none" == $(".pd_review_pop").css("display")){
+							$(".pd_review_pop").css("display", "inline-block");
+						}
+					}
+				}, 400);
 			}
-               return false;
+               //return false;
            });
 		//팝업 - 포토/영상 (list)
 		$(document).on('click','.pd_review_pop #btn_more_photoreview',function(e){
                reviewCount = 2;
-               return false;
+               //return false;
            })
 		$(document).on('click','#layer_review_photo .close-modal',function(e){
 			if(reviewCount === 2){
 				$('.pd_review_pop').modal('show');
+				if( -1 < location.hash.indexOf("#hsSpop")){
+					history.back();
+				}
+				setTimeout(function() {
+					if( "#hspop_rv" == location.hash ){
+						if("none" == $(".pd_review_pop").css("display")){
+							$(".pd_review_pop").css("display", "inline-block");
+						}
+					}
+				}, 400);
 			}
-               return false;
+               //return false;
            });
 
 		//--상품리뷰 창 순서 -
@@ -3091,7 +3118,30 @@
 		    });
 		}
 
-
+		// 22.01.11 레이어팝업내에서 뒤로가기시 레이어팝업이 닫히도록 작업 관련건
+		window.addEventListener("hashchange", function(e) {
+			if(1 < e.oldURL.indexOf("hspop")){
+				if (location.hash == '' || location.hash == '#enp_mbris') {
+					$('#layer_goods_review').hide();
+					$(".jquery-modal.blocker.current").hide();
+					$("body").css("overflow", "");
+				}
+			}
+			
+			if(1 < e.oldURL.indexOf("hsSpop_rv")){
+				if (location.hash == '#hspop_rv') {
+					$('#layer_review_best').hide();
+					$('.pd_review_pop').modal('show');
+				}
+			}
+		});
+		
+		$(document).on("click",".pd_review_pop .close-modal", function () {
+			if( -1 < location.hash.indexOf("#hspop")){
+				history.back();
+			}
+		});
+		
 	});
 
 

+ 3 - 3
src/main/webapp/WEB-INF/views/mob/goods/GoodsDetailReviewFormMob.html

@@ -416,7 +416,7 @@
 					<div class="swiper-wrapper">
 						<div class="swiper-slide" th:each="bestReview, status : ${bestReviewList}">
 							<div class="best_review">
-								<a href="javascript:void(0);" id="btn_pdBestReview_pop" th:onclick="cfGoodsReviewDetail([[${goodsInfo.goodsCd}]],'Y', '',[[${bestReview.reviewSq}]])">
+								<a href="#hsSpop_rv" id="btn_pdBestReview_pop" th:onclick="cfGoodsReviewDetail([[${goodsInfo.goodsCd}]],'Y', '',[[${bestReview.reviewSq}]])">
 									<div class="star_score" th:with="starScore=${#numbers.formatDecimal((bestReview.iscore*100/5), 0,0)}">
 										<span class="star">
 											<em class="progbar" th:style="${'width:'+starScore+'%;' }"></em> <!-- 평점 style로 표기 -->
@@ -455,7 +455,7 @@
 				<li  th:each="photoReview, status : ${photoReviewList}" th:if="${status.count<=8}">
 					<th:block th:if="${photoReview.reviewAttachList != null and !photoReview.reviewAttachList.empty}">
 					<th:block th:each="reviewAttach, attachStatus : ${photoReview.reviewAttachList}" th:if="${attachStatus.first}">
-					<a href="javascript:void(0);" th:onclick="cfGoodsReviewDetail([[${goodsInfo.goodsCd}]], '', 'Y', [[${photoReview.reviewSq}]])">
+					<a href="#hsSpop_rv" th:onclick="cfGoodsReviewDetail([[${goodsInfo.goodsCd}]], '', 'Y', [[${photoReview.reviewSq}]])">
 						<div class="pic">
 							<th:block th:if="${reviewAttach.fileGb == 'M'}">
 							<span class="thumb mov" th:style="${'background-image:url('+kollusMediaUrl+'/poster/'+reviewAttach.kmcKey+');'}"></span><!-- 동영상의 썸네일일 경우 mov 클래스 추가 -->
@@ -707,7 +707,7 @@
 //					fileGbClass = '';
 //					if (reviewAttach == "M") fileGbClass = "mov";
 			tag += '				<li>\n';
-			tag += '					<a href="javascript:void();" onclick="cfGoodsReviewDetail(\''+item.goodsCd+'\',\'\', \'Y\',\''+item.reviewSq+'\','+aIdx+');">\n';
+			tag += '					<a href="#hsSpop_rv" onclick="cfGoodsReviewDetail(\''+item.goodsCd+'\',\'\', \'Y\',\''+item.reviewSq+'\','+aIdx+');">\n';
 			tag += '						<div class="pic">\n';
 			if (reviewAttach.fileGb == "M") {
 			tag +='								<span class="thumb mov" style="background-image:url('+_kollusMediaUrl +'/poster/'+reviewAttach.kmcKey +');\" ></span>\n';

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

@@ -480,7 +480,7 @@ var delvAddrSet = function(delvObj) {
 	
 	gagajf.ajaxJsonSubmit('/order/delivery/ban', jsonData, function(result) {
 		if (!gagajf.isNull(result.banZipcode) && result.banZipcode > 0) {
-			mcxDialog.alert('죄송합니다. 정읍,익산,전주 지역은 주문/배송이 불가한 지역입니다. 다른 배송지로 수정 해주세요.');
+			mcxDialog.alert('죄송합니다. 해당 지역은 주문/배송이 불가한 지역입니다. 다른 배송지로 수정 해주세요.');
 			return false;
 		} else {
 			// 2021.05.16 비회원구분처리

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

@@ -1240,7 +1240,7 @@ var paymentInfoSet = function() {
 					
 					gagajf.ajaxJsonSubmit('/order/delivery/ban', banJsonData, function(result) {
 						if (!gagajf.isNull(result.banZipcode) && result.banZipcode > 0 && giftPackYn == "N") {
-							mcxDialog.alert('죄송합니다. 정읍,익산,전주 지역은 주문/배송이 불가한 지역입니다. 다른 배송지로 주문을 진행해주세요.');
+							mcxDialog.alert('죄송합니다. 해당 지역은 주문/배송이 불가한 지역입니다. 다른 배송지로 주문을 진행해주세요.');
 							return false;
 						} else {
 							// 선물받기일때 배송지주소 받지않음

+ 18 - 0
src/main/webapp/WEB-INF/views/mob/planning/PlanningCustGradeBenefitFormMob.html

@@ -300,6 +300,24 @@
 
  	var fnInit = function () {
 		let expctCustGrade = exptCustGradeMap.expctCustGrade;	// 예상등급
+		
+		// 2022.01.06 현재등급으로 대체
+		var gradeCdNo = customerInfo.custGrade.substring(5,8);
+		
+		// 현재등급이 VIP가 아닐때
+		if (Number(gradeCdNo) > 10) {
+			// 현재등급이 > 주문금액등급보다 클때
+			if (Number(gradeCdNo) > Number(expctCustGrade.gradeCdNo)) {
+				expctCustGrade.gradeCdNo = gradeCdNo;
+			}
+		}
+		// 현재등급이 VIP 일때
+		else {
+			// 현재등급 VIP, 주문금액등급이 VIP 가 아닐때 무조건 GOLD로 설정 
+			if (Number(expctCustGrade.gradeCdNo) > 10) {
+				expctCustGrade.gradeCdNo = 20;
+			}
+		}
 
 		//expctCustGrade.custGradeNo 10:VIP, 20: GOLD, 30:SILVER, 40:BRONZE, 50:WELCOME
 

+ 1 - 1
src/main/webapp/WEB-INF/views/web/order/OrderCompleteWeb.html

@@ -378,7 +378,7 @@ var delvAddrSet = function(delvObj) {
 
 	gagajf.ajaxJsonSubmit('/order/delivery/ban', jsonData, function(result) {
 		if (!gagajf.isNull(result.banZipcode) && result.banZipcode > 0) {
-			mcxDialog.alert('죄송합니다. 정읍,익산,전주 지역은 주문/배송이 불가한 지역입니다. 다른 배송지로 수정 해주세요.');
+			mcxDialog.alert('죄송합니다. 해당 지역은 주문/배송이 불가한 지역입니다. 다른 배송지로 수정 해주세요.');
 			return false;
 		} else {
 			// 2021.05.16 비회원구분처리

+ 1 - 1
src/main/webapp/WEB-INF/views/web/order/OrderFormWeb.html

@@ -1160,7 +1160,7 @@ var paymentInfoSet = function() {
 					
 					gagajf.ajaxJsonSubmit('/order/delivery/ban', banJsonData, function(result) {
 						if (!gagajf.isNull(result.banZipcode) && result.banZipcode > 0) {
-							mcxDialog.alert('죄송합니다. 정읍,익산,전주 지역은 주문/배송이 불가한 지역입니다. 다른 배송지로 주문을 진행해주세요.');
+							mcxDialog.alert('죄송합니다. 해당 지역은 주문/배송이 불가한 지역입니다. 다른 배송지로 주문을 진행해주세요.');
 							return false;
 						} else {
 							if (foreignBuyYn == "Y") {

+ 19 - 3
src/main/webapp/WEB-INF/views/web/planning/PlanningCustGradeBenefitFormWeb.html

@@ -273,9 +273,26 @@
 
  	var fnInit = function () {
 		let expctCustGrade = exptCustGradeMap.expctCustGrade;	// 예상등급
+		
+		// 2022.01.06 현재등급으로 대체
+		var gradeCdNo = customerInfo.custGrade.substring(5,8);
+		
+		// 현재등급이 VIP가 아닐때
+		if (Number(gradeCdNo) > 10) {
+			// 현재등급이 > 주문금액등급보다 클때
+			if (Number(gradeCdNo) > Number(expctCustGrade.gradeCdNo)) {
+				expctCustGrade.gradeCdNo = gradeCdNo;
+			}
+		}
+		// 현재등급이 VIP 일때
+		else {
+			// 현재등급 VIP, 주문금액등급이 VIP 가 아닐때 무조건 GOLD로 설정 
+			if (Number(expctCustGrade.gradeCdNo) > 10) {
+				expctCustGrade.gradeCdNo = 20;
+			}
+		}
 
-		//expctCustGrade.custGradeNo 10:VIP, 20: GOLD, 30:SILVER, 40:BRONZE, 50:WELCOME
-
+		// expctCustGrade.custGradeNo 10:VIP, 20: GOLD, 30:SILVER, 40:BRONZE, 50:WELCOME
 		// 예정등급이 VIP가 아닌경우
 		if (Number(expctCustGrade.gradeCdNo) > 10) {
 			let nextGradeNo = 'G110_'+(Number(expctCustGrade.gradeCdNo)-10); // 다음등급번호
@@ -283,7 +300,6 @@
 		} else {
 			fnDisplayVipText(expctCustGrade);
 		}
-
 	};
 
  	// 다음 등급정책

+ 1 - 1
src/main/webapp/ux/pc/css/layout.css

@@ -339,7 +339,7 @@ ul.maintabs li [class^='box_depth'] {display:none; position:absolute; left:100%;
 #quick_menu .quick_con .quick_head h3 {font-size: 24px; font-weight: 500; margin-bottom: 0;}
 #quick_menu .quick_con .quick_head h3 a {color: #222; position: relative; display: inline-block; padding-right: 22px;}
 #quick_menu .quick_con .quick_head h3 a:after {content:''; position: absolute; top: 50%; transform:translateY(-60%); right: 0; width: 8px; height: 15px; background: url('//image.istyle24.com/Style24/images/pc/ico_dp_arrow.png') no-repeat center/100%;}
-#quick_menu .quick_con .quick_body {padding:0 30px 30px; height: auto;min-height:325px;max-height:605px;overflow-y:scroll;}
+#quick_menu .quick_con .quick_body {padding:0 30px 30px; height: 605px;min-height:325px;max-height:605px;overflow-y:scroll;}
 
 
 #quick_menu .quick_con .quick_body::after {display:none;}