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

Merge branch 'develop' into jsshin

jsshin 5 лет назад
Родитель
Сommit
16a8bd5341
46 измененных файлов с 1507 добавлено и 1381 удалено
  1. 22 0
      src/main/java/com/style24/front/biz/dao/TsfCommonDao.java
  2. 0 40
      src/main/java/com/style24/front/biz/dao/TsfOrderChangeDao.java
  3. 25 0
      src/main/java/com/style24/front/biz/service/TsfCommonService.java
  4. 49 11
      src/main/java/com/style24/front/biz/service/TsfCounselService.java
  5. 5 154
      src/main/java/com/style24/front/biz/service/TsfOrderChangeService.java
  6. 49 1
      src/main/java/com/style24/front/biz/web/TsfCustomerController.java
  7. 3 1
      src/main/java/com/style24/front/biz/web/TsfDisplayController.java
  8. 5 3
      src/main/java/com/style24/front/biz/web/TsfMypageController.java
  9. 3 3
      src/main/java/com/style24/front/biz/web/TsfNoMemberController.java
  10. 2 2
      src/main/java/com/style24/persistence/domain/Counsel.java
  11. 27 0
      src/main/java/com/style24/persistence/domain/SupplyCompany.java
  12. 28 0
      src/main/java/com/style24/persistence/mybatis/shop/TsfCommon.xml
  13. 1 1
      src/main/java/com/style24/persistence/mybatis/shop/TsfCounsel.xml
  14. 8 1
      src/main/java/com/style24/persistence/mybatis/shop/TsfDisplay.xml
  15. 2 2
      src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml
  16. 0 589
      src/main/java/com/style24/persistence/mybatis/shop/TsfOrderChange.xml
  17. 5 13
      src/main/webapp/WEB-INF/views/mob/callcenter/OneToOneQnaFormMob.html
  18. 22 5
      src/main/webapp/WEB-INF/views/mob/cart/CartListAjaxFormMob.html
  19. 3 0
      src/main/webapp/WEB-INF/views/mob/customer/PrivacyPolicyLayerFormMob.html
  20. 102 0
      src/main/webapp/WEB-INF/views/mob/customer/SupplyCompanyLayerFormMob.html
  21. 355 0
      src/main/webapp/WEB-INF/views/mob/display/BrandLookbookMainFormMob.html
  22. 13 2
      src/main/webapp/WEB-INF/views/mob/display/CategoryMainFormMob.html
  23. 44 22
      src/main/webapp/WEB-INF/views/mob/display/LookbookDetailFormMob.html
  24. 37 36
      src/main/webapp/WEB-INF/views/mob/display/MallMainFormMob.html
  25. 14 3
      src/main/webapp/WEB-INF/views/mob/display/OutletMainFormMob.html
  26. 22 23
      src/main/webapp/WEB-INF/views/mob/goods/GoodsDetailFormMob.html
  27. 3 3
      src/main/webapp/WEB-INF/views/mob/goods/GoodsDetailReviewFormMob.html
  28. 5 1
      src/main/webapp/WEB-INF/views/mob/planning/PlanningDetailFormMob.html
  29. 1 1
      src/main/webapp/WEB-INF/views/mob/planning/PlanningMainFormMob.html
  30. 13 10
      src/main/webapp/WEB-INF/views/mob/planning/PlanningReplyPhotoFormMob.html
  31. 2 2
      src/main/webapp/WEB-INF/views/web/callcenter/OneToOneQnaFormWeb.html
  32. 6 6
      src/main/webapp/WEB-INF/views/web/callcenter/OneToOneQnaRegisterFormWeb.html
  33. 15 1
      src/main/webapp/WEB-INF/views/web/cart/CartListAjaxFormWeb.html
  34. 51 238
      src/main/webapp/WEB-INF/views/web/customer/PrivacyPolicyFormWeb.html
  35. 101 0
      src/main/webapp/WEB-INF/views/web/customer/SupplyCompanyLayerFormWeb.html
  36. 241 0
      src/main/webapp/WEB-INF/views/web/display/BrandLookbookMainFormWeb.html
  37. 1 1
      src/main/webapp/WEB-INF/views/web/display/BrandMainFormWeb.html
  38. 6 4
      src/main/webapp/WEB-INF/views/web/display/CategoryMainFormWeb.html
  39. 9 2
      src/main/webapp/WEB-INF/views/web/display/LookbookDetailFormWeb.html
  40. 44 44
      src/main/webapp/WEB-INF/views/web/display/MallMainFormWeb.html
  41. 36 33
      src/main/webapp/WEB-INF/views/web/display/OutletMainFormWeb.html
  42. 10 6
      src/main/webapp/WEB-INF/views/web/planning/PlanningDetailFormWeb.html
  43. 2 0
      src/main/webapp/ux/mo/css/common_m.css
  44. 83 83
      src/main/webapp/ux/mo/css/layout_m.css
  45. 14 34
      src/main/webapp/ux/mo/js/common_m.js
  46. 18 0
      src/main/webapp/ux/style24_link.js

+ 22 - 0
src/main/java/com/style24/front/biz/dao/TsfCommonDao.java

@@ -1,11 +1,14 @@
 package com.style24.front.biz.dao;
 
+import com.style24.persistence.domain.SupplyCompany;
 import org.springframework.stereotype.Repository;
 
 import com.style24.core.support.annotation.ShopDs;
 import com.style24.persistence.domain.InflowHst;
 import com.style24.persistence.domain.Order;
 
+import java.util.Collection;
+
 /**
  * 공통 Dao
  *
@@ -91,4 +94,23 @@ public interface TsfCommonDao {
 	 */
 	String getSearchEngineSyncYn();
 
+	/**
+	 * 공급업체 총 건수
+	 *
+	 * @return int - 건수
+	 * @author jsshin
+	 * @since 2021. 06. 10
+	 */
+	int getSupplyCompanyCount();
+
+	/**
+	 * 공급업체 목록
+	 *
+	 * @param supplyCompany - 페이징 정보
+	 * @return Collection<SupplyCompany> - 목록
+	 * @author jsshin
+	 * @since 2021. 06. 10
+	 */
+	Collection<SupplyCompany> getSupplyCompanyList(SupplyCompany supplyCompany);
+
 }

+ 0 - 40
src/main/java/com/style24/front/biz/dao/TsfOrderChangeDao.java

@@ -97,46 +97,6 @@ public interface TsfOrderChangeDao {
 	 */
 	Collection<OrderChange> getPagingCreList(OrderChange orderChange);
 
-	/**
-	 * 마이페이지 교환 상품 옵션 정보 조회
-	 *
-	 * @param OrderChange
-	 * @return OrderChange
-	 * @author card007
-	 * @since 2021. 04. 08
-	 */
-	OrderChange getExchangeGoodsOptionInfoList(OrderChange orderChange);
-
-	/**
-	 * 마이페이지 취소 상세 정보 조회
-	 *
-	 * @param OrderChange
-	 * @return Collection<OrderChange>
-	 * @author card007
-	 * @since 2021. 04. 08
-	 */
-	Collection<OrderChange> getCreCancelDetailInfo(OrderChange orderChange);
-
-	/**
-	 * 마이페이지 반품 상세 정보 조회
-	 *
-	 * @param OrderChange
-	 * @return Collection<OrderChange>
-	 * @author card007
-	 * @since 2021. 04. 13
-	 */
-	Collection<OrderChange> getCreReturnDetailInfo(OrderChange orderChange);
-
-	/**
-	 * 마이페이지 교환 상세 정보 조회
-	 *
-	 * @param OrderChange
-	 * @return Collection<OrderChange>
-	 * @author card007
-	 * @since 2021. 04. 13
-	 */
-	Collection<OrderChange> getCreExchangeDetailInfo(OrderChange orderChange);
-
 	/**
 	 * 마이페이지 회수지 수정
 	 *

+ 25 - 0
src/main/java/com/style24/front/biz/service/TsfCommonService.java

@@ -1,5 +1,6 @@
 package com.style24.front.biz.service;
 
+import com.style24.persistence.domain.SupplyCompany;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.env.Environment;
@@ -14,6 +15,8 @@ import com.style24.persistence.domain.Order;
 
 import lombok.extern.slf4j.Slf4j;
 
+import java.util.Collection;
+
 /**
  * 공통 Service
  *
@@ -121,4 +124,26 @@ public class TsfCommonService {
 		return commonDao.getSearchEngineSyncYn();
 	}
 
+	/**
+	 * 공급업체 총 건수
+	 *
+	 * @return int - 건수
+	 * @author jsshin
+	 * @since 2021. 06. 10
+	 */
+	public int getSupplyCompanyCount() {
+		return commonDao.getSupplyCompanyCount();
+	}
+
+	/**
+	 * 공급업체 목록
+	 *
+	 * @param supplyCompany - 페이징 정보
+	 * @return Collection<SupplyCompany> - 목록
+	 * @author jsshin
+	 * @since 2021. 06. 10
+	 */
+	public Collection<SupplyCompany> getSupplyCompanyList(SupplyCompany supplyCompany) {
+		return commonDao.getSupplyCompanyList(supplyCompany);
+	}
 }

+ 49 - 11
src/main/java/com/style24/front/biz/service/TsfCounselService.java

@@ -1,9 +1,11 @@
 package com.style24.front.biz.service;
 
+import java.io.File;
 import java.util.Collection;
 
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -14,6 +16,8 @@ import com.style24.persistence.domain.Counsel;
 
 import lombok.extern.slf4j.Slf4j;
 
