فهرست منبع

Merge branch 'develop' into bin2107

bin2107 5 سال پیش
والد
کامیت
048b0bec99
29فایلهای تغییر یافته به همراه2551 افزوده شده و 2153 حذف شده
  1. 201 109
      src/main/java/com/style24/front/biz/service/TsfCartService.java
  2. 4 3
      src/main/java/com/style24/front/biz/web/TsfCartController.java
  3. 2 2
      src/main/java/com/style24/front/biz/web/TsfOrderController.java
  4. 2 0
      src/main/java/com/style24/persistence/domain/Cart.java
  5. 61 0
      src/main/webapp/WEB-INF/views/mob/goods/GoodsDeliveryFormMob.html
  6. 101 0
      src/main/webapp/WEB-INF/views/mob/goods/GoodsDetailDeliveryFormMob.html
  7. 6 6
      src/main/webapp/WEB-INF/views/mob/goods/GoodsDetailFormMob.html
  8. 4 7
      src/main/webapp/WEB-INF/views/mob/goods/GoodsDetailQnaFormMob.html
  9. 79 79
      src/main/webapp/WEB-INF/views/mob/goods/GoodsOtherFormMob.html
  10. 74 74
      src/main/webapp/WEB-INF/views/mob/order/OrderCustemerInfoMob.html
  11. 213 213
      src/main/webapp/WEB-INF/views/mob/order/OrderDcAmtInfoMob.html
  12. 162 162
      src/main/webapp/WEB-INF/views/mob/order/OrderDeliveryAddrInfoMob.html
  13. 98 98
      src/main/webapp/WEB-INF/views/mob/order/OrderEntryInfoMob.html
  14. 183 183
      src/main/webapp/WEB-INF/views/mob/order/OrderFreegiftInfoMob.html
  15. 176 176
      src/main/webapp/WEB-INF/views/mob/order/OrderListInfoMob.html
  16. 71 71
      src/main/webapp/WEB-INF/views/mob/order/OrderMadeInfoMob.html
  17. 107 107
      src/main/webapp/WEB-INF/views/mob/order/OrderPaymentInfoMob.html
  18. 280 280
      src/main/webapp/WEB-INF/views/mob/popup/DelvAddrAddPopMob.html
  19. 146 146
      src/main/webapp/WEB-INF/views/mob/popup/DelvAddrChangePopMob.html
  20. 295 295
      src/main/webapp/WEB-INF/views/mob/popup/DelvAddrModifyPopMob.html
  21. 57 34
      src/main/webapp/WEB-INF/views/web/cart/CartListAjaxFormWeb.html
  22. 4 2
      src/main/webapp/WEB-INF/views/web/goods/GoodsDealDetailFormWeb.html
  23. 3 5
      src/main/webapp/WEB-INF/views/web/goods/GoodsDetailDeliveryFormWeb.html
  24. 1 1
      src/main/webapp/WEB-INF/views/web/goods/GoodsReviewFormWeb.html
  25. 73 36
      src/main/webapp/ux/mo/css/common_m.css
  26. 40 16
      src/main/webapp/ux/mo/css/layout_m.css
  27. 29 11
      src/main/webapp/ux/mo/css/style24_m.css
  28. 21 5
      src/main/webapp/ux/mo/js/common_m.js
  29. 58 32
      src/main/webapp/ux/style24_link.js

+ 201 - 109
src/main/java/com/style24/front/biz/service/TsfCartService.java