+import com.gagaframework.web.util.GagaDateUtil;
+import com.gagaframework.web.util.GagaFileUtil;
 import com.gagaframework.web.util.GagaStringUtil;
 
 /**
@@ -28,6 +32,9 @@ public class TsfCounselService {
 
 	@Autowired
 	private TsfCounselDao counselDao;
+	
+	@Autowired
+	private Environment env;
 
 	/**
 	 * 1:1문의 생성
@@ -42,20 +49,51 @@ public class TsfCounselService {
 		counsel.setCustNo(TsfSession.getInfo().getCustNo());
 		counsel.setCellPhnno(TsfSession.getInfo().getCellPhnno());
 		counsel.setEmail(TsfSession.getInfo().getEmail());
-
-		if (StringUtils.isNotBlank(counsel.getFile1SysFileNm())) {
-			counsel.setOrgFileNm1(counsel.getFile1OrgFileNm());
-			counsel.setSysFileNm1(counsel.getFile1SysFileNm());
-		}
-
-		if (StringUtils.isNotBlank(counsel.getFile2SysFileNm())) {
-			counsel.setOrgFileNm2(counsel.getFile2OrgFileNm());
-			counsel.setSysFileNm2(counsel.getFile2SysFileNm());
-		}
-
 		counsel.setRegNo(TsfSession.getInfo().getCustNo());
 		counsel.setUpdNo(TsfSession.getInfo().getCustNo());
 		counselDao.createOneToOneQna(counsel);
+		
+		if(counsel.getOrgFileNmArr() != null) {
+			int ind = 1;
+			String[] orgItem = counsel.getOrgFileNmArr();
+			String[] sysItem = counsel.getSysFileNmArr();
+			
+			for (int i = 0; i < orgItem.length; i++) {
+				String imgInd = String.valueOf(ind);
+				if (ind < 10) {
+					imgInd = "0" + imgInd;
+				}
+				String planUploadPath = env.getProperty("upload.default.target.path");
+				String yearMonth = GagaDateUtil.getToday().substring(0, 6);
+				planUploadPath = GagaFileUtil.getConcatenationPath(planUploadPath, "/counsel");
+				File newFile = new File(GagaFileUtil.getConcatenationPath(planUploadPath, sysItem[i]));
+				planUploadPath = GagaFileUtil.getConcatenationPath(planUploadPath, yearMonth);
+				String newFilename = "COUNSEL_" + GagaDateUtil.getTodayDateTime() + "_" + imgInd + "." + org.springframework.util.StringUtils.getFilenameExtension(sysItem[i]);
+				File uniqueFile = GagaFileUtil.getUniqueFile(new File(GagaFileUtil.getConcatenationPath(planUploadPath, newFilename)));
+				// Rename a file
+				File path = new File(planUploadPath);
+				if (!path.exists()) {
+					path.mkdir();
+				}
+				newFile.renameTo(uniqueFile);
+				
+				if (i == 0) {
+					counsel.setOrgFileNm1(orgItem[i]);
+					counsel.setSysFileNm1("/counsel/" + yearMonth + "/" + newFilename);
+				}else {
+					counsel.setOrgFileNm2(orgItem[i]);
+					counsel.setSysFileNm2("/counsel/" + yearMonth + "/" + newFilename);
+				}
+				
+				ind++;
+			}
+			
+			counselDao.updateOneToOneQna(counsel);
+		}
+		
+
+		
+		
 	}
 
 	/**

+ 5 - 154
src/main/java/com/style24/front/biz/service/TsfOrderChangeService.java

@@ -8,6 +8,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.gagaframework.web.parameter.GagaMap;
+import com.style24.core.biz.dao.TscOrderChangeDao;
 import com.style24.core.biz.service.TscOrderChangeService;
 import com.style24.core.support.env.TscConstants;
 import com.style24.front.biz.dao.TsfOrderChangeDao;
@@ -31,6 +32,9 @@ public class TsfOrderChangeService {
 	@Autowired
 	private TsfOrderChangeDao orderChangeDao;
 
+	@Autowired
+	private TscOrderChangeDao coreOrderChangeDao;
+
 	@Autowired
 	private TscOrderChangeService coreOrderChangeService;
 
@@ -227,7 +231,7 @@ public class TsfOrderChangeService {
 
 			// 교환 시 교환옵션정보 설정
 			if ("G680_40".equals(tmpOrderChange.getChgGb())) {
-				OrderChange exchangeGoodsOptionInfo = orderChangeDao.getExchangeGoodsOptionInfoList(tmpOrderChange);
+				OrderChange exchangeGoodsOptionInfo = coreOrderChangeDao.getExchangeGoodsOptionInfoList(tmpOrderChange);
 				if (exchangeGoodsOptionInfo.getItemNm().contains("!@!")) {
 					exchangeGoodsOptionInfo.setItemNmArr(exchangeGoodsOptionInfo.getItemNm().split("!@!"));
 					exchangeGoodsOptionInfo.setColorNmArr(exchangeGoodsOptionInfo.getColorNm().split(","));
@@ -269,159 +273,6 @@ public class TsfOrderChangeService {
 		return map;
 	}
 
-	/**
-	 * 마이페이지 취소 상세 정보 조회
-	 *
-	 * @param OrderChange
-	 * @return Collection<OrderChange>
-	 * @author card007
-	 * @since 2021. 04. 08
-	 */
-	public GagaMap getCreCancelDetailInfo(OrderChange orderChange) {
-		GagaMap map = new GagaMap();
-		Collection<OrderChange> result = new ArrayList<>();
-		String refundYn = "N";
-
-		for (OrderChange tmpOrderChange : orderChangeDao.getCreCancelDetailInfo(orderChange)) {
-			// 세트상품 옵션별 배열로 담기
-			if (tmpOrderChange.getItemNm().contains("!@!")) {
-				tmpOrderChange.setItemNmArr(tmpOrderChange.getItemNm().split("!@!"));
-				tmpOrderChange.setColorNmArr(tmpOrderChange.getColorNm().split(","));
-				tmpOrderChange.setOptCd1Arr(tmpOrderChange.getOptCd1().split(","));
-				tmpOrderChange.setOptCd2Arr(tmpOrderChange.getOptCd2().split(","));
-			} else {
-				String[] arr = {tmpOrderChange.getItemNm()}, arr2 = {tmpOrderChange.getColorNm()}, arr3 = {tmpOrderChange.getOptCd1()}, arr4 = {tmpOrderChange.getOptCd2()};
-				tmpOrderChange.setItemNmArr(arr);
-				tmpOrderChange.setColorNmArr(arr2);
-				tmpOrderChange.setOptCd1Arr(arr3);
-				tmpOrderChange.setOptCd2Arr(arr4);
-			}
-
-			// 취소 전표 확인 용 환불 여부 설정
-			String chgStat = tmpOrderChange.getChgStat();
-			if ("N".equals(refundYn) && (TscConstants.OrderChangeStat.PAYMENT_BEFORE_CANCEL.value().equals(chgStat) || TscConstants.OrderChangeStat.PAYMENT_AFTER_CANCEL.value().equals(chgStat))) {
-				refundYn = "Y";
-			}
-
-			result.add(tmpOrderChange);
-		}
-
-		OrderChange oneData = new OrderChange();
-		if (result.size() > 0) {
-			oneData = result.iterator().next();
-		}
-
-		map.set("refundYn", refundYn);
-		map.set("oneData", oneData);
-		map.set("cancelDetailList", result);
-
-		return map;
-	}
-
-	/**
-	 * 마이페이지 반품 상세 정보 조회
-	 *
-	 * @param OrderChange
-	 * @return Collection<OrderChange>
-	 * @author card007
-	 * @since 2021. 04. 13
-	 */
-	public GagaMap getCreReturnDetailInfo(OrderChange orderChange) {
-		GagaMap map = new GagaMap();
-		Collection<OrderChange> result = new ArrayList<>();
-		String refundYn = "N";
-
-		for (OrderChange tmpOrderChange : orderChangeDao.getCreReturnDetailInfo(orderChange)) {
-			// 세트상품 옵션별 배열로 담기
-			if (tmpOrderChange.getItemNm().contains("!@!")) {
-				tmpOrderChange.setItemNmArr(tmpOrderChange.getItemNm().split("!@!"));
-				tmpOrderChange.setColorNmArr(tmpOrderChange.getColorNm().split(","));
-				tmpOrderChange.setOptCd1Arr(tmpOrderChange.getOptCd1().split(","));
-				tmpOrderChange.setOptCd2Arr(tmpOrderChange.getOptCd2().split(","));
-			} else {
-				String[] arr = {tmpOrderChange.getItemNm()}, arr2 = {tmpOrderChange.getColorNm()}, arr3 = {tmpOrderChange.getOptCd1()}, arr4 = {tmpOrderChange.getOptCd2()};
-				tmpOrderChange.setItemNmArr(arr);
-				tmpOrderChange.setColorNmArr(arr2);
-				tmpOrderChange.setOptCd1Arr(arr3);
-				tmpOrderChange.setOptCd2Arr(arr4);
-			}
-
-			// 취소 전표 확인 용 환불 여부 설정
-			String chgStat = tmpOrderChange.getChgStat();
-			if ("N".equals(refundYn) && TscConstants.OrderChangeStat.RETURN_COMPLETE.value().equals(chgStat)) {
-				refundYn = "Y";
-			}
-
-			result.add(tmpOrderChange);
-		}
-
-		OrderChange oneData = new OrderChange();
-		if (result.size() > 0) {
-			oneData = result.iterator().next();
-		}
-
-		map.set("refundYn", refundYn);
-		map.set("oneData", oneData);
-		map.set("returnDetailList", result);
-
-		return map;
-	}
-
-	/**
-	 * 마이페이지 교환 상세 정보 조회
-	 *
-	 * @param OrderChange
-	 * @return Collection<OrderChange>
-	 * @author card007
-	 * @since 2021. 04. 13
-	 */
-	public GagaMap getCreExchangeDetailInfo(OrderChange orderChange) {
-		GagaMap map = new GagaMap();
-		Collection<OrderChange> result = new ArrayList<>();
-
-		for (OrderChange tmpOrderChange : orderChangeDao.getCreExchangeDetailInfo(orderChange)) {
-			// 세트상품 옵션별 배열로 담기
-			if (tmpOrderChange.getItemNm().contains("!@!")) {
-				tmpOrderChange.setItemNmArr(tmpOrderChange.getItemNm().split("!@!"));
-				tmpOrderChange.setColorNmArr(tmpOrderChange.getColorNm().split(","));
-				tmpOrderChange.setOptCd1Arr(tmpOrderChange.getOptCd1().split(","));
-				tmpOrderChange.setOptCd2Arr(tmpOrderChange.getOptCd2().split(","));
-			} else {
-				String[] arr = {tmpOrderChange.getItemNm()}, arr2 = {tmpOrderChange.getColorNm()}, arr3 = {tmpOrderChange.getOptCd1()}, arr4 = {tmpOrderChange.getOptCd2()};
-				tmpOrderChange.setItemNmArr(arr);
-				tmpOrderChange.setColorNmArr(arr2);
-				tmpOrderChange.setOptCd1Arr(arr3);
-				tmpOrderChange.setOptCd2Arr(arr4);
-			}
-
-			// 교환상품 옵션 정보 조회 및 설정
-			OrderChange changeOptionInfo = orderChangeDao.getExchangeGoodsOptionInfoList(tmpOrderChange);
-			if (changeOptionInfo.getItemNm().contains("!@!")) {
-				tmpOrderChange.setChgItemNmArr(changeOptionInfo.getItemNm().split("!@!"));
-				tmpOrderChange.setChgColorNmArr(changeOptionInfo.getColorNm().split(","));
-				tmpOrderChange.setChgOptCd1Arr(changeOptionInfo.getOptCd1().split(","));
-				tmpOrderChange.setChgOptCd2Arr(changeOptionInfo.getOptCd2().split(","));
-			} else {
-				tmpOrderChange.setChgItemNm(changeOptionInfo.getItemNm());
-				tmpOrderChange.setChgColorNm(changeOptionInfo.getColorNm());
-				tmpOrderChange.setChgOptCd1(changeOptionInfo.getOptCd1());
-				tmpOrderChange.setChgOptCd2(changeOptionInfo.getOptCd2());
-			}
-
-			result.add(tmpOrderChange);
-		}
-
-		OrderChange oneData = new OrderChange();
-		if (result.size() > 0) {
-			oneData = result.iterator().next();
-		}
-
-		map.set("oneData", oneData);
-		map.set("exchangeDetailList", result);
-
-		return map;
-	}
-
 	/**
 	 * 마이페이지 회수지 수정
 	 *

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

@@ -4,8 +4,12 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
 
 import com.style24.core.biz.service.TscMailService;
+import com.style24.front.biz.service.TsfCommonService;
 import com.style24.front.biz.service.TsfCouponService;
+import com.style24.persistence.TscPageRequest;
+import com.style24.persistence.domain.Clause;
 import com.style24.persistence.domain.Coupon;
+import com.style24.persistence.domain.SupplyCompany;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -67,6 +71,9 @@ public class TsfCustomerController extends TsfBaseController {
 	@Autowired
 	private Yes24Login yes24Login;
 
+	@Autowired
+	private TsfCommonService commonService;
+
 	/**
 	 * 아이디 찾기 화면
 	 *
@@ -937,7 +944,7 @@ public class TsfCustomerController extends TsfBaseController {
 		ModelAndView mav = new ModelAndView(super.getDeviceViewName("customer/PrivacyPolicyForm"));
 
 		mav.addObject("clause", clauseService.getClause(TscConstants.Site.STYLE24.value(), "G057_11"));
-
+		mav.addObject("clauseList", clauseService.getClauseList(TscConstants.Site.STYLE24.value(), "G057_11"));
 		return mav;
 	}
 
@@ -1024,6 +1031,47 @@ public class TsfCustomerController extends TsfBaseController {
 		return mav;
 	}
 
+	@GetMapping("/clause/info/{clauseSq}")
+	@ResponseBody
+	public Clause getClauseInfo(@PathVariable Integer clauseSq) {
+		return clauseService.getClauseInfo(clauseSq);
+	}
+
+	/**
+	 * 공급업체목록 화면
+	 *
+	 * @return ModelAndView
+	 * @author jsshin
+	 * @since 2021. 04. 01
+	 */
+	@PostMapping("/supply/company/layer")
+	public ModelAndView getSupplyCompanyLayer(HttpServletRequest request) {
+		ModelAndView mav = new ModelAndView();
+		mav.addObject("mallGb", request.getParameter("mallGb"));
+		mav.setViewName(super.getDeviceViewName("customer/SupplyCompanyLayerForm"));
+		return mav;
+	}
+
+	/**
+	 * 공급업체목록
+	 *
+	 * @param supplyCompany
+	 * @return GagaMap
+	 * @author jsshin
+	 * @since 2021. 06. 10
+	 */
+	@PostMapping("/supply/company/list")
+	@ResponseBody
+	public GagaMap getSupplyCompanyList(@RequestBody SupplyCompany supplyCompany) {
+		GagaMap result = new GagaMap();
+		TscPageRequest pageable = new TscPageRequest((supplyCompany.getPageNo() > 0 ? supplyCompany.getPageNo() - 1 : 0), supplyCompany.getPageSize(), supplyCompany.getPageUnit());
+		pageable.setTotalCount(commonService.getSupplyCompanyCount());
+		supplyCompany.setPageable(pageable);
+		result.set("supplyCompanyList",commonService.getSupplyCompanyList(supplyCompany));
+		result.set("paging", supplyCompany);
+		return result;
+	}
+
 	/**
 	 * 개인정보위탁 화면
 	 *

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

@@ -501,15 +501,17 @@ public class TsfDisplayController extends TsfBaseController {
 	 */
 	@GetMapping("/lookbook/main/form")
 	public ModelAndView lookbookMain(Lookbook lookbook) {
-		ModelAndView mav = new ModelAndView(super.getDeviceViewName("display/LookbookMainForm"));
+		ModelAndView mav = new ModelAndView();
 		// 브랜드그룹 정보 : 브랜드메인 링크에 설정된 기획전으로 들어올때 GNB 변경때문에 사용
 		if (lookbook.getBrandGroupNo() != null && !lookbook.getBrandGroupNo().equals("")) {
 			lookbook.setBrandCd(lookbook.getBrandGroupNo().toString());
 			lookbook.setLookbookGb("BL");
 			mav.addObject("brandGroupInfo", displayService.getGnbBrandGroup(lookbook.getBrandGroupNo()));
+			mav.setViewName(super.getDeviceViewName("display/BrandLookbookMainForm"));
 		} else {
 			lookbook.setLookbookGb("L");
 			mav.addObject("brandGroupInfo", null);
+			mav.setViewName(super.getDeviceViewName("display/LookbookMainForm"));
 		}
 
 		mav.addObject("lbInfo", lookbook);

+ 5 - 3
src/main/java/com/style24/front/biz/web/TsfMypageController.java

@@ -882,6 +882,8 @@ public class TsfMypageController extends TsfBaseController {
 		if (ordChgSq > 0) {
 			// 취소 알림톡 관련 정보 조회
 			orderChange = coreOrderChangeService.getKakaoOrderCancelInfo(ordChgSq);
+			
+			GagaMap replaceInfo = coreOrderChangeService.getMailOrderCancelReplaceInfo(orderChange);
 
 			try {
 				// 취소 알림톡 발송
@@ -1031,7 +1033,7 @@ public class TsfMypageController extends TsfBaseController {
 
 		// 취소상세 데이터 조회
 		orderChange.setCustNo(custNo);
-		GagaMap map = orderChangeService.getCreCancelDetailInfo(orderChange);
+		GagaMap map = coreOrderChangeService.getCreCancelDetailInfo(orderChange);
 		OrderChange oneData = (OrderChange) map.get("oneData");
 		mav.addObject("cancelDetailList", map);
 		mav.addObject("oneData", oneData);
@@ -1070,7 +1072,7 @@ public class TsfMypageController extends TsfBaseController {
 
 		// 취소상세 데이터 조회
 		orderChange.setCustNo(custNo);
-		GagaMap map = orderChangeService.getCreReturnDetailInfo(orderChange);
+		GagaMap map = coreOrderChangeService.getCreReturnDetailInfo(orderChange);
 		OrderChange oneData = (OrderChange) map.get("oneData");
 		mav.addObject("returnDetailList", map);
 		mav.addObject("oneData", oneData);
@@ -1109,7 +1111,7 @@ public class TsfMypageController extends TsfBaseController {
 
 		// 취소상세 데이터 조회
 		orderChange.setCustNo(custNo);
-		GagaMap map = orderChangeService.getCreExchangeDetailInfo(orderChange);
+		GagaMap map = coreOrderChangeService.getCreExchangeDetailInfo(orderChange);
 		OrderChange oneData = (OrderChange) map.get("oneData");
 		mav.addObject("exchangeDetailList", map);
 		mav.addObject("oneData", oneData);

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

@@ -1098,7 +1098,7 @@ public class TsfNoMemberController extends TsfBaseController {
 		mav.addObject("ordPhnno", orderChange.getOrdPhnno());
 
 		// 취소상세 데이터 조회
-		GagaMap map = orderChangeService.getCreCancelDetailInfo(orderChange);
+		GagaMap map = coreOrderChangeService.getCreCancelDetailInfo(orderChange);
 		OrderChange oneData = (OrderChange) map.get("oneData");
 		mav.addObject("cancelDetailList", map);
 		mav.addObject("oneData", oneData);
@@ -1162,7 +1162,7 @@ public class TsfNoMemberController extends TsfBaseController {
 		mav.addObject("isLogin", false);
 
 		// 반품상세 데이터 조회
-		GagaMap map = orderChangeService.getCreReturnDetailInfo(orderChange);
+		GagaMap map = coreOrderChangeService.getCreReturnDetailInfo(orderChange);
 		OrderChange oneData = (OrderChange) map.get("oneData");
 		mav.addObject("returnDetailList", map);
 		mav.addObject("oneData", oneData);
@@ -1226,7 +1226,7 @@ public class TsfNoMemberController extends TsfBaseController {
 		mav.addObject("isLogin", false);
 
 		// 교환상세 데이터 조회
-		GagaMap map = orderChangeService.getCreExchangeDetailInfo(orderChange);
+		GagaMap map = coreOrderChangeService.getCreExchangeDetailInfo(orderChange);
 		OrderChange oneData = (OrderChange) map.get("oneData");
 		mav.addObject("exchangeDetailList", map);
 		mav.addObject("oneData", oneData);

+ 2 - 2
src/main/java/com/style24/persistence/domain/Counsel.java

@@ -68,9 +68,9 @@ public class Counsel extends TscBaseDomain {
 	}
 	
 	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
-	private String[] fileOrgFileNm;
+	private String[] orgFileNmArr;
 	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
-	private String[] fileSysFileNm;
+	private String[] sysFileNmArr;
 
 
 	// Pagination

+ 27 - 0
src/main/java/com/style24/persistence/domain/SupplyCompany.java

@@ -0,0 +1,27 @@
+package com.style24.persistence.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.style24.persistence.TscBaseDomain;
+
+import com.style24.persistence.TscPageRequest;
+import lombok.Data;
+
+/**
+ * 공급업체 Domain
+ *
+ * @author gagamel
+ * @since 2020. 10. 7
+ */
+@SuppressWarnings("serial")
+@Data
+public class SupplyCompany extends TscBaseDomain {
+
+	private String supplyCompCd;		// 공급업체코드
+	private String supplyCompNm;		// 공급업체명
+	private String ownerNm;
+
+	private TscPageRequest pageable;
+	private int pageNo = 1;
+	private int pageSize = 10;
+	private int pageUnit = 5;
+}

+ 28 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfCommon.xml

@@ -87,5 +87,33 @@
 		WHERE  CD_GB = 'G085'
 		AND    CD = 'SEARCHSYNCYN'
 	</select>
+	
+	<select id="getSupplyCompanyCount" resultType="int">
+		/* TsfCommon.getSupplyCompanyCount */
+		SELECT COUNT(*) AS CNT
+		FROM   TB_SUPPLY_COMPANY SC
+		     , TB_SUPPLY_VENDOR SV
+		WHERE  SC.SUPPLY_VENDOR_CD = SV.SUPPLY_VENDOR_CD
+		AND    SC.USE_YN = 'Y'
+	</select>
+
+	<select id="getSupplyCompanyList" parameterType="SupplyCompany" resultType="SupplyCompany">
+		/* TsfCommon.getSupplyCompanyList */
+		SELECT SUPPLY_COMP_CD
+		     , SUPPLY_COMP_NM
+		     , OWNER_NM
+		     , NUMB
+		FROM (
+		      SELECT SC.SUPPLY_COMP_CD       /*공급업체코드*/
+		           , SC.SUPPLY_COMP_NM       /*공급업체명*/
+		           , SV.OWNER_NM             /*대표자명*/
+		           , ROW_NUMBER() OVER(ORDER BY SV.REG_DT DESC)   AS NUMB
+		      FROM   TB_SUPPLY_COMPANY SC
+		           , TB_SUPPLY_VENDOR SV
+		      WHERE  SC.SUPPLY_VENDOR_CD = SV.SUPPLY_VENDOR_CD
+		      AND    SC.USE_YN = 'Y'
+		) ORIGINAL
+		WHERE NUMB BETWEEN #{pageable.startRow} AND #{pageable.endRow}
+	</select>
 
 </mapper>

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

@@ -15,7 +15,7 @@
 	</sql>
 	
 	<!-- 1:1문의 생성 -->
-	<insert id="createOneToOneQna" parameterType="Counsel">
+	<insert id="createOneToOneQna" parameterType="Counsel" useGeneratedKeys="true" keyProperty="counselSq">
 		/* TsfCounsel.createOneToOneQna */
 		INSERT INTO TB_COUNSEL (
 		       COUNSEL_SQ

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

@@ -1117,7 +1117,7 @@
 	<!-- 브랜드 전체 조회 -->
 	<select id="getAllBrandList" parameterType="BrandGroup" resultType="BrandGroup">
 		/* TsfDisplay.getAllBrandList */
-		SELECT	Z.BRAND_GROUP_NO
+		SELECT	DISTINCT Z.BRAND_GROUP_NO
 		      , FN_GET_BRAND_INITIAL(Z.BRAND_GROUP_NM) AS BRAND_INITIAL
 		      , Z.BRAND_GROUP_NM
 		      , Z.DISP_NM_LANG
@@ -1190,7 +1190,14 @@
 		                  , SUB_TEXT2
 		            FROM    TB_CONTENTS
 		            WHERE   1=1
+		              <choose>
+		                  <when test="contentsLoc != null and contentsLoc =='SOM005'">
+		            AND CATE_NO = 1713
+		                  </when>
+		                  <otherwise>
 		            AND     CATE_NO = #{cateNo}
+		                  </otherwise>
+		              </choose>
 		            AND     CONTENTS_LOC = #{contentsLoc}
 		            AND     USE_YN = 'Y'
 		            AND    DISP_STDT <![CDATA[<=]]> NOW()

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

@@ -2027,7 +2027,7 @@
 		               , GS.REVIEW_REG_CNT                       /*리뷰등록건수*/
 		          FROM   TB_CATE_4SRCH C4
 		          INNER JOIN TB_CATE_GOODS CG ON C4.LEAF_CATE_NO = CG.CATE_NO
-		          INNER JOIN TB_GOODS G USE INDEX (`PRIMARY`, IX_GOODS_11) ON CG.GOODS_CD = G.GOODS_CD
+		          INNER JOIN TB_GOODS G ON CG.GOODS_CD = G.GOODS_CD
 		          INNER JOIN TB_GOODS_STOCK S ON CG.GOODS_CD = S.GOODS_CD
 		          INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
 		          INNER JOIN TB_BRAND_GROUP BG ON B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
@@ -2363,7 +2363,7 @@
 		                , GS.REVIEW_REG_CNT                       /*리뷰등록건수*/
 		            FROM   TB_CATE_4SRCH C4
 		            INNER JOIN TB_CATE_GOODS CG ON C4.LEAF_CATE_NO = CG.CATE_NO
-		            INNER JOIN TB_GOODS G USE INDEX (`PRIMARY`, IX_GOODS_11) ON CG.GOODS_CD = G.GOODS_CD
+		            INNER JOIN TB_GOODS G ON CG.GOODS_CD = G.GOODS_CD
 		            INNER JOIN TB_GOODS_STOCK S ON CG.GOODS_CD = S.GOODS_CD
 		            INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
 		            INNER JOIN TB_BRAND_GROUP BG ON B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO

+ 0 - 589
src/main/java/com/style24/persistence/mybatis/shop/TsfOrderChange.xml

@@ -759,595 +759,6 @@
 		<include refid="selectForPagingFooter"/>
 	</select>
 	
-	<!-- 마이페이지 교환 상품 옵션 정보 조회 -->
-	<select id="getExchangeGoodsOptionInfoList" parameterType="OrderChange" resultType="OrderChange">
-		/* TsfOrderChange.getExchangeGoodsOptionInfoList */
-		SELECT Z.ORD_CHG_SQ
-		     , Z.CHG_GB
-		     , Z.ORD_DTL_NO
-		     , Z.ORG_ORD_DTL_NO
-		     , Z.ORD_DTL_STAT
-		     , Z.SHIP_COMP_CD
-		     , Z.INVOICE_NO
-		     , GROUP_CONCAT(Z.ITEM_NM ORDER BY Z.ORD_DTL_ITEM_SQ SEPARATOR '!@!')       AS ITEM_NM
-		     , GROUP_CONCAT(Z.COLOR_NM ORDER BY Z.ORD_DTL_ITEM_SQ)                      AS COLOR_NM
-		     , GROUP_CONCAT(Z.OPT_CD1 ORDER BY Z.ORD_DTL_ITEM_SQ)                       AS OPT_CD1
-		     , GROUP_CONCAT(Z.OPT_CD2 ORDER BY Z.ORD_DTL_ITEM_SQ)                       AS OPT_CD2
-		  FROM (SELECT OC.ORD_CHG_SQ
-		             , OC.CHG_GB
-		             , OD.ORD_DTL_NO
-		             , OD.ORG_ORD_DTL_NO
-		             , OD.ORD_DTL_STAT
-		             , OD.SHIP_COMP_CD
-		             , OD.INVOICE_NO
-		             , IFNULL((SELECT COLOR_KNM FROM TB_COLOR WHERE COLOR_CD = IFNULL(NULLIF(ODI.OPT_CD1,'') , G1.MAIN_COLOR_CD ) AND USE_YN  = 'Y'), ODI.OPT_CD1) AS COLOR_NM
-		             , G2.GOODS_NM                      AS ITEM_NM
-		             , ODI.OPT_CD1
-		             , ODI.OPT_CD2
-		             , ODI.ORD_DTL_ITEM_SQ
-		          FROM TB_ORDER_CHANGE OC
-		         INNER JOIN TB_ORDER_CHANGE_DETAIL OCD
-		            ON OC.ORD_CHG_SQ = OCD.ORD_CHG_SQ
-		         INNER JOIN TB_ORDER_DETAIL OD
-		            ON OCD.CHG_ORD_DTL_NO = OD.ORD_DTL_NO
-		         INNER JOIN TB_ORDER_DETAIL_ITEM ODI
-		            ON OD.ORD_NO = ODI.ORD_NO
-		           AND OD.ORD_DTL_NO = ODI.ORD_DTL_NO
-		         INNER JOIN TB_GOODS G1
-		            ON OD.GOODS_CD = G1.GOODS_CD
-		         INNER JOIN TB_GOODS G2
-		            ON ODI.ITEM_CD = G2.GOODS_CD
-		         WHERE OC.ORD_CHG_SQ = #{ordChgSq}
-		           AND OCD.ORD_DTL_NO = #{ordDtlNo}
-		  ) Z
-		 GROUP BY Z.ORD_CHG_SQ, Z.CHG_GB, Z.ORD_DTL_NO, Z.ORG_ORD_DTL_NO, Z.ORD_DTL_STAT, Z.SHIP_COMP_CD, Z.INVOICE_NO
-	</select>
-	
-	<!-- 마이페이지 취소 상세 정보 조회 -->
-	<select id="getCreCancelDetailInfo" parameterType="OrderChange" resultType="OrderChange">
-		/* TsfOrderChange.getCreCancelDetailInfo */
-		SELECT GROUP_CONCAT(Z.ITEM_NM ORDER BY Z.ORD_DTL_ITEM_SQ SEPARATOR '!@!')       AS ITEM_NM
-		     , GROUP_CONCAT(Z.COLOR_NM ORDER BY Z.ORD_DTL_ITEM_SQ)                      AS COLOR_NM
-		     , GROUP_CONCAT(Z.OPT_CD1 ORDER BY Z.ORD_DTL_ITEM_SQ)                       AS OPT_CD1
-		     , GROUP_CONCAT(Z.OPT_CD2 ORDER BY Z.ORD_DTL_ITEM_SQ)                       AS OPT_CD2
-		     , Z.ORD_CHG_SQ
-		     , Z.CHG_GB
-		     , Z.CHG_QTY
-		     , Z.ORD_DT
-		     , Z.CHG_DATE
-		     , Z.CHG_TIME
-		     , Z.CHG_DT
-		     , Z.COMPLETE_DT
-		     , Z.CHG_STAT
-		     , Z.CHG_STAT_NM
-		     , Z.ORD_NO
-		     , Z.ORD_AMT
-		     , Z.ORD_QTY
-		     , Z.CNCL_RTN_QTY
-		     , Z.CNCL_RTN_AMT
-		     , Z.CPN1_DC_AMT
-		     , Z.REAL_ORD_AMT
-		     , Z.PNT_DC_AMT
-		     , Z.GFCD_USE_AMT
-		     , Z.ORD_DTL_NO
-		     , Z.GOODS_CD
-		     , Z.BRAND_NM
-		     , Z.SHOT_DELV_YN
-		     , Z.SELF_GOODS_YN
-		     , Z.GOODS_NM
-		     , Z.GOODS_TYPE
-		     , Z.PRICE_ORG
-		     , Z.PRICE_SALE
-		     , Z.ADD_PAY_COST
-		     , Z.SYS_IMG_NM
-		     , Z.GIFT_PACK_YN
-		     , Z.REFUND_AMT
-		     , Z.RF_CPN1_AMT
-		     , Z.RF_TMTB1_AMT
-		     , Z.RF_TMTB2_AMT
-		     , Z.RF_GOODS_CPN_AMT
-		     , Z.RF_CART_CPN_AMT
-		     , Z.RF_DELV_CPN_AMT
-		     , Z.RF_PNT_AMT
-		     , Z.RF_PRE_PNT_AMT
-		     , Z.RF_GFCD_USE_AMT
-		     , Z.RF_CNCL_AMT
-		     , Z.RF_DELIVERY_FEE
-		     , Z.RF_REAL_CNCL_AMT
-		     , Z.PG_TID
-		     , Z.PG_GB
-		     , Z.PAY_MEANS
-		     , Z.PAY_MEANS_NM
-		  FROM (SELECT OC.ORD_CHG_SQ
-		             , OC.CHG_GB
-		             , OCD.CHG_QTY
-		             , DATE_FORMAT(O.ORD_DT, '%Y.%m.%d')                                AS ORD_DT
-		             , DATE_FORMAT(OCDH.REG_DT, '%Y.%m.%d')                             AS CHG_DATE
-		             , DATE_FORMAT(OCDH.REG_DT,'%H:%i:%S')                              AS CHG_TIME
-		             , DATE_FORMAT(OCD.REG_DT, '%Y.%m.%d')                              AS CHG_DT
-		             , DATE_FORMAT(OCD.COMPLETE_DT, '%Y.%m.%d')                         AS COMPLETE_DT
-		             , OCD.CHG_STAT
-		             , FN_GET_CODE_NM('G685', OCD.CHG_STAT)                             AS CHG_STAT_NM
-		             , OD.ORD_NO
-		             , OD.ORD_AMT
-		             , OD.ORD_QTY
-		             , OD.CNCL_RTN_QTY
-		             , OD.CNCL_RTN_AMT
-		             , OD.CPN1_DC_AMT
-		             , OD.REAL_ORD_AMT
-		             , OD.PNT_DC_AMT
-		             , OD.GFCD_USE_AMT
-		             , OCD.ORD_DTL_NO
-		             , G1.GOODS_CD
-		             , CASE BG.DISP_NM_LANG WHEN 'EN' THEN BG.BRAND_GROUP_ENM
-		                                    ELSE BG.BRAND_GROUP_KNM
-		                END                                                             AS BRAND_NM
-		             , OD.SHOT_DELV_YN
-		             , G1.SELF_GOODS_YN
-		             , G1.GOODS_NM
-		             , IFNULL((SELECT COLOR_KNM FROM TB_COLOR WHERE COLOR_CD = IFNULL(NULLIF(ODI.OPT_CD1,'') , G1.MAIN_COLOR_CD ) AND USE_YN  = 'Y'), ODI.OPT_CD1) AS COLOR_NM
-		             , G2.GOODS_NM                                                      AS ITEM_NM
-		             , G1.GOODS_TYPE
-		             , ODI.ORD_DTL_ITEM_SQ
-		             , ODI.OPT_CD1
-		             , ODI.OPT_CD2
-		             , ROUND((ODH.ORD_AMT - ODH.CPN1_DC_AMT) * (OCD.CHG_QTY / ODH.ORD_QTY)) AS PRICE_ORG
-		             , ROUND((ODH.REAL_ORD_AMT + ODH.PNT_DC_AMT + ODH.GFCD_USE_AMT) * (OCD.CHG_QTY / OD.ORD_QTY)) AS PRICE_SALE
-		             , OC.ADD_PAY_COST
-		             , CASE WHEN G1.GOODS_TYPE != 'G056_S' AND G1.SELF_GOODS_YN = 'Y' THEN (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G1.GOODS_CD AND COLOR_CD = ODI.OPT_CD1 AND DEFAULT_IMG_YN = 'Y')
-		                    ELSE (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G1.GOODS_CD AND COLOR_CD = IFNULL(G1.MAIN_COLOR_CD,'XX') AND DEFAULT_IMG_YN = 'Y') END AS SYS_IMG_NM
-		             , OD.GIFT_PACK_YN
-		             , R.REFUND_AMT
-		             , R.RF_CPN1_AMT
-		             , R.RF_TMTB1_AMT
-		             , R.RF_TMTB2_AMT
-		             , R.RF_GOODS_CPN_AMT
-		             , R.RF_CART_CPN_AMT
-		             , R.RF_DELV_CPN_AMT
-		             , R.RF_PNT_AMT
-		             , R.RF_PRE_PNT_AMT
-		             , R.RF_GFCD_USE_AMT
-		             , R.RF_CNCL_AMT
-		             , R.RF_DELIVERY_FEE
-		             , R.RF_REAL_CNCL_AMT
-		             , P.PG_TID
-		             , P.PG_GB
-		             , P.PAY_MEANS
-		             , FN_GET_CODE_NM('G014', P.PAY_MEANS)                              AS PAY_MEANS_NM
-		          FROM TB_ORDER_CHANGE OC
-		         INNER JOIN TB_ORDER_CHANGE_DETAIL OCD
-		            ON OC.ORD_CHG_SQ = OCD.ORD_CHG_SQ
-		         INNER JOIN TB_ORDER_CHANGE_DETAIL_HST OCDH
-		            ON OCD.ORD_CHG_SQ = OCDH.ORD_CHG_SQ
-		           AND OCD.ORD_DTL_NO = OCDH.ORD_DTL_NO
-		           AND OCD.CHG_STAT = OCDH.CHG_STAT
-		         INNER JOIN TB_ORDER_DETAIL OD
-		            ON OCD.ORD_DTL_NO = OD.ORD_DTL_NO
-		           AND OD.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25')
-		         INNER JOIN TB_ORDER O
-		            ON OD.ORD_NO = O.ORD_NO
-		         INNER JOIN TB_ORDER_DETAIL_ITEM ODI
-		            ON OD.ORD_NO = ODI.ORD_NO
-		           AND OD.ORD_DTL_NO = ODI.ORD_DTL_NO
-		           AND OD.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25')
-		         INNER JOIN TB_ORDER_DETAIL_HST ODH
-		            ON OD.ORD_DTL_NO = ODH.ORD_DTL_NO
-		           AND ODH.ORD_DTL_STAT = 'G013_00'
-		         INNER JOIN TB_GOODS G1
-		            ON OD.GOODS_CD = G1.GOODS_CD
-		         INNER JOIN TB_GOODS G2
-		            ON ODI.ITEM_CD = G2.GOODS_CD
-		         INNER JOIN TB_BRAND B
-		            ON G1.BRAND_CD = B.BRAND_CD
-		           AND B.USE_YN = 'Y'
-		         INNER JOIN TB_BRAND_GROUP BG
-		            ON B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
-		           AND BG.USE_YN = 'Y'
-		          LEFT OUTER JOIN TB_REFUND R
-		            ON R.ORD_CHG_SQ = OC.ORD_CHG_SQ
-		         INNER JOIN TB_PAYMENT P
-		            ON P.ORD_NO = O.ORD_NO
-		           AND P.PAY_GB = 'O'
-		           AND P.PAY_STAT IN ('G016_10', 'G016_30')
-		         WHERE OCD.DEL_YN = 'N'
-		           AND O.DISP_YN = 'Y'
-		<choose>
-			<when test="custNo > 0">
-		           AND O.CUST_NO = #{custNo}
-			</when>
-			<otherwise>
-		           AND O.ORD_NO = #{ordNo}
-		           AND O.ORD_NM = #{ordNm}
-		           AND O.ORD_PHNNO = #{ordPhnno}
-			</otherwise>
-		</choose>
-		<if test="ordChgSq != null and ordChgSq != ''">
-		           AND OC.ORD_CHG_SQ = #{ordChgSq}
-		</if>
-		  ) Z
-		 GROUP BY Z.ORD_CHG_SQ, Z.CHG_GB, Z.CHG_QTY, Z.ORD_DT, Z.CHG_DATE, Z.CHG_TIME, Z.CHG_DT, Z.COMPLETE_DT, Z.CHG_STAT
-				, Z.CHG_STAT_NM, Z.ORD_NO, Z.ORD_AMT, Z.ORD_QTY, Z.CNCL_RTN_QTY, Z.CNCL_RTN_AMT, Z.CPN1_DC_AMT, Z.REAL_ORD_AMT, Z.PNT_DC_AMT
-				, Z.GFCD_USE_AMT, Z.ORD_DTL_NO, Z.GOODS_CD, Z.BRAND_NM, Z.SHOT_DELV_YN, Z.SELF_GOODS_YN, Z.GOODS_NM
-				, Z.GOODS_TYPE, Z.PRICE_ORG, Z.PRICE_SALE, Z.ADD_PAY_COST, Z.SYS_IMG_NM, Z.GIFT_PACK_YN, Z.REFUND_AMT, Z.RF_CPN1_AMT, Z.RF_TMTB1_AMT
-				, Z.RF_TMTB2_AMT, Z.RF_GOODS_CPN_AMT, Z.RF_CART_CPN_AMT, Z.RF_DELV_CPN_AMT, Z.RF_PNT_AMT, Z.RF_PRE_PNT_AMT, Z.RF_GFCD_USE_AMT
-				, Z.RF_CNCL_AMT, Z.RF_DELIVERY_FEE, Z.RF_REAL_CNCL_AMT, Z.PG_TID, Z.PG_GB, Z.PAY_MEANS, Z.PAY_MEANS_NM
-		 ORDER BY Z.ORD_CHG_SQ DESC
-	</select>
-
-	<!-- 마이페이지 반품 상세 정보 조회 -->
-	<select id="getCreReturnDetailInfo" parameterType="OrderChange" resultType="OrderChange">
-		/* TsfOrderChange.getCreReturnDetailInfo */
-		SELECT GROUP_CONCAT(Z.ITEM_NM ORDER BY Z.ORD_DTL_ITEM_SQ SEPARATOR '!@!')       AS ITEM_NM
-		     , GROUP_CONCAT(Z.COLOR_NM ORDER BY Z.ORD_DTL_ITEM_SQ)                      AS COLOR_NM
-		     , GROUP_CONCAT(Z.OPT_CD1 ORDER BY Z.ORD_DTL_ITEM_SQ)                       AS OPT_CD1
-		     , GROUP_CONCAT(Z.OPT_CD2 ORDER BY Z.ORD_DTL_ITEM_SQ)                       AS OPT_CD2
-		     , Z.ORD_CHG_SQ
-		     , Z.CHG_GB
-		     , Z.CHG_QTY
-		     , Z.ORD_DT
-		     , Z.CHG_DATE
-		     , Z.CHG_TIME
-		     , Z.CHG_DT
-		     , Z.COMPLETE_DT
-		     , Z.CHG_STAT
-		     , Z.CHG_STAT_NM
-		     , Z.ORD_NO
-		     , Z.ORD_AMT
-		     , Z.ORD_QTY
-		     , Z.CNCL_RTN_QTY
-		     , Z.CNCL_RTN_AMT
-		     , Z.CPN1_DC_AMT
-		     , Z.REAL_ORD_AMT
-		     , Z.PNT_DC_AMT
-		     , Z.GFCD_USE_AMT
-		     , Z.ORD_DTL_NO
-		     , Z.GOODS_CD
-		     , Z.BRAND_NM
-		     , Z.SHOT_DELV_YN
-		     , Z.SELF_GOODS_YN
-		     , Z.GOODS_NM
-		     , Z.GOODS_TYPE
-		     , Z.PRICE_ORG
-		     , Z.PRICE_SALE
-		     , Z.ADD_PAY_COST
-		     , Z.SYS_IMG_NM
-		     , Z.GIFT_PACK_YN
-		     , Z.REFUND_AMT
-		     , Z.RF_CPN1_AMT
-		     , Z.RF_TMTB1_AMT
-		     , Z.RF_TMTB2_AMT
-		     , Z.RF_GOODS_CPN_AMT
-		     , Z.RF_CART_CPN_AMT
-		     , Z.RF_DELV_CPN_AMT
-		     , Z.RF_PNT_AMT
-		     , Z.RF_PRE_PNT_AMT
-		     , Z.RF_GFCD_USE_AMT
-		     , Z.RF_CNCL_AMT
-		     , Z.RF_DELIVERY_FEE
-		     , Z.RF_REAL_CNCL_AMT
-		     , Z.PG_GB
-		     , Z.PAY_MEANS
-		     , Z.PAY_MEANS_NM
-		     , Z.WD_GB
-		     , Z.CHGER_NM
-		     , Z.CHGER_PHNNO
-		     , Z.CHGER_BASE_ADDR
-		     , Z.CHGER_DTL_ADDR
-		     , Z.CHGER_RTN_MEMO
-		     , Z.WD_INVOICE_NO
-		     , Z.SHIP_COMP_CD
-		     , Z.SHIP_COMP_NM
-		  FROM (SELECT OC.ORD_CHG_SQ
-		             , OC.CHG_GB
-		             , OCD.CHG_QTY
-		             , DATE_FORMAT(O.ORD_DT, '%Y.%m.%d')                                AS ORD_DT
-		             , DATE_FORMAT(OCDH.REG_DT, '%Y.%m.%d')                             AS CHG_DATE
-		             , DATE_FORMAT(OCDH.REG_DT,'%H:%i:%S')                              AS CHG_TIME
-		             , DATE_FORMAT(OCD.REG_DT, '%Y.%m.%d')                              AS CHG_DT
-		             , DATE_FORMAT(OCD.COMPLETE_DT, '%Y.%m.%d')                         AS COMPLETE_DT
-		             , OCD.CHG_STAT
-		             , FN_GET_CODE_NM('G685', OCD.CHG_STAT)                             AS CHG_STAT_NM
-		             , OD.ORD_NO
-		             , OD.ORD_AMT
-		             , OD.ORD_QTY
-		             , OD.CNCL_RTN_QTY
-		             , OD.CNCL_RTN_AMT
-		             , OD.CPN1_DC_AMT
-		             , OD.REAL_ORD_AMT
-		             , OD.PNT_DC_AMT
-		             , OD.GFCD_USE_AMT
-		             , OCD.ORD_DTL_NO
-		             , G1.GOODS_CD
-		             , CASE BG.DISP_NM_LANG WHEN 'EN' THEN BG.BRAND_GROUP_ENM
-		                                    ELSE BG.BRAND_GROUP_KNM
-		                END                                                             AS BRAND_NM
-		             , OD.SHOT_DELV_YN
-		             , G1.SELF_GOODS_YN
-		             , G1.GOODS_NM
-		             , IFNULL((SELECT COLOR_KNM FROM TB_COLOR WHERE COLOR_CD = IFNULL(NULLIF(ODI.OPT_CD1,'') , G1.MAIN_COLOR_CD ) AND USE_YN  = 'Y'), ODI.OPT_CD1) AS COLOR_NM
-		             , G2.GOODS_NM                                                      AS ITEM_NM
-		             , G1.GOODS_TYPE
-		             , ODI.ORD_DTL_ITEM_SQ
-		             , ODI.OPT_CD1
-		             , ODI.OPT_CD2
-		             , ((OD.ORD_AMT - OD.CNCL_RTN_AMT - OD.CPN1_DC_AMT) * (OCD.CHG_QTY / (OD.ORD_QTY - OD.CNCL_RTN_QTY))) AS PRICE_ORG
-		             , ((OD.REAL_ORD_AMT + OD.PNT_DC_AMT + OD.GFCD_USE_AMT) * (OCD.CHG_QTY / (OD.ORD_QTY - OD.CNCL_RTN_QTY))) AS PRICE_SALE
-		             , OC.ADD_PAY_COST
-		             , CASE WHEN G1.GOODS_TYPE != 'G056_S' AND G1.SELF_GOODS_YN = 'Y' THEN (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G1.GOODS_CD AND COLOR_CD = ODI.OPT_CD1 AND DEFAULT_IMG_YN = 'Y')
-		                    ELSE (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G1.GOODS_CD AND COLOR_CD = IFNULL(G1.MAIN_COLOR_CD,'XX') AND DEFAULT_IMG_YN = 'Y') END AS SYS_IMG_NM
-		             , OD.GIFT_PACK_YN
-		             , R.REFUND_AMT
-		             , R.RF_CPN1_AMT
-		             , R.RF_TMTB1_AMT
-		             , R.RF_TMTB2_AMT
-		             , R.RF_GOODS_CPN_AMT
-		             , R.RF_CART_CPN_AMT
-		             , R.RF_DELV_CPN_AMT
-		             , R.RF_PNT_AMT
-		             , R.RF_PRE_PNT_AMT
-		             , R.RF_GFCD_USE_AMT
-		             , R.RF_CNCL_AMT
-		             , R.RF_DELIVERY_FEE
-		             , R.RF_REAL_CNCL_AMT
-		             , P.PG_GB
-		             , P.PAY_MEANS
-		             , FN_GET_CODE_NM('G014', P.PAY_MEANS)                              AS PAY_MEANS_NM
-		             , OC.WD_GB
-		             , OC.CHGER_NM
-		             , OC.CHGER_PHNNO
-		             , OC.CHGER_BASE_ADDR
-		             , OC.CHGER_DTL_ADDR
-		             , OC.CHGER_RTN_MEMO
-		             , OC.WD_INVOICE_NO
-		             , OC.SHIP_COMP_CD
-		             , (SELECT SHIP_COMP_NM
-		                  FROM TB_SHIP_COMPANY SC
-		                 WHERE SC.SHIP_COMP_CD = OC.SHIP_COMP_CD)                       AS SHIP_COMP_NM
-		          FROM TB_ORDER_CHANGE OC
-		         INNER JOIN TB_ORDER_CHANGE_DETAIL OCD
-		            ON OC.ORD_CHG_SQ = OCD.ORD_CHG_SQ
-		         INNER JOIN TB_ORDER_CHANGE_DETAIL_HST OCDH
-		            ON OCD.ORD_CHG_SQ = OCDH.ORD_CHG_SQ
-		           AND OCD.ORD_DTL_NO = OCDH.ORD_DTL_NO
-		           AND OCD.CHG_STAT = OCDH.CHG_STAT
-		         INNER JOIN TB_ORDER_DETAIL OD
-		            ON OCD.ORD_DTL_NO = OD.ORD_DTL_NO
-		           AND OD.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25')
-		         INNER JOIN TB_ORDER O
-		            ON OD.ORD_NO = O.ORD_NO
-		         INNER JOIN TB_ORDER_DETAIL_ITEM ODI
-		            ON OD.ORD_NO = ODI.ORD_NO
-		           AND OD.ORD_DTL_NO = ODI.ORD_DTL_NO
-		           AND OD.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25')
-		         INNER JOIN TB_GOODS G1
-		            ON OD.GOODS_CD = G1.GOODS_CD
-		         INNER JOIN TB_GOODS G2
-		            ON ODI.ITEM_CD = G2.GOODS_CD
-		         INNER JOIN TB_BRAND B
-		            ON G1.BRAND_CD = B.BRAND_CD
-		           AND B.USE_YN = 'Y'
-		         INNER JOIN TB_BRAND_GROUP BG
-		            ON B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
-		           AND BG.USE_YN = 'Y'
-		          LEFT OUTER JOIN TB_REFUND R
-		            ON R.ORD_CHG_SQ = OC.ORD_CHG_SQ
-		         INNER JOIN TB_PAYMENT P
-		            ON P.ORD_NO = O.ORD_NO
-		           AND P.PAY_GB = 'O'
-		           AND P.PAY_STAT = 'G016_30'
-		         WHERE O.DISP_YN = 'Y'
-		<choose>
-			<when test="custNo > 0">
-			       AND O.CUST_NO = #{custNo}
-			</when>
-			<otherwise>
-			       AND O.ORD_NO = #{ordNo}
-			       AND O.ORD_NM = #{ordNm}
-		           AND O.ORD_PHNNO = #{ordPhnno}
-			</otherwise>
-		</choose>
-		<if test="ordChgSq != null and ordChgSq != ''">
-			       AND OC.ORD_CHG_SQ = #{ordChgSq}
-		</if>
-		       ) Z
-		 GROUP BY Z.ORD_CHG_SQ, Z.CHG_GB, Z.CHG_QTY, Z.ORD_DT, Z.CHG_DATE, Z.CHG_TIME, Z.CHG_DT, Z.COMPLETE_DT, Z.CHG_STAT
-		        , Z.CHG_STAT_NM, Z.ORD_NO, Z.ORD_AMT, Z.ORD_QTY, Z.CNCL_RTN_QTY, Z.CNCL_RTN_AMT, Z.CPN1_DC_AMT, Z.REAL_ORD_AMT, Z.PNT_DC_AMT
-		        , Z.GFCD_USE_AMT, Z.ORD_DTL_NO, Z.GOODS_CD, Z.BRAND_NM, Z.SHOT_DELV_YN, Z.SELF_GOODS_YN, Z.GOODS_NM
-		        , Z.GOODS_TYPE, Z.PRICE_ORG, Z.PRICE_SALE, Z.ADD_PAY_COST, Z.SYS_IMG_NM, Z.GIFT_PACK_YN, Z.REFUND_AMT, Z.RF_CPN1_AMT, Z.RF_TMTB1_AMT
-		        , Z.RF_TMTB2_AMT, Z.RF_GOODS_CPN_AMT, Z.RF_CART_CPN_AMT, Z.RF_DELV_CPN_AMT, Z.RF_PNT_AMT, Z.RF_PRE_PNT_AMT, Z.RF_GFCD_USE_AMT, Z.RF_CNCL_AMT
-		        , Z.RF_DELIVERY_FEE, Z.RF_REAL_CNCL_AMT, Z.PG_GB, Z.PAY_MEANS, Z.PAY_MEANS_NM, Z.WD_GB, Z.CHGER_NM, Z.CHGER_PHNNO, Z.CHGER_BASE_ADDR
-		        , Z.CHGER_DTL_ADDR, Z.CHGER_RTN_MEMO, Z.WD_INVOICE_NO, Z.SHIP_COMP_CD, Z.SHIP_COMP_NM
-		 ORDER BY Z.ORD_CHG_SQ DESC
-	</select>
-
-	<!-- 마이페이지 교환 상세 정보 조회 -->
-	<select id="getCreExchangeDetailInfo" parameterType="OrderChange" resultType="OrderChange">
-		/* TsfOrderChange.getCreExchangeDetailInfo */
-		SELECT GROUP_CONCAT(Z.ITEM_NM ORDER BY Z.ORD_DTL_ITEM_SQ SEPARATOR '!@!')       AS ITEM_NM
-		     , GROUP_CONCAT(Z.COLOR_NM ORDER BY Z.ORD_DTL_ITEM_SQ)                      AS COLOR_NM
-		     , GROUP_CONCAT(Z.OPT_CD1 ORDER BY Z.ORD_DTL_ITEM_SQ)                       AS OPT_CD1
-		     , GROUP_CONCAT(Z.OPT_CD2 ORDER BY Z.ORD_DTL_ITEM_SQ)                       AS OPT_CD2
-		     , Z.ORD_CHG_SQ
-		     , Z.CHG_GB
-		     , Z.CHG_QTY
-		     , Z.ORD_DT
-		     , Z.CHG_DATE
-		     , Z.CHG_TIME
-		     , Z.CHG_DT
-		     , Z.COMPLETE_DT
-		     , Z.CHG_STAT
-		     , Z.CHG_STAT_NM
-		     , Z.ORD_DTL_STAT
-		     , Z.EXCHANGE_SHIP_COMP_CD
-		     , Z.EXCHANGE_INVOICE_NO
-		     , Z.ORD_NO
-		     , Z.ORD_AMT
-		     , Z.ORD_QTY
-		     , Z.CNCL_RTN_QTY
-		     , Z.CNCL_RTN_AMT
-		     , Z.CPN1_DC_AMT
-		     , Z.REAL_ORD_AMT
-		     , Z.PNT_DC_AMT
-		     , Z.GFCD_USE_AMT
-		     , Z.ORD_DTL_NO
-		     , Z.GOODS_CD
-		     , Z.BRAND_NM
-		     , Z.SHOT_DELV_YN
-		     , Z.SELF_GOODS_YN
-		     , Z.GOODS_NM
-		     , Z.GOODS_TYPE
-		     , Z.PRICE_ORG
-		     , Z.PRICE_SALE
-		     , Z.ADD_PAY_COST
-		     , Z.SYS_IMG_NM
-		     , Z.GIFT_PACK_YN
-		     , Z.WD_GB
-		     , Z.CHGER_NM
-		     , Z.CHGER_PHNNO
-		     , Z.CHGER_BASE_ADDR
-		     , Z.CHGER_DTL_ADDR
-		     , Z.CHGER_RTN_MEMO
-		     , Z.CHG_MEMO
-		     , Z.WD_INVOICE_NO
-		     , Z.SHIP_COMP_CD
-		     , Z.SHIP_COMP_NM
-		     , Z.DELV_ADDR_SQ
-		     , Z.RECIP_NM
-		     , Z.RECIP_PHNNO
-		     , Z.RECIP_BASE_ADDR
-		     , Z.RECIP_DTL_ADDR
-		     , Z.DELV_MEMO
-		     , Z.PG_TID
-		     , Z.PAY_MEANS
-		     , Z.PAY_MEANS_NM
-		     , Z.CARD_NM
-		     , Z.CARD_MIPS
-		     , Z.CHG_ORD_DTL_STAT
-		  FROM (SELECT OC.ORD_CHG_SQ
-		             , OC.CHG_GB
-		             , OCD.CHG_QTY
-		             , DATE_FORMAT(O.ORD_DT, '%Y.%m.%d')                                AS ORD_DT
-		             , DATE_FORMAT(OCDH.REG_DT, '%Y.%m.%d')                             AS CHG_DATE
-		             , DATE_FORMAT(OCDH.REG_DT,'%H:%i:%S')                              AS CHG_TIME
-		             , DATE_FORMAT(OCD.REG_DT, '%Y.%m.%d')                              AS CHG_DT
-		             , DATE_FORMAT(OCD.COMPLETE_DT, '%Y.%m.%d')                         AS COMPLETE_DT
-		             , OCD.CHG_STAT
-		             , FN_GET_CODE_NM('G685', OCD.CHG_STAT)                             AS CHG_STAT_NM
-		             , OD2.ORD_DTL_STAT                                                 AS ORD_DTL_STAT
-		             , OD2.INVOICE_NO                                                   AS EXCHANGE_INVOICE_NO
-		             , OD2.SHIP_COMP_CD                                                 AS EXCHANGE_SHIP_COMP_CD
-		             , OD.ORD_NO
-		             , OD.ORD_AMT
-		             , OD.ORD_QTY
-		             , OD.CNCL_RTN_QTY
-		             , OD.CNCL_RTN_AMT
-		             , OD.CPN1_DC_AMT
-		             , OD.REAL_ORD_AMT
-		             , OD.PNT_DC_AMT
-		             , OD.GFCD_USE_AMT
-		             , OCD.ORD_DTL_NO
-		             , G1.GOODS_CD
-		             , CASE BG.DISP_NM_LANG WHEN 'EN' THEN BG.BRAND_GROUP_ENM
-		                                    ELSE BG.BRAND_GROUP_KNM
-		                END                                                             AS BRAND_NM
-		             , OD.SHOT_DELV_YN
-		             , G1.SELF_GOODS_YN
-		             , G1.GOODS_NM
-		             , IFNULL((SELECT COLOR_KNM FROM TB_COLOR WHERE COLOR_CD = IFNULL(NULLIF(ODI.OPT_CD1,'') , G1.MAIN_COLOR_CD ) AND USE_YN  = 'Y'), ODI.OPT_CD1) AS COLOR_NM
-		             , G2.GOODS_NM                                                      AS ITEM_NM
-		             , G1.GOODS_TYPE
-		             , ODI.ORD_DTL_ITEM_SQ
-		             , ODI.OPT_CD1
-		             , ODI.OPT_CD2
-		             , ((OD.ORD_AMT - OD.CNCL_RTN_AMT - OD.CPN1_DC_AMT) * (OCD.CHG_QTY / (OD.ORD_QTY - OD.CNCL_RTN_QTY))) AS PRICE_ORG
-		             , ((OD.REAL_ORD_AMT + OD.PNT_DC_AMT + OD.GFCD_USE_AMT) * (OCD.CHG_QTY / (OD.ORD_QTY - OD.CNCL_RTN_QTY))) AS PRICE_SALE
-		             , OC.ADD_PAY_COST
-		             , CASE WHEN G1.GOODS_TYPE != 'G056_S' AND G1.SELF_GOODS_YN = 'Y' THEN (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G1.GOODS_CD AND COLOR_CD = ODI.OPT_CD1 AND DEFAULT_IMG_YN = 'Y')
-		                    ELSE (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G1.GOODS_CD AND COLOR_CD = IFNULL(G1.MAIN_COLOR_CD,'XX') AND DEFAULT_IMG_YN = 'Y') END AS SYS_IMG_NM
-		             , OD.GIFT_PACK_YN
-		             , OC.WD_GB
-		             , OC.CHGER_NM
-		             , OC.CHGER_PHNNO
-		             , OC.CHGER_BASE_ADDR
-		             , OC.CHGER_DTL_ADDR
-		             , OC.CHGER_RTN_MEMO
-		             , OC.CHG_MEMO
-		             , OC.WD_INVOICE_NO
-		             , OC.SHIP_COMP_CD
-		             , (SELECT SHIP_COMP_NM
-		                  FROM TB_SHIP_COMPANY SC
-		                 WHERE SC.SHIP_COMP_CD = OC.SHIP_COMP_CD)                       AS SHIP_COMP_NM
-		             , DA.DELV_ADDR_SQ
-		             , DA.RECIP_NM
-		             , DA.RECIP_PHNNO
-		             , DA.RECIP_BASE_ADDR
-		             , DA.RECIP_DTL_ADDR
-		             , DA.DELV_MEMO
-		             , P.PG_TID
-		             , P.PAY_MEANS
-		             , FN_GET_CODE_NM('G014', P.PAY_MEANS)                              AS PAY_MEANS_NM
-		             , P.CARD_NM
-		             , IF(P.CARD_MIPS = 0, '일시불', CONCAT(P.CARD_MIPS, '개월'))          AS CARD_MIPS
-		             , OD2.ORD_DTL_STAT                                                 AS CHG_ORD_DTL_STAT
-		          FROM TB_ORDER_CHANGE OC
-		         INNER JOIN TB_ORDER_CHANGE_DETAIL OCD
-		            ON OC.ORD_CHG_SQ = OCD.ORD_CHG_SQ
-		         INNER JOIN TB_ORDER_CHANGE_DETAIL_HST OCDH
-		            ON OCD.ORD_CHG_SQ = OCDH.ORD_CHG_SQ
-		           AND OCD.ORD_DTL_NO = OCDH.ORD_DTL_NO
-		           AND OCD.CHG_STAT = OCDH.CHG_STAT
-		         INNER JOIN TB_ORDER_DETAIL OD
-		            ON OCD.ORD_DTL_NO = OD.ORD_DTL_NO
-		           AND OD.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25')
-		         INNER JOIN TB_ORDER_DETAIL OD2
-		            ON OCD.CHG_ORD_DTL_NO = OD2.ORD_DTL_NO
-		           AND OD2.ORD_EXCH_GB = 'E'
-		          LEFT OUTER JOIN TB_DELIVERY_ADDR DA
-		            ON OD2.DELV_ADDR_SQ = DA.DELV_ADDR_SQ
-		         INNER JOIN TB_ORDER O
-		            ON OD.ORD_NO = O.ORD_NO
-		         INNER JOIN TB_ORDER_DETAIL_ITEM ODI
-		            ON OD.ORD_NO = ODI.ORD_NO
-		           AND OD.ORD_DTL_NO = ODI.ORD_DTL_NO
-		           AND OD.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25')
-		         INNER JOIN TB_GOODS G1
-		            ON OD.GOODS_CD = G1.GOODS_CD
-		         INNER JOIN TB_GOODS G2
-		            ON ODI.ITEM_CD = G2.GOODS_CD
-		         INNER JOIN TB_BRAND B
-		            ON G1.BRAND_CD = B.BRAND_CD
-		           AND B.USE_YN = 'Y'
-		         INNER JOIN TB_BRAND_GROUP BG
-		            ON B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
-		           AND BG.USE_YN = 'Y'
-		          LEFT OUTER JOIN TB_PAYMENT P
-		            ON P.ORD_CHG_SQ = OC.ORD_CHG_SQ
-		           AND P.PAY_GB = 'D'
-		           AND P.PAY_STAT = 'G016_30'
-		         WHERE O.DISP_YN = 'Y'
-		<choose>
-			<when test="custNo > 0">
-			       AND O.CUST_NO = #{custNo}
-			</when>
-			<otherwise>
-			       AND O.ORD_NO = #{ordNo}
-			       AND O.ORD_NM = #{ordNm}
-		           AND O.ORD_PHNNO = #{ordPhnno}
-			</otherwise>
-		</choose>
-		<if test="ordChgSq != null and ordChgSq != ''">
-			       AND OC.ORD_CHG_SQ = #{ordChgSq}
-		</if>
-		       ) Z
-		 GROUP BY Z.ORD_CHG_SQ, Z.CHG_GB, Z.CHG_QTY, Z.ORD_DT, Z.CHG_DATE, Z.CHG_TIME, Z.CHG_DT, Z.COMPLETE_DT, Z.CHG_STAT
-		        , Z.CHG_STAT_NM, Z.ORD_DTL_STAT, Z.EXCHANGE_SHIP_COMP_CD, Z.EXCHANGE_INVOICE_NO, Z.ORD_NO, Z.ORD_AMT, Z.ORD_QTY, Z.CNCL_RTN_QTY, Z.CNCL_RTN_AMT
-		        , Z.CPN1_DC_AMT, Z.REAL_ORD_AMT, Z.PNT_DC_AMT, Z.GFCD_USE_AMT, Z.ORD_DTL_NO, Z.GOODS_CD, Z.BRAND_NM, Z.SHOT_DELV_YN, Z.SELF_GOODS_YN, Z.GOODS_NM
-		        , Z.GOODS_TYPE, Z.PRICE_ORG, Z.PRICE_SALE, Z.ADD_PAY_COST, Z.SYS_IMG_NM, Z.GIFT_PACK_YN, Z.WD_GB, Z.CHGER_NM, Z.CHGER_PHNNO, Z.CHGER_BASE_ADDR
-		        , Z.CHGER_DTL_ADDR, Z.CHGER_RTN_MEMO, Z.CHG_MEMO, Z.WD_INVOICE_NO, Z.SHIP_COMP_CD, Z.SHIP_COMP_NM, Z.DELV_ADDR_SQ, Z.RECIP_NM, Z.RECIP_PHNNO
-		        , Z.RECIP_BASE_ADDR, Z.RECIP_DTL_ADDR, Z.DELV_MEMO, Z.PG_TID, Z.PAY_MEANS, Z.PAY_MEANS_NM, Z.CARD_NM, Z.CARD_MIPS, Z.CHG_ORD_DTL_STAT
-		 ORDER BY Z.ORD_CHG_SQ DESC
-	</select>
-	
 	<!-- 마이페이지 회수지 수정 -->
 	<update id="updateChgerAddr" parameterType="OrderChange">
 		/* TsfOrderChange.updateChgerAddr */

+ 5 - 13
src/main/webapp/WEB-INF/views/mob/callcenter/OneToOneQnaFormMob.html

@@ -150,17 +150,9 @@
 											<div class="input_wrap">
 												<!-- 이미지첨부 -->
 												<div class="form_field">
-													<div class="imgUpload">
-														<label for="fileAdd" class="fileAdd">업로드</label>
-														<input type="file" id="fileAdd" name="file1">
-														<input type="hidden" name="file1OrgFileNm"/>
-														<input type="hidden" name="file1SysFileNm"/>
-													</div>
 													<div class="imgUpload">
 														<label for="fileAdds" class="fileAdd">업로드</label>
 														<input type="file" id="fileAdds" name="file2">
-														<input type="hidden" name="file2OrgFileNm"/>
-														<input type="hidden" name="file2SysFileNm"/>
 													</div>
 												</div>
 												<!-- //이미지첨부 -->
@@ -329,14 +321,14 @@
 					if (!gagajf.isNull(item.sysFileNm1)) {
 						tag += '		<span class="thumb_pic">\n';
 // 						tag += '			<img src="' + _uploadImageUrl + '/counsel/' + item.sysFileNm1 + '" alt="" onerror="this.src=\'/image/bg_profile.png\'">\n';
-						tag += '			<img src="' + _uploadImageUrl + '/counsel/' + item.sysFileNm1 + '" alt="">\n';
+						tag += '			<img src="' + _uploadImageUrl + '/' + item.sysFileNm1 + '" alt="">\n';
 						tag += '		</span>\n';
 					}
 					
 					if (!gagajf.isNull(item.sysFileNm2)) {
 						tag += '		<span class="thumb_pic">\n';
 // 						tag += '			<img src="' + _uploadImageUrl + '/counsel/' + item.sysFileNm2 + '" alt="" onerror="this.src=\'/image/bg_profile.png\'">\n';
-						tag += '			<img src="' + _uploadImageUrl + '/counsel/' + item.sysFileNm2 + '" alt="">\n';
+						tag += '			<img src="' + _uploadImageUrl + '/' + item.sysFileNm2 + '" alt="">\n';
 						tag += '		</span>\n';
 					}
 					
@@ -462,8 +454,8 @@
 				, file
 				, function(result) {
 					// 업로드한 파일명 설정
-					$('input[name=' + obj.name + 'OrgFileNm]').val(result.oldFileName);
-					$('input[name=' + obj.name + 'SysFileNm]').val(result.newFileName);
+					$(".pics").children().last().append("<input type='hidden' name='orgFileNmArr' value='"+result.oldFileName+"'>");
+					$(".pics").children().last().append("<input type='hidden' name='sysFileNmArr' value='"+result.newFileName+"'>");
 				}
 		);
 	}
@@ -483,7 +475,7 @@
 						, function() {
 							cfnGoToPage(_PAGE_ONETOONE_QNA);
 						}
-				);
+				); 
 			}
 		});
 	});

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

@@ -20,6 +20,9 @@
 
 	<!-- 장바구니 화면 -->
 	<form id="cartListForm" method="post" action="/order/noMember" th:with="imgGoodsUrl=${@environment.getProperty('upload.goods.view')}, uxImgUrl=${@environment.getProperty('domain.uximage')}, imgUrl=${@environment.getProperty('upload.image.view')}">
+		<input type="hidden" id="checkAbleCpnNm" value="N" />
+		<input type="hidden" id="ableCpnNm" value="" />
+
 		<div class="inner shotDelvSelect">
 			<div class="od_method">
 				<div class="tbl_tit">
@@ -178,7 +181,7 @@
 						</div>
 
 						<div class="goods_txt reserv" th:if="${!#strings.isEmpty(cart.delvResDt)}">
-							<span>예약배송 상품</span><span th:text="|${cart.delvResDt} 배송예정|"></span> 배송예정
+							<span>예약배송 상품</span><span th:text="|${cart.delvResDt} 배송예정|"></span>
 						</div>
 
 						<div class="goods_txt" th:if="${cart.ordCanYn.equals('N')}">
@@ -281,7 +284,7 @@
 						</div>
 
 						<div class="goods_txt reserv" th:if="${!#strings.isEmpty(cart.delvResDt)}">
-							<span>예약배송 상품</span><span th:text="|${cart.delvResDt} 배송예정|"></span> 배송예정
+							<span>예약배송 상품</span><span th:text="|${cart.delvResDt} 배송예정|"></span>
 						</div>
 
 						<div class="goods_txt" th:if="${cart.ordCanYn.equals('N')}">
@@ -340,7 +343,7 @@
 						<input type="hidden" name="cartSq"    th:value="${cart.cartSq}" />
 						<input type="hidden" name="orgSavePntAmt" th:value="${cart.orgSavePntAmt}" />
 
-						<button type="button" class="btn_delete"><span><em class="sr-only">상품삭제</em></span></button>
+						<button type="button" class="btn_delete" th:onclick="|deleteCart(${cart.cartSq}, 'cart')|"><span><em class="sr-only">상품삭제</em></span></button>
 						<div class="goods_detail">
 							<div class="form_field">
 								<input th:id="|od_item_${cart.cartSq}|" name="cartSqArr" type="checkbox" th:value="${cart.cartSq}"
@@ -404,7 +407,7 @@
 						</div>
 
 						<div class="goods_txt reserv" th:if="${!#strings.isEmpty(cart.delvResDt)}">
-							<span>예약배송 상품</span><span th:text="|${cart.delvResDt} 배송예정|"></span> 배송예정
+							<span>예약배송 상품</span><span th:text="|${cart.delvResDt} 배송예정|"></span>
 						</div>
 
 						<div class="goods_txt" th:if="${cart.ordCanYn.equals('N')}">
@@ -739,6 +742,7 @@
 			function serialCpnApply() {
 				let cartArr = [];
 				let currPrices = [];
+				let rdCpnNm = $("#cartListForm #serialCpnNm").val();
 
 				if(!$("#serialCpnNm").val()) {
 					mcxDialog.alert("할인코드를 입력해주세요.");
@@ -833,7 +837,12 @@
 							if(cpnInfo.downloadCnt > 0) {
 								mcxDialog.alert("성공적으로 등록되었습니다.");
 							}
+
+							$("#cartListForm #checkAbleCpnNm").val("Y");
+							$("#cartListForm #ableCpnNm").val(rdCpnNm);
 						} else {
+							$("#cartListForm #checkAbleCpnNm").val("N");
+							$("#cartListForm #ableCpnNm").val("");
 							mcxDialog.alert(result.serialCpnInfo.result);
 						}
 					}
@@ -961,6 +970,7 @@
 						$(".selfGoodsDelv").html("<span class='dlvr_fee delvFeeArea'>배송비 무료</span>");
 					} else {
 						let html = "<span class='dlvr_fee delvFeeArea'>배송비 <em>" + Number(order.wmsDelvFee).toLocaleString() + "</em> 원</span><span>STYLE24  배송</span>";
+						$(".selfGoodsDelv").parent().find(".goods_dlvr_save a").attr("href", "javascript:fnGetDelvFeeSaveGoods('WMS', '" + (order.minOrdAmt - order.compSumPrice) + "');")
 						$(".selfGoodsDelv").parent().find(".goods_dlvr_save").show();
 						$(".selfGoodsDelv").html(html);
 					}
@@ -994,6 +1004,7 @@
 								$(".delvList").find(".delv_" + delv.delvFeeCd).html("<span class='dlvr_fee delvFeeArea'>배송비 무료</span><span class='dlvr_fee'><em>" + delv.supplyCompNm + "</em> 업체직배송</span>");
 							} else {
 								let html = "<span class='dlvr_fee delvFeeArea'>배송비 <em>" + Number(delv.delvFee).toLocaleString() + "</em>원</span><span class='dlvr_shop'><em>" + delv.supplyCompNm + "</em> 업체직배송</span>";
+								$(".delvList").find(".delv_" + delv.delvFeeCd).parent().find(".goods_dlvr_save a").attr("href", "javascript:fnGetDelvFeeSaveGoods('" + delv.delvFeeCd + "','" + (delv.minOrdAmt - delv.compSumPrice) +  "');")
 								$(".delvList").find(".delv_" + delv.delvFeeCd).parent().find(".goods_dlvr_save").show();
 								$(".delvList").find(".delv_" + delv.delvFeeCd).html(html);
 							}
@@ -1014,7 +1025,13 @@
 
 				// 할인코드 쿠폰 금액 재확인
 				if($("#cartListForm #serialCpnNm").val()) {
-					serialCpnApply();
+					if($("#cartListForm #checkAbleCpnNm").val() == "Y" && $("#cartListForm #ableCpnNm").val() == $("#cartListForm #serialCpnNm").val()) {
+						serialCpnApply();
+					} else {
+						$("#cartListForm .totDcAmt").text(Number(totDcAmt).toLocaleString());
+						$("#cartListForm .sumRealPayAmt").text(Number(sumRealPayAmt).toLocaleString());
+						cancelCartCpn();
+					}
 				} else {
 					$("#cartListForm .totDcAmt").text(Number(totDcAmt).toLocaleString());
 					$("#cartListForm .sumRealPayAmt").text(Number(sumRealPayAmt).toLocaleString());

+ 3 - 0
src/main/webapp/WEB-INF/views/mob/customer/PrivacyPolicyLayerFormMob.html

@@ -32,6 +32,9 @@
 </div>
 <script th:inline="javascript">
 /*<![CDATA[*/
+	$("#partners").on('click', function() {
+		cfnSupplyComanyLayer();
+	});
 	//약관내부링크
 	$(function(){
 		$(".hook_list ul li a").on("click", function(){

+ 102 - 0
src/main/webapp/WEB-INF/views/mob/customer/SupplyCompanyLayerFormMob.html

@@ -0,0 +1,102 @@
+<!DOCTYPE html>
+<html lang="ko"
+	  xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : SupplyCompanyLayerFormMob.html
+ * @desc    : 공급업체 리스트 page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2021 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.06.09   jsshin       최초 작성
+ *******************************************************************************
+ -->
+<div class="modal-dialog" role="document">
+	<div class="modal-content">
+		<div class="modal-header">
+			<h5 class="modal-title" id="exampleFullLabel">업체 리스트</h5>
+		</div>
+		<div class="modal-body">
+			<div class="pop_cont">
+				<!-- 컨텐츠 시작 -->
+				<div class="ps ptn" >
+					<table>
+						<colgroup>
+							<col width="*">
+							<col width="30%">
+						</colgroup>
+						<thead>
+							<tr>
+								<th>업체명</th>
+								<th>대표자</th>
+							</tr>
+						</thead>
+						<tbody id="supplyCompanyList">
+						</tbody>
+					</table>
+					<div class="paging_wrap">
+						<ul class="pageNav" id="paging">
+						</ul>
+					</div>
+				</div>
+				<!-- 컨텐츠 종료 -->
+			</div>
+		</div>
+	</div>
+</div>
+<form id="supplyCompanyForm" name="supplyCompanyForm" th:action="@{/customer/supply/company/list}" th:method="post">
+	<input type="hidden" name="pageNo" value="1" />
+	<input type="hidden" name="pageSize" value="10" />
+</form>
+<script src="/ux/plugins/gaga/gaga.paging.js"></script>
+<script th:inline="javascript">
+/*<![CDATA[*/
+	var mallGb = [[${mallGb}]];
+	var fnGetSupplyCompanyList = function () {
+		gagaPaging.init('supplyCompanyForm', fnSearchCallback, 'paging', 10);
+		gagaPaging.load(1);
+	}
+
+	var fnSearchCallback = function (result) {
+		$('#supplyCompanyList').html('');
+		let html = '';
+		if (!gagajf.isNull(result) && result.supplyCompanyList.length > 0) {
+			$.each(result.supplyCompanyList, function (idx, item) {
+				html += '<tr>\n';
+				html += '    <td>\n';
+				html += item.supplyCompNm;
+				html += '    </td>\n';
+				html += '    <td>\n';
+				html += item.ownerNm;
+				html += '    </td>\n';
+				html += '</tr>\n';
+			});
+		}
+		$('#supplyCompanyList').html(html);
+
+		gagaPaging.createSinglePagination(result.paging.pageable);
+	}
+
+	$(document).ready(function() {
+		fnGetSupplyCompanyList();
+		$('#supplyCompanyPop .close-modal').on('click', function () {
+			cfnPrivacyPolicyLayer(mallGb);
+		});
+	});
+
+	//약관내부링크
+	$(function(){
+		$(".hook_list ul li a").on("click", function(){
+			var hookHeader = $(".modal-header").outerHeight() + 3000;
+			var hookHref = $(this).attr("href");
+			var hookPot = $(hookHref == "#" || hookHref == "" ? "body" : hookHref);
+			var hookPos = hookPot.offset().top - hookHeader;
+			$("html, body").animate({ scrollTop: hookPos }, 3000);
+		});
+	});
+/*]]>*/
+</script>
+</html>

+ 355 - 0
src/main/webapp/WEB-INF/views/mob/display/BrandLookbookMainFormMob.html

@@ -0,0 +1,355 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org"
+	xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+	layout:decorator="mob/common/layout/DefaultLayoutMob">
+<!--
+ *******************************************************************************
+ * @source  : LookbookMainFormMob.html
+ * @desc    : 룩북리스트 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.05.09   bin2107     최초 작성
+ *******************************************************************************
+ -->
+<body>
+
+<th:block layout:fragment="content">
+	<main role="" id="" class="container br">
+		<section class="content br_lookbook">
+			<div class="inner">
+				<p class="title"><span id="lookbookTotCnt"></span>개 룩북</p>
+				<div class="collection_wrap">
+					<div class="collection_list" id="listBox">
+					</div>
+					<p class="last_page" id="divLastPage" style="display: none;">마지막 페이지입니다.</p>
+				</div>
+				<div class="no_lb_wrap" id="divLookbookNoData" style="display: none;">
+					<p>등록된 룩북이 없습니다.</p>
+					<button type="button" class="btn" th:if="${lbInfo.lookbookGb=='BL'}" th:onclick="cfnGoToBrandMain([[${lbInfo.brandCd}]]);"><span th:text="${brandGroupInfo.brandGroupNm+' 홈으로 가기'}"></span></button>
+				</div>
+			</div>
+		</section>
+
+	</main>
+
+	<form id="lbMainForm" name="lbMainForm">
+		<input type="hidden" name="pageNo" id="pageNo" value ="1"/>
+		<input type="hidden" name="pageSize" value ="30"/>
+		<input type="hidden" name="lookbookGb" th:value="${lbInfo.lookbookGb}"/>
+		<input type="hidden" name="brandCd" th:value="${lbInfo.brandCd}">
+		<input type="hidden" name="frontYn" value="Y"/>
+		<input type="hidden" name="totalCnt" />
+	</form>
+
+<script src="/ux/plugins/gaga/gaga.infinite.scrollSession.js"></script>
+<script src="/ux/plugins/jquery/jquery.history.min.js"></script>
+
+<script th:inline="javascript">
+	/*<![CDATA[*/
+	var currUrl = document.location.href;
+
+	var lookbookGb = [[${lbInfo.lookbookGb}]];
+	if(lookbookGb != 'BL'){
+		lookbookGb = 'L';
+	}else{
+		$(".dp_util .open_categori").hide();
+		$("#filterChkArea").hide();
+	}
+	var brandCd = [[${lbInfo.brandCd}]];
+
+	var fnLookbookListSearch = function (){
+		gagaInfiniteScroll.getHistory();
+	}
+
+	var fnGetInfiniteScrollDataList = function (pageNum){
+		$("#lbMainForm input[name=pageNo]").val(pageNum+1);
+		gagajf.ajaxFormSubmit("/display/lookbook/main/list", document.lbMainForm,  gagaInfiniteScroll.jsonToHtml);
+	}
+
+	var fnDrawInfiniteScrollData = function (result){
+		let totalCnt = result.paging.totalCount;
+		$("#lookbookTotCnt").text(totalCnt);
+		$("#lbMainForm").find("input[name=totalCnt]").val(totalCnt);
+		gagaInfiniteScroll.pageStatus.totalCount = totalCnt;
+		console.log(result.dataList.length);
+
+		if (result.dataList != null && result.dataList.length > 0) {
+			$(".nodata").hide();
+			let lastPage = result.paging.pageNo;
+			let endRow = result.paging.endRow - result.paging.pageSize;
+
+			var htm = fnGetLookbookList(result);
+			gagaInfiniteScroll.draw(htm);
+		}else{
+			if($("#lbMainForm input[name=pageNo]").val()==1){
+				$("#divLookbookNoData").show();
+			}else{
+				$("#divLastPage").show();
+			}
+			gagaInfiniteScroll.draw('not');
+		}
+	}
+
+	let fnGetLookbookList = function (result){
+		var html = '';
+
+		$.each(result.dataList, function (idx, item){
+			html += '<a href="javascript:void(0);" onclick="cfnGoToLookbookDetail(\''+lookbookGb+'\','+item.lookbookSq+','+item.brandCd+')">\n';
+			html += '	<div class="collection">\n';
+			html += '		<figure>\n';
+			html += '			<img src="' + _imgUrl + item.orgTnfileNm + '" alt="">\n';
+			html += '		</figure>\n';
+			html += '		<p>'+item.title+'</p>\n';
+			html += '	</div>\n';
+			html += '</a>\n';
+		});
+		return html;
+	}
+
+	// 브랜드 리스트 가져오기
+	let fnGetBrandList = function (){
+		let actionUrl = '/display/lookbook/main/brand/list?frontYn=Y';
+		$.getJSON(actionUrl, function(result, status){
+			if(result.length > 0){
+				$('#brandArea').html('');
+				let tag = '';
+				tag += '<button type="button" data-name="" id="chkFilterBrand" class="on" onclick="fnAddBrand(\'\');"><span>전체</span></button>\n';
+				$.each(result, function(idx, item) {
+					tag += '<button type="button" id="chkFilterBrand'+idx+'" data-name="'+item.brandCd+'" onclick="fnAddBrand(\''+item.brandCd+'\');"><span>'+item.brandNm+'</span></button>\n';
+				});
+				$('#brandArea').html(tag);
+			}
+		});
+	}
+
+	// 브랜드 선택 적용
+	var fnGetBrandLookbookList = function (){
+		$("#lbMainForm input:hidden[name=multiBrandCd]").remove();
+		var tag = '';
+		var tag2 = '';
+		$('#chkBrand').html('');
+		$(".button_list button").each(function (index) {
+			if($(this).hasClass("on")){
+				if(!gagajf.isNull($(this).attr('data-name'))){
+					tag += '<input type="hidden" name="multiBrandCd" value="'+$(this).attr('data-name')+'" />';
+					$("#lbMainForm").append(tag);
+
+					var brandCd = $(this).attr("data-name");
+					var brandNm = $(this).find('span').text();
+					tag2 += '<a href="javascript:void(0);" onclick="fnDeleteBrandFilter(\''+brandCd+'\');">'+brandNm+'</a>';
+					$('#chkBrand').html(tag2);
+				}else{
+					$(this).addClass("on");
+					tag2 += '<a href="javascript:void(0);" onclick="fnDeleteBrandFilter("");">전체</a>';
+					$('#chkBrand').html(tag2);
+				}
+			}
+		});
+
+		var chkLen = $("#chkBrand").find('a').length;
+		if(chkLen < 1){
+			$('#chkBrand').html('<a href="javascript:void(0);" onclick="fnDeleteBrandFilter("");">전체</a>');
+			$(".button_list button").each(function (index) {
+				if(gagajf.isNull($(this).attr('data-name'))){
+					$(this).addClass("on");
+				}
+			});
+		}
+
+		fnLookbookInfiniteScrollInit();
+		fnLookbookListSearch();
+	}
+
+	// 브랜드 선택 초기화
+	var fnLookbookReset = function (){
+		fnLookbookInfiniteScrollInit();
+		fnLookbookListSearch();
+		//fnGetBrandLookbookList();
+	}
+
+	// 인피니티 스크롤 초기화
+	var fnLookbookInfiniteScrollInit = function (){
+		sessionStorage.removeItem(document.location.href);
+		$("#listBox").html("");
+	}
+
+	let fnGetLookbookList2 = function (lookbookGb, brandGroupNo){
+		let actionUrl = '/display/lookbook/main/list?lookbookGb='+lookbookGb;
+		if (!gagajf.isNull(brandGroupNo)) actionUrl += '&multiBrandCd=' + brandGroupNo;
+
+		$.getJSON(actionUrl , function (result, status){
+			if (status == 'success'){
+				if (result.length > 0){
+					$("#totCnt").html('<span>' + result.length.addComma() + '</span>');
+
+					if (gagajf.isNull(brandGroupNo)){
+						$('#brandArea').html('');
+						let tag = '';
+						let tag3 = '';
+						let brandArr = [];
+						tag += '<button type="button" data-name="" id="chkFilterBrand" class="on" onclick="fnAddBrand(\'\');"><span>전체</span></button>\n';
+						$.each(result, function(idx, item) {
+							if(!brandArr.includes(item.brandCd)){
+								brandArr.push(item.brandCd);
+								tag += '<button type="button" id="chkFilterBrand'+idx+'" data-name="'+item.brandCd+'" onclick="fnAddBrand(\''+item.brandCd+'\');"><span>'+item.brandNm+'</span></button>\n';
+							}
+						});
+						$('#brandArea').html(tag);
+					}else{
+						var html = '';
+						let onCnt = 0;
+						$(".button_list button").each(function (index) {
+							if($(this).hasClass("on")){
+								var brandCd = $(this).attr("data-name");
+								var brandNm = $(this).find('span').text();
+								html += '<a href="javascript:void(0);" onclick="fnDeleteBrandFilter(\''+brandCd+'\');">'+brandNm+'</a>';
+								$('#chkBrand').html(html);
+								onCnt++;
+							}
+						});
+
+						if(onCnt<1){
+							$(".button_list button").each(function (index) {
+								if(gagajf.isNull($(this).attr('data-name'))){
+									$(this).addClass("on");
+								}
+							});
+							$('#chkBrand').html('<a href="javascript:void(0);" onclick="fnReset();">전체</a>');
+						}
+					}
+
+					var tag2 = '';
+					$.each(result, function(idx, item){
+						tag2 += '<li>\n';
+						tag2 += '	<a href="javascript:void(0);" onclick="cfnGoToLookbookDetail(\''+lookbookGb+'\','+item.lookbookSq+','+item.brandCd+')">\n';
+						tag2 += '		<div class="ev_img">\n';
+						tag2 += '			<img src="' + _imgUrl + item.orgTnfileNm + '" alt="ATTENTION! 20FW HOLIDAY TBJ 주목할 홀리데이 TBJ 컬렉션">\n';
+						tag2 += '		</div>\n';
+						tag2 += '		<div class="ev_txt">\n';
+						if(lookbookGb != 'BL') {
+							tag2 += '			<p class="brand">' + item.brandNm + '</p>\n';
+						}
+						tag2 += '			<p class="tit">'+item.title+'</p>\n';
+						tag2 += '		</div>\n';
+						tag2 += '	</a>\n';
+						tag2 += '</li>\n';
+					});
+					$('#lookbookArea').html(tag2);
+					$('#divLookbookNoData').hide();
+					$('#lookbookArea').show();
+				}else{
+					$("#totCnt").html('<span>0</span>');
+					//document.getElementById("changeClass").class = "event_list no_data";
+					$('#lookbookArea').hide();
+					$('#divLookbookNoData').show();
+				}
+			}
+			//document.getElementById("brandBox").class = "btn btn_default tgl_dropdown";
+			$('.dropdown_menu').hide();
+		});
+	}
+
+	// 필터 브랜드 선택시
+	var fnAddBrand = function (obj){
+		$(".button_list button").each(function (index) {
+			if(gagajf.isNull(obj)){
+				if($(this).attr('data-name') != ''){
+					$(this).removeClass();
+				}
+			}else{
+				if($(this).attr('data-name') == ''){
+					$(this).removeClass();
+				}
+			}
+		});
+	}
+
+	// 초기화버튼
+	var fnReset = function (){
+		$('.reset').click();
+	}
+
+	// 리스트상단 필터 리스트에서 삭제 시
+	var fnDeleteBrandFilter = function (brandGroupNo){
+		$(".button_list button").each(function (index) {
+			if($(this).hasClass("on")){
+				if(brandGroupNo == $(this).attr('data-name')){
+					$(this).removeClass();
+				}
+			}
+		});
+
+		fnGetBrandLookbookList();
+	}
+
+	$(document).ready(function(){
+		// fnGetLookbookList(lookbookGb,brandCd);
+		//fnLookbookListSearch();
+		fnLookbookReset();
+
+		if(lookbookGb=='BL'){
+			$("#btnHome").attr('onclick', 'cfnGoToBrandMain('+brandCd+');');
+		}else{
+			$("#btnHome").attr('href', '/');
+			fnGetBrandList();
+		}
+
+		if(!gagajf.isNull($("#lbMainForm").find("input[name=totalCnt]").val())){
+			$("#lookbookTotCnt").text($("#lbMainForm").find("input[name=totalCnt]").val());
+		}
+
+		$(document).on('click','.sub_category .more_btn',function(){
+			$(this).toggleClass('on');
+			$('.sub_category .cate_wrap').toggleClass('on');
+			if($(this).hasClass('on')){
+				$(this).find('span').text('접기');
+			}else{
+				$(this).find('span').text('더보기');
+			}
+		});
+
+		// 210415_팝업관련 추가
+		//기간 선택 팝업
+		$(document).on("click", ".open_categori", function(){
+			$('#odDatePop').show().addClass("active");
+			$("body").css({"overflow":"hidden"});
+		});
+		//팝업_닫기
+		$('.popup_close').on("click",function(){
+			$('.popup_box').hide().removeClass('active');
+			$("body").css({"overflow":"visible"});
+		});
+		// 210415_팝업 테두리 선택 추가
+		$(document).ready(function(){
+			$(document).on('click','.popup_box .button_list button',function(){
+				//$('.popup_box .button_list button').removeClass('on');
+				$(this).toggleClass('on');
+			})
+		});
+		$(document).on('click','.popup_box .button_list button',function(){
+			$(this).parents('.popup_box').show().addClass('active');
+			//$("body").css({"overflow":"visible"});
+		});
+		$(document).on('click','.brand_floormenu .refresh',function(){
+			$('.popup_box .button_list button').removeClass('on');
+			$('#chkFilterBrand').addClass('on');
+		});
+		$(document).on('click','.popup_box .buying',function(){
+			$(this).parents('.popup_box').hide().removeClass('active');
+			$("body").css({"overflow":"visible"});
+		});
+
+	});
+
+	/*]]>*/
+</script>
+
+</th:block>
+
+</body>
+</html>

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

@@ -61,7 +61,7 @@
 				</th:block>
 
 				<th:block th:if="${contentsLoc=='002'}">
-					<div class="inner wide" th:if="${newGoodsList != null}">
+					<div class="inner wide" th:if="${newGoodsList != null and !newGoodsList.empty}">
 						<div class="new_item">
 							<h2 class="dp_subtitle" th:text="${contentsTitle}">신상품</h2>
 							<div class="swiper-container item_list">
@@ -93,7 +93,7 @@
 				</th:block>
 
 				<th:block th:if="${contentsLoc=='003'}">
-					<div class="inner" th:if="${bestGoodsList != null}">
+					<div class="inner" th:if="${bestGoodsList != null and !bestGoodsList.empty}">
 						<div class="best_item">
 							<h2 class="dp_subtitle" th:text="${contentsTitle}">베스트 상품</h2>
 							<div class="item_list">
@@ -115,6 +115,17 @@
 												<p class="itemPrice"><span class="itemPrice_original" th:if="${item.currPrice != item.listPrice}" th:text="${#numbers.formatInteger(item.listPrice,3,'COMMA')}">89,000</span>[[${#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>
+												<div class="itemcolorchip">
+													<th:block th:each="option, idx : ${item.colorArr}" th:with="colorArray=${#strings.arraySplit(idx.current,':')}">
+														<span th:if="${colorArray[1]=='#FFFFFF'}" th:style="${'background-color:'+colorArray[1]+';border:1px solid #aaa;'}" class="chip_color" th:value="${colorArray[0]}"></span>
+														<span th:if="${colorArray[1]!='#FFFFFF'}" th:style="${'background-color:'+colorArray[1]+';'}" class="chip_color" th:value="${colorArray[0]}"></span>
+													</th:block>
+												</div>
+												<p class="itemBadge">
+													<th:block th:each="option, idx : ${item.benefitArr}" th:with="iconArray=${#strings.arraySplit(idx.current,':')}" >
+														<span class="badge13" th:if="${idx.index<3}" th:value="${iconArray[0]}" th:text="${iconArray[1]}"></span>
+													</th:block>
+												</p>
 												<div class="itemComment" th:if="${not #strings.isEmpty(item.goodsTnm)}" th:text="${item.goodsTnm}">#주문 폭주 상품</div>
 											</a>
 										</div>

+ 44 - 22
src/main/webapp/WEB-INF/views/mob/display/LookbookDetailFormMob.html

@@ -315,8 +315,8 @@
 	}
 
 	$(document).ready(function(){
-		//setHtop();
-
+		setHtop();
+		more_br();
 		var spc = $('.swiper-pagination-current');
 		var spt = $('.swiper-pagination-total');
 		setInterval(function(){
@@ -356,6 +356,38 @@
 		}
 	}
 
+	// 210609_ 추가 : '더보기' 노출관련 (show/hide, 토글)
+	// 더보기 show/hide
+	function more_br(){
+		var desc_br = $('.lb_text .active').height();
+		if (desc_br < 50) {
+			$('.lb_text .active').css({"height": "auto"});
+			$('.lb_text .btn').css({"display": "none"});
+			return 0;
+		}else{
+			$('.lb_text .active').css({"height": "3.4rem"});
+			$('.lb_text .btn').css({"display": "inline-block"});
+		};
+	};
+	// 더보기 토글
+	var count = 0;
+	function view_fold(){
+		document.querySelector(".lb_text button").onclick = function () {
+			if(count === 0) {
+				$('.lb_text .active').css('height', 'auto');
+				document.querySelector(".lb_text .btn p").innerText="접기";
+				document.querySelector(".lb_text .btn span").style.background="url(/images/mo/br_arrow_up.png)";
+				count = 1;
+			} else {
+				$('.lb_text .active').css('height', '3.4rem');
+				document.querySelector(".lb_text .btn p").innerText="더보기";
+				document.querySelector(".lb_text .btn span").style.background="url(/images/mo/br_arrow_down.png)";
+				count = 0;
+			}
+		}
+	};
+	view_fold();
+
 	// 룩북 슬라이드
 	var rcmdPicimgSwiper = new Swiper('.recommendedArea .area_slider .swiper-container', {
 		loop: true,
@@ -371,7 +403,7 @@
 		//},
 		on: {
 			slideChange:function(){
-				// 05.06_ 추가 : .ioTit , .ioBtn
+				// 210506_ 추가 : .ioTit , .ioBtn
 				$('.text_cont').removeClass('active');
 				$('.ioTit').removeClass('active');
 				$('.itemsOut').removeClass('active');
@@ -380,6 +412,9 @@
 				$('.ioTit').eq(this.realIndex).addClass('active');
 				$('.itemsOut').eq(this.realIndex).addClass('active');
 				$('.ioBtn').eq(this.realIndex).addClass('active');
+				// 210609_ 추가 : '더보기' 노출관련
+				$('.text_cont').removeAttr("style");
+				more_br();
 			}
 		},
 	});
@@ -406,26 +441,13 @@
 		//},
 	});
 
-	// 더보기
-	var count = 0;
-	function view_fold(){
-		document.querySelector(".lb_text button").onclick = function () {
-			if(count === 0) {
-				//document.querySelector(".lb_text .text_cont").style.height = "auto";
-				$('.lb_text .text_cont').css('height', 'auto');
-				document.querySelector(".lb_text .btnText p").innerText="접기";
-				document.querySelector(".lb_text .btnText span").style.background="url(/images/mo/br_arrow_up.png)";
-				count = 1;
-			} else {
-				//document.querySelector(".lb_text .text_cont").style.height = "3.4rem";
-				$('.lb_text .text_cont').css('height', '3.4rem');
-				document.querySelector(".lb_text .btnText p").innerText="더보기";
-				document.querySelector(".lb_text .btnText span").style.background="url(/images/mo/br_arrow_down.png)";
-				count = 0;
-			}
-		}
+	//210527_ 추가 : #htopSub 서브헤더와 페이지 키클래스 .br을 가지고 있을 시 여백 조정.
+	if($('#htopSub').length && $('main').hasClass('br')){
+		$('section.br_lookbook').css('marginTop','5.5rem');
+	}else{
+		$('section.br_lookbook').css('marginTop','11rem');
 	}
-	view_fold();
+
 	/*]]>*/
 </script>
 

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

@@ -93,7 +93,7 @@
 
 					<th:block th:if="${contentsLoc=='003'}">
 						<!-- 3. 트렌디한 신상아이템 -->
-						<div class="inner" th:if="${mainData.goodsList != null}">
+						<div class="inner" th:if="${mainData.goodsList != null and !mainData.goodsList.empty}">
 							<div class="main_trendy">
 								<th:block th:if="${mainData.contentsTitle != null and !mainData.contentsTitle.empty}">
 									<div class="titWrap">
@@ -143,11 +143,9 @@
 						<div class="inner">
 							<div class="main_it">
 								<div class="titWrap">
-									<th:block th:each="ContentsData, ContentsStat : ${mainData.ContentsList}">
-										<a href="javascript:void(0)" th:onclick="cfnGoToPage([[${ContentsData.strVar1}]]);">
-											<h2 th:text="${contentsTitle}"></h2>
-										</a>
-									</th:block>
+									<a href="javascript:void(0)" onclick="cfnGoToPage(_PAGE_BEST_MAIN);">
+										<h2 th:text="${contentsTitle}"></h2>
+									</a>
 								</div>
 								<div class="inner_head">
 									<ul class="it_nav">
@@ -240,7 +238,7 @@
 					<th:block th:if="${contentsLoc=='006'}">
 						<!-- 6. 타임딜 : 슬라이드 -->
 						<th:block th:each="socialData, socialStat : ${mainData.socialInfo}">
-						<div class="inner bg_dark" th:if="${socialData.socialGoodsList != null}">
+						<div class="inner bg_dark" th:if="${socialData.socialGoodsList != null and !socialData.socialGoodsList.empty}">
 							<div class="main_deal">
 								<div class="titWrap">
 									<a href="javascript:void(0)" onclick="cfnGoToPage(_PAGE_SOCIAL_MAIN);">
@@ -293,7 +291,7 @@
 
 					<th:block th:if="${contentsLoc=='007'}">
 						<!-- 7. 브랜드픽 -->
-						<div class="inner" th:if="${mainData.ContentsList != null}">
+						<div class="inner" th:if="${mainData.ContentsList != null and !mainData.ContentsList.empty}">
 							<div class="main_pick" >
 								<div class="titWrap">
 									<h2 th:text="${contentsTitle}"></h2>
@@ -368,7 +366,7 @@
 
 					<th:block th:if="${contentsLoc=='008'}">
 						<!-- 8. 가로 긴 배너 슬라이드 -->
-						<div class="inner wide">
+						<div class="inner wide" th:if="${mainData.ContentsList != null and !mainData.ContentsList.empty}">
 							<div class="main_1stage">
 								<div class="swiper-container post-bnnWide">
 									<div class="swiper-wrapper">
@@ -399,7 +397,7 @@
 
 					<th:block th:if="${contentsLoc=='009'}">
 						<!-- 9. MD추천 스타일 -->
-						<div class="inner">
+						<div class="inner" th:if="${mainData.mdPickList != null and !mainData.mdPickList.empty}">
 							<div class="main_recomm">
 								<div class="titWrap">
 									<h2 th:text="${contentsTitle}">MD가 추천하는 스타일</h2>
@@ -723,7 +721,7 @@
 
 					<th:block th:if="${contentsLoc=='011'}">
 						<!-- 11. TV 슬라이드 -->
-						<div class="inner wide bg_dark" th:if="${mainData.ContentsList != null}">
+						<div class="inner wide bg_dark" th:if="${mainData.ContentsList != null and !mainData.ContentsList.empty}">
 							<div class="titWrap">
 								<h2 data-style="unusual" th:text="${mainData.contentsTitle}">STYLE24 TV</h2>
 							</div>
@@ -755,42 +753,45 @@
 		var mainLayoutList = [[${mainLayoutList}]];
 		// console.log(mainLayoutList);
 
-		var targetTime = $("#socailForm").find("input[name=targetTime]").val().toDate("YYYYMMDD");
-		if(targetTime != null && targetTime != ''){
-			/* 핫딜 countDown */
-			var endTime = new Date(targetTime); // 남은시간 지정
-			endTime = (Date.parse(endTime) / 1000);
+		if(!gagajf.isNull($("#socailForm").find("input[name=targetTime]").val())){
+			var targetTime = $("#socailForm").find("input[name=targetTime]").val().toDate("YYYYMMDD");
+			if(targetTime != null && targetTime != ''){
+				/* 핫딜 countDown */
+				var endTime = new Date(targetTime); // 남은시간 지정
+				endTime = (Date.parse(endTime) / 1000);
 
-			var countdown = document.getElementById("tiles"); // get tag element
+				var countdown = document.getElementById("tiles"); // get tag element
 
-			getCountdown();
+				getCountdown();
 
-			setInterval(function () { getCountdown(); }, 1000);
+				setInterval(function () { getCountdown(); }, 1000);
 
-			function getCountdown(){
-				// find the amount of "seconds" between now and target
-				var now = new Date();
-				now = (Date.parse(now) / 1000);
+				function getCountdown(){
+					// find the amount of "seconds" between now and target
+					var now = new Date();
+					now = (Date.parse(now) / 1000);
 
-				var timeLeft = endTime - now;
+					var timeLeft = endTime - now;
 
-				var days = Math.floor(timeLeft / 86400);
-				var hours = Math.floor((timeLeft - (days * 86400)) / 3600);
-				var minutes = Math.floor((timeLeft - (days * 86400) - (hours * 3600 )) / 60);
-				var seconds = Math.floor((timeLeft - (days * 86400) - (hours * 3600) - (minutes * 60)));
+					var days = Math.floor(timeLeft / 86400);
+					var hours = Math.floor((timeLeft - (days * 86400)) / 3600);
+					var minutes = Math.floor((timeLeft - (days * 86400) - (hours * 3600 )) / 60);
+					var seconds = Math.floor((timeLeft - (days * 86400) - (hours * 3600) - (minutes * 60)));
 
-				if (hours < '10') { hours = '0' + hours; }
-				if (minutes < '10') { minutes = '0' + minutes; }
-				if (seconds < '10') { seconds = '0' + seconds; }
+					if (hours < '10') { hours = '0' + hours; }
+					if (minutes < '10') { minutes = '0' + minutes; }
+					if (seconds < '10') { seconds = '0' + seconds; }
 
-				// format countdown string + set tag value
-				countdown.innerHTML = "<span>" + hours + "</span><span>" + minutes + "</span><span>" + seconds + "</span>";
-			}
+					// format countdown string + set tag value
+					countdown.innerHTML = "<span>" + hours + "</span><span>" + minutes + "</span><span>" + seconds + "</span>";
+				}
 
-			function pad(n) {
-				return (n < 10 ? '0' : '') + n;
+				function pad(n) {
+					return (n < 10 ? '0' : '') + n;
+				}
 			}
 		}
+
 		// 컨텐츠 호출
 		$(document).ready(function() {
 			// 몰메인 띠배너 표출

+ 14 - 3
src/main/webapp/WEB-INF/views/mob/display/OutletMainFormMob.html

@@ -32,7 +32,7 @@
 											<div class="img">
 												<img th:src="${@environment.getProperty('domain.image') + item.imgPath2}" alt="">
 											</div>
-											<div class="txtWrap">
+											<div class="txtWrap" th:classAppend="${(item.strVar7 == 'BLACK') ? '' :'w'}">
 												<p class="subject">
 													<input type="hidden" name="mainTitle" th:value="${item.strTitle1}"/>
 												</p>
@@ -55,7 +55,7 @@
 				</th:block>
 
 				<th:block th:if="${contentsLoc=='002'}">
-					<div class="inner wide" th:if="${mdPickGoodsList != null}">
+					<div class="inner wide" th:if="${mdPickGoodsList != null and !mdPickGoodsList.empty}">
 						<div class="md_item">
 							<h2 class="dp_subtitle" th:text="${contentsTitle}">MD가 추천하는 아울렛 아이템</h2>
 							<div class="swiper-container item_list">
@@ -91,7 +91,7 @@
 				</th:block>
 
 				<th:block th:if="${contentsLoc=='003'}">
-					<div class="inner" th:if="${bestGoodsList != null}">
+					<div class="inner" th:if="${bestGoodsList != null and !bestGoodsList.empty}">
 						<div class="best_item">
 							<h2 class="dp_subtitle" th:text="${contentsTitle}">베스트 상품</h2>
 							<div class="item_list">
@@ -113,6 +113,17 @@
 												<p class="itemPrice"><span class="itemPrice_original" th:if="${item.currPrice != item.listPrice}" th:text="${#numbers.formatInteger(item.listPrice,3,'COMMA')}">89,000</span>[[${#numbers.formatInteger(item.currPrice,0,'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>
+												<div class="itemcolorchip" th:if="${item.colorArr != null}">
+													<th:block th:each="option, idx : ${item.colorArr}" th:with="colorArray=${#strings.arraySplit(idx.current,':')}">
+														<span th:if="${colorArray[1]=='#FFFFFF'}" th:style="${'background-color:'+colorArray[1]+';border:1px solid #aaa;'}" class="chip_color" th:value="${colorArray[0]}"></span>
+														<span th:if="${colorArray[1]!='#FFFFFF'}" th:style="${'background-color:'+colorArray[1]+';'}" class="chip_color" th:value="${colorArray[0]}"></span>
+													</th:block>
+												</div>
+												<p class="itemBadge" th:if="${item.benefitArr != null}">
+													<th:block th:each="option, idx : ${item.benefitArr}" th:with="iconArray=${#strings.arraySplit(idx.current,':')}" >
+														<span class="badge13" th:if="${idx.index<3}" th:value="${iconArray[0]}" th:text="${iconArray[1]}"></span>
+													</th:block>
+												</p>
 												<div class="itemComment" th:text="${item.goodsTnm}">#주문 폭주 상품</div>
 											</a>
 										</div>

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

@@ -888,7 +888,7 @@
 
 		<!-- 구매하기팝업 -->
 		<div class="btPop btPopAuto pd_pop Purchase_pop" id="btPopAuto_back">
-			<a class="btn btPop_close">Close </a>
+			<a href="javascript:void(0);" class="btn btPop_close">Close </a>
 			<div class="header btPop_head btPopAuto_head">
 				구매하기팝업
 			</div>
@@ -1147,30 +1147,29 @@
 						</th:block>
 					</div>
 				</div>
+				<!-- 총 결재금액 -->
+				<div class="price_box">
+					<p class="number">
+						총&nbsp;<span id="goodsTotalQty">0</span>개
+					</p>
+					<p class="price">
+						<span>
+							<b id="goodsTotalPrice">0</b><em>원</em>
+						</span>
+					</p>
+				</div>
 			</div>
 			<div class="body btPop_foot btPopAuto_foot">
-				<!-- 총 결재금액, 하단버튼 -->
-				<div class="pay_box">
-					<div class="price_box">
-						<p class="number">
-							총&nbsp;<span id="goodsTotalQty">0</span>개
-						</p>
-						<p class="price">
-							<span>
-								<b id="goodsTotalPrice">0</b><em>원</em>
-							</span>
-						</p>
-					</div>
-					<div class="btn_box">
-						<button type="button" class="gift" onclick="fnAddCart('G');" th:if="${goodsInfo.giftPackYn == 'Y'}"><span><span>선물해보세요!</span></span></button>
-						<th:block  th:if="${goodsInfo.stockQty > 0 and goodsInfo.goodsStat == 'G008_90'}">
-							<button type="button" class="cart" id="btnGoodsWish" onclick="fnAddCart('C');"><span>쇼핑백</span></button>
-							<button type="button" class="buyNow" id="btnGoodsCart" onclick="fnAddCart('O');"><span>바로구매</span></button>
-						</th:block>
-						<th:block  th:unless="${goodsInfo.stockQty > 0 and goodsInfo.goodsStat == 'G008_90'}">
-						<button class="cantbuying" style="display:block;">SOLD OUT</button>
-						</th:block>
-					</div>
+				<!--  하단버튼 -->
+				<div class="btn_box">
+					<button type="button" class="gift" onclick="fnAddCart('G');" th:if="${goodsInfo.giftPackYn == 'Y'}"><span><span>선물해보세요!</span></span></button>
+					<th:block  th:if="${goodsInfo.stockQty > 0 and goodsInfo.goodsStat == 'G008_90'}">
+						<button type="button" class="cart" id="btnGoodsWish" onclick="fnAddCart('C');"><span>쇼핑백</span></button>
+						<button type="button" class="buyNow" id="btnGoodsCart" onclick="fnAddCart('O');"><span>바로구매</span></button>
+					</th:block>
+					<th:block  th:unless="${goodsInfo.stockQty > 0 and goodsInfo.goodsStat == 'G008_90'}">
+					<button class="cantbuying" style="display:block;">SOLD OUT</button>
+					</th:block>
 				</div>
 			</div>
 		</div>

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

@@ -517,7 +517,7 @@
 						</div>
 						<div class="category" id="size" th:if="${reviewOptionList != null and !reviewOptionList.empty}">
 							<ul class="n2">
-								<li class="active"><a href="javascript:void(0)" data="평점 전체" onclick="fnReviewSearch('O','');">전체</a></li>
+								<li class="active"><a href="javascript:void(0)" data="사이즈 전체" onclick="fnReviewSearch('O','');">전체</a></li>
 								<li th:each="reviewOption, status : ${reviewOptionList}">
 									<a href="javascript:void(0)" th:attr="data=${reviewOption.optCd}" th:onclick="fnReviewSearch('O',[[${reviewOption.optCd}]]);"><th:block th:text="${reviewOption.optCd}"></th:block></a>
 									<input type="hidden" name="selOption" th:value="${reviewOption.optCd}"/>
@@ -526,7 +526,7 @@
 						</div>
 						<div class="category" id="height" th:if="${reviewHeightList != null and !reviewHeightList.empty}">
 							<ul class="n2">
-								<li class="active"><a href="javascript:void(0)" data="평점 전체" onclick="fnReviewSearch('H','');">전체</a></li>
+								<li class="active"><a href="javascript:void(0)" data=" 전체" onclick="fnReviewSearch('H','');">전체</a></li>
 								<li th:each="reviewHeight, status : ${reviewHeightList}">
 									<a href="javascript:void(0)" th:attr="data=${reviewHeight.cdNm}" th:onclick="fnReviewSearch('H',[[${reviewHeight.cd}]]);"><th:block th:text="${reviewHeight.cdNm}"></th:block></a>
 									<input type="hidden" name="selHeight" th:value="${reviewHeight.cd}"/>
@@ -535,7 +535,7 @@
 						</div>
 						<div class="category" id="weight" th:if="${reviewWeightList != null and !reviewWeightList.empty}">
 							<ul class="n2">
-								<li class="active"><a href="javascript:void(0)" data="평점 전체" onclick="fnReviewSearch('W','');">전체</a></li>
+								<li class="active"><a href="javascript:void(0)" data="몸무게 전체" onclick="fnReviewSearch('W','');">전체</a></li>
 								<li th:each="reviewWeight, status : ${reviewWeightList}">
 									<a href="javascript:void(0)" th:attr="data=${reviewWeight.cdNm}" th:onclick="fnReviewSearch('W',[[${reviewWeight.cd}]]);"><th:block th:text="${reviewWeight.cdNm}"></th:block></a>
 									<input type="hidden" name="selWeight" th:value="${reviewWeight.cd}"/>

+ 5 - 1
src/main/webapp/WEB-INF/views/mob/planning/PlanningDetailFormMob.html

@@ -490,7 +490,7 @@ if(planCornerList.length>0 && plan.cornerNmDispYn == "Y"){
 				html += 'onClick="cfnPutWishList(this);" goodsCd=\''+item2.goodsCd+'\', ithrCd=\'\', contentsLoc=\'\', planDtlSq=\'\'>관심상품 추가</button>\n';
 				html += '						<a href="javascript:void(0);" onclick="cfnGoToGoodsDetail(\'' + item2.goodsCd + '\',\'\',\'IN12_01\')"  class="itemLink">\n';
 				html += '							<div class="itemPic">\n';
-				html += '								<img class="vLHTC pd_img" src="'+ _uploadGoodsUrl +'/'+item2.sysImgNm +'">\n';
+				html += '								<img class="vLHTC pd_img" src="'+ _uploadGoodsUrl +'/'+item2.sysImgNm +'?RS=550">\n';
 				html += '							</div>\n';
 				html += '							<p class="itemBrand">'+item2.brandGroupNm+'</p>\n';
 				html += '							<div class="itemName">'+item2.goodsNm+'</div>\n';
@@ -1018,6 +1018,10 @@ var fnCornerClick = function(obj,obj2) {
 	$('html').animate({scrollTop :  offset.top - 77}, 400);
 } 
 
+//상품평 상세 레이어 호출후 콜백에서 호출하므로 여기에 있어야함
+var fnReviewDetailLayerCollBack = function(){
+	
+}
 
 //댓글 입력 확인
 var fnTextConfirm = function() {

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

@@ -77,7 +77,7 @@
 							}
 							
 							tag += '		<div class="img">\n';
-							tag += '			<img src="' + _uploadImageUrl + item.mainImg + '" alt="">\n';
+							tag += '			<img src="' + _uploadImageUrl + item.mainImg + '?RS=689" alt="">\n';
 							tag += '		</div>\n';
 							tag += '		<div class="txtWrap">\n';
 							tag += '			<p>' + item.planNm + '</p>\n';

+ 13 - 10
src/main/webapp/WEB-INF/views/mob/planning/PlanningReplyPhotoFormMob.html

@@ -36,7 +36,7 @@
 					<div class="swiper-pagination"></div>
 				</div>
 				<div class="pop_detail">
-					<button class="pop_open_btn" onclick="togglePopOpen()"><span class="sr-only"></span>
+					<button class="pop_open_btn"><span class="sr-only"></span>
 					</button>
 					<!-- 210414_추가 : comment_wrap 태그 추가. -->
 					
@@ -58,17 +58,20 @@
 <a href="javascript:void(0);" rel="modal:close"
 	onclick="cfCloseLayer('photo_full_popup')" class="close-modal">Close</a>
 <script th:inline="javascript">
-/* 210414_추가 : swiper fraction 숫자 1자리수 일때 앞에 0 스크립트 추가 */
-var togglePopOpen = function() {
-	if ($('.pop_detail').hasClass('active')) {
-		$('.pop_detail').removeClass('active');
-	}else{
-		$('.pop_detail').addClass('active');
-	}
-	
-};
+
 /*<![CDATA[*/
 	$(document).ready( function() {
+		
+		/* 210414_추가 : swiper fraction 숫자 1자리수 일때 앞에 0 스크립트 추가 */
+	/* 	var togglePopOpen = function() {
+			if ($('.pop_detail').hasClass('active')) {
+				$('.pop_detail').removeClass('active');
+			}else{
+				$('.pop_detail').addClass('active');
+			}
+			
+		}; */
+		
 		let replyAttchSq = 0; 
 		if (!gagajf.isNull( [[${plan.attachSq}]])){
 			replyAttchSq = [[${plan.attachSq}]];

+ 2 - 2
src/main/webapp/WEB-INF/views/web/callcenter/OneToOneQnaFormWeb.html

@@ -199,13 +199,13 @@
 					
 					if (!gagajf.isNull(item.sysFileNm1)) {
 						tag += '					<span class="thumb_pic">\n';
-						tag += '						<img src="' + _uploadImageUrl + '/counsel/' + item.sysFileNm1 + '" alt="" onerror="this.src=\'/images/pc/thumb/bg_item_none.png\'">\n';
+						tag += '						<img src="' + _uploadImageUrl + '/' + item.sysFileNm1 + '" alt="" onerror="this.src=\'/images/pc/thumb/bg_item_none.png\'">\n';
 						tag += '					</span>\n';
 					}
 					
 					if (!gagajf.isNull(item.sysFileNm2)) {
 						tag += '					<span class="thumb_pic">\n';
-						tag += '						<img src="' + _uploadImageUrl + '/counsel/' + item.sysFileNm2 + '" alt="" onerror="this.src=\'/images/pc/thumb/bg_item_none.png\'">\n';
+						tag += '						<img src="' + _uploadImageUrl + '/' + item.sysFileNm2 + '" alt="" onerror="this.src=\'/images/pc/thumb/bg_item_none.png\'">\n';
 						tag += '					</span>\n';
 					}
 					

+ 6 - 6
src/main/webapp/WEB-INF/views/web/callcenter/OneToOneQnaRegisterFormWeb.html

@@ -84,14 +84,14 @@
 													<div class="imgUpload">
 														<label for="fileAdd" class="fileAdd">첫번째업로드</label>
 														<input type="file" id="fileAdd" name="file1"/>
-														<input type="hidden" name="file1OrgFileNm"/>
-														<input type="hidden" name="file1SysFileNm"/>
+														<input type="hidden" name="orgFileNmArr" id="file1OrgFileNm"/>
+														<input type="hidden" name="sysFileNmArr" id="file1SysFileNm"/>
 													</div>
 													<div class="imgUpload">
 														<label for="fileAdds" class="fileAdd">두번째업로드</label>
 														<input type="file" id="fileAdds" name="file2"/>
-														<input type="hidden" name="file2OrgFileNm"/>
-														<input type="hidden" name="file2SysFileNm"/>
+														<input type="hidden" name="orgFileNmArr" id="file2OrgFileNm"/>
+														<input type="hidden" name="sysFileNmArr" id="file2SysFileNm"/>
 													</div>
 												</div>
 												<!-- //이미지첨부 -->
@@ -185,8 +185,8 @@
 				, file
 				, function(result) {
 					// 업로드한 파일명 설정
-					$('input[name=' + obj.name + 'OrgFileNm]').val(result.oldFileName);
-					$('input[name=' + obj.name + 'SysFileNm]').val(result.newFileName);
+					$('input[id=' + obj.name + 'OrgFileNm]').val(result.oldFileName);
+					$('input[id=' + obj.name + 'SysFileNm]').val(result.newFileName);
 				}
 		);
 	}

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

@@ -16,6 +16,8 @@
 <div id="cartAjaxArea">
 	<form id="cartListForm" method="post" action="/order/noMember" th:with="imgGoodsUrl=${@environment.getProperty('upload.goods.view')}, uxImgUrl=${@environment.getProperty('domain.uximage')}, imgUrl=${@environment.getProperty('upload.image.view')}">
 		<!--<input type="hidden" name="cartCpnDcAmt" id="cartCpnDcAmt" th:value="${param.cartCpnDcAmt}" />-->
+		<input type="hidden" id="checkAbleCpnNm" value="N" />
+		<input type="hidden" id="ableCpnNm" value="" />
 
 		<!-- CONT-BODY -->
 		<div class="od_cont">
@@ -707,6 +709,7 @@
 		function serialCpnApply() {
 			let cartArr = [];
 			let currPrices = [];
+			let rdCpnNm = $("#cartListForm #serialCpnNm").val();
 
 			if(!$("#serialCpnNm").val()) {
 				mcxDialog.alert("할인코드를 입력해주세요.");
@@ -805,7 +808,12 @@
 						if(cpnInfo.downloadCnt > 0) {
 							mcxDialog.alert("성공적으로 등록되었습니다.");
 						}
+
+						$("#cartListForm #checkAbleCpnNm").val("Y");
+						$("#cartListForm #ableCpnNm").val(rdCpnNm);
 					} else {
+						$("#cartListForm #checkAbleCpnNm").val("N");
+						$("#cartListForm #ableCpnNm").val("");
 						mcxDialog.alert(result.serialCpnInfo.result);
 					}
 				}
@@ -987,7 +995,13 @@
 
 			// 할인코드 쿠폰 금액 재확인
 			if($("#cartListForm #serialCpnNm").val()) {
-				serialCpnApply();
+				if($("#cartListForm #checkAbleCpnNm").val() == "Y" && $("#cartListForm #ableCpnNm").val() == $("#cartListForm #serialCpnNm").val()) {
+					serialCpnApply();
+				} else {
+					$("#cartListForm .totDcAmt").text(Number(order.totDcAmt).toLocaleString());
+					$("#cartListForm .sumRealPayAmt").text(Number(order.sumRealPayAmt + order.totDelvFee).toLocaleString());
+					cancelCartCpn();
+				}
 			} else {
 				$("#cartListForm .totDcAmt").text(Number(order.totDcAmt).toLocaleString());
 				$("#cartListForm .sumRealPayAmt").text(Number(order.sumRealPayAmt + order.totDelvFee).toLocaleString());

+ 51 - 238
src/main/webapp/WEB-INF/views/web/customer/PrivacyPolicyFormWeb.html

@@ -35,252 +35,50 @@
 				</div>
 			</div>
 			<div class="cont_body" th:utext="${#strings.replace(#strings.replace(clause,'&amplt;','<'),'&ampgt;','>')}">
-				<!-- <p>
-                        아이스타일이십사 주식회사에서 운영하는 www.istyle24.com은 고객님의 개인정보를 소중히 여기며, 안전한 거래를 위해 관련법령의 규정을 반영하여 준수하고 있습니다.
-                    </p>                    
-                    <div class="hookGrp">
-                        <div class="hook_list">
-                            <ul>
-                                <li>
-                                    <a href="#prvc1"><span>제1조 개인정보의 수집, 이용목적</span></a>
-                                    <a href="#prvc2"><span>제2조 정의</span></a>
-                                    <a href="#prvc3"><span>제3조 약관 등의 명시와 설명 및 개정</span></a>
-                                    <a href="#prvc4"><span>제4조 서비스의 제공 및 변경</span></a>
-                                    <a href="#prvc5"><span>제5조 서비스의 중단</span></a>
-                                    <a href="#prvc6"><span>제6조 회원가입</span></a>
-                                    <a href="#prvc7"><span>제7조 회원 탈퇴 및 자격 상실 등</span></a>
-                                    <a href="#prvc8"><span>제8조 회원에 대한 통지</span></a>
-                                </li>
-                                <li>
-                                    <a href="#prvc9"><span>제9조 구매신청</span></a>
-                                    <a href="#prvc10"><span>제10조 계약의 성립</span></a>
-                                    <a href="#prvc11"><span>제 11조</span></a>
-                                    <a href="#prvc12"><span>제 12조</span></a>
-                                    <a href="#prvc13"><span>제 13조</span></a>
-                                    <a href="#prvc14"><span>제 14조</span></a>
-                                    <a href="#prvc15"><span>제 15조</span></a>
-                                    <a href="#prvc16"><span>제 16조</span></a>
-                                </li>
-                                <li>
-                                    <a href="#prvc17"><span>제 17조</a>
-                                    <a href="#prvc18"><span>제 18조</span></a>
-                                    <a href="#prvc19"><span>제 19조</span></a>
-                                    <a href="#prvc20"><span>제 20조</span></a>
-                                    <a href="#prvc21"><span>제 21조</span></a>
-                                    <a href="#prvc22"><span>제 22조</span></a>
-                                    <a href="#prvc23"><span>제 23조</span></a>
-                                    <a href="#prvc24"><span>제24조 재판권 및 준거법</span></a>
-                                </li>
-                            </ul>
-                            
-                        </div>
-                        <div class="hook_cont"> 
-                            <div id="prvc1">
-                                <h4><span>제1조 개인정보의 수집, 이용목적</span></h4>
-                                <p>
-                                    이 약관은 아이스타일이십사 주식회사가 운영하는 www.istyle24.com(이하 "몰"이라 한다)에서 제공하는 인터넷 관련 서비스 (이하 "서비스"라 한다)를 이용함에 있어 사이버 몰과 이용자의
-                                    권리, 의무 및 책임사항을 규정함을 목적으로 합니다.
-                                </p>
-                                <table>
-                                    <colgroup>
-                                        <col width="300">
-                                        <col width="*">
-                                    </colgroup>   
-                                    <thead>
-                                        <tr>
-                                            <th>구분</th>
-                                            <th>이용목적</th>
-                                        </tr>
-                                    </thead>
-                                    <tbody>
-                                        <tr>
-                                            <td rowspan="5">회원관리</td>
-                                            <td>회원제 서비스 이용에 따른 본인확인, 개인식별</td>
-                                        </tr>
-                                        <tr>
-                                            <td>불량회원의 부정이용 방지와 비인가 사용 방지, 중복가입방지</td>
-                                        </tr>
-                                        <tr>
-                                            <td></td>
-                                        </tr>
-                                        <tr>
-                                            <td></td>
-                                        </tr>
-                                        <tr>
-                                            <td></td>
-                                        </tr>
-                                        <tr>
-                                            <td rowspan="3">서비스 제공에 관한 계약의 이행 및 서비스 제공에 따른 요금정산</td>
-                                            <td>콘텐츠 제공, 이벤트 당첨 결과안내 및 경품배송</td>
-                                        </tr>
-                                        <tr>
-                                            <td>금융거래 본인 인증 및 금융 서비스</td>
-                                        </tr>
-                                        <tr>
-                                            <td>물품 배송, 구매 및 요금 결제</td>
-                                        </tr>
-                                        <tr>
-                                            <td rowspan="7">마케팅 광고에 활용</td>
-                                            <td></td>
-                                        </tr>
-                                        <tr>
-                                            <td></td>
-                                        </tr>
-                                        <tr>
-                                            <td></td>
-                                        </tr>
-                                        <tr>
-                                            <td></td>
-                                        </tr>
-                                        <tr>
-                                            <td></td>
-                                        </tr>
-                                        <tr>
-                                            <td></td>
-                                        </tr>
-                                        <tr>
-                                            <td></td>
-                                        </tr>
-                                    </tbody>
-                                </table>
-                            </div>
-                            <div id="prvc2">
-                                <h4><span>제2조 정의</span></h4>
-                                <p>1. “몰”이란 아이스타일24가 재화 또는 용역(이하 “재화 등”이라 함)을 이용자에게 제공하기 위하여 컴퓨터 등 정보통신설비를 이용하여 재화 등을 거래할 수 있도록 설정한 가상의 영업장을 말하며, 아울러 사이버몰을 운영하는 사업자의 의미로도 사용합니다.</p>
-                                <p>2. '이용자'란 "몰"에 접속하여 이 약관에 따라 "몰"이 제공하는 서비스를 받는 회원 및 비회원을 말합니다.</p>
-                                <p>3. '회원'이라 함은 "몰"에 개인정보를 제공하여 회원등록을 한 자로서, "몰"의 정보를 지속적으로 제공받으며, "몰"이 제공하는 서비스를 계속적으로 이용할 수 있는 자를 말합니다.</p>
-                                <p>4. ‘비회원’이라 함은 회원에 가입하지 않고 몰”이 제공하는 서비스를 이용하는 자를 말합니다.</p>
-                                <p>5. '아이디(ID)'란 이용자가 회원가입 당시 몰에 등록한 사용자 '개인이용문자'를 말합니다.</p>
-                                <p>6. '비밀번호'란 회원의 동일성 확인과 비밀보호를 위하여 회원 스스로가 설정하여 몰에 등록한 '개인이용문자'로 회원으로 로그인을 하기위해 아이디와 같이 사용됩니다.</p>
-                                <p>7. ‘영업일’이란 회사가 정상적으로 서비스를 제공한 날로서 토요일, 일요일 및 법정 공휴일을 제외한 날을 말합니다.</p>
-                                <p>8. ‘아이포인트’란 아이스타일24를 통하여 회원이 상품을 구매할 때, 구매금액의 일정 비율이 적립되는 ‘몰’전용 마일리지로 적립일로부터 3년이 지나면 자동 소멸 됩니다</p>
-                                <p>9. ‘아이머니’란 상품구매 시 현금과 같이 이용할 수 있는 ‘몰’ 전용 사이버머니로, 적립된 아이포인트를 일정한 단위로 환전하여 사용할 수 있습니다.</p>
-                                <p>10. 기타 ‘2조’에서 정의되지 아니한 이 약관상의 용어의 의미는 일반적인 거래관행에 의합니다.</p>
-                            </div>
-                            <div id="prvc3">
-                                <h4><span>제3조 약관 등의 명시와 설명 및 개정</span></h4>
-                                <p>1. "몰"은 이 약관의 내용과 상호 및 대표자 성명, 영업소 소재지 주소(소비자의 불만을 처리할 수 있는 곳의 주소를 포함), 전화번호, 팩스번호, 전자우편주소, 사업자등록번호,
-                                    통신판매업신고번호, 개인정보관리책임자 등을 이용자가 쉽게 알 수 있도록 www.istyle24.com의 초기 서비스화면(전면)에 게시합니다.
-                                    다만, 이용약관의 내용은 이용자가 연결화면을 통하여 볼 수 있도록 할 수 있습니다.</p>
-                                <p>2. "몰"은 이용자가 약관에 동의하기에 앞서 약관에 정하여져 있는 내용 중 청약철회 배송책임 환불조건 등과 같은 중요한 내용을 이용자가 이해할 수 있도록 별도의 연결화면 또는 팝업화면 등을
-                                    제공하여 이용자의 확인을 구하여야 합니다.</p>
-                                <p>3. "몰"은 전자상거래등에서의소비자보호에관한법률, 약관의규제에관한법률, 전자거래기본법, 전자서명법, 정보통신망이용촉진등에관한법률, 방문판매등에관한법률, 소비자보호법 등
-                                    관련법을 위배하지 않는 범위에서 이 약관을 개정할 수 있습니다.</p>
-                                <p>4. "몰"이 약관을 개정할 경우에는 적용일자 및 개정사유를 명시하여 현행약관과 함께 몰의 초기화면에 그 적용일자 7일 이전부터 적용일자 전일까지 공지합니다.
-                                    다만, 이용자에게 불리하게 약관내용을 변경하는 경우에는 최소한 30일 이상의 사전 유예기간을 두고 공지합니다. 이 경우 "몰"은 개정 전 내용과 개정 후 내용을 명확하게 비교하여 이용자가
-                                    알기 쉽도록 표시합니다.</p>
-                                <p>5. "몰"이 약관을 개정할 경우에는 그 개정 약관은 그 적용일자 이후에 체결되는 계약에만 적용되고 그 이전에 이미 체결된 계약에 대해서는 개정전의 약관조항이 그대로 적용됩니다.
-                                    다만 이미 계약을 체결한 이용자가 개정 약관 조항의 적용을 받기를 원하는 뜻을 제3조에 의한 개정약관의 공지기간내에 "몰"에 송신하여 "몰"의 동의를 받은 경우에는 개정약관 조항이
-                                    적용됩니다.</p>
-                                <p>6. 본 약관에서 정하지 아니한 사항과 이 약관의 해석에 관하여는 전자상거래등에서의 소비자보호에관한법률, 약관의규제등에관한법률, 공정거래위원회가 정하는 전자상거래등에서의
-                                    소비자보호지침 및 관계법령 또는 상관례에 따릅니다.</p>
-                            </div>
-                            <div id="prvc4">
-                                <h4><span>제4조 서비스의 제공 및 변경</span></h4>
-                                <p>1. “몰"은 다음과 같은 업무를 수행합니다.</p>
-                                <ol>
-                                    <li>① 재화 또는 용역에 대한 정보 제공 및 구매계약의 체결</li>
-                                    <li>② 구매계약이 체결된 재화 또는 용역의 배송</li>
-                                    <li>③ 기타 “몰”이 정하는 업무</li>
-                                </ol>
-                                <p>2. "몰"은 재화 또는 용역의 품절 또는 기술적 사양의 변경 등의 경우에는 장차 체결되는 계약에 의해 제공할 재화 또는 용역의 내용을 변경할 수 있습니다. 이 경우에는 변경된 재화 또는 용역의
-                                    내용 및 제공일자를 명시하여 현재의 재화 또는 용역의 내용을 게시한 곳에 즉시 공지합니다.단, "몰"이 합리적으로 예측할 수 없는 불가피한 여건이나 사정이 있는 경우, 위 공지를 하지 않을 수
-                                    있습니다.
-                                    </p>
-                                <p>3. "몰"이 제공하기로 이용자와 계약을 체결한 서비스의 내용을 재화등의 품절 또는 기술적 사양의 변경 등의 사유로 변경할 경우에는 그 사유를 이용자에게 통지 합니다.</p>
-                                <p>4. 전항의 경우 "몰"은 이로 인하여 이용자가 입은 손해를 배상합니다. 다만, "몰"이 고의 또는 과실이 없음을 입증하는 경우에는 그러하지 아니합니다.</p>
-                            </div>
-                            <div id="prvc5">
-                                <h4><span>제5조 서비스의 중단</span></h4>
-                                <p>1. "몰"은 컴퓨터 등 정보통신설비의 보수점검·교체 및 고장, 통신의 두절 등의 사유가 발생한 경우에는 서비스의 제공을 일시적으로 중단할 수 있습니다.</p>
-                                <p>2. "몰"은 제1항의 사유로 서비스의 제공이 일시적으로 중단됨으로 인하여 이용자 또는 제3자가 입은 손해에 대하여 배상합니다.단, "몰"에 고의 또는 과실이 없는 경우에는 그러하지
-                                    아니합니다.</p>
-                                <p>3. "사업종목의 전환, 사업의 포기, 업체간의 통합 등의 이유로 서비스를 제공할 수 없게 되는 경우에는 "몰"은 제8조에 정한 방법으로 이용자에게 통지하고 당초 "몰"에서 제시한 조건에 따라
-                                    소비자에게 보상합니다.</p>
-                                <p>4. 다만, "몰"이 보상기준 등을 고지하지 아니한 경우에는 이용자들의 적립금 등을 "몰"에서 통용되는 통화가치에 상응하는 현물 또는 현금으로 이용자에게 지급합니다.</p>
-                            </div>
-                            <div>
-                                <h4  id="prvc6"><span>제6조 회원가입</span></h4>
-                                <p>1. 이용자는 "몰"이 정한 가입 양식에 따라 회원정보를 기입한 후 이 약관에 동의한다는 의사표시를 함으로서 회원가입을 신청합니다.</p>
-                                <p>2. "몰"은 제1항과 같이 회원으로 가입할 것을 신청한 이용자 중 다음 각호에 해당하지 않는 한 회원으로 등록합니다.</p>
-                                <ol>
-                                    <li>① 가입신청자가 이 약관 제7조 제3항에 의하여 이전에 회원자격을 상실한 적이 있는 경우, 다만 제7조 제3항에 의한 회원자격 상실후 3년이 경과한 자로서 "몰"의 회원 재가입 승낙을 얻은
-                                        경우에는 예외로 한다.</li>
-                                    <li>② 등록 내용에 허위, 기재누락, 오기가 있는 경우</li>
-                                    <li>③ 만 14세가 되지 않은 자가 신청하였을 경우</li>
-                                    <li>④기타 회원으로 등록하는 것이 "몰"의 기술상 현저히 지장이 있다고 판단되는 경우</li>
-                                </ol>
-                                <p>3. 회원가입계약의 성립시기는 "몰"의 승낙이 회원에게 도달한 시점으로 합니다.</p>
-                                <p>4. 가입신청자가 "몰"에 회원으로 가입하더라도 로그인하지 않은 상태에서 주문하는 경우는 회원주문이 아니라 비회원주문으로 인정합니다.</p>
-                                <p>5. 회원은 제15조 제1항에 의한 등록사항에 변경이 있는 경우, 즉시 전자우편 기타 방법으로 "몰"에 대하여 그 변경사항을 알려야 합니다.이러한 변경사항의 미 통보로 인해 발생하는 손해는
-                                    회원에게 그 책임이 있습니다.</p>
-                            </div>
-                            <div id="prvc7">
-                                <h4><span>제7조 회원 탈퇴 및 자격 상실 등</span></h4>
-                                <p>1. 회원은 "몰"에 언제든지 탈퇴를 요청할 수 있으며 "몰"은 즉시 회원탈퇴를 처리합니다.</p>
-                                <p>2. 회원이 다음 각호의 사유에 해당하는 경우, "몰"은 회원자격을 제한 및 정지시킬 수 있습니다.</p>
-                                <p>3. "몰"이 회원 자격을 제한 정지 시킨 후, 동일한 행위가 2회 이상 반복되거나 30일 이내에 그 사유가 시정되지 아니하는 경우 "몰"은 회원자격을 상실시킬 수 있습니다.</p>
-                                <p>4. "몰"이 회원자격을 상실시키는 경우에는 회원등록을 말소합니다. 이 경우 회원에게 이를 통지하고, 회원등록 말소 전에 최소한 30일 이상의 기간을 정하여 소명할 기회를 부여합니다.</p>
-                            </div>
-                            <div id="prvc8">
-                                <h4><span>제8조 회원에 대한 통지</span></h4>
-                                <p>1. "몰"이 회원에 대한 통지를 하는 경우, 회원이 "몰"에 제출하여 지정한 전자우편 주소로 할 수 있습니다.</p>
-                                <p>2. "몰"은 불특정다수 회원에 대한 통지의 경우 1주일이상 "몰" 게시판에 게시함으로서 개별 통지에 갈음할 수 있습니다.
-                                    다만, 회원 본인의 거래와 관련하여 중대한 영향을 미치는 사항에 대하여는 개별통지를 합니다.</p>
-                            </div>
-                            <div id="prvc9">
-                                <h4><span>제9조 구매신청</span></h4>
-                                <p>"몰"이용자는 "몰"상에서 다음 또는 이와 유사한 방법에 의하여 구매를 신청하며, "몰"은 이용자가 구매신청을 함에 있어서 다음의 각 내용을 알기 쉽게 제공하여야 합니다.
-                                    단, 회원인 경우 제2호 내지 제4호의 적용을 제외할 수 있습니다.</p>
-                                <p>1. 재화 등의 검색 및 선택</p>
-                                <p>2. 성명, 주소, 전화번호, 전자우편주소(또는 이동전화번호) 등의 입력</p>
-                                <p>3. 약관내용, 청약철회권이 제한되는 서비스, 배송료 설치비 등의 비용부담과 관련한 내용에 대한 확인</p>
-                                <p>4. 이 약관에 동의하고 위 3.호의 사항을 확인하거나 거부하는 표시(예, 마우스 클릭)</p>
-                                <p>5. 재화 등의 구매신청 및 이에 관한 확인 또는 "몰"의 확인에 대한 동의</p>
-                                <p>6. 결제방법의 선택</p>
-                            </div>
-                            <div id="prvc10">
-                                <h4><span>제10조 계약의 성립</span></h4>
-                                <p>1."몰"은 제9조와 같은 구매신청에 대하여 다음 각호에 해당하면 승낙하지 않을 수 있습니다. 다만, 미성년자와 계약을 체결하는 경우에는 법정대리인의 동의를 얻지 못하면 미성년자 본인 또는
-                                    법정대리인이 계약을 취소할 수 있다는 내용을 고지하여야 합니다.</p>
-                                    <ol>
-                                        <li>① 신청 내용에 허위, 기재누락, 오기가 있는 경우</li>
-                                        <li>② 미성년자가 담배, 주류 등 청소년보호법에서 금지하는 재화 및 용역을 구매하는 경우</li>
-                                        <li>③ 기타 구매신청에 승낙하는 것이 "몰" 기술상 현저히 지장이 있다고 판단하는 경우</li>
-                                    </ol>
-                                <p>2. "몰"의 승낙이 제12조 제1항의 수신확인통지형태로 이용자에게 도달한 시점에 계약이 성립한 것으로 봅니다.</p>
-                                <p>3. "몰"의 승낙의 의사표시에는 이용자의 구매 신청에 대한 확인 및 판매가능 여부, 구매신청의 정정 취소 등에 관한 정보 등을 포함하여야 합니다.</p>
-                                <p>4. 이 약관에 동의하고 위 3.호의 사항을 확인하거나 거부하는 표시(예, 마우스 클릭)</p>
-                                <p>5. 재화 등의 구매신청 및 이에 관한 확인 또는 "몰"의 확인에 대한 동의</p>
-                            </div>
-                            <div id="prvc24">
-                                <h4><span>제24조 재판권 및 준거법</span></h4>
-                                <p>1."몰"과 이용자간에 발생한 전자상거래 분쟁에 관한 소송은 제소 당시의 이용자의 주소에 의하고, 주소가 없는 경우에는 거소를 관할하는 지방법원의 전속관할로 합니다.
-                                    다만, 제소 당시 이용자의 주소 또는 거소가 분명하지 않거나 외국 거주자의 경우에는 민사소송법상의 관할법원에 제기합니다.</p>
-                                <p>2. "몰"과 이용자간에 제기된 전자상거래 소송에는 한국법을 적용합니다.</p>
-                            </div>
-                            <div id="prvc">
-                                <h4><span></span></h4>
-                                <p></p>
-                                <p></p>
-                                <p></p>
-                                <p></p>
-                                <p></p>
-                            </div>
-                            
-                            <div>
-                                <p>부칙 : 본 약관은 2016년 01월 04일부터 시행하며, 종전의 약관내용은 본 약관으로 대체합니다.</p>
-                            </div>
 
-                        </div>
-                    </div> -->
 			</div>
+			<div class="cont_foot">
+				<div id="prvc_sel">
+					<form class="form_wrap">
+						<div class="form_field">
+							<div class="select_custom prvs_detail">
+								<div class="combo">
+									<div class="select">개인정보 처리방침 v1.0</div>
+									<ul class="list" style="display: none;">
+										<th:block th:if="${clauseList}" th:each="oneData, status : ${clauseList}">
+											<li th:text="${oneData.clauseTitle}" th:onclick="fnGetCaluseInfo([[${oneData.clauseSq}]]);"></li>
+										</th:block>
+									</ul>
+								</div>
+							</div>
+						</div>
+					</form>
+				</div>
+			</div>
+
 		</div>
 	</div>
 </div>
 
 <script th:inline="javascript">
 /*<![CDATA[*/
+
+	$(document).ready(function() {
+		$(document).on("click","#partners",function(event){
+			cfnSupplyComanyLayer();
+		});
+	});
+
+	var fnGetCaluseInfo = function (clauseSq) {
+		$.get('/customer/clause/info/' + clauseSq
+			, function (data) {
+			if(!gagajf.isNull(data.clauseContent)) {
+				$('.cont_body').html(data.clauseContent);
+				$("html, body").animate({scrollTop : $("#container").offset().top},100)
+			}
+		});
+	};
+
 	// 약관 내부 링크
 	$(function() {
 		$(".hook_list ul li a").on("click", function() {
@@ -290,6 +88,21 @@
 			var hookPos = hookPot.offset().top - hookHeader;
 			$("html, body").animate({ scrollTop: hookPos }, 300);
 		});
+
+		$(window).scroll(function(){
+			var scroll = $(this).scrollTop();
+			var headerH = $(".header").height();
+			if ($(window).scrollTop() > headerH){
+				$(".header").addClass("minify");
+				return false;
+			}
+			else {
+				$(".header").removeClass("minify");
+				return false;
+			}
+		});
+
+		var prvc_select = new sCombo('.select_custom.prvs_detail');
 	});
 /*]]>*/
 </script>

+ 101 - 0
src/main/webapp/WEB-INF/views/web/customer/SupplyCompanyLayerFormWeb.html

@@ -0,0 +1,101 @@
+<!DOCTYPE html>
+<html lang="ko"
+	  xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : SupplyCompanyLayerFormWeb.html
+ * @desc    : 공급업체 리스트 page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2021 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.06.09   jsshin       최초 작성
+ *******************************************************************************
+ -->
+<div class="modal-dialog" role="document">
+	<div class="modal-content">
+		<div class="modal-header">
+			<h5 class="modal-title" id="psptnLabel">업체 리스트</h5>
+		</div>
+		<div class="modal-body">
+			<div class="pop_cont">
+				<!-- 컨텐츠 시작 -->
+				<div class="ps ptn" >
+					<table>
+						<colgroup>
+							<col width="*">
+							<col width="30%">
+						</colgroup>
+						<thead>
+							<tr>
+								<th>업체명</th>
+								<th>대표자</th>
+							</tr>
+						</thead>
+						<tbody id="supplyCompanyList">
+						</tbody>
+					</table>
+					<div class="paging_wrap">
+						<ul class="pageNav" id="paging">
+						</ul>
+					</div>
+				</div>
+				<!-- 컨텐츠 종료 -->
+			</div>
+		</div>
+		<div class="modal-footer">
+			<a href="#close-modal" rel="modal:close" className="close-modal" class="btn btn_default">닫기</a>
+		</div>
+	</div>
+</div>
+<form id="supplyCompanyForm" name="supplyCompanyForm" th:action="@{/customer/supply/company/list}" th:method="post">
+	<input type="hidden" name="pageNo" value="1" />
+	<input type="hidden" name="pageSize" value="5" />
+</form>
+<script src="/ux/plugins/gaga/gaga.paging.js"></script>
+<script th:inline="javascript">
+/*<![CDATA[*/
+	var fnGetSupplyCompanyList = function () {
+		gagaPaging.init('supplyCompanyForm', fnSearchCallback, 'paging', 10);
+		gagaPaging.load(1);
+	}
+
+	var fnSearchCallback = function (result) {
+		$('#supplyCompanyList').html('');
+		let html = '';
+		if (!gagajf.isNull(result) && result.supplyCompanyList.length > 0) {
+			$.each(result.supplyCompanyList, function (idx, item) {
+				html += '<tr>\n';
+				html += '    <td>\n';
+				html += item.supplyCompNm;
+				html += '    </td>\n';
+				html += '    <td>\n';
+				html += item.ownerNm;
+				html += '    </td>\n';
+				html += '</tr>\n';
+			});
+		}
+		$('#supplyCompanyList').html(html);
+
+		gagaPaging.createPagination(result.paging.pageable);
+	}
+
+	$(document).ready(function() {
+		fnGetSupplyCompanyList();
+	});
+
+	//약관내부링크
+	$(function(){
+		$(".hook_list ul li a").on("click", function(){
+			var hookHeader = $(".modal-header").outerHeight() + 3000;
+			var hookHref = $(this).attr("href");
+			var hookPot = $(hookHref == "#" || hookHref == "" ? "body" : hookHref);
+			var hookPos = hookPot.offset().top - hookHeader;
+			$("html, body").animate({ scrollTop: hookPos }, 3000);
+		});
+	});
+/*]]>*/
+</script>
+</html>

+ 241 - 0
src/main/webapp/WEB-INF/views/web/display/BrandLookbookMainFormWeb.html

@@ -0,0 +1,241 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org"
+	xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+	layout:decorator="web/common/layout/BrandLayoutWeb">
+<!--
+ *******************************************************************************
+ * @source  : LookbookMainFormWeb.html
+ * @desc    : 룩북메인 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.03.30   bin2107     최초 작성
+ *******************************************************************************
+ -->
+<body>
+
+<th:block layout:fragment="content">
+	<div id="container" class="container dp">
+		<div class="breadcrumb">
+			<ul>
+				<li class="bread_home"><a href="javascript:void(0);" id="navHome">홈</a></li>
+				<li class="bread_home" id="brandLi" th:if="${lbInfo.lookbookGb=='BL'}" th:text="${brandGroupInfo.brandGroupNm}"></li>
+				<li class="bread_2depth">룩북</li>
+			</ul>
+		</div>
+		<div class="wrap">
+			<div class="content">
+				<div class="cont_head">
+					<div>
+						<h3>룩북</h3>
+					</div>
+					</dziv>
+					<div class="cont_body">
+						<div class="event_list" id="changeClass">
+							<div class="event_top">
+								<div class="ui_row">
+									<div class="count">
+										<span id="lookbookTotCnt"></span>개의 이벤트
+									</div>
+									<div class="ui_col_12">
+										<div class="btn_group">
+											<!-- <div class="btn_group open"> -->
+											<a href="javascript:void(0);" data-toggle="dropdown" class="btn btn_default tgl_dropdown" aria-expanded="true" id="brandBox">브랜드 선택<span class="caret"></span></a>
+											<div class="dropdown_menu">
+												<ul id="brandArea">
+
+												</ul>
+												<div class="ui_row">
+													<button type="button" class="fillter_reset" onclick="fnLookbookReset();"><span>초기화</span></button>
+													<button type="button" class="fillter_apply" onclick="fnGetBrandLookbookList();"><span>적용</span></button>
+												</div>
+											</div>
+										</div>
+									</div>
+								</div>
+							</div>
+
+							<div class="list">
+								<section id="infiniteContainer">
+									<div id="listBoxOuter">
+										<ul class="clear event_con" id="listBox"> <!--id="lookbookArea"-->
+
+										</ul>
+									</div>
+								</section>
+								<div class="last_page" id="divLastPage" style="display: none;">
+									<span>마지막 페이지입니다.</span>
+								</div>
+							</div>
+
+							<div class="nodata" id="divLookbookNoData" style="display: none;">
+								<div class="txt_box">
+									<p>
+										등록된 룩북이 없습니다.
+									</p>
+								</div>
+								<div class="btn_box">
+									<button class="btn btn_default" th:unless="${lbInfo.lookbookGb=='BL'}" onclick="cfnGoToPage(_PAGE_MAIN);"><span>메인으로 가기</span></button>
+									<button class="btn btn_default" th:if="${lbInfo.lookbookGb=='BL'}" th:onclick="cfnGoToBrandMain([[${lbInfo.brandCd}]]);"><span th:text="${brandGroupInfo.brandGroupNm+' 홈으로 가기'}"><em>TBJ</em>&nbsp;메인으로 가기 </span></button>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>
+		</div>
+
+		<form id="lbMainForm" name="lbMainForm">
+			<input type="hidden" name="pageNo" id="pageNo" value ="1"/>
+			<input type="hidden" name="pageSize" value ="30"/>
+			<input type="hidden" name="lookbookGb" th:value="${lbInfo.lookbookGb}"/>
+			<input type="hidden" name="brandCd" th:value="${lbInfo.brandCd}">
+			<input type="hidden" name="frontYn" value="Y"/>
+			<input type="hidden" name="totalCnt" />
+		</form>
+
+<script src="/ux/plugins/gaga/gaga.infinite.scrollSession.js"></script>
+<script src="/ux/plugins/jquery/jquery.history.min.js"></script>
+
+<script th:inline="javascript">
+/*<![CDATA[*/
+	var lookbookGb = [[${lbInfo.lookbookGb}]];
+	if(lookbookGb != 'BL'){
+		lookbookGb = 'L';
+	}
+	var brandCd = [[${lbInfo.brandCd}]];
+
+	var fnLookbookListSearch = function (){
+		gagaInfiniteScroll.getHistory();
+	}
+
+	var fnGetInfiniteScrollDataList = function (pageNum){
+		$("#lbMainForm input[name=pageNo]").val(pageNum+1);
+		gagajf.ajaxFormSubmit("/display/lookbook/main/list", document.lbMainForm,  gagaInfiniteScroll.jsonToHtml);
+	}
+
+	var fnDrawInfiniteScrollData = function (result){
+		let totalCnt = result.paging.totalCount;
+		$("#lookbookTotCnt").text(totalCnt);
+		$("#lbMainForm").find("input[name=totalCnt]").val(totalCnt);
+		gagaInfiniteScroll.pageStatus.totalCount = totalCnt;
+
+		if (result.dataList != null && result.dataList.length > 0) {
+			$(".nodata").hide();
+			let lastPage = result.paging.pageNo;
+			let endRow = result.paging.endRow - result.paging.pageSize;
+
+			var htm = fnGetLookbookList(result);
+			gagaInfiniteScroll.draw(htm);
+		}else{
+			if($("#lbMainForm input[name=pageNo]").val()==1){
+				$("#divLookbookNoData").show();
+			}else{
+				$("#divLastPage").show();
+			}
+			gagaInfiniteScroll.draw('not');
+		}
+	}
+
+	let fnGetLookbookList = function (result){
+		var html = '';
+
+		$.each(result.dataList, function (idx, item){
+			html += '<li>';
+			html += '	<a href="javascript:void(0);" onclick="cfnGoToLookbookDetail(\''+lookbookGb+'\','+item.lookbookSq+','+item.brandCd+')">';
+			html += '		<div class="ev_img">';
+			html += '			<img src="' + _imgUrl + item.orgTnfileNm + '" alt="" style="height:100%">';
+			html += '		</div>';
+			html += '		<div class="txt">';
+			if(lookbookGb != 'BL') {
+				html += '			<span class="brand">' + item.brandNm + '</span>';
+			}
+			html += '			<p class="tit">'+item.title+'</p>';
+			html += '		</div>';
+			html += '	</a>';
+			html += '</li>';
+		});
+		return html;
+	}
+
+	// 브랜드 리스트 가져오기
+	let fnGetBrandList = function (){
+		let actionUrl = '/display/lookbook/main/brand/list?frontYn=Y';
+		$.getJSON(actionUrl, function(result, status){
+			if(result.length > 0){
+				$('#brandArea').html('');
+				let tag = '';
+				$.each(result, function(idx, item) {
+					tag += '<li>';
+					tag += '	<label class="brand_btn">';
+					tag += '		<input type="checkbox" group="filterValue" id="chkFilterBrand'+idx+'" data-name="chkFilterBrand'+idx+'" name="filterBrandCds" value="'+item.brandCd+'"><span>'+item.brandNm+'</span>';
+					tag += '	</label>';
+					tag += '</li>';
+				});
+				$('#brandArea').html(tag);
+			}
+		});
+	}
+
+	// 브랜드 선택 적용
+	var fnGetBrandLookbookList = function (){
+		$("#lbMainForm input:hidden[name=multiBrandCd]").remove();
+		var tag = '';
+		$("input:checkbox:checked").each(function (index) {
+			tag += '<input type="hidden" name="multiBrandCd" value="'+$(this).val()+'" />';
+			$("#lbMainForm").append(tag);
+		});
+
+		fnLookbookInfiniteScrollInit();
+		fnLookbookListSearch();
+	}
+
+	// 브랜드 선택 초기화
+	var fnLookbookReset = function (){
+		$("#lbMainForm input:hidden[name=multiBrandCd]").remove();
+
+		$("#brandArea").find('input[name=filterBrandCds]').each(function(idx, item){
+			$(this).prop("checked",false);
+		});
+
+		fnLookbookInfiniteScrollInit();
+		fnLookbookListSearch();
+	}
+
+	// 인피니티 스크롤 초기화
+	var fnLookbookInfiniteScrollInit = function (){
+		sessionStorage.removeItem(document.location.href);
+		$("#listBox").html("");
+	}
+
+	$(document).ready(function() {
+		//$("#container .wrap .content .cont_body .event_list .event_top .ui_row .count").find('span').text(totalCnt.addComma());
+		//fnGetLookbookList(lookbookGb,brandCd);
+		//fnLookbookListSearch();
+		fnLookbookReset();
+
+		if(lookbookGb=='BL'){
+			$("#brandBox").hide();
+			$("#navHome").attr('onclick', 'cfnGoToBrandMain('+brandCd+');');
+			$(".br_header").css('background-color','#fff');
+		}else{
+			$("#navHome").attr('href', '/');
+			fnGetBrandList();
+		}
+
+		if(!gagajf.isNull($("#lbMainForm").find("input[name=totalCnt]").val())){
+			$("#lookbookTotCnt").text($("#lbMainForm").find("input[name=totalCnt]").val());
+		}
+	});
+
+/*]]>*/
+</script>
+
+</th:block>
+
+</body>
+</html>

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

@@ -25,7 +25,7 @@
 <!--			<th:block th:if="${brandMainLayoutData.ContentsList != null and !brandMainLayoutData.ContentsList.empty}">-->
 				<th:block th:if="${contentsLoc=='004'}">
 					<!-- 1. 비주얼 슬라이드 -->
-					<div class="content wide main_visual brand_visual" th:if="${brandMainLayoutData.ContentsList != null}">
+					<div class="content wide main_visual brand_visual" th:if="${brandMainLayoutData.ContentsList != null and !brandMainLayoutData.ContentsList.empty}">
 						<div class="cont_head dpnone">
 							<p class="t_c">비주얼 슬라이드</p>
 						</div>

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

@@ -70,7 +70,7 @@
 			<th:block th:if="${contentsLoc=='004'}">
 				<div class="content wide dp_category">
 					<div class="cont_head">
-						<h4>카테고리 바로가기</h4>
+						<h4 th:text="${contentsTitle!=null and contentsTitle!=''}?${contentsTitle}:'카테고리 바로가기'"></h4>
 					</div>
 					<div class="cont_body">
 						<div class="dp_cate_list">
@@ -81,7 +81,7 @@
 
 			<th:block th:if="${contentsLoc=='002'}">
 				<!-- 신상품 -->
-				<div class="content new_item" th:if="${newGoodsList != null}">
+				<div class="content new_item" th:if="${newGoodsList != null and !newGoodsList.empty}">
 					<div class="cont_head">
 						<h4 th:text="${contentsTitle}">신상품</h4>
 					</div>
@@ -118,9 +118,11 @@
 				<!-- //신상품 -->
 			</th:block>
 			<th:block th:if="${contentsLoc=='003'}">
-				<div class="content dp_best_list" th:if="${bestGoodsList != null}">
+				<div class="content dp_best_list" th:if="${bestGoodsList != null and !bestGoodsList.empty}">
 					<div class="cont_head">
-						<h3 class="displayH" th:text="${contentsTitle}">베스트</h3>
+						<div>
+						<h4 th:text="${contentsTitle}">베스트</h4>
+						</div>
 					</div>
 					<div class="cont_body">
 						<div class="list_content">

+ 9 - 2
src/main/webapp/WEB-INF/views/web/display/LookbookDetailFormWeb.html

@@ -56,10 +56,11 @@
 				</div>
 			</div>
 
-			<div class="content br_lookbook_view cont_txts" th:if="${lookbookDetailList != null}">
+			<div class="content br_lookbook_view cont_txts" id="lbImgDesc" th:if="${lookbookDetailList != null}">
 				<div class="cont_body">
 					<th:block th:each="item, stat : ${lookbookDetailList}">
-						<div class="text_cont" th:text="${item.imgDesc}">
+						<div class="text_cont">
+							<input type="hidden" name="title" th:value="${item.imgDesc}">
 						</div>
 					</th:block>
 				</div>
@@ -395,6 +396,12 @@
 		}
 	});
 
+	$('#lbImgDesc .text_cont').each(function (){
+		var brText = $(this).find("input[name=title]").val();
+		let tag = brText.replace(/(?:\r\n|\r|\n)/g, '<br>');
+		$(this).append(tag);
+	});
+
 /*]]>*/
 </script>
 

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

@@ -107,7 +107,7 @@
 
 				<!-- 3. 트렌디한 신상아이템 -->
 				<th:block th:if="${contentsLoc=='003'}">
-					<div class="content main_trendy" th:if="${mainLayoutData.goodsList != null}">
+					<div class="content main_trendy" th:if="${mainLayoutData.goodsList != null and !mainLayoutData.goodsList.empty}">
 						<div class="cont_head">
 							<p class="displayH t_c" th:text="${mainLayoutData.contentsTitle}"></p>
 						</div>
@@ -147,14 +147,12 @@
 
 				<!-- 4. 잇 아이템 -->
 				<th:block th:if="${contentsLoc=='004'}">
-					<div class="content main_it" th:if="${mainLayoutData.BestItemList != null}">
+					<div class="content main_it" th:if="${mainLayoutData.BestItemList != null and !mainLayoutData.BestItemList.empty}">
 						<div class="cont_head">
 							<p class="displayH" id="id004">
 								<input type="hidden" name="title" th:value="${mainLayoutData.contentsTitle}">
 							</p>
-							<th:block th:each="ContentsData, ContentsStat : ${mainLayoutData.ContentsList}">
-								<a href="javascript:void(0);" th:onclick="cfnGoToPage([[${ContentsData.strVar1}]]);"><span>전체보기</span></a>
-							</th:block>
+							<a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_BEST_MAIN);"><span>전체보기</span></a>
 						</div>
 						<div class="cont_body">
 							<div class="it_nav">
@@ -205,7 +203,7 @@
 
 				<!-- 5. 프로모션배너 -->
 				<th:block th:if="${contentsLoc=='005'}">
-					<div class="content main_2stage" th:if="${mainLayoutData.ContentsList != null}">
+					<div class="content main_2stage" th:if="${mainLayoutData.ContentsList != null and !mainLayoutData.ContentsList.empty}">
 						<div class="cont_head dpnone">
 							<p class="t_c">프로모션배너</p>
 						</div>
@@ -240,7 +238,7 @@
 				<!-- 6. 타임딜 : 슬라이드 -->
 				<th:block th:if="${contentsLoc=='006'}">
 					<th:block th:each="socialData, socialStat : ${mainLayoutData.socialInfo}">
-					<div class="content wide main_deal" th:if="${socialData.socialGoodsList != null}">
+					<div class="content wide main_deal" th:if="${socialData.socialGoodsList != null and !socialData.socialGoodsList.empty}">
 						<div class="cont_head">
 							<p class="displayH" id="id006">
 								<input type="hidden" name="title" th:value="${mainLayoutData.contentsTitle}">
@@ -271,54 +269,56 @@
 							<script>
 								/* 핫딜 countDown */
 								// var target_date = new Date().getTime() + (1000*3600*8); // set the countdown date
-								var target_date = $("#socailForm").find("input[name=targetTime]").val().toDate("YYYYMMDD");
-								var days, hours, minutes, seconds; // variables for time units
+								if(!gagajf.isNull($("#socailForm").find("input[name=targetTime]").val())){
+									var target_date = $("#socailForm").find("input[name=targetTime]").val().toDate("YYYYMMDD");
+									var days, hours, minutes, seconds; // variables for time units
 
-								var countdown = document.getElementById("tiles"); // get tag element
+									var countdown = document.getElementById("tiles"); // get tag element
 
-								getCountdown();
+									getCountdown();
 
-								var timerStop = setInterval(function () { getCountdown(); }, 1000);
+									var timerStop = setInterval(function () { getCountdown(); }, 1000);
 
-								var fixDate = new Date().getTime();
-								var fixTarget = (target_date - fixDate) / 1000;
-								var width = (86400-fixTarget)*100/86400;
+									var fixDate = new Date().getTime();
+									var fixTarget = (target_date - fixDate) / 1000;
+									var width = (86400-fixTarget)*100/86400;
 
-								function getCountdown(){
+									function getCountdown(){
 
-									// find the amount of "seconds" between now and target
-									var current_date = new Date().getTime();
-									var seconds_left = (target_date - current_date) / 1000;
+										// find the amount of "seconds" between now and target
+										var current_date = new Date().getTime();
+										var seconds_left = (target_date - current_date) / 1000;
 
-									seconds_left = seconds_left % 86400;
+										seconds_left = seconds_left % 86400;
 
-									hours = pad( parseInt(seconds_left / 3600) );
-									seconds_left = seconds_left % 3600;
+										hours = pad( parseInt(seconds_left / 3600) );
+										seconds_left = seconds_left % 3600;
 
-									minutes = pad( parseInt(seconds_left / 60) );
-									seconds = pad( parseInt( seconds_left % 60 ) );
+										minutes = pad( parseInt(seconds_left / 60) );
+										seconds = pad( parseInt( seconds_left % 60 ) );
 
-									// format countdown string + set tag value
-									countdown.innerHTML = "<span>" + hours + "</span><span>" + minutes + "</span><span>" + seconds + "</span>";
+										// format countdown string + set tag value
+										countdown.innerHTML = "<span>" + hours + "</span><span>" + minutes + "</span><span>" + seconds + "</span>";
 
-									var elem = document.getElementById("barCurrent");
-									function progressMove(){
-										width += (100-width)/fixTarget;
-										elem.style.width = width + "%";
-									}
-									progressMove();
+										var elem = document.getElementById("barCurrent");
+										function progressMove(){
+											width += (100-width)/fixTarget;
+											elem.style.width = width + "%";
+										}
+										progressMove();
 
-									if(seconds_left < 1){
-										clearInterval(timerStop);
-										elem.style.width = "100%";
-									}
+										if(seconds_left < 1){
+											clearInterval(timerStop);
+											elem.style.width = "100%";
+										}
 
-								}
+									}
 
-								function pad(n) {
-									return (n < 10 ? '0' : '') + n;
+									function pad(n) {
+										return (n < 10 ? '0' : '') + n;
+									}
+									/* countDown */
 								}
-								/* countDown */
 
 							</script>
 						</div>
@@ -362,7 +362,7 @@
 
 				<!-- 7. 브랜드픽 -->
 				<th:block th:if="${contentsLoc=='007'}">
-					<div class="content main_pick">
+					<div class="content main_pick" th:if="${mainLayoutData.ContentsList != null and !mainLayoutData.ContentsList.empty}">
 						<div class="cont_head">
 							<p class="displayH t_c" th:text="${mainLayoutData.contentsTitle}">브랜드 PICK1</p>
 						</div>
@@ -441,7 +441,7 @@
 				<!-- 8. 가로 긴 배너 슬라이드 -->
 				<!-- bnn_1stage -->
 				<th:block th:if="${contentsLoc=='008'}">
-					<div class="content wide main_1stage">
+					<div class="content wide main_1stage" th:if="${mainLayoutData.ContentsList != null and !mainLayoutData.ContentsList.empty}">
 						<div class="cont_head dpnone">
 							<p class="t_c">배너 슬라이드</p>
 						</div>
@@ -479,7 +479,7 @@
 
 				<!-- 9. MD추천 스타일 -->
 				<th:block th:if="${contentsLoc=='009'}">
-					<div class="content main_recomm" >
+					<div class="content main_recomm" th:if="${mainLayoutData.mdPickList != null and !mainLayoutData.mdPickList.empty}">
 						<div class="cont_head">
 							<p class="displayH t_c" th:text="${mainLayoutData.contentsTitle}"></p>
 						</div>
@@ -541,7 +541,7 @@
 
 				<!-- 11. TV 슬라이드 -->
 				<th:block th:if="${contentsLoc=='011'}">
-					<div class="content wide main_tv" th:if="${mainLayoutData.ContentsList != null}">
+					<div class="content wide main_tv" th:if="${mainLayoutData.ContentsList != null and !mainLayoutData.ContentsList.empty}">
 						<div class="cont_head">
 							<p class="displayH t_c" th:text="${mainLayoutData.contentsTitle}"></p>
 						</div>

+ 36 - 33
src/main/webapp/WEB-INF/views/web/display/OutletMainFormWeb.html

@@ -85,7 +85,7 @@
 
 			<!-- MD 추천 아이템 -->
 			<th:block th:if="${contentsLoc=='002'}">
-			<div class="content md_item" th:if="${mdPickGoodsList != null}">
+			<div class="content md_item" th:if="${mdPickGoodsList != null and !mdPickGoodsList.empty}">
 				<div class="cont_head">
 					<h4 th:text="${contentsTitle}">MD가 추천하는 아울렛 아이템</h4>
 				</div>
@@ -126,7 +126,7 @@
 			<!-- //MD 추천 아이템 -->
 			<!-- 베스트 상품 리스트 -->
 			<th:block th:if="${contentsLoc=='003'}">
-			<div class="content dp_best_list" th:if="${bestGoodsList != null}">
+			<div class="content dp_best_list" th:if="${bestGoodsList != null and !bestGoodsList.empty}">
 				<div class="cont_head">
 					<div>
 						<h4 th:text="${contentsTitle}">베스트</h4>
@@ -182,40 +182,43 @@
 /*<![CDATA[*/
 	$(document).ready(function() {
 		fnSetCategory1Depts();
-	});
 
-	/* SLIDE - 상단 스크롤 슬라이드 배너 */
-	var submain_slide = new Swiper('.dp_submain .swiper-container', {
-		slidesPerView: 4,
-		spaceBetween: 20,
-		freeMode:true,
-		scrollbar: {
-			el: '.dp_submain .swiper-scrollbar',
-			hide: false,
-		},
-	});
+		/* SLIDE - 상단 스크롤 슬라이드 배너 */
+		var submain_slide = new Swiper('.dp_submain .swiper-container', {
+			slidesPerView: 4,
+			spaceBetween: 20,
+			freeMode:true,
+			scrollbar: {
+				el: '.dp_submain .swiper-scrollbar',
+				hide: false,
+			},
+		});
 
-	/* SLIDE - MD ITEMS */
-	var dp_submain_mditem = new Swiper('.dp .md_item .swiper-container', {
-		slidesPerView: 5,
-		spaceBetween: 20,
-		watchSlidesProgress: true,
-		watchSlidesVisibility: true,
-		allowTouchMove: false,
-		speed : 1000,
-		autoplay: {
-			delay: 3000,
-			disableOnInteraction:false,
-		},
-		navigation: {
-			nextEl: '.dp .md_item .swiper-button-next',
-			prevEl: '.dp .md_item .swiper-button-prev',
-		},
-		pagination: {
-			el: '.dp .md_item .swiper-pagination',
-			clickable: true,
-		},
+		/* SLIDE - MD ITEMS */
+		var dp_submain_mditem = new Swiper('.dp .md_item .swiper-container', {
+			slidesPerView: 5,
+			slidesPerGroup: 5,
+			spaceBetween: 20,
+			loop: true,
+			watchSlidesProgress: true,
+			watchSlidesVisibility: true,
+			allowTouchMove: false,
+			speed : 1000,
+			// autoplay: {
+			//     delay: 3000,
+			//     disableOnInteraction:false,
+			// },
+			navigation: {
+				nextEl: '.dp .md_item .swiper-button-next',
+				prevEl: '.dp .md_item .swiper-button-prev',
+			},
+			pagination: {
+				el: '.dp .md_item .swiper-pagination',
+				clickable: true,
+			},
+		});
 	});
+
 // 카테고리1Depts 설정
 	var fnSetCategory1Depts = function() {
 		let allCate = [[${allCateList}]];

+ 10 - 6
src/main/webapp/WEB-INF/views/web/planning/PlanningDetailFormWeb.html

@@ -62,7 +62,7 @@
 							</div>
 						</div>
 					</div>
-				<div class="cont_body" th:if="${fsrcInfoTop != null}" th:utext="${#strings.replace(#strings.replace(fsrcInfoTop.fsrcPc,'&amplt;','<'),'&ampgt;','>')}">
+				<div class="coner_item01" th:if="${fsrcInfoTop != null}" th:utext="${#strings.replace(#strings.replace(fsrcInfoTop.fsrcPc,'&amplt;','<'),'&ampgt;','>')}">
                     <!-- 프로모션배너 type1 --> 
                     <!-- <div class="promotion_visual type1" th:if="${fsrcInfoTop != null and planInfo.planGb == 'P'}" th:utext="${#strings.replace(#strings.replace(fsrcInfoTop.fsrcPc,'&amplt;','<'),'&ampgt;','>')}"></div> -->
                     <!-- <div class="promotion_visual type2" th:if="${fsrcInfoTop != null}" th:utext="${#strings.replace(#strings.replace(fsrcInfoTop.fsrcPc,'&amplt;','<'),'&ampgt;','>')}"></div> -->           
@@ -337,7 +337,7 @@ if(planCornerList.length>0 && plan.cornerNmDispYn == "Y"){
 				
 				html += '                         <a href="javascript:void(0);" onclick="cfnGoToGoodsDetail(\'' + item2.goodsCd + '\',\'\',\'IN12_01\')" class="itemLink">\n';
 				html += '                             <div class="itemPic">\n';
-				html += '                                 <img alt="BLUE-a" class=" vLHTC pd_img" src="'+ _uploadGoodsUrl +'/'+item2.sysImgNm +'">\n';
+				html += '                                 <img alt="BLUE-a" class=" vLHTC pd_img" src="'+ _uploadGoodsUrl +'/'+item2.sysImgNm +'?RS=550">\n';
 				html += '                             </div>\n';
 				html += '                             <p class="itemBrand">'+item2.brandGroupNm+'</p>\n';
 				html += '                             <div class="itemName">'+item2.goodsNm+'</div>\n';
@@ -416,16 +416,16 @@ if(template.length>0){
 			html += '			<div class="best_review">\n';
 			if(item.reviewSysImg!= null){
 				if (item.bestYn == 'Y') {
-					html += '				<a href="javascript:void();" id="btn_pdBestReview_pop" onclick="cfGoodsReviewDetail(\''+item.goodsCd+'\',\'Y\', \'Y\',\''+item.reviewSq+'\');">\n';
+					html += '				<a href="javascript:void();" id="btn_pdBestReview_pop" onclick="cfGoodsReviewDetail(\''+item.goodsCd+'\',\'Y\', \'Y\',\''+item.reviewSq+'\',1);">\n';
 				}else{
-					html += '				<a href="javascript:void();" id="btn_pdBestReview_pop" onclick="cfGoodsReviewDetail(\''+item.goodsCd+'\',\'N\', \'Y\',\''+item.reviewSq+'\');">\n';
+					html += '				<a href="javascript:void();" id="btn_pdBestReview_pop" onclick="cfGoodsReviewDetail(\''+item.goodsCd+'\',\'N\', \'Y\',\''+item.reviewSq+'\',1);">\n';
 				}
 				
 			}else{
 				if (item.bestYn == 'Y') {
-					html += '				<a href="javascript:void();" id="btn_pdBestReview_pop" onclick="cfGoodsReviewDetail(\''+item.goodsCd+'\',\'Y\', \'N\',\''+item.reviewSq+'\');">\n';
+					html += '				<a href="javascript:void();" id="btn_pdBestReview_pop" onclick="cfGoodsReviewDetail(\''+item.goodsCd+'\',\'Y\', \'N\',\''+item.reviewSq+'\',1);">\n';
 				}else{
-					html += '				<a href="javascript:void();" id="btn_pdBestReview_pop" onclick="cfGoodsReviewDetail(\''+item.goodsCd+'\',\'N\', \'N\',\''+item.reviewSq+'\');">\n';
+					html += '				<a href="javascript:void();" id="btn_pdBestReview_pop" onclick="cfGoodsReviewDetail(\''+item.goodsCd+'\',\'N\', \'N\',\''+item.reviewSq+'\',1);">\n';
 				}
 				
 			}
@@ -1098,6 +1098,10 @@ var contactPopSwiper = new Swiper('.thumb_img_pop .swiper-container', {
 	observeParents: true,
 });				
 
+//상품평 상세 레이어 호출후 콜백에서 호출하므로 여기에 있어야함
+var fnReviewDetailLayerCollBack = function(){
+	
+}
 
 $(document).ready( function() {
 	ajaxReplyList();

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

@@ -937,6 +937,8 @@ section.main.scr, section.ev_list.scr, section.dp_exhibition.scr, section.dp_loo
 footer{background-color: #f1f1f1;}
 footer .btn_top{position: fixed; bottom: 9%; right: 2.0rem; opacity: 0; background-color: rgba(0, 0, 0, 0.4); width: 4.1rem; height: 4.0rem; font-size: 0; z-index: 500; background:url(/images/mo/mo_btn_top.png) no-repeat;}
 footer .btn_top span{display: block;width: 2.4rem;height: 2.4rem;margin: 0 auto;position: relative;opacity: 1;color: #222222;font-size: 1.1rem;font-weight: 600;line-height: 3.4rem;letter-spacing: -0.025em;}
+footer .btn_back{position: fixed; bottom: 9%; left: 2.0rem; opacity: 0; background-color: rgba(0, 0, 0, 0.4); width: 4.1rem; height: 4.0rem; font-size: 0; z-index: 500; background:url(/images/mo/mo_btn_back.png) no-repeat; bottom: calc(env(safe-area-inset-bottom) + 6.5rem);}
+footer .btn_back span{display: block;width: 2.4rem;height: 2.4rem;margin: 0 0.6rem;position: relative;opacity: 1;color: #222222;font-size: 1.1rem;font-weight: 600;line-height: 3.4rem;letter-spacing: -0.025em;}
 footer .f1{background-color: #f1f1f1;padding: 0 0 4.5rem; position: relative;}
 footer .f1 .inner{padding: 0 2.0rem 2.0rem;}
 footer .f1 .link{padding-top: 20px;}

+ 83 - 83
src/main/webapp/ux/mo/css/layout_m.css

@@ -464,13 +464,10 @@
 .pd .pd_detail .Purchase_pop .item_prod .itemPrice_original{margin-left:0.5rem;}
 .pd .pd_detail .Purchase_pop .select_custom.on .combo .select{border-bottom:1px solid #dcdcdc;}
 .pd .pd_detail .Purchase_pop .select_custom .combo .list>li{padding:1.2rem 4.2rem 1.2rem 1.2rem; line-height:2rem; word-wrap: break-word;}
-.pd .pd_detail .Purchase_pop .select_custom .combo .list>li[data-soldout="true"]::after{top:1rem}
-
+.pd .pd_detail .Purchase_pop .select_custom .combo .list>li[data-soldout="true"]::after{top:1rem;}
 .pd .pd_detail .Purchase_pop .select_custom .opt_price{font-size:1.2rem; color:#888888;}
-.pd .pd_detail .Purchase_pop .deal_opt_item .select{padding-bottom:0}
-
-.pd .pd_detail .Purchase_pop .deal_opt_item .select .item_prod{top:-0.2rem}
-
+.pd .pd_detail .Purchase_pop .deal_opt_item .select{padding-bottom:0;}
+.pd .pd_detail .Purchase_pop .deal_opt_item .select .item_prod{top:-0.2rem;}
 .pd .pd_detail .Purchase_pop .btn_box{display:flex;}
 .pd_detail .pd_info > .inner:after, .pd_detail > .inner:after{content: '';width: 100%;height: 1.2rem;padding: 0;background: #f5f5f5;position: absolute;bottom: -1.2rem;left: 0;right: auto;}
 .pd_detail > .inner:last-child::after{content: '';width: 100%;height: 0rem;}
@@ -608,21 +605,21 @@
 .pd_detail .option_box .opt_count .number_count .plus::after {content:''; background-position:100% 0;}
 .pd_detail .option_box .opt_count .number_count .minus::after {content:''; background-position:0 0;}
 .pd_detail .option_box .opt_count .number_count input[type='text'] {width:3.2rem; height:3.2rem; padding:0; text-align:center; color:#222; font-size:1.5rem; font-weight:200; border:none; font-family:'LATO','Noto Sans kr',sans-serif; background:#fff;}
-.pd_detail .price_box {padding:1rem 2rem; border-top:1px solid #222;}
+.pd_detail .price_box {background-color: #fff; padding:1rem 2rem; border-top:0.1rem solid #222; display: block; width: 100%; height: 4.2rem; position: absolute; bottom: 5.8rem; left: 0;}
 .pd_detail .price_box::after {content:''; clear:both; display:block;}
-.pd_detail .price_box .number {float:left; color:#666; font-size:1.2rem; font-weight:200; margin-top:0.3rem}
+.pd_detail .price_box .number {float:left; color:#666; font-size:1.2rem; font-weight:200; margin-top:0.3rem;}
 .pd_detail .price_box .price {float:right; color:#222; font-size:1.5rem; font-weight:500;}
 .pd_detail .price_box .price em {font-size:1.5rem;}
 
 /* 재확인할 것 */
-.form_field.mb20{margin-bottom:2rem !important}
+.form_field.mb20{margin-bottom:2rem !important;}
 /*.cs .cs_contactUs_1 .inner.m_pb45{padding-bottom:4.5rem;}*/
 .opt_name {margin-bottom:0.4rem;}
 .pd_line_box{padding:0.7rem; background:#f5f5f5; width:100%; margin:0 -2rem; display:block; position: absolute; bottom:0;}
 .select_custom .combo .list>li[aria-disabled="true"] .opt_price{color:#bbb !important}
 /* popup_box알수없음 */
 .dp .popup_box .button_list.clear button{width:100% !important;}
-.dp_lookbook ~ .popup_box .popup_con{margin-bottom:5rem}
+.dp_lookbook ~ .popup_box .popup_con{margin-bottom:5rem;}
 .dp .dp_lookbook ~ .popup_box.nodata .popup_con{margin-bottom:0;}
 /* 재확인할 것 */
 
@@ -638,25 +635,25 @@
 .pd_detail .benefit_box dl dd span {display:block;}
 .pd_detail .benefit_box dl dd .btn_popup {position:absolute; right:0; top:0; line-height:1.4!important; font-size:1.3rem; color:#666666; z-index:2;}
 .pd_detail .benefit_box dl dd .btn_popup > span{position: relative;}
-.pd_detail .benefit_box dl dd .btn_popup > span:after{display:block; content:''; position:absolute; bottom:0; left:0; width:100%; height:1px; background:#666;}
+.pd_detail .benefit_box dl dd .btn_popup > span:after{display:block; content:''; position:absolute; bottom:0; left:0; width:100%; height:0.1rem; background:#666;}
 /* 4 */
 .pd_detail .benefit_box{padding-top:3rem;}
 /* 5 */
 .pd_detail .pd_together{padding-top:3rem;}
 .pd_detail .pd_together .item_prod .itemName{max-height: 3.3rem;min-height: 3rem; display: -webkit-box;text-overflow: ellipsis;-webkit-line-clamp: 2;-webkit-box-orient: vertical;overflow: hidden;white-space: normal;overflow-wrap: break-word;width: calc(100% - 10%);}
 .pd_detail .brand_home{margin-bottom:-1.2rem;}
-.pd_detail .brand_home .link_go{display:block; padding:1rem 2rem; font-size:1.4rem; color:#222; font-weight:500; border-bottom:1px solid #eee;}
+.pd_detail .brand_home .link_go{display:block; padding:1rem 2rem; font-size:1.4rem; color:#222; font-weight:500; border-bottom:0.1rem solid #eee;}
 .pd_detail .brand_home .link_go:before{content:''; display:inline-block; margin-right:1.2rem; width:3.4rem; height:3.4rem; background:#000 url(/images/mo/ico_branb_home.png) center center no-repeat; border-radius:50%; background-size:contain; vertical-align:middle;}
 .pd_detail .brand_home .link_go:after{content:''; display:inline-block;  margin-left:0.6rem; width:0.6rem; height:0.9rem; background:url(/images/mo/ico_brandhome_arrow.png) center center no-repeat; background-size:contain; vertical-align:middle;}
 .pd_detail .content.pd_descrp{padding-top:3rem;}
 .pd_descrp .btn_group_flex{width:92%; margin: 0 auto; padding-bottom:4rem;}
-[class*="pd_descrp"] .btn_group_flex button{border: 1px solid #fd4802; color: #fd4802; background: #fff;}
+[class*="pd_descrp"] .btn_group_flex button{border: 0.1rem solid #fd4802; color: #fd4802; background: #fff;}
 [class*="pd_descrp"] .btn_group_flex button span{position:relative; padding-right:2rem;}
 [class*="pd_descrp"] .btn_group_flex button span::after {content:""; position:absolute; right:0.4rem; top:0.1rem; transform:rotate(90deg); width:0.7rem; height:1.3rem; background:url(/images/mo/ico_mb_arrow2.png) no-repeat 0 0; background-size:auto 100%;} 
 [class*="pd_descrp"] .btn_group_flex button.active span::after {transform:rotate(-90deg);}
 [class*="pd_descrp"] {width:100%;}
 [class*="pd_descrp"] .cont_body {max-height:58rem; overflow:hidden;}
-[class*="pd_descrp"] .cont_body.on {max-height:none; overflow-y:visible;overflow: visible;}
+[class*="pd_descrp"] .cont_body.on {max-height:none; overflow-y:visible;}
 [class*="pd_descrp"] .cont_body > div {position:relative; width:100%; padding:0 2.0rem 1.3rem 2.0rem;}
 [class*="pd_descrp"] .descrp_box {}
 [class*="pd_descrp"] .descrp_box > div {margin-top:2.4rem;}
@@ -678,14 +675,14 @@
 [class*="pd_descrp"] .view_label_box .view{margin:0;}
 [class*="pd_descrp"] [class^="view_"] .view img {display:block; margin:0.5rem auto 0}
 [class*="pd_descrp"] [class^="view_"] .view img:first-child {margin-top:0}
-[class*="pd_descrp"] .view_label_box .view span {display:block; margin:0 -0.5rem; overflow:hidden;}
-[class*="pd_descrp"] .view_label_box .view span img {float:left; width:50%; margin-top:0; padding:0 0.5rem; box-sizing:border-box;}
+[class*="pd_descrp"] .view_label_box .view span {display:block; margin:0 -0.5rem; overflow:hidden; text-align: center; font-size: 0;}
+[class*="pd_descrp"] .view_label_box .view span img {display: inline-block; width:50%; margin-top:0; padding:0 0.5rem; box-sizing:border-box;}
 [class*="pd_descrp"] .view_label_box .view img:first-child {margin-left:0}
 [class*="pd_descrp"] .view_outfit_box {}
 [class*="pd_descrp"] .view_detail_box {}
-[class*="pd_descrp"] .brand_box {padding:3rem 2rem !important; margin:6rem -2rem 0; width:auto!important; border-top:1px solid #ddd; border-bottom:1px solid #ddd; text-align:center; box-sizing:border-box;}
+[class*="pd_descrp"] .brand_box {padding:3rem 2rem !important; margin:6rem -2rem 0; width:auto!important; border-top:0.1rem solid #ddd; border-bottom:0.1rem solid #ddd; text-align:center; box-sizing:border-box;}
 [class*="pd_descrp"] .brand_box .name {margin-bottom:1rem; color:#222; font-size:1.8rem; font-weight:bold;}
-[class*="pd_descrp"] .brand_box a {display:inline-block; border:1px solid #ddd; font-size:1.3rem; color:#222; font-weight:300; line-height: 4.3rem; width: 92%;}
+[class*="pd_descrp"] .brand_box a {display:inline-block; border:0.1rem solid #ddd; font-size:1.3rem; color:#222; font-weight:300; line-height: 4.3rem; width: 92%;}
 [class*="pd_descrp"] .required_box {margin-bottom:4.0rem;}
 [class*="pd_descrp"] .required_box .area_detail {text-align:center;} 
 [class*="pd_descrp"] .required_box .area_detail img {max-width:100%;}
@@ -697,26 +694,26 @@
 [class*="pd_descrp"] .required_box .area_kcl > div:first-child{width:4.5rem;}
 [class*="pd_descrp"] .required_box .area_kcl p {color:#222; font-size:1.3rem; letter-spacing:-0.025em;}
 [class*="pd_descrp"] .required_box .area_kcl p a{position:relative; color:#666; cursor: pointer;}
-[class*="pd_descrp"] .required_box .area_kcl p a:after{display:block; content:''; position:absolute; left:0; bottom:-0.2rem; width:100%; height:1px; background:#666666;}
+[class*="pd_descrp"] .required_box .area_kcl p a:after{display:block; content:''; position:absolute; left:0; bottom:-0.2rem; width:100%; height:0.1rem; background:#666666;}
 [class*="pd_descrp"] .required_box .area_kcl .tit {margin-top:0; margin-bottom:0.5rem; font-size:1.3rem;}
 [class*="pd_descrp"] .required_box .area_kcl a.linktxt3 {margin-left:2.0rem; color:#888; font-weight:200; text-decoration:none !important;}
 [class*="pd_descrp"] .required_box .area_kcl .ico_kcl {position:relative;}
-[class*="pd_descrp"] .required_box .tbl.type1 {border-top:1px solid #000; border-bottom:1px solid #ddd;} 
+[class*="pd_descrp"] .required_box .tbl.type1 {border-top:0.1rem solid #000; border-bottom:0.1rem solid #ddd;} 
 [class*="pd_descrp"] .required_box .tbl.type1 table {width:100%; text-align:left; word-break:keep-all;}
 [class*="pd_descrp"] .required_box .tbl.type1 table th,
 [class*="pd_descrp"] .required_box .tbl.type1 table td {position:relative; padding:0.4rem 1.2rem; font-weight:300; font-size:1.3rem; letter-spacing:-0.025em; word-break: break-all;}
 [class*="pd_descrp"] .required_box .tbl.type1 table th {font-weight:400; width:8rem;}
 [class*="pd_descrp"] .required_box .tbl.type1 table td {color:#666666}
-[class*="pd_descrp"] .required_box .tbl.type2 {padding:0; border-top:1px solid #000;} 
+[class*="pd_descrp"] .required_box .tbl.type2 {padding:0; border-top:0.1rem solid #000;} 
 [class*="pd_descrp"] .required_box .tbl.type2 table {width:100%; word-break:keep-all;}
 [class*="pd_descrp"] .required_box .tbl.type2 table th,
-[class*="pd_descrp"] .required_box .tbl.type2 table td {position:relative; padding:1.5rem 0; border-bottom:1px solid #ddd; font-weight:200; font-size:1.3rem; letter-spacing:-0.025em; text-align:center;}
+[class*="pd_descrp"] .required_box .tbl.type2 table td {position:relative; padding:1.5rem 0; border-bottom:0.1rem solid #ddd; font-weight:200; font-size:1.3rem; letter-spacing:-0.025em; text-align:center;}
 [class*="pd_descrp"] .required_box .tbl.type2 table th {font-weight:300; color:#222;}
 [class*="pd_descrp"] .required_box .dot_info {position:relative; padding-left:0.8rem; font-size:1.1rem;}
 [class*="pd_descrp"] .required_box .dot_info::before {content:'·'; position:absolute; left:0; top:0; line-height:inherit;}
 [class*="pd_descrp"] .btn_more_box {position:relative; width:100%; background:#fff; text-align:center; z-index:2;}
 [class*="pd_descrp"] .btn_more_box.covered::after {content:''; position:absolute; left:0; right:0; top:-8rem; width:100%; height:8rem; background:linear-gradient(0deg, rgba(255, 255, 255, 1) 0%, rgba(255,255,255,1) 50%, rgba(255, 255, 255, 0) 100%); z-index:2; }
-[class*="pd_descrp"] .btn_more_box .btnL {border:1px solid #fd4802; color:#fd4802;}
+[class*="pd_descrp"] .btn_more_box .btnL {border:0.1rem solid #fd4802; color:#fd4802;}
 [class*="pd_descrp"] .btn_more_box .btnL span {position:relative; padding-right:3.5rem;}
 [class*="pd_descrp"] .btn_more_box .btnL .ico {margin-left:2.0rem; margin-right:0;}
 /* 6 */
@@ -732,7 +729,7 @@
 .riview_box .ex_review .star_score .star .progbar {display:inline-block;vertical-align: top; height:1.4rem; background:#fd4802}
 .riview_box .ex_review .star_score .score {color:#222; font-size:1.4rem; font-weight:300;}
 .riview_box .best_review {margin-bottom:1.4rem; text-align:left;}
-.riview_box .best_review a {display:block; position:relative; padding:2rem; border:1px solid #eee;}
+.riview_box .best_review a {display:block; position:relative; padding:2rem; border:0.1rem solid #eee;}
 .riview_box .best_review a .star_score .star {display:inline-block; position:relative; width:9.3rem; height:1.4rem; background:#ddd;}
 .riview_box .best_review a .star_score .star::after {content:''; position:absolute; left:0; top:0; z-index:3; width:100%; height:1.4rem; background:url('/images/mo/star_empty.png') no-repeat 0 0; background-size:100% 100%; image-rendering:pixelated;}
 .riview_box .best_review a .star_score .star .progbar {display:inline-block; height:1.4rem; background:#fd4802; vertical-align:top;}
@@ -754,8 +751,8 @@
 .pd_detail .riview_box [class^="ex_"] > a .tit {color:#222; font-size:1.4rem; font-weight:300;}
 .pd_detail .riview_box [class^="ex_"] > a .tit em.number {margin-left:0.4rem; color:#666; font-weight:200;}
 .pd_detail .exinfo_box {margin:0 -2rem 0;}
-.pd_detail .exinfo_box ul {border-top:1px solid #ddd}
-.pd_detail .exinfo_box ul li {padding:1.8rem 2rem; border-bottom:1px solid #ddd}
+.pd_detail .exinfo_box ul {border-top:0.1rem solid #ddd}
+.pd_detail .exinfo_box ul li {padding:1.8rem 2rem; border-bottom:0.1rem solid #ddd;}
 .pd_detail .exinfo_box ul li:last-child {border-bottom:0}
 .pd_detail .exinfo_box ul li [class^="ex_"] > a {display:block; background:url('/images/mo/pd_arrow.png') right center no-repeat; image-rendering:pixelated;}
 .pd_detail .exinfo_box ul li [class^="ex_"] > a::after {content:''; clear:both; display:block;}
@@ -786,8 +783,8 @@
 .pd_detail .pd_recommend .area_slider .page .item_wrap .item_area h5 span {color:#666; font-weight:200;}
 .pd_detail .pd_recommend .area_slider .page .item_wrap .item_area .li_item {height:calc(100% - 14.0rem); overflow-y:auto;}
 .pd_detail .pd_recommend .area_slider .page .item_wrap .item_area .li_item::-webkit-scrollbar {width: 0.2rem;}
-.pd_detail .pd_recommend .area_slider .page .item_wrap .item_area .li_item::-webkit-scrollbar-thumb {background-color:#888888; border-radius: 0px; background-clip: padding-box;border: 0px solid transparent;}
-.pd_detail .pd_recommend .area_slider .page .item_wrap .item_area .li_item::-webkit-scrollbar-track {background-color: #dddddd;border-radius: 0px;}
+.pd_detail .pd_recommend .area_slider .page .item_wrap .item_area .li_item::-webkit-scrollbar-thumb {background-color:#888888; border-radius: 0; background-clip: padding-box;border: 0px solid transparent;}
+.pd_detail .pd_recommend .area_slider .page .item_wrap .item_area .li_item::-webkit-scrollbar-track {background-color: #dddddd;border-radius: 0;}
 .pd_detail .pd_recommend .area_slider .page .item_wrap .item_area .li_item ul li {position:relative; height:15.0rem; margin-top:2.0rem;}
 .pd_detail .pd_recommend .area_slider .page .item_wrap .item_area .li_item ul li:first-child {margin-top:0;}
 .pd_detail .pd_recommend .area_slider .page .item_wrap .item_area .li_item ul li .item_prod {display:block; width:100%;}
@@ -803,7 +800,7 @@
 .pd_detail .pd_recommend .pic_img{margin:0 -2rem 2rem;}
 .pd_detail .pd_recommend .pic_list .item_prod .itemName{display: block; min-height:3rem; max-height: 3.3rem; display: -webkit-box; text-overflow: ellipsis; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; white-space: normal; overflow-wrap: break-word;  width: calc(100% - 10%);}
 .pd_detail .pd_recommend .pic_list .btn_group_flex{margin-top:3rem;}
-.pd_detail .pd_recommend .pic_list .btn_group_flex button{border: 1px solid #fd4802; color: #fd4802; background-color:#fff;}
+.pd_detail .pd_recommend .pic_list .btn_group_flex button{border: 0.1rem solid #fd4802; color: #fd4802; background-color:#fff;}
 .pd_detail .pd_samebrand{}
 .pd_detail .pd_relate{}
 .pd_detail .pd_relate .area_slider .itemName {height:3.2rem}
@@ -816,7 +813,7 @@
 .product_floormenu > div:nth-child(2){width:63%; background-color:#fd4802;}
 .product_floormenu button{display:block; width:100%; height:5.8rem; line-height:5.8rem; font-size:1.6rem; font-weight:500;}
 .product_floormenu .share_like{overflow:hidden;}
-.product_floormenu .share_like > button{float:left; width:50%; font-size:0; text-indent:-999999px;}
+.product_floormenu .share_like > button{float:left; width:50%; font-size:0; text-indent:-99999.9rem;}
 .product_floormenu .share_like > button.share{background:#000 url(/images/mo/ico_floorbtn_share.png) center center no-repeat; background-size:1.6rem;}
 /* .product_floormenu .share_like > button.like{background:#000 url(/images/mo/ico_floorbtn_like.png) center center no-repeat; background-size:2rem;} */
 .product_floormenu .share_like > button.itemLike {background:#000 url('/images/mo/ico_floorbtn_like.png') center center no-repeat;background-size:2rem;}
@@ -838,7 +835,7 @@
 /* .pd_pop.Purchase_pop .btPop_body{max-height:70rem;} */
 
 /* 재확인 할 것 */
-.pd_pop.Purchase_pop .btPop_body{height:calc(100% - 10rem);}
+.pd_pop.Purchase_pop .btPop_body{height: calc(100% - 5.95rem);}
 .pd_pop.Purchase_pop .select_custom .combo .list{position:relative; top:0; margin-top:-0.6rem}
 
 
@@ -852,7 +849,7 @@
 .pd_pop.Purchase_pop .option_box .opt_color{padding-top:0}
 .pd_pop.Purchase_pop .btn_box{}
 .pd_pop.Purchase_pop .btn_box:after{content:''; display:block; clear:both;}
-.pd_pop.Purchase_pop .btn_box button {display: block; height: 5.8rem; line-height: 5.8rem; font-size: 1.6rem; font-weight: 500; float:left; width:100%; color:#fff; border-top:1px solid #ddd; box-sizing:border-box;}
+.pd_pop.Purchase_pop .btn_box button {display: block; height: 5.8rem; line-height: 5.8rem; font-size: 1.6rem; font-weight: 500; float:left; width:100%; color:#fff; border-top:0.1rem solid #ddd; box-sizing:border-box;}
 .pd_pop.Purchase_pop .btn_box button.gift{position:relative; background:#444 url(/images/mo/ico_present_purchase.png) center center no-repeat; background-size:1.8rem; font-size:0; width:30%;}
 .pd_pop.Purchase_pop .btn_box button.gift > span{position:relative; display:inline-block; width:1.8rem; height:1.9rem;}
 .pd_pop.Purchase_pop .btn_box button.gift > span > span{position:absolute; left:0; top:0; display:inline-block; padding:0.3rem 1rem; font-size:1.2rem; color:#fff; background-color:#fd4801; -webkit-transform:translate(0 ,-125%); transform:translateX(0 ,-125%);}
@@ -860,7 +857,7 @@
 .pd_pop.Purchase_pop .btn_box button.gift > span > span:after{content:''; display:block; position:absolute; bottom:-1rem; left:0.4rem; border:0.5rem solid transparent; border-bottom-color:#ff7800; -webkit-transform:rotate(180deg); transform:rotate(180deg);}
 .pd_pop.Purchase_pop .btn_box button.cart{background-color:#222222;}
 .pd_pop.Purchase_pop .btn_box button.buyNow{background-color:#fd4801;}
-.pd_pop.Purchase_pop .npay_box{margin-top:2.8rem; margin-bottom:2.5rem; border-top:2px solid #222; height:7.4rem;}
+.pd_pop.Purchase_pop .npay_box{margin-top:2.8rem; margin-bottom:2.5rem; border-top:0.2rem solid #222; height:7.4rem;}
 .pd_pop.Purchase_pop .form_wrap .form_field{display: block; margin-bottom:1rem;}
 
 
@@ -909,7 +906,7 @@
 /* 상품상세 및 상품상세딜_옵션선택팝업 */
 .pd .pd_detail .pop_option_select {display:none; position:fixed; bottom:0; left:0; width:100%; box-sizing:border-box; z-index:1000; background: #ffffff; height:84%;}
 .pd .pd_detail .pop_option_select .pp_body{position:relative; padding:2rem; overflow:scroll; height:100%; background-color:#fff;}
-.pd .pd_detail .pop_option_select .close{position: absolute; z-index: 99; top: -3.8rem; left: 50%; transform: translate(-50%); display: block; border: 0; width:3.6rem; height:1.6rem; background-image: url(/images/mo/ico_pop_cls_w.png); text-indent: -9999px; background-size: contain; background-repeat: no-repeat; background-position: center center; background-color: transparent;}
+.pd .pd_detail .pop_option_select .close{position: absolute; z-index: 99; top: -3.8rem; left: 50%; transform: translate(-50%); display: block; border: 0; width:3.6rem; height:1.6rem; background-image: url(/images/mo/ico_pop_cls_w.png); text-indent: -999.9rem; background-size: contain; background-repeat: no-repeat; background-position: center center; background-color: transparent;}
 .pd .pd_detail .pop_option_select .opt_header{margin-bottom:2rem;}
 .pd .pd_detail .pop_option_select .opt_header:after{display:block; content:''; clear:both;}
 .pd .pd_detail .pop_option_select .opt_header .title{position:relative; float:left; font-size:1.6rem; color:#222222; font-weight:500;}
@@ -918,6 +915,7 @@
 .pd .pd_detail .pop_option_select .text_excluding{margin-top:-1rem; padding:1.2rem; background-color:#383838; font-size:1.3rem; color:#fff; text-align:center;}
 
 .pd .pd_detail .pop_option_select .form_wrap .form_field{display: block; margin-bottom:1rem;}
+.pd .pd_detail .pop_option_select .form_wrap .form_field > p {margin-bottom: 1rem;}
 .pd .pd_detail .pop_option_select .form_wrap .form_field .select:before{color:#333333}
 .pd .pd_detail .pop_option_select .form_wrap .form_field .select .opt_name{pointer-events: none;}
 .pd .pd_detail .pop_option_select .form_wrap .form_field .select .opt_price{pointer-events: none;display: none;}
@@ -936,15 +934,15 @@
 #shoppingBagModal .shoppingBag_box{position:relative; padding:2.5rem 2rem; text-align:center;}
 #shoppingBagModal .shoppingBag_box::after {content: ""; z-index: -1; position: absolute; top: 0; left: 0; width: 100%; height: 100%; display: block; background: currentColor; background:rgba(34,34,34,.9); clip-path: polygon(40px 0, 40px 30px, 30px 40px, 0 40px, 0 0); clip-path: polygon(100% 0, 100% 75%, 75% 100%, 0 100%, 0 0); clip-path: polygon(100% 0, 100% calc( 100% - 10px), calc( 100% - 10px) 100%, 0 100%, 0 0);}
 #shoppingBagModal .shoppingBag_box p{font-size:1.3rem; color:#fff;}
-#shoppingBagModal .shoppingBag_box .link_shoppingBag{margin-top:1rem; padding:0.9rem 2.5rem; display:inline-block; border:1px solid #656565; font-size:1.1rem; color:#fff;}
+#shoppingBagModal .shoppingBag_box .link_shoppingBag{margin-top:1rem; padding:0.9rem 2.5rem; display:inline-block; border:0.1rem solid #656565; font-size:1.1rem; color:#fff;}
 
 /* pd_pop > 상품썸네일 크게보기 */
-.pd_pop.full_pop {display:none; position:fixed; top:0; bottom:0; left:0; right:0; margin-top:160px; width:100%; height:calc(100% - 160px); overflow-y:auto; z-index:110; background:#fff; line-height:1;}
+.pd_pop.full_pop {display:none; position:fixed; top:0; bottom:0; left:0; right:0; margin-top:16.0rem; width:100%; height:calc(100% - 16.0rem); overflow-y:auto; z-index:110; background:#fff; line-height:1;}
 .pd_pop.full_pop.pd_itemthumb_pop {margin-top:0; height:100%;}
-.pd_pop .full_popup_wrap .btn_close {position:fixed; right:30px; top:30px; display:inline-block; z-index:130; cursor:pointer;}
-.pd_pop .full_popup_wrap .btn_close a {display:block; width:25px; height:25px; text-indent:-9999px; background:url('/images/pc/ico_pop_cls.png') no-repeat 50% 50%; background-size:100% auto;}
-.full_pop.pd_itemthumb_pop .full_pop_container {width:100%; padding:0px;}
-.full_pop.pd_itemthumb_pop .full_pop_container .scaleview {position:relative; display:block; text-align:center; margin-top:40px; z-index:1;}
+.pd_pop .full_popup_wrap .btn_close {position:fixed; right:3.0rem; top:3.0rem; display:inline-block; z-index:130; cursor:pointer;}
+.pd_pop .full_popup_wrap .btn_close a {display:block; width:2.5rem; height:2.5rem; text-indent:-999.9rem; background:url('/images/pc/ico_pop_cls.png') no-repeat 50% 50%; background-size:100% auto;}
+.full_pop.pd_itemthumb_pop .full_pop_container {width:100%; padding:0;}
+.full_pop.pd_itemthumb_pop .full_pop_container .scaleview {position:relative; display:block; text-align:center; margin-top:4.0rem; z-index:1;}
 .full_pop.pd_itemthumb_pop .full_pop_container .scaleview:first-child {margin-top:0}
 .full_pop.pd_itemthumb_pop .full_pop_container .scaleview .video_controls,
 .full_pop.pd_itemthumb_pop .full_pop_container .scaleview video {display: none; width:100%;}
@@ -952,15 +950,15 @@
 
 /* pd_popup > 할인쿠폰 */
 .salecoupon_pop{width:100%; max-height:80%; position: absolute; bottom:0; left:0}
-.salecoupon_pop .btPop_close{width: 1.6rem;height: 1.6rem;background-image: url(/images/mo/ico_pop_cls_w.png); opacity: 1;position: absolute;z-index: 998;top: -3.8rem;left: 50%;transform: translate(-50%);display: block;border: 0;text-indent: -9999px;background-size: contain;background-repeat: no-repeat;background-position: center center;background-color: transparent;}
+.salecoupon_pop .btPop_close{width: 1.6rem;height: 1.6rem;background-image: url(/images/mo/ico_pop_cls_w.png); opacity: 1;position: absolute;z-index: 998;top: -3.8rem;left: 50%;transform: translate(-50%);display: block;border: 0;text-indent: -999.9rem;background-size: contain;background-repeat: no-repeat;background-position: center center;background-color: transparent;}
 .salecoupon_pop .close-modal{left:50%; transform:translate(-50%); top:-3.5rem !important;background-image: url(/images/mo/ico_pop_cls_w.png) !important;}
 .modal.pd_pop.salecoupon_pop .coupon_list {line-height:1;}
 .modal.pd_pop.salecoupon_pop .coupon_list li {margin-top:1rem}
 .modal.pd_pop.salecoupon_pop .coupon_list li:first-child {margin-top:0}
 .modal.pd_pop.salecoupon_pop .coupon_list li:last-child{margin-bottom:6rem;}
-.modal.pd_pop.salecoupon_pop .coupon_list li .coupon {position:relative; border:1px solid #ddd; box-sizing:border-box; background:#fff;}
+.modal.pd_pop.salecoupon_pop .coupon_list li .coupon {position:relative; border:0.1rem solid #ddd; box-sizing:border-box; background:#fff;}
 .modal.pd_pop.salecoupon_pop .coupon_list li .coupon > div {position:relative; padding:3rem 0;}
-.modal.pd_pop.salecoupon_pop .coupon_list li .coupon > div::after {content:''; position:absolute; top:50%; right:-1px; transform:translateY(-50%); width:1.5rem; height:3.0rem; background:#fff; z-index:2; border:1px solid #ddd; border-right:none; border-top-left-radius:1.5rem; border-bottom-left-radius:1.5rem; overflow:hidden;}
+.modal.pd_pop.salecoupon_pop .coupon_list li .coupon > div::after {content:''; position:absolute; top:50%; right:-0.1rem; transform:translateY(-50%); width:1.5rem; height:3.0rem; background:#fff; z-index:2; border:0.1rem solid #ddd; border-right:none; border-top-left-radius:1.5rem; border-bottom-left-radius:1.5rem; overflow:hidden;}
 .modal.pd_pop.salecoupon_pop .coupon_list li .coupon p {padding:0 2.0rem;}
 .modal.pd_pop.salecoupon_pop .coupon_list li .coupon .cp_name {color:#222; font-size:1.4rem; font-weight:300;}
 .modal.pd_pop.salecoupon_pop .coupon_list li .coupon .cp_cont {margin-top:0.7rem;}
@@ -983,9 +981,9 @@
 
 /* pd_popup > EP채널쿠폰 */
 .modal.pd_pop.epcoupon_pop .modal-body{padding:0rem 2rem;}
-.modal.pd_pop.epcoupon_pop .ep_coupon {position:relative; max-width:60rem; margin:auto; border:1px solid #222;  background:#fff; padding:4rem 0; text-align:center; line-height:1;}
+.modal.pd_pop.epcoupon_pop .ep_coupon {position:relative; max-width:60rem; margin:auto; border:0.1rem solid #222;  background:#fff; padding:4rem 0; text-align:center; line-height:1;}
 .modal.pd_pop.epcoupon_pop .ep_coupon > div {position:relative;}
-.modal.pd_pop.epcoupon_pop .ep_coupon > div::after {content:''; position:absolute; top:50%; right:-1px; transform:translateY(-50%); width:1.5rem; height:3.0rem; background:#fff; z-index:2; border:1px solid #222; border-right:none; border-top-left-radius:1.5rem; border-bottom-left-radius:1.5rem; overflow:hidden;}
+.modal.pd_pop.epcoupon_pop .ep_coupon > div::after {content:''; position:absolute; top:50%; right:-0.1rem; transform:translateY(-50%); width:1.5rem; height:3.0rem; background:#fff; z-index:2; border:0.1rem solid #222; border-right:none; border-top-left-radius:1.5rem; border-bottom-left-radius:1.5rem; overflow:hidden;}
 .modal.pd_pop.epcoupon_pop .ep_coupon > div .cp_title {color:#222; font-size:1.2rem; font-weight:600; letter-spacing:0.4rem;}
 .modal.pd_pop.epcoupon_pop .ep_coupon > div .cp_cont {margin-top:1rem;}
 .modal.pd_pop.epcoupon_pop .ep_coupon > div .cp_cont span {display:block; color:#222;}
@@ -1016,13 +1014,13 @@
 .modal.pd_pop[class*="bnf_"] .tbl.type1 table tr td:last-child {text-align:right;} 
 .modal.pd_pop[class*="bnf_"] .tbl.type1 table tr th{vertical-align:top; color:#222; width:28%;}
 .modal.pd_pop[class*="bnf_"] .tbl.type1 table tr th,
-.modal.pd_pop[class*="bnf_"] .tbl.type1 table tr td {border-top:1px solid #eeeeee;}
+.modal.pd_pop[class*="bnf_"] .tbl.type1 table tr td {border-top:0.1rem solid #eeeeee;}
 .modal.pd_pop[class*="bnf_"] .tbl.type1 table tr:first-child th,
 .modal.pd_pop[class*="bnf_"] .tbl.type1 table tr:first-child td {border-top:none;}
-.modal.pd_pop[class*="bnf_"] .tbl.type2 {padding:0; border-top:1px solid #000;} 
+.modal.pd_pop[class*="bnf_"] .tbl.type2 {padding:0; border-top:0.1rem solid #000;} 
 .modal.pd_pop[class*="bnf_"] .tbl.type2 table {width:100%; word-break:keep-all;}
 .modal.pd_pop[class*="bnf_"] .tbl.type2 table th,
-.modal.pd_pop[class*="bnf_"] .tbl.type2 table td {position:relative; padding:1.5rem 0; border-bottom:1px solid #ddd; font-weight:200; font-size:1.3rem; letter-spacing:-0.025em; text-align:center;}
+.modal.pd_pop[class*="bnf_"] .tbl.type2 table td {position:relative; padding:1.5rem 0; border-bottom:0.1rem solid #ddd; font-weight:200; font-size:1.3rem; letter-spacing:-0.025em; text-align:center;}
 .modal.pd_pop[class*="bnf_"] .tbl.type2 table th {font-weight:300; color:#222;}
 .modal.pd_pop.bnf_shopping_pop .tbl.type1 table tr td p,
 .modal.pd_pop.bnf_shopping_pop .tbl.type1 table tr th p  {color:#fd4802;}
@@ -1031,14 +1029,14 @@
 .modal.pd_pop.bnf_card_pop table .info_card p:first-child {margin-top:0}
 .modal.pd_pop.bnf_card_pop table tr td {color:#666;}
 .modal.pd_pop.bnf_card_pop table a.link {display:inline-block; position:relative; margin-top:1rem; padding-right:1.2rem; color:#888;}
-.modal.pd_pop.bnf_card_pop table a.link:after {content:''; display:block; position:absolute; top:0.6rem; right:0; width:0.5rem; height:0.5rem; border:1px solid #888; border-width:1px 1px 0 0; transform:rotate(45deg); -webkit-transform:rotate(45deg);}
+.modal.pd_pop.bnf_card_pop table a.link:after {content:''; display:block; position:absolute; top:0.6rem; right:0; width:0.5rem; height:0.5rem; border:0.1rem solid #888; border-width:0.1rem 0.1rem 0 0; transform:rotate(45deg); -webkit-transform:rotate(45deg);}
 .modal.pd_pop.bnf_card_pop .info_txt {margin-top:2rem;}
 
 /* pd_popup > 사이즈정보 */
 .modal.pd_pop.info_size_pop {}
 .modal.pd_pop.info_size_pop .modal-header{border-bottom:0;}
 .modal.pd_pop.info_size_pop .modal-body .pop_cont {max-height:none; overflow: visible; overflow-x:visible!important; padding-bottom:2rem;}
-.modal.pd_pop.info_size_pop .tab_nav {margin: 0 -1.33rem; border-bottom:1px solid #eee;box-sizing: border-box;}
+.modal.pd_pop.info_size_pop .tab_nav {margin: 0 -1.33rem; border-bottom:0.1rem solid #eee;box-sizing: border-box;}
 .modal.pd_pop.info_size_pop .tab_nav ul{display: flex;flex-direction: row;align-content: space-around;justify-content: space-between;}
 .modal.pd_pop.info_size_pop .tab_nav ul::after {content:''; clear:both; display:block;}
 .modal.pd_pop.info_size_pop .tab_nav ul li {/* float:left; width:33.33%; */ flex: 1; text-align:center; background:#fff; box-sizing:border-box;}
@@ -1070,16 +1068,16 @@
 .modal.pd_pop.info_size_pop .sub_tab_cont_wrap .sub_tab_cont dl div dd {color:#666;}
 .modal.pd_pop.info_size_pop .sub_tab_nav {padding:0 2rem;}
 .modal.pd_pop.info_size_pop .sub_tab_nav ul {}
-.modal.pd_pop.info_size_pop .sub_tab_nav ul li {margin-top:0.8rem; padding:0.9rem 1rem; background:#fff; text-align:center; border:1px solid #eee; border-radius:4rem;;}
+.modal.pd_pop.info_size_pop .sub_tab_nav ul li {margin-top:0.8rem; padding:0.9rem 1rem; background:#fff; text-align:center; border:0.1rem solid #eee; border-radius:4rem;;}
 .modal.pd_pop.info_size_pop .sub_tab_nav ul li a {display:inline-block; color:#666; font-size:1.3rem; font-weight:300; color:inherit;}
 .modal.pd_pop.info_size_pop .sub_tab_nav ul li.active{border-color:#fd4802; color:#fd4802; font-weight:500;}
-.modal.pd_pop.info_size_pop .category_open{position:relative; padding: 1.1rem 1.5rem; font-size:1.3rem; color:#222; font-weight: 300; text-align:left; background-color: #ffffff; border: 1px solid #dddddd; box-sizing: border-box;}
+.modal.pd_pop.info_size_pop .category_open{position:relative; padding: 1.1rem 1.5rem; font-size:1.3rem; color:#222; font-weight: 300; text-align:left; background-color: #ffffff; border: 0.1rem solid #dddddd; box-sizing: border-box;}
 .modal.pd_pop.info_size_pop .category_open:after {content: ""; width: 0; height: 0; box-sizing: border-box; position: absolute; top: 1.8rem; right: 1.5rem; border: 0.6rem solid transparent; border-color: #888888 transparent transparent transparent;}
 .modal.pd_pop.info_size_pop .category_box{display:none; position:fixed; width:100%; height:100%; top:0; left:0; background:rgba(0,0,0,.5); z-index:500;}
 .modal.pd_pop.info_size_pop .category_box .lap{position:absolute; bottom:0; left:0; padding:3rem 0; width:100%; background:#fff;}
 .modal.pd_pop.info_size_pop .category_box .category_list{min-height:25rem; max-height:40rem; overflow-y:auto;}
 .modal.pd_pop.info_size_pop .category_box .category_close{opacity: 1; position: absolute; z-index: 98; top: -3.8rem; left: 50%; transform: translate(-50%); display: block; border: 0; width: 1.6rem; height: 1.6rem; background-image: url(/images/mo/ico_pop_cls_w.png); text-indent: -9999px; background-size: contain; background-repeat: no-repeat; background-position: center center; background-color: transparent;}
-.modal.pd_pop.info_size_pop .tbl.type1 {border-top:1px solid #000; border-bottom:1px solid #ddd;} 
+.modal.pd_pop.info_size_pop .tbl.type1 {border-top:0.1rem solid #000; border-bottom:0.1rem solid #ddd;} 
 .modal.pd_pop.info_size_pop .tbl.type1 table {width:100%; text-align:left; word-break:keep-all;}
 .modal.pd_pop.info_size_pop .tbl.type1 table th,
 .modal.pd_pop.info_size_pop .tbl.type1 table td {position:relative; padding:1.4rem 1.2rem; font-weight:300; font-size:1.3rem; letter-spacing:-0.025em;}
@@ -1087,15 +1085,15 @@
 .modal.pd_pop.info_size_pop .tbl.type1 table tr td:last-child {text-align:right;} 
 .modal.pd_pop.info_size_pop .tbl.type1 table tr th{vertical-align:top; color:#222;}
 .modal.pd_pop.info_size_pop .tbl.type1 table tr th,
-.modal.pd_pop.info_size_pop .tbl.type1 table tr td {border-top:1px solid #eeeeee;}
+.modal.pd_pop.info_size_pop .tbl.type1 table tr td {border-top:0.1rem solid #eeeeee;}
 .modal.pd_pop.info_size_pop .tbl.type1 table tr:first-child th,
 .modal.pd_pop.info_size_pop .tbl.type1 table tr:first-child td {border-top:none;}
 /* 임시 스타일, 차주 제거 예정 */
 .modal.pd_pop.info_size_pop .tbl.type2 {width: 100%;overflow: auto;} 
-.modal.pd_pop.info_size_pop .tbl.type2 {padding:0; border-top:1px solid #000;} 
+.modal.pd_pop.info_size_pop .tbl.type2 {padding:0; border-top:0.1rem solid #000;} 
 .modal.pd_pop.info_size_pop .tbl.type2 table {width:100%; word-break:keep-all;}
 .modal.pd_pop.info_size_pop .tbl.type2 table th,
-.modal.pd_pop.info_size_pop .tbl.type2 table td {position:relative; padding:1.5rem 1rem; border-bottom:1px solid #ddd; font-weight:200; font-size:1.4rem; letter-spacing:-0.025em; text-align:center;}
+.modal.pd_pop.info_size_pop .tbl.type2 table td {position:relative; padding:1.5rem 1rem; border-bottom:0.1rem solid #ddd; font-weight:200; font-size:1.4rem; letter-spacing:-0.025em; text-align:center;}
 .modal.pd_pop.info_size_pop .tbl.type2 table th {font-weight:400; color:#222;}
 .modal.pd_pop.info_size_pop .tbl.type2 table td{color:#000; font-weight:300; font-size:1.3rem;}
 .modal.pd_pop.info_size_pop .tbl.type2 table thead tr{background:#f5f5f5;}
@@ -1115,10 +1113,10 @@
 .modal.pd_pop.push_restock_pop {max-width:none;}
 .modal.pd_pop.push_restock_pop .modal-header{border-bottom:0;}
 .modal.pd_pop.push_restock_pop .pop_cont {overflow:initial; padding-bottom:2rem;}
-.modal.pd_pop.push_restock_pop .select{font-size:1.4rem; height:auto; padding:1.1rem; border: 1px solid #dddddd; background:#fff; color:#333333; -webkit-appearance:none; -moz-appearance:none; appearance:none; background:url(/images/mo/pd_btn.png) no-repeat right center; background-size:1.2rem; background-position-x:97%;}
+.modal.pd_pop.push_restock_pop .select{font-size:1.4rem; height:auto; padding:1.1rem; border: 0.1rem solid #dddddd; background:#fff; color:#333333; -webkit-appearance:none; -moz-appearance:none; appearance:none; background:url(/images/mo/pd_btn.png) no-repeat right center; background-size:1.2rem; background-position-x:97%;}
 .modal.pd_pop.push_restock_pop .select::-ms-expand{display:none;}
 .modal.pd_pop.push_restock_pop .item_prod .itemPercent{left:4.5rem;}
-.modal.pd_pop.push_restock_pop .item_blk {padding-bottom:2rem; border-bottom:1px solid #dddddd;}
+.modal.pd_pop.push_restock_pop .item_blk {padding-bottom:2rem; border-bottom:0.1rem solid #dddddd;}
 .modal.pd_pop.push_restock_pop .item_blk .item_prod {width:100%; display:block; line-height: 1.4;}
 .modal.pd_pop.push_restock_pop .item_blk .item_prod .item_state {padding:0;}
 .modal.pd_pop.push_restock_pop .item_blk .item_prod .item_state .itemLink {display:table-cell; width:100%; height:10.5rem; padding-left:9.0rem; vertical-align:middle; max-width:20rem;}
@@ -1134,10 +1132,10 @@
 .modal.pd_pop.push_restock_pop .select_blk .opt_size .form_field {display:block; margin-top:-0.8rem; margin-left:-0.8rem !important;}
 .modal.pd_pop.push_restock_pop .select_blk .opt_size .form_field > div {margin-left:0.8rem; margin-top:0.8rem;}
 .modal.pd_pop.push_restock_pop .select_blk .opt_size .form_field > div:nth-child(7n-6) {margin-left:0.8rem;}
-.modal.pd_pop.push_restock_pop .select_blk .opt_size .form_field input[type="radio"] + label {display:block; width:6rem; height:3.4rem; padding:0; line-height:3.4rem; text-align:center; background:#fff; box-sizing:border-box; border:1px solid #ddd; color:#222; font-weight:200; font-size:1.2rem;}
+.modal.pd_pop.push_restock_pop .select_blk .opt_size .form_field input[type="radio"] + label {display:block; width:6rem; height:3.4rem; padding:0; line-height:3.4rem; text-align:center; background:#fff; box-sizing:border-box; border:0.1rem solid #ddd; color:#222; font-weight:200; font-size:1.2rem;}
 .modal.pd_pop.push_restock_pop .select_blk .opt_size .form_field input[type="radio"] + label::before,
 .modal.pd_pop.push_restock_pop .select_blk .opt_size .form_field input[type="radio"] + label::after {display:none;}
-.modal.pd_pop.push_restock_pop .select_blk .opt_size .form_field input[type="radio"]:checked + label {border:1px solid #fd4802;}
+.modal.pd_pop.push_restock_pop .select_blk .opt_size .form_field input[type="radio"]:checked + label {border:0.1rem solid #fd4802;}
 .modal.pd_pop.push_restock_pop .select_blk .opt_size .form_field input[type="radio"]:disabled + label {text-decoration:line-through; background:#f5f5f5; border-color:#f5f5f5; color:#bbb; opacity:1;}
 .modal.pd_pop.push_restock_pop .select_blk .opt_size .form_field > div {float:left; width:auto;}
 .modal.pd_pop.push_restock_pop .select_blk .opt_select .select_blk {display:block; max-height:30.0rem; overflow-y:scroll;}
@@ -1145,7 +1143,7 @@
 .modal.pd_pop.push_restock_pop .btn_group_flex > div > .btn{height:5.3rem;}
 
 /* pd_pop > 상품문의 페이지 */
-.modal.pd_pop.pd_qnalist_pop .modal-header {position:fixed; top:0; left:0; right:0; width:100%; height:auto; border-bottom:1px solid #eee !important; box-sizing:border-box; background:#fff; z-index:11; box-sizing:border-box;}
+.modal.pd_pop.pd_qnalist_pop .modal-header {position:fixed; top:0; left:0; right:0; width:100%; height:auto; border-bottom:0.1rem solid #eee !important; box-sizing:border-box; background:#fff; z-index:11; box-sizing:border-box;}
 .modal.pd_pop.pd_qnalist_pop .modal-body{position:relative; margin:auto; padding:9.3rem 0 3rem;}
 .modal.pd_pop.pd_qnalist_pop .ui_row{margin:0 0 0 -1.3rem!important; width:auto;}
 .modal.pd_pop.pd_qnalist_pop .pd_qnalist > .btn_group_flex{position:fixed; width: 100%; bottom: 0; margin-top: 0;}
@@ -1175,7 +1173,7 @@
 /*.pd_qnalist .qna_list .foldGroup .fold_head.on .fold_tit .lap2 span{display: inline-block;max-height: 100%;overflow: auto;}*/
 .pd_qnalist .qna_list .foldGroup .my_qna .fold_head {background-color:#fff6f2;}
 .pd_qnalist .qna_list .foldGroup .fold_head .fold_state{font-size:1.1rem;}
-.pd_qnalist .qna_list .foldGroup > ul > li:first-child {border-top: 1px solid #e5e5e5;}
+.pd_qnalist .qna_list .foldGroup > ul > li:first-child {border-top: 0.1rem solid #e5e5e5;}
 .pd_qnalist .qna_list .check_secret{padding: 0 1.33rem; margin-bottom:1.5rem;}
 .pd_qnalist .btnIcon_more{margin-bottom: 2rem;}
 .pd_qnalist .qna_list .nodata {padding:14rem 0 17rem; text-align:center;}
@@ -1186,7 +1184,7 @@
 .pd_qnalist .info_txt ul li:last-child {margin-bottom:0;}
 .pd_qnalist .info_txt ul li:after {content:''; position: absolute; top:0.5rem; left:0; background:#858585; width:0.2rem; height:0.2rem;}
 .pd_qnalist .info_txt .btn_group_flex{margin-top:2rem;}
-.pd_qnalist .info_txt .btn_group_flex button{font-size:1.3rem; color:#222; border:1px solid #a7a7a7;}
+.pd_qnalist .info_txt .btn_group_flex button{font-size:1.3rem; color:#222; border:0.1rem solid #a7a7a7;}
 .pd_qnalist > .btn_group_flex{margin-top:0;}
 
 /* pd_pop > 상품문의 작성 */
@@ -1197,7 +1195,7 @@
 .modal.pd_pop.pd_qnawrite_pop .input_box {margin-top:3rem}
 .modal.pd_pop.pd_qnawrite_pop .input_box textarea {display:block; width:100%; height:20rem; padding:0 1rem 0; color:#222; font-size: 1.2rem; font-weight: 300; box-sizing: border-box; border:0 none; outline: none;}
 .modal.pd_pop.pd_qnawrite_pop .input_box .txt_cnt {position: absolute;right: 1.5rem;bottom: 0.1rem;text-align: right;font-size: 1.4rem;font-weight: 300;background-color: #ffffff;}
-.modal.pd_pop.pd_qnawrite_pop .input_box .input_wrap{width:100%; padding:1.5rem; padding-bottom:2.5rem; border: 1px solid #d7d7d7;}
+.modal.pd_pop.pd_qnawrite_pop .input_box .input_wrap{width:100%; padding:1.5rem; padding-bottom:2.5rem; border: 0.1rem solid #d7d7d7;}
 .modal.pd_pop.pd_qnawrite_pop .secret_box {margin-top:1rem;}
 .modal.pd_pop.pd_qnawrite_pop .push_box {margin-top:3rem;}
 .modal.pd_pop.pd_qnawrite_pop .push_box dl {display:flex; flex-wrap: wrap; align-items: center; color:#222; font-size:1.3rem;}
@@ -1208,7 +1206,7 @@
 .modal.pd_pop.pd_qnawrite_pop .modal-footer button{height:5.3rem; color: #ffffff; background-color: #222222; border-color: #222222;}
 
 /* pd_popup > 배송/반품/교환 */
-.modal.pd_pop.pd_delivery_pop .modal-header {position:fixed; top:0; left:0; right:0; width:100%; height:auto; border-bottom:1px solid #eee !important;  box-sizing:border-box; background:#fff; z-index:11; box-sizing:border-box;}
+.modal.pd_pop.pd_delivery_pop .modal-header {position:fixed; top:0; left:0; right:0; width:100%; height:auto; border-bottom:0.1rem solid #eee !important;  box-sizing:border-box; background:#fff; z-index:11; box-sizing:border-box;}
 .modal.pd_pop.pd_delivery_pop .modal-title { display: flex;}
 .modal.pd_pop.pd_delivery_pop .modal-title .title_img { width: 5.5rem; height: 9rem; margin: 0 2rem 0 0; background: url(/images/pc/thumb/tmp_pdDetail1.jpg) no-repeat center; background-size: 4rem 6rem;}
 .modal.pd_pop.pd_delivery_pop .modal-title .title_text { height: 9rem;}
@@ -1226,12 +1224,12 @@
 .pd_delivery .change { margin: 0; padding: 4rem 0 0;}
 .pd_delivery .change .pop_table { width: 100%; margin: 2rem 0 1rem; border-top: 0.1rem solid #222222;}
 .pd_delivery .change .pop_table tr th,
-.pd_delivery .change .pop_table tr td { font-size: 1.2rem; padding: 2.5rem 0 2.5rem 1.2rem; align-items: center; border-bottom: 1px solid #eeeeee; }
+.pd_delivery .change .pop_table tr td { font-size: 1.2rem; padding: 2.5rem 0 2.5rem 1.2rem; align-items: center; border-bottom: 0.1rem solid #eeeeee; }
 .pd_delivery .change .pop_table tr th {width: 10rem; padding: 0 0 0 1.2rem; color:#222; font-weight:500; background: #f5f5f5; text-align:left; word-break: break-all;}
 
 /* pd_pop > 상품리뷰 페이지 */
 .modal.pd_pop.pd_review_pop {overflow-x: hidden;overflow-y: auto;}
-.modal.pd_pop.pd_review_pop .modal-header{border-bottom:1px solid #eee !important;}
+.modal.pd_pop.pd_review_pop .modal-header{border-bottom:0.1rem solid #eee !important;}
 .modal.pd_pop.pd_review_pop .modal-body{margin-top:9.3rem; padding:0}
 .modal.pd_pop.pd_review_pop  .modal-header{height:auto;}
 .modal.pd_pop.pd_review_pop .pd_detail{overflow: hidden;}
@@ -1254,7 +1252,7 @@
 .pd_review .area_rv_empty .txt_box p {color:#222; font-size:1.5rem; font-weight:300;}
 .pd_review .area_rv_empty .txt_box p::before {content:''; display:block; width:4rem; height:4rem; margin:0 auto 2rem; background:url('/images/mo/ico_point4.png') no-repeat 0 0; background-size:contain;}
 .pd_review .area_rv_empty .txt_box p span.c_primary {font-weight:500;}
-.pd_review .area_rv_empty .txt_box div {display:flex; justify-content:center; margin-top:2.3rem; padding:2.3rem 0.5em; border:1px solid #ddd;}
+.pd_review .area_rv_empty .txt_box div {display:flex; justify-content:center; margin-top:2.3rem; padding:2.3rem 0.5em; border:0.1rem solid #ddd;}
 .pd_review .area_rv_empty .txt_box div dl {margin-left:12vw; font-size:1.5rem;}
 @media screen and (max-width:360px) {
     .pd_review .area_rv_empty .txt_box div dl {margin-left:5vw;}
@@ -1274,13 +1272,13 @@
 .pd_review .area_rv_average .average {margin-bottom:3rem;}
 .pd_review .area_rv_average .average .part_average {margin-top:1rem; text-align:left;}
 .pd_review .area_rv_average .average .part_average .pa_head{position:relative; height:2.4rem; line-height:2.4rem; padding-left:7.2rem;}
-.pd_review .area_rv_average .average .part_average .pa_head .tit{position:absolute; left:0; display:block; padding-top:0.5rem; width:6rem; height:2.4rem; border:1px solid #fd4802; font-size: 1.3rem; color:#fd4802; font-weight:300; line-height:1; border-radius:2.2rem; text-align:center;}
+.pd_review .area_rv_average .average .part_average .pa_head .tit{position:absolute; left:0; display:block; padding-top:0.5rem; width:6rem; height:2.4rem; border:0.1rem solid #fd4802; font-size: 1.3rem; color:#fd4802; font-weight:300; line-height:1; border-radius:2.2rem; text-align:center;}
 .pd_review .area_rv_average .average .part_average .pa_head dl dt {padding-left:0; width:5.2rem; font-size:1.5rem; font-weight:300; color:#222;}
 .pd_review .area_rv_average .average .part_average .pa_head dl dd {width:calc(100% - 5.2rem);}
 .pd_review .area_rv_average .average .part_average .pa_head dl dd .percent{font-size:1.5rem; font-weight:500; color:#222;}
 .pd_review .area_rv_average .average .part_average .pa_body{display:none; margin-top:1.3rem;}
 .pd_review .area_rv_average .average .btn_group_flex{margin-top:2.4rem;}
-.pd_review .area_rv_average .average .btn_group_flex button{border:1px solid #a7a7a7; color:#222;}
+.pd_review .area_rv_average .average .btn_group_flex button{border:0.1rem solid #a7a7a7; color:#222;}
 .pd_review .area_rv_average .average .btn_group_flex button span:after{content:''; display:inline-block; margin-left:0.8rem; width:1.0rem; height:7px; background: url(/images/mo/ico_btn_more.png) center center no-repeat; background-size:contain; vertical-align:middle;}
 .pd_review .area_rv_average .average .btn_group_flex button span:before{display:"inline-block"; content:'자세히보기'; vertical-align:middle;}
 .pd_review .area_rv_average .average .btn_group_flex button.active span:before{display:"inline-block"; content:'접기'; }
@@ -1323,8 +1321,8 @@
 .pd_review .area_rv_photo .photo_list button span{margin-top:0.5vw; display:block; font-size:1.2rem; position:relative; top:0.6rem}
 .pd_review .area_rv_all {}
 .pd_review .area_rv_all h6 span {display:inline-block; margin-left:5px; color:#666; font-weight:200;}
-.pd_review .area_rv_all .review_list {border-top:1px solid #ddd;}
-.pd_review .area_rv_all .review_list > ul > li {padding:3rem 0; border-bottom:1px solid #ddd; }
+.pd_review .area_rv_all .review_list {border-top:0.1rem solid #ddd;}
+.pd_review .area_rv_all .review_list > ul > li {padding:3rem 0; border-bottom:0.1rem solid #ddd; }
 .pd_review .area_rv_all .review_list > ul > li .review {}
 .pd_review .area_rv_all .review_list .review .info_box {}
 .pd_review .area_rv_all .review_list .review .info_box .star_score {float:left}
@@ -1333,7 +1331,7 @@
 .pd_review .area_rv_all .review_list .review .info_box .star_score .star .progbar {display:inline-block; height:100%; background:#fd4802; vertical-align:top;}
 .pd_review .area_rv_all .review_list .review .info_box .writer {float:right;}
 .pd_review .area_rv_all .review_list .review .info_box .writer span {position:relative; margin-left:1.1rem; padding-left:1.1rem; color:#888; font-size:1.1rem;}
-.pd_review .area_rv_all .review_list .review .info_box .writer span::after {content:''; position:absolute; left:0; top:50%; transform:translateY(-50%); height:8px; width:1px; background:#ddd;}
+.pd_review .area_rv_all .review_list .review .info_box .writer span::after {content:''; position:absolute; left:0; top:50%; transform:translateY(-50%); height:8px; width:0.1rem; background:#ddd;}
 .pd_review .area_rv_all .review_list .review .info_box .writer span:first-child {margin-left:0; padding-left:0}
 .pd_review .area_rv_all .review_list .review .info_box .writer span:first-child::after {display:none;}
 .pd_review .area_rv_all .review_list .review .response_box {margin-top:1.4rem;}
@@ -1719,8 +1717,9 @@
 .dp .dp_outlets .outlets_visual img {width: 100%;}
 .dp .dp_outlets .outlets_visual .swiper-pagination-fraction {bottom: 4rem ; width:auto; left: 2rem; background: rgba(34,34,34,.5); color: #fff; font-weight: 300;padding:0.5rem 0.7rem; line-height: 1; font-size: 1.2rem; border-radius:2rem;}
 .dp .dp_outlets .outlets_visual .swiper-pagination-current {font-weight: 600;}
-.dp .dp_outlets .outlets_visual .txtWrap {position: absolute; left: 2rem; bottom: 9rem; color: fff;}
-.dp .dp_outlets .outlets_visual .txtWrap p {color: #fff; font-size: 3rem; font-weight: 500; line-height: 1.2;}
+.dp .dp_outlets .outlets_visual .txtWrap {position: absolute; left: 2rem; bottom: 9rem; color: #222;}
+.dp .dp_outlets .outlets_visual .txtWrap.w {color: #fff;}
+.dp .dp_outlets .outlets_visual .txtWrap p {font-size: 3rem; font-weight: 500; line-height: 1.2;}
 .dp .dp_outlets .outlets_visual .txtWrap p.txt_xs {font-size: 1.4rem; margin-top: 1.6rem; font-weight: 300;}
 .dp .dp_outlets .dp_cate_list {margin:-1.2rem 0;}
 .dp .dp_outlets .dp_cate_list:after {content:''; display: block; clear: both;}
@@ -2249,8 +2248,8 @@
 
 /* 상품아이콘*/
 .itemBadge {margin:2.0rem 0.5rem 0; margin-top:1rem; font-size: 0px; overflow:hidden;}
-.itemBadge [class*="badge"] {display:inline-block; height:2.2rem; margin:0.5rem 0.5rem 0 0; padding:0 0.8rem; border:1px solid #888888; background: #fff; color:#888888; font-size: 1.1rem; font-weight: 300; line-height: 21px;}
-.itemBadge [class*="badge"]:first-child {margin-left:0}
+.itemBadge [class*="badge"] {display:inline-block; height:2.2rem; margin:0.5rem 0.2rem 0 0; padding:0 0.5rem; background: #fff; color:#888888; font-size: 0.9rem; font-weight: 300; line-height: 2.2rem;}
+.itemBadge [class*="badge"]:first-child {margin-left:0;}
 .itemBadge .badge13 {background:#f5f5f5; border-color:#f5f5f5;}
 
 /* 상품코멘트*/
@@ -2313,8 +2312,9 @@
 .br .br_main .submain_visual img {width: 100%;}
 .br .br_main .submain_visual .swiper-pagination-fraction {position:absolute; bottom: 4rem ; width:auto; left: 2rem; background: rgba(34,34,34,.5); color: #fff; font-weight: 300;padding:0.5rem 0.7rem; line-height: 1; font-size: 1.2rem; border-radius:2rem;}
 .br .br_main .submain_visual .swiper-pagination-current {font-weight: 600;}
-.br .br_main .submain_visual .txtWrap {position: absolute; left: 2rem; bottom: 9rem; color: fff;}
-.br .br_main .submain_visual .txtWrap p {color: #fff; font-size: 3rem; font-weight: 500; line-height: 1.2;}
+.br .br_main .submain_visual .txtWrap {position: absolute; left: 2rem; bottom: 9rem; color: #222;}
+.br .br_main .submain_visual .txtWrap.w {color: #fff;}
+.br .br_main .submain_visual .txtWrap p {font-size: 3rem; font-weight: 500; line-height: 1.2;}
 .br .br_main .submain_visual .txtWrap p.txt_xs {font-size: 1.4rem; margin-top: 1.6rem; font-weight: 300;}
 .br .br_main .br_top_info{position:relative; margin-top:-1rem;}
 .br .br_main .br_top_info .br_subtitle{text-align:left;}
@@ -2393,11 +2393,11 @@
 .br .br_lookbook .title { font-size: 1.3rem; font-weight: 300; color:#888; margin-bottom:2rem;}
 .br .br_lookbook .title em{color:#222; font-weight:500;}
 .br .br_lookbook .inner { margin-bottom: 0; padding-bottom: 0; padding-top:3rem;}
-.br .br_lookbook .inner .lb_text {padding:2rem 2rem 0}
+.br .br_lookbook .inner .lb_text {padding:2rem 2rem;min-height: 11.2rem;}
 .br .br_lookbook .inner .lb_text p { height: 3.4rem; overflow: hidden; margin: 0 0 2.4rem; font-size: 1.2rem; font-weight: 300; line-height: 1.8rem;}
-.br .br_lookbook .inner .lb_text .text_cont{display:none; height: 3.4rem; overflow: hidden; margin: 0 0 2.4rem; font-size: 1.2rem; font-weight: 300; line-height: 1.8rem;}
+.br .br_lookbook .inner .lb_text .text_cont{display:none; height: auto;overflow: hidden; overflow: hidden; margin: 0 0 2.4rem; font-size: 1.2rem; font-weight: 300; line-height: 1.8rem;}
 .br .br_lookbook .inner .lb_text .text_cont.active{display:block;}
-.br .br_lookbook .inner .lb_text .btn { width: 100%; height: 2.4rem; text-align: center; margin: 0 0 1rem; font-size: 1.2rem; border:0px none;}
+.br .br_lookbook .inner .lb_text .btn { width: 100%; height: 2.4rem; text-align: center; margin: 0 0 1rem; margin-bottom: -2rem; font-size: 1.2rem; border:0px none;}
 .br .br_lookbook .inner .lb_text .btn > p{display:inline}
 .br .br_lookbook .inner .lb_text .btn > span{display:inline-block; width:1.2rem; height:0.7rem; background:url(/images/mo/br_arrow_down.png); margin-left:0.5rem; margin-bottom:0.1rem}
 .br .br_inlookbook{margin-bottom:1.2rem; padding-bottom:4rem;}
@@ -2413,7 +2413,7 @@
 .br .br_otherbrand {margin-top:1.2rem;}
 .br .br_otherbrand .thumb {display:block; position:relative; width:100%; height:0; padding-top:100%; background:#f5f5f5;}
 .br .br_otherbrand .thumb img {position:absolute; left:0; top:50%; transform:translateY(-50%); width:100%; z-index:1}
-.br .br_otherbrand .txt {margin-top:1rem; padding:0px 0.5rem 0px}
+.br .br_otherbrand .txt {margin-top:1rem; padding:0px 0.5rem 0px;}
 .br .br_otherbrand .txt .tt {display:block; display: -webkit-box; text-overflow:ellipsis; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; color:#222; font-weight:500; font-size:1.3rem; word-break:keep-all; white-space:normal;}
 .br .br_otherbrand .txt .date {display:block; margin-top:1.5rem; color:#888; font-size:1.4rem; font-weight:300;}
 /* 브랜드 - br_search */

+ 14 - 34
src/main/webapp/ux/mo/js/common_m.js

@@ -54,54 +54,28 @@ $(document).ready(function() {
         //2. 쿠키설정
         var category = getCookie("category"); //setCookie("category")로 세팅한 category 변수 명
         var scrollPoint = getCookie("scrollPoint"); //setCookie("scrollPoint")로 세팅한 스크롤 위치
-        console.log(scrollPoint);
         var currentCategory = "mainScrollPoint"; //이벤트 발생 후 새로 로드된 현재 페이지의 카테고리 지정
 
         //3.스크롤 값 가져오기
         $('a').on("click", function(){
-            // window.onbeforeunload = function(event) {
-                var scrollPoint = (document.documentElement && document.documentElement.scrollTop) 
-                   || document.body.scrollTop;
-                setCookie("category", "mainScrollPoint"); // 쿠키에서 사용할 category에 사용자 정의 카테고리명 세팅
-                setCookie("scrollPoint", scrollPoint); // 쿠키에 스크롤 위치 세팅
-                 console.log("vvbbbbbbbbb");
-            // function frm_submit(){
-                //스크롤 위치 저장
-                if($(this).attr('href') !== '#none' || $(this).attr('href') !== '' || $(this).attr('href') !== 'javascript:void(0)'){
-              
-                //    console.log($(this).attr('href'));
-                //    location.href="pd_deal_detail.html";
+                //스크롤 위치 저장 - a태그 href에 'html' 문자열이 있는 경우
+                //if($(this).hasAttribute('class') === true){
+                //    console.log("bvb");
+                //}
+                if($(this).attr('href').indexOf('html') !== -1){
+                    var scrollPoint = (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop;
+                    setCookie("category", "mainScrollPoint"); // 쿠키에서 사용할 category에 사용자 정의 카테고리명 세팅
+                    setCookie("scrollPoint", scrollPoint); // 쿠키에 스크롤 위치 세팅
                }
-               console.log(scrollPoint);
-    
-                    //    $("#frm").submit();
-                    // $(window).scroll(function(){
-                    //     console.log(scrollPoint);
-                    // });
-                    // window.onbeforeunload = function(e) {
-                    //     lastHeight = $(document).scrollTop();
-                    //     console.log(lastHeight);
-                    //     console.log("vv");
-                    // };
-                // }
-        //    frm_submit();
         });
 
         //4. 뒤로가기 시 이전페이지 스크롤 이동
         window.onpageshow = function(event) {
-            console.log(window.onpageshow);
             if ( event.persisted || (window.performance && window.performance.navigation.type == 2)) {
             // Back Forward Cache로 브라우저가 로딩될 경우 혹은 브라우저 뒤로가기 했을 경우
-            // alert("히스토리백!!!!");
                 if (category != "" && category != 'undefined' 
                     && category == currentCategory && scrollPoint != "" && scrollPoint != 'undefined') {
-                    console.log("zzzzzzzzzz");
-
                     $('html').animate({scrollTop : scrollPoint}, 400);
-
-
-                    //  window.scroll(0, scrollPoint);
-                    //  body.scrollTop(scrollPoint);
                 }
              setCookie("category", "");
              setCookie("scrollPoint", "");
@@ -130,6 +104,9 @@ $(document).ready(function() {
                 $(".btn_top").animate({
                     "opacity": 1
                 }, 50);
+                $("footer .btn_back").animate({
+                    "opacity": 1
+                }, 50);
                 
                 // 210521_ 위치고정으로 변경
                 // if ( $(window).scrollTop() > ($("footer").position().top - $("footer").height() )) {
@@ -141,6 +118,9 @@ $(document).ready(function() {
                 $(".btn_top").animate({
                     "opacity": 0
                 }, 50);
+                $("footer .btn_back").animate({
+                    "opacity": 0
+                }, 50);
             }
 
             // 210409_스크롤시 헤더 백그라운드 흰색

+ 18 - 0
src/main/webapp/ux/style24_link.js

@@ -34,6 +34,7 @@ const _PAGE_PRIVACY_POLICY = _frontUrl + "/customer/privacy/policy/form";
 const _PAGE_CUSTOMER_CONSENT_USERINFO = _frontUrl + "/customer/consent/useinfo/form";				// 정보 이용동의 : Yes24 로그인
 const _PAGE_USE_TERMS_LAYER = _frontUrl + "/customer/use/terms/layer";								// 회원가입 > 이용약관
 const _PAGE_PRIVACY_POLICY_LAYER = _frontUrl + "/customer/privacy/policy/layer";					// 회원가입 > 개인정보취급방침
+const _PAGE_SUPPLY_COMPANY_LAYER = _frontUrl + "/customer/supply/company/layer";					// 회원가입 > 개인정보취급방침
 const _PAGE_PRIVACY_TRUST_LAYER = _frontUrl + "/customer/privacy/trust/layer";						// 회원가입 > 개인정보취급위탁
 const _PAGE_NON_CUSTOMER_ORDER_CONFIRM = _frontUrl + "/customer/noncust/order/confirm/form";		// 고객 > 비회원주문확인
 
@@ -1005,12 +1006,29 @@ function cfnPrivacyPolicyLayer(mallGb) {
 	}
 	if ($('#policiesPrivacyPop').length == 0) {
 		$('body').append(str);
+	} else {
+		$("#policiesPrivacyPop").modal("show");
 	}
 	let params = {}
 	params.mallGb = mallGb;
 	cfnOpenLayer(_PAGE_PRIVACY_POLICY_LAYER, 'policiesPrivacyPop', params);
 }
 
+function cfnSupplyComanyLayer(mallGb) {
+	let str;
+	if (_frontGb === 'P') {
+		str ='<div class="modal fade pd_pop psptn_pop" id="supplyCompanyPop" tabIndex="-1" role="dialog" aria-labelledby="psptnLabel" aria-hidden="true"></div>'
+	} else {
+		str = '<div class="modal pop_full fade" id="supplyCompanyPop" role="dialog" aria-labelledby="partnersPopFullLabel" aria-hidden="true"></div>';
+	}
+	if($('#supplyCompanyPop').length == 0) {
+		$('body').append(str);
+	}
+	let params = {}
+	params.mallGb = mallGb;
+	cfnOpenLayer(_PAGE_SUPPLY_COMPANY_LAYER,'supplyCompanyPop');
+}
+
 /**
  * @type   : function
  * @access : public