@@ -60,7 +60,10 @@ public class TsfCartService {
 	 * 세트 : goodsCd,
 	 * @param params
 	 */
-	public void saveCartInfo(Collection<Cart> params) {
+	public GagaMap saveCartInfo(Collection<Cart> params) {
+		GagaMap result = new GagaMap();
+		List<Integer> cartSqList = new ArrayList<>();
+
 		// 로그인 유무 확인 (로그인이 되어 있지 않으면 regNo 를 0으로 장바구니에 저장한다.)
 		Login login = new Login();
 		if(TsfSession.isLogin()) {
@@ -69,68 +72,153 @@ public class TsfCartService {
 			login.setCustNo(0);
 		}
 
+		String goodsType = params.iterator().next().getGoodsType();
+		String cartGb = params.iterator().next().getCartGb();
+		if(StringUtils.isEmpty(goodsType)) {
+			goodsType = params.iterator().next().getCartCompsList().iterator().next().getGoodsType();
+			cartGb    = params.iterator().next().getCartCompsList().iterator().next().getCartGb();
+		}
+
+		log.info("CHECK GOODS_TYPE ::::: {}", goodsType);
+
 		// 장바구니 상품 및 재고 가능 여부 체크
-		for (Cart param : params) {
-			param.setCustNo(login.getCustNo());
-			// 상품 마스터 정보 확인
-			Goods goods = new Goods();
-			goods.setGoodsCd(param.getGoodsCd());
-			goods.setFrontGb(TsfSession.getFrontGb());
-			goods.setSiteCd(TscConstants.Site.STYLE24.value());
-
-			goods = goodsService.getGoodsInfo(goods);
-
-			if (goods == null) {
-				throw new IllegalArgumentException("상품 정보가 존재하지 않습니다.");
-			}
-			if (TscConstants.GoodsStat.SOLDOUT.value().equals(goods.getGoodsStat())) {
-				throw new IllegalArgumentException("품절입니다.");
-			} else if (!TscConstants.GoodsStat.SOLDOUT.value().equals(goods.getGoodsStat()) && !TscConstants.GoodsStat.APPR.value().equals(goods.getGoodsStat())) {
-				throw new IllegalArgumentException("판매중인 상품이 아닙니다.");
-			} else if (param.getGoodsQty() > goods.getMaxOrdQty()) {
-				throw new IllegalArgumentException(goods.getGoodsNm() + " 상품의 최대 구매 수량은 " + goods.getMaxOrdQty() + " 입니다.");
-			} else if (param.getGoodsQty() < goods.getMinOrdQty()) {
-				throw new IllegalArgumentException(goods.getGoodsNm() + " 상품의 최소 구매 수량은 " + goods.getMinOrdQty() + " 입니다.");
-			}
+		if(TscConstants.GoodsType.SET.value().equals(goodsType)) {
+			for (Cart goodsParams : params) {
+				for (Cart param : goodsParams.getCartCompsList()) {
+					param.setCustNo(login.getCustNo());
+					// 상품 마스터 정보 확인
+					Goods goods = new Goods();
+					goods.setGoodsCd(param.getGoodsCd());
+					goods.setFrontGb(TsfSession.getFrontGb());
+					goods.setSiteCd(TscConstants.Site.STYLE24.value());
+
+					goods = goodsService.getGoodsInfo(goods);
+
+					if (goods == null) {
+						result.put("message", "상품 정보가 존재하지 않습니다.");
+						return result;
+					} else if (TscConstants.GoodsStat.SOLDOUT.value().equals(goods.getGoodsStat())) {
+						result.put("message", "품절입니다.");
+						return result;
+					} else if (!TscConstants.GoodsStat.SOLDOUT.value().equals(goods.getGoodsStat()) && !TscConstants.GoodsStat.APPR.value().equals(goods.getGoodsStat())) {
+						result.put("message", "판매중인 상품이 아닙니다.");
+						return result;
+					} else if (param.getGoodsQty() > goods.getMaxOrdQty()) {
+						result.put("message", goods.getGoodsNm() + " 상품의 최대 구매 수량은 " + goods.getMaxOrdQty() + " 입니다.");
+						return result;
+					} else if (param.getGoodsQty() < goods.getMinOrdQty()) {
+						result.put("message", goods.getGoodsNm() + " 상품의 최소 구매 수량은 " + goods.getMinOrdQty() + " 입니다.");
+						return result;
+					}
 
-			// 상품 재고 확인
-			GoodsStock checkParam = new GoodsStock();
-			checkParam.setGoodsCd(param.getGoodsCd());
-			checkParam.setItemCd(param.getItemCd());
-			checkParam.setOptCd(param.getOptCd());
-			checkParam.setGoodsQty(param.getGoodsQty());
-			checkParam.setGoodsType(param.getGoodsType());
-			String stockResult = goodsService.getCheckStock(checkParam);
+					// 상품 재고 확인
+					GoodsStock checkParam = new GoodsStock();
+					checkParam.setGoodsCd(param.getGoodsCd());
+					checkParam.setItemCd(param.getItemCd());
+					checkParam.setOptCd(param.getOptCd());
+					checkParam.setGoodsQty(param.getGoodsQty());
+					checkParam.setGoodsType(param.getGoodsType());
+					String stockResult = goodsService.getCheckStock(checkParam);
+
+					if (!"SUCCESS".equals(stockResult)) {
+						result.put("message", stockResult);
+						return result;
+					}
 
-			if (!"SUCCESS".equals(stockResult)) {
-				throw new IllegalArgumentException(stockResult);
+					// 금일 주문 수량 체크
+					if (!StringUtils.isEmpty(param.getCartGb()) && "O".equals(param.getCartGb())) {
+						int goodsCartCnt = 0;
+						if(param.getCustNo() != 0) {
+							goodsCartCnt = cartDao.getGoodsTodayOrderCnt(param);
+						}
+
+						if (param.getGoodsQty() + goodsCartCnt > goods.getDayMaxOrdQty()) {
+							result.put("message", "1일 구매한도 수량이 초과되었습니다.");
+							return result;
+						}
+					}
+				}
+
+				saveSetTypeCartInfo(params, cartSqList);
 			}
+		} else {
+			for (Cart param : params) {
+				param.setCustNo(login.getCustNo());
+				// 상품 마스터 정보 확인
+				Goods goods = new Goods();
+				goods.setGoodsCd(param.getGoodsCd());
+				goods.setFrontGb(TsfSession.getFrontGb());
+				goods.setSiteCd(TscConstants.Site.STYLE24.value());
+
+				goods = goodsService.getGoodsInfo(goods);
 
-			// 금일 주문 수량 체크
-			if (!StringUtils.isEmpty(param.getCartGb()) && "O".equals(param.getCartGb())) {
-				int goodsCartCnt = 0;
-				if(param.getCustNo() != 0) {
-					goodsCartCnt = cartDao.getGoodsTodayOrderCnt(param);
+				log.info("CHECK :::::::::::::::: 0 ::::::::::::::::::::::");
+
+				if (goods == null) {
+					log.info("CHECK :::::::::::::::: 1 ::::::::::::::::::::::");
+					result.put("message", "상품 정보가 존재하지 않습니다.");
+					return result;
+				} else if (TscConstants.GoodsStat.SOLDOUT.value().equals(goods.getGoodsStat())) {
+					log.info("CHECK :::::::::::::::: 2 ::::::::::::::::::::::");
+					result.put("message", "품절입니다");
+					return result;
+				} else if (!TscConstants.GoodsStat.SOLDOUT.value().equals(goods.getGoodsStat()) && !TscConstants.GoodsStat.APPR.value().equals(goods.getGoodsStat())) {
+					log.info("CHECK :::::::::::::::: 3 ::::::::::::::::::::::");
+					result.put("message", "판매중인 상품이 아닙니다.");
+					return result;
+				} else if (param.getGoodsQty() > goods.getMaxOrdQty()) {
+					log.info("CHECK :::::::::::::::: 4 ::::::::::::::::::::::");
+					result.put("message", goods.getGoodsNm() + " 상품의 최대 구매 수량은 " + goods.getMaxOrdQty() + " 입니다.");
+					return result;
+				} else if (param.getGoodsQty() < goods.getMinOrdQty()) {
+					log.info("CHECK :::::::::::::::: 5 ::::::::::::::::::::::");
+					result.put("message", goods.getGoodsNm() + " 상품의 최소 구매 수량은 " + goods.getMinOrdQty() + " 입니다.");
+					return result;
 				}
 
-				if (param.getGoodsQty() + goodsCartCnt > goods.getDayMaxOrdQty()) {
-					throw new IllegalArgumentException("1일 구매한도 수량이 초과되었습니다.");
+				log.info("CHECK :::::::::::::::: 6 ::::::::::::::::::::::");
+
+				// 상품 재고 확인
+				GoodsStock checkParam = new GoodsStock();
+				checkParam.setGoodsCd(param.getGoodsCd());
+				checkParam.setItemCd(param.getItemCd());
+				checkParam.setOptCd(param.getOptCd());
+				checkParam.setGoodsQty(param.getGoodsQty());
+				checkParam.setGoodsType(param.getGoodsType());
+				String stockResult = goodsService.getCheckStock(checkParam);
+
+				if (!"SUCCESS".equals(stockResult)) {
+					result.put("message", stockResult);
+					return result;
+				}
+
+				// 금일 주문 수량 체크
+				if (!StringUtils.isEmpty(param.getCartGb()) && "O".equals(param.getCartGb())) {
+					int goodsCartCnt = 0;
+					if(param.getCustNo() != 0) {
+						goodsCartCnt = cartDao.getGoodsTodayOrderCnt(param);
+					}
+
+					if (param.getGoodsQty() + goodsCartCnt > goods.getDayMaxOrdQty()) {
+						result.put("message", "1일 구매한도 수량이 초과되었습니다.");
+						return result;
+					}
 				}
 			}
-		}
 
-		// 장바구니 정보 수정
-		if (TscConstants.GoodsType.SET.value().equals(params.iterator().next().getGoodsType())) {
-			// 세트상품일 경우
-			saveSetTypeCartInfo(params);
-		} else {
-			// 세트 상품이 아닐 경우
-			saveNormalDealCartInfo(params);
+			saveNormalDealCartInfo(params, cartSqList);
 		}
+
+		result.put("cartSqList", cartSqList);
+		result.put("goodsType", goodsType);
+		result.put("cartGb", cartGb);
+		result.put("message", "SUCCESS");
+
+		return result;
 	}
 
 	@Transactional("shopTxnManager")
-	public void saveSetTypeCartInfo(Collection<Cart> params) {
+	public void saveSetTypeCartInfo(Collection<Cart> params, List<Integer> cartSqs) {
 		Cart cart = new Cart();
 		StringBuilder sb = new StringBuilder();
 
@@ -149,80 +237,82 @@ public class TsfCartService {
 		cart.setJsessionId(TscSession.getSessionId());
 
 		// 장바구니 보유 CART_SQ 쿼리
-		int i = 1;
-		for (Cart param : params) {
-			sb.append("SELECT CD.CART_SQ \n FROM TB_CART_DETAIL CD \n INNER JOIN TB_CART C \n ON CD.CART_SQ = C.CART_SQ \n WHERE C.CUST_NO = ");
-
-			if (cart.getCustNo() == 0) {
-				sb.append(cart.getCustNo()).append("\n AND JSESSION_ID = '").append(cart.getJsessionId()).append("'");
-			} else {
-				sb.append(cart.getCustNo());
-			}
-			sb.append("\n AND CD.ITEM_CD = '").append(param.getItemCd()).append("' \n AND CD.OPT_CD = '").append(param.getOptCd()).append("'");
-			if (i < params.size()) {
-				i++;
-				sb.append("\n UNION ALL \n");
+		for (Cart carts : params) {
+			int i = 1;
+			Collection<Cart> cartInfos = carts.getCartCompsList();
+			sb = new StringBuilder();
+			for(Cart param : cartInfos) {
+				sb.append("SELECT CD.CART_SQ \n FROM TB_CART_DETAIL CD \n INNER JOIN TB_CART C \n ON CD.CART_SQ = C.CART_SQ \n WHERE C.CUST_NO = ");
+
+				if (cart.getCustNo() == 0) {
+					sb.append(cart.getCustNo()).append("\n AND JSESSION_ID = '").append(cart.getJsessionId()).append("'");
+				} else {
+					sb.append(cart.getCustNo());
+				}
+				sb.append("\n AND CD.ITEM_CD = '").append(param.getItemCd()).append("' \n AND CD.OPT_CD = '").append(param.getOptCd()).append("'");
+				if (i < cartInfos.size()) {
+					i++;
+					sb.append("\n UNION ALL \n");
+				}
 			}
-		}
-
-		// cart 정보 세팅
-		cart.setContentsLoc(params.iterator().next().getContentsLoc());
-		cart.setAfLinkCd(params.iterator().next().getAfLinkCd());
-		cart.setIthrCd(params.iterator().next().getIthrCd());
-		cart.setPlanDtlSq(params.iterator().next().getPlanDtlSq());
-		cart.setGoodsCd(params.iterator().next().getGoodsCd());
-		cart.setGoodsQty(params.iterator().next().getGoodsQty());
-		cart.setGoodsType(params.iterator().next().getGoodsType());
-		cart.setItemCdSql(sb.toString());
 
-		Collection<Cart> cartSqList = null;
-
-		if (!StringUtils.isEmpty(params.iterator().next().getCartGb()) && "C".equals(params.iterator().next().getCartGb())) {
-			cart.setCartGb(TscConstants.CartGb.CART.value());
-			// 같은 장바구니 상품 확인
-			cartSqList = cartDao.selectHasSetItemCartList(cart);
-		} else if (!StringUtils.isEmpty(params.iterator().next().getCartGb()) && "O".equals(params.iterator().next().getCartGb())) {
-			if ("P".equals(TsfSession.getFrontGb())) {
-				cart.setCartGb(TscConstants.CartGb.PC_ORDER.value());
+			// cart 정보 세팅
+			cart.setContentsLoc(cartInfos.iterator().next().getContentsLoc());
+			cart.setAfLinkCd(cartInfos.iterator().next().getAfLinkCd());
+			cart.setIthrCd(cartInfos.iterator().next().getIthrCd());
+			cart.setPlanDtlSq(cartInfos.iterator().next().getPlanDtlSq());
+			cart.setGoodsCd(cartInfos.iterator().next().getGoodsCd());
+			cart.setGoodsQty(cartInfos.iterator().next().getGoodsQty());
+			cart.setGoodsType(cartInfos.iterator().next().getGoodsType());
+			cart.setItemCdSql(sb.toString());
+
+			Collection<Cart> cartSqList = null;
+
+			if (!StringUtils.isEmpty(cartInfos.iterator().next().getCartGb()) && "C".equals(cartInfos.iterator().next().getCartGb())) {
+				cart.setCartGb(TscConstants.CartGb.CART.value());
+				// 같은 장바구니 상품 확인
+				cartSqList = cartDao.selectHasSetItemCartList(cart);
+			} else if (!StringUtils.isEmpty(cartInfos.iterator().next().getCartGb()) && "O".equals(cartInfos.iterator().next().getCartGb())) {
+				if ("P".equals(TsfSession.getFrontGb())) {
+					cart.setCartGb(TscConstants.CartGb.PC_ORDER.value());
+				} else {
+					cart.setCartGb(TscConstants.CartGb.MOB_ORDER.value());
+				}
 			} else {
-				cart.setCartGb(TscConstants.CartGb.MOB_ORDER.value());
+				cart.setCartGb(TscConstants.CartGb.CREATE_ORDER.value());
 			}
-		} else {
-			cart.setCartGb(TscConstants.CartGb.CREATE_ORDER.value());
-		}
 
-		if (cartSqList != null && cartSqList.size() > 0) {		// 장바구니 기존재
-			if (cartSqList.size() > 1) {						// 장바구니 조회 결과 이상시 insert or select 수정 필요
-				throw new IllegalArgumentException("장바구니 조회에 실패하였습니다. 관리자에게 문의해주세요.");
+			if (cartSqList != null && cartSqList.size() > 0) {		// 장바구니 기존재
+				if (cartSqList.size() > 1) {						// 장바구니 조회 결과 이상시 insert or select 수정 필요
+					throw new IllegalArgumentException("장바구니 조회에 실패하였습니다. 관리자에게 문의해주세요.");
+				} else {
+					cart.setCartSq(cartSqList.iterator().next().getCartSq());
+					cartSqs.add(cart.getCartSq());
+					cartDao.updateCartInfo(cart);               // 장바구니 정보 수정
+					cartDao.insertCartHst(cart);                // 장바구니 수정 이력 저장
+				}
 			} else {
-				cart.setCartSq(cartSqList.iterator().next().getCartSq());
-				cartDao.updateCartInfo(cart);               // 장바구니 정보 수정
-				cartDao.insertCartHst(cart);                // 장바구니 수정 이력 저장
-			}
+				cartDao.insertCartInfo(cart);					// 장바구니 마스터 정보 저장
+				cartDao.insertCartHst(cart);                    // 장바구니 이력 정보 저장
 
-			for (Cart param : params) {
-				param.setCartSq(cart.getCartSq());
-			}
-		} else {
-			cartDao.insertCartInfo(cart);					// 장바구니 마스터 정보 저장
-			cartDao.insertCartHst(cart);                    // 장바구니 이력 정보 저장
-
-			TsfSession.setAttribute("cartSqArr", cart.getCartSq()+"");
+				cartSqs.add(cart.getCartSq());
+				TsfSession.setAttribute("cartSqArr", cart.getCartSq()+"");
 
-			for (Cart param : params) {
-				param.setCartSq(cart.getCartSq());
-				param.setRegNo(cart.getRegNo());
-				param.setCustNo(cart.getCustNo());
-				param.setUpdNo(cart.getUpdNo());
+				for (Cart param : cartInfos) {
+					param.setCartSq(cart.getCartSq());
+					param.setRegNo(cart.getRegNo());
+					param.setCustNo(cart.getCustNo());
+					param.setUpdNo(cart.getUpdNo());
 
-				cartDao.insertCartDetailInfo(param);		// 장바구니 상세 저장
-				cartDao.insertCartDetailHst(param);         // 장바구니 상세 이력 저장
+					cartDao.insertCartDetailInfo(param);		// 장바구니 상세 저장
+					cartDao.insertCartDetailHst(param);         // 장바구니 상세 이력 저장
+				}
 			}
 		}
 	}
 
 	@Transactional("shopTxnManager")
-	public void saveNormalDealCartInfo(Collection<Cart> params) {
+	public void saveNormalDealCartInfo(Collection<Cart> params, List<Integer> cartSqs) {
 		Cart cart = new Cart();
 		// 로그인 정보
 		if(TsfSession.isLogin()) {
@@ -265,6 +355,7 @@ public class TsfCartService {
 					throw new IllegalArgumentException("장바구니 조회에 실패하였습니다. 관리자에게 문의해주세요.");
 				} else {
 					item.setCartSq(cartSqList.iterator().next());
+					cartSqs.add(item.getCartSq());
 					cartDao.updateCartInfo(item);
 					cartDao.insertCartHst(item);                // 장바구니 수정 이력 저장
 				}
@@ -274,6 +365,7 @@ public class TsfCartService {
 				cartDao.insertCartDetailInfo(item);				// 장바구니 상세 저장
 				cartDao.insertCartDetailHst(item);				// 장바구니 수정 이력 저장
 
+				cartSqs.add(item.getCartSq());
 				sendCartSqList.add(item.getCartSq() + "");
 			}
 		}

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

@@ -100,15 +100,16 @@ public class TsfCartController extends TsfBaseController {
 	 */
 	@ResponseBody
 	@PostMapping("/save")
-	public Collection<Cart> createCart(@RequestBody Collection<Cart> params) {
+	public GagaMap createCart(@RequestBody Collection<Cart> params) {
+		GagaMap result = new GagaMap();
 		try {
-			cartService.saveCartInfo(params);
+			result = cartService.saveCartInfo(params);
 		} catch (Exception e) {
 			e.printStackTrace();
 			throw new IllegalArgumentException();
 		}
 
-		return params;
+		return result;
 	}
 
 	// @ResponseBody

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

@@ -141,9 +141,9 @@ public class TsfOrderController extends TsfBaseController {
 		}
 		
 		// TODO
-		int[] arr = {1,2,158,150,149,159,148,153,20,12};
+		/*int[] arr = {1,2,158,150,149,159,148,153,20,12};
 		order.setCartSqArr(arr);		// 장바구니시퀀스
-		order.setShotDelvUseYn("Y");	// 장바구니총알배송사용여부
+		order.setShotDelvUseYn("Y");	// 장바구니총알배송사용여부*/
 		
 		// 1.1 카트시퀀스가 정보가 없을때 처리 장바구니로 이동 
 		if (order.getCartSqArr() == null) {

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

@@ -88,4 +88,6 @@ public class Cart extends TscBaseDomain {
 	private Integer updCartSq;	// 업데이트할 장바구니번호
 	private Integer delCartSq;	// 삭제할 장바구니번호(0이면 삭제할 장바구니번호 없음)
 
+	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
+	private Cart[] cartGoodsList;		// 장바구니 단품코드
 }

+ 61 - 0
src/main/webapp/WEB-INF/views/mob/goods/GoodsDeliveryFormMob.html

@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  :GoodsDeliveryFormMob.html
+ * @desc	: 상품 배송안내 팝업
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE		 AUTHOR	  DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.04.06   eskim		최초 작성
+ *******************************************************************************
+ -->
+<div class="modal-dialog" role="document">
+	<div class="modal-content">
+		<div class="modal-header">
+			<!-- 해당상품 -->
+			<div class="item_blk">
+				<div class="item_prod" th:with="imgGoodsUrl=${@environment.getProperty('upload.goods.view')}, uxImgUrl=${@environment.getProperty('domain.uximage')}">
+					<div class="item_state">
+						<a href="javascript:void(0);" class="itemLink">
+							<div class="itemPic">
+								<img alt="" class="vLHTC pd_img" th:src="${imgGoodsUrl+'/'+goodsInfo.sysImgNm}" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
+							</div>
+							<p class="itemBrand" th:text="${goodsInfo.brandGroupNm}">NBA</p>
+							<div class="itemName" th:text="${goodsInfo.goodsFullNm}">남성</div>
+						</a>
+					</div>
+				</div>
+			</div>
+			<!-- //해당상품 -->
+		</div>
+		<div class="modal-body" id="goodsDealDelivery">
+		</div>
+	</div>
+</div>
+<a href="javascript:void(0);" rel="modal:close" onclick="cfCloseLayer('layer_goods_delivery')" class="close-modal">Close</a>
+<script th:inline="javascript">
+/*<![CDATA[*/
+		
+	// 구성 상품 상세 배송정보
+	var fnGoodsDetailDelivery = function(params) {
+		gagajf.ajaxSubmit("/goods/detail/delivery/frame", "html", "goodsDealDelivery", params);
+	}
+	
+	$(document).ready( function() {
+
+		// 배송정보 
+		var params = new Object();
+		let goodsCd = [[${goodsInfo.goodsCd}]]
+		params.goodsCd = goodsCd;
+		fnGoodsDetailDelivery(params);  // ajax html
+		
+	});
+	
+/*]]>*/
+</script>
+ </html>

+ 101 - 0
src/main/webapp/WEB-INF/views/mob/goods/GoodsDetailDeliveryFormMob.html

@@ -0,0 +1,101 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : GoodsDetailDeliveryFormMob.html
+ * @desc	: 딜 구상상품 배송정보 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE		 AUTHOR		 DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.04.07   eskim	   최초 작성
+ *******************************************************************************
+ -->
+ <div class="pd_delivery">
+	<div class="inner">
+		<div class="delivery">
+			<div class="pop_cont">
+				<h2>배송안내</h2>
+				<h3>구분</h3>
+				<th:block th:if="${goodsInfo.quikDelvYn = 'Y'}" ><p class="dot">총알배송(오전 10시까지 주문 시)</p></th:block>
+				<th:block th:unless="${goodsInfo.quikDelvYn = 'Y'}" ><p class="dot">일반배송</p></th:block>
+			</div>
+			<div class="pop_cont">
+				<h3>배송비</h3>
+				<p class="dot">
+					<th:block th:if="${goodsInfo.delvFee <= 0}">무료배송</th:block>
+					<th:block th:if="${goodsInfo.delvFee > 0}" th:text="${#numbers.formatInteger(goodsInfo.delvFee, 0,'COMMA')}" ></th:block>원
+					<th:block th:if="${goodsInfo.minOrdAmt > 0}">(<th:block th:text="${#numbers.formatInteger(goodsInfo.minOrdAmt, 0,'COMMA')}" ></th:block>원 이상 무료배송)</th:block>
+				</p>
+			</div>
+			<div class="pop_cont">
+				<h3>배송업체</h3>
+				<p class="dot"><th:block th:if="${deliveryInfo != null}" th:text="${deliveryInfo.shipCompNm}" ></th:block></p>
+			</div>
+			<div class="pop_cont">
+				<h3>기간</h3>
+				<p class="dot">총알배송 : 오늘 밤 12시까지 도착 (토/일/공휴일 제외)</p>
+				<p class="dot">일반배송 : 결제 완료 후 2~3일 이내 (일/공휴일 제외)</p>
+				<p class="dot">단, 제주도나 도서 지방은 별도요금이 부과될 수 있습니다. 날씨나 택배사 사정에 따라 배송이 지연될 수 있습니다.</p>
+			</div>
+		</div>
+	</div>
+	<div class="inner wide">
+		<div class="pop_board"></div>
+	</div>
+	<div class="inner">
+		<div class="change">
+			<div class="pop_cont">
+				<h2>반품/교환안내</h2>
+				<table class="pop_table">
+					<tbody>
+					<tr>
+						<th>반품/교환<br>배송업체</th>
+						<td><th:block  th:if="${deliveryInfo != null}" th:text="${deliveryInfo.shipCompNm}" ></th:block></td>
+					</tr>
+					<tr>
+						<th>반품배송비</th>
+						<td><th:block  th:if="${deliveryInfo != null and deliveryInfo.delvFeeCd != null}" th:text="${#numbers.formatInteger(deliveryInfo.rtnDelvFee, 0,'COMMA')}" ></th:block>원(최소 배송비가 무료인 경우 왕복 배송비 <th:block th:if="${deliveryInfo != null and deliveryInfo.delvFeeCd != null}" th:text="${#numbers.formatInteger((deliveryInfo.rtnDelvFee+deliveryInfo.delvFee), 0,'COMMA')}" ></th:block>원 부과)
+						</td>
+					</tr>
+					<tr>
+						<th>교환배송비</th>
+						<td><th:block  th:if="${deliveryInfo != null and deliveryInfo.delvFeeCd != null}" th:text="${#numbers.formatInteger((deliveryInfo.rtnDelvFee+deliveryInfo.delvFee), 0,'COMMA')}" ></th:block>원</td>
+					</tr>
+					<tr>
+						<th>반품/교환 주소</th>
+						<td><th:block th:if="${deliveryInfo != null and deliveryInfo.delvFeeCd != null}" th:text="${deliveryInfo.rtnLocZipcode +' '+ deliveryInfo.rtnLocBaseAddr +'<br/>'+ deliveryInfo.rtnLocDtlAddr }"></th:block></td>
+					</tr>
+				</tbody></table>
+			</div>
+			<div class="pop_cont">
+				<h3>반품/교환 신청</h3>
+				<p class="dot">반품/교환 시 먼저 고객센터(1544-5336)나 일대일 문의로 반품/교환 신청 후 상품을 발송 해 주시기 바랍니다.</p>
+				<p class="dot">마이페이지 &gt; 나의쇼핑 &gt; 정상주문내역에서 하실 수 있습니다.</p>
+				<p class="dot">반품/교환 신청시 상품의 반송입고 확인 후 환불/교환 처리해 드립니다.</p>
+			</div>
+			<div class="pop_cont">
+				<h3>반품시기</h3>
+				<p class="dot">상품의 반품/교환은 상품 수령 후 7일 이내 가능합니다. 단, 상품을 수령하셨을 때의 상태를 그대로 보존해 주셔야 합니다.</p>
+			</div>
+			<div class="pop_cont">
+				<h3>반품/교환 불가사유</h3>
+				<p class="dot">반품/교환 가능기간을 초과하였을 경우.</p>
+				<p class="dot">상품 및 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우.</p>
+				<p class="dot">고객님의 요청에 따른 주문제작 상품의 경우.</p>
+				<p class="dot">상품을 착용 또는 설치하였거나, 상품의 일부를 소비하였을 경우.</p>
+				<p class="dot">상품의 포장을 개봉하여 사용 및 설치가 완료 되거나 상품의 가치가 훼손되었을 경우.</p>
+				<p class="dot">구매한 상품의 구성품(세트, 기프트상품, 부속품, 의류부착 악세사리 등)이 누락 된 경우.</p>
+				<p class="dot">신발, 그릇류의 박스포장을 포함, 상품이 판매할 수 없게 훼손 된 경우(신발박스 등의 파손, 박스포장 위 송장 부착, 박스 훼손/파손/찢어집, 택 분실 등)</p>
+			</div>
+			<div class="pop_cont" th:if="${deliveryInfo != null and deliveryInfo.delvFeeCd != null and not #strings.isEmpty(deliveryInfo.note)}">
+				<h3>기타사항</h3>
+				<th:block th:if="${not #strings.isEmpty(deliveryInfo.note)}" th:utext="${#strings.unescapeJava(#strings.escapeJava(deliveryInfo.note))}"></th:block>
+			</div>
+		</div>
+	</div>
+</div>	
+</html>

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

@@ -524,16 +524,16 @@
 					</li>
 					<li>
 						<div class="ex_shipping">
-							<a href="#none" id="btn_pdDelivery_Pop">
+							<a href="javascript:void(0)" id="btn_pdDelivery_Pop" th:onclick="cfGoodsDelivery([[${goodsInfo.goodsCd}]])">
 								<span class="tit">배송/교환/반품</span>
 							</a>
 							<!-- 해당 배송정보 선택노출 -->
-							<span class="txt_shippingfee">배송비 2,500원</span>
-							<span class="txt_shippingfee">배송비 2,500원 (4,000원 이상 무료배송)</span>
-							<span class="txt_shippingfee">무료배송</span>
-							<span class="txt_shippingfee">총알배송(오전 10시까지 주문 시)</span>
+							<span class="txt_shippingfee" th:if="${goodsInfo.delvFee > 0}">배송비 <th:block th:text="${#numbers.formatInteger(goodsInfo.delvFee, 0,'COMMA')}" ></th:block>원
+													<th:block th:if="${goodsInfo.minOrdAmt > 0}">(<th:block th:text="${#numbers.formatInteger(goodsInfo.minOrdAmt, 0,'COMMA')}" ></th:block>원 이상 무료배송)</th:block>
+							</span>
+							<span class="txt_shippingfee" th:if="${goodsInfo.delvFee <= 0}">무료배송</span>
+							<span class="txt_shippingfee" th:if="${goodsInfo.quikDelvYn = 'Y'}">총알배송(오전 10시까지 주문 시)</span>
 							<!-- //해당 배송정보 선택노출 -->
-							
 						</div>
 					</li>
 				</ul>

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

@@ -15,6 +15,10 @@
  *******************************************************************************
  -->
 <!-- 상품문의 리스트 내용 -->
+<form id="goodsQnaForm" name="goodsQnaForm" action="#" th:action="@{'/goods/qna/list'}">
+<input type="hidden" name="pageNo"  value ="1"/>
+<input type="hidden" name="pageSize" value ="20"/>
+<input type="hidden" name="relGoodsCd" th:value ="${goodsInfo.goodsCd}"/>
 <div class="pd_qnalist">
 	<div class="info_txt">
 		<ul>
@@ -56,10 +60,6 @@
 		<div><button type="button" class="btn btn_dark" id="btn_pdQnaWrite_pop" th:onclick="cfGoodsQngCreate([[${goodsInfo.goodsCd}]] )"><span>상품 문의하기</span></button></div>
 	</div>
 </div>
-<form id="goodsQnaForm" name="goodsQnaForm" action="#" th:action="@{'/goods/qna/list'}">
-<input type="hidden" name="pageNo"  value ="1"/>
-<input type="hidden" name="pageSize" value ="20"/>
-<input type="hidden" name="relGoodsCd" th:value ="${goodsInfo.goodsCd}"/>
 </form>
 <script src="/ux/plugins/jquery/jquery.history.min.js"></script>
 <script src="/ux/plugins/gaga/gaga.infinite.scrollSession.js"></script>
@@ -149,11 +149,8 @@
 			tag += '</li>\n';
 			
 		});
-		
-		
 		return tag;
 	}
-	
 
 	// 인피니트 스크롤 초기화
 	var fnGoodsQnaInfiniteScrollInit = function(){

+ 79 - 79
src/main/webapp/WEB-INF/views/mob/goods/GoodsOtherFormMob.html

@@ -1,80 +1,80 @@
-<!DOCTYPE html>
-<html lang="ko"
-	xmlns:th="http://www.thymeleaf.org">
-<!--
- *******************************************************************************
- * @source  : GoodsOtherFormMob.html
- * @desc    : 상품 안내
- *============================================================================
- * STYLE24
- * Copyright(C) 2020 TSIT, All rights reserved.
- *============================================================================
- * VER  DATE         AUTHOR      DESCRIPTION
- * ===  ===========  ==========  =============================================
- * 1.0  2021.04.05   eskim        최초 작성
- *******************************************************************************
- -->
-<th:block th:if="${goodsList != null and !goodsList.empty}" th:with="imgGoodsUrl=${@environment.getProperty('upload.goods.view')}, uxImgUrl=${@environment.getProperty('domain.uximage')}">
-	<h3 class="tit">
-	<th:block th:if="${params.goodsOtherGb =='tmtb'}" th:text="${'함께하면 할인되는 다다익선 상품'}"></th:block>
-	<th:block th:if="${params.goodsOtherGb =='together'}" th:text="${'이 상품과 함께 본 상품'}"></th:block>
-	<th:block th:if="${params.goodsOtherGb =='recommend'}" th:text="${params.brandGroupNm +' 추천상품'}"></th:block>
-	<th:block th:if="${params.goodsOtherGb =='like'}" th:text="${'이 상품과 비슷한 상품'}"></th:block>
-	</h3>
-	<div class="area_slider">
-		<div class="swiper-container swiper-container-initialized swiper-container-horizontal">
-			<div class="swiper-wrapper">
-				<div class="swiper-slide" th:each="goodsInfo, status : ${goodsList}">
-					<div class="item_prod">
-						<div class="item_state">
-							<button type="button" class="itemLike" th:classappend="${goodsInfo.wishYn == 'Y'}? 'active' : ''"  onclick="cfnPutWishList(this);" th:attr="goodsCd=${goodsInfo.goodsCd}, ithrCd=${params.ithrCd}, contentsLoc=${params.contentsLoc}, planDtlSq=''">관심상품 추가</button>
-							<a href="javascript:void(0);" onclick="cfnGoToGoodsDetail([[${goodsInfo.goodsCd}]], '',[[${params.ithrCd}]],'[[${params.contentsLoc}]]','','pc_detail');" class="itemLink" >
-								<div class="itemPic">
-									<img alt="" class="vLHTC pd_img" th:src="${imgGoodsUrl+'/'+goodsInfo.sysImgNm}" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
-								</div>
-								<p class="itemBrand" th:text="${goodsInfo.brandGroupNm}">BRAND NAME1</p>
-								<div class="itemName" th:text="${goodsInfo.goodsFullNm}">남성 로고 자카드 방풍 패딩</div>
-								<p class="itemPrice">
-									<span class="itemPrice_original" th:if="${goodsInfo.listPrice > goodsInfo.currPrice}"  th:text="${#numbers.formatInteger(goodsInfo.listPrice, 0,'COMMA')}">1,000,000</span>
-									<th:block th:text="${#numbers.formatInteger(goodsInfo.currPrice, 0,'COMMA')}"></th:block>
-									<span class="itemPercent" th:if="${goodsInfo.dcRate > 0}" th:text="|${#numbers.formatDecimal(goodsInfo.dcRate,0,0)}%|">30%</span>
-								</p>
-							</a>
-						</div>
-					</div>
-				</div>
-			</div>
-		</div>
-	</div>
-
-<script th:inline="javascript">
-/*<![CDATA[*/
-
-	//슬라이드 - 함께하면 할인되는 다다익선 상품
-	var togetherItemSwiper = new Swiper('.pd .pd_together .area_slider .swiper-container', {
-		slidesPerView: 3,
-		spaceBetween: 8,
-	});  
-
-	//슬라이드 - 이 상품과 함께 본 상품 
-	var otherItemSwiper = new Swiper('.pd .pd_clickother .area_slider .swiper-container', {
-		slidesPerView: 2,
-		spaceBetween: 8,
-	});	
-	//슬라이드 - 동일브랜드 상품 추천
-	var rcmdItemSwiper = new Swiper('.pd .pd_samebrand .area_slider .swiper-container', {
-		slidesPerView: 3,
-		spaceBetween: 8,
-	}); 
-
-	//슬라이드 - 이 상품과 비슷한 상품 
-	var relateItemSwiper = new Swiper('.pd .pd_relate .area_slider .swiper-container', {
-		slidesPerView: 3,
-		spaceBetween: 8,
-	});	 
-	
-/*]]>*/
-</script>	
-
-</th:block>
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : GoodsOtherFormMob.html
+ * @desc    : 상품 안내
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.04.05   eskim        최초 작성
+ *******************************************************************************
+ -->
+<th:block th:if="${goodsList != null and !goodsList.empty}" th:with="imgGoodsUrl=${@environment.getProperty('upload.goods.view')}, uxImgUrl=${@environment.getProperty('domain.uximage')}">
+	<h3 class="tit">
+	<th:block th:if="${params.goodsOtherGb =='tmtb'}" th:text="${'함께하면 할인되는 다다익선 상품'}"></th:block>
+	<th:block th:if="${params.goodsOtherGb =='together'}" th:text="${'이 상품과 함께 본 상품'}"></th:block>
+	<th:block th:if="${params.goodsOtherGb =='recommend'}" th:text="${params.brandGroupNm +' 추천상품'}"></th:block>
+	<th:block th:if="${params.goodsOtherGb =='like'}" th:text="${'이 상품과 비슷한 상품'}"></th:block>
+	</h3>
+	<div class="area_slider">
+		<div class="swiper-container swiper-container-initialized swiper-container-horizontal">
+			<div class="swiper-wrapper">
+				<div class="swiper-slide" th:each="goodsInfo, status : ${goodsList}">
+					<div class="item_prod">
+						<div class="item_state">
+							<button type="button" class="itemLike" th:classappend="${goodsInfo.wishYn == 'Y'}? 'active' : ''"  onclick="cfnPutWishList(this);" th:attr="goodsCd=${goodsInfo.goodsCd}, ithrCd=${params.ithrCd}, contentsLoc=${params.contentsLoc}, planDtlSq=''">관심상품 추가</button>
+							<a href="javascript:void(0);" onclick="cfnGoToGoodsDetail([[${goodsInfo.goodsCd}]], '',[[${params.ithrCd}]],'[[${params.contentsLoc}]]','','pc_detail');" class="itemLink" >
+								<div class="itemPic">
+									<img alt="" class="vLHTC pd_img" th:src="${imgGoodsUrl+'/'+goodsInfo.sysImgNm}" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
+								</div>
+								<p class="itemBrand" th:text="${goodsInfo.brandGroupNm}">BRAND NAME1</p>
+								<div class="itemName" th:text="${goodsInfo.goodsFullNm}">남성 로고 자카드 방풍 패딩</div>
+								<p class="itemPrice">
+									<span class="itemPrice_original" th:if="${goodsInfo.listPrice > goodsInfo.currPrice}"  th:text="${#numbers.formatInteger(goodsInfo.listPrice, 0,'COMMA')}">1,000,000</span>
+									<th:block th:text="${#numbers.formatInteger(goodsInfo.currPrice, 0,'COMMA')}"></th:block>
+									<span class="itemPercent" th:if="${goodsInfo.dcRate > 0}" th:text="|${#numbers.formatDecimal(goodsInfo.dcRate,0,0)}%|">30%</span>
+								</p>
+							</a>
+						</div>
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>
+
+<script th:inline="javascript">
+/*<![CDATA[*/
+
+	//슬라이드 - 함께하면 할인되는 다다익선 상품
+	var togetherItemSwiper = new Swiper('.pd .pd_together .area_slider .swiper-container', {
+		slidesPerView: 3,
+		spaceBetween: 8,
+	});  
+
+	//슬라이드 - 이 상품과 함께 본 상품 
+	var otherItemSwiper = new Swiper('.pd .pd_clickother .area_slider .swiper-container', {
+		slidesPerView: 2,
+		spaceBetween: 8,
+	});	
+	//슬라이드 - 동일브랜드 상품 추천
+	var rcmdItemSwiper = new Swiper('.pd .pd_samebrand .area_slider .swiper-container', {
+		slidesPerView: 3,
+		spaceBetween: 8,
+	}); 
+
+	//슬라이드 - 이 상품과 비슷한 상품 
+	var relateItemSwiper = new Swiper('.pd .pd_relate .area_slider .swiper-container', {
+		slidesPerView: 3,
+		spaceBetween: 8,
+	});	 
+	
+/*]]>*/
+</script>	
+
+</th:block>
 </html>

+ 74 - 74
src/main/webapp/WEB-INF/views/mob/order/OrderCustemerInfoMob.html

@@ -1,74 +1,74 @@
-<!DOCTYPE html>
-<html lang="ko" xmlns:th="http://www.thymeleaf.org">
-<!--
- *******************************************************************************
- * @source  : OrderCustemerInfoMob.html
- * @desc    : 고객정보 Page
- *============================================================================
- * STYLE24
- * Copyright(C) 2020 TSIT, All rights reserved.
- *============================================================================
- * VER  DATE         AUTHOR      DESCRIPTION
- * ===  ===========  ==========  =============================================
- * 1.0  2021.04.05   jsh77b     최초 작성
- *******************************************************************************
- -->
-<input type="hidden" name="custNm" 		th:value="${custemerInfo.custNm}"/>
-<input type="hidden" name="email" 		th:value="${custemerInfo.email}"/>
-<input type="hidden" name="cellPhnno" 	th:value="${custemerInfo.cellPhnno}"/>
-	
-<!-- 주문고객 -->
-<div class="foldGroup">
-	<ul>
-		<li class="fold_mbinfo">
-			<!-- 주문고객정보 -->
-			<div class="fold_head">
-				<a href="javascript:void(0)">
-					<div>
-						<div class="fold_tit">
-							<span>주문고객</span>
-						</div>
-						<div class="data">
-							<span th:text="${custemerInfo.custNm}"></span> 
-							<span th:text="${custemerInfo.cellPhnno}"></span>
-						</div>
-					</div>
-				</a>
-			</div>
-			<div class="fold_cont" style="display: none;">
-				<div class="area_mbinfo">
-					<dl>
-						<div>
-							<dt><span class="sr-only">주문자명</span></dt>
-							<dd th:text="${custemerInfo.custNm}"></dd>
-						</div>
-						<div>
-							<dt><span class="sr-only">이메일</span></dt>
-							<dd th:text="${custemerInfo.email}"></dd>
-						</div>
-						<div>
-							<dt><span class="sr-only">휴대폰 번호</span></dt>
-							<dd th:text="${custemerInfo.cellPhnno}"></dd>
-						</div>
-					</dl>
-				</div>
-			</div> <!-- //주문고객정보 -->
-		</li>
-	</ul>
-</div>
-<!-- //주문고객 -->
-
-<script th:inline="javascript">
-var dispYn = [[${order.dispYn}]]; // 노출여부
-
-//컨텐츠 호출
-$(document).ready( function() {
-	// 화면펼침
-	if (dispYn == "Y") {
-		$("#custemerInfo .fold_head").addClass("on");
-		$("#custemerInfo .fold_cont").css("display", "block");
-	}
-});
-</script>
-
-</html>
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : OrderCustemerInfoMob.html
+ * @desc    : 고객정보 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.04.05   jsh77b     최초 작성
+ *******************************************************************************
+ -->
+<input type="hidden" name="custNm" 		th:value="${custemerInfo.custNm}"/>
+<input type="hidden" name="email" 		th:value="${custemerInfo.email}"/>
+<input type="hidden" name="cellPhnno" 	th:value="${custemerInfo.cellPhnno}"/>
+	
+<!-- 주문고객 -->
+<div class="foldGroup">
+	<ul>
+		<li class="fold_mbinfo">
+			<!-- 주문고객정보 -->
+			<div class="fold_head">
+				<a href="javascript:void(0)">
+					<div>
+						<div class="fold_tit">
+							<span>주문고객</span>
+						</div>
+						<div class="data">
+							<span th:text="${custemerInfo.custNm}"></span> 
+							<span th:text="${custemerInfo.cellPhnno}"></span>
+						</div>
+					</div>
+				</a>
+			</div>
+			<div class="fold_cont" style="display: none;">
+				<div class="area_mbinfo">
+					<dl>
+						<div>
+							<dt><span class="sr-only">주문자명</span></dt>
+							<dd th:text="${custemerInfo.custNm}"></dd>
+						</div>
+						<div>
+							<dt><span class="sr-only">이메일</span></dt>
+							<dd th:text="${custemerInfo.email}"></dd>
+						</div>
+						<div>
+							<dt><span class="sr-only">휴대폰 번호</span></dt>
+							<dd th:text="${custemerInfo.cellPhnno}"></dd>
+						</div>
+					</dl>
+				</div>
+			</div> <!-- //주문고객정보 -->
+		</li>
+	</ul>
+</div>
+<!-- //주문고객 -->
+
+<script th:inline="javascript">
+var dispYn = [[${order.dispYn}]]; // 노출여부
+
+//컨텐츠 호출
+$(document).ready( function() {
+	// 화면펼침
+	if (dispYn == "Y") {
+		$("#custemerInfo .fold_head").addClass("on");
+		$("#custemerInfo .fold_cont").css("display", "block");
+	}
+});
+</script>
+
+</html>

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

@@ -1,214 +1,214 @@
-<!DOCTYPE html>
-<html lang="ko" xmlns:th="http://www.thymeleaf.org">
-<!--
- *******************************************************************************
- * @source  : OrderDcAmtInfoWeb.html
- * @desc    : 할인혜택 Page
- *============================================================================
- * STYLE24
- * Copyright(C) 2020 TSIT, All rights reserved.
- *============================================================================
- * VER  DATE         AUTHOR      DESCRIPTION
- * ===  ===========  ==========  =============================================
- * 1.0  2021.02.01   jsh77b     최초 작성
- *******************************************************************************
- -->
-
-<!-- 할인/혜택 사용 -->
-<div class="foldGroup">
-	<ul>
-		<li>
-			<div class="fold_head">
-				<a href="javascript:void(0)">
-					<div>
-						<div class="fold_tit">
-							<span>할인/혜택 사용</span>
-						</div>
-						<div class="data maxdisc">
-							<div class="form_field">
-								<input id="chk-maxdisc" type="checkbox" checked="">
-								<label for="chk-maxdisc"><span>최대 할인혜택을 바로
-										적용하세요!</span><br>
-								<span class="maxdisc_amount">(<em>3,000</em>원 할인)
-								</span></label>
-							</div>
-						</div>
-					</div>
-				</a>
-			</div>
-			<div class="fold_cont">
-				<div class="area_seldiscount">
-					<dl>
-						<div>
-							<dt class="sr-only">할인혜택 바로 적용</dt>
-							<dd>
-								<div class="form_field">
-									<input id="chk-maxdisc01" type="checkbox" checked="">
-									<label for="chk-maxdisc01"><span>최대 할인혜택을 바로
-											적용하세요!</span>&nbsp;<span class="maxdisc_amount">(<em>3,000</em>원
-											할인)
-									</span></label>
-								</div>
-							</dd>
-						</div>
-						<div>
-							<dt>
-								할인쿠폰 <span class="maxdisc_amount">총&nbsp;<em>3,000</em>원
-									할인
-								</span>
-							</dt>
-							<dd>
-								<div class="sale_coupon_box">
-									<div>
-										<button type="button" id="btn_couponModify_pop"
-											class="btn btn_default btn_sm">
-											<span>쿠폰변경</span>
-										</button>
-									</div>
-									<div class="form_field">
-										<div class="input_wrap">
-											<input type="text" class="form_control" maxlength="13"
-												placeholder="할인코드를 입력해주세요.">
-											<button type="button" class="btn btn_dark btn_sm">
-												<span>적용</span>
-											</button>
-										</div>
-									</div>
-								</div>
-							</dd>
-						</div>
-						<div>
-							<dt>배송비 쿠폰</dt>
-							<dd>
-								<div class="dlvr_fee_box">
-									<div class="form_field">
-										<div class="select_custom coupon_list">
-											<!-- 비활성화시 disabled 추가 -->
-											<div class="combo">
-												<div class="select">
-													<div class="dlvr_coupon">
-														<p class="empty">선택</p>
-													</div>
-												</div>
-											</div>
-										</div>
-									</div>
-									<div class="form_field">
-										<div class="select_custom" disabled>
-											<div class="combo">
-												<div class="select">
-													<div class="dlvr_coupon">
-														<p class="empty">적용 가능한 쿠폰이 없습니다</p>
-													</div>
-												</div>
-												<ul class="list">
-													<!-- 선택처리 class="selected" / 선택불가 aria-disabled="true"추가  -->
-													<li class="selected">
-														<div class="dlvr_coupon">
-															<p class="empty">적용 가능한 쿠폰이 없습니다</p>
-														</div>
-													</li>
-												</ul>
-											</div>
-										</div>
-									</div>
-								</div>
-							</dd>
-						</div>
-					</dl>
-				</div>
-				<div class="area_selpoint">
-					<dl>
-						<div>
-							<dt>선 포인트 사용</dt>
-							<dd>
-								<div class="form_field">
-									<div>
-										<input type="radio" name="rdi-beforpoint"
-											id="rdi-beforpoint1" value="" checked=""> <label
-											for="rdi-beforpoint1"><span>사용 안함</span></label>
-									</div>
-									<div>
-										<input type="radio" name="rdi-beforpoint"
-											id="rdi-beforpoint2" value=""> <label
-											for="rdi-beforpoint2"><span>사용함</span></label> <span
-											class="useable_point">(<em>1,500P</em>&nbsp;사용 가능)
-										</span>
-									</div>
-								</div>
-							</dd>
-						</div>
-						<div>
-							<dt>
-								STYLE24 포인트 <span>결제금액의 최대 40%까지 사용가능</span>
-							</dt>
-							<dd>
-								<div class="form_field">
-									<!-- 스타일 포인트 3만원 이상 결제시 노출 -->
-									<div class="input_wrap">
-										<input type="text" class="form_control" maxlength=""
-											placeholder="사용할 포인트를 입력해주세요.">
-										<button type="button" class="btn btn_dark btn_sm">
-											<span>적용</span>
-										</button>
-									</div>
-									<!-- 스타일 포인트 3만원 이상 결제시 노출 -->
-									<!-- 스타일 포인트 3만원 미만 결제시 노출 -->
-									<div class="input_wrap">
-										<input type="text" class="form_control" maxlength=""
-											placeholder="3만원 이상 결제시에만 포인트 사용이 가능합니다."
-											readonly="readonly" onfocus="this.blur();">
-										<button type="button" class="btn btn_dark btn_sm">
-											<span>적용</span>
-										</button>
-									</div>
-									<!-- //스타일 포인트 3만원 미만 결제시 노출 -->
-									<p>
-										<span class="remain_point">보유:&nbsp;<em>25,500</em>P
-										</span>
-									</p>
-								</div>
-							</dd>
-						</div>
-						<div>
-							<dt>상품권</dt>
-							<dd>
-								<div class="form_field">
-									<div class="input_wrap">
-										<input type="text" class="form_control" maxlength=""
-											placeholder="사용할 금액을 입력해주세요.">
-										<button type="button" class="btn btn_dark btn_sm">
-											<span>적용</span>
-										</button>
-									</div>
-									<p>
-										<span class="remain_point">보유:&nbsp;<em>25,500</em>원
-										</span>
-									</p>
-								</div>
-							</dd>
-						</div>
-					</dl>
-				</div>
-			</div>
-		</li>
-	</ul>
-</div>
-<!-- //할인/혜택 사용 -->
-
-<script th:inline="javascript">
-var dispYn = [[${order.dispYn}]]; // 노출여부
-
-//컨텐츠 호출
-$(document).ready( function() {
-	// 화면펼침
-	if (dispYn == "Y") {
-		$("#dcAmtInfo .fold_head").addClass("on");
-		$("#dcAmtInfo .fold_cont").show();
-	}
-	
-	//할인쿠폰(배송비) 선택
-    var od_dlvrfee_coupon_selecter = new sCombo('.od .odPayment .dlvr_fee_box .select_custom.coupon_list');
-});
-</script>
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : OrderDcAmtInfoWeb.html
+ * @desc    : 할인혜택 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.02.01   jsh77b     최초 작성
+ *******************************************************************************
+ -->
+
+<!-- 할인/혜택 사용 -->
+<div class="foldGroup">
+	<ul>
+		<li>
+			<div class="fold_head">
+				<a href="javascript:void(0)">
+					<div>
+						<div class="fold_tit">
+							<span>할인/혜택 사용</span>
+						</div>
+						<div class="data maxdisc">
+							<div class="form_field">
+								<input id="chk-maxdisc" type="checkbox" checked="">
+								<label for="chk-maxdisc"><span>최대 할인혜택을 바로
+										적용하세요!</span><br>
+								<span class="maxdisc_amount">(<em>3,000</em>원 할인)
+								</span></label>
+							</div>
+						</div>
+					</div>
+				</a>
+			</div>
+			<div class="fold_cont">
+				<div class="area_seldiscount">
+					<dl>
+						<div>
+							<dt class="sr-only">할인혜택 바로 적용</dt>
+							<dd>
+								<div class="form_field">
+									<input id="chk-maxdisc01" type="checkbox" checked="">
+									<label for="chk-maxdisc01"><span>최대 할인혜택을 바로
+											적용하세요!</span>&nbsp;<span class="maxdisc_amount">(<em>3,000</em>원
+											할인)
+									</span></label>
+								</div>
+							</dd>
+						</div>
+						<div>
+							<dt>
+								할인쿠폰 <span class="maxdisc_amount">총&nbsp;<em>3,000</em>원
+									할인
+								</span>
+							</dt>
+							<dd>
+								<div class="sale_coupon_box">
+									<div>
+										<button type="button" id="btn_couponModify_pop"
+											class="btn btn_default btn_sm">
+											<span>쿠폰변경</span>
+										</button>
+									</div>
+									<div class="form_field">
+										<div class="input_wrap">
+											<input type="text" class="form_control" maxlength="13"
+												placeholder="할인코드를 입력해주세요.">
+											<button type="button" class="btn btn_dark btn_sm">
+												<span>적용</span>
+											</button>
+										</div>
+									</div>
+								</div>
+							</dd>
+						</div>
+						<div>
+							<dt>배송비 쿠폰</dt>
+							<dd>
+								<div class="dlvr_fee_box">
+									<div class="form_field">
+										<div class="select_custom coupon_list">
+											<!-- 비활성화시 disabled 추가 -->
+											<div class="combo">
+												<div class="select">
+													<div class="dlvr_coupon">
+														<p class="empty">선택</p>
+													</div>
+												</div>
+											</div>
+										</div>
+									</div>
+									<div class="form_field">
+										<div class="select_custom" disabled>
+											<div class="combo">
+												<div class="select">
+													<div class="dlvr_coupon">
+														<p class="empty">적용 가능한 쿠폰이 없습니다</p>
+													</div>
+												</div>
+												<ul class="list">
+													<!-- 선택처리 class="selected" / 선택불가 aria-disabled="true"추가  -->
+													<li class="selected">
+														<div class="dlvr_coupon">
+															<p class="empty">적용 가능한 쿠폰이 없습니다</p>
+														</div>
+													</li>
+												</ul>
+											</div>
+										</div>
+									</div>
+								</div>
+							</dd>
+						</div>
+					</dl>
+				</div>
+				<div class="area_selpoint">
+					<dl>
+						<div>
+							<dt>선 포인트 사용</dt>
+							<dd>
+								<div class="form_field">
+									<div>
+										<input type="radio" name="rdi-beforpoint"
+											id="rdi-beforpoint1" value="" checked=""> <label
+											for="rdi-beforpoint1"><span>사용 안함</span></label>
+									</div>
+									<div>
+										<input type="radio" name="rdi-beforpoint"
+											id="rdi-beforpoint2" value=""> <label
+											for="rdi-beforpoint2"><span>사용함</span></label> <span
+											class="useable_point">(<em>1,500P</em>&nbsp;사용 가능)
+										</span>
+									</div>
+								</div>
+							</dd>
+						</div>
+						<div>
+							<dt>
+								STYLE24 포인트 <span>결제금액의 최대 40%까지 사용가능</span>
+							</dt>
+							<dd>
+								<div class="form_field">
+									<!-- 스타일 포인트 3만원 이상 결제시 노출 -->
+									<div class="input_wrap">
+										<input type="text" class="form_control" maxlength=""
+											placeholder="사용할 포인트를 입력해주세요.">
+										<button type="button" class="btn btn_dark btn_sm">
+											<span>적용</span>
+										</button>
+									</div>
+									<!-- 스타일 포인트 3만원 이상 결제시 노출 -->
+									<!-- 스타일 포인트 3만원 미만 결제시 노출 -->
+									<div class="input_wrap">
+										<input type="text" class="form_control" maxlength=""
+											placeholder="3만원 이상 결제시에만 포인트 사용이 가능합니다."
+											readonly="readonly" onfocus="this.blur();">
+										<button type="button" class="btn btn_dark btn_sm">
+											<span>적용</span>
+										</button>
+									</div>
+									<!-- //스타일 포인트 3만원 미만 결제시 노출 -->
+									<p>
+										<span class="remain_point">보유:&nbsp;<em>25,500</em>P
+										</span>
+									</p>
+								</div>
+							</dd>
+						</div>
+						<div>
+							<dt>상품권</dt>
+							<dd>
+								<div class="form_field">
+									<div class="input_wrap">
+										<input type="text" class="form_control" maxlength=""
+											placeholder="사용할 금액을 입력해주세요.">
+										<button type="button" class="btn btn_dark btn_sm">
+											<span>적용</span>
+										</button>
+									</div>
+									<p>
+										<span class="remain_point">보유:&nbsp;<em>25,500</em>원
+										</span>
+									</p>
+								</div>
+							</dd>
+						</div>
+					</dl>
+				</div>
+			</div>
+		</li>
+	</ul>
+</div>
+<!-- //할인/혜택 사용 -->
+
+<script th:inline="javascript">
+var dispYn = [[${order.dispYn}]]; // 노출여부
+
+//컨텐츠 호출
+$(document).ready( function() {
+	// 화면펼침
+	if (dispYn == "Y") {
+		$("#dcAmtInfo .fold_head").addClass("on");
+		$("#dcAmtInfo .fold_cont").show();
+	}
+	
+	//할인쿠폰(배송비) 선택
+    var od_dlvrfee_coupon_selecter = new sCombo('.od .odPayment .dlvr_fee_box .select_custom.coupon_list');
+});
+</script>
 </html>

+ 162 - 162
src/main/webapp/WEB-INF/views/mob/order/OrderDeliveryAddrInfoMob.html

@@ -1,163 +1,163 @@
-<!DOCTYPE html>
-<html lang="ko" xmlns:th="http://www.thymeleaf.org">
-<!--
- *******************************************************************************
- * @source  : OrderDeliveryAddrInfoMob.html
- * @desc    : 배송정보 Page
- *============================================================================
- * STYLE24
- * Copyright(C) 2020 TSIT, All rights reserved.
- *============================================================================
- * VER  DATE         AUTHOR      DESCRIPTION
- * ===  ===========  ==========  =============================================
- * 1.0  2021.04.05   jsh77b     최초 작성
- *******************************************************************************
- -->
-<!-- 배송지정보 -->
-<input type="hidden" name="recipNm" 		th:value="${deliveryAddrInfo.recipNm}"/>
-<input type="hidden" name="recipPhnno" 		th:value="${deliveryAddrInfo.recipPhnno}"/>
-<input type="hidden" name="recipZipcode" 	th:value="${deliveryAddrInfo.recipZipcode}"/>
-<input type="hidden" name="recipBaseAddr" 	th:value="${deliveryAddrInfo.recipBaseAddr}"/>
-<input type="hidden" name="recipDtlAddr" 	th:value="${deliveryAddrInfo.recipDtlAddr}"/>
-<input type="hidden" name="delvMemo" 		th:value="${deliveryAddrInfo.delvMemo}"/>
-<input type="hidden" name="foreignBuyYn" 	th:value="${order.foreignBuyYn}"/>
-<input type="hidden" name="orderMadeYn" 	th:value="${order.orderMadeYn}"/>
-
-<div class="foldGroup shipfold">
-	<ul>
-		<li>
-			<div class="fold_head">
-				<a href="javascript:void(0)">
-					<div>
-						<div class="fold_tit"><span>배송지 정보</span></div>
-						<div class="data">
-							<span id="recipAddr" th:text="${deliveryAddrInfo.recipBaseAddr} + '   ' + ${deliveryAddrInfo.recipDtlAddr}"></span>
-						</div>
-					</div>
-				</a>
-			</div>
-			<div class="fold_cont">
-				<!-- 배송지 정보 변경가능 -->
-				<div class="ship_info ship_edit">
-					<button type="button" id="btn_adrsChange_pop" class="btn_popup">
-						<span>배송지 변경</span>
-					</button>
-					<dl>
-						<div class="company">
-							<dt><span class="sr-only">배송지명</span></dt>
-							<dd>
-								<th:block th:text="${deliveryAddrInfo.recipNm}"></th:block> 
-								<span class="icon_tag"> 
-									<th:block th:if="${deliveryAddrInfo.defaultYn} == 'Y'">
-										<em class="tag_stype1">기본배송지</em> 
-									</th:block>
-									<em class="tag_stype2 shotDelv">총알배송</em>
-								</span>
-							</dd>
-						</div>
-						<div class="phone">
-							<dt><span class="sr-only">휴대폰 번호</span></dt>
-							<dd th:text="${deliveryAddrInfo.recipPhnno}"></dd>
-						</div>
-						<div class="addr">
-							<dt><span class="sr-only">배송주소</span></dt>
-							<dd th:text="${deliveryAddrInfo.recipBaseAddr} + '    ' + ${deliveryAddrInfo.recipDtlAddr}"></dd>
-						</div>
-						
-						<div class="ship_request ship_select">
-							<span>배송요청 사항</span>
-							<div class="ship_option">
-								<div class="form_field">
-									<div class="select_custom delivery_list"> <!-- 비활성화시 disabled 추가 -->
-										<div class="combo">
-											<div class="select" th:text="${deliveryAddrInfo.delvMemo}">선택</div>
-											<ul class="list">
-												<!-- 선택처리 class="selected" / 선택불가 aria-disabled="true"추가  -->
-												<li>문 앞</li> 
-												<li>직접 받고 부재 시 문 앞</li>
-												<li>경비실</li> 
-												<li>택배함</li>
-												<li class="select_etc">기타사항</li>
-											</ul>
-										</div>
-									</div>
-								</div>
-							</div>
-							<div class="ship_etc">
-								<div class="form_text etc">
-									<input type="text" name="delvMemoText" placeholder="보관 장소만 입력 (필수)" maxlength="30" disabled>
-									<p class="desc_txt">보관 장소 외 다른 내용 입력시 통보 없이 삭제 될 수 있습니다.</p>
-								</div>
-							</div>
-						</div>
-					</dl>
-				</div>
-				<!-- //배송지 정보 변경가능 -->
-			</div>
-		</li>
-	</ul>
-</div>
-<!-- //배송지정보 -->
-
-<script th:inline="javascript">
-var dispYn = [[${order.dispYn}]]; // 노출여부
-var delvMemo = [[${deliveryAddrInfo.delvMemo}]]; // 노출여부
-
-//화면노출
-var deliveryAddrInfoDispYn = function(temp) {
-	if (temp == "Y") {
-		$("#deliveryAddrInfo .fold_head").addClass("on");
-		$("#deliveryAddrInfo .fold_cont").show();
-	} else {
-		$("#deliveryAddrInfo .fold_head").removeClass("on");
-		$("#deliveryAddrInfo .fold_cont").hide();
-	}
-}
-
-//컨텐츠 호출
-$(document).ready( function() {
-	var delvMemoArr = ["문 앞", "직접받고 부재시 문 앞", "경비실", "택배함"];
-	var tempMemo = true;
-	
-	$("#orderForm .ship_request .delivery_list li").removeClass("selected");
-	
-	// 배송요청사항설정
-	for (i=0 ; i<delvMemoArr.length ; i++) {
-		if (delvMemoArr[i] == delvMemo) {
-			tempMemo = false;
-		}
-	}
-
-	// 배송메모설정
-	$("#orderForm .ship_request .delivery_list li").each(function(){
-		if (delvMemo == $(this).text()) {
-			$(this).addClass("selected");
-		}
-	});
-	
-	if (tempMemo) {
-		$("#orderForm .ship_request .delivery_list .select").text("기타사항");
-		$("#orderForm input[name=delvMemoText]").attr("disabled", false);
-		$("#orderForm input[name=delvMemoText]").val(delvMemo);
-		$("#orderForm .delvMemo li").eq(4).addClass("selected");
-		$(".ship_etc").show();
-	}
-	
-	// 화면펼침
-	deliveryAddrInfoDispYn(dispYn);
-	
-	// 콤보박스 
-	var od_delivery_list = new sCombo('#orderForm .ship_select .select_custom.delivery_list');
-	
-	// 210405_배송요청 사항 기타사항 selected시 기타사항 input 구현
-	$("#orderForm .select_custom.delivery_list .combo .list > li").on("click", function(){
-		if ($("#orderForm .select_etc").hasClass("selected")){
-			$(".ship_etc").show();
-		} else {
-			$(".ship_etc").hide();
-		}
-	});
-});
-</script>
-
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : OrderDeliveryAddrInfoMob.html
+ * @desc    : 배송정보 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.04.05   jsh77b     최초 작성
+ *******************************************************************************
+ -->
+<!-- 배송지정보 -->
+<input type="hidden" name="recipNm" 		th:value="${deliveryAddrInfo.recipNm}"/>
+<input type="hidden" name="recipPhnno" 		th:value="${deliveryAddrInfo.recipPhnno}"/>
+<input type="hidden" name="recipZipcode" 	th:value="${deliveryAddrInfo.recipZipcode}"/>
+<input type="hidden" name="recipBaseAddr" 	th:value="${deliveryAddrInfo.recipBaseAddr}"/>
+<input type="hidden" name="recipDtlAddr" 	th:value="${deliveryAddrInfo.recipDtlAddr}"/>
+<input type="hidden" name="delvMemo" 		th:value="${deliveryAddrInfo.delvMemo}"/>
+<input type="hidden" name="foreignBuyYn" 	th:value="${order.foreignBuyYn}"/>
+<input type="hidden" name="orderMadeYn" 	th:value="${order.orderMadeYn}"/>
+
+<div class="foldGroup shipfold">
+	<ul>
+		<li>
+			<div class="fold_head">
+				<a href="javascript:void(0)">
+					<div>
+						<div class="fold_tit"><span>배송지 정보</span></div>
+						<div class="data">
+							<span id="recipAddr" th:text="${deliveryAddrInfo.recipBaseAddr} + '   ' + ${deliveryAddrInfo.recipDtlAddr}"></span>
+						</div>
+					</div>
+				</a>
+			</div>
+			<div class="fold_cont">
+				<!-- 배송지 정보 변경가능 -->
+				<div class="ship_info ship_edit">
+					<button type="button" id="btn_adrsChange_pop" class="btn_popup">
+						<span>배송지 변경</span>
+					</button>
+					<dl>
+						<div class="company">
+							<dt><span class="sr-only">배송지명</span></dt>
+							<dd>
+								<th:block th:text="${deliveryAddrInfo.recipNm}"></th:block> 
+								<span class="icon_tag"> 
+									<th:block th:if="${deliveryAddrInfo.defaultYn} == 'Y'">
+										<em class="tag_stype1">기본배송지</em> 
+									</th:block>
+									<em class="tag_stype2 shotDelv">총알배송</em>
+								</span>
+							</dd>
+						</div>
+						<div class="phone">
+							<dt><span class="sr-only">휴대폰 번호</span></dt>
+							<dd th:text="${deliveryAddrInfo.recipPhnno}"></dd>
+						</div>
+						<div class="addr">
+							<dt><span class="sr-only">배송주소</span></dt>
+							<dd th:text="${deliveryAddrInfo.recipBaseAddr} + '    ' + ${deliveryAddrInfo.recipDtlAddr}"></dd>
+						</div>
+						
+						<div class="ship_request ship_select">
+							<span>배송요청 사항</span>
+							<div class="ship_option">
+								<div class="form_field">
+									<div class="select_custom delivery_list"> <!-- 비활성화시 disabled 추가 -->
+										<div class="combo">
+											<div class="select" th:text="${deliveryAddrInfo.delvMemo}">선택</div>
+											<ul class="list">
+												<!-- 선택처리 class="selected" / 선택불가 aria-disabled="true"추가  -->
+												<li>문 앞</li> 
+												<li>직접 받고 부재 시 문 앞</li>
+												<li>경비실</li> 
+												<li>택배함</li>
+												<li class="select_etc">기타사항</li>
+											</ul>
+										</div>
+									</div>
+								</div>
+							</div>
+							<div class="ship_etc">
+								<div class="form_text etc">
+									<input type="text" name="delvMemoText" placeholder="보관 장소만 입력 (필수)" maxlength="30" disabled>
+									<p class="desc_txt">보관 장소 외 다른 내용 입력시 통보 없이 삭제 될 수 있습니다.</p>
+								</div>
+							</div>
+						</div>
+					</dl>
+				</div>
+				<!-- //배송지 정보 변경가능 -->
+			</div>
+		</li>
+	</ul>
+</div>
+<!-- //배송지정보 -->
+
+<script th:inline="javascript">
+var dispYn = [[${order.dispYn}]]; // 노출여부
+var delvMemo = [[${deliveryAddrInfo.delvMemo}]]; // 노출여부
+
+//화면노출
+var deliveryAddrInfoDispYn = function(temp) {
+	if (temp == "Y") {
+		$("#deliveryAddrInfo .fold_head").addClass("on");
+		$("#deliveryAddrInfo .fold_cont").show();
+	} else {
+		$("#deliveryAddrInfo .fold_head").removeClass("on");
+		$("#deliveryAddrInfo .fold_cont").hide();
+	}
+}
+
+//컨텐츠 호출
+$(document).ready( function() {
+	var delvMemoArr = ["문 앞", "직접받고 부재시 문 앞", "경비실", "택배함"];
+	var tempMemo = true;
+	
+	$("#orderForm .ship_request .delivery_list li").removeClass("selected");
+	
+	// 배송요청사항설정
+	for (i=0 ; i<delvMemoArr.length ; i++) {
+		if (delvMemoArr[i] == delvMemo) {
+			tempMemo = false;
+		}
+	}
+
+	// 배송메모설정
+	$("#orderForm .ship_request .delivery_list li").each(function(){
+		if (delvMemo == $(this).text()) {
+			$(this).addClass("selected");
+		}
+	});
+	
+	if (tempMemo) {
+		$("#orderForm .ship_request .delivery_list .select").text("기타사항");
+		$("#orderForm input[name=delvMemoText]").attr("disabled", false);
+		$("#orderForm input[name=delvMemoText]").val(delvMemo);
+		$("#orderForm .delvMemo li").eq(4).addClass("selected");
+		$(".ship_etc").show();
+	}
+	
+	// 화면펼침
+	deliveryAddrInfoDispYn(dispYn);
+	
+	// 콤보박스 
+	var od_delivery_list = new sCombo('#orderForm .ship_select .select_custom.delivery_list');
+	
+	// 210405_배송요청 사항 기타사항 selected시 기타사항 input 구현
+	$("#orderForm .select_custom.delivery_list .combo .list > li").on("click", function(){
+		if ($("#orderForm .select_etc").hasClass("selected")){
+			$(".ship_etc").show();
+		} else {
+			$(".ship_etc").hide();
+		}
+	});
+});
+</script>
+
 </html>

+ 98 - 98
src/main/webapp/WEB-INF/views/mob/order/OrderEntryInfoMob.html

@@ -1,98 +1,98 @@
-<!DOCTYPE html>
-<html lang="ko" xmlns:th="http://www.thymeleaf.org">
-<!--
- *******************************************************************************
- * @source  : OrderEntryInfoMob.html
- * @desc    : 개인통관부호 정보 Page
- *============================================================================
- * STYLE24
- * Copyright(C) 2020 TSIT, All rights reserved.
- *============================================================================
- * VER  DATE         AUTHOR      DESCRIPTION
- * ===  ===========  ==========  =============================================
- * 1.0  2021.04.05   jsh77b     최초 작성
- *******************************************************************************
- -->
- 
- <!-- 개인통관부호 정보 -->
-<div class="foldGroup">
-	<ul>
-		<li>
-			<div class="fold_head">
-				<a href="javascript:void(0)">
-					<div>
-						<div class="fold_tit">
-							<span>개인통관고유부호</span>
-						</div>
-						<div class="data">
-							<span>P123456789</span>
-						</div>
-					</div>
-				</a>
-			</div>
-			<div class="fold_cont">
-				<div class="area_overseas">
-					<div class="info_txt">
-						<ul>
-							<li>물품가액이 $150 초과할 경우 관/부가세가 발생 할 수 있으며, 물품 종류와 해외공급자
-								관계없이 같은 날 입항하게 되면 합산과세 대상이 됩니다.</li>
-						</ul>
-					</div>
-					<div class="form_field">
-						<div>
-							<input type="radio" name="rdi-overseas" id="rdi-overs1" value="" checked=""> 
-							<label for="rdi-overs1"><span>받는사람 개인통관고유부호</span></label>
-						</div>
-						<div>
-							<input type="radio" name="rdi-overseas" id="rdi-overs2" value=""> 
-							<label for="rdi-overs2"><span>입력 안 함</span></label>
-						</div>
-						<div class="info_box overs1">
-							<div class="input_wrap">
-								<input type="text" class="form_control err" maxlength="13" placeholder="P로 시작하는 13자리">
-								<!-- 유효하지 않은 개인통관고유부호 일때 class명 'err' 추가 -->
-							</div>
-							<div class="t_err">개인통관고유부호가 유효하지 않습니다.</div>
-							<!-- 유효하지 않은 개인통관고유부호 일때 노출 -->
-							<div class="agree_overs">
-								<input id="chk-overs-agr" type="checkbox" checked="">
-								<label for="chk-overs-agr">
-									<span>위 정보는 원활한 통관을 위해 수집 및 판매자에게 제공하며,계속 사용하도록 안전하게 STYLE24에서 저장 / 관리 합니다.&nbsp;&nbsp;<em class="tmark_required">(필수)</em></span>
-								</label>
-							</div>
-							<div class="btn_group btn_group_flex">
-								<div>
-									<button type="button" class="btn btn_dark">입력완료</button>
-								</div>
-							</div>
-						</div>
-						<div class="info_box overs2" style="display: none;">
-							<div class="info_txt type2">
-								<ul>
-									<li>개인통관고유부호를 입력하지 않아도 관세사무소에서 개인정보 확인을 위해 별도 연락을 드릴
-										예정입니다.</li>
-								</ul>
-							</div>
-						</div>
-					</div>
-				</div>
-			</div>
-		</li>
-	</ul>
-</div>
-<!-- //개인통관부호 정보 -->
-
-<script th:inline="javascript">
-var dispYn = [[${order.dispYn}]]; // 노출여부
-
-//컨텐츠 호출
-$(document).ready( function() {
-	// 화면펼침
-	if (dispYn == "Y") {
-		$("#custemerInfo .fold_head").addClass("on");
-		$("#custemerInfo .fold_cont").css("display", "block");
-	}
-});
-</script>
-
-</html>
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : OrderEntryInfoMob.html
+ * @desc    : 개인통관부호 정보 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.04.05   jsh77b     최초 작성
+ *******************************************************************************
+ -->
+ 
+ <!-- 개인통관부호 정보 -->
+<div class="foldGroup">
+	<ul>
+		<li>
+			<div class="fold_head">
+				<a href="javascript:void(0)">
+					<div>
+						<div class="fold_tit">
+							<span>개인통관고유부호</span>
+						</div>
+						<div class="data">
+							<span>P123456789</span>
+						</div>
+					</div>
+				</a>
+			</div>
+			<div class="fold_cont">
+				<div class="area_overseas">
+					<div class="info_txt">
+						<ul>
+							<li>물품가액이 $150 초과할 경우 관/부가세가 발생 할 수 있으며, 물품 종류와 해외공급자
+								관계없이 같은 날 입항하게 되면 합산과세 대상이 됩니다.</li>
+						</ul>
+					</div>
+					<div class="form_field">
+						<div>
+							<input type="radio" name="rdi-overseas" id="rdi-overs1" value="" checked=""> 
+							<label for="rdi-overs1"><span>받는사람 개인통관고유부호</span></label>
+						</div>
+						<div>
+							<input type="radio" name="rdi-overseas" id="rdi-overs2" value=""> 
+							<label for="rdi-overs2"><span>입력 안 함</span></label>
+						</div>
+						<div class="info_box overs1">
+							<div class="input_wrap">
+								<input type="text" class="form_control err" maxlength="13" placeholder="P로 시작하는 13자리">
+								<!-- 유효하지 않은 개인통관고유부호 일때 class명 'err' 추가 -->
+							</div>
+							<div class="t_err">개인통관고유부호가 유효하지 않습니다.</div>
+							<!-- 유효하지 않은 개인통관고유부호 일때 노출 -->
+							<div class="agree_overs">
+								<input id="chk-overs-agr" type="checkbox" checked="">
+								<label for="chk-overs-agr">
+									<span>위 정보는 원활한 통관을 위해 수집 및 판매자에게 제공하며,계속 사용하도록 안전하게 STYLE24에서 저장 / 관리 합니다.&nbsp;&nbsp;<em class="tmark_required">(필수)</em></span>
+								</label>
+							</div>
+							<div class="btn_group btn_group_flex">
+								<div>
+									<button type="button" class="btn btn_dark">입력완료</button>
+								</div>
+							</div>
+						</div>
+						<div class="info_box overs2" style="display: none;">
+							<div class="info_txt type2">
+								<ul>
+									<li>개인통관고유부호를 입력하지 않아도 관세사무소에서 개인정보 확인을 위해 별도 연락을 드릴
+										예정입니다.</li>
+								</ul>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>
+		</li>
+	</ul>
+</div>
+<!-- //개인통관부호 정보 -->
+
+<script th:inline="javascript">
+var dispYn = [[${order.dispYn}]]; // 노출여부
+
+//컨텐츠 호출
+$(document).ready( function() {
+	// 화면펼침
+	if (dispYn == "Y") {
+		$("#custemerInfo .fold_head").addClass("on");
+		$("#custemerInfo .fold_cont").css("display", "block");
+	}
+});
+</script>
+
+</html>

+ 183 - 183
src/main/webapp/WEB-INF/views/mob/order/OrderFreegiftInfoMob.html

@@ -1,183 +1,183 @@
-<!DOCTYPE html>
-<html lang="ko" xmlns:th="http://www.thymeleaf.org">
-<!--
- *******************************************************************************
- * @source  : OrderFormWeb.html
- * @desc    : 주문/결제 Page
- *============================================================================
- * STYLE24
- * Copyright(C) 2020 TSIT, All rights reserved.
- *============================================================================
- * VER  DATE         AUTHOR      DESCRIPTION
- * ===  ===========  ==========  =============================================
- * 1.0  2021.02.01   jsh77b     최초 작성
- *******************************************************************************
- -->
-
-<th:block th:if="${freegiftList != null && #lists.size(freegiftList) > 0}">
-<div class="foldGroup">
-	<ul>
-		<li>
-			<div class="fold_head">
-				<a href="javascript:void(0)">
-					<div>
-						<div class="fold_tit">
-							<span>사은품</span>
-						</div>
-						<div class="data">
-							<span>사은품 총 <em class="total_gift">0</em>개 선택</span> 
-							<span><em class="total_deduct">0</em>P 차감</span>
-						</div>
-					</div>
-				</a>
-			</div>
-			<div class="fold_cont">
-				<div class="area_selgift">
-					<th:block th:each="freegift, i : ${freegiftList}">
-						<th:block th:if="${freegift.allYn} == 'Y'">
-							<div class="gift_box necessary_gift_box">
-						</th:block>
-						<th:block th:if="${freegift.allYn} == 'N'">
-							<div class="gift_box">
-						</th:block>
-							<p class="txt">
-								<th:block th:if="${freegift.allYn} == 'Y'">
-									<span th:text="|사은품필수 ${i.count}|"></span>
-								</th:block>
-								<th:block th:if="${freegift.allYn} == 'N'">
-									<span th:text="|사은품선택 ${i.count}|"></span>
-								</th:block>
-								<th:block th:text="${freegift.freegiftNm}"></th:block>
-							</p>
-							<div class="form_field">
-								<!-- 전체지급 사음품(필수) -->
-								<th:block th:if="${freegift.allYn} == 'Y'">
-									<th:block th:each="freegiftGoods, k : ${freegiftGoodsList}">
-										<th:block th:if="${freegift.freegiftSq} == ${freegiftGoods.freegiftSq}">
-											<div class="gift">
-												<input type="checkbox" th:name="'rdi-gift'+${i.count}" th:id="'rdi-gift'+${i.count}+${k.count}" class="chk_img freegiftRdo" th:value="${freegiftGoods.freegiftValSq}" usepoint="0" allYn="Y" checked onclick="return(false);">
-												<label for="rdi-gift11"> 
-													<span class="thumb"><img src="/images/pc/thumb/tmp_gift1.jpg" width="" alt=""></span>
-													<span class="name" th:text="${freegiftGoods.goodsNm}"></span> 
-													<span class="deduct">무료</span>
-												</label>
-											</div>
-										</th:block>
-									</th:block>
-								</th:block>
-								<!-- //전체지급 사음품(필수) -->
-								
-								<!-- 선택지급 사음품(선택) -->
-								<th:block th:if="${freegift.allYn} == 'N'">
-									<th:block th:each="freegiftGoods, k : ${freegiftGoodsList}">
-										<th:block th:if="${freegift.freegiftSq} == ${freegiftGoods.freegiftSq}">
-											<div class="gift">
-												<input type="radio" th:name="'rdi-gift'+${i.count}" th:id="'rdi-gift'+${i.count}+${k.count}" class="chk_img freegiftRdo" th:value="${freegiftGoods.freegiftValSq}" th:usepoint="${freegiftGoods.usePoint}" allYn="N">
-												<label for="rdi-gift1">
-													<span class="thumb"><img src="/images/pc/thumb/tmp_gift1.jpg" width="" alt=""></span>
-													<span class="name" th:text="${freegiftGoods.goodsNm}"></span> 
-													<span th:if="${freegiftGoods.usePoint} < 1" class="deduct" th:text="무료"></span>
-													<span th:if="${freegiftGoods.usePoint} > 0" class="deduct" th:text="|${#numbers.formatInteger(freegiftGoods.usePoint, 1, 'COMMA')} P|"></span>
-												</label>
-											</div>
-										
-										</th:block>
-									</th:block>
-									<div class="gift">
-										<input type="radio" th:name="'rdi-gift'+${i.count}" th:id="${i.count}+'0'" class="chk_img freegiftRdo" value="noSel" usepoint="0" allYn="N"> 
-										<label for="rdi-gift4">
-											<span class="thumb"><img src="/images/pc/thumb/tmp_gift_empty.jpg" width="" alt=""></span>
-											<span class="name">사은품 수령안함</span> <span class="deduct">수령거부</span>
-										</label>
-									</div>
-								</th:block>
-								<!-- //선택지급 사음품(선택) -->
-							</div>
-						</div>
-					</th:block>
-
-					<div class="form_field">
-						<div class="agree_gift">
-							<p>
-								<input id="chk-agree_gift" type="checkbox">
-								<labelfor="chk-agree_gift"><span>동의합니다</span></label>
-							</p>
-							<p class="txt">사은품 지금에 대한 내용을 확인하였으며, 이에 동의합니다.</p>
-							<button type="button" class="btn_link_popup" id="btn_infoGift_btn">
-								<span>보기</span>
-							</button>
-						</div>
-						<div class="agree_gift_con">
-							<p>제1장 총칙 제1조(목적) 본 약관은 정부24 (이하 "당 사이트")가 제공하는 모든 서비스(이하
-								"서비스")의 이용조건 및 절차, 이용자와 당 사이트의 권리, 의무, 책임사항과 기타 필요한 사항을 규정함을
-								제1장 총칙 제1조(목적) 본 약관은 정부24 (이하 "당 사이트")가 제공하는 모든 서비스(이하
-								"서비스")의 이용조건 및 절차, 이용자와 당 사이트의 권리, 의무, 책임사항과 기타 필요한 사항을 규정함을
-								제1장 총칙 제1조(목적) 본 약관은 정부24 (이하 "당 사이트")가 제공하는 모든 서비스(이하
-								"서비스")의 이용조건 및 절차, 이용자와 당 사이트의 권리, 의무, 책임사항과 기타 필요한 사항을 규정함을
-								제1장 총칙 제1조(목적) 본 약관은 정부24 (이하 "당 사이트")가 제공하는 모든 서비스(이하
-								"서비스")의 이용조건 및 절차, 이용자와 당 사이트의 권리, 의무, 책임사항과 기타 필요한 사항을 규정함을
-							</p>
-						</div>
-					</div>
-				</div>
-			</div>
-		</li>
-	</ul>
-</div>
-
-<script th:inline="javascript">
-//할인관련정보 변수선언
-var freegiftApplyAmtList	= [[${freegiftApplyAmtList}]];		// 사은품장바구니목록
-var freegiftList			= [[${freegiftList}]];				// 사은품 프로모션 목록
-var freegiftGoodsList		= [[${freegiftGoodsList}]];			// 사은품 프로모션 상품 목록
-var dispYn 					= [[${order.dispYn}]]; 				// 노출여부
-
-var freegiftInfoDispYn = function(temp) {
-	if (temp == "Y") {
-		$("#freegiftInfo .fold_head").addClass("on");
-		$("#freegiftInfo .fold_cont").show();
-	} else {
-		$("#freegiftInfo .fold_head").removeClass("on");
-		$("#freegiftInfo .fold_cont").hide();
-	}
-}
-
-//컨텐츠 호출
-$(document).ready( function() {
-	// 사은품 화면 노출여부 체크
-	if (freegiftList.length == null || freegiftList.length < 1) {
-		$("#freegiftInfo").css("display", "none");
-	} else {
-		$("#freegiftInfo").css("display", "block");
-	}
-	
-	//사은품노출여부
-	freegiftInfoDispYn(dispYn);
-	
-	// 사은품시퀀스배열, 
-	var freegiftSqArr 		= [];
-	var freegiftGoodsArr 	= [];
-	
-	// 사은품 장바구니 상품 뿌리기
-	for (i=0 ; i<freegiftApplyAmtList.length ; i++) {
-		var obj = freegiftApplyAmtList[i];
-		freegiftSqArr.push(obj.freegiftSq);
-		freegiftGoodsArr.push(obj.goodsCd);
-	}
-	
-	$(".freegiftSqArr").text(freegiftSqArr);
-	$(".freegiftGoodsArr").text(freegiftGoodsArr);
-	
-});
-</script>
-</th:block>
-
-
-
-
-
-
-
-
-
-
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : OrderFormWeb.html
+ * @desc    : 주문/결제 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.02.01   jsh77b     최초 작성
+ *******************************************************************************
+ -->
+
+<th:block th:if="${freegiftList != null && #lists.size(freegiftList) > 0}">
+<div class="foldGroup">
+	<ul>
+		<li>
+			<div class="fold_head">
+				<a href="javascript:void(0)">
+					<div>
+						<div class="fold_tit">
+							<span>사은품</span>
+						</div>
+						<div class="data">
+							<span>사은품 총 <em class="total_gift">0</em>개 선택</span> 
+							<span><em class="total_deduct">0</em>P 차감</span>
+						</div>
+					</div>
+				</a>
+			</div>
+			<div class="fold_cont">
+				<div class="area_selgift">
+					<th:block th:each="freegift, i : ${freegiftList}">
+						<th:block th:if="${freegift.allYn} == 'Y'">
+							<div class="gift_box necessary_gift_box">
+						</th:block>
+						<th:block th:if="${freegift.allYn} == 'N'">
+							<div class="gift_box">
+						</th:block>
+							<p class="txt">
+								<th:block th:if="${freegift.allYn} == 'Y'">
+									<span th:text="|사은품필수 ${i.count}|"></span>
+								</th:block>
+								<th:block th:if="${freegift.allYn} == 'N'">
+									<span th:text="|사은품선택 ${i.count}|"></span>
+								</th:block>
+								<th:block th:text="${freegift.freegiftNm}"></th:block>
+							</p>
+							<div class="form_field">
+								<!-- 전체지급 사음품(필수) -->
+								<th:block th:if="${freegift.allYn} == 'Y'">
+									<th:block th:each="freegiftGoods, k : ${freegiftGoodsList}">
+										<th:block th:if="${freegift.freegiftSq} == ${freegiftGoods.freegiftSq}">
+											<div class="gift">
+												<input type="checkbox" th:name="'rdi-gift'+${i.count}" th:id="'rdi-gift'+${i.count}+${k.count}" class="chk_img freegiftRdo" th:value="${freegiftGoods.freegiftValSq}" usepoint="0" allYn="Y" checked onclick="return(false);">
+												<label for="rdi-gift11"> 
+													<span class="thumb"><img src="/images/pc/thumb/tmp_gift1.jpg" width="" alt=""></span>
+													<span class="name" th:text="${freegiftGoods.goodsNm}"></span> 
+													<span class="deduct">무료</span>
+												</label>
+											</div>
+										</th:block>
+									</th:block>
+								</th:block>
+								<!-- //전체지급 사음품(필수) -->
+								
+								<!-- 선택지급 사음품(선택) -->
+								<th:block th:if="${freegift.allYn} == 'N'">
+									<th:block th:each="freegiftGoods, k : ${freegiftGoodsList}">
+										<th:block th:if="${freegift.freegiftSq} == ${freegiftGoods.freegiftSq}">
+											<div class="gift">
+												<input type="radio" th:name="'rdi-gift'+${i.count}" th:id="'rdi-gift'+${i.count}+${k.count}" class="chk_img freegiftRdo" th:value="${freegiftGoods.freegiftValSq}" th:usepoint="${freegiftGoods.usePoint}" allYn="N">
+												<label for="rdi-gift1">
+													<span class="thumb"><img src="/images/pc/thumb/tmp_gift1.jpg" width="" alt=""></span>
+													<span class="name" th:text="${freegiftGoods.goodsNm}"></span> 
+													<span th:if="${freegiftGoods.usePoint} < 1" class="deduct" th:text="무료"></span>
+													<span th:if="${freegiftGoods.usePoint} > 0" class="deduct" th:text="|${#numbers.formatInteger(freegiftGoods.usePoint, 1, 'COMMA')} P|"></span>
+												</label>
+											</div>
+										
+										</th:block>
+									</th:block>
+									<div class="gift">
+										<input type="radio" th:name="'rdi-gift'+${i.count}" th:id="${i.count}+'0'" class="chk_img freegiftRdo" value="noSel" usepoint="0" allYn="N"> 
+										<label for="rdi-gift4">
+											<span class="thumb"><img src="/images/pc/thumb/tmp_gift_empty.jpg" width="" alt=""></span>
+											<span class="name">사은품 수령안함</span> <span class="deduct">수령거부</span>
+										</label>
+									</div>
+								</th:block>
+								<!-- //선택지급 사음품(선택) -->
+							</div>
+						</div>
+					</th:block>
+
+					<div class="form_field">
+						<div class="agree_gift">
+							<p>
+								<input id="chk-agree_gift" type="checkbox">
+								<labelfor="chk-agree_gift"><span>동의합니다</span></label>
+							</p>
+							<p class="txt">사은품 지금에 대한 내용을 확인하였으며, 이에 동의합니다.</p>
+							<button type="button" class="btn_link_popup" id="btn_infoGift_btn">
+								<span>보기</span>
+							</button>
+						</div>
+						<div class="agree_gift_con">
+							<p>제1장 총칙 제1조(목적) 본 약관은 정부24 (이하 "당 사이트")가 제공하는 모든 서비스(이하
+								"서비스")의 이용조건 및 절차, 이용자와 당 사이트의 권리, 의무, 책임사항과 기타 필요한 사항을 규정함을
+								제1장 총칙 제1조(목적) 본 약관은 정부24 (이하 "당 사이트")가 제공하는 모든 서비스(이하
+								"서비스")의 이용조건 및 절차, 이용자와 당 사이트의 권리, 의무, 책임사항과 기타 필요한 사항을 규정함을
+								제1장 총칙 제1조(목적) 본 약관은 정부24 (이하 "당 사이트")가 제공하는 모든 서비스(이하
+								"서비스")의 이용조건 및 절차, 이용자와 당 사이트의 권리, 의무, 책임사항과 기타 필요한 사항을 규정함을
+								제1장 총칙 제1조(목적) 본 약관은 정부24 (이하 "당 사이트")가 제공하는 모든 서비스(이하
+								"서비스")의 이용조건 및 절차, 이용자와 당 사이트의 권리, 의무, 책임사항과 기타 필요한 사항을 규정함을
+							</p>
+						</div>
+					</div>
+				</div>
+			</div>
+		</li>
+	</ul>
+</div>
+
+<script th:inline="javascript">
+//할인관련정보 변수선언
+var freegiftApplyAmtList	= [[${freegiftApplyAmtList}]];		// 사은품장바구니목록
+var freegiftList			= [[${freegiftList}]];				// 사은품 프로모션 목록
+var freegiftGoodsList		= [[${freegiftGoodsList}]];			// 사은품 프로모션 상품 목록
+var dispYn 					= [[${order.dispYn}]]; 				// 노출여부
+
+var freegiftInfoDispYn = function(temp) {
+	if (temp == "Y") {
+		$("#freegiftInfo .fold_head").addClass("on");
+		$("#freegiftInfo .fold_cont").show();
+	} else {
+		$("#freegiftInfo .fold_head").removeClass("on");
+		$("#freegiftInfo .fold_cont").hide();
+	}
+}
+
+//컨텐츠 호출
+$(document).ready( function() {
+	// 사은품 화면 노출여부 체크
+	if (freegiftList.length == null || freegiftList.length < 1) {
+		$("#freegiftInfo").css("display", "none");
+	} else {
+		$("#freegiftInfo").css("display", "block");
+	}
+	
+	//사은품노출여부
+	freegiftInfoDispYn(dispYn);
+	
+	// 사은품시퀀스배열, 
+	var freegiftSqArr 		= [];
+	var freegiftGoodsArr 	= [];
+	
+	// 사은품 장바구니 상품 뿌리기
+	for (i=0 ; i<freegiftApplyAmtList.length ; i++) {
+		var obj = freegiftApplyAmtList[i];
+		freegiftSqArr.push(obj.freegiftSq);
+		freegiftGoodsArr.push(obj.goodsCd);
+	}
+	
+	$(".freegiftSqArr").text(freegiftSqArr);
+	$(".freegiftGoodsArr").text(freegiftGoodsArr);
+	
+});
+</script>
+</th:block>
+
+
+
+
+
+
+
+
+
+

+ 176 - 176
src/main/webapp/WEB-INF/views/mob/order/OrderListInfoMob.html

@@ -1,176 +1,176 @@
-<!DOCTYPE html>
-<html lang="ko" xmlns:th="http://www.thymeleaf.org">
-<!--
- *******************************************************************************
- * @source  : OrderCustemerInfoWeb.html
- * @desc    : 고객정보 Page
- *============================================================================
- * STYLE24
- * Copyright(C) 2020 TSIT, All rights reserved.
- *============================================================================
- * VER  DATE         AUTHOR      DESCRIPTION
- * ===  ===========  ==========  =============================================
- * 1.0  2021.02.01   jsh77b     최초 작성
- *******************************************************************************
- -->
-<input type="hidden" name="delvFeeCdCnt" th:value="${delvFeeCdCnt}"/>
-<input type="hidden" name="shotCnt" th:value="${shotCnt}"/>
-<input type="hidden" name="wmsCnt" 	th:value="${wmsCnt}"/>
-
-<div class="foldGroup">
-	<ul>
-		<li class="fold_mbinfo">
-			<div class="fold_head">
-				<a href="javascript:void(0)">
-					<div>
-						<div class="fold_tit"><span>주문내역</span></div>
-						<div class="data"><em class="c_primary" th:text="${goodsTotCnt}"></em>개의 상품</div>
-					</div>
-				</a>
-			</div>
-			<div class="fold_cont" style="display: none;">
-				<div class="od_item_box">	
-					<th:block th:each="delvAllCart, i : ${delvAllCartList}">
-						<th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
-							<div class="part_goods">
-								<th:block th:if="${i.index} == 0">
-									<th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
-										<div class="goods_top">
-											<div class="goods_date">STYLE24 총알배송<span class="date">오늘 자정까지 도착</span></div>
-										</div>
-									</th:block>
-								</th:block>
-								<th:block th:if="${i.index} == 1">
-									<th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
-										<div class="goods_top">
-											<div class="goods_date">STYLE24 일반배송</div>
-										</div>
-									</th:block>
-								</th:block>
-								<th:block th:if="${i.index} == 2">
-									<th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
-										<div class="goods_top">
-											<div class="goods_date">업체직배송</div>
-										</div>
-									</th:block>
-								</th:block>
-								<th:block th:if="${i.index} == 3">
-									<th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
-										<div class="goods_top">
-											<div class="goods_date">예약배송</div>
-										</div>
-									</th:block>
-								</th:block>
-								<!-- 주문 접수 -->
-								<th:block th:each="goods, i : ${delvAllCart}">
-									<div class="goods_section">
-										<div class="goods_detail">
-											<a href="">
-												<div class="thumb_box">
-													<img src="/images/mo/thumb/tmp_pdClickother1.jpg" alt="tmp_pdClickother1">
-												</div>
-												<div class="info_box">
-													<div class="od_name">
-														<div class="brand"><span th:text="${goods.brandEnm} + ' ' + ${goods.brandKnm}"></span></div>
-														<div class="name" th:text="${goods.goodsNm}"></div>
-													</div>
-													<div class="od_opt" >
-														<div class="option" th:each="colorNm, index : ${goods.colorNmArr}">
-															<em th:text="${colorNm}"></em>
-															<em th:text="${goods.optCd2Arr[index.index]}"></em>
-														</div>
-													</div>
-													<div class="od_point">
-														<p class="point"><span th:text="${#numbers.formatInteger(goods.savePntAmt, 1, 'COMMA')}"></span>P 적립예정</p>
-													</div>
-												</div>
-											</a>
-										</div>
-										<div class="od_calc">
-											<p class="count">수량 <em th:text="${goods.goodsQty}"></em>개</p>
-											<p class="price">
-												<!-- 다다익선할인금액없으면 즉시할인가 까지만 표현 -->
-												<th:block th:if="${goods.tmtbDcAmt} < 1">
-													<span class="selling_price"><em th:text="${#numbers.formatInteger((goods.currPrice + goods.optAddPrice) * goods.goodsQty, 1, 'COMMA')}"></em>원</span>
-												</th:block>
-												<!-- 다다익선할인금액있으면 즉시할인가, 다다익선할인가 표현 -->
-												<th:block th:if="${goods.tmtbDcAmt} > 0">
-													<span class="sale_price"><del><em th:text="${#numbers.formatInteger((goods.currPrice + goods.optAddPrice) * goods.goodsQty, 1, 'COMMA')}"></em>원</del></span>
-													<span class="selling_price"><em th:text="${#numbers.formatInteger(goods.tmtbDcAmt, 1, 'COMMA')}"></em>원</span>
-												</th:block>
-
-											</p>
-										</div>
-										<th:block th:if="${goods.delvResDt}">
-											<p class="info_reserv">
-												<i class="ico ico_calender"></i><span th:text="${goods.delvResDt}"></span> 배송예정상품
-											</p>
-										</th:block>
-									</div>
-								</th:block>
-							</div>
-						</div>
-					</th:block>
-				</th:block>
-				
-				<div class="od_amount_box">
-					<dl>
-						<div>
-							<dt>상품금액</dt>
-							<dd><em id="orgGoodsSumAmt"></em>원</dd>
-						</div>
-						<div>
-							<dt>배송비</dt>
-							<dd><em id="delvSumAmt"></em>원</dd>
-						</div>
-						<div>
-							<dt>상품할인(즉시할인)</dt>
-							<dd>
-								<span class="disc_amount"><em id="cpn1DcSumAmt"></em>원</span>
-							</dd>
-						</div>
-						<div>
-							<dt>다다익선할인</dt>
-							<dd>
-								<span class="disc_amount"><em id="tmtbDcSumAmt"></em>원</span>
-							</dd>
-						</div>
-						<div>
-							<dt>쿠폰할인</dt>
-							<dd>
-								<span class="disc_amount"><em id="couponDcSumAmt"></em>원</span>
-							</dd>
-						</div>
-						<div>
-							<dt>선포인트 사용</dt>
-							<dd>
-								<span class="disc_amount"><em id="prePntDcAmt"></em>P</span>
-							</dd>
-						</div>
-						<div>
-							<dt>포인트 사용</dt>
-							<dd>
-								<span class="disc_amount"><em id="pntDcAmt"></em>P</span>
-							</dd>
-						</div>
-						<div>
-							<dt>상품권 사용</dt>
-							<dd>
-								<span class="disc_amount"><em id="gfcdUseAmt"></em>원</span>
-							</dd>
-						</div>
-					</dl>
-				</div>
-				<div class="totalprice_box">
-					<dl>
-						<dt>총 결제 예정 금액</dt>
-						<dd data-weight="price" data-font="lato"><span id="savePntSumAmt"></span>원</dd>
-					</dl>
-					<p class="info_point"><span class="save_point" id="savePntSumAmt">P</span> 적립예정
-					</p>
-					<p class="info_delivery">총 <span id="delvFeeCdCnt" th:text="${delvFeeCdCnt}"></span>건으로 나뉘어 배송 예정</p>
-				</div>
-			</div> 
-		</li>
-	</ul>
-</div>
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : OrderCustemerInfoWeb.html
+ * @desc    : 고객정보 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.02.01   jsh77b     최초 작성
+ *******************************************************************************
+ -->
+<input type="hidden" name="delvFeeCdCnt" th:value="${delvFeeCdCnt}"/>
+<input type="hidden" name="shotCnt" th:value="${shotCnt}"/>
+<input type="hidden" name="wmsCnt" 	th:value="${wmsCnt}"/>
+
+<div class="foldGroup">
+	<ul>
+		<li class="fold_mbinfo">
+			<div class="fold_head">
+				<a href="javascript:void(0)">
+					<div>
+						<div class="fold_tit"><span>주문내역</span></div>
+						<div class="data"><em class="c_primary" th:text="${goodsTotCnt}"></em>개의 상품</div>
+					</div>
+				</a>
+			</div>
+			<div class="fold_cont" style="display: none;">
+				<div class="od_item_box">	
+					<th:block th:each="delvAllCart, i : ${delvAllCartList}">
+						<th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
+							<div class="part_goods">
+								<th:block th:if="${i.index} == 0">
+									<th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
+										<div class="goods_top">
+											<div class="goods_date">STYLE24 총알배송<span class="date">오늘 자정까지 도착</span></div>
+										</div>
+									</th:block>
+								</th:block>
+								<th:block th:if="${i.index} == 1">
+									<th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
+										<div class="goods_top">
+											<div class="goods_date">STYLE24 일반배송</div>
+										</div>
+									</th:block>
+								</th:block>
+								<th:block th:if="${i.index} == 2">
+									<th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
+										<div class="goods_top">
+											<div class="goods_date">업체직배송</div>
+										</div>
+									</th:block>
+								</th:block>
+								<th:block th:if="${i.index} == 3">
+									<th:block th:if="${delvAllCart != null and #lists.size(delvAllCart) > 0}">
+										<div class="goods_top">
+											<div class="goods_date">예약배송</div>
+										</div>
+									</th:block>
+								</th:block>
+								<!-- 주문 접수 -->
+								<th:block th:each="goods, i : ${delvAllCart}">
+									<div class="goods_section">
+										<div class="goods_detail">
+											<a href="">
+												<div class="thumb_box">
+													<img src="/images/mo/thumb/tmp_pdClickother1.jpg" alt="tmp_pdClickother1">
+												</div>
+												<div class="info_box">
+													<div class="od_name">
+														<div class="brand"><span th:text="${goods.brandEnm} + ' ' + ${goods.brandKnm}"></span></div>
+														<div class="name" th:text="${goods.goodsNm}"></div>
+													</div>
+													<div class="od_opt" >
+														<div class="option" th:each="colorNm, index : ${goods.colorNmArr}">
+															<em th:text="${colorNm}"></em>
+															<em th:text="${goods.optCd2Arr[index.index]}"></em>
+														</div>
+													</div>
+													<div class="od_point">
+														<p class="point"><span th:text="${#numbers.formatInteger(goods.savePntAmt, 1, 'COMMA')}"></span>P 적립예정</p>
+													</div>
+												</div>
+											</a>
+										</div>
+										<div class="od_calc">
+											<p class="count">수량 <em th:text="${goods.goodsQty}"></em>개</p>
+											<p class="price">
+												<!-- 다다익선할인금액없으면 즉시할인가 까지만 표현 -->
+												<th:block th:if="${goods.tmtbDcAmt} < 1">
+													<span class="selling_price"><em th:text="${#numbers.formatInteger((goods.currPrice + goods.optAddPrice) * goods.goodsQty, 1, 'COMMA')}"></em>원</span>
+												</th:block>
+												<!-- 다다익선할인금액있으면 즉시할인가, 다다익선할인가 표현 -->
+												<th:block th:if="${goods.tmtbDcAmt} > 0">
+													<span class="sale_price"><del><em th:text="${#numbers.formatInteger((goods.currPrice + goods.optAddPrice) * goods.goodsQty, 1, 'COMMA')}"></em>원</del></span>
+													<span class="selling_price"><em th:text="${#numbers.formatInteger(goods.tmtbDcAmt, 1, 'COMMA')}"></em>원</span>
+												</th:block>
+
+											</p>
+										</div>
+										<th:block th:if="${goods.delvResDt}">
+											<p class="info_reserv">
+												<i class="ico ico_calender"></i><span th:text="${goods.delvResDt}"></span> 배송예정상품
+											</p>
+										</th:block>
+									</div>
+								</th:block>
+							</div>
+						</div>
+					</th:block>
+				</th:block>
+				
+				<div class="od_amount_box">
+					<dl>
+						<div>
+							<dt>상품금액</dt>
+							<dd><em id="orgGoodsSumAmt"></em>원</dd>
+						</div>
+						<div>
+							<dt>배송비</dt>
+							<dd><em id="delvSumAmt"></em>원</dd>
+						</div>
+						<div>
+							<dt>상품할인(즉시할인)</dt>
+							<dd>
+								<span class="disc_amount"><em id="cpn1DcSumAmt"></em>원</span>
+							</dd>
+						</div>
+						<div>
+							<dt>다다익선할인</dt>
+							<dd>
+								<span class="disc_amount"><em id="tmtbDcSumAmt"></em>원</span>
+							</dd>
+						</div>
+						<div>
+							<dt>쿠폰할인</dt>
+							<dd>
+								<span class="disc_amount"><em id="couponDcSumAmt"></em>원</span>
+							</dd>
+						</div>
+						<div>
+							<dt>선포인트 사용</dt>
+							<dd>
+								<span class="disc_amount"><em id="prePntDcAmt"></em>P</span>
+							</dd>
+						</div>
+						<div>
+							<dt>포인트 사용</dt>
+							<dd>
+								<span class="disc_amount"><em id="pntDcAmt"></em>P</span>
+							</dd>
+						</div>
+						<div>
+							<dt>상품권 사용</dt>
+							<dd>
+								<span class="disc_amount"><em id="gfcdUseAmt"></em>원</span>
+							</dd>
+						</div>
+					</dl>
+				</div>
+				<div class="totalprice_box">
+					<dl>
+						<dt>총 결제 예정 금액</dt>
+						<dd data-weight="price" data-font="lato"><span id="savePntSumAmt"></span>원</dd>
+					</dl>
+					<p class="info_point"><span class="save_point" id="savePntSumAmt">P</span> 적립예정
+					</p>
+					<p class="info_delivery">총 <span id="delvFeeCdCnt" th:text="${delvFeeCdCnt}"></span>건으로 나뉘어 배송 예정</p>
+				</div>
+			</div> 
+		</li>
+	</ul>
+</div>

+ 71 - 71
src/main/webapp/WEB-INF/views/mob/order/OrderMadeInfoMob.html

@@ -1,71 +1,71 @@
-<!DOCTYPE html>
-<html lang="ko" xmlns:th="http://www.thymeleaf.org">
-<!--
- *******************************************************************************
- * @source  : OrderMadeInfoMob.html
- * @desc    : 주문제작상품동의여부 Page
- *============================================================================
- * STYLE24
- * Copyright(C) 2020 TSIT, All rights reserved.
- *============================================================================
- * VER  DATE         AUTHOR      DESCRIPTION
- * ===  ===========  ==========  =============================================
- * 1.0  2021.04.05   jsh77b     최초 작성
- *******************************************************************************
- -->
-<!-- 주문제작상품동의여부 -->
-<div class="foldGroup">
-	<ul>
-		<li>
-			<div class="fold_head">
-				<a href="javascript:void(0)">
-					<div>
-						<div class="fold_tit">
-							<span>주문제작상품동의</span>
-						</div>
-						<div class="data custom_disc">
-							<div class="form_field">
-								<input id="chk-custom" type="checkbox" checked=""> <label
-									for="chk-custom"><span>동의합니다.</span></label>
-							</div>
-						</div>
-					</div>
-				</a>
-			</div>
-			<div class="fold_cont">
-				<div class="area_customitem">
-					<p>고객님께서 주문하신 상품에는 주문제작상품이 포함되어 있습니다.</p>
-					<div class="form_field">
-						<div class="agree_custom">
-							<input id="chk-custom-agr1" type="checkbox" checked="">
-							<label for="chk-custom-agr1"><span>주문제작상품에 대한
-									안내를 확인하였으며 배송에 동의합니다.</span></label>
-						</div>
-					</div>
-					<div class="info_txt">
-						<ul>
-							<li>주문 제작 상품은 주문 후 제작이 진행되며, 제작 완료 후 배송이 시작됩니다.</li>
-							<li>주문 제작 상품의 특성상 주문 완료 후 취소/교환이 불가능합니다. (상품 하자에 한해 가능)</li>
-						</ul>
-					</div>
-				</div>
-			</div>
-		</li>
-	</ul>
-</div>
-<!-- //주문제작상품동의여부 -->
-				
-<script th:inline="javascript">
-var dispYn = [[${order.dispYn}]]; // 노출여부
-
-//컨텐츠 호출
-$(document).ready( function() {
-	// 화면펼침
-	if (dispYn == "Y") {
-		$("#custemerInfo .fold_head").addClass("on");
-		$("#custemerInfo .fold_cont").css("display", "block");
-	}
-});
-</script>
-
-</html>
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : OrderMadeInfoMob.html
+ * @desc    : 주문제작상품동의여부 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.04.05   jsh77b     최초 작성
+ *******************************************************************************
+ -->
+<!-- 주문제작상품동의여부 -->
+<div class="foldGroup">
+	<ul>
+		<li>
+			<div class="fold_head">
+				<a href="javascript:void(0)">
+					<div>
+						<div class="fold_tit">
+							<span>주문제작상품동의</span>
+						</div>
+						<div class="data custom_disc">
+							<div class="form_field">
+								<input id="chk-custom" type="checkbox" checked=""> <label
+									for="chk-custom"><span>동의합니다.</span></label>
+							</div>
+						</div>
+					</div>
+				</a>
+			</div>
+			<div class="fold_cont">
+				<div class="area_customitem">
+					<p>고객님께서 주문하신 상품에는 주문제작상품이 포함되어 있습니다.</p>
+					<div class="form_field">
+						<div class="agree_custom">
+							<input id="chk-custom-agr1" type="checkbox" checked="">
+							<label for="chk-custom-agr1"><span>주문제작상품에 대한
+									안내를 확인하였으며 배송에 동의합니다.</span></label>
+						</div>
+					</div>
+					<div class="info_txt">
+						<ul>
+							<li>주문 제작 상품은 주문 후 제작이 진행되며, 제작 완료 후 배송이 시작됩니다.</li>
+							<li>주문 제작 상품의 특성상 주문 완료 후 취소/교환이 불가능합니다. (상품 하자에 한해 가능)</li>
+						</ul>
+					</div>
+				</div>
+			</div>
+		</li>
+	</ul>
+</div>
+<!-- //주문제작상품동의여부 -->
+				
+<script th:inline="javascript">
+var dispYn = [[${order.dispYn}]]; // 노출여부
+
+//컨텐츠 호출
+$(document).ready( function() {
+	// 화면펼침
+	if (dispYn == "Y") {
+		$("#custemerInfo .fold_head").addClass("on");
+		$("#custemerInfo .fold_cont").css("display", "block");
+	}
+});
+</script>
+
+</html>

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

@@ -1,108 +1,108 @@
-<!DOCTYPE html>
-<html lang="ko" xmlns:th="http://www.thymeleaf.org">
-<!--
- *******************************************************************************
- * @source  : OrderPaymentInfoWeb.html
- * @desc    : 결제정보 Page
- *============================================================================
- * STYLE24
- * Copyright(C) 2020 TSIT, All rights reserved.
- *============================================================================
- * VER  DATE         AUTHOR      DESCRIPTION
- * ===  ===========  ==========  =============================================
- * 1.0  2021.02.01   jsh77b     최초 작성
- *******************************************************************************
- -->
-<!-- 결제수단 선택 -->
-<div class="foldGroup">
-	<ul>
-		<li>
-			<div class="fold_head">
-				<a href="javascript:void(0)">
-					<div>
-						<div class="fold_tit">
-							<span>결제수단</span>
-						</div>
-						<div class="data">
-							<span>신용카드</span>
-						</div>
-					</div>
-				</a>
-			</div>
-			<div class="fold_cont">
-				<div class="area_paymethod">
-					<div class="paymethod_box">
-						<div class="form_field">
-							<ul class="sel_method">
-								<li><input type="radio" name="rdi-paynormal"
-									id="payCreditCard" value=""> <label
-									for="payCreditCard"><span>신용카드</span></label></li>
-								<li><input type="radio" name="rdi-paynormal"
-									id="payKakao" value=""> <label for="payKakao"><span><em
-											class="sr-only">카카오페이 결제</em><em class="payimg kakao"></em></span></label>
-								</li>
-								<li><input type="radio" name="rdi-paynormal"
-									id="payRealBank" value=""> <label for="payRealBank"><span>실시간계좌이체</span></label>
-								</li>
-								<li><input type="radio" name="rdi-paynormal"
-									id="payNaver" value=""> <label for="payNaver"><span><em
-											class="sr-only">네이버페이 결제</em><em class="payimg naver"></em></span></label>
-								</li>
-								<li><input type="radio" name="rdi-paynormal"
-									id="payVirtualBank" value=""> <label
-									for="payVirtualBank"><span>무통장입금</span></label></li>
-								<li><input type="radio" name="rdi-paynormal"
-									id="payPayco" value=""> <label for="payPayco"><span><em
-											class="sr-only">페이코 결제</em><em class="payimg payco"></em></span></label>
-								</li>
-								<li><input type="radio" name="rdi-paynormal"
-									id="payCellphone" value=""> <label
-									for="payCellphone"><span>휴대폰 결제</span></label></li>
-							</ul>
-						</div>
-						<div class="form_field">
-							<div class="agree_insurance">
-								<input id="chk-insurance" type="checkbox"> <label
-									for="chk-insurance"> <span>소비자 피해 보상보험
-										신청&nbsp;&nbsp;<em class="tmark_optional">(선택)</em>
-								</span>
-								</label>
-								<p>
-									‘전자상거래 등에서의 소비자보호에 관한 법률‘에 따라 현금 결제 시 서울보증보험㈜가 제공하는 소비자
-									피해보상보험을<br>신청할 수 있도록 해드리고 있습니다. (2013.11.28부터 시행)
-								</p>
-								<a href="" class="btn btn_default"><span>FAQ확인</span></a>
-							</div>
-						</div>
-					</div>
-				</div>
-			</div>
-		</li>
-	</ul>
-</div><!-- //결제수단 선택 -->
-
-
-<script th:inline="javascript">
-var dispYn = [[${order.dispYn}]]; // 노출여부
-
-//화면노출
-var paymentInfoDispYn = function(temp) {
-	if (temp == "Y") {
-		$("#paymentInfo .fold_head").addClass("on");
-		$("#paymentInfo .fold_cont").show();
-	} else {
-		$("#paymentInfo .fold_head").removeClass("on");
-		$("#paymentInfo .fold_cont").hide();
-	}
-}
-
-//컨텐츠 호출
-$(document).ready( function() {
-	// 화면펼침
-	paymentInfoDispYn(dispYn);
-});
-
-
-</script>
-
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : OrderPaymentInfoWeb.html
+ * @desc    : 결제정보 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.02.01   jsh77b     최초 작성
+ *******************************************************************************
+ -->
+<!-- 결제수단 선택 -->
+<div class="foldGroup">
+	<ul>
+		<li>
+			<div class="fold_head">
+				<a href="javascript:void(0)">
+					<div>
+						<div class="fold_tit">
+							<span>결제수단</span>
+						</div>
+						<div class="data">
+							<span>신용카드</span>
+						</div>
+					</div>
+				</a>
+			</div>
+			<div class="fold_cont">
+				<div class="area_paymethod">
+					<div class="paymethod_box">
+						<div class="form_field">
+							<ul class="sel_method">
+								<li><input type="radio" name="rdi-paynormal"
+									id="payCreditCard" value=""> <label
+									for="payCreditCard"><span>신용카드</span></label></li>
+								<li><input type="radio" name="rdi-paynormal"
+									id="payKakao" value=""> <label for="payKakao"><span><em
+											class="sr-only">카카오페이 결제</em><em class="payimg kakao"></em></span></label>
+								</li>
+								<li><input type="radio" name="rdi-paynormal"
+									id="payRealBank" value=""> <label for="payRealBank"><span>실시간계좌이체</span></label>
+								</li>
+								<li><input type="radio" name="rdi-paynormal"
+									id="payNaver" value=""> <label for="payNaver"><span><em
+											class="sr-only">네이버페이 결제</em><em class="payimg naver"></em></span></label>
+								</li>
+								<li><input type="radio" name="rdi-paynormal"
+									id="payVirtualBank" value=""> <label
+									for="payVirtualBank"><span>무통장입금</span></label></li>
+								<li><input type="radio" name="rdi-paynormal"
+									id="payPayco" value=""> <label for="payPayco"><span><em
+											class="sr-only">페이코 결제</em><em class="payimg payco"></em></span></label>
+								</li>
+								<li><input type="radio" name="rdi-paynormal"
+									id="payCellphone" value=""> <label
+									for="payCellphone"><span>휴대폰 결제</span></label></li>
+							</ul>
+						</div>
+						<div class="form_field">
+							<div class="agree_insurance">
+								<input id="chk-insurance" type="checkbox"> <label
+									for="chk-insurance"> <span>소비자 피해 보상보험
+										신청&nbsp;&nbsp;<em class="tmark_optional">(선택)</em>
+								</span>
+								</label>
+								<p>
+									‘전자상거래 등에서의 소비자보호에 관한 법률‘에 따라 현금 결제 시 서울보증보험㈜가 제공하는 소비자
+									피해보상보험을<br>신청할 수 있도록 해드리고 있습니다. (2013.11.28부터 시행)
+								</p>
+								<a href="" class="btn btn_default"><span>FAQ확인</span></a>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>
+		</li>
+	</ul>
+</div><!-- //결제수단 선택 -->
+
+
+<script th:inline="javascript">
+var dispYn = [[${order.dispYn}]]; // 노출여부
+
+//화면노출
+var paymentInfoDispYn = function(temp) {
+	if (temp == "Y") {
+		$("#paymentInfo .fold_head").addClass("on");
+		$("#paymentInfo .fold_cont").show();
+	} else {
+		$("#paymentInfo .fold_head").removeClass("on");
+		$("#paymentInfo .fold_cont").hide();
+	}
+}
+
+//컨텐츠 호출
+$(document).ready( function() {
+	// 화면펼침
+	paymentInfoDispYn(dispYn);
+});
+
+
+</script>
+
 </html>

+ 280 - 280
src/main/webapp/WEB-INF/views/mob/popup/DelvAddrAddPopMob.html

@@ -1,280 +1,280 @@
-<form class="form_wrap form_full" name="deliveryAddForm" id="deliveryAddForm">
-	<div class="modal-header htop">
-		<h5 class="modal-title" id="adrsAddLabel">배송지 추가</h5>
-	</div>
-	<div class="modal-body">
-		<div class="pop_cont">
-			<div class="inner wide">
-				<div class="tbl_wrap">
-					<div class="tbl tbl_dlvr">
-						<table>
-							<colgroup>
-								<col width="*">
-							</colgroup>   
-							<tbody>
-								<tr>
-									<td>
-										<span class="sr-only">받는분</span>
-										<input type="text" class="form_control" name="recipNm" placeholder="받는분">
-									</td>
-								</tr>
-								<tr>
-									<td>
-										<span class="sr-only">휴대폰 번호</span>
-										<input type="text" class="form_control" name="recipPhnno" placeholder="휴대폰 번호">
-									</td>
-								</tr>
-								<tr>
-									<td>
-										<span class="sr-only">배송 주소</span>
-										<div class="input_wrap">
-											<input type="hidden" class="form_control" name="recipZipcode" placeholder="우편번호" readonly="readonly">
-											<input type="hidden" class="form_control" name="recipBaseAddr" placeholder="기본주소" readonly="readonly">
-											<input type="text" class="form_control" name="recipAddr" placeholder="배송주소" readonly="readonly">
-											<input type="text" class="form_control" name="recipDtlAddr" placeholder="상세주소">
-											<button type="button" class="btn btn_sch" onclick="fnOpenDaumAddr();">
-												<span class="sr-only">우편번호 찾기</span>
-											</button>
-										</div>
-										<div class="default_addrs">
-											<div class="form_field">
-												<input id="chk-default-addrs" type="checkbox" name="defaultYn" checked="">
-												<label for="chk-default-addrs"><span>기본 배송지로 등록</span></label>
-											</div>
-										</div>
-									</td>
-								</tr>
-							</tbody>
-						</table>
-					</div>
-				</div>
-				<div class="tbl_wrap">
-					<div class="tbl_tit">
-						<h3>배송 요청사항</h3>
-					</div>
-					<div class="tbl tbl_request">
-						<table>
-							<colgroup>
-								<col width="*">
-							</colgroup>   
-							<tbody>
-								<tr>
-									<th class="sr-only">문 앞</th>
-									<td>
-										<div class="form_field">
-											<input type="radio" name="rdi-request1" id="rdi-11" value="문 앞">
-											<label for="rdi-11"><span>문 앞</span></label>
-										</div>
-									</td>
-								</tr>
-								<tr>
-									<th class="sr-only">직접 받고 부재 시 문 앞</th>
-									<td>
-										<div class="form_field">
-											<input type="radio" name="rdi-request1" id="rdi-21" value="직접 받고 부재 시 문 앞">
-											<label for="rdi-21"><span>직접 받고 부재 시 문 앞</span></label>
-										</div>
-									</td>
-								</tr>
-								<tr>
-									<th class="sr-only">경비실</th>
-									<td>
-										<div class="form_field">
-											<input type="radio" name="rdi-request1" id="rdi-31" value="경비실">
-											<label for="rdi-31"><span>경비실</span></label>
-										</div>
-									</td>
-								</tr>
-								<tr>
-									<th class="sr-only">택배함</th>
-									<td>
-										<div class="form_field">
-											<input type="radio" name="rdi-request1" id="rdi-41" value="택배함">
-											<label for="rdi-41"><span>택배함</span></label>
-										</div>
-									</td>
-								</tr>
-								<tr>
-									<th class="sr-only">기타사항</th>
-									<td>
-										<div class="form_field">
-											<input type="radio" name="rdi-request1" id="rdi-51" value="기타사항">
-											<label for="rdi-51"><span>기타사항</span></label>
-										</div>
-									</td>
-								</tr>
-								<tr>
-									<th class="sr-only">보관 장소만 입력(필수)</th>
-									<td>
-										<div class="form_text">
-											<input type="text" name="delvMemoText" placeholder="보관 장소만 입력 (필수)" maxlength="30" disabled>
-											<p class="desc_txt">보관 장소 외 다른 내용 입력시 통보 없이 삭제 될 수 있습니다.</p>
-										</div>
-									</td>
-								</tr>
-							</tbody>
-						</table>
-					</div>
-				</div>
-			</div>
-		</div>
-	</div>
-	<div class="modal-footer">
-		<button type="button" class="btn btn_dark" id="btn_delivery_addr_save"><span>배송지 등록</span></button>
-	</div>
-</form>
-
-<script th:inline="javascript">
-var isLogin				= [[${isLogin}]];				// 로그인여부
-
-//컨텐츠 호출
-$(document).ready( function() {
-	// 배송요청사항 버튼기능
-	$("#deliveryAddForm input[name=rdi-request1]").each(function(){
-		// 기타기능 버튼기능
-		$(this).on("click", function(){
-			var temp = $(this).parent().find('span').text();
-			$("#deliveryAddForm input[name=delvMemoText]").val("");
-			if (temp == "기타사항") {
-				$("#deliveryAddForm input[name=delvMemoText]").attr("disabled", false);
-			} else {
-				$("#deliveryAddForm input[name=delvMemoText]").attr("disabled", true);
-			}
-		});
-	});
-});
-
-// 배송지등록버튼
-$("#btn_delivery_addr_save").on("click", function(){
-	
-	// 유효성체크
-	if (!deliveryAddFormCheck()){
-		return false;
-	}
-	
-	// 기본배송지여부
-	var defaultYn = "N";
-	if ($("#deliveryAddForm input[name=defaultYn]").is(":checked")) {
-		defaultYn = "Y";
-	}
-	
-	// 기타사항일때 텍스트 등록
-	var delvMemo = $("#deliveryAddForm input[name=rdi-request1]:checked").parent().find('span').text();
-	if ("기타사항" == delvMemo) {
-		delvMemo = $("#deliveryAddForm input[name=delvMemoText]").val();
-	}
-	
-	// custDelvAddrSq 부모창으로 전달
-	var delvObj = {
-		"custDelvAddrSq"	: 0
-		, "dispYn"			: "Y"
-		, "defaultYn"		: defaultYn
-		, "recipNm"			: $("#deliveryAddForm input[name=recipNm]").val()
-		, "recipPhnno"		: $("#deliveryAddForm input[name=recipPhnno]").val()
-		, "recipZipcode"	: $("#deliveryAddForm input[name=recipZipcode]").val()
-		, "recipBaseAddr"	: $("#deliveryAddForm input[name=recipBaseAddr]").val()
-		, "recipDtlAddr"	: $("#deliveryAddForm input[name=recipDtlAddr]").val()
-		, "delvMemo"		: delvMemo
-	}
-	
-	// 비회원
-	if (isLogin == false) {
-		// 부모장으로 값 전닫
-		delvAddrSet(delvObj);
-		// 팝업닫기
-		$(".close-modal").trigger("click");
-		return false;
-	}
-	
-	var jsonData = JSON.stringify(delvObj);
-	
-	$.ajax( {
-		type		: "POST",
-		url 		: '/common/createCustDeliveryAddr',
-		data		: jsonData,
-		dataType 	: 'html',
-		beforeSend : function(xhr, settings) {
-			xhr.setRequestHeader("AJAX"			, "true");
-			xhr.setRequestHeader('Accept'		, 'application/json');
-			xhr.setRequestHeader('Content-Type'	, 'application/json');
-			gagajf.showProgressbar(true);
-		},
-		success 	: function(result) {
-			if (result != null) {
-				delvObj.custDelvAddrSq = result;
-				
-				// 부모장으로 값 전닫
-				delvAddrSet(delvObj);
-			}
-			
-			// 팝업닫기
-			$(".close-modal").trigger("click");
-		}
-	});
-});
-
-// 유효성체크 함수
-var deliveryAddFormCheck = function() {
-	// TODO 유효성 체크 추가
-	if (gagajf.isNull($("#deliveryAddForm input[name=recipNm]").val())) {
-		mcxDialog.alert("이름을 입력해주세요.");
-		$('#deliveryAddForm input[name=custNm]').focus();
-		return false;
-	}
-	
-	if (gagajf.isNull($("#deliveryAddForm input[name=recipPhnno]").val())) {
-		mcxDialog.alert("휴대폰번호를 입력해주세요.");
-		$('#deliveryAddForm input[name=recipPhnno]').focus();
-		return false;
-	}
-	
-	if (gagajf.isNull($("#deliveryAddForm input[name=recipZipcode]").val())) {
-		mcxDialog.alert("배송주소를 입력해주세요.");
-		$('#deliveryAddForm input[name=recipAddr]').focus();
-		return false;
-	}
-	
-	if (gagajf.isNull($("#deliveryAddForm input[name=recipBaseAddr]").val())) {
-		mcxDialog.alert("배송주소를 입력해주세요.");
-		$('#deliveryAddForm input[name=recipAddr]').focus();
-		return false;
-	}
-	
-	if (gagajf.isNull($("#deliveryAddForm input[name=recipDtlAddr]").val())) {
-		mcxDialog.alert("상세주소를 입력해주세요.");
-		$('#deliveryAddForm input[name=recipDtlAddr]').focus();
-		return false;
-	}
-	
-	return true;
-}
-
-// 우편번호 DAUM을 이용한 우편번호 팝업 레이어
-var fnOpenDaumAddr = function() {
-	$("body").css("overflow", "hidden");
-	
-	let daumZip = new daum.Postcode({
-		oncomplete: function(data) {
-			$('#deliveryAddForm input[name=recipAddr]').val(data.zonecode + '    ' + cfnGetDaumRoadAddr(data));
-			$('#deliveryAddForm input[name=recipZipcode]').val(data.zonecode);
-			$('#deliveryAddForm input[name=recipBaseAddr]').val(cfnGetDaumRoadAddr(data));
-			$('#deliveryAddForm input[name=recipDtlAddr]').focus();
-			
-			cfnCloseDaumAddr();
-			
-			$("#adrsAddPop").modal("show");
-		},
-		width: '100%'
-	});
-	cfnOpenDaumAddr(daumZip);
-}
-</script>
-
-
-
-
-
-
-
-
-
+<form class="form_wrap form_full" name="deliveryAddForm" id="deliveryAddForm">
+	<div class="modal-header htop">
+		<h5 class="modal-title" id="adrsAddLabel">배송지 추가</h5>
+	</div>
+	<div class="modal-body">
+		<div class="pop_cont">
+			<div class="inner wide">
+				<div class="tbl_wrap">
+					<div class="tbl tbl_dlvr">
+						<table>
+							<colgroup>
+								<col width="*">
+							</colgroup>   
+							<tbody>
+								<tr>
+									<td>
+										<span class="sr-only">받는분</span>
+										<input type="text" class="form_control" name="recipNm" placeholder="받는분">
+									</td>
+								</tr>
+								<tr>
+									<td>
+										<span class="sr-only">휴대폰 번호</span>
+										<input type="text" class="form_control" name="recipPhnno" placeholder="휴대폰 번호">
+									</td>
+								</tr>
+								<tr>
+									<td>
+										<span class="sr-only">배송 주소</span>
+										<div class="input_wrap">
+											<input type="hidden" class="form_control" name="recipZipcode" placeholder="우편번호" readonly="readonly">
+											<input type="hidden" class="form_control" name="recipBaseAddr" placeholder="기본주소" readonly="readonly">
+											<input type="text" class="form_control" name="recipAddr" placeholder="배송주소" readonly="readonly">
+											<input type="text" class="form_control" name="recipDtlAddr" placeholder="상세주소">
+											<button type="button" class="btn btn_sch" onclick="fnOpenDaumAddr();">
+												<span class="sr-only">우편번호 찾기</span>
+											</button>
+										</div>
+										<div class="default_addrs">
+											<div class="form_field">
+												<input id="chk-default-addrs" type="checkbox" name="defaultYn" checked="">
+												<label for="chk-default-addrs"><span>기본 배송지로 등록</span></label>
+											</div>
+										</div>
+									</td>
+								</tr>
+							</tbody>
+						</table>
+					</div>
+				</div>
+				<div class="tbl_wrap">
+					<div class="tbl_tit">
+						<h3>배송 요청사항</h3>
+					</div>
+					<div class="tbl tbl_request">
+						<table>
+							<colgroup>
+								<col width="*">
+							</colgroup>   
+							<tbody>
+								<tr>
+									<th class="sr-only">문 앞</th>
+									<td>
+										<div class="form_field">
+											<input type="radio" name="rdi-request1" id="rdi-11" value="문 앞">
+											<label for="rdi-11"><span>문 앞</span></label>
+										</div>
+									</td>
+								</tr>
+								<tr>
+									<th class="sr-only">직접 받고 부재 시 문 앞</th>
+									<td>
+										<div class="form_field">
+											<input type="radio" name="rdi-request1" id="rdi-21" value="직접 받고 부재 시 문 앞">
+											<label for="rdi-21"><span>직접 받고 부재 시 문 앞</span></label>
+										</div>
+									</td>
+								</tr>
+								<tr>
+									<th class="sr-only">경비실</th>
+									<td>
+										<div class="form_field">
+											<input type="radio" name="rdi-request1" id="rdi-31" value="경비실">
+											<label for="rdi-31"><span>경비실</span></label>
+										</div>
+									</td>
+								</tr>
+								<tr>
+									<th class="sr-only">택배함</th>
+									<td>
+										<div class="form_field">
+											<input type="radio" name="rdi-request1" id="rdi-41" value="택배함">
+											<label for="rdi-41"><span>택배함</span></label>
+										</div>
+									</td>
+								</tr>
+								<tr>
+									<th class="sr-only">기타사항</th>
+									<td>
+										<div class="form_field">
+											<input type="radio" name="rdi-request1" id="rdi-51" value="기타사항">
+											<label for="rdi-51"><span>기타사항</span></label>
+										</div>
+									</td>
+								</tr>
+								<tr>
+									<th class="sr-only">보관 장소만 입력(필수)</th>
+									<td>
+										<div class="form_text">
+											<input type="text" name="delvMemoText" placeholder="보관 장소만 입력 (필수)" maxlength="30" disabled>
+											<p class="desc_txt">보관 장소 외 다른 내용 입력시 통보 없이 삭제 될 수 있습니다.</p>
+										</div>
+									</td>
+								</tr>
+							</tbody>
+						</table>
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>
+	<div class="modal-footer">
+		<button type="button" class="btn btn_dark" id="btn_delivery_addr_save"><span>배송지 등록</span></button>
+	</div>
+</form>
+
+<script th:inline="javascript">
+var isLogin				= [[${isLogin}]];				// 로그인여부
+
+//컨텐츠 호출
+$(document).ready( function() {
+	// 배송요청사항 버튼기능
+	$("#deliveryAddForm input[name=rdi-request1]").each(function(){
+		// 기타기능 버튼기능
+		$(this).on("click", function(){
+			var temp = $(this).parent().find('span').text();
+			$("#deliveryAddForm input[name=delvMemoText]").val("");
+			if (temp == "기타사항") {
+				$("#deliveryAddForm input[name=delvMemoText]").attr("disabled", false);
+			} else {
+				$("#deliveryAddForm input[name=delvMemoText]").attr("disabled", true);
+			}
+		});
+	});
+});
+
+// 배송지등록버튼
+$("#btn_delivery_addr_save").on("click", function(){
+	
+	// 유효성체크
+	if (!deliveryAddFormCheck()){
+		return false;
+	}
+	
+	// 기본배송지여부
+	var defaultYn = "N";
+	if ($("#deliveryAddForm input[name=defaultYn]").is(":checked")) {
+		defaultYn = "Y";
+	}
+	
+	// 기타사항일때 텍스트 등록
+	var delvMemo = $("#deliveryAddForm input[name=rdi-request1]:checked").parent().find('span').text();
+	if ("기타사항" == delvMemo) {
+		delvMemo = $("#deliveryAddForm input[name=delvMemoText]").val();
+	}
+	
+	// custDelvAddrSq 부모창으로 전달
+	var delvObj = {
+		"custDelvAddrSq"	: 0
+		, "dispYn"			: "Y"
+		, "defaultYn"		: defaultYn
+		, "recipNm"			: $("#deliveryAddForm input[name=recipNm]").val()
+		, "recipPhnno"		: $("#deliveryAddForm input[name=recipPhnno]").val()
+		, "recipZipcode"	: $("#deliveryAddForm input[name=recipZipcode]").val()
+		, "recipBaseAddr"	: $("#deliveryAddForm input[name=recipBaseAddr]").val()
+		, "recipDtlAddr"	: $("#deliveryAddForm input[name=recipDtlAddr]").val()
+		, "delvMemo"		: delvMemo
+	}
+	
+	// 비회원
+	if (isLogin == false) {
+		// 부모장으로 값 전닫
+		delvAddrSet(delvObj);
+		// 팝업닫기
+		$(".close-modal").trigger("click");
+		return false;
+	}
+	
+	var jsonData = JSON.stringify(delvObj);
+	
+	$.ajax( {
+		type		: "POST",
+		url 		: '/common/createCustDeliveryAddr',
+		data		: jsonData,
+		dataType 	: 'html',
+		beforeSend : function(xhr, settings) {
+			xhr.setRequestHeader("AJAX"			, "true");
+			xhr.setRequestHeader('Accept'		, 'application/json');
+			xhr.setRequestHeader('Content-Type'	, 'application/json');
+			gagajf.showProgressbar(true);
+		},
+		success 	: function(result) {
+			if (result != null) {
+				delvObj.custDelvAddrSq = result;
+				
+				// 부모장으로 값 전닫
+				delvAddrSet(delvObj);
+			}
+			
+			// 팝업닫기
+			$(".close-modal").trigger("click");
+		}
+	});
+});
+
+// 유효성체크 함수
+var deliveryAddFormCheck = function() {
+	// TODO 유효성 체크 추가
+	if (gagajf.isNull($("#deliveryAddForm input[name=recipNm]").val())) {
+		mcxDialog.alert("이름을 입력해주세요.");
+		$('#deliveryAddForm input[name=custNm]').focus();
+		return false;
+	}
+	
+	if (gagajf.isNull($("#deliveryAddForm input[name=recipPhnno]").val())) {
+		mcxDialog.alert("휴대폰번호를 입력해주세요.");
+		$('#deliveryAddForm input[name=recipPhnno]').focus();
+		return false;
+	}
+	
+	if (gagajf.isNull($("#deliveryAddForm input[name=recipZipcode]").val())) {
+		mcxDialog.alert("배송주소를 입력해주세요.");
+		$('#deliveryAddForm input[name=recipAddr]').focus();
+		return false;
+	}
+	
+	if (gagajf.isNull($("#deliveryAddForm input[name=recipBaseAddr]").val())) {
+		mcxDialog.alert("배송주소를 입력해주세요.");
+		$('#deliveryAddForm input[name=recipAddr]').focus();
+		return false;
+	}
+	
+	if (gagajf.isNull($("#deliveryAddForm input[name=recipDtlAddr]").val())) {
+		mcxDialog.alert("상세주소를 입력해주세요.");
+		$('#deliveryAddForm input[name=recipDtlAddr]').focus();
+		return false;
+	}
+	
+	return true;
+}
+
+// 우편번호 DAUM을 이용한 우편번호 팝업 레이어
+var fnOpenDaumAddr = function() {
+	$("body").css("overflow", "hidden");
+	
+	let daumZip = new daum.Postcode({
+		oncomplete: function(data) {
+			$('#deliveryAddForm input[name=recipAddr]').val(data.zonecode + '    ' + cfnGetDaumRoadAddr(data));
+			$('#deliveryAddForm input[name=recipZipcode]').val(data.zonecode);
+			$('#deliveryAddForm input[name=recipBaseAddr]').val(cfnGetDaumRoadAddr(data));
+			$('#deliveryAddForm input[name=recipDtlAddr]').focus();
+			
+			cfnCloseDaumAddr();
+			
+			$("#adrsAddPop").modal("show");
+		},
+		width: '100%'
+	});
+	cfnOpenDaumAddr(daumZip);
+}
+</script>
+
+
+
+
+
+
+
+
+

+ 146 - 146
src/main/webapp/WEB-INF/views/mob/popup/DelvAddrChangePopMob.html

@@ -1,146 +1,146 @@
-<!-- 배송지변경 팝업 -->
-<form name="delvAddrChangeForm" id="delvAddrChangeForm">
-	<div class="modal-header htop">
-		<h5 class="modal-title" id="adrsChangeLabel">배송지 관리</h5>
-	</div>
-	<div class="modal-body">
-		<div class="pop_cont">
-			<div class="inner wide">
-				<div class="delivery_list">
-					<!-- 배송지목록 -->
-					<th:block th:each="deliveryAddr, index : ${deliveryAddrList}">
-						<div class="ship_info">
-							<dl>
-								<div class="name">
-									<dt><span class="sr-only">배송지명</span></dt>
-									<dd>
-										<th:block th:text="${deliveryAddr.recipNm}"></th:block>
-										<div class="badge_wrap">
-											<th:block th:if="${deliveryAddr.defaultYn} == 'Y'">
-												<em class="order_badge">기본배송지</em> 
-											</th:block>
-											<th:block th:if="${deliveryAddr.shotDelvUseYn} == 'Y'">
-												<em class="order_badge order_bullet_badge">총알배송</em>
-											</th:block>
-										</div>
-									</dd>
-								</div>
-								<div class="phone">
-									<dt><span class="sr-only">휴대폰 번호</span></dt>
-									<dd th:text="${deliveryAddr.recipPhnno}"></dd>
-								</div>
-								<div class="addr">
-									<dt><span class="sr-only">배송주소</span></dt>
-									<dd th:text="${deliveryAddr.recipBaseAddr} + ' ' + ${deliveryAddr.recipDtlAddr}"></dd>
-								</div>
-								<div class="ship_request">
-									<dl>
-										<dt>배송요청 사항</dt>
-										<dd th:text="${deliveryAddr.delvMemo}"></dd>
-									</dl>
-								</div>
-							</dl>
-							<div class="btn_group btn_group_flex">
-								<div><button type="button" class="btn btn_gost btn_addrModify_pop" th:value="${deliveryAddr.custDelvAddrSq}" id="btn_addrModify_pop"><span>수정</span></button></div>
-								<div><button type="button" class="btn btn_dark btn_sel_delvAddr" th:value="${deliveryAddr.custDelvAddrSq}"><span>선택</span></button></div>
-							</div>
-							
-							<input type="hidden" name="recipNm" 			th:value="${deliveryAddr.recipNm}"/>
-							<input type="hidden" name="recipPhnno" 			th:value="${deliveryAddr.recipPhnno}"/>
-							<input type="hidden" name="recipZipcode" 		th:value="${deliveryAddr.recipZipcode}"/>
-							<input type="hidden" name="recipBaseAddr" 		th:value="${deliveryAddr.recipBaseAddr}"/>
-							<input type="hidden" name="recipDtlAddr" 		th:value="${deliveryAddr.recipDtlAddr}"/>
-							<input type="hidden" name="delvMemo" 			th:value="${deliveryAddr.delvMemo}"/>
-						</div>
-					</th:block>
-				</div>
-			</div>
-		</div>
-	</div>
-	<div class="modal-footer">
-		<button type="button" class="btn btn_dark" id="btn_adrsAdd_pop">
-			<span>배송지 추가</span>
-		</button>
-	</div>
-</form>
-
-<script th:inline="javascript">
-//컨텐츠 호출
-$(document).ready( function() {
-});
-
-// 2. 버튼기능구현
-// 2.1 배송지선택버튼
-$(".btn_sel_delvAddr").on("click", function(){
-	
-	// custDelvAddrSq 부모창으로 전달
-	var delvObj = {
-		"custDelvAddrSq"	: $(this).attr("value")
-		, "dispYn"			: "Y"
-		, "recipNm"			: $(this).parent().find("input[name=recipNm]").val()
-		, "recipPhnno"		: $(this).parent().find("input[name=recipPhnno]").val()
-		, "recipZipcode"	: $(this).parent().find("input[name=recipZipcode]").val()
-		, "recipBaseAddr"	: $(this).parent().find("input[name=recipBaseAddr]").val()
-		, "recipDtlAddr"	: $(this).parent().find("input[name=recipDtlAddr]").val()
-		, "delvMemo"		: $(this).parent().find("input[name=delvMemo]").val()
-	}
-	
-	// 부모장으로 값 전닫
-	deliveryAddrInfoSet(delvObj);
-	
-	// 팝업닫기
-	$(".close-modal").trigger("click");
-});
-
-// 2.2 배송지수정버튼
-$(".btn_addrModify_pop").on("click", function(){
-		
-	var obj = {
-		"custDelvAddrSq" : $(this).attr("value")
-	} 
-	
-	$.ajax( {
-		type		: "POST",
-		url 		: '/common/delvAddrModifyPop',
-		data		: JSON.stringify(obj),
-		dataType 	: 'html',
-		beforeSend : function(xhr, settings) {
-			xhr.setRequestHeader("AJAX"			, "true");
-			xhr.setRequestHeader('Accept'		, 'application/json');
-			xhr.setRequestHeader('Content-Type'	, 'application/json');
-			gagajf.showProgressbar(true);
-		},
-		success 	: function(result) {
-			$("#adrsModifyPop .modal-dialog .modal-content").html(result);
-			$("#adrsModifyPop").modal("show");
-		}
-	});	
-});
-
-
-// 2.3 배송지추가 팝업열기
-$('#btn_adrsAdd_pop').on("click", function(){
-	$.ajax( {
-		type		: "POST",
-		url 		: '/common/delvAddrAddPop',
-		data		: JSON.stringify(jsonObj),
-		dataType 	: 'html',
-		beforeSend : function(xhr, settings) {
-			xhr.setRequestHeader("AJAX"			, "true");
-			xhr.setRequestHeader('Accept'		, 'application/json');
-			xhr.setRequestHeader('Content-Type'	, 'application/json');
-			gagajf.showProgressbar(true);
-		},
-		success 	: function(result) {
-			$("#adrsAddPop .modal-dialog .modal-content").html(result);
-			$("#adrsAddPop").modal("show");
-		}
-	});	
-});
-
-
-
-
-
-
-</script>
+<!-- 배송지변경 팝업 -->
+<form name="delvAddrChangeForm" id="delvAddrChangeForm">
+	<div class="modal-header htop">
+		<h5 class="modal-title" id="adrsChangeLabel">배송지 관리</h5>
+	</div>
+	<div class="modal-body">
+		<div class="pop_cont">
+			<div class="inner wide">
+				<div class="delivery_list">
+					<!-- 배송지목록 -->
+					<th:block th:each="deliveryAddr, index : ${deliveryAddrList}">
+						<div class="ship_info">
+							<dl>
+								<div class="name">
+									<dt><span class="sr-only">배송지명</span></dt>
+									<dd>
+										<th:block th:text="${deliveryAddr.recipNm}"></th:block>
+										<div class="badge_wrap">
+											<th:block th:if="${deliveryAddr.defaultYn} == 'Y'">
+												<em class="order_badge">기본배송지</em> 
+											</th:block>
+											<th:block th:if="${deliveryAddr.shotDelvUseYn} == 'Y'">
+												<em class="order_badge order_bullet_badge">총알배송</em>
+											</th:block>
+										</div>
+									</dd>
+								</div>
+								<div class="phone">
+									<dt><span class="sr-only">휴대폰 번호</span></dt>
+									<dd th:text="${deliveryAddr.recipPhnno}"></dd>
+								</div>
+								<div class="addr">
+									<dt><span class="sr-only">배송주소</span></dt>
+									<dd th:text="${deliveryAddr.recipBaseAddr} + ' ' + ${deliveryAddr.recipDtlAddr}"></dd>
+								</div>
+								<div class="ship_request">
+									<dl>
+										<dt>배송요청 사항</dt>
+										<dd th:text="${deliveryAddr.delvMemo}"></dd>
+									</dl>
+								</div>
+							</dl>
+							<div class="btn_group btn_group_flex">
+								<div><button type="button" class="btn btn_gost btn_addrModify_pop" th:value="${deliveryAddr.custDelvAddrSq}" id="btn_addrModify_pop"><span>수정</span></button></div>
+								<div><button type="button" class="btn btn_dark btn_sel_delvAddr" th:value="${deliveryAddr.custDelvAddrSq}"><span>선택</span></button></div>
+							</div>
+							
+							<input type="hidden" name="recipNm" 			th:value="${deliveryAddr.recipNm}"/>
+							<input type="hidden" name="recipPhnno" 			th:value="${deliveryAddr.recipPhnno}"/>
+							<input type="hidden" name="recipZipcode" 		th:value="${deliveryAddr.recipZipcode}"/>
+							<input type="hidden" name="recipBaseAddr" 		th:value="${deliveryAddr.recipBaseAddr}"/>
+							<input type="hidden" name="recipDtlAddr" 		th:value="${deliveryAddr.recipDtlAddr}"/>
+							<input type="hidden" name="delvMemo" 			th:value="${deliveryAddr.delvMemo}"/>
+						</div>
+					</th:block>
+				</div>
+			</div>
+		</div>
+	</div>
+	<div class="modal-footer">
+		<button type="button" class="btn btn_dark" id="btn_adrsAdd_pop">
+			<span>배송지 추가</span>
+		</button>
+	</div>
+</form>
+
+<script th:inline="javascript">
+//컨텐츠 호출
+$(document).ready( function() {
+});
+
+// 2. 버튼기능구현
+// 2.1 배송지선택버튼
+$(".btn_sel_delvAddr").on("click", function(){
+	
+	// custDelvAddrSq 부모창으로 전달
+	var delvObj = {
+		"custDelvAddrSq"	: $(this).attr("value")
+		, "dispYn"			: "Y"
+		, "recipNm"			: $(this).parent().find("input[name=recipNm]").val()
+		, "recipPhnno"		: $(this).parent().find("input[name=recipPhnno]").val()
+		, "recipZipcode"	: $(this).parent().find("input[name=recipZipcode]").val()
+		, "recipBaseAddr"	: $(this).parent().find("input[name=recipBaseAddr]").val()
+		, "recipDtlAddr"	: $(this).parent().find("input[name=recipDtlAddr]").val()
+		, "delvMemo"		: $(this).parent().find("input[name=delvMemo]").val()
+	}
+	
+	// 부모장으로 값 전닫
+	deliveryAddrInfoSet(delvObj);
+	
+	// 팝업닫기
+	$(".close-modal").trigger("click");
+});
+
+// 2.2 배송지수정버튼
+$(".btn_addrModify_pop").on("click", function(){
+		
+	var obj = {
+		"custDelvAddrSq" : $(this).attr("value")
+	} 
+	
+	$.ajax( {
+		type		: "POST",
+		url 		: '/common/delvAddrModifyPop',
+		data		: JSON.stringify(obj),
+		dataType 	: 'html',
+		beforeSend : function(xhr, settings) {
+			xhr.setRequestHeader("AJAX"			, "true");
+			xhr.setRequestHeader('Accept'		, 'application/json');
+			xhr.setRequestHeader('Content-Type'	, 'application/json');
+			gagajf.showProgressbar(true);
+		},
+		success 	: function(result) {
+			$("#adrsModifyPop .modal-dialog .modal-content").html(result);
+			$("#adrsModifyPop").modal("show");
+		}
+	});	
+});
+
+
+// 2.3 배송지추가 팝업열기
+$('#btn_adrsAdd_pop').on("click", function(){
+	$.ajax( {
+		type		: "POST",
+		url 		: '/common/delvAddrAddPop',
+		data		: JSON.stringify(jsonObj),
+		dataType 	: 'html',
+		beforeSend : function(xhr, settings) {
+			xhr.setRequestHeader("AJAX"			, "true");
+			xhr.setRequestHeader('Accept'		, 'application/json');
+			xhr.setRequestHeader('Content-Type'	, 'application/json');
+			gagajf.showProgressbar(true);
+		},
+		success 	: function(result) {
+			$("#adrsAddPop .modal-dialog .modal-content").html(result);
+			$("#adrsAddPop").modal("show");
+		}
+	});	
+});
+
+
+
+
+
+
+</script>

+ 295 - 295
src/main/webapp/WEB-INF/views/mob/popup/DelvAddrModifyPopMob.html

@@ -1,295 +1,295 @@
-<form name="deliveryModifyForm" id="deliveryModifyForm">
-	<input type="hidden" class="form_control" name="custDelvAddrSq" th:value="${deliveryAddrInfo.custDelvAddrSq}">
-	
-	<div class="modal-header htop">
-		<h5 class="modal-title" id="adrsModifyLabel">배송지 수정</h5>
-	</div>
-	<div class="modal-body">
-		<div class="pop_cont">
-			<div class="inner wide">
-				<div class="tbl_wrap">
-					<div class="tbl tbl_dlvr">
-						<table>
-							<colgroup>
-								<col width="*">
-							</colgroup>
-							<tbody>
-								<tr>
-									<td>
-										<span class="sr-only">받는분</span>
-										<input type="text"class="form_control" name="recipNm" placeholder="받는분" th:value="${deliveryAddrInfo.recipNm}">
-									</td>
-								</tr>
-								<tr>
-									<td>
-										<span class="sr-only">휴대폰 번호</span>
-										<input type="text" class="form_control" name="recipPhnno" placeholder="휴대폰 번호" th:value="${deliveryAddrInfo.recipPhnno}">
-									</td>
-								</tr>
-								<tr>
-									<td>
-										<span class="sr-only">배송 주소</span>
-										<div class="input_wrap">
-											<input type="hidden" name="recipZipcode" placeholder="우편번호" th:value="${deliveryAddrInfo.recipZipcode}" readonly="readonly">
-											<input type="hidden" class="form_control" name="recipBaseAddr" placeholder="기본주소"th:value="${deliveryAddrInfo.recipBaseAddr}" readonly="readonly">
-							
-											<input type="text" class="form_control" placeholder="배송주소" name="recipAddr" th:value="${deliveryAddrInfo.recipZipcode} + '    '+ ${deliveryAddrInfo.recipBaseAddr}" readonly="readonly">
-											<input type="text" class="form_control" placeholder="상세주소" name="recipDtlAddr" th:value="${deliveryAddrInfo.recipDtlAddr}">
-											<button type="button" class="btn btn_sch" onclick="fnOpenDaumAddr();">
-												<span class="sr-only">우편번호 찾기</span>
-											</button>
-										</div>
-										<div class="default_addrs">
-											<div class="form_field">
-												<th:block th:if="${deliveryAddrInfo.defaultYn} == 'Y'">
-													<input id="chk-default-addrs" type="checkbox" name="defaultYn" checked>
-												</th:block>
-												<th:block th:if="${deliveryAddrInfo.defaultYn} == 'N'">
-													<input id="chk-default-addrs" type="checkbox" name="defaultYn">
-												</th:block>
-												<label for="chk-default-addrs"><span>기본배송지로 등록</span></label>
-											</div>
-										</div>
-									</td>
-								</tr>
-							</tbody>
-						</table>
-					</div>
-				</div>
-				<div class="tbl_wrap">
-					<div class="tbl_tit">
-						<h3>배송 요청사항</h3>
-					</div>
-					<div class="tbl tbl_request">
-						<table>
-							<colgroup>
-								<col width="*">
-							</colgroup>
-							<tbody>
-								<tr>
-									<th class="sr-only">문 앞</th>
-									<td>
-										<div class="form_field">
-											<input type="radio" name="rdi-request1" id="rdi-1" value="문 앞">
-											<label for="rdi-1"><span>문 앞</span></label>
-										</div>
-									</td>
-								</tr>
-								<tr>
-									<th class="sr-only">직접 받고 부재 시 문 앞</th>
-									<td>
-										<div class="form_field">
-											<input type="radio" name="rdi-request1" id="rdi-2" value="직접 받고 부재 시 문 앞">
-											<label for="rdi-2"><span>직접 받고 부재 시 문 앞</span></label>
-										</div>
-									</td>
-								</tr>
-								<tr>
-									<th class="sr-only">경비실</th>
-									<td>
-										<div class="form_field">
-											<input type="radio" name="rdi-request1" id="rdi-3" value="경비실"><label
-												for="rdi-3"><span>경비실</span></label>
-										</div>
-									</td>
-								</tr>
-								<tr>
-									<th class="sr-only">택배함</th>
-									<td>
-										<div class="form_field">
-											<input type="radio" name="rdi-request1" id="rdi-4" value="택배함">
-											<label for="rdi-4"><span>택배함</span></label>
-										</div>
-									</td>
-								</tr>
-								<tr>
-									<th class="sr-only">기타사항</th>
-									<td>
-										<div class="form_field">
-											<input type="radio" name="rdi-request1" id="rdi-5" value="5">
-											<label for="rdi-5"><span>기타사항</span></label>
-										</div>
-									</td>
-								</tr>
-								<tr>
-									<th class="sr-only">보관 장소만 입력(필수)</th>
-									<td>
-										<div class="form_text">
-											<input type="text" name="delvMemoText"  placeholder="보관 장소만 입력 (필수)" maxlength="30" disabled>
-											<p class="desc_txt">보관 장소 외 다른 내용 입력시 통보 없이 삭제 될 수 있습니다.</p>
-										</div>
-									</td>
-								</tr>
-							</tbody>
-						</table>
-					</div>
-				</div>
-			</div>
-		</div>
-	</div>
-	<div class="modal-footer">
-		<button type="button" class="btn btn_dark" id="btn_delivery_modi_save"><span>배송지 등록</span></button>
-	</div>
-</form>
-
-<script th:inline="javascript">
-var delvMemo = [[${deliveryAddrInfo.delvMemo}]];
-//컨텐츠 호출
-$(document).ready( function() {
-	
-	var delvMemoArr = ["문 앞", "직접받고 부재시 문 앞", "경비실", "택배함"];
-	var tempMemo = true;
-	
-	// 배송요청사항설정
-	for (i=0 ; i<delvMemoArr.length ; i++) {
-		if (delvMemoArr[i] == delvMemo) {
-			tempMemo = false;
-		}
-	}
-	
-	if (tempMemo) {
-		$("#deliveryModifyForm input[name=rdi-request1]").eq(4).attr("checked", true);
-		$("#deliveryModifyForm input[name=delvMemoText]").attr("disabled", false);
-		$("#deliveryModifyForm input[name=delvMemoText]").val(delvMemo);
-	}
-	
-	$("#deliveryModifyForm input[name=rdi-request1]").each(function(){
-		var temp = $(this).parent().find('span').text();
-		if (delvMemo == temp) {
-			$(this).attr("checked", true);
-		}
-	});
-	
-	// 배송요청사항 버튼기능
-	$("#deliveryModifyForm input[name=rdi-request1]").each(function(){
-		// 버튼기능
-		$(this).on("click", function(){
-			var temp = $(this).parent().find('span').text();
-			$("#deliveryModifyForm input[name=delvMemoText]").val("");
-			if (temp == "기타사항") {
-				$("#deliveryModifyForm input[name=delvMemoText]").attr("disabled", false);
-			} else {
-				$("#deliveryModifyForm input[name=delvMemoText]").attr("disabled", true);
-			}
-		});
-	});
-});
-
-// 배송지등록버튼
-$("#btn_delivery_modi_save").on("click", function(){
-	
-	// 유효성체크
-	if (!deliveryModifyFormCheck()){
-		return false;
-	}
-	
-	// 기본배송지여부
-	var defaultYn = "N";
-	if ($("#deliveryModifyForm input[name=defaultYn]").is(":checked")) {
-		defaultYn = "Y";
-	}
-	
-	// 기타사항일때 텍스트 등록
-	var delvMemo = $("#deliveryModifyForm input[name=rdi-request1]:checked").parent().find('span').text();
-	if ("기타사항" == delvMemo) {
-		delvMemo = $("#deliveryModifyForm input[name=delvMemoText]").val();
-	}
-	
-	// 배송지정보설정
-	var jsonObj = {
-		"defaultYn"			: defaultYn
-		, "custDelvAddrSq"	: parseInt($("#deliveryModifyForm input[name=custDelvAddrSq]").val())
-		, "recipNm"			: $("#deliveryModifyForm input[name=recipNm]").val()
-		, "recipPhnno"		: $("#deliveryModifyForm input[name=recipPhnno]").val()
-		, "recipZipcode"	: $("#deliveryModifyForm input[name=recipZipcode]").val()
-		, "recipBaseAddr"	: $("#deliveryModifyForm input[name=recipBaseAddr]").val()
-		, "recipDtlAddr"	: $("#deliveryModifyForm input[name=recipDtlAddr]").val()
-		, "delvMemo"		: delvMemo
-	}
-	
-	var jsonData = JSON.stringify(jsonObj);
-	
-	$.ajax( {
-		type		: "POST",
-		url 		: '/common/updateCustDeliveryAddr',
-		data		: jsonData,
-		dataType 	: 'html',
-		beforeSend : function(xhr, settings) {
-			xhr.setRequestHeader("AJAX"			, "true");
-			xhr.setRequestHeader('Accept'		, 'application/json');
-			xhr.setRequestHeader('Content-Type'	, 'application/json');
-			gagajf.showProgressbar(true);
-		},
-		success 	: function(result) {
-			// custDelvAddrSq 부모창으로 전달
-			var delvObj = {
-				"custDelvAddrSq"	: parseInt($("#deliveryModifyForm input[name=custDelvAddrSq]").val())
-				, "dispYn"			: "Y"
-				, "recipNm"			: $("#deliveryModifyForm input[name=recipNm]").val()
-				, "recipPhnno"		: $("#deliveryModifyForm input[name=recipPhnno]").val()
-				, "recipZipcode"	: $("#deliveryModifyForm input[name=recipZipcode]").val()
-				, "recipBaseAddr"	: $("#deliveryModifyForm input[name=recipBaseAddr]").val()
-				, "recipDtlAddr"	: $("#deliveryModifyForm input[name=recipDtlAddr]").val()
-				, "delvMemo"		: delvMemo
-			}
-			
-			// 부모장으로 값 전닫
-			delvAddrSet(delvObj);
-			
-			// 팝업닫기
-			$(".close-modal").trigger("click");
-		}
-	});
-});
-
-// 유효성체크 함수
-var deliveryModifyFormCheck = function() {
-	// TODO 유효성 체크 추가
-	if (gagajf.isNull($("#deliveryModifyForm input[name=recipNm]").val())) {
-		mcxDialog.alert("이름을 입력해주세요.");
-		$('#deliveryModifyForm input[name=custNm]').focus();
-		return false;
-	}
-	
-	if (gagajf.isNull($("#deliveryModifyForm input[name=recipZipcode]").val())) {
-		mcxDialog.alert("배송주소를 입력해주세요.");
-		$('#deliveryModifyForm input[name=recipAddr]').focus();
-		return false;
-	}
-	
-	if (gagajf.isNull($("#deliveryModifyForm input[name=recipBaseAddr]").val())) {
-		mcxDialog.alert("배송주소를 입력해주세요.");
-		$('#deliveryModifyForm input[name=recipAddr]').focus();
-		return false;
-	}
-	
-	if (gagajf.isNull($("#deliveryModifyForm input[name=recipDtlAddr]").val())) {
-		mcxDialog.alert("상세주소를 입력해주세요.");
-		$('#deliveryModifyForm input[name=recipDtlAddr]').focus();
-		return false;
-	}
-	
-	return true;
-}
-
-// 우편번호 DAUM을 이용한 우편번호 팝업 레이어
-var fnOpenDaumAddr = function() {
-	$("body").css("overflow", "hidden");
-	
-	let daumZip = new daum.Postcode({
-		oncomplete: function(data) {
-			$('#deliveryModifyForm input[name=recipAddr]').val(data.zonecode + '    ' + cfnGetDaumRoadAddr(data));
-			$('#deliveryModifyForm input[name=recipZipcode]').val(data.zonecode);
-			$('#deliveryModifyForm input[name=recipBaseAddr]').val(cfnGetDaumRoadAddr(data));
-			$('#deliveryModifyForm input[name=recipDtlAddr]').focus();
-			
-			cfnCloseDaumAddr();
-			
-			$("#adrsModifyPop").modal("show");
-		},
-		width: '100%'
-	});
-	
-	cfnOpenDaumAddr(daumZip);
-}
-</script>
+<form name="deliveryModifyForm" id="deliveryModifyForm">
+	<input type="hidden" class="form_control" name="custDelvAddrSq" th:value="${deliveryAddrInfo.custDelvAddrSq}">
+	
+	<div class="modal-header htop">
+		<h5 class="modal-title" id="adrsModifyLabel">배송지 수정</h5>
+	</div>
+	<div class="modal-body">
+		<div class="pop_cont">
+			<div class="inner wide">
+				<div class="tbl_wrap">
+					<div class="tbl tbl_dlvr">
+						<table>
+							<colgroup>
+								<col width="*">
+							</colgroup>
+							<tbody>
+								<tr>
+									<td>
+										<span class="sr-only">받는분</span>
+										<input type="text"class="form_control" name="recipNm" placeholder="받는분" th:value="${deliveryAddrInfo.recipNm}">
+									</td>
+								</tr>
+								<tr>
+									<td>
+										<span class="sr-only">휴대폰 번호</span>
+										<input type="text" class="form_control" name="recipPhnno" placeholder="휴대폰 번호" th:value="${deliveryAddrInfo.recipPhnno}">
+									</td>
+								</tr>
+								<tr>
+									<td>
+										<span class="sr-only">배송 주소</span>
+										<div class="input_wrap">
+											<input type="hidden" name="recipZipcode" placeholder="우편번호" th:value="${deliveryAddrInfo.recipZipcode}" readonly="readonly">
+											<input type="hidden" class="form_control" name="recipBaseAddr" placeholder="기본주소"th:value="${deliveryAddrInfo.recipBaseAddr}" readonly="readonly">
+							
+											<input type="text" class="form_control" placeholder="배송주소" name="recipAddr" th:value="${deliveryAddrInfo.recipZipcode} + '    '+ ${deliveryAddrInfo.recipBaseAddr}" readonly="readonly">
+											<input type="text" class="form_control" placeholder="상세주소" name="recipDtlAddr" th:value="${deliveryAddrInfo.recipDtlAddr}">
+											<button type="button" class="btn btn_sch" onclick="fnOpenDaumAddr();">
+												<span class="sr-only">우편번호 찾기</span>
+											</button>
+										</div>
+										<div class="default_addrs">
+											<div class="form_field">
+												<th:block th:if="${deliveryAddrInfo.defaultYn} == 'Y'">
+													<input id="chk-default-addrs" type="checkbox" name="defaultYn" checked>
+												</th:block>
+												<th:block th:if="${deliveryAddrInfo.defaultYn} == 'N'">
+													<input id="chk-default-addrs" type="checkbox" name="defaultYn">
+												</th:block>
+												<label for="chk-default-addrs"><span>기본배송지로 등록</span></label>
+											</div>
+										</div>
+									</td>
+								</tr>
+							</tbody>
+						</table>
+					</div>
+				</div>
+				<div class="tbl_wrap">
+					<div class="tbl_tit">
+						<h3>배송 요청사항</h3>
+					</div>
+					<div class="tbl tbl_request">
+						<table>
+							<colgroup>
+								<col width="*">
+							</colgroup>
+							<tbody>
+								<tr>
+									<th class="sr-only">문 앞</th>
+									<td>
+										<div class="form_field">
+											<input type="radio" name="rdi-request1" id="rdi-1" value="문 앞">
+											<label for="rdi-1"><span>문 앞</span></label>
+										</div>
+									</td>
+								</tr>
+								<tr>
+									<th class="sr-only">직접 받고 부재 시 문 앞</th>
+									<td>
+										<div class="form_field">
+											<input type="radio" name="rdi-request1" id="rdi-2" value="직접 받고 부재 시 문 앞">
+											<label for="rdi-2"><span>직접 받고 부재 시 문 앞</span></label>
+										</div>
+									</td>
+								</tr>
+								<tr>
+									<th class="sr-only">경비실</th>
+									<td>
+										<div class="form_field">
+											<input type="radio" name="rdi-request1" id="rdi-3" value="경비실"><label
+												for="rdi-3"><span>경비실</span></label>
+										</div>
+									</td>
+								</tr>
+								<tr>
+									<th class="sr-only">택배함</th>
+									<td>
+										<div class="form_field">
+											<input type="radio" name="rdi-request1" id="rdi-4" value="택배함">
+											<label for="rdi-4"><span>택배함</span></label>
+										</div>
+									</td>
+								</tr>
+								<tr>
+									<th class="sr-only">기타사항</th>
+									<td>
+										<div class="form_field">
+											<input type="radio" name="rdi-request1" id="rdi-5" value="5">
+											<label for="rdi-5"><span>기타사항</span></label>
+										</div>
+									</td>
+								</tr>
+								<tr>
+									<th class="sr-only">보관 장소만 입력(필수)</th>
+									<td>
+										<div class="form_text">
+											<input type="text" name="delvMemoText"  placeholder="보관 장소만 입력 (필수)" maxlength="30" disabled>
+											<p class="desc_txt">보관 장소 외 다른 내용 입력시 통보 없이 삭제 될 수 있습니다.</p>
+										</div>
+									</td>
+								</tr>
+							</tbody>
+						</table>
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>
+	<div class="modal-footer">
+		<button type="button" class="btn btn_dark" id="btn_delivery_modi_save"><span>배송지 등록</span></button>
+	</div>
+</form>
+
+<script th:inline="javascript">
+var delvMemo = [[${deliveryAddrInfo.delvMemo}]];
+//컨텐츠 호출
+$(document).ready( function() {
+	
+	var delvMemoArr = ["문 앞", "직접받고 부재시 문 앞", "경비실", "택배함"];
+	var tempMemo = true;
+	
+	// 배송요청사항설정
+	for (i=0 ; i<delvMemoArr.length ; i++) {
+		if (delvMemoArr[i] == delvMemo) {
+			tempMemo = false;
+		}
+	}
+	
+	if (tempMemo) {
+		$("#deliveryModifyForm input[name=rdi-request1]").eq(4).attr("checked", true);
+		$("#deliveryModifyForm input[name=delvMemoText]").attr("disabled", false);
+		$("#deliveryModifyForm input[name=delvMemoText]").val(delvMemo);
+	}
+	
+	$("#deliveryModifyForm input[name=rdi-request1]").each(function(){
+		var temp = $(this).parent().find('span').text();
+		if (delvMemo == temp) {
+			$(this).attr("checked", true);
+		}
+	});
+	
+	// 배송요청사항 버튼기능
+	$("#deliveryModifyForm input[name=rdi-request1]").each(function(){
+		// 버튼기능
+		$(this).on("click", function(){
+			var temp = $(this).parent().find('span').text();
+			$("#deliveryModifyForm input[name=delvMemoText]").val("");
+			if (temp == "기타사항") {
+				$("#deliveryModifyForm input[name=delvMemoText]").attr("disabled", false);
+			} else {
+				$("#deliveryModifyForm input[name=delvMemoText]").attr("disabled", true);
+			}
+		});
+	});
+});
+
+// 배송지등록버튼
+$("#btn_delivery_modi_save").on("click", function(){
+	
+	// 유효성체크
+	if (!deliveryModifyFormCheck()){
+		return false;
+	}
+	
+	// 기본배송지여부
+	var defaultYn = "N";
+	if ($("#deliveryModifyForm input[name=defaultYn]").is(":checked")) {
+		defaultYn = "Y";
+	}
+	
+	// 기타사항일때 텍스트 등록
+	var delvMemo = $("#deliveryModifyForm input[name=rdi-request1]:checked").parent().find('span').text();
+	if ("기타사항" == delvMemo) {
+		delvMemo = $("#deliveryModifyForm input[name=delvMemoText]").val();
+	}
+	
+	// 배송지정보설정
+	var jsonObj = {
+		"defaultYn"			: defaultYn
+		, "custDelvAddrSq"	: parseInt($("#deliveryModifyForm input[name=custDelvAddrSq]").val())
+		, "recipNm"			: $("#deliveryModifyForm input[name=recipNm]").val()
+		, "recipPhnno"		: $("#deliveryModifyForm input[name=recipPhnno]").val()
+		, "recipZipcode"	: $("#deliveryModifyForm input[name=recipZipcode]").val()
+		, "recipBaseAddr"	: $("#deliveryModifyForm input[name=recipBaseAddr]").val()
+		, "recipDtlAddr"	: $("#deliveryModifyForm input[name=recipDtlAddr]").val()
+		, "delvMemo"		: delvMemo
+	}
+	
+	var jsonData = JSON.stringify(jsonObj);
+	
+	$.ajax( {
+		type		: "POST",
+		url 		: '/common/updateCustDeliveryAddr',
+		data		: jsonData,
+		dataType 	: 'html',
+		beforeSend : function(xhr, settings) {
+			xhr.setRequestHeader("AJAX"			, "true");
+			xhr.setRequestHeader('Accept'		, 'application/json');
+			xhr.setRequestHeader('Content-Type'	, 'application/json');
+			gagajf.showProgressbar(true);
+		},
+		success 	: function(result) {
+			// custDelvAddrSq 부모창으로 전달
+			var delvObj = {
+				"custDelvAddrSq"	: parseInt($("#deliveryModifyForm input[name=custDelvAddrSq]").val())
+				, "dispYn"			: "Y"
+				, "recipNm"			: $("#deliveryModifyForm input[name=recipNm]").val()
+				, "recipPhnno"		: $("#deliveryModifyForm input[name=recipPhnno]").val()
+				, "recipZipcode"	: $("#deliveryModifyForm input[name=recipZipcode]").val()
+				, "recipBaseAddr"	: $("#deliveryModifyForm input[name=recipBaseAddr]").val()
+				, "recipDtlAddr"	: $("#deliveryModifyForm input[name=recipDtlAddr]").val()
+				, "delvMemo"		: delvMemo
+			}
+			
+			// 부모장으로 값 전닫
+			delvAddrSet(delvObj);
+			
+			// 팝업닫기
+			$(".close-modal").trigger("click");
+		}
+	});
+});
+
+// 유효성체크 함수
+var deliveryModifyFormCheck = function() {
+	// TODO 유효성 체크 추가
+	if (gagajf.isNull($("#deliveryModifyForm input[name=recipNm]").val())) {
+		mcxDialog.alert("이름을 입력해주세요.");
+		$('#deliveryModifyForm input[name=custNm]').focus();
+		return false;
+	}
+	
+	if (gagajf.isNull($("#deliveryModifyForm input[name=recipZipcode]").val())) {
+		mcxDialog.alert("배송주소를 입력해주세요.");
+		$('#deliveryModifyForm input[name=recipAddr]').focus();
+		return false;
+	}
+	
+	if (gagajf.isNull($("#deliveryModifyForm input[name=recipBaseAddr]").val())) {
+		mcxDialog.alert("배송주소를 입력해주세요.");
+		$('#deliveryModifyForm input[name=recipAddr]').focus();
+		return false;
+	}
+	
+	if (gagajf.isNull($("#deliveryModifyForm input[name=recipDtlAddr]").val())) {
+		mcxDialog.alert("상세주소를 입력해주세요.");
+		$('#deliveryModifyForm input[name=recipDtlAddr]').focus();
+		return false;
+	}
+	
+	return true;
+}
+
+// 우편번호 DAUM을 이용한 우편번호 팝업 레이어
+var fnOpenDaumAddr = function() {
+	$("body").css("overflow", "hidden");
+	
+	let daumZip = new daum.Postcode({
+		oncomplete: function(data) {
+			$('#deliveryModifyForm input[name=recipAddr]').val(data.zonecode + '    ' + cfnGetDaumRoadAddr(data));
+			$('#deliveryModifyForm input[name=recipZipcode]').val(data.zonecode);
+			$('#deliveryModifyForm input[name=recipBaseAddr]').val(cfnGetDaumRoadAddr(data));
+			$('#deliveryModifyForm input[name=recipDtlAddr]').focus();
+			
+			cfnCloseDaumAddr();
+			
+			$("#adrsModifyPop").modal("show");
+		},
+		width: '100%'
+	});
+	
+	cfnOpenDaumAddr(daumZip);
+}
+</script>

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

@@ -571,10 +571,22 @@
 			/*let compsList = [];
 			let temp 			= new Object;
 			temp.goodsCd 		= "AOW13QDM76";
-			temp.optCd 			= "13256848-4";
-			temp.goodsQty 		= 1;
+			temp.optCd 			= "13256848-2";
+			temp.goodsQty 		= 3;
 			temp.goodsType 		= "G056_N";
-			temp.cartGb 		= "C";
+			temp.cartGb 		= "O";
+			temp.afLinkCd 		= "afLinkCd";
+			temp.ithrCd 		= "G027_ZZZ";
+			temp.contentsLoc 	= "G028_YYY";
+			temp.planDtlSq 		= "123";
+			compsList.push(temp);
+
+			temp 			= new Object;
+			temp.goodsCd 		= "AOW13QDM76";
+			temp.optCd 			= "13256848-6";
+			temp.goodsQty 		= 3;
+			temp.goodsType 		= "G056_N";
+			temp.cartGb 		= "O";
 			temp.afLinkCd 		= "afLinkCd";
 			temp.ithrCd 		= "G027_ZZZ";
 			temp.contentsLoc 	= "G028_YYY";
@@ -593,12 +605,17 @@
 			}
 
 			/* 세트상품 장바구니 */
-			/*let compsList = [];
+			/*let goodsList = {
+				cartCompsList : new Array()
+			}
+			let cartGoodsList = [];
+
+			let compsList = [];
 			let temp = new Object;
 			temp.goodsCd = "STYS00000005";
 			temp.itemCd = "A83F-DP568S";
-			temp.optCd = "14019445-2";
-			temp.goodsQty = 1;
+			temp.optCd = "14019445-1";
+			temp.goodsQty = 3;
 			temp.goodsType = "G056_S";
 			temp.cartGb = "C";
 			temp.afLinkCd = "aaaa";
@@ -609,8 +626,8 @@
 			temp = new Object;
 			temp.goodsCd = "STYS00000005";
 			temp.itemCd = "A83F-TS517S";
-			temp.optCd = "11867579-2";
-			temp.goodsQty = 1;
+			temp.optCd = "11867579-1";
+			temp.goodsQty = 3;
 			temp.goodsType = "G056_S";
 			temp.cartGb = "C";
 			temp.afLinkCd = "aaaa";
@@ -619,36 +636,42 @@
 			temp.planDtlSq = "44";
 			compsList.push(temp);
 
-			cfnAddCart(compsList);*/
-
-			/*let compsList = [];
-			let temp = new Object;
-			temp.goodsCd = "14373686";
-			temp.optCd = "챠콜그레이150";
-			temp.goodsQty = 2;
-			temp.goodsType = "G056_D";
-			temp.dealGoodsCd = "STYD000000025"
-			temp.cartGb = "O";
-			temp.afLinkCd = "afLinkCd";
-			temp.ithrCd = "G027_ZZZ";
-			temp.contentsLoc = "G028_YYY";
-			temp.planDtlSq = "123";
-			compsList.push(temp);
+			goodsList.cartCompsList = compsList;
+			cartGoodsList.push(goodsList);
 
+			let compsList2 = [];
+			let goodsList2 = {
+				cartCompsList : new Array()
+			}
+			temp = new Object;
+			temp.goodsCd = "STYS00000005";
+			temp.itemCd = "A83F-DP568S";
+			temp.optCd = "14019445-3";
+			temp.goodsQty = 3;
+			temp.goodsType = "G056_S";
+			temp.cartGb = "C";
+			temp.afLinkCd = "aaaa";
+			temp.ithrCd = "12311";
+			temp.contentsLoc = "afasd";
+			temp.planDtlSq = "44";
+			compsList2.push(temp);
 			temp = new Object;
-			temp.goodsCd = "14373710";
-			temp.optCd = "L핑크130";
+			temp.goodsCd = "STYS00000005";
+			temp.itemCd = "A83F-TS517S";
+			temp.optCd = "14024048-1";
 			temp.goodsQty = 3;
-			temp.goodsType = "G056_D";
-			temp.dealGoodsCd = "STYD000000025"
-			temp.cartGb = "O";
-			temp.afLinkCd = "afLinkCd";
-			temp.ithrCd = "G027_ZZZ";
-			temp.contentsLoc = "G028_YYY";
-			temp.planDtlSq = "123";
-			compsList.push(temp);
+			temp.goodsType = "G056_S";
+			temp.cartGb = "C";
+			temp.afLinkCd = "aaaa";
+			temp.ithrCd = "12311";
+			temp.contentsLoc = "afasd";
+			temp.planDtlSq = "44";
+			compsList2.push(temp);
 
-			cfnAddCart(compsList);*/
+			goodsList2.cartCompsList = compsList2;
+			cartGoodsList.push(goodsList2);
+
+			cfnAddCart(cartGoodsList);*/
 		});
 
 		function cancelCartCpn() {

+ 4 - 2
src/main/webapp/WEB-INF/views/web/goods/GoodsDealDetailFormWeb.html

@@ -274,8 +274,10 @@
 	<!-- //상품썸네일 크게보기 팝업 -->
 	
 	<!-- **************** 개별상품 상세정보 팝업 **************** -->
-	
- 
+
+
+	<!-- 바로구매 장바구니 등록 정보 저장을 위한 form -->
+	<form id="directOrderForm" method="POST" action="/order/noMember"></form>
 </div>
  
 <script th:inline="javascript">

+ 3 - 5
src/main/webapp/WEB-INF/views/web/goods/GoodsDetailDeliveryFormWeb.html

@@ -31,8 +31,6 @@
 						<td>
 							<th:block th:if="${goodsInfo.quikDelvYn = 'Y'}" >총알배송(오전 10시까지 주문 시)</th:block>
 							<th:block th:unless="${goodsInfo.quikDelvYn = 'Y'}" >일반배송</th:block>
-							
-							 
 						</td>
 					</tr>
 					<tr>
@@ -40,9 +38,9 @@
 							배송비
 						</th>
 						<td>
-							<th:block th:text="${#numbers.formatInteger(goodsInfo.delvFee, 0,'COMMA')}" ></th:block>원
+							<th:block th:if="${goodsInfo.delvFee <= 0}">무료배송</th:block>
+							<th:block th:if="${goodsInfo.delvFee > 0}" th:text="${#numbers.formatInteger(goodsInfo.delvFee, 0,'COMMA')}" ></th:block>원
 							<th:block th:if="${goodsInfo.minOrdAmt > 0}">(<th:block th:text="${#numbers.formatInteger(goodsInfo.minOrdAmt, 0,'COMMA')}" ></th:block>원 이상 무료배송)</th:block>
-							<th:block  th:if="${goodsInfo.delvFee <= 0}">무료배송</th:block>
 						</td>
 					</tr>
 					<tr>
@@ -141,7 +139,7 @@
 							신발, 그릇류의 박스포장을 포함, 상품이 판매할 수 없게 훼손 된 경우(신발박스 등의 파손, 박스포장 위 송장 부착, 박스 훼손/파손/찢어짐, 택 분실 등)
 						</td>
 					</tr>
-					<tr th:if="${deliveryInfo != null and deliveryInfo.delvFeeCd != null}">
+					<tr th:if="${deliveryInfo != null and deliveryInfo.delvFeeCd != null and not #strings.isEmpty(deliveryInfo.note)}">
 						<th>
 							기타사항
 						</th>

+ 1 - 1
src/main/webapp/WEB-INF/views/web/goods/GoodsReviewFormWeb.html

@@ -14,7 +14,7 @@
  * 1.0  2021.03.05   eskim		최초 작성
  *******************************************************************************
  -->
- <div class="full_popup_wrap" th:with="imgGoodsUrl=${@environment.getProperty('upload.goods.view')}, imgUrl=${@environment.getProperty('upload.image.view')}">
+ <div class="full_popup_wrap" th:with="imgGoodsUrl=${@environment.getProperty('upload.goods.view')}, uxImgUrl=${@environment.getProperty('domain.uximage')}, imgUrl=${@environment.getProperty('upload.image.view')}">
 	<h5 class="sr-only">상품리뷰</h5>
 	<div class="btn_close">
 		<a href="javascript:void(0)" onclick="cfCloseFullLayer('layer_goods_review');">닫기버튼</a>

+ 73 - 36
src/main/webapp/ux/mo/css/common_m.css

@@ -661,11 +661,15 @@ header {
   position: fixed;left: 0;top: 0;width: 100%;z-index: 80;
   position: sticky;left: 0;top: 0;width: 100%;transition: top 0.3s;/* background-color: #fff; */
 }
+header::after{content: '';display: block;clear: both;}
 header .htop {position: relative;height: 55px;-webkit-box-sizing: border-box;box-sizing: border-box;/*border: rgba(0, 0, 0, 0.1) solid 1px;*/ border-bottom: 1px solid rgba(0, 0, 0, 0.1); background-color: #fff;}
+header .htop:after {content: '';display: block; clear: both;}
 header #htopSub{border-bottom: 0px solid #e5e5e5;box-sizing: border-box;}
-header #htopSubs{border-bottom: 1px solid #000000;box-sizing: border-box;}
-header .htop h1 {display: inline-block;position: relative;height: 40px;line-height: 4.0rem;vertical-align: top;margin: 10px 0 0 10px;font-size: 1.8rem;color: #222;}
-header .htop h1 img {position: relative;top: 50%;left: 0;right: 0;transform: translate(0, -50%);margin: 0px 0;}
+header #htopSubs{border-bottom: 0px solid #000000;box-sizing: border-box;}
+header .htop h1 {display: inline-block;position: relative;width: 10.666rem;height: 100%;line-height: 4.5rem;vertical-align: middle;margin: 0px 0 0 2.0rem;font-size: 1.8rem;color: #222;}
+header .htop h1#htopTitle {display: inline-block;position: relative;max-width: 18rem;width: auto;height: 100%;line-height: 4.5rem;vertical-align: middle;padding: 0px 1.5rem 0px 0rem;font-size: 1.8rem;color: #222;}
+header .htop h1 a {height: 100%;width: 100%;display: block;}
+header .htop h1 img {position: absolute;top: 50%;left: 0;right: 0;transform: translate(0, -50%);margin: 0px 0;width: 10.666rem;height: auto;line-height: 1.6rem;vertical-align: middle;}
 header .htop .btn_back {margin: 10px 0 0 15px;width: 35px;height: 35px;}
 header .htop .btn_back span {display: block;width: 24px;height: 24px;margin: 0 auto;position: relative;}
 header .htop .btn_back span i {display: block;position: absolute;background: #222;-webkit-transition: all 0.3s ease-out;transition: all 0.3s ease-out;}
@@ -673,35 +677,52 @@ header .htop .btn_back span i.gl1 {left: 0;top: 6px;width: 12px;height: 2px;-web
 header .htop .btn_back span i.gl2 {left: 0;top: 50%;-webkit-transform: translateY(-50%);transform: translateY(-50%);width: 24px;height: 2px;}
 header .htop .btn_back span i.gl3 {left: 0;bottom: 6px;width: 12px;height: 2px;-webkit-transform: rotate(45deg);transform: rotate(45deg);}
 header .htop .btn_back:active span i {left: -20px;}
+
+
+header .htop .button_wrap {height: 5.5rem; float: right; padding: 1.6rem 0 0; margin: 0 2.5rem 0 0; box-sizing: border-box;}
+header .htop .button_wrap .search { margin:0 1.1666rem 0 0; }
+header .htop .button_wrap .search img{width: 2.0rem;}
+header .htop .button_wrap .store img{width: 1.6rem;}
+header .htop .button_wrap .store img:nth-child(1) { height: 2rem; }
+header .htop .button_wrap .store span { width: 2.1rem; height: 1.4rem; position: absolute; top: 1.2rem; right: 1.5rem; background: #fd4802; border-radius: 0.8rem; font-size: 0.8rem; color: #fff; line-height: 1.6rem;}
+
+
 header .subs {}
 
-header .btn_gnb {position: absolute;top: 0px;right: -45px;width: 35px;height: 35px;z-index: 10;}
+
+header .btn_gnb {position: absolute;top: 0px;right: -4.5rem;width: 3.5rem;height: 100%;z-index: 10;}
 header .btn_gnb span {display: block;width: 24px;height: 24px;margin: 0 auto;position: relative;}
-header .btn_gnb span i {display: block;position: absolute;left: 0;width: 24px;height: 2px;background: #222;-webkit-transition: all 0.15s ease-out;transition: all 0.15s ease-out;}
-header .btn_gnb span i.gl1 {top: 6px;}
-header .btn_gnb span i.gl2 {bottom: 6px;}
-header .btn_gnb.on span i {width: 24px;top: 10px;background: #222;}
-header .btn_gnb.on span i.gl1 {transform: rotate(45deg);-webkit-transform: rotate(45deg);}
-header .btn_gnb.on span i.gl2 {transform: rotate(-45deg);-webkit-transform: rotate(-45deg);}
-
-header .subs .btn_gnbs {position: absolute;top: 0px;right: -45px;width: 35px;height: 35px;z-index: 10;}
+header .btn_gnb span i {display: block;position: absolute;left: 0;width:100%;height: 100%;-webkit-transition: all 0.5s ease-out;transition: all 0.5s ease-out;}
+/* header .btn_gnb span i.gl1 {top: 6px;} */
+/* header .btn_gnb span i.gl2 {bottom: 6px;} */
+/* header .btn_gnb.on span i {width: 24px;top: 10px;background: #222;} */
+/* header .btn_gnb.on span i.gl1 {transform: rotate(45deg);-webkit-transform: rotate(45deg);} */
+/* header .btn_gnb.on span i.gl2 {transform: rotate(-45deg);-webkit-transform: rotate(-45deg);} */
+
+header .subs .btn_gnbs {position: absolute;top: 0px;right: -2.0rem;width: 3.5rem;height: 4.5rem;z-index: 10;}
+header .subs .btn_gnbs span i {display: block;position: absolute;left: 0;width: 100%;height: 100%;-webkit-transition: all 0.5s ease-out;transition: all 0.5s ease-out;}
+/* header .subs .btn_gnbs span {display: block;width: 24px;height: 24px;margin: 0 auto;position: relative;} */
+/* header .subs .btn_gnbs span i {display: block;position: absolute;left: 0;width: 24px;height: 2px;background: #222;-webkit-transition: all 0.15s ease-out;transition: all 0.15s ease-out;} */
 header .subs .btn_gnbs span {display: block;width: 24px;height: 24px;margin: 0 auto;position: relative;}
-header .subs .btn_gnbs span i {display: block;position: absolute;left: 0;width: 24px;height: 2px;background: #222;-webkit-transition: all 0.15s ease-out;transition: all 0.15s ease-out;}
-header .subs .btn_gnbs span i.gl1 {top: 6px;background: #222;}
-header .subs .btn_gnbs span i.gl2 {bottom: 6px;background: #222;}
-header .subs .btn_gnbs.on span i {width: 24px;top: 10px;background: #222;}
-header .subs .btn_gnbs.on span i.gl1 {transform: rotate(45deg);-webkit-transform: rotate(45deg);}
-header .subs .btn_gnbs.on span i.gl2 {transform: rotate(-45deg);-webkit-transform: rotate(-45deg);}
+header .subs .btn_gnbs span i {background: url(/images/mo/ico_btn_more.png) no-repeat;background-size: 1.3rem 0.733rem;background-position: 50% 50%;}
+/* header .subs .btn_gnbs span i.gl1 {top: 6px;background: #222;} */
+/* header .subs .btn_gnbs span i.gl2 {bottom: 6px;background: #222;} */
+/* header .subs .btn_gnbs.on span i {width: 24px;top: 10px;background: #222;} */
+header .subs .btn_gnbs.on span i {transform: rotate(-180deg);-webkit-transform: rotate(-180deg);}
+/* header .subs .btn_gnbs.on span i.gl1 {transform: rotate(45deg);-webkit-transform: rotate(45deg);} */
+/* header .subs .btn_gnbs.on span i.gl2 {transform: rotate(-45deg);-webkit-transform: rotate(-45deg);} */
 
 header.hide {display: none;}
 header.main .htop {border: rgba(255, 255, 255, 0.2) solid 1px;background-color: #222222;}
 header.main .htop.bright {background-color: transparent;}
-header.main .htop h1 {margin: 10px 0 0 20px;width: 95px;}
-header.main .btn_gnb span i {background: #fff;}
-header.main .btn_gnb.on span i {background: #222;}
-
-header .hmenu {position: absolute;left: 0;bottom: 100%;background-color: rgba(0, 0, 0, 0.5);padding: 0 0 0 0;-webkit-box-sizing: border-box;box-sizing: border-box;width: 100%;height: 100vh;-webkit-transition: all 0 ease-out;transition: all 0 ease-out;}
-header .hmenu .inner {padding: 0 25px;background-color: #fff;position: relative;top: 0;-webkit-transition: all 0.5s ease-out;transition: all 0.5s ease-out;}
+/* header.main .htop h1 {margin: 10px 0 0 20px;width: 95px;} */
+header.main .btn_gnb span i {background: url(/images/mo/ico_btn_more_w.png) no-repeat;background-size: 1.3rem 0.733rem;background-position: 50% 50%;}
+header.main .btn_gnb.on span i {transform: rotate(-180deg);-webkit-transform: rotate(-180deg);}
+/* header.main .btn_gnb span i {background: #fff;} */
+/* header.main .btn_gnb.on span i {background: #222;} */
+
+header .hmenu {position: absolute;left: 0;bottom: 100%;background-color: rgba(0, 0, 0, 0.0);padding: 0 0 0 0;-webkit-box-sizing: border-box;box-sizing: border-box;width: 100%;height: 100vh;-webkit-transition: all 0 ease-out;transition: all 0 ease-out;}
+header .hmenu .inner {padding: 0;background-color: #fff;position: relative;top: 0;-webkit-transition: all 0.5s ease-out;transition: all 0.5s ease-out;}
 header .hmenu.on {bottom: 0;}
 header .hmenu.on .inner {top: 100%;}
 header .hmenu .scrollWrap {height: calc(100vh - 50px);-webkit-box-sizing: border-box;box-sizing: border-box;overflow-y: auto;}
@@ -716,9 +737,12 @@ header .hmenu .tnb ul > li a{display: block; padding: 5px 0; color: #888; font-w
 header .hmenu .tnb ul > li a.on{color: #222; font-weight: 400; border-bottom: #9f7952 solid 2px;}
 */
 
-header .hmenu .bng{background: #ffffff; padding-top: 40px;}
-header .hmenu .bng .d1 > li{position: relative;}
-header .hmenu .bng .d1 > li > a{display: block; padding: 8px 0; font-size: 2.8rem; font-family: 'Lato'; color: #222;}
+header .hmenu .bng{background: #ffffff;}
+header .hmenu .bng .d1 > li{position: relative;height: 7.2rem;border-bottom: 0.1rem solid #eeeeee;}
+header .hmenu .bng .d1 > li > a{display: block;padding: 0 2.0rem;line-height: 7.2rem;font-size: 1.8rem;font-weight: 400; font-family: 'Lato'; color: #222;}
+header .hmenu .bng .d1 > li > a::after{content: '';display: block; clear:both;}
+header .hmenu .bng .d1 > li > a span{float: right;}
+header .hmenu .bng .d1 > li > a span img{opacity: 0.3;max-width: 8.333rem;max-height: 4.533rem;width: auto;height: auto;vertical-align: middle;}
 header .hmenu .bng .d1 > li.folder::before{content: ''; display: block; position: absolute; right: 5px; top: 15px; width: 1px; height: 12px; background-color: #222;}
 header .hmenu .bng .d1 > li.folder::after{content: ''; display: block; position: absolute; right: 0; top: 20px; width: 12px; height: 1px; background-color: #222;}
 header .hmenu .bng .d1 > li.folder.on::before{display: none;}
@@ -737,13 +761,13 @@ header .hmenu .bng .d3 > li{position: relative; padding-left: 15px;}
 header .hmenu .bng .d3 > li::before{content: ''; display: block; position: absolute; left: 2px; top: 15px; width: 4px; height: 4px; background-color: #999;}
 header .hmenu .bng .d3 > li > a{display: block; padding: 8px 0; font-size: 1.5rem; color: #222;}
 
-header .hmenu .bnb{background-color: #f5f5f5; margin: 30px -25px 0 -25px; padding: 30px 25px; position: relative;}
+header .hmenu .bnb{background-color: #f5f5f5; position: relative;}
 header .hmenu .bnb ul > li{position: relative;}
 header .hmenu .bnb ul > li::after{content: ''; display: block; position: absolute; right: 2px; top: 20px; width: 10px; height: 10px; border: #9f7952 solid; border-width: 1px 1px 0 0; -webkit-transform: translateY(-50%) rotate(45deg); transform: translateY(-50%) rotate(45deg);}
 header .hmenu .bnb ul > li > a{display: block; padding: 8px 0; font-size: 1.5rem; color: #9f7952;}
 
 
-header .hmenus {position: absolute;left: 0;bottom: 100%;background-color: rgba(0, 0, 0, 0.5);padding: 0 0 0 0;-webkit-box-sizing: border-box;box-sizing: border-box;width: 100vw;height: 100vh;-webkit-transition: all 0 ease-out;transition: all 0 ease-out;}
+header .hmenus {position: absolute;left: 0;bottom: 100%;background-color: rgba(0, 0, 0, 0.0);padding: 0 0 0 0;-webkit-box-sizing: border-box;box-sizing: border-box;width: 100vw;height: 100vh;-webkit-transition: all 0 ease-out;transition: all 0 ease-out;}
 header .hmenus .inner {padding: 0 25px;background-color: #fff;position: relative;top: 0;-webkit-transition: all 0.5s ease-out;transition: all 0.5s ease-out;}
 header .hmenus.on {bottom: 0;}
 header .hmenus.on .inner {top: 100%;}
@@ -759,7 +783,7 @@ header .hmenus .tnb ul > li a{display: block; padding: 5px 0; color: #888; font-
 header .hmenus .tnb ul > li a.on{color: #222; font-weight: 400; border-bottom: #9f7952 solid 2px;}
 */
 
-header .hmenus .bng{background: #ffffff; padding-top: 40px;}
+header .hmenus .bng{background: #ffffff;}
 header .hmenus .bng .d1 > li{position: relative;}
 header .hmenus .bng .d1 > li > a{display: block; padding: 8px 0; font-size: 2.8rem; font-family: 'Lato'; color: #222;}
 header .hmenus .bng .d1 > li.folder::before{content: ''; display: block; position: absolute; right: 5px; top: 15px; width: 1px; height: 12px; background-color: #222;}
@@ -780,12 +804,25 @@ header .hmenus .bng .d3 > li{position: relative; padding-left: 15px;}
 header .hmenus .bng .d3 > li::before{content: ''; display: block; position: absolute; left: 2px; top: 15px; width: 4px; height: 4px; background-color: #999;}
 header .hmenus .bng .d3 > li > a{display: block; padding: 8px 0; font-size: 1.5rem; color: #222;}
 
+header .hmenus .bng{position: relative; width:100%; height:100%;background:rgba(0,0,0,.0); z-index:600;}
+/* header .hmenus .bng .nav_box.active{visibility:visible;} */
+header .hmenus .bng .lap{position:absolute; top:0; left:0; padding:0; width:100%; background:#fff;}
+header .hmenus .bng .nav_list{min-height:15rem; max-height:40rem; overflow-y:auto;}
+/* header .hmenus .bng .nav_box .nav_close{position:absolute; bottom:-3.8rem; left:50%; width:1.6rem; height:1.6rem; background-image: url(/images/mo/ico_pop_cls_w.png); background-repeat:no-repeat; background-position:center center; font-size:0; text-indent:-999999px; background-size: contain; -webkit-transform:translateX(-50%); transform:translateX(-50%);} */
+header .hmenus .bng .nav_list {padding:0;}
+header .hmenus .bng .nav ul {}
+header .hmenus .bng .nav ul > li {}
+header .hmenus .bng .nav ul > li .daps1{display:block; font-size:1.4rem; color:#666; font-weight:300; line-height:5rem; border-bottom:1px solid #ddd;}
+header .hmenus .bng .nav ul > li .daps2 li > a{display:block; font-size:1.4rem; font-weight:300; color:#222; line-height:4rem;}
+header .hmenus .bng .nav ul > li .daps2 li.on > a{color:#fd4802; font-weight:500; line-height:5rem;}
+
 header .hmenus .bnb{background-color: #f5f5f5; margin: 30px -25px 0 -25px; padding: 30px 25px; position: relative;}
 header .hmenus .bnb ul > li{position: relative;}
 header .hmenus .bnb ul > li::after{content: ''; display: block; position: absolute; right: 2px; top: 20px; width: 10px; height: 10px; border: #9f7952 solid; border-width: 1px 1px 0 0; -webkit-transform: translateY(-50%) rotate(45deg); transform: translateY(-50%) rotate(45deg);}
 header .hmenus .bnb ul > li > a{display: block; padding: 8px 0; font-size: 1.5rem; color: #9f7952;}
 
 
+
 /* gnb */
 body.header-show .app .gnb{top: 50px;}
 .app .gnb {position: -webkit-sticky; position: sticky; top: 0px; padding-right: 50px; background-color: #000; z-index: 9; transition: top 0.3s; width: 100%;}
@@ -907,7 +944,7 @@ footer .collapse .infos > li.fn{clear: both; padding-left: 0;}
 footer .collapse .infos.on{padding: 0px 0px 20px 0; height: auto;}
 
 /* sub page slide nav */
-.lnb{padding: 1.46rem 2.0rem 1.3rem 2.0rem; border-bottom: #e5e5e5 solid 1px; box-sizing: border-box;}
+.lnb{padding: 1.46rem 2.0rem 1.0rem 2.0rem; border-bottom: #e5e5e5 solid 1px; box-sizing: border-box;}
 .lnb .swiper-wrapper{transform: translate3d(0px, 0px, 0px);}
 .lnb ul > li{width: auto; text-align: center;}
 .lnb ul > li button,
@@ -938,8 +975,8 @@ footer .collapse .infos.on{padding: 0px 0px 20px 0; height: auto;}
 /* page nav */
 .pnb ul{border-bottom: #e5e5e5 solid 1px;}
 .pnb ul::after{content: ''; display: block; clear: both;}
-.pnb ul > li{float: left; width: auto; padding: 0 2.6rem;}
-.pnb ul > li:first-child{padding: 0 2.6rem 0 2.0rem;}
+.pnb ul > li{float: left; width: auto; padding: 0 1.6rem;}
+.pnb ul > li:first-child{padding: 0 1.6rem 0 1.0rem;}
 .pnb ul > li a{display: block; width: 100%; padding: 1.46rem 0 1.3rem 0; text-align: center; position: relative;}
 .pnb ul > li a.on{color: #fd4802;}
 .pnb ul > li a.on::after{content: ''; display: block; width: 100%; height: 3px; background-color: #fd4802; color: #fd4802; position: absolute; bottom: 0; left: 50%; right: 50%; transform: translate(-50%);}
@@ -1241,7 +1278,7 @@ button.alertCls {-webkit-appearance: none;padding: 0;cursor: pointer;background:
 	position: fixed;
 	top: 0;
 	left: 0;
-	z-index: 19;
+	z-index: 1000;
 	width: 100%;
 	height: 100%;
 	background-color: rgba(0, 0, 0, 0.3);
@@ -1257,7 +1294,7 @@ button.alertCls {-webkit-appearance: none;padding: 0;cursor: pointer;background:
 	position: fixed;
 	top: 50%;
 	left: 0;
-	z-index: 20;
+	z-index: 1001;
 	min-width:13.3rem;
 	max-width: 95%;
 	background-color: rgba(255, 255, 255,1);
@@ -1598,7 +1635,7 @@ button.alertCls {-webkit-appearance: none;padding: 0;cursor: pointer;background:
 
 /* modal */
 /*  modal popup  */
-.blocker{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:auto;z-index:999999;padding:0px;box-sizing:border-box;background-color:#000;background-color:rgba(0,0,0,0.75);text-align:center;}
+.blocker{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:auto;z-index:999;padding:0px;box-sizing:border-box;background-color:#000;background-color:rgba(0,0,0,0.75);text-align:center;}
 .blocker:before{content:"";display:inline-block;height:100%;vertical-align:middle;margin-right:-0.05em;}
 .blocker.behind{background-color:transparent;}
 .modal{display:none; vertical-align:middle;position:relative;z-index:2;max-width:960px;box-sizing:border-box;width:90%;background:#fff;padding:0;text-align:left; -webkit-box-shadow:0 0 10px #000;-moz-box-shadow:0 0 10px #000;-o-box-shadow:0 0 10px #000;-ms-box-shadow:0 0 10px #000;box-shadow:0 0 10px #000;}

+ 40 - 16
src/main/webapp/ux/mo/css/layout_m.css

@@ -441,13 +441,13 @@
 .pd_detail .option_box > [class^="opt_"] .opt_header {margin-bottom:0.5rem;}
 .pd_detail .option_box > [class^="opt_"] .opt_header .title {margin-right:1rem; font-weight:500; color:#222;}
 .pd_detail .option_box > [class^="opt_"] .opt_header .color {color:#666666; font-weight:300;}
-.pd_detail .option_box .opt_size .form_field {display:block;}
+.pd_detail .option_box .opt_size .form_field {display:block; margin-left: -0.8rem !important;}
 .pd_detail .option_box .opt_size .form_field .lap{margin:-0.25rem -0.25rem 0; overflow:hidden;}
 .pd_detail .option_box .opt_size .form_field .lap > div {margin:0.25rem; float:left; width:auto;}
 .pd_detail .option_box .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;}
 .pd_detail .option_box .opt_size .form_field input[type="radio"] + label::before,
 .pd_detail .option_box .opt_size .form_field input[type="radio"] + label::after {display:none;}
-.pd_detail .option_box .opt_size .form_field input[type="radio"]:checked + label {border:1px solid #222;}
+.pd_detail .option_box .opt_size .form_field input[type="radio"]:checked + label {border:1px solid #fd4802;}
 .pd_detail .option_box .opt_size .form_field input[type="radio"]:disabled + label {text-decoration:line-through; background:#f5f5f5; border-color:#f5f5f5; color:#bbb; opacity:1;}
 .pd_detail .option_box .opt_count {padding-bottom:0;}
 .pd_detail .option_box .opt_result {}
@@ -476,7 +476,7 @@
 .option_box .opt_size .form_field2 .lap > div {margin:0.25rem; float:left; width:auto;}
 .option_box .opt_size .form_field2 label > span{position:relative; display:block; width:6rem; height:3.4rem; padding:0; line-height:3.4rem; text-align:center; background:#fff; box-sizing:border-box; color:#222; font-weight:200; font-size:1.2rem; border:1px solid #ddd; cursor: pointer;}
 .option_box .opt_size .form_field2 label input[type="radio"]{position:absolute; width:0; height:0; visibility:hidden;}
-.option_box .opt_size .form_field2 label input[type="radio"]:checked + span{border:1px solid #000;}
+.option_box .opt_size .form_field2 label input[type="radio"]:checked + span{border:1px solid #fd4802;}
 .option_box .opt_size .form_field2 label input[type="radio"]:disabled + span{text-decoration:line-through; background:#f5f5f5; border-color:#f5f5f5; color:#bbb; opacity:1;}
 .pd_detail .option_box .info_restock{margin-top:1rem;}
 .pd_detail .option_box .info_restock a.btn_popup {position:relative; padding-left:1.9rem; padding-right:1.2rem; color:#666; font-size:1.3rem; font-weight:300; border:none;}
@@ -541,7 +541,8 @@
 [class*="pd_descrp"] [class^="view_"]:first-of-type {margin-top:0;}
 [class*="pd_descrp"] [class^="view_"] .tit_view {display:block; color:#222; font-size:2.1rem; font-weight:400; text-align:center;}
 [class*="pd_descrp"] [class^="view_"] .model_info {display:block; margin-top:1rem; color:#666; font-size:1.2rem; font-weight:200; text-align:center;}
-[class*="pd_descrp"] [class^="view_"] .view {margin-top:2rem}
+[class*="pd_descrp"] [class^="view_"] .view {margin-top:2rem; margin:0 -2rem;}
+[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;}
@@ -569,8 +570,9 @@
 [class*="pd_descrp"] .required_box .tbl.type1 {border-top:1px solid #000; border-bottom:1px 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:1.4rem 1.2rem; font-weight:300; font-size:1.3rem; letter-spacing:-0.025em;}
+[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;}
 [class*="pd_descrp"] .required_box .tbl.type1 table th {font-weight:400;}
+[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 table {width:100%; word-break:keep-all;}
 [class*="pd_descrp"] .required_box .tbl.type2 table th,
@@ -667,7 +669,26 @@
 .pd_detail .pd_relate .area_slider .itemName {height:3.2rem}
 /* 210405 */
 header .htop.trans{position:absolute; background:transparent !important;}
-.pd_qnalist_pop .btn_group_flex > div > .btn{height:5.5rem;}
+.pd_qnalist_pop .btn_group_flex > div > .btn{height:5.3rem;}
+/* 210406 */
+.push_restock_pop .btn_group_flex > div > .btn{height:5.3rem;}
+.pd_review_pop .btn_group_flex > div > .btn{height:5.3rem;}
+.modal.pd_pop.pd_qnawrite_pop .modal-footer button{height:5.3rem;}
+.modal.pd_pop.pd_qnawrite_pop .modal-header{border-bottom:0px none;}
+.modal.pd_pop.push_restock_pop .item_blk .item_prod .item_state .itemLink .itemBrand {display:block; font-size:1rem; color:#888888; font-weight:300; margin-left:0; margin-right:0; text-overflow:ellipsis;white-space:nowrap;word-wrap:normal;width:30rem;overflow:hidden;}
+.modal.pd_pop.push_restock_pop .item_blk .item_prod .item_state .itemLink .itemName {display:block; margin-top:0.5rem; font-size:1.3rem; max-height: 3.3rem; margin-left:0; margin-right:0; display: -webkit-box; text-overflow: ellipsis; -webkit-line-clamp: 2; -webkit-box-orient: vertical; max-height: 3.3rem; overflow: hidden; white-space: normal; overflow-wrap: break-word; width:30rem;}
+.select_custom .combo .list>li[aria-disabled="true"]{background:#fff;}
+.Purchase_pop .select_custom.on .combo .select{border-bottom:1px solid #dcdcdc}
+.pd_qnalist_pop .foldGroup > ul > li{border-bottom:0px none;}
+.pd_qnalist_pop .fold_cont .fold_answer{border-top:0px none;}
+.pd_qnalist_pop .fold_cont > div:first-of-type{border-bottom:1px solid #dcdcdc}
+.pd [class*="pd_descrp"] .cont_body.on{overflow: visible;}
+.pd .mdhtml_box a{margin:0 -2rem; display:block;}
+
+.option_box .opt_size .form_field > div {margin-left:8px; margin-top:8px;}
+/*.option_box .opt_size .form_field > div:nth-child(7n-6) {margin-left:0px;}*/
+.option_box .opt_size .form_field > div {float:left; width:auto;}
+
 
 /* 플롯팅 메뉴 > 구매하기 */
 .product_floormenu{position:fixed; bottom:0; left:0; width:100%; height:5.8rem; line-height:5.8rem; z-index:20;}
@@ -904,6 +925,7 @@ header .htop.trans{position:absolute; background:transparent !important;}
 .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 0; border-bottom:1px solid #ddd; font-weight:200; font-size:1.3rem; letter-spacing:-0.025em; text-align:center;}
 .modal.pd_pop.info_size_pop .tbl.type2 table th {font-weight:300; color:#222;}
+.modal.pd_pop.info_size_pop .tbl.type2 table thead tr{background:#f5f5f5;}
 
 /* pd_popup > 재입고 알림 신청 */
 .modal.pd_pop.push_restock_pop {max-width:none;}
@@ -943,7 +965,7 @@ header .htop.trans{position:absolute; background:transparent !important;}
 .pd_qnalist .qna_list .form_field input[type="checkbox"] + label {line-height:1;}
 .pd_qnalist .qna_list .form_field input[type="checkbox"] + label:before,
 .pd_qnalist .qna_list .form_field input[type="checkbox"] + label:after {top:50%; transform:translateY(-50%); margin-top:0;}
-.pd_qnalist .qna_list .foldGroup .fold_head a{padding: 1.4rem 1.33rem;}
+.pd_qnalist .qna_list .foldGroup .fold_head a{padding: 1.4rem 1.33rem; border-bottom:0.1rem solid #E5E5E5;}
 .pd_qnalist .qna_list .foldGroup .fold_head .fold_tit .ico {display:inline-block; width:auto; height:auto; vertical-align:middle;}
 .pd_qnalist .qna_list .foldGroup .fold_head .fold_tit .ico_myqna::after {content:'내문의'; display:inline-block; margin-right:1rem; color:#fd4802; font-size:1.1rem; text-align:center; box-sizing:border-box; line-height:20px;}
 .pd_qnalist .qna_list .foldGroup .fold_head .fold_tit .ico_secret::after {content:''; display:inline-block; margin-right:1rem; width:1.2rem; height:1.2rem; background:url('/images/mo/ico_secret.png') no-repeat 50% 50%; background-size:contain;}
@@ -1030,8 +1052,8 @@ header .htop.trans{position:absolute; background:transparent !important;}
     .pd_review .area_rv_empty .txt_box div dl {margin-left:5vw;}
   }
 .pd_review .area_rv_empty .txt_box div dl:first-child {margin-left:0}
-.pd_review .area_rv_empty .txt_box div dl dt {color:#666; font-weight:200; line-height:1.4;} 
-.pd_review .area_rv_empty .txt_box div dl dd {color:#fd4802; font-weight:300;}
+.pd_review .area_rv_empty .txt_box div dl dt {color:#666; font-weight:200; line-height:1.4; font-size:1.3rem;} 
+.pd_review .area_rv_empty .txt_box div dl dd {color:#000; font-weight:300;font-size:1.7rem;}
 .pd_review .area_rv_empty .btn_box .review_go{margin-top:3rem;}
 .pd_review .area_rv_average {margin-bottom:0!important; padding-bottom:0!important; text-align:center;}
 .pd_review .area_rv_average .star_score {margin-bottom:2rem;}
@@ -1047,7 +1069,7 @@ header .htop.trans{position:absolute; background:transparent !important;}
 .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 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.4rem; font-weight:500; color:#222;}
+.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;}
@@ -1055,11 +1077,11 @@ header .htop.trans{position:absolute; background:transparent !important;}
 .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:'접기'; }
 .pd_review .area_rv_average .average .btn_group_flex button.active span:after{transform:rotate(180deg);}
-.pd_review .area_rv_average .average .part_average dl{margin-bottom:0.1rem;}
+.pd_review .area_rv_average .average .part_average dl{margin-bottom:0.5rem;}
 .pd_review .area_rv_average .average .part_average dl:last-child{margin-bottom:1rem;}
 .pd_review .area_rv_average .average .part_average:last-child dl:last-child{margin-bottom:0;}
 .pd_review .area_rv_average .average .part_average dl dt {float:left; padding-left:0.7rem; width:7.2rem; font-size:1.2rem; box-sizing:border-box;}
-.pd_review .area_rv_average .average .part_average dl dd {position:relative; float:left; width:calc(100% - 7.2rem); padding-right:4.2rem; box-sizing:border-box;}
+.pd_review .area_rv_average .average .part_average dl dd {position:relative; float:left; width:calc(100% - 7.2rem); padding-right:4.7rem; box-sizing:border-box;}
 .pd_review .area_rv_average .average .part_average dl dd::after {content:''; clear:both; display:block;}
 .pd_review .area_rv_average .average .part_average dl dd span {float:left; display:inline-block;}
 .pd_review .area_rv_average .average .part_average dl dd .ratio {width:100%; height:5px; margin-top:6px; background:#f5f5f5; overflow:hidden;}
@@ -1071,7 +1093,7 @@ header .htop.trans{position:absolute; background:transparent !important;}
 .pd_review .area_rv_average .average .part_average dl.on dd {color:#222; font-weight:300;}
 .pd_review .area_rv_average .average .part_average dl.on dd .ratio .progbar {background:#222;}
 .pd_review .area_rv_average .average .part_average dl.on dd .ratio .progbar::after {border:4px solid #222; border-bottom-color:transparent;border-right-color:transparent;}
-.pd_review .area_rv_average .info_review {color:#222; font-size:1.3rem; font-weight:500; background:#fff6f2; padding:2.4rem 2rem; vertical-align:middle;}
+.pd_review .area_rv_average .info_review {color:#222; font-size:1.3rem; font-weight:500; background:#fff6f2; padding:2.4rem 2rem; vertical-align:middle; margin: 0 -1.4rem;}
 .pd_review .area_rv_average .info_review p {position:relative; text-align:left; padding-left:2rem; font-weight:300; display: inline-block;}
 .pd_review .area_rv_average .info_review p i.ico_point {position:absolute; left:0; top:2px; display:inline-block; width:1.5rem; height:1.5rem; background:url('/images/mo/ico_point3.png') no-repeat 50% 50%; background-size:100% 100%;}
 .pd_review .area_rv_average .info_review p span {font-weight:500;}
@@ -1090,7 +1112,7 @@ header .htop.trans{position:absolute; background:transparent !important;}
 .pd_review .area_rv_photo .photo_list > div > div{position:relative; width:100%; padding-bottom:100%;}
 .pd_review .area_rv_photo .photo_list button {position:absolute; width:100%; height:100%; background:rgba(0,0,0,0.6); color:#fff; font-size:1.4rem; z-index:1; text-align:center; box-sizing:border-box; z-index:2;}
 .pd_review .area_rv_photo .photo_list button::before {content:''; display:block; margin:0 auto; width:2rem; height:2rem; background:url('/images/mo/ico_plus_white.png') no-repeat 50% 50%; z-index:1;}
-.pd_review .area_rv_photo .photo_list button span{margin-top:0.5vw; display:block; font-size:1rem;}
+.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;}
@@ -1123,7 +1145,7 @@ header .htop.trans{position:absolute; background:transparent !important;}
 .pd_review .area_rv_all .review_list .review .photo_box .photo_list > ul li {display:inline-block; margin-left:0.8rem; width:7.5rem; height:7.5rem;}
 .pd_review .area_rv_all .review_list .review .photo_box .photo_list > ul li:first-child{margin-left:1.33rem;}
 .pd_review .area_rv_all .review_list .review .photo_box .photo_list > ul li:last-child{margin-right:1.33rem;}
-.pd_review .area_rv_all .review_list .review .txt_review_box {margin-top:1.6rem; font-size:1.3rem; overflow:hidden;}
+.pd_review .area_rv_all .review_list .review .txt_review_box {margin-top:1.6rem; font-size:1.4rem; overflow:hidden; color:#000}
 .pd_review .area_rv_all .review_list .review .reply_box {margin-top:1.5rem; padding-top:1.5rem;}
 .pd_review .area_rv_all .review_list .review .reply_box .reply {position:relative; padding:2rem; background:#f5f5f5;}
 .pd_review .area_rv_all .review_list .review .reply_box .reply::after {content:''; position:absolute; left:0px; top:-1.5rem; width:0px; height:0px; border:1.5rem solid #f5f5f5; border-top-color:transparent; border-right-color:transparent;}
@@ -1314,7 +1336,7 @@ header .htop.trans{position:absolute; background:transparent !important;}
 .item_blk .item_prod .itemLink{position: relative; display:table-cell; width: 100%; height:60px; padding-left:56px; vertical-align: middle;}
 .item_blk .item_prod .item_state .itemLink .itemPic {position:absolute; left:0; top:0; padding: 0; width:40px; height:60px; z-index:2;}
 .item_blk .item_prod .item_state .itemLink .itemBrand {display:block; font-size:1rem; color:#888888; font-weight:300; margin-left:0; margin-right:0; text-overflow:ellipsis;white-space:nowrap;word-wrap:normal;width:30rem;overflow:hidden;}
-.item_blk .item_prod .item_state .itemLink .itemName {display:block; margin-top:0.5rem; font-size:1.3rem; max-height: 3.3rem; margin-left:0; margin-right:0; display: -webkit-box; text-overflow: ellipsis; -webkit-line-clamp: 2; -webkit-box-orient: vertical; max-height: 3.3rem; overflow: hidden; white-space: normal; overflow-wrap: break-word;}
+.item_blk .item_prod .item_state .itemLink .itemName {display:block; margin-top:0.5rem; font-size:1.3rem; max-height: 3.3rem; margin-left:0; margin-right:0; display: -webkit-box; text-overflow: ellipsis; -webkit-line-clamp: 2; -webkit-box-orient: vertical; max-height: 3.3rem; overflow: hidden; white-space: normal; overflow-wrap: break-word; width:30rem;}
 .item_blk .item_prod .item_state .itemLink .itemPrice{margin-left:0; margin-right:0;}
 /*select_custom > item_prod*/
 .select_custom .select .item_prod{margin:0; padding-right:0; overflow:hidden;}
@@ -1674,6 +1696,7 @@ header .htop.trans{position:absolute; background:transparent !important;}
 
 
 /* 전시제품메뉴 공통 */
+/* 제거예정/ 공통 헤더로 교체 */
 .dp .nav_box{position:fixed; width:100%; height:100%; top:5.5rem; left:0; background:rgba(0,0,0,.5); z-index:600;}
 .dp .nav_box.active{visibility:visible;}
 .dp .nav_box .lap{position:absolute; top:0; left:0; padding:0 2rem 0; width:100%; background:#fff;}
@@ -2078,6 +2101,7 @@ header .htop.trans{position:absolute; background:transparent !important;}
 .br_search_wrap .brand.nodata .btn { font-size: 1.2rem; border: 0.1rem solid #888; height: 3rem; padding: 0 1rem;}
 /* 브랜드 - br_search */
 .htop.br { overflow: hidden;}
+/* 제거 예정/ 공통으로 교체 */
 .htop.br .button_wrap {height: 5.5rem; display: inline-block; float: right; padding: 1.6rem 0 0; margin: 0 2.5rem 0 0; box-sizing: border-box;}
 .htop.br .button_wrap .br_search { margin: 0 2.5rem 0 0; }
 .htop.br .button_wrap .br_store img:nth-child(1) { height: 2rem; }

+ 29 - 11
src/main/webapp/ux/mo/css/style24_m.css

@@ -848,6 +848,7 @@ main.container .inner h2[data-style~="unusual"] {font-size:2.0rem;top: 0;positio
 
 /* mypage_공통 */
 .my {background: #f5f5f5;}
+.my .pnb{background: #ffffff;}
 .my .mypage {background: #f5f5f5;}
 .my .inner {padding-bottom: 0; background: #fff;}
 .my .inner.bg_gray {background: #f5f5f5;}
@@ -904,6 +905,7 @@ main.container .inner h2[data-style~="unusual"] {font-size:2.0rem;top: 0;positio
 .goods_btn_wrap > div > .btn.btn_primary {background-color:#fff; border-color:#fd4802; color: #fd4802;}
 
 /* my_index */
+main.container.my .inner:last-child {padding-bottom: 0;}
 .my .lnb_list {margin-top: 1.2rem; padding-bottom: 6rem;}
 .my .lnb_list li { border-bottom: 1px solid #ddd;}
 .my .lnb_list li a {display: block; padding: 2rem; background: url(/images/mo/ico_lnb_arrow.png) no-repeat right 2rem center; background-size:0.7rem 1.26rem;}
@@ -950,8 +952,8 @@ main.container .inner h2[data-style~="unusual"] {font-size:2.0rem;top: 0;positio
 .my .goods_top .delete_btn {position: absolute; bottom: 1.5rem; right: 0; font-size: 1.3rem; color: #8d8d8d; padding-right: 1.4rem; background: url(/images/mo/ico_btn_cls.png) no-repeat right top 3px; background-size:0.9rem 0.9rem;}
 .my .goods_top .purchase_btn {position: absolute; bottom: 1.5rem; right: 0; font-size: 1.3rem; color: #8d8d8d; padding-right: 1.6rem; background: url(/images/mo/ico_check01.png) no-repeat right top 3px; background-size:1.06rem 0.8rem;}
 .my .badge_wrap {display: inline-block;}
-.my .order_badge {font-size: 0.9rem; color: #666; font-weight: 300; border:1px solid #888; padding:0.5rem 0.4rem; margin-left: 1px; vertical-align: top;}
-.my .order_bullet_badge {color: #fd4802; border:1px solid #fd4802;}
+.my .order_badge {font-size: 1rem; border-radius: 0.1rem; color: #666; font-weight: 300; border:1px solid #888; padding:0.4rem 0.4rem 0.25rem; margin-left: 1px; vertical-align: top;}
+.my .order_bullet_badge {background: #fff6f2; color: #fd4802; border:1px solid #fd4802;}
 
 .my .part_goods {position:relative;}
 .my .part_goods:first-child {margin-top: -1.2rem; padding-top:3rem}
@@ -1018,7 +1020,7 @@ main.container .inner h2[data-style~="unusual"] {font-size:2.0rem;top: 0;positio
 
 
 /* my_review_1 */
-.my .review {}
+.my .review .inner {margin-bottom: 0;}
 .my .review .inner.wide {background: #f5f5f5;}
 /* .my .review .inner .tabWrap .inner{margin-bottom:1.3rem;} */
 .my .review .tabIndex{margin-bottom: 0.85em;}
@@ -1032,7 +1034,7 @@ main.container .inner h2[data-style~="unusual"] {font-size:2.0rem;top: 0;positio
 .my .review .tip2 .tip_contents:after{left: 64.5%;}
 .my .review .tip_wrap ul li{position: relative;padding-left: 1.0rem;font-weight: 200;}
 .my .review .tip_wrap ul li::before{content: '';position: absolute;top: 7px;left: 0;background: #858585;width: 3px;height: 3px;}
-.my .review .part_goods .goods_section:last-of-type {margin-bottom: 2.4rem;border-bottom: 1px solid #ddd;}
+.my .review .part_goods .goods_section:last-of-type {margin-bottom: 0;border-bottom: 1px solid #ddd;}
 .my .review .part_goods .goods_detail .info_box .od_name .name{-webkit-line-clamp: 1;}
 
 /* my_review_2 */
@@ -1095,7 +1097,7 @@ main.container .inner h2[data-style~="unusual"] {font-size:2.0rem;top: 0;positio
 /* .my .tbl.review_tbl .form_field input[type="radio"] + label:before {background-position: 0 0;} */
 .my .review .tbl_wrap {padding:3rem 0 0 0;}
 .my .review .tbl_wrap:last-child {padding: 0;}
-.my .review .tbl_wrap .tbl:last-child {border-top: 0;}
+.my .review .tbl_wrap:last-child .tbl {border-top: 0;}
 .my .review .tbl_wrap .tbl .tbl_row {padding:0 0 2rem; border-bottom: 1px solid #ddd;}
 /* .my .review .tbl_wrap .tbl .tbl_row:first-child {margin-bottom: 2rem;} */
 .my .review .tbl_wrap .tbl .tbl_row:last-child { border-bottom: 0;}
@@ -1112,7 +1114,7 @@ main.container .inner h2[data-style~="unusual"] {font-size:2.0rem;top: 0;positio
 
 .my .review .tbl_wrap .tbl th.ver_top {vertical-align: top; padding-top: 25px;}
 .my .review .tbl_wrap .tbl th.ver_top02 {vertical-align: top;}
-.my .review .tbl_wrap .tbl td textarea {width: 100%; resize:none; height: 82px; padding: 15px; font-size: 14px; color: #868686;}
+.my .review .tbl_wrap .tbl td textarea {width: 100%; resize:none; height: 15rem; padding: 15px; font-size: 14px; color: #868686;}
 .my .review .tbl_wrap .tbl.review_tbl td {padding-left: 0;}
 .my .review .tbl_wrap .tbl.review_tbl td textarea {height: 200px;}
 .my .review .tbl_wrap .tbl td .select {width: 400px;}
@@ -1344,6 +1346,8 @@ main.container .inner h2[data-style~="unusual"] {font-size:2.0rem;top: 0;positio
 
 /* my_delivery_1 */
 .my .my_delivery {}
+.my .my_delivery .inner > .btn_group {position: fixed; left: 0; bottom: 0; width: 100%; z-index: 99; transition:all 0.3s;}
+.my .my_delivery .inner > .btn_group.active {transform: translate(0, -4.3rem);}
 .my .my_delivery .inner:last-child {padding-bottom: 0;}
 .my .my_delivery .ship_info {padding:3rem 2rem; border-bottom: 1px solid #eee;}
 .my .my_delivery .ship_info.active {background: #fff6f2;}
@@ -1390,10 +1394,10 @@ main.container .inner h2[data-style~="unusual"] {font-size:2.0rem;top: 0;positio
 .my .myMbLeave .tbl.type5 th p {font-size: 1.3rem; color: #888888;}
 .my .myMbLeave .announce_txt .announce_list{padding: 1.0rem 0 3rem;}
 .my .myMbLeave .announce_txt + .check_box {padding: 3.0rem 0;border-top: 1px dashed #dcdcdc;}
-.my .message { width: 100%; display: inline-table;position: relative; border:1px solid #ffe4d9; padding:0 1.5rem; margin-top: 1.2rem;background: #fff6f2;}
-.my .message .msg_tit {font-size: 1.3rem; color: #fd4802; margin-bottom: 1rem; font-weight: 500; padding-top: 1.5rem;   padding-left: 2rem;}
-.my .message .msg_tit.t_err {text-indent: -2rem;}
-.my .message .content {font-size: 1.3rem; padding-bottom: 1.5rem;padding-left: 2rem;color: #888888;}
+.my .myMbLeave .message { width: 100%; display: inline-table;position: relative; border:1px solid #ffe4d9; padding:0 1.5rem; margin-top: 1.2rem;background: #fff6f2;}
+.my .myMbLeave .message .msg_tit {font-size: 1.3rem; color: #fd4802; margin-bottom: 1rem; font-weight: 500; padding-top: 1.5rem;   padding-left: 2rem;}
+.my .myMbLeave .message .msg_tit.t_err {text-indent: -2rem;}
+.my .myMbLeave .message .content {font-size: 1.3rem; padding-bottom: 1.5rem;padding-left: 2rem;color: #888888;}
 
 
 /* my_point */
@@ -1656,7 +1660,7 @@ background-size:100%;}
 .od .foldGroup .fold_head a {padding: 0;}
 .od .foldGroup .fold_head .data {position:absolute; top:50%; right:50px; transform:translateY(-50%); color:#000; font-size:1.3rem; font-weight:300; z-index:-1; padding-right: 0; width: 40%; white-space: nowrap; overflow:hidden; text-overflow: ellipsis; text-align: right;}
 .od .foldGroup .fold_head .data.fixed {display: block;}
-.od .foldGroup .fold_head .data.custom_disc {}
+.od .foldGroup .fold_head .data.custom_disc {z-index: 2;}
 .od .foldGroup .fold_head .data.custom_disc label {line-height: 2rem;}
 .od .foldGroup .fold_head .data.maxdisc {z-index:2; text-align: center; width:auto;}
 .od .foldGroup .fold_head .data.maxdisc span {padding-left: 0; margin-left: 0;}
@@ -2037,6 +2041,14 @@ background-size:100%;}
 .od .completed .btn_group_md::after {}
 .od .completed .btn_group_md .btn {margin:0px 3px; width:230px;}
 
+.od .completed .gift_wrap {padding:3rem 0;}
+.od .completed .gift_wrap h3 {font-size: 1.6rem; border-bottom: 1px solid #000; padding-bottom: 1.5rem;}
+.od .completed .gift_wrap .gift_con {padding:2rem 0 0;}
+.od .completed .gift_wrap .gift_con .gift_info {font-size: 1.3rem; margin-bottom: 1.5rem; font-weight: 500;}
+.od .completed .gift_wrap .gift_con .message {border:1px solid #ffe4d9; padding:1.5rem; background: #fff6f2;}
+.od .completed .gift_wrap .gift_con .message .gift_tit {font-size: 1.3rem; color: #fd4802; margin-bottom: 1rem; font-weight: 500;}
+.od .completed .gift_wrap .gift_con .message .content {font-size: 1.3rem;}
+
 .od .my_order .inner {margin-bottom: 1.2rem;}
 .od .my_order .inner:last-child {margin-bottom: 0;}
 .od .inner.bg_beige {background: #fff6f2;}
@@ -2130,6 +2142,10 @@ background-size:100%;}
 
 /* 쇼핑백 */
 main.container .shopping_bag .inner:last-child {padding-bottom: 0;}
+.shopping_bag .od_method label span {vertical-align: bottom;}
+.shopping_bag .tbl_radio {} 
+.shopping_bag .tbl_radio table {width: 100%;}
+.shopping_bag .tbl_radio th, .shopping_bag .tbl_radio td {padding-top: 1.5rem;}
 .shopping_bag .sec_select {position: relative;}
 .shopping_bag .sec_select .form_field input[type="checkbox"] + label {font-size: 1.3rem;}
 .shopping_bag .sec_select .btn {position: absolute; top: 0; right: 0; width: 5.8rem; height: 2.5rem; padding: 0; font-size: 1.1rem;}
@@ -2137,6 +2153,8 @@ main.container .shopping_bag .inner:last-child {padding-bottom: 0;}
 .shopping_bag .inner.wide {padding: 0;}
 .shopping_bag .btn_delete {position: absolute; top: 0; right: 0; z-index: 9; width: 4rem; height: 4rem; background: url(/images/mo/ico_itemdelete_btn.png) no-repeat center/1.2rem; background-position: center;}
 .shopping_bag .inner:nth-child(2) {padding:1.5rem 2rem;}
+.shopping_bag .nodata {min-height:13rem; line-height:13rem; text-align: center;}
+.shopping_bag .nodata p {color: #888;}
 .shopping_bag .goods_top {padding-top: 0; border-bottom: 1px solid #000;}
 
 .shopping_bag .area_salecoupon h4 {margin-bottom: 1.5rem; font-size: 1.6rem;}

+ 21 - 5
src/main/webapp/ux/mo/js/common_m.js

@@ -683,13 +683,13 @@ $(document).ready(function () {
             return false;
         });
 
-        //let autome = document.querySelector('.btPopAuto'); 
-        //let headsize = this.querySelector('.btPopAuto .btPopAuto_head');
-        //let bodysize = this.querySelector('.btPopAuto .btPopAuto_body');
+        let autome = document.querySelector('.btPopAuto'); 
+        let headsize = this.querySelector('.btPopAuto .btPopAuto_head');
+        let bodysize = this.querySelector('.btPopAuto .btPopAuto_body');
         //console.log('★ btPop_auto헤더 높이 : ' + headsize.offsetHeight);
         //console.log('★ btPop_auto바디 높이 : ' + bodysize.clientHeight);
-		
-        //let autotop = appHeight - (headsize.offsetHeight + bodysize.offsetHeight);
+
+        let autotop = appHeight - (headsize.offsetHeight + bodysize.offsetHeight);
         //console.log('★ btPopAuto전체 높이 - 컨텐츠 높이 : ' + autotop);
         //console.log('★ btPopAuto전체 높이 - 컨텐츠 높이 /10 : ' + autotop /10);
 
@@ -704,6 +704,20 @@ $(document).ready(function () {
             }
             return false;
         });
+        // 210405_사이즈 선택시 구매하기 팝업 추가
+        $('.opt_size .form_field div').click(function(){
+            popOpenScroll();
+            //$('.btPop_body .lap span').css('color', 'red')
+            //console.log($(this)[0]);
+            $('.container').addClass('btPop_open');
+            // autome.style.top  = autotop /10 + "vh";
+            if (autotop > 251) {
+                autome.style.top = 25.0 + "vh";
+            }else{
+                autome.style.top  = pxtop/10 + "vh";
+            }
+            return false;
+        });
 
 
         // 쇼핑백팝업
@@ -742,6 +756,8 @@ $( document ).ready( function() {
 
         /* 상품문의_accordion */
         $(document).on('click','.pd_qnalist .fold_head .fold_tit',function(e){	
+            $('.fold_head').removeClass('on');
+            $('.fold_cont').slideUp(100);
             $(this).parents('.foldGroup li').find('.fold_cont').slideToggle(100);
             $(this).parents('.fold_head').toggleClass('on');
             return false;

+ 58 - 32
src/main/webapp/ux/style24_link.js

@@ -208,22 +208,34 @@ var cfnOpenIpinCertify = function (redirectUrl) {
  *			cfnAddCart(compsList);
  *
  *		ex) 세트상품 장바구니 등록
- *			let compsList = [];
- *			for(let j = 0 ; j < length ; j++) {		// 구성품 수량 만큼 for
- *				let temp = new Object;
- *				temp.goodsCd = "STYS000000016";
- *				temp.itemCd = '14373757';
- *				temp.optCd = "핑크120";
- *				temp.goodsQty = 1;
- *				temp.goodsType = "G056_S";
- *				temp.cartGb = "C";
- *				temp.afLinkCd = "afLinkCd";
- *				temp.ithrCd = "G027_ZZZ";
- *				temp.contentsLoc = "G028_YYY";
- *				temp.planDtlSq = "123";
- *				compsList.push(temp);
+ *			let cartGoodsList = [];
+ *			for(let i = 0 ; i < 세트상품수 ; i++) {
+ *				let compsList = [];
+ *				let goodsList = {
+ *					cartCompsList : new Array()
+ *				}
+ *
+ *				for(let j = 0 ; j < 세트구성품수 ; j++) {
+ *					let temp = new Object;
+ *					temp.goodsCd = "STYS00000005";
+ *					temp.itemCd = "A83F-DP568S";
+ *					temp.optCd = "14019445-1";
+ *					temp.goodsQty = 3;
+ *					temp.goodsType = "G056_S";
+ *					temp.cartGb = "C";
+ *					temp.afLinkCd = "aaaa";
+ *					temp.ithrCd = "12311";
+ *					temp.contentsLoc = "afasd";
+ *					temp.planDtlSq = "44";
+ *					compsList.push(temp);
+ *				}
+ *
+ *				goodsList.cartCompsList = compsList;
+ *				cartGoodsList.push(goodsList);
  *			}
- *			cfnAddCart(compsList);
+ *
+ *			cfnAddCart(cartGoodsList);
+ *
  * </pre>
  * @since  : 2021/02/24
  * @author : xodud1202
@@ -238,25 +250,30 @@ function cfnAddCart(cartList) {
 		contentType: 'application/json',
 		dataType : 'json',
 		success : function(result) {
-			if(cartList[0].cartGb == "C") {
-				mcxDialog.confirm("<div class="+"dialog-title"+">"+"상품이 쇼핑백에 추가되었습니다.</div><p>쇼핑백으로 이동하시겠습니까?</p>", {
-					cancelBtnText: "계속 쇼핑하기",
-					sureBtnText: "쇼핑백 가기",
-					sureBtnClick: function(){
-						location.href='/cart/list/form'; 	//내 쇼핑백 이동url
+			if(result.message == "SUCCESS") {
+				if(result.cartGb == "C") {
+					mcxDialog.confirm("<div class="+"dialog-title"+">"+"상품이 쇼핑백에 추가되었습니다.</div><p>쇼핑백으로 이동하시겠습니까?</p>", {
+						cancelBtnText: "계속 쇼핑하기",
+						sureBtnText: "쇼핑백 가기",
+						sureBtnClick: function(){
+							location.href='/cart/list/form'; 	//내 쇼핑백 이동url
+						}
+					});
+				} else if (result.cartGb == "O"){
+					let orderHtml = "";
+					for(let i = 0 ; i < result.cartSqList.length ; i++) {
+						orderHtml += '<input type="hidden" name="cartSqArr" value="' + result.cartSqList[i] + '" />';
 					}
-				});
-			} else if (cartList[0].cartGb == "O"){
-				let orderHtml = "";
-				for(let i = 0 ; i < result.length ; i++) {
-					orderHtml += '<input type="hidden" name="cartSqArr" value="' + result[i].cartSq + '" />';
+					$("#directOrderForm").html(orderHtml);
+					
+					$("#directOrderForm").submit();
+					
+					//location.href='/cart/list/form';
+				} else {
+					mcxDialog.alert("쇼핑백담기, 바로구매가 아닌 상태입니다. 해당 요청이 맞다면 새로고침 후 다시시도해주세요.");
 				}
-				$("#directOrderForm").html(orderHtml);
-				$("#directOrderForm").submit();
-				
-				//location.href='/cart/list/form';
 			} else {
-				mcxDialog.alert("쇼핑백담기, 바로구매가 아닌 상태입니다. 해당 요청이 맞다면 새로고침 후 다시시도해주세요.");
+				mcxDialog.alert(result.message);
 			}
 		}
 	});
@@ -700,12 +717,21 @@ function cfGoodsQngCreate(goodsCd) {
 function cfGoodsDelivery(goodsCd) {
 	var Param = new Object();
 	var str = '<div class="pd_pop full_pop pd_delivery_pop" id="layer_goods_delivery"></div>';
+	if ("P" != _frontGb){
+		str = '<div class="modal pop_full fade pd_pop pd_delivery_pop" id="layer_goods_delivery" tabindex="-1" role="dialog" aria-labelledby="exampleFullLabel" aria-hidden="true"></div>';
+	}
 
 	if ($('#layer_goods_delivery').length == 0) {
 		$('body').append(str);
 	}
 
-	cfOpenFullLayer(_PAGE_GOODS_DELIVERY_LAYER + goodsCd, 'layer_goods_delivery');
+	if ("P" == _frontGb){
+		cfOpenFullLayer(_PAGE_GOODS_DELIVERY_LAYER + goodsCd, 'layer_goods_delivery');
+	}else{
+		cfOpenLayer(_PAGE_GOODS_DELIVERY_LAYER + goodsCd, 'layer_goods_delivery');
+	}
+	
+	
 }
 
 /**