초기소스

This commit is contained in:
jazz
2025-10-29 17:08:05 +09:00
parent e531aa9540
commit 439a379a02
7551 changed files with 1234427 additions and 3 deletions

View File

@@ -0,0 +1,131 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : WslistInqireR.jsp
Description : 마이페이지 위시리스트
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-03-27 추지훈 최초 생성
--%>
<!-- 모달 -->
<!-- 배송 조회 -->
<div id="delivery-check-pop" class="modal default" style="max-width: 640px;">
<div class="modal-header">
<div class="modal-header__title">배송 조회</div>
</div>
<c:choose>
<c:when test="${ not empty resultMap.resultList && fn:length(resultMap.resultList) > 0 }">
<c:forEach var="list" items="${ resultMap.resultList }" varStatus="status">
<div class="modal-content">
<div class="table-wrapper">
<table class="table deliveryInfo">
<caption>해당 테이블에 대한 설명</caption>
<!-- 각 열 width 설정 -->
<colgroup>
<col style="width: 20%;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th>
주문자
</th>
<td>
<c:out value="${ resultMap.result.ordrrNm }"/>
</td>
</tr>
<tr>
<th>
수령인
</th>
<td>
<c:out value="${ list.recpntNm }"/>
</td>
</tr>
<tr>
<th>
배송지
</th>
<td><c:if test="${ not empty list.dlvylcZip }">(<c:out value="${ list.dlvylcZip }"/>)</c:if>
<c:choose>
<c:when test="${ list.dlvylcAdresDvCd eq '01'}">
<c:out value="${ list.dlvylcRnmAdres }"/>
</c:when>
<c:when test="${ list.dlvylcAdresDvCd eq '02'}">
<c:out value="${ list.dlvylcLnbAdres }"/>
</c:when>
</c:choose>
<c:out value="${ list.dlvylcAdresDtl }"/>
</td>
</tr>
<tr>
<th>
택배사
</th>
<td>
<c:out value="${ list.hdrycpnNm }"/>
</td>
</tr>
<tr>
<th>
송장번호
</th>
<td><c:out value="${ list.invcnb }"/></td><!-- TODO : 주문 목록에 붙여서 파라미터로 받은 송장번호 출력 -->
</tr>
</tbody>
</table>
</div>
<div class="table-wrapper">
<table class="table deliveryStatus">
<caption>해당 테이블에 대한 설명</caption>
<!-- 각 열 width 설정 -->
<colgroup>
<col style="width: 30%;">
<col style="width: 30%;">
<col style="width: auto;">
</colgroup>
<thead>
<tr>
<th>처리일시</th>
<th>상품위치</th>
<th>배송상태</th>
</tr>
</thead>
<tbody>
<c:forEach var="trackingList" items="${ list.trackingDetails }" varStatus="status">
<tr>
<td><c:out value="${ trackingList.time }"/></td>
<td>
<c:out value="${ trackingList.where }"/>
</td>
<td><c:out value="${ trackingList.kind }"/></td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
</c:forEach>
</c:when>
<c:otherwise>
<div class="couponList">
<div class="couponList__no-result">
<img src="<c:url value="/pc/images/icon__no-result.png"/>" alt="">
<p class="orderList__no-result-text">배송 조회 내역이 없습니다.</p>
</div>
</div>
</c:otherwise>
</c:choose>
<div class="modal-footer">
<a href="#" rel="modal:close" class="btn large outline">닫기</a>
</div>
</div>

View File

@@ -0,0 +1,56 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : FdrmDlvyCycleChngU.jsp
Description : 마이페이지 배송 주기 변경 팝업
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-03-27 추지훈 최초 생성
--%>
<!-- 모달 -->
<!-- 배송주기 변경 -->
<form id="dlvyCycleUpdtForm">
<div id="delivery-cycle-pop" class="modal default" style="max-width: 640px;">
<div class="modal-header">
<div class="modal-header__title">배송주기 변경</div>
</div>
<div class="modal-content">
<div class="deliveryCyclePop">
<h4 class="modalSectionTitle">배송주기를 선택해 주세요.</h4>
<div class="deliveryCyclePop__checkWrapper">
<div class="custom-radio-container">
<c:forEach var="cdList" items="${ resultMap.dlvyCycleCdList }" varStatus="status">
<div class="custom-radio">
<input type="radio" id="<c:out value="${ cdList.cdNm }"/><c:out value="${ cdList.cd }"/>" name="dlvyCycleCd"
<c:choose>
<c:when test="${ not empty resultMap.paramVO.dlvyCycleCd }">
<c:if test="${ resultMap.paramVO.dlvyCycleCd eq cdList.cd }">checked="checked"</c:if>
</c:when>
<c:otherwise>
<c:if test="${ cdList.cd eq '01' }">checked="checked"</c:if>
</c:otherwise>
</c:choose>
>
<label for="<c:out value="${ cdList.cdNm }"/><c:out value="${ cdList.cd }"/>"><c:out value="${ cdList.cdNm }"/></label>
</div>
</c:forEach>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<input type="hidden" name="ordrInnb" value="<c:out value="${ resultMap.paramVO.ordrInnb }"/>" />
<a href="#" rel="modal:close" class="btn large outline">닫기</a>
<button type="button" class="btn large theme" onclick="fn_update_dlvy_cycle();">배송주기 변경</button>
</div>
</div>
</form>

View File

@@ -0,0 +1,264 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : WslistInqireRForm.jsp
Description : 마이페이지 위시리스트
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-02-27 추지훈 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<%-- 공통 include --%>
<jsp:include page="/WEB-INF/views/comm/Include.jsp"/>
<script>
$(document).ready(function() {
let pageIndex = '<c:out value="${ resultMap.paramVO.pageIndex }"/>';
let pageUnit = '<c:out value="${ resultMap.paramVO.pageUnit }"/>';
fn_select_fdrm_dlvy_list(pageIndex, pageUnit);
fn_start_display();
});
/******************************************************************
* 시작 화면 제어
******************************************************************/
const fn_start_display = function() {
/* 검색조건 > 날짜 구간 버튼 클릭 이벤트 */
$('.dateRange-btn').on('click', function() {
const date = $(this).attr('id');
$(this).closest('div').find('#dateRange').val(date);
if ('allDays' === date) {
$('#bgnDt, #endDt').val('');
return false;
}
fn_set_date('bgnDt', 'endDt', 'endDt', date);
});
/* 검색 버튼 클릭 이벤트 */
$('#btnSearch').on('click', function() {
fn_select_fdrm_dlvy_list(1);
});
}
/******************************************************************
* 정기배송 목록 조회
******************************************************************/
const fn_select_fdrm_dlvy_list = function(pageIndex, pageUnit) {
let dataStr;
if(!pageIndex) {
$('#pageIndex').val(1);
} else {
$('#pageIndex').val(pageIndex);
}
if(!pageUnit) {
dataStr = $('#listForm').serialize();
} else {
if($('#pageUnit').length){
$('#pageUnit').val(pageUnit);
dataStr = $('#listForm').serialize();
} else {
dataStr = $('#listForm').serialize()+'&pageUnit='+pageUnit;
}
}
$('#pageIndex').val(pageIndex);
$.ajax({
type: "post",
url : '<c:url value="/sopmal/mpage/ordr/selectFdrmDlvyInqire"/>',
data : dataStr,
success:function(resultHtml) {
$('#pageDiv').empty();
$('#pageDiv').html(resultHtml);
}
});
}
/*********************************************************************
* 정기배송 > 배송주기 변경 팝업
* *******************************************************************/
const fn_dlvy_cycle_change_modal = function (modalDivSltr, modalSlrt, ordrInnb) {
// const data = $(formId).serialize();
const data = null;
$.ajax({
type: 'POST',
url: '<c:url value="/sopmal/mpage/ordr/selectFdrmDlvyCycleChngForm"/>',
data: {
ordrInnb : ordrInnb
},
success: function (data) {
$(modalSlrt).remove();
$(modalDivSltr).html(data);
$(modalSlrt).modal();
}
});
}
/*********************************************************************
* 정기배송 > 배송주기 변경 팝업 > 배송주기 변경
* *******************************************************************/
const fn_update_dlvy_cycle = function () {
const data = $('#dlvyCycleUpdtForm').serialize();
$.ajax({
type: 'POST',
url: '<c:url value="/sopmal/mpage/ordr/selectFdrmDlvyCycleChngForm"/>',
data: data,
success: function (result) {
}
});
}
/*********************************************************************
* 정기배송 > 배송 혜지
* *******************************************************************/
const fn_delete_fdrm_dlvy = function () {
const data = $('#dlvyCycleUpdtForm').serialize();
$.ajax({
type: 'POST',
url: '<c:url value="/sopmal/mpage/ordr/selectFdrmDlvyCycleChngForm"/>',
data: data,
success: function (result) {
}
});
}
/* 검색조건 세팅 */
const fn_set_param = function() {
const params = ${paramVO};
const keys = Object.keys(params);
for (let i = 0; i < keys.length; i++) {
let key = keys[i];
let data = params[key];
if ('bgnDt' == key || 'endDt' == key) {
if (!fn_is_empty(data)) {
for (let i = 0; i < data.length; i++) {
$('#' + key).val(data);
}
}
}
if ('dateRange' == key) {
$('#'+ data).trigger('click');
}
if ('srchwrd' == key) {
$('#' + key).val(data);
}
}
}
</script>
</head>
<body>
<%-- 공통 Header --%>
<jsp:include page="/WEB-INF/views/comm/Header.jsp"/>
<!-- 메인 컨텐츠 영역 -->
<main>
<div class="sub-wrapper">
<div class="sub-content">
<div class="sub-rl">
<%-- 마이페이지 Left 영역 --%>
<jsp:include page="/WEB-INF/views/comm/mpage/MypageLeft.jsp"/>
<div class="sub-right-content">
<%-- 마이페이지 Right 영역 --%>
<jsp:include page="/WEB-INF/views/comm/mpage/MypageRight.jsp"/>
<div class="sub-right-content__section">
<h3 class="sub-right-content__title">정기배송 관리</h3>
<form id="listForm">
<input type="hidden" name="pageIndex" id="pageIndex" value="1">
<div class="customer-search">
<div class="customer-search__row justify-start">
<input class="input-text customer-search__search" type="text" name="srchwrd" title="검색어 입력" placeholder="주문번호, 상품명 검색">
</div>
<div class="customer-search__row justify-start">
<div class="customer-search__controls">
<div class="dateRange-btnContainer">
<input type="hidden" name="dateRange" id="dateRange" value="allDays">
<button type="button" class="dateRange-btn" id="7D">일주일</button>
<button type="button" class="dateRange-btn" id="1M">1개월</button>
<button type="button" class="dateRange-btn" id="3M">3개월</button>
<button type="button" class="dateRange-btn selected" id="allDays">전체</button>
</div>
<div class="input-container">
<input type="text" readonly id="bgnDt" class="datepicker" name="bgnDt" title="시작 날짜 선택" autocomplete="off">
<span class="tilde">~</span>
<input type="text" readonly id="endDt" class="datepicker" name="endDt" title="종료 날짜 선택" autocomplete="off">
</div>
</div>
<button class="btn md dark" type="button" id="btnSearch" onclick="fn_select_fdrm_dlvy_list(1);" >검색</button>
</div>
</div>
</form>
<div class="sub-tab__content current" id="pageDiv">
</div>
</div>
</div>
</div>
</div>
</div>
</main>
<%-- 공통 Footer --%>
<jsp:include page="/WEB-INF/views/comm/Footer.jsp"/>
<!-- 모달 영역 -->
<div id="modalDiv">
</div>
</body>
</html>

View File

@@ -0,0 +1,71 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : RtngudCanclRefndListR.jsp
Description : 마이페이지 반품/환불 내역
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-03-27 추지훈 최초 생성
--%>
<!--<div class="sub-tab__content current">-->
<div class="orderList">
<c:choose>
<c:when test="${ not empty resultMap.allOrdrList && fn:length(resultMap.allOrdrList) > 0 }">
<c:forEach var="list" items="${ resultMap.allOrdrList }" varStatus="status">
<div class="orderList__item">
<div class="orderList__item__inner">
<a href="" class="orderList__image">
<img src="<c:out value="${ list.goodsImageUrl }"/>" alt="상품 이미지">
</a>
<div class="orderList__description">
<div class="orderList__description__first">
<div class="orderList__item__top">
<a href="" class="orderList__orderNum"><c:out value="${ list.ordrInnb }"/>
</a>
<span class="orderList__dot">·</span>
<span class="orderList__date"><c:out value="${ list.ordrDt }"/> 주문</span>
</div>
<a href="" class="orderList__productTitle"><c:out value="${ list.goodsNm }"/></a>
<span class="orderList__option"><c:out value="${ not empty list.optnNm ? '옵션 : ' += list.optnNm : '' }"/></span>
</div>
<div class="orderList__description__second">
<span class="orderList__price"><span class="comma"><c:out value="${ list.setleAmt }"/></span>원</span>
</div>
<div class="orderList__description__third">
<span class="orderList__regularDelivery">
매월 15일
<span class="misc">(3회차)</span>
</span>
</div>
<div class="orderList__btnControls">
<button type="button" class="btn gray sm full" onclick="fn_delete_fdrm_dlvy();">배송해지</button>
<button type="button" class="btn outline sm full" onclick="fn_dlvy_cycle_change_modal( '#modalDiv', '#delivery-cycle-pop', '<c:out value="${ list.ordrInnb }"/>' );" >배송주기 변경</button>
</div>
</div>
</div>
</div>
</c:forEach>
</c:when>
<c:otherwise>
<div class="orderList__no-result">
<img src="/pc/images/icon__no-result.png" alt="">
<p class="orderList__no-result-text">
주문내역이 없습니다.
</p>
</div>
</c:otherwise>
</c:choose>
</div>
<div class="pagination__container">
<ui:pagination paginationInfo="${resultMap.paginationInfo}" type="image" jsFunction="fn_select_fdrm_dlvy_list" />
</div>
<!--</div>-->

View File

@@ -0,0 +1,241 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : WslistInqireRForm.jsp
Description : 마이페이지 위시리스트
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-02-27 추지훈 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<%-- 공통 include --%>
<jsp:include page="/WEB-INF/views/comm/Include.jsp"/>
<script src="<c:url value='/js/dlvylc/dlvylc.js'/>"></script>
<script>
$(document).ready(function() {
let pageIndex = '<c:out value="${ resultMap.paramVO.pageIndex }"/>';
let pageUnit = '<c:out value="${ resultMap.paramVO.pageUnit }"/>';
fn_select_gift_list(pageIndex, pageUnit);
fn_start_display();
});
/******************************************************************
* 시작 화면 제어
******************************************************************/
const fn_start_display = function() {
/* 검색조건 > 날짜 구간 버튼 클릭 이벤트 */
$('.dateRange-btn').on('click', function() {
const date = $(this).attr('id');
$(this).closest('div').find('#dateRange').val(date);
if ('allDays' === date) {
$('#bgnDt, #endDt').val('');
return false;
}
fn_set_date('bgnDt', 'endDt', 'endDt', date);
});
/* 검색 버튼 클릭 이벤트 */
$('#btnSearch').on('click', function() {
fn_select_gift_list(1);
});
}
/* 주문상세 이동 */
const fn_go_ordr_dtl = function (sopmalCd, ordrInnb) {
var form = $('#listForm');
$(form).append($('<input/>', {type: 'hidden', name: 'ordrInnb', id: 'ordrInnb', value: ordrInnb}));
$(form).attr('method', 'get');
$(form).attr('action', '<c:url value="/sopmal/mpage/ordr/selectMbrOrdrDtlInqire"/>');
$(form).submit();
}
/******************************************************************
* 선물함 목록 조회
******************************************************************/
const fn_select_gift_list = function(pageIndex, pageUnit) {
let dataStr;
if(!pageIndex) {
$('#pageIndex').val(1);
} else {
$('#pageIndex').val(pageIndex);
}
if(!pageUnit) {
dataStr = $('#listForm').serialize();
} else {
if($('#pageUnit').length){
$('#pageUnit').val(pageUnit);
dataStr = $('#listForm').serialize();
} else {
dataStr = $('#listForm').serialize()+'&pageUnit='+pageUnit;
}
}
$('#pageIndex').val(pageIndex);
$.ajax({
type: "post",
url : '<c:url value="/sopmal/mpage/ordr/selectGiftListInqire"/>',
data : dataStr,
success:function(resultHtml) {
$('#pageDiv').empty();
$('#pageDiv').html(resultHtml);
}
});
}
/*********************************************************************
* 성물함 > 선물현황 조회
* *******************************************************************/
const fn_select_gift_current_situation = function (modalDivSltr, modalSlrt, ordrInnb) {
const data = null;
$.ajax({
type: 'POST',
url: '<c:url value="/sopmal/mpage/ordr/selectGiftOrdrSittnPopupForm"/>',
data: {
ordrInnb : ordrInnb
},
success: function (result) {
$(modalSlrt).remove();
$(modalDivSltr).html(result);
$(modalSlrt).modal();
}
});
}
/* 검색조건 세팅 */
const fn_set_param = function() {
const params = ${paramVO};
const keys = Object.keys(params);
for (let i = 0; i < keys.length; i++) {
let key = keys[i];
let data = params[key];
if ('bgnDt' == key || 'endDt' == key) {
if (!fn_is_empty(data)) {
for (let i = 0; i < data.length; i++) {
$('#' + key).val(data);
}
}
}
if ('dateRange' == key) {
$('#'+ data).trigger('click');
}
if ('srchwrd' == key) {
$('#' + key).val(data);
}
}
}
</script>
</head>
<body>
<%-- 공통 Header --%>
<jsp:include page="/WEB-INF/views/comm/Header.jsp"/>
<!-- 메인 컨텐츠 영역 -->
<main>
<div class="sub-wrapper">
<div class="sub-content">
<div class="sub-rl">
<%-- 마이페이지 Left 영역 --%>
<jsp:include page="/WEB-INF/views/comm/mpage/MypageLeft.jsp"/>
<div class="sub-right-content">
<%-- 마이페이지 Right 영역 --%>
<jsp:include page="/WEB-INF/views/comm/mpage/MypageRight.jsp"/>
<div class="sub-right-content__section">
<h3 class="sub-right-content__title">선물함</h3>
<form id="listForm">
<input type="hidden" name="pageIndex" id="pageIndex" value="1">
<div class="customer-search">
<div class="customer-search__row justify-start">
<input class="input-text customer-search__search" type="text" name="srchwrd" title="검색어 입력" placeholder="주문번호, 상품명 검색">
</div>
<div class="customer-search__row justify-start">
<div class="customer-search__controls">
<div class="dateRange-btnContainer">
<input type="hidden" name="dateRange" id="dateRange" value="allDays">
<button type="button" class="dateRange-btn" id="7D">일주일</button>
<button type="button" class="dateRange-btn" id="1M">1개월</button>
<button type="button" class="dateRange-btn" id="3M">3개월</button>
<button type="button" class="dateRange-btn selected" id="allDays">전체</button>
</div>
<div class="input-container">
<input type="text" readonly id="bgnDt" class="datepicker" name="bgnDt" title="시작 날짜 선택" autocomplete="off">
<span class="tilde">~</span>
<input type="text" readonly id="endDt" class="datepicker" name="endDt" title="종료 날짜 선택" autocomplete="off">
</div>
</div>
<button class="btn md dark" type="button" id="btnSearch" onclick="fn_select_fdrm_dlvy_list(1);" >검색</button>
</div>
</div>
</form>
<div class="sub-tab__content current" id="pageDiv">
</div>
</div>
</div>
</div>
</div>
</div>
</main>
<%-- 공통 Footer --%>
<jsp:include page="/WEB-INF/views/comm/Footer.jsp"/>
<!-- 모달 영역 -->
<div id="modalDiv">
</div>
</body>
</html>

View File

@@ -0,0 +1,68 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : RtngudCanclRefndListR.jsp
Description : 마이페이지 반품/환불 내역
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-03-27 추지훈 최초 생성
--%>
<!--<div class="sub-tab__content current">-->
<div class="orderList">
<c:choose>
<c:when test="${ not empty resultMap.allOrdrList && fn:length(resultMap.allOrdrList) > 0 }">
<c:forEach var="list" items="${ resultMap.allOrdrList }" varStatus="status">
<div class="orderList__item">
<div class="orderList__item__inner">
<a href="" class="orderList__image">
<spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/>
<img src="<c:out value="${ cdnurl }${list.goodsImageUrl}"/>" onerror="this.src='/pc/images/image_placeholder.png'" alt="<c:out value="${list.goodsNm}"/>">
</a>
<div class="orderList__description">
<div class="orderList__description__first">
<div class="orderList__item__top">
<a href="" class="orderList__orderNum"><c:out value="${ list.ordrInnb }"/>
</a>
<span class="orderList__dot">·</span>
<span class="orderList__date"><c:out value="${ list.ordrDt }"/> 주문</span>
</div>
<a href="javascript:void(0);" onclick="fn_go_ordr_dtl('<c:out value="${list.sopmalCd}"/>', '<c:out value="${list.ordrInnb}"/>');" class="orderList__productTitle"><c:out value="${list.goodsNm}"/></a>
<span class="orderList__option"><c:out value="${ not empty list.optnNm ? '옵션 : ' += list.optnNm : '' }"/></span>
</div>
<div class="orderList__description__second">
<span class="orderList__price"><span class="comma"><c:out value="${ list.setleAmt }"/></span>원</span>
</div>
<div class="orderList__description__third">
<span class="orderList__mileage"><span class="comma">예상적립 <fmt:formatNumber value="${ list.mlgAmt }" pattern="#,###"/></span>원</span>
</div>
<div class="orderList__btnControls">
<button type="button" class="btn outline sm full" onclick="fn_select_gift_current_situation( '#modalDiv', '#gift-sittn-pop', '<c:out value="${ list.ordrInnb }"/>' );" >선물 조회</button>
</div>
</div>
</div>
</div>
</c:forEach>
</c:when>
<c:otherwise>
<div class="orderList__no-result">
<img src="/pc/images/icon__no-result.png" alt="">
<p class="orderList__no-result-text">
선물내역이 없습니다.
</p>
</div>
</c:otherwise>
</c:choose>
</div>
<div class="pagination__container">
<ui:pagination paginationInfo="${resultMap.paginationInfo}" type="image" jsFunction="fn_select_gift_list" />
</div>
<!--</div>-->

View File

@@ -0,0 +1,77 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : GiftOrdrSittnPopupR.jsp
Description : 마이페이지 선물함 선물현황 조회 팝업
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-03-27 추지훈 최초 생성
--%>
<!-- 모달 -->
<!-- 선물 조회 -->
<div id="gift-sittn-pop" class="modal default" style="max-width: 640px;">
<div class="modal-header">
<div class="modal-header__title">선물 조회</div>
</div>
<div class="modal-content">
<c:forEach var="list" items="${ resultMap.resultList }" varStatus="status">
<div class="table-wrapper">
<table class="table deliveryInfo">
<caption>해당 테이블에 대한 설명</caption>
<!-- 각 열 width 설정 -->
<colgroup>
<col style="width: 20%;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th>
수령인
</th>
<td><c:out value="${ list.recpntNm }"/></td>
</tr>
<tr>
<th>
선물상태
</th>
<td>
<c:out value="${ list.giftSttusCdNm }"/>
</td>
</tr>
<tr>
<th>
배송지
</th>
<td>
<c:if test="${ not empty list.dlvylcZip }">(<c:out value="${ list.dlvylcZip }"/>)</c:if>
<c:choose>
<c:when test="${ list.dlvylcAdresDvCd eq '01'}">
<c:out value="${ list.dlvylcRnmAdres }"/>
</c:when>
<c:when test="${ list.dlvylcAdresDvCd eq '02'}">
<c:out value="${ list.dlvylcLnbAdres }"/>
</c:when>
</c:choose>
<c:out value="${ list. dlvylcAdresDtl }"/>
</td>
</tr>
</tbody>
</table>
</div>
<hr>
<br>
</c:forEach>
</div>
<div class="modal-footer">
<a href="#" rel="modal:close" class="btn large outline">닫기</a>
</div>
</div>

View File

@@ -0,0 +1,475 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : WslistInqireRForm.jsp
Description : 마이페이지 위시리스트
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-02-27 추지훈 최초 생성
--%>
<script defer>
//상품 타이틀, 수량, 가격 저장하는 배열
// 배열 순서 -> [상품명, 수량, 1개당 가격, 상품 총가격(=수량x개당가격), 추가정보(색상, 사이즈등)]
fn_set_niceSelect_datePicker('.select-box-addCart')
//
// /*************************************************************
// 함께하면 좋은상품 이벤트 (모달)
// **************************************************************/
//
// //일반옵션
// // 라디오 버튼 클릭시, 상품 정보 배열에 추가 및 화면에 추가
$(".productDetailInfo__option__item").each(function () {
$(this).find("input[type=radio]").on("change", function () { // 라디오 버튼 클릭 시
if ($(this).prop('checked') == false) return; // 체크 해제시 리턴
const $title = $(this).closest(".productDetailInfo__option__item").find("label").text();
const $price = $(this).closest(".productDetailInfo__option__item").find(".productDetailInfo__option__price").text();
const $goodsOptnInnb = $(this).closest(".productDetailInfo__option__item").find('input[name="goodsOptnInnb"]').val()
const $goodsOptnTy = $(this).closest(".productDetailInfo__option__item").find('input[name="goodsOptnTy"]').val()
const $optnInfo = $(this).closest(".productDetailInfo__option__item").find('.productDetailInfo__option__monthly-payment').text();
const $priceNum = parseInt($price.replace(/,/g, ""));
//이미 추가된 상품인지 확인
var isItemAlreadyAdded = productArr.some(function (item) {
return item[0] === $title;
});
if (isItemAlreadyAdded){
fn_goods_duplicate_select_modal()
return;
}
productArr.push([$title, 1, $priceNum, $priceNum * 1, $goodsOptnInnb, $goodsOptnTy]); // 배열에 상품 정보 추가
$('#cartCountContainer').append( // 화면에 상품 정보 추가
'<div class="productDetailInfo__count">' +
'<div class="productDetailInfo__count__amountTop">' +
'<span class="productDetailInfo__count__amountTitle">' + $title + '</span>' +
'<button class="productDetailInfo__count__amountDelete"><span class="visually-hidden">삭제</span></button>' +
'</div>' +
'<div class="productDetailInfo__count__amountBottom">' +
'<div class="productDetailInfo__count__amountCounter">' +
'<button class="productDetailInfo__count__amountBtn minus"><span class="visually-hidden">감소</span></button>' +
'<span class="productDetailInfo__count__amountNumber">1</span>' +
'<button class="productDetailInfo__count__amountBtn plus"><span class="visually-hidden">추가</span></button>' +
'</div>' +
'<div class="productDetailInfo__count__amountPriceBox">' +
'<span class="productDetailInfo__count__amountMonthlyPrice">'+$optnInfo+'</span>' +
'<span class="productDetailInfo__count__amountPrice"><span class="comma productDetailInfo__count__priceNum">' + $price +
'</div>' +
'</div>' +
'</div>'
);
updateCartCounters(); // 화면에 상품 정보 업데이트
});
});
// 총 상품금액
var $cartTotalPrice = $(".modal .product-total__price__totalPriceNum");
// 수량 "-", "+" 버튼 클릭 시, 수량 증감 및 가격 변경 및 총 상품금액 변경
$("#cartCountContainer").on("click", ".productDetailInfo__count__amountBtn", function () { // 수량 버튼 클릭 시
var $counter = $(this);
var $index = $counter.closest(".productDetailInfo__count").index(); // 해당 상품의 인덱스
if ($(this).hasClass("minus")) { // "-" 버튼 클릭 시
if (productArr[$index][1] <= 1) return;
productArr[$index][1]--; // 배열에서 해당 상품의 수량 감소
productArr[$index][3] = productArr[$index][1] * productArr[$index][2]; // 배열에서 해당 상품의 총 가격 변경
} else { // "+" 버튼 클릭 시
productArr[$index][1]++; // 배열에서 해당 상품의 수량 증가
productArr[$index][3] = productArr[$index][1] * productArr[$index][2]; // 배열에서 해당 상품의 총 가격 변경
}
updateCartCounters(); // 화면에 상품 정보 업데이트
})
//
// //배열 내용을 바탕으로 각 아이템 텍스트 변경
function updateCartCounters() {
$(".modal .productDetailInfo__count").each(function () {
var $counter = $(this);
var $index = $counter.index();
var $number = $counter.find(".productDetailInfo__count__amountNumber");
var $price = $counter.find(".productDetailInfo__count__priceNum");
$number.text(productArr[$index][1]);
$price.text(addComma(productArr[$index][3]) + "원");
});
updateCartTotalPrice(); // 총 상품금액 업데이트
}
// 3자리마다 "," 추가
function addComma(num) {
return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
// 총 상품금액 업데이트
function updateCartTotalPrice() {
var totalPrice = 0; // 총 상품금액
for (var i = 0; i < productArr.length; i++) {
totalPrice += productArr[i][3]; // 배열의 총 가격을 더함
}
$cartTotalPrice.text(addComma(totalPrice)); // 총 상품금액 텍스트 변경
}
// x버튼 클릭 시 삭제
$("#cartCountContainer").on("click", ".productDetailInfo__count__amountDelete", function () { // x 버튼 클릭 시
var $index = $(this).closest(".productDetailInfo__count").index();
productArr.splice($index, 1); // 배열에서 해당 상품 삭제
$(this).closest(".productDetailInfo__count").remove(); // 화면에서 해당 상품 삭제
updateCartCounters(); // 화면에 상품 정보 업데이트
//일반옵션이 하나일 경우 라디오 체크 해제
if($('#option-change-popUp .custom-radio:not(:has(span))').length ===1
|| productArr.filter(item => item[5] === '01'&& $('#goodsInnb').val() ===item[6]).length === 0){
$("input[name='r-group01']").prop('checked', false)
}
});
// // // 마지막으로 생성된 상품에 각인 정보 추가
// // $('#cartAddTextBtn').on('click', function () {
// // var $index = $(".modal .productDetailInfo__count").length - 1;
// // var $text = $('#cartAddTextInput').val();
// // console.log(productArr[$index]); // 인덱스 확인
// // $(".modal .productDetailInfo__count").eq($index).find(".productDetailInfo__count__amountTop").append('<div class="productDetailInfo__count__additionalSelect">각인문구 : ' + $text + '</div>');
// //
// // console.log(productArr); // 배열 정보확인
// // });
//
//재고옵션
$('#cartAdditionalSelect').on("change", "select", function () { // 셀렉트 선택 시
if ($('#cartAdditionalSelect').find('.option.selected.disabled').length > 0) return;
if ($('#cartAdditionalSelect').find('.option.selected').length == $('#cartAdditionalSelect').find('.nice-select').length) { // 모든 셀렉트가 선택되면
var $title = $('#addCartGoodsNm').val();
var $optInfo = $(this).closest(".productDetailInfo__additionalSelect__item").find(".option.selected").attr("data-value").split('|');
var $priceNum = $optInfo[0];
var $goodsOptnInnb = $optInfo[1];
var $goodsOptnInfo = $optInfo[2];
var $goodsOptnTy = $optInfo[3];
var arr = [];
for (var i = 0; i < $('#cartAdditionalSelect').find('.nice-select').length; i++) {
arr.push($('#cartAdditionalSelect').find('.nice-select').eq(i).find('.option.selected').text());
}
//이미 추가된 상품인지 확인
var isItemAlreadyAdded = productArr.some(function (item) {
return item[0] === $title && item[6].join('') === arr.join('') || item[4] === $goodsOptnInnb;
});
if (isItemAlreadyAdded) {
fn_goods_duplicate_select_modal()
return;
}
productArr.push([$title, 1, $priceNum, $priceNum * 1, $goodsOptnInnb, $goodsOptnTy, arr]); // 배열에 상품 정보 추가
let cartAdditionalSelectText = '옵션 : ' + arr.join(' / ').replace(/\(\+.*?\)/g, ''); // 추가정보 텍스트로 변환
$('#cartCountContainer').append( // 화면에 상품 정보 추가
'<div class="productDetailInfo__count">' +
'<div class="productDetailInfo__count__amountTop">' +
'<span class="productDetailInfo__count__amountTitle">' + $title + '</span>' +
'<div class="productDetailInfo__count__additionalSelect">' + cartAdditionalSelectText + '</div>' +
'<button class="productDetailInfo__count__amountDelete"><span class="visually-hidden">삭제</span></button>' +
'</div>' +
'<div class="productDetailInfo__count__amountBottom">' +
'<div class="productDetailInfo__count__amountCounter">' +
'<button class="productDetailInfo__count__amountBtn minus"><span class="visually-hidden">감소</span></button>' +
'<span class="productDetailInfo__count__amountNumber">1</span>' +
'<button class="productDetailInfo__count__amountBtn plus"><span class="visually-hidden">추가</span></button>' +
'</div>' +
'<div class="productDetailInfo__count__amountPriceBox">' +
'<span class="productDetailInfo__count__amountMonthlyPrice">' + $goodsOptnInfo + '</span>' +
'<span class="productDetailInfo__count__amountPrice"><span class="comma productDetailInfo__count__priceNum">' + $priceNum +
'</div>' +
'</div>' +
'</div>'
);
}
updateCartCounters(); // 화면에 상품 정보 업데이트
});
// 추가구성옵션
$("#cartMoreItemsSelect").on("change",'select', function () {
var $moreItems = $('#cartMoreItemsSelect').find(".productDetailInfo__additionalSelect__item");
const $optInfoOptn3 = $(this).closest(".productDetailInfo__additionalSelect__item").find(".option.selected").attr("data-value").split('|');
const $priceNumOptn3 = $optInfoOptn3[0];
const $goodsOptnInnbOptn3 = $optInfoOptn3[1];
const $goodsOptnInfoOptn3 = $optInfoOptn3[2];
const $goodsOptnTyOptn3 = $optInfoOptn3[3];
const $optnEssnlAtOptn3 = $(this).closest(".productDetailInfo__additionalSelect__item").find('input[name="productDetailInfo__additionalSelect__otpnEssntlAt__relate__added"]').val();
// $moreItems.each(function () {
// if ($(this).find('.option.selected.disabled').length > 0) return;
var $title = $moreItems.find(".option.selected").text().replace(' ','').trim().replace('선택', ' ').replace(/\(\+.*?\)/g, '');
var $priceNum = $(this).find(".option.selected").attr("data-value");
//이미 추가된 상품인지 확인
var isItemAlreadyAdded = productArr.some(function (item) {
return item[4] === $goodsOptnInnbOptn3;
});
if (isItemAlreadyAdded){
fn_goods_duplicate_select_modal()
return;
}
productArr.push([$title, 1, $priceNumOptn3, $priceNumOptn3 * 1, $goodsOptnInnbOptn3, $goodsOptnTyOptn3, $optnEssnlAtOptn3]); // 배열에 상품 정보 추가
$('#cartCountContainer').append( // 화면에 상품 정보 추가
'<div class="productDetailInfo__count">' +
'<div class="productDetailInfo__count__amountTop">' +
'<span class="productDetailInfo__count__amountTitle">' + $title + '</span>' +
'<button class="productDetailInfo__count__amountDelete"><span class="visually-hidden">삭제</span></button>' +
'</div>' +
'<div class="productDetailInfo__count__amountBottom">' +
'<div class="productDetailInfo__count__amountCounter">' +
'<button class="productDetailInfo__count__amountBtn minus"><span class="visually-hidden">감소</span></button>' +
'<span class="productDetailInfo__count__amountNumber">1</span>' +
'<button class="productDetailInfo__count__amountBtn plus"><span class="visually-hidden">추가</span></button>' +
'</div>' +
'<div class="productDetailInfo__count__amountPriceBox">' +
'<span class="productDetailInfo__count__amountMonthlyPrice">'+$goodsOptnInfoOptn3+'</span>' +
'<span class="productDetailInfo__count__amountPrice"><span class="comma productDetailInfo__count__priceNum">' + $priceNum +
'</div>' +
'</div>' +
'</div>'
);
$(this).val('').niceSelect('update')
updateCartCounters(); // 화면에 상품 정보 업데이트
// });
});
</script>
<div id="option-change-popUp" class="modal option">
<div class="option-header">
<div class="option-header__title">옵션 선택</div>
<input type="hidden" id="addCartGoodsInnb" value="${resultMap.goodsDtl.goodsInnb}"/>
<input type="hidden" id="sopmalCd" value="${resultMap.goodsDtl.sopmalCd}"/>
<input type="hidden" id="addCartGoodsNm" value="${resultMap.goodsDtl.goodsNm}"/>
<input type="hidden" id="slepricDscntAmt" value="${resultMap.goodsDtl.slepric}"/>
<c:forEach var="cardDv" items="${resultMap.cartDvList}">
<input type="hidden" value="${cardDv.cd}" id="cartDv-${cardDv.cdNm}"/>
</c:forEach>
</div>
<div class="option-content">
<div class="product-unit product-unit--relatedProduct">
<div class="product-unit-image">
<a href="javascript:void(0);" onclick="fn_move_goods_dtl('<c:out value="${resultMap.goodsDtl.goodsInnb}"/>');">
<spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/>
<img src="<c:out value="${cdnurl}${fn:split(resultMap.goodsDtl.img, '|')[0]}"/> " onerror="this.src='/pc/images/image_placeholder.png'" alt="상품 이미지">
</a>
</div>
<div class="product-unit-info">
<div class="product-unit-info__inner">
<div class="product-unit-title">
<a href="javascript:void(0);" onclick="fn_move_goods_dtl('<c:out value="${resultMap.goodsDtl.goodsInnb}"/>');"><c:out value="${resultMap.goodsDtl.goodsNm}"/></a>
</div>
<div class="product-unit-price">
<div class="product-unit-price__price">
<span class="product-unit-price__original">
<span class="comma">
<fmt:formatNumber value="${resultMap.goodsDtl.cnsmrpric}"/></span>
<span class="priceUnit"></span>
</span>
<span class="product-unit-price__current">
<span class="comma"> <fmt:formatNumber value="${resultMap.goodsDtl.slepric - resultMap.goodsDtl.evtAditDscntAmt}"/></span>
<span class="priceUnit">원</span></span>
</div>
<div class="product-unit-price__sale">
<span class="percent">
<c:choose>
<c:when test="${resultMap.goodsDtl.eventAt eq 'Y'}">
<c:out value="${resultMap.goodsDtl.evtSlePercent}"/>
</c:when>
<c:otherwise>
<c:out value="${resultMap.goodsDtl.slePercent}"/>
</c:otherwise>
</c:choose>
%</span>
</div>
</div>
</div>
</div>
</div>
<c:if test="${resultMap.goodsDtl.goodsSttusCd ne '02' or resultMap.goodsDtl.goodsSttusCd ne '03'}">
<c:choose>
<c:when test="${not empty resultMap.optnList}">
<c:if test="${not empty resultMap.optnList.normalOptnList}">
<div class="productDetailInfo__option">
<div class="productDetailInfo__option__box">
<c:forEach var="goodsOpt01" items="${resultMap.optnList.normalOptnList}" varStatus="optList01">
<c:if test="${goodsOpt01.optnExpsrAt eq 'Y'}">
<c:if test="${goodsOpt01.invntrySldoutExpsrAt eq 'Y'}">
<div class="productDetailInfo__option__item">
<c:if test="${not empty goodsOpt01.optnVal1}">
<div class="custom-radio is-medium">
<input type="radio" id="r-${goodsOpt01.optnOrdr}" value="${goodsOpt01.optnVal1}" name="r-group01" <c:if test="${goodsOpt01.disableAt eq 'Y'}"> disabled</c:if>>
<label for="r-${goodsOpt01.optnOrdr}">${goodsOpt01.optnVal1}</label>
<input type="hidden" name="optnCd" value="${goodsOpt01.optnCd1}">
<input type="hidden" name="goodsOptnInnb" value="${goodsOpt01.goodsOptnInnb}"/>
<input type="hidden" name="goodsOptnTy" value="${goodsOpt01.optnTy}"/>
<input type="hidden" name="goodsSopmalCd" value="${goodsOpt01.sopmalCd}"/>
<c:if test="${goodsOpt01.disableAt eq 'Y'}"> <span>(품절)</span></c:if>
</div>
<div class="productDetailInfo__option__right">
<span class="productDetailInfo__option__price"><span class="comma"><fmt:formatNumber value="${goodsOpt01.slepric}"/></span> <span class="priceUnit"> 원</span></span>
<span class="productDetailInfo__option__monthly-payment"><c:out value="${goodsOpt01.optnInfo}"/></span>
</div>
</c:if>
</div>
</c:if>
</c:if>
</c:forEach>
</div>
</div>
</c:if>
<c:if test="${not empty resultMap.optnList.invntryOptnList}">
<div class="productDetailInfo__additionalSelect" id="cartAdditionalSelect">
<span class="productDetailInfo__option__title">옵션선택(필수)</span>
<div class="productDetailInfo__additionalSelect__inner">
<div class="productDetailInfo__additionalSelect__item">
<c:if test="${not empty resultMap.optnList.invntryOptnList[0].optnNm1}">
<span class="productDetailInfo__additionalSelect__category"><c:out value="${resultMap.optnList.invntryOptnList[0].optnNm1}"/> </span>
<div class="select-box-addCart">
<select id="selectAddCartInvntryOptn1" name="selectAddCartInvntryOptn">
<option value="" disabled selected><c:out value="선택"/></option>
<c:forEach var="goodsOpt02" items="${resultMap.optnList.invntryOptnList}" varStatus="optList02">
<c:if test="${goodsOpt02.optnExpsrAt eq 'Y'}">
<c:if test="${goodsOpt02.invntrySldoutExpsrAt eq 'Y'}">
<c:if test="${goodsOpt02.optnVal1 ne resultMap.optnList.invntryOptnList[optList02.index-1].optnVal1}">
<option value="${goodsOpt02.slepric}|${goodsOpt02.goodsOptnInnb}|${goodsOpt02.optnInfo}|${goodsOpt02.optnTy}" <c:if test="${goodsOpt02.disableAt eq 'Y'}"> disabled </c:if> >
<c:out value="${goodsOpt02.optnVal1}"/>
</option>
</c:if>
</c:if>
</c:if>
</c:forEach>
</select>
</div>
</c:if>
</div>
<div class="productDetailInfo__additionalSelect__item">
<c:if test="${not empty resultMap.optnList.invntryOptnList[0].optnNm2}">
<span class="productDetailInfo__additionalSelect__category"><c:out value="${resultMap.optnList.invntryOptnList[0].optnNm2}"/> </span>
<div class="select-box-addCart">
<select id="selectAddCartInvntryOptn2" name="selectAddCartInvntryOptn">
<option value="" disabled selected><c:out value="선택"/></option>
</select>
</div>
</c:if>
</div>
<div class="productDetailInfo__additionalSelect__item">
<c:if test="${not empty resultMap.optnList.invntryOptnList[0].optnNm3}">
<span class="productDetailInfo__additionalSelect__category"><c:out value="${resultMap.optnList.invntryOptnList[0].optnNm3}"/> </span>
<div class="select-box-addCart">
<select id="selectAddCartInvntryOptn3" name="selectAddCartInvntryOptn">
<option value="" disabled selected><c:out value="선택"/></option>
</select>
</div>
</c:if>
</div>
<div class="productDetailInfo__additionalSelect__item">
<c:if test="${not empty resultMap.optnList.invntryOptnList[0].optnNm4}">
<span class="productDetailInfo__additionalSelect__category"><c:out value="${resultMap.optnList.invntryOptnList[0].optnNm4}"/> </span>
<div class="select-box-addCart">
<select id="selectAddCartInvntryOptn4" name="selectAddCartInvntryOptn">
<option value="" disabled selected><c:out value="선택"/></option>
</select>
</div>
</c:if>
</div>
</div>
</div>
</c:if>
<c:if test="${not empty resultMap.optnList.addedOptnList}">
<div class="productDetailInfo__additionalSelect" id="cartMoreItemsSelect">
<span class="productDetailInfo__additionalSelect__title">추가구성</span>
<div class="productDetailInfo__additionalSelect__inner">
<c:forEach var="goodsOpt03" items="${resultMap.optnList.addedOptnList}" varStatus="optList03">
<c:if test="${not empty goodsOpt03.optnNm1}">
<c:if test="${resultMap.optnList.addedOptnList[optList03.index-1].optnNm1 ne goodsOpt03.optnNm1}">
<div class="productDetailInfo__additionalSelect__item">
<span class="productDetailInfo__additionalSelect__category"><c:out value="${goodsOpt03.optnNm1}"/> </span>
<input type="hidden" name="productDetailInfo__additionalSelect__otpnEssntlAt__relate__added" <c:if test="${goodsOpt03.optnEssntlAt eq 'Y'}"> value="Y"</c:if>/>
</c:if>
<c:if test="${resultMap.optnList.addedOptnList[optList03.index-1].optnNm1 ne goodsOpt03.optnNm1}">
<div class="select-box-addCart">
<select title="${goodsOpt03.OptnInfo}" name="selectRelateAddedOptn">
<option value="" disabled selected><c:out value="선택"/></option>
<c:forEach var="goodsOptVal03" items="${resultMap.optnList.addedOptnList}" varStatus="optVal03">
<c:if test="${goodsOptVal03.optnNm1 eq goodsOpt03.optnNm1}">
<c:if test="${goodsOptVal03.optnExpsrAt eq 'Y'}">
<c:if test="${goodsOptVal03.invntrySldoutExpsrAt eq 'Y'}">
<option value="${goodsOptVal03.slepric}|${goodsOptVal03.goodsOptnInnb}|${goodsOptVal03.optnInfo}|${goodsOptVal03.optnTy} " <c:if test="${goodsOptVal03.disableAt eq 'Y'}"> disabled</c:if> ><c:out value="${goodsOptVal03.optnVal1}"/> (+ <fmt:formatNumber value="${goodsOptVal03.slepric}"/>) <c:if test="${goodsOptVal03.disableAt eq 'Y'}"> <c:out value="(품절)"/> </c:if> </option>
</c:if>
</c:if>
</c:if>
</c:forEach>
</select>
</div>
</div>
</c:if>
</c:if>
</c:forEach>
</div>
</div>
</c:if>
<%-- <div class="productDetailInfo__confirmOption">--%>
<%-- <button class="btn md outline" id="cartMoreItemsButton">입력한 정보 선택</button>--%>
<%-- </div>--%>
<%--TODO :: 입력옵션 --%>
<%-- <div class="productDetailInfo__option">--%>
<%-- <span class="productDetailInfo__option__title">상품정보 입력</span>--%>
<%-- <div class="productDetailInfo__additionalSelect__inner">--%>
<%-- <div class="productDetailInfo__additionalSelect__item">--%>
<%-- <span class="productDetailInfo__additionalSelect__category">각인 옵션</span>--%>
<%-- <input id="cartAddTextInput" class="input-text full" type="text" title="해당 인풋에 대한 설명"--%>
<%-- placeholder="각인 문구를 입력해주세요" value="">--%>
<%-- <button id="cartAddTextBtn" class="btn outline">저장</button>--%>
<%-- </div>--%>
<%-- </div>--%>
<%-- </div>--%>
<div id="cartCountContainer">
</div>
</div>
</c:when>
<c:otherwise>
<%--옵션 없을 경우 빈값--%>
</c:otherwise>
</c:choose>
</c:if>
<div class="product-total__container">
<span class="product-total__text">총 상품금액</span>
<span class="product-total__price">
<span class="product-total__price__totalPriceNum">0</span>
<span class="won">원</span>
</span>
</div>
<c:choose>
<c:when test="${resultMap.goodsDtl.buttonRplcWordsUseAt ne 'Y'}">
<div class="product-btn-container">
<button class="btn theme large addCart">장바구니 담기</button>
</div>
</c:when>
<c:otherwise>
<div class="product-btn-container">
<a href="${resultMap.goodsDtl.pcButtonRplcLink}"
<c:if test="${resultMap.goodsDtl.buttonRplcLinkBrwsrDvCd eq '01'}"> target="_blank" </c:if> >
<span> <c:out value="${resultMap.goodsDtl.buttonRplcWords}"/> </span>
</a>
</div>
</c:otherwise>
</c:choose>
</div>

View File

@@ -0,0 +1,125 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : IndvdlSetleR.jsp
Description : 마이페이지 개인결제
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-04-11 김혜인 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<%-- 공통 include --%>
<jsp:include page="/WEB-INF/views/comm/Include.jsp"/>
<script>
$(document).ready(function() {
fn_init();
fn_event();
});
/* ********************************************************
* 초기 설정
**********************************************************/
const fn_init = function() {
fn_get_indvdi_setle_list(1);
}
/* ********************************************************
* 이벤트 설정
**********************************************************/
const fn_event = function() {
}
/* ********************************************************
* function
**********************************************************/
/* 개인결제 목록 조회 */
const fn_get_indvdi_setle_list = function(index) {
if (!fn_is_empty(index)) {
$('#pageIndex').val(index);
}
let data = $('#condForm').serialize();
$.ajax({
type : 'post',
url : '<c:url value="/sopmal/mpage/ordr/selectIndvdlSetleInqireAjax"/>',
data : data,
success : function(html) {
$('#pageDiv').html(html);
},
error: function(data) {
let message = JSON.parse(JSON.parse(request.responseText).resBody.message);
alert(message.errorMsg);
}
});
}
/* 개인결제 등록 화면 이동 */
const fn_go_indvdl_setle_form = function(sopmalCd, ordrInnb, mbrInnb, mbrId, mbrDvCd) {
const form = $('<form></form>');
$(form).append($('<input/>', {type:'hidden', name:'sopmalCd', value:sopmalCd}));
$(form).append($('<input/>', {type:'hidden', name:'ordrInnb', value:ordrInnb}));
$(form).append($('<input/>', {type:'hidden', name:'mbrInnb', value:mbrInnb}));
$(form).append($('<input/>', {type:'hidden', name:'mbrId', value:mbrId}));
$(form).append($('<input/>', {type:'hidden', name:'mbrDvCd', value:mbrDvCd}));
$(form).attr('method', 'post');
$(form).attr('action', '<c:url value="/sopmal/ordr/selectIndvdlSetleForm"/>');
$(form).appendTo('body');
$(form).submit();
}
</script>
</head>
<body>
<%-- 공통 Header --%>
<jsp:include page="/WEB-INF/views/comm/Header.jsp"/>
<!-- 메인 컨텐츠 영역 -->
<main>
<div class="sub-wrapper">
<div class="sub-content">
<div class="sub-rl">
<%-- 마이페이지 Left 영역 --%>
<jsp:include page="/WEB-INF/views/comm/mpage/MypageLeft.jsp"/>
<div class="sub-right-content">
<%-- 마이페이지 Right 영역 --%>
<jsp:include page="/WEB-INF/views/comm/mpage/MypageRight.jsp"/>
<div class="sub-right-content__section">
<h3 class="sub-right-content__title">개인결제</h3>
<form id="condForm">
<input type="hidden" name="pageIndex" id="pageIndex" value="1">
<input type="hidden" name="pageUnit" id="pageUnit" value="4"/>
</form>
<div id="pageDiv"></div>
</div>
</div>
</div>
</div>
</div>
</main>
<%-- 공통 Footer --%>
<jsp:include page="/WEB-INF/views/comm/Footer.jsp"/>
</body>
</html>

View File

@@ -0,0 +1,43 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<div class="personalPayment">
<c:choose>
<c:when test="${not empty data.resultList}">
<c:forEach var="setle" items="${data.resultList}">
<div class="product-unit">
<div class="product-unit-image">
<a href="javascript:void(0);" onclick="fn_go_indvdl_setle_form('<c:out value="${setle.sopmalCd}"/>', '<c:out value="${setle.ordrInnb}"/>', '<c:out value="${setle.mbrInnb}"/>', '<c:out value="${setle.mbrId}"/>', '<c:out value="${setle.mbrDvCd}"/>');">
<img src="<c:url value="/pc/images/개인결제이미지.png"/>" alt="개인결제">
</a>
</div>
<div class="product-unit-info">
<div class="product-unit-info__inner">
<span class="product-unit-price__current"><c:out value="${setle.indvdlSetleSj}"/></span>
<div class="product-unit-price">
<div class="product-unit-price__price">
<span class="product-unit-price__current"><c:out value="${setle.setleAmt}"/>원</span>
</div>
</div>
<div class="personalPayment__period"><c:out value="${setle.indvdlSetleValidDe}"/>까지</div>
</div>
</div>
</div>
</c:forEach>
</c:when>
<c:otherwise>
<div class="personalPayment__no-result">
<img src="/pc/images/icon__no-result.png" alt="">
<p class="personalPayment__no-result-text">개인결제내역이 없습니다.</p>
</div>
</c:otherwise>
</c:choose>
</div>
<div class="pagination__container" style="margin-top: 20px">
<ui:pagination paginationInfo="${data.paginationInfo}" type="image" jsFunction="fn_get_indvdi_setle_list"/>
</div>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,794 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : WslistInqireRForm.jsp
Description : 마이페이지 위시리스트
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-02-27 추지훈 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<%-- 공통 include --%>
<jsp:include page="/WEB-INF/views/comm/Include.jsp"/>
</head>
<script>
$(document).ready(function() {
fn_start_display();
});
/******************************************************************
* 시작 화면 제어
******************************************************************/
const fn_start_display = function() {
}
/*********************************************************************
* 반품 주소 변경
* *******************************************************************/
const fn_update_dlvy_info = function () {
const data = $('#returnDlvyUpdtForm').serializeArray();
if (confirm('반품 배송지 정보를 <spring:message code="confirm.common.update"/>')) {
$.ajax({
type: 'POST',
url: '<c:url value="/sopmal/nmbr/ordr/updateRtngudCanclRefndUpdt"/>',
data: data,
success: function (result) {
alert('<spring:message code="success.common.update"/>');
location.reload();
}
});
}
}
/*********************************************************************
* 환불 계좌 정보 변경
* *******************************************************************/
const fn_update_acnt_info = function () {
const data = $('#refundAcntUpdtForm').serialize();
if (confirm('환불 계좌 정보를 <spring:message code="confirm.common.update"/>')) {
$.ajax({
type: 'POST',
url: '<c:url value="/sopmal/nmbr/ordr/updateRtngudCanclRefndUpdt"/>',
data: data,
success: function (result) {
alert('<spring:message code="success.common.update"/>');
location.reload();
}
});
}
}
/* ********************************************************
* 우편번호 찾기
******************************************************** */
const fn_set_postcode = function(data) {
$('#postcode').val(data.postcode);
$('#adresDvCd').val(data.addressType);
if (data.addressType == '02') {
$('#address').val(data.jibunAddress);
} else if (data.addressType == '01') {
$('#address').val(data.roadAddress);
}
}
/**
* 반품 상품 QNA 문의 팝업
* @param goodsInnb
*/
const fn_goods_qna_pop_regist = (goodsInnb) => {
$.ajax({
type: "post",
data: {
authDv: "REGIST",
reqUrl: "modal",
bbsId: "goods_qna",
goodsInnb: goodsInnb,
listAt: "list",
},
url: "/sopmal/csc/selectBbscttAuth",
success: function (data) {
/*모달중복제거*/
fn_close_modal("qna-pop-regist");
fn_close_modal("qna-update-pop");
$("#modalDiv").html(data);
$("#qna-pop-regist").modal();
}
});
}
</script>
<body>
<%-- 공통 Header --%>
<jsp:include page="/WEB-INF/views/comm/Header.jsp"/>
<!-- 메인 컨텐츠 영역 -->
<main>
<div class="sub-wrapper">
<div class="sub-content">
<div class="sub-rl">
<spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/>
<%-- 마이페이지 Left 영역 --%>
<div class="sub-right-content">
<div class="sub-right-content__section">
<h3 class="sub-right-content__title"><c:if test = "${not empty resultMap.result.refnd.returnProcsSttusCd}">반품/</c:if>환불 내역</h3>
<div class="sub-right-content__section">
<h3 class="orderDetail__title"><c:out value="${ resultMap.result.refnd.registDt }"/>
<span class="orderDetail__titleNum">
<c:choose>
<c:when test = "${not empty resultMap.result.refnd.returnProcsSttusCd}">
반품번호
</c:when>
<c:otherwise>
환불번호
</c:otherwise>
</c:choose>
<c:out value="${ resultMap.result.refnd.orderRefundInnb }"/>
</span>
</h3>
<div class="cartOrder__list">
<div class="table-wrapper">
<table class="table vertical">
<caption>해당 테이블에 대한 설명</caption>
<!-- 각 열 width 설정 -->
<colgroup>
<col style="width: auto;">
<col style="width: 40px;">
<col style="width: 10%;">
<col style="width: 10%;">
<col style="width: 10%;">
<col style="width: 10%;">
<col style="width: 10%;">
<col style="width: 7%;">
</colgroup>
<thead>
<tr>
<th>상품명</th>
<th>수량</th>
<th>상품금액</th>
<th>할인금액</th>
<th>할인적용금액</th>
<th>환불신청수량</th>
<th>배송비</th>
<th>문의</th>
</tr>
</thead>
<tbody>
<c:set var="rePreOrdrDlvyInnb" value="0"/>
<c:set var="reDlvyCnt" value="1"/>
<c:choose>
<c:when test="${ not empty resultMap.result.itemsList }">
<c:forEach var="refundList" items="${ resultMap.result.itemsList }" varStatus="status">
<tr>
<td>
<div class="cartItem">
<div class="cartItem__image">
<%--
<a href="">
<img src="<c:out value="${ refundList.img }"/>" alt="상품이미지">
</a>
--%>
<a class="orderList__image">
<img src="<c:out value="${ cdnurl }"/><c:out value="${ refundList.img }"/>" onerror="this.src='/pc/images/image_placeholder.png'" alt="<c:out value="${refundList.goodsNm}"/>">
</a>
</div>
<div class="cartItem__productInfo">
<a class="cartItem__productTitle">
<c:out value="${ refundList.goodsNm }"/>
</a>
<c:if test="${ not empty refundList.optnNm }">
<span class="cartItem__productOption">
<span class="option-badge">옵션</span>
<c:out value="${ refundList.optnNm }"/>
</span>
</c:if>
(<c:out value="${ refundList.dlvylcZip }"/>)
<c:choose>
<c:when test="${ refundList.dlvylcAdresDvCd eq '01' }">
<c:out value="${ refundList.dlvylcRnmAdres }"/>
</c:when>
<c:when test="${ refundList.dlvylcAdresDvCd eq '02' }">
<c:out value="${ refundList.dlvylcLnbAdres }"/>
</c:when>
</c:choose>
<c:out value="${ refundList.dlvylAdresDtl }"/>
</div>
</div>
</td>
<td>
<span><c:out value="${ refundList.ordrQy }"/></span>
</td>
<td>
<span class="cartItem__normalPrice"><span
class=" comma"><c:out value="${ refundList.slepric }"/></span><span
class="priceUnit">원</span>
</span>
</td>
<td>
<span class="cartItem__discountPrice"><span
class="cartItem__discountMinus">(-)</span><span
class="comma"><c:out value="${ refundList.dscntAmt }"/></span><span
class="priceUnit">원</span>
</span>
</td>
<td>
<span class="cartItem__afterPrice"><span
class="comma"><c:out value="${ refundList.applyDscntAmt }"/></span>
<span class="priceUnit">원</span>
</span>
</td>
<td>
<span><c:out value="${ refundList.refundQy }"/></span>
</td>
<c:choose>
<c:when test="${ refundList.ordrTyCd eq '04' || refundList.ordrTyCd eq '05' }">
<c:set var="reRowspanCnt" value="0"/>
<c:forEach var="tmpGoods" items="${resultMap.result.itemsList}">
<c:set var="reRowspanCnt" value="${refundList.ordrDlvyInnb == tmpGoods.ordrDlvyInnb ? reRowspanCnt + 1 : reRowspanCnt}"/>
</c:forEach>
<c:if test="${rePreOrdrDlvyInnb != refundList.ordrDlvyInnb}">
<td class="center" rowspan="${reRowspanCnt}">
<span class="fs-13 fw-400">${reDlvyCnt += ' 번째 배송지'}</span><br>
<span class="fs-13 fw-400">${refundList.dlvyMthNm}</span><br>
<c:choose>
<c:when test="${0 == refundList.dlvyAmt}">
<span class="fs-13 fw-400">무료</span>
</c:when>
<c:otherwise>
<span class="fs-13 fw-400"><fmt:formatNumber value="${refundList.dlvyAmt}" pattern="#,###"/></span>
</c:otherwise>
</c:choose>
</td>
<c:set var="rePreOrdrDlvyInnb" value="${refundList.ordrDlvyInnb}"/>
<c:set var="reDlvyCnt" value="${reDlvyCnt + 1}"/>
</c:if>
</c:when>
<c:otherwise>
<td class="center">
<span class="fs-13 fw-400">${refundList.dlvyMthNm}</span><br>
<c:choose>
<c:when test="${0 == refundList.dlvyAmt}">
<span class="fs-13 fw-400">무료</span>
</c:when>
<c:otherwise>
<span class="fs-13 fw-400"><fmt:formatNumber value="${refundList.dlvyAmt}" pattern="#,###"/></span>
</c:otherwise>
</c:choose>
</td>
</c:otherwise>
</c:choose>
<td>
<button type="button" class="btn sm gray2 sub-right-content__innerTitleBtn" onclick="fn_goods_qna_pop_regist('<c:out value="${ refundList.goodsInnb }"/>')">문의</button>
</td>
<%---
<td>
<span class="cartItem__shippingFee"><span
class=" comma">3,000</span><span
class="priceUnit">원</span>
</span>
</td>
--%>
</tr>
</c:forEach>
</c:when>
<c:otherwise>
<tr class="row-no-data">
<td colspan="100%" class="text-center">조회된 데이터가 없습니다.</td>
</tr>
</c:otherwise>
</c:choose>
</tbody>
<tfoot class="refundSum">
</tfoot>
</table>
</div>
</div>
</div>
</div>
<div class="sub-right-content__section">
<h3 class="sub-right-content__innerTitle"><c:if test = "${not empty resultMap.result.refnd.returnProcsSttusCd}">반품/</c:if>환불 처리</h3>
<div class="table-wrapper orderDetail__table">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<!-- 각 열 width 설정 -->
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th><c:if test = "${not empty resultMap.result.refnd.returnProcsSttusCd}">반품/</c:if>환불 상태</th>
<td>
<c:choose>
<c:when test="${ not empty resultMap.result.refnd.returnProcsSttusCd }">
<c:out value="${ resultMap.result.refnd.returnProcsSttusCdNm }"/>
</c:when>
<c:otherwise>
<c:out value="${ resultMap.result.refnd.refundProcsSttusCdNm }"/>
</c:otherwise>
</c:choose>
</td>
</tr>
<tr>
<th><c:if test = "${not empty resultMap.result.refnd.returnProcsSttusCd}">반품/</c:if>환불 번호</th>
<td><c:out value="${ resultMap.result.refnd.orderRefundInnb }"/></td>
</tr>
<tr>
<th>환불 종류</th>
<td><c:out value="${ resultMap.result.refnd.refundTyCdNm }"/></td>
</tr>
<c:if test = "${not empty resultMap.result.refnd.returnProcsSttusCd}">
<tr>
<th>반품 접수일</th>
<td><c:out value="${ resultMap.result.refnd.returnRceptDt }"/></td>
</tr>
</c:if>
<tr>
<th>환불 접수일</th>
<td><c:out value="${ resultMap.result.refnd.refundReqstDt }"/></td>
</tr>
<c:if test = "${not empty resultMap.result.refnd.returnComptDt}">
<tr>
<th>반품 완료일</th>
<td><c:out value="${ resultMap.result.refnd.returnComptDt }"/></td>
</tr>
</c:if>
<c:if test = "${not empty resultMap.result.refnd.refundComptDt}">
<tr>
<th>환불 완료일</th>
<td><c:out value="${ resultMap.result.refnd.refundComptDt }"/></td>
</tr>
</c:if>
</tbody>
</table>
</div>
</div>
<c:if test="${ not empty resultMap.result.refnd.returnRceptDt }">
<div class="sub-right-content__section">
<h3 class="sub-right-content__innerTitle">반품정보
<c:if test="${ resultMap.result.refnd.returnProcsSttusCd eq '01' }">
<button id="returnInfoTrigger" class="btn sm gray2 sub-right-content__innerTitleBtn" onclick="fn_update_dlvy_info();">변경</button>
</c:if>
</h3>
<form id="returnDlvyUpdtForm">
<input type="hidden" name="orderReInnb" value="<c:out value="${ resultMap.result.refnd.orderRefundInnb }"/>"/>
<div id="returnInfoContent01" class="table-wrapper orderDetail__table">
<c:choose>
<c:when test="${ resultMap.result.refnd.returnProcsSttusCd eq '01' }">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<!-- 각 열 width 설정 -->
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th>
<span class="orderDetail__thText">회수방법</span>
</th>
<td>
<div class="select-box">
<select class="lg" title="해당 셀렉트에 대한 설명" name="returnMthCd">
<option value="" disabled selected>선택</option>
<c:forEach var="cdList" items="${ resultMap.returnMthCdList }" varStatus="status">
<c:choose>
<c:when test="${ resultMap.result.refnd.returnMthCd eq cdList.cd }">
<option value="<c:out value="${ cdList.cd }"/>" selected="selected"><c:out value="${ cdList.cdNm }"/></option>
</c:when>
<c:otherwise>
<option value="<c:out value="${ cdList.cd }"/>"><c:out value="${ cdList.cdNm }"/></option>
</c:otherwise>
</c:choose>
</c:forEach>
</select>
</div>
</td>
</tr>
<tr>
<th>
<span class="editAccount__title">주소</span>
</th>
<td>
<div class="inputAddress">
<div class="inputAddress__postalCode">
<input class="input-text" type="text" id="postcode" name="zip" title="우편번호" value="<c:out value="${ resultMap.result.refnd.senderZip }"/>" placeholder="우편번호" readonly>
<button type="button" onclick="fn_select_postcode(fn_set_postcode); return false;" class="btn md theme outline">
우편번호 찾기
</button>
</div>
<input type="hidden" id="adresDvCd" name="adresDvCd" value="<c:out value="${ resultMap.result.refnd.senderAdresDvCd }"/>"/>
<input class="input-text full" type="text" id="address" name="lnbOrRnmAdres"
<c:choose>
<c:when test="${ resultMap.result.refnd.senderAdresDvCd eq '01' }">
value="<c:out value="${ resultMap.result.refnd.senderRnmAdres }"/>"
</c:when>
<c:when test="${ resultMap.result.refnd.senderAdresDvCd eq '02' }">
value="<c:out value="${ resultMap.result.refnd.senderLnbAdres }"/>"
</c:when>
</c:choose>
readonly title="지번 주소" placeholder="지번 주소">
<input class="input-text full" type="text" id="detailAddress" name="dtlAdres" value="<c:out value="${ resultMap.result.refnd.senderAdresDtl }"/>" title="상세 주소" placeholder="상세 주소">
</div>
</td>
</tr>
<tr>
<th>
<span class="orderDetail__thText">휴대폰 번호</span>
</th>
<td>
<input class="input-text" type="text" title="해당 인풋에 대한 설명" value="<c:out value="${ resultMap.result.refnd.returnCstmrMbtlnb }"/>" name="returnCstmrMbtlnb" oninput="fn_fmt_telno($(this));" maxlength="13"
placeholder="">
</td>
</tr>
<tr>
<th>
<span class="orderDetail__thText">반품 사유</span>
</th>
<td>
<div class="select-box">
<select class="lg" title="해당 셀렉트에 대한 설명" name="returnResnCd">
<c:forEach var="returnResn" items="${resultMap.returnResnList}">
<c:choose>
<c:when test="${ returnResn.cd eq resultMap.result.refnd.returnResnCd }">
<option value="<c:out value="${returnResn.cd}"/>" selected="selected"><c:out value="${returnResn.cdNm}"/></option>
</c:when>
<c:otherwise>
<option value="<c:out value="${returnResn.cd}"/>"><c:out value="${returnResn.cdNm}"/></option>
</c:otherwise>
</c:choose>
</c:forEach>
</select>
</div>
</td>
</tr>
<tr>
<th>
<span class="orderDetail__thText">상세 사유</span>
</th>
<td>
<textarea class="textarea" rows="6" title="해당 텍스트 에어리어에 대한 설명" name="returnResnCn"
placeholder="최소 10자 이상으로 입력해 주세요."><c:out value="${ resultMap.result.refnd.returnResnCn }"/></textarea>
</td>
</tr>
</tbody>
</table>
</c:when>
<c:otherwise>
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<!-- 각 열 width 설정 -->
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th>
<span class="orderDetail__thText">회수방법</span>
</th>
<td>
<c:out value="${ resultMap.result.refnd.returnMthCdNm }"/>
</td>
</tr>
<tr>
<th>
<span class="orderDetail__thText">주소</span>
</th>
<td>
<c:if test="${ not empty resultMap.result.refnd.senderZip }">
(<c:out value="${ resultMap.result.refnd.senderZip }"/>)
</c:if>
<c:choose>
<c:when test="${ resultMap.result.refnd.senderAdresDvCd eq '01'}">
<c:out value="${ resultMap.result.refnd.senderRnmAdres }"/>
</c:when>
<c:when test="${ resultMap.result.refnd.senderAdresDvCd eq '02'}">
<c:out value="${ resultMap.result.refnd.senderLnbAdres }"/>
</c:when>
</c:choose>
<c:out value="${ resultMap.result.refnd.senderAdresDtl }"/>
</td>
</tr>
<tr>
<th>
<span class="orderDetail__thText">휴대폰 번호</span>
</th>
<td>
<c:out value="${ resultMap.result.refnd.returnCstmrMbtlnb }"/>
</td>
</tr>
<tr>
<th>
<span class="orderDetail__thText">반품 사유</span>
</th>
<td>
<c:out value="${ resultMap.result.refnd.returnResnCdNm }"/>
</td>
</tr>
<tr>
<th>
<span class="orderDetail__thText">상세 사유</span>
</th>
<td>
<c:out value="${ resultMap.result.refnd.returnResnCn }"/>
</td>
</tr>
<tr>
<th>
<span class="orderDetail__thText">배송비 입금</span>
</th>
<td>
<%--우리은행 1005-102-768159<br>(예금주: ㈜에스엘바이오텍)--%>
<c:if test="${ not empty resultMap.result.refnd.returnDlvyRcpmnyAcntnb }">
<c:out value="${ resultMap.result.refnd.returnDlvyRcpmnyAcntnb }"/><br>(예금주: <c:out value="${ resultMap.result.refnd.returnDlvyRcpmnyNm }"/>)
</c:if>
</td>
</tr>
</tbody>
</table>
</c:otherwise>
</c:choose>
</div>
</form>
</div>
</c:if>
<div class="sub-right-content__section">
<h3 class="sub-right-content__innerTitle">환불정보
<c:if test="${ resultMap.result.refnd.refundProcsSttusCd ne '03' }">
<button id="refundInfoTrigger" class="btn sm gray2 sub-right-content__innerTitleBtn" onclick="fn_update_acnt_info();">변경</button>
</c:if>
</h3>
<form id="refundAcntUpdtForm">
<input type="hidden" name="orderReInnb" value="<c:out value="${ resultMap.result.refnd.orderRefundInnb }"/>"/>
<div id="refundInfoContent01" class="table-wrapper orderDetail__table">
<c:choose>
<c:when test="${ resultMap.result.refnd.refundProcsSttusCd eq '03' }">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<!-- 각 열 width 설정 -->
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th>
<span class="orderDetail__thText">환불은행</span>
</th>
<td>
<c:out value="${ resultMap.result.refnd.refundAcntBnnkNm }"/>
</td>
</tr>
<tr>
<th>
<span class="orderDetail__thText">예금주</span>
</th>
<td>
<c:out value="${ resultMap.result.refnd.refundAcntDpstrNm }"/>
</td>
</tr>
<tr>
<th>
<span class="orderDetail__thText">계좌번호</span>
</th>
<td>
<c:out value="${ resultMap.result.refnd.refundAcntnb }"/>
</td>
</tr>
<tr>
<th>
<span class="orderDetail__thText">취소 사유</span>
</th>
<td>
<c:out value="${ resultMap.result.refnd.returnResnCdNm }"/>
</td>
</tr>
<tr>
<th>
<span class="orderDetail__thText">상세 사유</span>
</th>
<td>
<c:out value="${ resultMap.result.refnd.returnResnCn }"/>
</td>
</tr>
</tbody>
</table>
</c:when>
<c:otherwise>
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<!-- 각 열 width 설정 -->
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th>
<span class="orderDetail__thText">환불은행</span>
</th>
<td>
<%--
<input class="input-text" type="text" title="환불은행" value="<c:out value="${ resultMap.result.refnd.refundAcntBnnkNm }"/>" name="refundAcntBnnkNm"
placeholder="환불은행">
--%>
<div class="select-box">
<select class="sm" title="해당 셀렉트에 대한 설명" name="refundAcntBnnkNm" id="refundAcntBnnkNm">
<c:forEach var="cdList" items="${ resultMap.bankCdList }" varStatus="status">
<c:choose>
<c:when test="${ cdList.cd eq resultMap.result.refnd.refundAcntBnnkCd }">
<option value="<c:out value="${ cdList.cd }"/>,<c:out value="${ cdList.cdNm }"/>" selected="selected" ><c:out value="${ cdList.cdNm }"/></option>
</c:when>
<c:otherwise>
<option value="<c:out value="${ cdList.cd }"/>,<c:out value="${ cdList.cdNm }"/>" ><c:out value="${ cdList.cdNm }"/></option>
</c:otherwise>
</c:choose>
</c:forEach>
</select>
</div>
</td>
</tr>
<tr>
<th>
<span class="orderDetail__thText">예금주</span>
</th>
<td>
<input class="input-text" type="text" title="예금주명" value="<c:out value="${ resultMap.result.refnd.refundAcntDpstrNm }"/>" name="refundAcntDpstrNm"
placeholder="예금주명">
</td>
</tr>
<tr>
<th>
<span class="orderDetail__thText">계좌번호</span>
</th>
<td><!-- TODO : 암호화 되어있어서 풀어줘야함 -->
<input class="input-text" type="text" title="계좌번호" value="<c:out value="${ resultMap.result.refnd.refundAcntnb }"/>" name="refundAcntnb"
placeholder="계좌번호 TODO : 암호화되어있는데 '-' 포함 or 숫자만 확인 필요">
</td>
</tr>
<tr>
<th>
<span class="orderDetail__thText">환불사유내용</span>
</th>
<td>
<c:out value="${ resultMap.result.refnd.refundResnCn }"/>
</td>
</tr>
<%--
<tr>
<th>
<span class="orderDetail__thText">취소 사유</span>
</th>
<td>
<div class="select-box">
<select class="lg" title="해당 셀렉트에 대한 설명">
<option value="" disabled selected>선택</option>
<option value="">고객 단순 변심</option>
</select>
</div>
</td>
</tr>
<tr>
<th>
<span class="orderDetail__thText">상세 사유</span>
</th>
<td>
<textarea class="textarea" rows="6" title="해당 텍스트 에어리어에 대한 설명" name="refundResnCn"
placeholder="최소 10자 이상으로 입력해 주세요."><c:out value="${ resultMap.result.refnd.refundResnCn }"/></textarea>
</td>
</tr>
--%>
</tbody>
</table>
</c:otherwise>
</c:choose>
</div>
</form>
</div>
<div class="sub-right-content__section">
<h3 class="sub-right-content__innerTitle">환불 금액
</h3>
<div class="priceSum">
<c:set var="reTotAmt" value="${ resultMap.result.totRefundDscntAmt }"/>
<div class="priceSum__inner">
<div class="priceSum__item">
<span class="priceSum__itemTitle"><c:out value="${ reTotAmt.setleTyCdNm }"/></span>
<span class="priceSum__itemPrice">
<span class="comma priceSum__itemNum"><c:out value="${ reTotAmt.refundAmtQySum }"/></span>
<span class="priceUnit">원</span>
</span>
</div>
<div class="priceSum__equals">
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28"
viewBox="0 0 28 28" fill="none">
<path d="M3.5 17.5H24.5V19.8333H3.5V17.5Z" fill="black" />
<path d="M3.5 8.16699H24.5V10.5003H3.5V8.16699Z" fill="black" />
</svg>
</div>
<div class="priceSum__total">
<span class="priceSum__totalTitle">환불 금액</span>
<div class="priceSum__totalPrice">
<span class="comma"><c:out value="${ reTotAmt.rlRefundAmt }"/></span>
<span class="priceUnit">원</span>
</div>
<div class="priceSum__totalDetail">
(상품금액 <span class="comma"><c:out value="${ reTotAmt.refundAmtQySum }"/></span>원 + 배송비 <span class="comma"><c:out value="${ reTotAmt.totReturnDlvyAmt }"/></span>원)
</div>
</div>
</div>
</div>
</div>
<!--
<div class="sub-bottom-btn-container">
<button type="button" class="btn xl outline theme" onclick="fn_order_refund_list();">반품 / 환불 목록</button>
</div>
-->
</div>
</div>
</div>
</div>
</main>
<form id="listForm">
<input type="hidden" id="orderRefundInnb" name ="orderRefundInnb"/>
<input type="hidden" id="pageIndex" name="pageIndex" value="${ paramVO.pageIndex }"/>
<input type="hidden" id="recordCountPerPage" name="recordCountPerPage" value="${ paramVO.recordCountPerPage }"/>
<input type="hidden" id="pageUnit" name="pageUnit" value="${ paramVO.pageUnit }"/>
</form>
<%-- 공통 Footer --%>
<jsp:include page="/WEB-INF/views/comm/Footer.jsp"/>
<!-- 모달 -->
<div id="modalDiv">
</div>
</body>
</html>

View File

@@ -0,0 +1,91 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<c:choose>
<c:when test="${not empty data.resultList}">
<c:forEach var="order" items="${data.resultList}" begin="0" end="4">
<div class="orderList__item">
<div class="orderList__item__inner">
<a href="<c:url value="/sopmal/goods/selectGoodsDtl?sopmalCd=${order.sopmalCd}&goodsInnb=${order.goodsInnb}"/>" class="orderList__image">
<spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/>
<img src="<c:out value="${ cdnurl }${order.goodsImageUrl}"/>" onerror="this.src='/pc/images/image_placeholder.png'" alt="<c:out value="${order.goodsNm}"/>">
</a>
<div class="orderList__description">
<div class="orderList__description__first">
<div class="orderList__item__top">
<a href="javascript:void(0);" onclick="fn_go_ordr_dtl('<c:out value="${order.sopmalCd}"/>', '<c:out value="${order.ordrInnb}"/>');" class="orderList__orderNum"><c:out value="${order.ordrInnb}"/></a>
<span class="orderList__dot">·</span>
<span class="orderList__date"><c:out value="${order.ordrDt}"/> 주문</span>
</div>
<a href="javascript:void(0);" onclick="fn_go_ordr_dtl('<c:out value="${order.sopmalCd}"/>', '<c:out value="${order.ordrInnb}"/>');" class="orderList__productTitle"><c:out value="${order.goodsNm}"/></a>
<%--<span class="orderList__option"><c:out value="${order.optnNm}"/></span>--%>
<span class="cartItem__productOption"><span class="option-badge">옵션</span> <c:out value="${order.optnNm}"/></span>
<c:if test="${not empty order.inputOptnText}">
<span class="orderList__option"><c:out value="${order.inputOptnText}"/></span>
</c:if>
</div>
<div class="orderList__description__second">
<span class="orderList__price"><span class="comma"><fmt:formatNumber value="${order.setleAmt}" pattern="#,###"/></span>원</span>
</div>
<div class="orderList__description__third">
<span class="orderList__mileage"><span class="comma">예상적립 <fmt:formatNumber value="${order.mlgAmt}" pattern="#,###"/></span>원</span>
</div>
<div class="orderList__description__fourth">
<c:choose>
<c:when test="${order.ordrSttusCd > 14 && order.ordrSttusCd < 36}">
<span class="orderList__status"><c:out value="${order.ordrSttusNm}"/></span>
</c:when>
<c:when test="${order.ordrSttusCd > 39 && order.ordrSttusCd < 71}">
<span class="orderList__status delivery"><c:out value="${order.ordrSttusNm}"/></span>
</c:when>
<c:when test="${order.ordrSttusCd == 75}">
<span class="orderList__status complete"><c:out value="${order.ordrSttusNm}"/></span>
</c:when>
<c:when test="${order.ordrSttusCd > 84 && order.ordrSttusCd < 100}">
<span class="orderList__status cancel"><c:out value="${order.ordrSttusNm}"/></span>
</c:when>
</c:choose>
</div>
<%--
<div class="orderList__btnControls">
<c:choose>
<c:when test="${order.ordrSttusCd == 15}">
<a href="javascript:void(0);" onclick="fn_post_cancl_ordr('<c:out value="${order.sopmalCd}"/>', '<c:out value="${order.ordrInnb}"/>');" class="btn-ordr-sttus btn gray sm full">주문무효</a>
<a href="javascript:void(0);" onclick="fn_dlvylc_manage_pop('<c:out value="${order.sopmalCd}"/>', '<c:out value="${order.ordrInnb}"/>', '<c:out value="${order.ordrDlvyInnb}"/>', '<c:out value="${order.mbrInnb}"/>', '<c:out value="${order.mbrDvCd}"/>');" class="btn-ordr-sttus btn outline sm full">배송지 변경</a>
</c:when>
<c:when test="${order.ordrSttusCd > 24 && order.ordrSttusCd < 36}">
<a href="javascript:void(0);" onclick="fn_call_setle_cancl_pop('<c:out value="${order.sopmalCd}"/>', '<c:out value="${order.ordrInnb}"/>', '');" class="btn-ordr-sttus btn gray sm full">결제취소</a>
<a href="javascript:void(0);" onclick="fn_dlvylc_manage_pop('<c:out value="${order.sopmalCd}"/>', '<c:out value="${order.ordrInnb}"/>', '<c:out value="${order.ordrDlvyInnb}"/>', '<c:out value="${order.mbrInnb}"/>', '<c:out value="${order.mbrDvCd}"/>');" class="btn-ordr-sttus btn outline sm full">배송지 변경</a>
</c:when>
<c:when test="${order.ordrSttusCd > 39 && order.ordrSttusCd < 66}">
<a href="javascript:void(0);" onclick="fn_call_dlvy_sweettracker_pop('<c:out value="${order.ordrInnb}"/>');" class="btn outline sm full">배송조회</a>
<a href="javascript:void(0);" onclick="fn_call_refund_pop('<c:out value="${order.ordrInnb}"/>');" class="btn-ordr-sttus btn gray sm full">반품신청</a>
</c:when>
<c:when test="${order.ordrSttusCd > 69 && order.ordrSttusCd < 76}">
<a href="javascript:void(0);" onclick="fn_call_dlvy_sweettracker_pop('<c:out value="${order.ordrInnb}"/>');" class="btn outline sm full">배송조회</a>
<a href="javascript:void(0);" onclick="fn_call_refund_pop('<c:out value="${order.ordrInnb}"/>');" class="btn-ordr-sttus btn gray sm full">반품신청</a>
<a href="<c:url value="/sopmal/mpage/act/selectMyRvwInqireForm"/>" class="btn-ordr-sttus btn outline sm full">리뷰작성</a>
<a href="javascript:void(0);" onclick="fn_post_purchs_dcsn_by_ordr('<c:out value="${order.sopmalCd}"/>', '<c:out value="${order.ordrInnb}"/>');" class="btn-ordr-sttus btn theme sm full">구매확정111</a>
</c:when>
</c:choose>
</div>
--%>
</div>
</div>
<a class="sub-right-content__more" href="/sopmal/mpage/ordr/selectMbrOrdrListInqire">전체보기</a>
</div>
</c:forEach>
</c:when>
<c:otherwise>
<div class="orderList__no-result">
<img src="<c:url value="/pc/images/icon__no-result.png"/>" alt="">
<p class="orderList__no-result-text">주문내역이 없습니다.</p>
</div>
</c:otherwise>
</c:choose>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,120 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<c:choose>
<c:when test="${not empty data.resultList}">
<c:forEach var="order" items="${data.resultList}">
<div class="orderList__item">
<div class="orderList__item__inner">
<a href="<c:url value="/sopmal/goods/selectGoodsDtl?sopmalCd=${order.sopmalCd}&goodsInnb=${order.goodsInnb}"/>" class="orderList__image">
<spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/>
<img src="<c:out value="${ cdnurl }${order.goodsImageUrl}"/>" onerror="this.src='/pc/images/image_placeholder.png'" alt="<c:out value="${order.goodsNm}"/>">
</a>
<div class="orderList__description">
<div class="orderList__description__first">
<div class="orderList__item__top">
<a href="javascript:void(0);" onclick="fn_go_ordr_dtl('<c:out value="${order.sopmalCd}"/>', '<c:out value="${order.ordrInnb}"/>');" class="orderList__orderNum"><c:out value="${order.ordrInnb}"/></a>
<span class="orderList__dot">·</span>
<span class="orderList__date"><c:out value="${order.ordrDt}"/> <span class="orderList__dot">·</span> ${order.ordrTyCdNm}</span>
</div>
<a href="javascript:void(0);" onclick="fn_go_ordr_dtl('<c:out value="${order.sopmalCd}"/>', '<c:out value="${order.ordrInnb}"/>');" class="orderList__productTitle"><c:out value="${order.goodsNm}"/></a>
<%--<span class="orderList__option"><c:out value="${order.optnNm}"/></span>--%>
<span class="cartItem__productOption"><span class="option-badge">옵션</span> <c:out value="${order.optnNm}"/></span>
<c:if test="${not empty order.inputOptnText}">
<span class="orderList__option"><c:out value="${order.inputOptnText}"/></span>
</c:if>
</div>
<div class="orderList__description__second">
<span class="orderList__price"><span class="comma"><fmt:formatNumber value="${order.setleAmt}" pattern="#,###"/></span>원</span>
</div>
<div class="orderList__description__third">
<c:if test = "${!(order.ordrSttusCd > 84 && order.ordrSttusCd < 100)}">
<span class="orderList__mileage"><span class="comma">예상적립 <fmt:formatNumber value="${order.mlgAmt}" pattern="#,###"/></span>원</span>
</c:if>
</div>
<div class="orderList__description__fourth">
<c:choose>
<c:when test="${order.ordrSttusCd > 14 && order.ordrSttusCd < 36}">
<span class="orderList__status"><c:out value="${order.ordrSttusNm}"/></span>
</c:when>
<c:when test="${order.ordrSttusCd > 39 && order.ordrSttusCd < 71}">
<span class="orderList__status delivery"><c:out value="${order.ordrSttusNm}"/></span>
</c:when>
<c:when test="${order.ordrSttusCd == 75}">
<span class="orderList__status complete"><c:out value="${order.ordrSttusNm}"/></span>
</c:when>
</c:choose>
<c:if test="${ order.ordrTyCd == '04'}">
<br/>
<c:choose>
<c:when test="${order.giftSttusCd == '01' }">
<span class="orderList__status">(<c:out value="${order.giftSttusCdNm}"/>)</span>
</c:when>
<c:when test="${order.giftSttusCd == '02' }">
<span class="orderList__status delivery">(<c:out value="${order.giftSttusCdNm}"/>)</span>
</c:when>
<c:when test="${order.giftSttusCd == '03' }">
<span class="orderList__status cancel">(<c:out value="${order.giftSttusCdNm}"/>)</span>
</c:when>
<c:when test="${order.giftSttusCd == '04' }">
<span class="orderList__status cancel">(<c:out value="${order.giftSttusCdNm}"/>)</span>
</c:when>
</c:choose>
</c:if>
</div>
<div class="orderList__btnControls">
<c:choose>
<c:when test="${order.ordrSttusCd == 15}">
<a href="javascript:void(0);" onclick="fn_post_cancl_ordr('<c:out value="${order.sopmalCd}"/>', '<c:out value="${order.ordrInnb}"/>', '<c:out value="${order.ordrSttusCd}"/>');" class="btn-ordr-sttus btn gray sm full">주문취소</a>
<c:if test="${ order.ordrTyCd != '05' }">
<a href="javascript:void(0);" onclick="fn_dlvylc_manage_pop('<c:out value="${order.sopmalCd}"/>', '<c:out value="${order.ordrInnb}"/>', '<c:out value="${order.ordrDlvyInnb}"/>', '<c:out value="${order.mbrInnb}"/>', '<c:out value="${order.mbrDvCd}"/>');" class="btn-ordr-sttus btn outline sm full">배송지 변경</a>
</c:if>
</c:when>
<c:when test="${order.ordrSttusCd > 24 && order.ordrSttusCd < 34}">
<a href="javascript:void(0);" onclick="fn_call_setle_cancl_pop('<c:out value="${order.sopmalCd}"/>', '<c:out value="${order.ordrInnb}"/>', '', '<c:out value="${order.ordrRceptDt}"/>', '<c:out value="${order.ordrSttusCd}"/>');" class="btn-ordr-sttus btn gray sm full">결제취소</a>
<c:if test="${ order.ordrTyCd != '05' }">
<a href="javascript:void(0);" onclick="fn_dlvylc_manage_pop('<c:out value="${order.sopmalCd}"/>', '<c:out value="${order.ordrInnb}"/>', '<c:out value="${order.ordrDlvyInnb}"/>', '<c:out value="${order.mbrInnb}"/>', '<c:out value="${order.mbrDvCd}"/>');" class="btn-ordr-sttus btn outline sm full">배송지 변경</a>
</c:if>
</c:when>
<c:when test="${order.ordrSttusCd > 34 && order.ordrSttusCd < 55}">
<a href="javascript:void(0);" onclick="fn_call_dlvy_sweettracker_pop('<c:out value="${order.ordrInnb}"/>');" class="btn outline sm full">배송조회</a>
<a href="javascript:void(0);" onclick="fn_call_setle_cancl_pop('<c:out value="${order.sopmalCd}"/>', '<c:out value="${order.ordrInnb}"/>', '', '<c:out value="${order.ordrRceptDt}"/>', '<c:out value="${order.ordrSttusCd}"/>');" class="btn-ordr-sttus btn gray sm full">결제취소</a>
</c:when>
<c:when test="${order.ordrSttusCd > 54 && order.ordrSttusCd < 76 && order.sknEnvrnCd ne 'POS'}">
<a href="javascript:void(0);" onclick="fn_call_dlvy_sweettracker_pop('<c:out value="${order.ordrInnb}"/>');" class="btn outline sm full">배송조회</a>
<c:if test="${ order.purchsDcsnAt eq 'Y' }">
<a href="javascript:void(0);" onclick="fn_call_refund_pop('<c:out value="${order.sopmalCd}"/>', '<c:out value="${order.ordrInnb}"/>','<c:out value="${order.ordrRceptDt}"/>', '<c:out value="${order.setleTyCd}"/>', '<c:out value="${order.ordrSttusCd}"/>');" class="btn-ordr-sttus btn gray sm full">반품신청</a>
</c:if>
<c:if test="${ order.reviewAt eq 'Y' }">
<a href="<c:url value="/sopmal/mpage/act/selectMyRvwInqireForm"/>" class="btn-ordr-sttus btn theme sm full">리뷰작성</a>
</c:if>
<c:if test="${ order.purchsDcsnAt eq 'Y' }">
<a href="javascript:void(0);" onclick="fn_post_purchs_dcsn_by_ordr('<c:out value="${order.sopmalCd}"/>', '<c:out value="${order.ordrInnb}"/>');" class="btn-ordr-sttus btn theme sm full">구매확정</a>
</c:if>
</c:when>
<c:when test="${order.ordrSttusCd > 84 && order.ordrSttusCd < 100}">
<a class="btn full orderList__status cancel" style="background-color:transparent;"><c:out value="${order.ordrSttusNm}"/></a>
</c:when>
</c:choose>
</div>
</div>
</div>
</div>
</c:forEach>
</c:when>
<c:otherwise>
<div class="orderList__no-result">
<img src="<c:url value="/pc/images/icon__no-result.png"/>" alt="">
<p class="orderList__no-result-text">주문내역이 없습니다.</p>
</div>
</c:otherwise>
</c:choose>
<div class="pagination__container" style="margin-top: 20px">
<ui:pagination paginationInfo="${data.paginationInfo}" type="image" jsFunction="fn_get_ordr_dlvy_list"/>
</div>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,269 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<!-- 결제취소/환불정보 -->
<div id="refund-pop" class="modal default" style="max-width: 900px;">
<div class="modal-header">
<div class="modal-header__title">결제취소/환불정보</div>
</div>
<c:set var="order" value="${data.order}"/>
<div class="modal-content">
<div class="orderRefundPop">
<spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/>
<p class="orderRefundPop__orderNum">주문번호 <c:out value="${order.ordrInnb}"/></p>
<input type="hidden" id="sopmalCd" value="${order.sopmalCd}"/>
<input type="hidden" id="ordrInnb" value="${order.ordrInnb}"/>
<input type="hidden" id="ordrTyCd" value="${order.ordrTyCd}"/>
<input type="hidden" id="ordrSttusCd" value="${order.ordrSttusCd}"/>
<input type="hidden" id="isBank" value="${not empty order.bnnkNm ? 'Y' : 'N'}"/>
<input type="hidden" id="setleTyCd" value="${order.setleTyCd}"/> <!-- 결제유형 -->
<c:choose>
<c:when test="${'04' == order.ordrTyCd || '05' == order.ordrTyCd}">
<c:choose>
<c:when test="${not empty data.shippingList}">
<c:forEach var="shipping" items="${data.shippingList}" varStatus="status">
<div class="multiDeliveryStatus">
<p class="multiDeliveryStatus__title"><span class="multiDeliveryStatus__numTitle"><c:out value="${status.count > 1 ? status.count += '. ': ''}"/>배송지</span>
<c:out value="${shipping.recpntNm}"/> <c:out value="${not empty shipping.dlvylcZip ? '(' += shipping.dlvylcZip += ')' : ''}"/>
<c:out value="${shipping.adres}"/>
<c:out value="${shipping.dlvylcAdresDtl}"/>
<%--<em>2곳</em>--%>
</p>
</div>
<div class="cartOrder__list">
<h4 class="modalSectionTitle">주문상품 중 결제취소 가능 상품<span class="modalSectionTitle__sub">- 결제취소 시 상품과 수량을 선택하세요!(*결제확인 상태에서는 전체 취소만 가능합니다.)</span></h4>
<div class="table-wrapper">
<table class="table vertical orderRefundPop__table">
<caption>결제취소/환불정보</caption>
<colgroup>
<col style="width: auto;">
<col style="width: 80px">
<col style="width: 80px">
<col style="width: 120px">
<col style="width: 80px">
</colgroup>
<thead>
<tr>
<th>상품명</th>
<th>주문수량</th>
<th>취소가능수량</th>
<th>취소수량</th>
<th>처리상태</th>
</tr>
</thead>
<tbody>
<c:choose>
<c:when test="${not empty shipping.goodsList}">
<c:forEach var="goods" items="${shipping.goodsList}" varStatus="status">
<tr class="cancl-goods">
<td>
<div class="cartItem">
<div class="b-checkbox-container">
<label class="b-checkbox checkbox">
<input type="checkbox" name="goodsCheck" value="" checked onclick="return false;">
<span class="check"></span>
<span class="control-label"></span>
</label>
</div>
<div class="cartItem__image">
<img src="<c:out value="${ cdnurl }${goods.goodsImgCours}"/>" onerror="this.src='/pc/images/image_placeholder.png'" alt="<c:out value="${goods.goodsNm}"/>">
</div>
<div class="cartItem__productInfo">
<a href="javascript:void(0);" class="cartItem__productTitle"><c:out value="${goods.goodsNm}"/></a>
<span class="cartItem__productOption"> <span class="option-badge">옵션</span><c:out value="${goods.optnNm}"/></span>
</div>
</div>
</td>
<td><c:out value="${goods.ordrQy}"/></td>
<td><c:out value="${goods.ordrQy - goods.setleCanclQy}"/></td>
<td>
<input type="hidden" class="sopmalCd" value="${goods.sopmalCd}"/>
<input type="hidden" class="ordrInnb" value="${goods.ordrInnb}"/>
<input type="hidden" class="ordrDlvyInnb" value="${shipping.ordrDlvyInnb}"/>
<input type="hidden" class="ordrGoodsInnb" value="${goods.ordrGoodsInnb}"/>
<input type="hidden" class="ordrGoodsOptnInnb" value="${goods.ordrGoodsOptnInnb}"/>
<input type="hidden" class="setleCanclQy" value="${goods.setleCanclQy}"/>
<input type="hidden" class="ordrQy" value="${goods.ordrQy}"/>
<input type="hidden" class="subscrptWthdrawPosblAt" value="${goods.subscrptWthdrawPosblAt}"/>
<input type="hidden" class="indvdlzCanclPosblAt" value="${goods.indvdlzCanclPosblAt}"/>
<input type="hidden" class="indvdlzReturnExchngPosblAt" value="${goods.indvdlzReturnExchngPosblAt}"/>
<div class="select-box">
<select class="canclQy" title="취소 수량" disabled>
<c:forEach var="item" begin="1" end="${goods.ordrQy - goods.setleCanclQy}" step="1" varStatus="status">
<option value="<c:out value="${status.count}"/>" <c:if test="${status.last}">selected</c:if>><c:out value="${status.count}"/></option>
</c:forEach>
</select>
</div>
</td>
<td>
<span class="orderList__status"><c:out value="${goods.ordrSttusNm}"/></span>
</td>
</tr>
</c:forEach>
</c:when>
<c:otherwise>
<tr><td colspan="100%" ><spring:message code="common.nodata"/></td></tr>
</c:otherwise>
</c:choose>
</tbody>
</table>
</div>
</div>
</c:forEach>
</c:when>
<c:otherwise>
</c:otherwise>
</c:choose>
</c:when>
<c:otherwise>
<div class="cartOrder__list">
<h4 class="modalSectionTitle">주문상품 중 결제취소 가능 상품<span class="modalSectionTitle__sub">- 결제취소 시 상품과 수량을 선택하세요!(*결제확인 상태에서는 전체 취소만 가능합니다.)</span></h4>
<div class="table-wrapper">
<table class="table vertical orderRefundPop__table">
<caption>결제취소/환불정보</caption>
<colgroup>
<col style="width: auto;">
<col style="width: 80px">
<col style="width: 80px">
<col style="width: 120px">
<col style="width: 80px">
</colgroup>
<thead>
<tr>
<th>상품명</th>
<th>주문수량</th>
<th>취소가능수량</th>
<th>취소수량</th>
<th>처리상태</th>
</tr>
</thead>
<tbody>
<c:choose>
<c:when test="${not empty data.goodsList}">
<c:forEach var="goods" items="${data.goodsList}">
<tr class="cancl-goods">
<td>
<div class="cartItem">
<div class="b-checkbox-container">
<label class="b-checkbox checkbox">
<input type="checkbox" name="goodsCheck" value="" checked onclick="return false;">
<span class="check"></span>
<span class="control-label"></span>
</label>
</div>
<div class="cartItem__image">
<img src="<c:out value="${ cdnurl }${goods.goodsImgCours}"/>" onerror="this.src='/pc/images/image_placeholder.png'" alt="<c:out value="${goods.goodsNm}"/>">
</div>
<div class="cartItem__productInfo">
<a href="javascript:void(0);" class="cartItem__productTitle"><c:out value="${goods.goodsNm}"/></a>
<span class="cartItem__productOption"> <span class="option-badge">옵션</span><c:out value="${goods.optnNm}"/></span>
</div>
</div>
</td>
<td><c:out value="${goods.ordrQy}"/></td>
<td><c:out value="${goods.ordrQy - goods.setleCanclQy}"/></td>
<td>
<input type="hidden" class="sopmalCd" value="${goods.sopmalCd}"/>
<input type="hidden" class="ordrInnb" value="${goods.ordrInnb}"/>
<input type="hidden" class="ordrDlvyInnb" value="${goods.ordrDlvyInnb}"/>
<input type="hidden" class="ordrGoodsInnb" value="${goods.ordrGoodsInnb}"/>
<input type="hidden" class="ordrGoodsOptnInnb" value="${goods.ordrGoodsOptnInnb}"/>
<input type="hidden" class="ordrQy" value="${goods.ordrQy}"/>
<input type="hidden" class="subscrptWthdrawPosblAt" value="${goods.subscrptWthdrawPosblAt}"/>
<input type="hidden" class="indvdlzCanclPosblAt" value="${goods.indvdlzCanclPosblAt}"/>
<input type="hidden" class="indvdlzReturnExchngPosblAt" value="${goods.indvdlzReturnExchngPosblAt}"/>
<input type="hidden" class="indvdlzReturnExchngPosblAt" value="${goods.indvdlzReturnExchngPosblAt}"/>
<div class="select-box">
<select class="canclQy" title="취소 수량" disabled>
<c:forEach var="item" begin="1" end="${goods.ordrQy - goods.setleCanclQy}" step="1" varStatus="status">
<option value="<c:out value="${status.count}"/>" <c:if test="${status.last}">selected</c:if>><c:out value="${status.count}"/></option>
</c:forEach>
</select>
</div>
</td>
<td>
<span class="orderList__status"><c:out value="${goods.ordrSttusNm}"/></span>
</td>
</tr>
</c:forEach>
</c:when>
<c:otherwise>
<tr><td colspan="100%" ><spring:message code="common.nodata"/></td></tr>
</c:otherwise>
</c:choose>
</tbody>
</table>
</div>
</div>
</c:otherwise>
</c:choose>
<p class="orderRefundReason__title">취소 사유를 선택해 주세요.</p>
<div class="orderRefundReason">
<div class="orderRefundReason__item">
<div class="orderRefundReason__itemTitle">취소사유</div>
<div class="select-box">
<select name="returnResnCd" id="returnResnCd" class="lg" title="취소사유">
<option value="" selected>취소사유를 선택해 주세요.</option>
<c:forEach var="returnResn" items="${data.returnResnList}">
<option value="<c:out value="${returnResn.cd}"/>"><c:out value="${returnResn.cdNm}"/></option>
</c:forEach>
</select>
</div>
</div>
<div class="orderRefundReason__item">
<div class="orderRefundReason__itemTitle">상세사유</div>
<textarea name="returnResnCn" id="returnResnCn" class="textarea" rows="6" title="상세사유" placeholder="최소 10자 이상으로 입력해 주세요."></textarea>
</div>
</div>
<c:if test="${not empty order.setleTyCd && ( order.setleTyCd eq '02' || order.setleTyCd eq '04' || order.setleTyCd eq '05' || order.setleTyCd eq '06' )}">
<p class="orderRefundReason__title">환불방법을 입력해 주세요</p>
<div class="orderRefundReason">
<div class="orderRefundReason__item">
<div class="orderRefundReason__itemTitle">은행</div>
<div class="select-box">
<select class="sm" title="해당 셀렉트에 대한 설명" name="refundAcntBnnkNm" id="refundAcntBnnkNm">
<c:forEach var="cdList" items="${ data.bankCdList }" varStatus="status">
<option value="<c:out value="${ cdList.cd }"/>,<c:out value="${ cdList.cdNm }"/>" ><c:out value="${ cdList.cdNm }"/></option>
</c:forEach>
</select>
</div>
<%--<input type="text" name="refundAcntBnnkNm" id="refundAcntBnnkNm" class="input-text lg" title="은행" placeholder="환불 은행을 입력해 주세요." maxlength="20">--%>
<div class="orderRefundReason__itemTitle">예금주</div>
<input type="text" name="refundAcntDpstrNm" id="refundAcntDpstrNm" class="input-text lg" title="예금주" placeholder="예금주 이름을 입력해 주세요." maxlength="20">
<div class="orderRefundReason__itemTitle">계좌번호</div>
<input type="text" name="refundAcntnb" id="refundAcntnb" class="input-text lg" value="" title="계좌번호" placeholder="계좌번호를 입력해 주세요." maxlength="50">
</div>
</div>
</c:if>
<div class="infoBox">
<h6 class="infoBox__title">최초 배송비</h6>
<p class="infoBox__paragraph">부분 결제 취소 시 추가 배송비가 발생할 수 있으며, 이 때 추가 배송비를 결제해 주셔야만 결제취소 처리완료가 가능합니다.
</p>
<h6 class="infoBox__title">[추가 배송비가 발생하는 경우]</h6>
<ol class="infoBox__list">
<li>① ‘묶음배송비’ 상품의 배송비 무료(금액별 차등) 조건을 충족하여 배송비 무료</li>
<li>② 부분 결제취소로 배송비 무료 조건을 불충족하는 경우 추가 배송비 부과</li>
<li>③ 추가 배송비는 카드 또는 마일리지로 결제 가능</li>
</ol>
<h6 class="infoBox__title">유의사항</h6>
<ol class="infoBox__list">
<li>① 결제확인 상태에서는 전체 취소만 가능합니다.</li>
</ol>
</div>
</div>
</div>
<div class="modal-footer">
<a href="javascript:void(0);" rel="modal:close" class="btn large outline">닫기</a>
<a href="javascript:void(0);" id="btnSetleCancl" class="btn large gray2">결제취소</a>
</div>
</div>

View File

@@ -0,0 +1,534 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<script>
$(document).ready(function() {
$('select').niceSelect();
fn_ctrl_refund_resn_cd();
fn_ctrl_retrun_mth();
fn_ctrl_return_dlvy_mth();
$('#returnResnCd').on('change', function() {
fn_ctrl_refund_resn_cd();
});
});
</script>
<!-- 반품/환불 -->
<div id="return-pop" class="modal default" style="max-width: 900px;">
<div class="modal-header">
<div class="modal-header__title">반품/환불정보</div>
</div>
<c:set var="order" value="${data.order}"/>
<div class="modal-content">
<div class="orderRefundPop">
<spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/>
<p class="orderRefundPop__orderNum">주문번호 <c:out value="${order.ordrInnb}"/></p>
<input type="hidden" id="sopmalCd" value="${order.sopmalCd}"/>
<input type="hidden" id="ordrInnb" value="${order.ordrInnb}"/>
<input type="hidden" id="ordrTyCd" value="${order.ordrTyCd}"/>
<input type="hidden" id="ordrSttusCd" value="${order.ordrSttusCd}"/>
<input type="hidden" id="isBank" value="${not empty order.bnnkNm ? 'Y' : 'N'}"/>
<input type="hidden" id="setleTyCd" value="${order.setleTyCd}"/> <!-- 결제유형 -->
<input type="hidden" id="totalRlDlvyAmt" value=""/>
<input type="hidden" id="dlvyDwldCouponInnbArr" value=""/>
<c:forEach var="shipping" items="${data.shippingList}" varStatus="status">
<c:if test="${ status.first }">
<c:set var="defaultReturnAdress" value="${ shipping }"/>
</c:if>
</c:forEach>
<c:set var="totalRlDlvyAmt" value="0" />
<c:choose>
<c:when test="${'04' == order.ordrTyCd || '05' == order.ordrTyCd}">
<c:choose>
<c:when test="${not empty data.shippingList}">
<c:forEach var="shipping" items="${data.shippingList}" varStatus="status">
<div class="multiDeliveryStatus">
<p class="multiDeliveryStatus__title"><span class="multiDeliveryStatus__numTitle"><c:out value="${status.count > 1 ? status.count += '. ': ''}"/>배송지</span>
<c:out value="${shipping.recpntNm}"/> <c:out value="${not empty shipping.dlvylcZip ? '(' += shipping.dlvylcZip += ')' : ''}"/>
<c:out value="${shipping.adres}"/>
<c:out value="${shipping.dlvylcAdresDtl}"/>
<c:set var="shippingIndex" value="${status.index}"/>
<%--<em>2곳</em>--%>
<c:set var="totalRlDlvyAmt" value="${totalRlDlvyAmt + shipping.rlDlvyAmt}" />
<input type="hidden" name="rlDlvyAmt${shippingIndex}" value="${shipping.rlDlvyAmt}"/>
<input type="hidden" name="dlvyDwldCouponInnb${shippingIndex}" value="${ shipping.dlvyDwldCouponInnb }"/>
<%--<input type="text" name="rlDlvyAmt" value="${ totalRlDlvyAmt }"/>--%>
</p>
</div>
<div class="cartOrder__list">
<h4 class="modalSectionTitle">주문상품 중 반품/환불신청 가능 상품<span class="modalSectionTitle__sub">- 반품/환불신청 시 상품과 수량을 선택하세요!</span></h4>
<div class="table-wrapper">
<table class="table vertical orderRefundPop__table">
<caption>결제취소/환불정보</caption>
<colgroup>
<col style="width: auto;">
<col style="width: 80px">
<col style="width: 80px">
<col style="width: 120px">
<col style="width: 80px">
</colgroup>
<thead>
<tr>
<th>
상품명
<input type="hidden" class="checkAll" id="checkAll${shippingIndex}" data-index="${shippingIndex}">
</th>
<th>주문수량</th>
<th>취소가능수량</th>
<th>취소수량</th>
<th>처리상태</th>
</tr>
</thead>
<tbody>
<c:choose>
<c:when test="${not empty shipping.goodsList}">
<c:forEach var="goods" items="${shipping.goodsList}" varStatus="status">
<tr class="cancl-goods">
<td>
<div class="cartItem">
<div class="b-checkbox-container">
<label class="b-checkbox checkbox">
<input type="checkbox" name="goodsCheck" class="checkbox${shippingIndex} goodsCheck${shippingIndex}" value="" onclick="fn_ctr_pCheckbox('#checkAll${shippingIndex}', '.checkbox${shippingIndex}'); calculateTotal();">
<span class="check"></span>
<span class="control-label"></span>
</label>
</div>
<div class="cartItem__image">
<img src="<c:out value="${ cdnurl }${goods.goodsImgCours}"/>" onerror="this.src='<c:url value="/mngr/images/image_placeholder.png"/>" alt="<c:out value="${goods.goodsNm}"/>">
</div>
<div class="cartItem__productInfo">
<a href="javascript:void(0);" class="cartItem__productTitle"><c:out value="${goods.goodsNm}"/></a>
<span class="cartItem__productOption"> <span class="option-badge">옵션</span><c:out value="${goods.optnNm}"/></span>
</div>
</div>
</td>
<td><c:out value="${goods.ordrQy}"/></td>
<td><c:out value="${goods.ordrQy - goods.setleCanclQy}"/></td>
<td>
<input type="hidden" class="sopmalCd" value="${goods.sopmalCd}"/>
<input type="hidden" class="ordrInnb" value="${goods.ordrInnb}"/>
<input type="hidden" class="ordrDlvyInnb" value="${shipping.ordrDlvyInnb}"/>
<input type="hidden" class="ordrGoodsInnb" value="${goods.ordrGoodsInnb}"/>
<input type="hidden" class="ordrGoodsOptnInnb" value="${goods.ordrGoodsOptnInnb}"/>
<input type="hidden" class="setleCanclQy" value="${goods.setleCanclQy}"/>
<input type="hidden" class="ordrQy" value="${goods.ordrQy}"/>
<input type="hidden" class="subscrptWthdrawPosblAt" value="${goods.subscrptWthdrawPosblAt}"/>
<input type="hidden" class="indvdlzCanclPosblAt" value="${goods.indvdlzCanclPosblAt}"/>
<input type="hidden" class="indvdlzReturnExchngPosblAt" value="${goods.indvdlzReturnExchngPosblAt}"/>
<div class="select-box">
<select class="canclQy" title="취소 수량">
<option value="" selected>선택</option>
<c:forEach var="item" begin="1" end="${goods.ordrQy - goods.setleCanclQy}" step="1" varStatus="status">
<option value="<c:out value="${status.count}"/>"><c:out value="${status.count}"/></option>
</c:forEach>
</select>
</div>
</td>
<td>
<span class="orderList__status"><c:out value="${goods.ordrSttusNm}"/></span>
</td>
</tr>
</c:forEach>
</c:when>
<c:otherwise>
<tr><td colspan="100%" ><spring:message code="common.nodata"/></td></tr>
</c:otherwise>
</c:choose>
</tbody>
</table>
</div>
</div>
</c:forEach>
</c:when>
<c:otherwise>
</c:otherwise>
</c:choose>
</c:when>
<c:otherwise>
<div class="cartOrder__list">
<h4 class="modalSectionTitle">주문상품 중 반품/환불신청 가능 상품<span class="modalSectionTitle__sub">- 반품/환불신청 시 상품과 수량을 선택하세요!</span></h4>
<div class="table-wrapper">
<table class="table vertical orderRefundPop__table">
<caption>결제취소/환불정보</caption>
<colgroup>
<col style="width: auto;">
<col style="width: 80px">
<col style="width: 80px">
<col style="width: 120px">
<col style="width: 80px">
</colgroup>
<thead>
<tr>
<th>상품명</th>
<th>주문수량</th>
<th>취소가능수량</th>
<th>취소수량</th>
<th>처리상태</th>
</tr>
</thead>
<tbody>
<c:choose>
<c:when test="${not empty data.goodsList}">
<c:forEach var="goods" items="${data.goodsList}" varStatus="status">
<tr class="cancl-goods">
<td>
<div class="cartItem">
<c:if test="${ status.index eq 0 }">
<input type="hidden" id="singleReDlvyAmt" value="${ goods.rlDlvyAmt }"/>
<input type="hidden" id="dlvyDwldCouponInnb" value="${ goods.dlvyDwldCouponInnb }"/>
</c:if>
<div class="b-checkbox-container">
<label class="b-checkbox checkbox">
<input type="checkbox" name="goodsCheck" value="">
<span class="check"></span>
<span class="control-label"></span>
</label>
</div>
<div class="cartItem__image">
<img src="<c:out value="${ cdnurl }${goods.goodsImgCours}"/>" onerror="this.src='<c:url value="/mngr/images/image_placeholder.png"/>" alt="<c:out value="${goods.goodsNm}"/>">
</div>
<div class="cartItem__productInfo">
<a href="javascript:void(0);" class="cartItem__productTitle"><c:out value="${goods.goodsNm}"/></a>
<span class="cartItem__productOption"> <span class="option-badge">옵션</span><c:out value="${goods.optnNm}"/></span>
</div>
</div>
</td>
<td><c:out value="${goods.ordrQy}"/></td>
<td><c:out value="${goods.ordrQy - goods.setleCanclQy}"/></td>
<td>
<input type="hidden" class="goodsDwldCouponInnb" value="${ goods.goodsDwldCouponInnb }"/>
<input type="hidden" class="sopmalCd" value="${goods.sopmalCd}"/>
<input type="hidden" class="ordrInnb" value="${goods.ordrInnb}"/>
<input type="hidden" class="ordrDlvyInnb" value="${goods.ordrDlvyInnb}"/>
<input type="hidden" class="ordrGoodsInnb" value="${goods.ordrGoodsInnb}"/>
<input type="hidden" class="ordrGoodsOptnInnb" value="${goods.ordrGoodsOptnInnb}"/>
<input type="hidden" class="ordrQy" value="${goods.ordrQy}"/>
<input type="hidden" class="subscrptWthdrawPosblAt" value="${goods.subscrptWthdrawPosblAt}"/>
<input type="hidden" class="indvdlzCanclPosblAt" value="${goods.indvdlzCanclPosblAt}"/>
<input type="hidden" class="indvdlzReturnExchngPosblAt" value="${goods.indvdlzReturnExchngPosblAt}"/>
<input type="hidden" class="indvdlzReturnExchngPosblAt" value="${goods.indvdlzReturnExchngPosblAt}"/>
<div class="select-box">
<select class="canclQy" title="취소 수량">
<option value="" selected>선택</option>
<c:forEach var="item" begin="1" end="${goods.ordrQy - goods.setleCanclQy}" step="1" varStatus="status">
<option value="<c:out value="${status.count}"/>"><c:out value="${status.count}"/></option>
</c:forEach>
</select>
</div>
</td>
<td>
<span class="orderList__status"><c:out value="${goods.ordrSttusNm}"/></span>
</td>
</tr>
</c:forEach>
</c:when>
<c:otherwise>
<tr><td colspan="100%" ><spring:message code="common.nodata"/></td></tr>
</c:otherwise>
</c:choose>
</tbody>
</table>
</div>
</div>
</c:otherwise>
</c:choose>
<p class="orderRefundReason__title">취소 사유를 선택해 주세요.</p>
<div class="orderRefundReason">
<div class="orderRefundReason__item">
<div class="orderRefundReason__itemTitle">취소사유</div>
<div class="select-box">
<select name="returnResnCd" id="returnResnCd" class="lg" title="취소사유">
<option value="" selected>취소사유를 선택해 주세요.</option>
<c:forEach var="returnResn" items="${data.returnResnList}">
<option value="<c:out value="${returnResn.cd}"/>" data-cddv="<c:out value="${ returnResn.cdDv }"/>" ><c:out value="${returnResn.cdNm}"/></option>
</c:forEach>
</select>
</div>
</div>
<div class="orderRefundReason__item">
<div class="orderRefundReason__itemTitle">상세사유</div>
<textarea name="returnResnCn" id="returnResnCn" class="textarea" rows="6" title="상세사유" placeholder="최소 10자 이상으로 입력해 주세요."></textarea>
</div>
</div>
<p class="orderRefundReason__title">연락처</p>
<div class="cartOrder__list">
<div class="table-wrapper">
<table class="table vertical orderRefundPop__table">
<caption>해당 테이블에 대한 설명</caption>
<!-- 각 열 width 설정 -->
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th>구매자</th>
<th>휴대폰
<c:set var="firstPart" value="${ fn:substring(order.ordrrMbtlnb, 0, 2)}" />
<c:set var="middlePart" value="${ fn:substring(order.ordrrMbtlnb, 4, 8)}" />
<c:set var="lastPart" value="${ fn:substring(order.ordrrMbtlnb, 9, 13)}" />
</th>
<%--
<th>연락처 ${order.ordrrTelnb}
<c:set var="firstPartTel" value="${ fn:substring(order.ordrrTelnb, 0, 2)}" />
<c:set var="middlePartTel" value="${ fn:substring(order.ordrrTelnb, 4, 8)}" />
<c:set var="lastPartTel" value="${ fn:substring(order.ordrrTelnb, 9, 12)}" />
</th>
--%>
</tr>
</thead>
<tbody>
<tr>
<td>
${order.mbrNm}
<input type="hidden" name="" value="${ order.mbrNm }"/>
</td>
<td>
<div class="inputEmail">
<div class="select-box">
<select class="short2" title="해당 셀렉트에 대한 설명" name="returnCstmrMbtlnb">
<option value="010" <c:if test="${firstPart eq '010'}">selected</c:if>>010</option>
<option value="011" <c:if test="${firstPart eq '011'}">selected</c:if>>011</option>
</select>
</div>
<span class="mx-3 fs-16">-</span>
<input type="text" class="input-text xsm" value="${middlePart}" title="해당 인풋에 대한 설명" name="returnCstmrMbtlnb" maxlength="4">
<span class="mx-3 fs-16">-</span>
<input type="text" class="input-text xsm" value="${lastPart}" title="해당 인풋에 대한 설명" name="returnCstmrMbtlnb" maxlength="4">
</div>
</td>
<%--
<td>
<div class="inputEmail">
<div class="select-box">
<select class="short2" title="해당 셀렉트에 대한 설명">
<option value="02" <c:if test="${firstPartTel eq '02'}">selected</c:if>>서울 02</option>
<option value="031" <c:if test="${firstPartTel eq '031'}">selected</c:if>>경기도 031</option>
</select>
</div>
<span class="mx-3 fs-16">-</span>
<input type="text" class="input-text xsm" value="${middlePartTel}" title="해당 인풋에 대한 설명">
<span class="mx-3 fs-16">-</span>
<input type="text" class="input-text xsm" value="${lastPartTel}" title="해당 인풋에 대한 설명">
</div>
</td>
--%>
</tr>
</tbody>
</table>
</div>
</div>
<%--
<p class="orderRefundReason__title">연락처</p>
<div class="signUp__inputBox__item">
<div class="inputEmail">
<div class="select-box">
<select name="domain" title="이메일 자동발송 발신주소" onchange="fn_set_domain(this.value);">
<option value="naver.com" >naver.com</option>
<option value="hanmail.net" >hanmail.net</option>
</select>
</div>
<span class="mx-3 fs-16">-</span>
<input class="input-text xsm" type="text" id="id" title="이메일 id" placeholder="이메일" maxlength="25">
<span class="mx-3 fs-16">-</span>
<input class="input-text xsm" type="text" id="domain" title="이메일 domain" maxlength="25">
</div>
</div>
<p class="orderRefundReason__title">연락처</p>
<div class="orderRefundReason">
<div class="orderRefundReason__item">
<div class="orderRefundReason__itemTitle">구매자<br/></div>
<div class="orderRefundReason__itemTitle">
<input class="input-text" type="text" title="구매자" placeholder="구매자" id="" name="" value="${order.mbrNm}" readonly>
</div>
<div class="orderRefundReason__itemTitle">휴대폰<br/></div>
<div class="orderRefundReason__itemTitle">
<div class="select-box">
<select class="short2" title="해당 셀렉트에 대한 설명" name="returnCstmrMbtlnb">
<option value="010" <c:if test="${firstPart eq '010'}">selected</c:if>>010</option>
<option value="011" <c:if test="${firstPart eq '011'}">selected</c:if>>011</option>
</select>
</div>
<span class="mx-3 fs-16">-</span>
<input type="text" class="input-text xsm" value="${middlePart}" title="해당 인풋에 대한 설명" name="returnCstmrMbtlnb">
<span class="mx-3 fs-16">-</span>
<input type="text" class="input-text xsm" value="${lastPart}" title="해당 인풋에 대한 설명" name="returnCstmrMbtlnb">
</div>
<div class="orderRefundReason__itemTitle">연락처<br/></div>
<div class="orderRefundReason__itemTitle">
<div class="select-box">
<select class="short2" title="해당 셀렉트에 대한 설명" name="returnCstmrMbtlnb">
<option value="010" <c:if test="${firstPart eq '010'}">selected</c:if>>010</option>
<option value="011" <c:if test="${firstPart eq '011'}">selected</c:if>>011</option>
</select>
</div>
<span class="mx-3 fs-16">-</span>
<input type="text" class="input-text xsm" value="${middlePart}" title="해당 인풋에 대한 설명" name="returnCstmrMbtlnb">
<span class="mx-3 fs-16">-</span>
<input type="text" class="input-text xsm" value="${lastPart}" title="해당 인풋에 대한 설명" name="returnCstmrMbtlnb">
</div>
</div>
</div>
--%>
<p class="orderRefundReason__title">반품 방법을 선택해 주세요.(반송주소 : <c:out value="${ data.returnAddress }"/> )</p>
<div class="orderRefundReason">
<div class="custom-radio-container">
<c:forEach var="cdList" items="${ data.returnMthCdList }" varStatus="status">
<div class="custom-radio is-medium">
<input type="radio" id="${ cdList.cdNm }${cdList.cd}" name="returnMthCd" value="${ cdList.cd }" <c:if test="${ cdList.cd eq '02' }">checked="checked"</c:if> onclick="fn_ctrl_retrun_mth();">
<label for="${ cdList.cdNm }${cdList.cd}">${ cdList.cdNm }</label>
</div>
</c:forEach>
</div>
<br/>
<div class="orderRefundReason__item addressSelectDiv">
<div class="orderRefundReason__itemTitle">배송지 주소<br/></div>
<div class="orderRefundReason__itemTitle">
<input class="input-text" type="text" title="해당 인풋에 대한 설명" placeholder="우편번호" id="senderZip" name="senderZip" readonly>
<input type="hidden" id="senderAdresDvCd" name="senderAdresDvCd" value=""/>
<button type="button" class="btn md theme outline" onclick="fn_select_postcode(fn_set_postcode_popup); return false;">우편번호 찾기</button><br>
</div>
<div class="orderRefundReason__itemTitle">
<input type="text" id="senderRnmAdres" name="senderRnmAdres" class="input-text lg" title="도로명 주소" placeholder="도로명 주소" maxlength="20" readonly>
</div>
<div class="orderRefundReason__itemTitle">
<input type="text" name="senderLnbAdres" id="senderLnbAdres" class="input-text lg" title="지번주소" placeholder="지번주소" maxlength="20" readonly>
</div>
<div class="orderRefundReason__itemTitle">상세 주소<br/></div>
<div class="orderRefundReason__itemTitle">
<input type="text" name="senderAdresDtl" id="senderAdresDtl" class="input-text lg" value="" title="상세 주소" placeholder="상세 주소" maxlength="50">
</div>
</div>
</div>
<c:if test="${not empty order.setleTyCd && ( order.setleTyCd eq '02' || order.setleTyCd eq '04' || order.setleTyCd eq '05' || order.setleTyCd eq '06' )}">
<p class="orderRefundReason__title">환불방법을 입력해 주세요</p>
<div class="orderRefundReason">
<div class="orderRefundReason__item">
<div class="orderRefundReason__itemTitle">은행</div>
<div class="select-box">
<select class="sm" title="해당 셀렉트에 대한 설명" name="refundAcntBnnkNm" id="refundAcntBnnkNm">
<c:forEach var="cdList" items="${ data.bankCdList }" varStatus="status">
<option value="<c:out value="${ cdList.cd }"/>,<c:out value="${ cdList.cdNm }"/>" ><c:out value="${ cdList.cdNm }"/></option>
</c:forEach>
</select>
</div>
<%--<input type="text" name="refundAcntBnnkNm" id="refundAcntBnnkNm" class="input-text lg" title="은행" placeholder="환불 은행을 입력해 주세요." maxlength="20">--%>
<div class="orderRefundReason__itemTitle">예금주</div>
<input type="text" name="refundAcntDpstrNm" id="refundAcntDpstrNm" class="input-text lg" title="예금주" placeholder="예금주 이름을 입력해 주세요." maxlength="20">
<div class="orderRefundReason__itemTitle">계좌번호</div>
<input type="text" name="refundAcntnb" id="refundAcntnb" class="input-text lg" value="" title="계좌번호" placeholder="계좌번호를 입력해 주세요." maxlength="50">
</div>
</div>
</c:if>
<p class="orderRefundReason__title returnDlvyAcntnbArea">배송비 결제방법을 선택해주세요.</p>
<div class="cartOrder__list returnDlvyAcntnbArea">
<div class="form-control-container mb-20">
<div class="left">
<div class="select-box">
<select class="lg" title="반품 배송비 결제방법" id="returnDlvyPymntTyCd" name="returnDlvyPymntTyCd" onchange="fn_ctrl_return_dlvy_mth();">
<option value="" disabled selected>반품 배송비 결제방법을 선택해 주세요.</option>
<c:forEach var="cdList" items="${data.returnMtcCdList}">
<option value="<c:out value="${cdList.cd}"/>" ><c:out value="${cdList.cdNm}"/></option>
</c:forEach>
</select>
</div>
</div>
<div class="center">
</div>
<div class="right">
</div>
</div>
<div class="table-wrapper" id="returnMtcDiv">
<table class="table vertical tight">
<caption>해당 테이블에 대한 설명</caption>
<!-- 각 열 width 설정 -->
<colgroup>
<col style="width: 50%;">
<col style="width: auto;">
</colgroup>
<thead>
<tr>
<th>은행</th>
<th>입금자명</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="select-box">
<select class="full" title="해당 셀렉트에 대한 설명" name="returnAcntBnnkNm" id="returnAcntBnnkNm">
<option value="" selected disabled>선택</option>
<c:forEach items="${ data.bankAccount }" var="bankAccount" varStatus="status">
<option value="<c:out value="${ bankAccount.acntnb }"/>"><c:out value="${ bankAccount.dpstrNm }"/> <c:out value="${ bankAccount.acntnb }"/></option>
</c:forEach>
</select>
</div>
</td>
<td>
<input type="text" class="input-text full" value="" name="returnAcntDpstrNm" id="returnAcntDpstrNm" title="입금자명">
</td>
</tr>
</tbody>
</table>
<%--<p class="fyi fs-13 mt-5 gray-7">환불 금액을 입력할 환불 계좌 정보입니다. 결제 수단이 무통장, 가상 계좌인 경우 결제 금액은 관리자가 수동으로 입금해주세요.--%>
</p>
</div>
</div>
<div class="infoBox">
<h6 class="infoBox__title">최초 배송비</h6>
<p class="infoBox__paragraph">부분 결제 취소 시 추가 배송비가 발생할 수 있으며, 이 때 추가 배송비를 결제해 주셔야만 결제취소 처리완료가 가능합니다.
</p>
<h6 class="infoBox__title">[추가 배송비가 발생하는 경우]</h6>
<ol class="infoBox__list">
<li>① ‘묶음배송비’ 상품의 배송비 무료(금액별 차등) 조건을 충족하여 배송비 무료</li>
<li>② 부분 결제취소로 배송비 무료 조건을 불충족하는 경우 추가 배송비 부과</li>
<li>③ 추가 배송비는 카드 또는 마일리지로 결제 가능</li>
</ol>
<h6 class="infoBox__title">유의사항</h6>
<ol class="infoBox__list">
<li>① 결제확인 상태에서는 전체 취소만 가능합니다.</li>
</ol>
</div>
</div>
</div>
<div class="modal-footer">
<a href="javascript:void(0);" rel="modal:close" class="btn large outline">닫기</a>
<a href="javascript:void(0);" id="btnReturnRegist" class="btn large gray2">반품/환불 신청</a>
</div>
</div>
<script>
let dlvylcZip = '${ defaultReturnAdress.dlvylcZip }';
let dlvylcAdresDvCd = '${ defaultReturnAdress.dlvylcAdresDvCd }';
let dlvylcRnmAdres = '${ defaultReturnAdress.dlvylcRnmAdres }';
let dlvylcLnbAdres = '${ defaultReturnAdress.dlvylcLnbAdres }';
let dlvylcAdresDtl = '${ defaultReturnAdress.dlvylcAdresDtl }';
$(document).ready(function() {
$('input[name="senderZip"]').val(dlvylcZip);
$('input[name="senderAdresDvCd"]').val(dlvylcAdresDvCd);
$('input[name="senderRnmAdres"]').val(dlvylcRnmAdres);
$('input[name="senderLnbAdres"]').val(dlvylcLnbAdres);
$('input[name="senderAdresDtl"]').val(dlvylcAdresDtl);
});
</script>

View File

@@ -0,0 +1,916 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : WslistInqireRForm.jsp
Description : 마이페이지 위시리스트
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-02-27 추지훈 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<%-- 공통 include --%>
<jsp:include page="/WEB-INF/views/comm/Include.jsp"/>
</head>
<script>
$(document).ready(function() {
fn_start_display();
});
/******************************************************************
* 시작 화면 제어
******************************************************************/
const fn_start_display = function() {
}
/*********************************************************************
* 반품/환불 목록 이동
* *******************************************************************/
const fn_order_refund_list = function() {
$('#listForm').attr('action', '<c:url value="/sopmal/mpage/ordr/selectRtngudCanclRefndForm"/>');
$('#listForm').attr('method', 'post');
$('#listForm').submit();
}
/*********************************************************************
* 반품 주소 변경
* *******************************************************************/
const fn_update_dlvy_info = function () {
const data = $('#returnDlvyUpdtForm').serializeArray();
if (confirm('반품 배송지 정보를 <spring:message code="confirm.common.update"/>')) {
$.ajax({
type: 'POST',
url: '<c:url value="/sopmal/mpage/ordr/updateRtngudCanclRefndUpdt"/>',
data: data,
success: function (result) {
alert('<spring:message code="success.common.update"/>');
location.reload();
}
});
}
}
/*********************************************************************
* 환불 계좌 정보 변경
* *******************************************************************/
const fn_update_acnt_info = function () {
const data = $('#refundAcntUpdtForm').serialize();
if (confirm('환불 계좌 정보를 <spring:message code="confirm.common.update"/>')) {
$.ajax({
type: 'POST',
url: '<c:url value="/sopmal/mpage/ordr/updateRtngudCanclRefndUpdt"/>',
data: data,
success: function (result) {
alert('<spring:message code="success.common.update"/>');
location.reload();
}
});
}
}
/* ********************************************************
* 우편번호 찾기
******************************************************** */
const fn_set_postcode = function(data) {
$('#postcode').val(data.postcode);
$('#adresDvCd').val(data.addressType);
if (data.addressType == '02') {
$('#address').val(data.jibunAddress);
} else if (data.addressType == '01') {
$('#address').val(data.roadAddress);
}
}
/**
* 반품 상품 QNA 문의 팝업
* @param goodsInnb
*/
const fn_goods_qna_pop_regist = (goodsInnb) => {
$.ajax({
type: "post",
data: {
authDv: "REGIST",
reqUrl: "modal",
bbsId: "goods_qna",
goodsInnb: goodsInnb,
listAt: "list",
},
url: "/sopmal/csc/selectBbscttAuth",
success: function (data) {
/*모달중복제거*/
fn_close_modal("qna-pop-regist");
fn_close_modal("qna-update-pop");
$("#modalDiv").html(data);
$("#qna-pop-regist").modal();
}
});
}
</script>
<body>
<%-- 공통 Header --%>
<jsp:include page="/WEB-INF/views/comm/Header.jsp"/>
<!-- 메인 컨텐츠 영역 -->
<main>
<div class="sub-wrapper">
<div class="sub-content">
<div class="sub-rl">
<spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/>
<%-- 마이페이지 Left 영역 --%>
<jsp:include page="/WEB-INF/views/comm/mpage/MypageLeft.jsp"/>
<div class="sub-right-content">
<%-- 마이페이지 Right 영역 --%>
<jsp:include page="/WEB-INF/views/comm/mpage/MypageRight.jsp"/>
<div class="sub-right-content__section">
<h3 class="sub-right-content__title"><c:if test = "${not empty resultMap.result.refnd.returnProcsSttusCd}">반품/</c:if>환불 내역</h3>
<div class="sub-right-content__section">
<h3 class="orderDetail__title"><c:out value="${ resultMap.result.refnd.registDt }"/>
<span class="orderDetail__titleNum">
<c:choose>
<c:when test = "${not empty resultMap.result.refnd.returnProcsSttusCd}">
반품번호
</c:when>
<c:otherwise>
환불번호
</c:otherwise>
</c:choose>
<c:out value="${ resultMap.result.refnd.orderRefundInnb }"/>
</span>
</h3>
<div class="cartOrder__list">
<div class="table-wrapper">
<table class="table vertical">
<caption>해당 테이블에 대한 설명</caption>
<!-- 각 열 width 설정 -->
<colgroup>
<col style="width: auto;">
<col style="width: 40px;">
<col style="width: 10%;">
<col style="width: 10%;">
<col style="width: 10%;">
<col style="width: 10%;">
<col style="width: 10%;">
<col style="width: 7%;">
</colgroup>
<thead>
<tr>
<th>상품명</th>
<th>수량</th>
<th>상품금액</th>
<th>할인금액</th>
<th>할인적용금액</th>
<th>환불신청수량</th>
<th>배송비</th>
<th>문의</th>
</tr>
</thead>
<tbody>
<c:set var="rePreOrdrDlvyInnb" value="0"/>
<c:set var="reDlvyCnt" value="1"/>
<c:choose>
<c:when test="${ not empty resultMap.result.itemsList }">
<c:forEach var="refundList" items="${ resultMap.result.itemsList }" varStatus="status">
<tr>
<td>
<div class="cartItem">
<div class="cartItem__image">
<a href="<c:url value="/sopmal/goods/selectGoodsDtl?sopmalCd=${refundList.sopmalCd}&goodsInnb=${refundList.goodsInnb}"/>" class="orderList__image">
<img src="<c:out value="${ cdnurl }"/><c:out value="${ refundList.img }"/>" onerror="this.src='/pc/images/image_placeholder.png'" alt="<c:out value="${refundList.goodsNm}"/>">
</a>
</div>
<div class="cartItem__productInfo">
<a href="" class="cartItem__productTitle">
<c:out value="${ refundList.goodsNm }"/>
</a>
<c:if test="${ not empty refundList.optnNm }">
<span class="cartItem__productOption">
<span class="option-badge">옵션</span>
<c:out value="${ refundList.optnNm }"/>
</span>
</c:if>
(<c:out value="${ refundList.dlvylcZip }"/>)
<c:choose>
<c:when test="${ refundList.dlvylcAdresDvCd eq '01' }">
<c:out value="${ refundList.dlvylcRnmAdres }"/>
</c:when>
<c:when test="${ refundList.dlvylcAdresDvCd eq '02' }">
<c:out value="${ refundList.dlvylcLnbAdres }"/>
</c:when>
</c:choose>
<c:out value="${ refundList.dlvylAdresDtl }"/>
</div>
</div>
</td>
<td>
<span><c:out value="${ refundList.ordrQy }"/></span>
</td>
<td>
<span class="cartItem__normalPrice"><span
class=" comma"><c:out value="${ refundList.slepric }"/></span><span
class="priceUnit">원</span>
</span>
</td>
<td>
<span class="cartItem__discountPrice"><span
class="cartItem__discountMinus">(-)</span><span
class="comma"><c:out value="${ refundList.dscntAmt }"/></span><span
class="priceUnit">원</span>
</span>
</td>
<td>
<span class="cartItem__afterPrice"><span
class="comma"><c:out value="${ refundList.applyDscntAmt }"/></span>
<span class="priceUnit">원</span>
</span>
</td>
<td>
<span><c:out value="${ refundList.refundQy }"/></span>
</td>
<c:choose>
<c:when test="${ refundList.ordrTyCd eq '04' || refundList.ordrTyCd eq '05' }">
<c:set var="reRowspanCnt" value="0"/>
<c:forEach var="tmpGoods" items="${resultMap.result.itemsList}">
<c:set var="reRowspanCnt" value="${refundList.ordrDlvyInnb == tmpGoods.ordrDlvyInnb ? reRowspanCnt + 1 : reRowspanCnt}"/>
</c:forEach>
<c:if test="${rePreOrdrDlvyInnb != refundList.ordrDlvyInnb}">
<td class="center" rowspan="${reRowspanCnt}">
<span class="fs-13 fw-400">${reDlvyCnt += ' 번째 배송지'}</span><br>
<span class="fs-13 fw-400">${refundList.dlvyMthNm}</span><br>
<c:choose>
<c:when test="${0 == refundList.dlvyAmt}">
<span class="fs-13 fw-400">무료</span>
</c:when>
<c:otherwise>
<span class="fs-13 fw-400"><fmt:formatNumber value="${refundList.dlvyAmt}" pattern="#,###"/></span>
</c:otherwise>
</c:choose>
</td>
<c:set var="rePreOrdrDlvyInnb" value="${refundList.ordrDlvyInnb}"/>
<c:set var="reDlvyCnt" value="${reDlvyCnt + 1}"/>
</c:if>
</c:when>
<c:otherwise>
<c:if test="${status.index == 0}">
<td class="center" ${fn:length(resultMap.result.itemsList) > 1 ? 'rowspan="' += fn:length(resultMap.result.itemsList) += '"' : ''}>
<span class="fs-13 fw-400">${refundList.dlvyMthNm}</span><br>
<c:choose>
<c:when test="${0 == refundList.dlvyAmt}">
<span class="fs-13 fw-400">무료</span>
</c:when>
<c:otherwise>
<span class="fs-13 fw-400"><fmt:formatNumber value="${refundList.dlvyAmt}" pattern="#,###"/></span>
</c:otherwise>
</c:choose>
</td>
</c:if>
</c:otherwise>
</c:choose>
<td>
<button type="button" class="btn sm gray2 sub-right-content__innerTitleBtn" onclick="fn_goods_qna_pop_regist('<c:out value="${ refundList.goodsInnb }"/>')">문의</button>
</td>
<%---
<td>
<span class="cartItem__shippingFee"><span
class=" comma">3,000</span><span
class="priceUnit">원</span>
</span>
</td>
--%>
</tr>
</c:forEach>
</c:when>
<c:otherwise>
<tr class="row-no-data">
<td colspan="100%" class="text-center">조회된 데이터가 없습니다.</td>
</tr>
</c:otherwise>
</c:choose>
</tbody>
<tfoot class="refundSum">
</tfoot>
</table>
</div>
</div>
</div>
</div>
<div class="sub-right-content__section">
<h3 class="sub-right-content__innerTitle"><c:if test = "${not empty resultMap.result.refnd.returnProcsSttusCd}">반품/</c:if>환불 처리</h3>
<div class="table-wrapper orderDetail__table">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<!-- 각 열 width 설정 -->
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th><c:if test = "${not empty resultMap.result.refnd.returnProcsSttusCd}">반품/</c:if>환불 상태</th>
<td>
<c:choose>
<c:when test="${ not empty resultMap.result.refnd.returnProcsSttusCd }">
<c:out value="${ resultMap.result.refnd.returnProcsSttusCdNm }"/>
</c:when>
<c:otherwise>
<c:out value="${ resultMap.result.refnd.refundProcsSttusCdNm }"/>
</c:otherwise>
</c:choose>
</td>
</tr>
<tr>
<th><c:if test = "${not empty resultMap.result.refnd.returnProcsSttusCd}">반품/</c:if>환불 번호</th>
<td><c:out value="${ resultMap.result.refnd.orderRefundInnb }"/></td>
</tr>
<tr>
<th>환불 종류</th>
<td><c:out value="${ resultMap.result.refnd.refundTyCdNm }"/></td>
</tr>
<c:if test = "${not empty resultMap.result.refnd.returnProcsSttusCd}">
<tr>
<th>반품 접수일</th>
<td><c:out value="${ resultMap.result.refnd.returnRceptDt }"/></td>
</tr>
</c:if>
<tr>
<th>환불 접수일</th>
<td><c:out value="${ resultMap.result.refnd.refundReqstDt }"/></td>
</tr>
<c:if test = "${not empty resultMap.result.refnd.returnComptDt}">
<tr>
<th>반품 완료일</th>
<td><c:out value="${ resultMap.result.refnd.returnComptDt }"/></td>
</tr>
</c:if>
<c:if test = "${not empty resultMap.result.refnd.refundComptDt}">
<tr>
<th>환불 완료일</th>
<td><c:out value="${ resultMap.result.refnd.refundComptDt }"/></td>
</tr>
</c:if>
</tbody>
</table>
</div>
</div>
<c:if test="${ not empty resultMap.result.refnd.returnRceptDt }">
<div class="sub-right-content__section">
<h3 class="sub-right-content__innerTitle">반품정보
<c:if test="${ resultMap.result.refnd.returnProcsSttusCd eq '01' }">
<button id="returnInfoTrigger" class="btn sm gray2 sub-right-content__innerTitleBtn" onclick="fn_update_dlvy_info();">변경</button>
</c:if>
</h3>
<form id="returnDlvyUpdtForm">
<input type="hidden" name="orderReInnb" value="<c:out value="${ resultMap.result.refnd.orderRefundInnb }"/>"/>
<div id="returnInfoContent01" class="table-wrapper orderDetail__table">
<c:choose>
<c:when test="${ resultMap.result.refnd.returnProcsSttusCd eq '01' }">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<!-- 각 열 width 설정 -->
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th>
<span class="orderDetail__thText">회수방법</span>
</th>
<td>
<div class="select-box">
<select class="lg" title="해당 셀렉트에 대한 설명" name="returnMthCd">
<option value="" disabled selected>선택</option>
<c:forEach var="cdList" items="${ resultMap.returnMthCdList }" varStatus="status">
<c:choose>
<c:when test="${ resultMap.result.refnd.returnMthCd eq cdList.cd }">
<option value="<c:out value="${ cdList.cd }"/>" selected="selected"><c:out value="${ cdList.cdNm }"/></option>
</c:when>
<c:otherwise>
<option value="<c:out value="${ cdList.cd }"/>"><c:out value="${ cdList.cdNm }"/></option>
</c:otherwise>
</c:choose>
</c:forEach>
</select>
</div>
</td>
</tr>
<tr>
<th>
<span class="editAccount__title">주소</span>
</th>
<td>
<div class="inputAddress">
<div class="inputAddress__postalCode">
<input class="input-text" type="text" id="postcode" name="zip" title="우편번호" value="<c:out value="${ resultMap.result.refnd.senderZip }"/>" placeholder="우편번호" readonly>
<button type="button" onclick="fn_select_postcode(fn_set_postcode); return false;" class="btn md theme outline">
우편번호 찾기
</button>
</div>
<input type="hidden" id="adresDvCd" name="adresDvCd" value="<c:out value="${ resultMap.result.refnd.senderAdresDvCd }"/>"/>
<input class="input-text full" type="text" id="address" name="lnbOrRnmAdres"
<c:choose>
<c:when test="${ resultMap.result.refnd.senderAdresDvCd eq '01' }">
value="<c:out value="${ resultMap.result.refnd.senderRnmAdres }"/>"
</c:when>
<c:when test="${ resultMap.result.refnd.senderAdresDvCd eq '02' }">
value="<c:out value="${ resultMap.result.refnd.senderLnbAdres }"/>"
</c:when>
</c:choose>
readonly title="지번 주소" placeholder="지번 주소">
<input class="input-text full" type="text" id="detailAddress" name="dtlAdres" value="<c:out value="${ resultMap.result.refnd.senderAdresDtl }"/>" title="상세 주소" placeholder="상세 주소">
</div>
</td>
</tr>
<tr>
<th>
<span class="orderDetail__thText">휴대폰 번호</span>
</th>
<td>
<input class="input-text" type="text" title="해당 인풋에 대한 설명" value="<c:out value="${ resultMap.result.refnd.returnCstmrMbtlnb }"/>" name="returnCstmrMbtlnb" oninput="fn_fmt_telno($(this));" maxlength="13"
placeholder="">
</td>
</tr>
<tr>
<th>
<span class="orderDetail__thText">반품 사유</span>
</th>
<td>
<div class="select-box">
<select class="lg" title="해당 셀렉트에 대한 설명" name="returnResnCd">
<c:forEach var="returnResn" items="${resultMap.returnResnList}">
<c:choose>
<c:when test="${ returnResn.cd eq resultMap.result.refnd.returnResnCd }">
<option value="<c:out value="${returnResn.cd}"/>" selected="selected"><c:out value="${returnResn.cdNm}"/></option>
</c:when>
<c:otherwise>
<option value="<c:out value="${returnResn.cd}"/>"><c:out value="${returnResn.cdNm}"/></option>
</c:otherwise>
</c:choose>
</c:forEach>
</select>
</div>
</td>
</tr>
<tr>
<th>
<span class="orderDetail__thText">상세 사유</span>
</th>
<td>
<textarea class="textarea" rows="6" title="해당 텍스트 에어리어에 대한 설명" name="returnResnCn"
placeholder="최소 10자 이상으로 입력해 주세요."><c:out value="${ resultMap.result.refnd.returnResnCn }"/></textarea>
</td>
</tr>
</tbody>
</table>
</c:when>
<c:otherwise>
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<!-- 각 열 width 설정 -->
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th>
<span class="orderDetail__thText">회수방법</span>
</th>
<td>
<c:out value="${ resultMap.result.refnd.returnMthCdNm }"/>
</td>
</tr>
<tr>
<th>
<span class="orderDetail__thText">주소</span>
</th>
<td>
<c:if test="${ not empty resultMap.result.refnd.senderZip }">
(<c:out value="${ resultMap.result.refnd.senderZip }"/>)
</c:if>
<c:choose>
<c:when test="${ resultMap.result.refnd.senderAdresDvCd eq '01'}">
<c:out value="${ resultMap.result.refnd.senderRnmAdres }"/>
</c:when>
<c:when test="${ resultMap.result.refnd.senderAdresDvCd eq '02'}">
<c:out value="${ resultMap.result.refnd.senderLnbAdres }"/>
</c:when>
</c:choose>
<c:out value="${ resultMap.result.refnd.senderAdresDtl }"/>
</td>
</tr>
<tr>
<th>
<span class="orderDetail__thText">휴대폰 번호</span>
</th>
<td>
<c:out value="${ resultMap.result.refnd.returnCstmrMbtlnb }"/>
</td>
</tr>
<tr>
<th>
<span class="orderDetail__thText">반품 사유</span>
</th>
<td>
<c:out value="${ resultMap.result.refnd.returnResnCdNm }"/>
</td>
</tr>
<tr>
<th>
<span class="orderDetail__thText">상세 사유</span>
</th>
<td>
<c:out value="${ resultMap.result.refnd.returnResnCn }"/>
</td>
</tr>
<tr>
<th>
<span class="orderDetail__thText">배송비 입금</span>
</th>
<td>
<%--우리은행 1005-102-768159<br>(예금주: ㈜에스엘바이오텍)--%>
<c:if test="${ not empty resultMap.result.refnd.returnDlvyRcpmnyAcntnb }">
<c:out value="${ resultMap.result.refnd.returnDlvyRcpmnyAcntnb }"/><br>(예금주: <c:out value="${ resultMap.result.refnd.returnDlvyRcpmnyNm }"/>)
</c:if>
</td>
</tr>
</tbody>
</table>
</c:otherwise>
</c:choose>
</div>
</form>
</div>
</c:if>
<div class="sub-right-content__section">
<h3 class="sub-right-content__innerTitle">환불정보
<c:if test="${ resultMap.result.refnd.refundProcsSttusCd ne '03' }">
<button id="refundInfoTrigger" class="btn sm gray2 sub-right-content__innerTitleBtn" onclick="fn_update_acnt_info();">변경</button>
</c:if>
</h3>
<form id="refundAcntUpdtForm">
<input type="hidden" name="orderReInnb" value="<c:out value="${ resultMap.result.refnd.orderRefundInnb }"/>"/>
<div id="refundInfoContent01" class="table-wrapper orderDetail__table">
<c:choose>
<c:when test="${ resultMap.result.refnd.refundProcsSttusCd eq '03' }">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<!-- 각 열 width 설정 -->
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th>
<span class="orderDetail__thText">환불은행</span>
</th>
<td>
<c:out value="${ resultMap.result.refnd.refundAcntBnnkNm }"/>
</td>
</tr>
<tr>
<th>
<span class="orderDetail__thText">예금주</span>
</th>
<td>
<c:out value="${ resultMap.result.refnd.refundAcntDpstrNm }"/>
</td>
</tr>
<tr>
<th>
<span class="orderDetail__thText">계좌번호</span>
</th>
<td>
<c:out value="${ resultMap.result.refnd.refundAcntnb }"/>
</td>
</tr>
<tr>
<th>
<span class="orderDetail__thText">취소 사유</span>
</th>
<td>
<c:out value="${ resultMap.result.refnd.returnResnCdNm }"/>
</td>
</tr>
<tr>
<th>
<span class="orderDetail__thText">상세 사유</span>
</th>
<td>
<c:out value="${ resultMap.result.refnd.returnResnCn }"/>
</td>
</tr>
</tbody>
</table>
</c:when>
<c:otherwise>
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<!-- 각 열 width 설정 -->
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th>
<span class="orderDetail__thText">환불은행</span>
</th>
<td>
<%--
<input class="input-text" type="text" title="환불은행" value="<c:out value="${ resultMap.result.refnd.refundAcntBnnkNm }"/>" name="refundAcntBnnkNm"
placeholder="환불은행">
--%>
<div class="select-box">
<select class="sm" title="해당 셀렉트에 대한 설명" name="refundAcntBnnkNm" id="refundAcntBnnkNm">
<c:forEach var="cdList" items="${ resultMap.bankCdList }" varStatus="status">
<c:choose>
<c:when test="${ cdList.cd eq resultMap.result.refnd.refundAcntBnnkCd }">
<option value="<c:out value="${ cdList.cd }"/>,<c:out value="${ cdList.cdNm }"/>" selected="selected" ><c:out value="${ cdList.cdNm }"/></option>
</c:when>
<c:otherwise>
<option value="<c:out value="${ cdList.cd }"/>,<c:out value="${ cdList.cdNm }"/>" ><c:out value="${ cdList.cdNm }"/></option>
</c:otherwise>
</c:choose>
</c:forEach>
</select>
</div>
</td>
</tr>
<tr>
<th>
<span class="orderDetail__thText">예금주</span>
</th>
<td>
<input class="input-text" type="text" title="예금주명" value="<c:out value="${ resultMap.result.refnd.refundAcntDpstrNm }"/>" name="refundAcntDpstrNm"
placeholder="예금주명">
</td>
</tr>
<tr>
<th>
<span class="orderDetail__thText">계좌번호</span>
</th>
<td>
<input class="input-text" type="text" title="계좌번호" value="<c:out value="${ resultMap.result.refnd.refundAcntnb }"/>" name="refundAcntnb"
placeholder="계좌번호 '-' 포함 or 숫자만 확인 필요">
</td>
</tr>
<tr>
<th>
<span class="orderDetail__thText">환불사유내용</span>
</th>
<td>
<c:out value="${ resultMap.result.refnd.refundResnCn }"/>
</td>
</tr>
<%--
<tr>
<th>
<span class="orderDetail__thText">취소 사유</span>
</th>
<td>
<div class="select-box">
<select class="lg" title="해당 셀렉트에 대한 설명">
<option value="" disabled selected>선택</option>
<option value="">고객 단순 변심</option>
</select>
</div>
</td>
</tr>
<tr>
<th>
<span class="orderDetail__thText">상세 사유</span>
</th>
<td>
<textarea class="textarea" rows="6" title="해당 텍스트 에어리어에 대한 설명" name="refundResnCn"
placeholder="최소 10자 이상으로 입력해 주세요."><c:out value="${ resultMap.result.refnd.refundResnCn }"/></textarea>
</td>
</tr>
--%>
</tbody>
</table>
</c:otherwise>
</c:choose>
</div>
</form>
</div>
<div class="sub-right-content__section">
<h3 class="sub-right-content__innerTitle">
환불 금액
</h3>
<div class="priceSum">
<c:set var="reTotAmt" value="${ resultMap.result.totRefundDscntAmt }"/>
<div class="priceSum__inner">
<div class="priceSum__item">
<span class="priceSum__itemTitle"><c:out value="${ reTotAmt.setleTyCdNm }"/></span>
<span class="priceSum__itemPrice">
<span class="comma priceSum__itemNum"><c:out value="${ reTotAmt.refundAmtQySum }"/></span>
<span class="priceUnit">원</span>
</span>
</div>
<div class="priceSum__operator">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"
viewBox="0 0 16 16" fill="none">
<g clip-path="url(#clip0_160_29539)">
<path
d="M8.99824 7.00176V0H7.00176V7.00176H0V8.99824H7.00176V16H8.99824V8.99824H16V7.00176H8.99824Z"
fill="black" />
</g>
<defs>
<clipPath id="clip0_160_29539">
<rect width="16" height="16" fill="white" />
</clipPath>
</defs>
</svg>
</div>
<div class="priceSum__item priceSum__item--misc">
<span class="priceSum__itemTitle">마일리지</span>
<span class="priceSum__itemPrice">
<span class="comma priceSum__itemNum"><c:out value="${ reTotAmt.totRefundMlgAmt }"/></span>
<span class="priceUnit">원</span>
</span>
</div>
<!-- 마이너스 -->
<!-- <div class="priceSum__operator">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"
fill="none">
<path d="M16 7H0V9.00002H16V7Z" fill="black" />
</svg>
</div> -->
<div class="priceSum__operator">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"
viewBox="0 0 16 16" fill="none">
<g clip-path="url(#clip0_160_29539)">
<path
d="M8.99824 7.00176V0H7.00176V7.00176H0V8.99824H7.00176V16H8.99824V8.99824H16V7.00176H8.99824Z"
fill="black" />
</g>
<defs>
<clipPath id="clip0_160_29539">
<rect width="16" height="16" fill="white" />
</clipPath>
</defs>
</svg>
</div>
<div class="priceSum__item priceSum__item--misc">
<span class="priceSum__itemTitle">쿠폰</span>
<span class="priceSum__itemPrice">
<span class="comma priceSum__itemNum"><c:out value="${ reTotAmt.totRefundCouponAmt }"/></span>
<span class="priceUnit">원</span>
</span>
</div>
<c:if test="${ reTotAmt.rlDlvyAmtRefundAmt > 0}">
<div class="priceSum__operator">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"
fill="none">
<path d="M16 7H0V9.00002H16V7Z" fill="black" />
</svg>
</div>
<div class="priceSum__item priceSum__item--misc">
<span class="priceSum__itemTitle">반품배송비</span>
<span class="priceSum__itemPrice">
<span class="comma priceSum__itemNum"><c:out value="${ reTotAmt.rlDlvyAmtRefundAmt }"/></span>
<span class="priceUnit">원</span>
</span>
</div>
</c:if>
<c:if test="${ reTotAmt.totReturnDlvyAmt > 0}">
<div class="priceSum__operator">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"
viewBox="0 0 16 16" fill="none">
<g clip-path="url(#clip0_160_29539)">
<path
d="M8.99824 7.00176V0H7.00176V7.00176H0V8.99824H7.00176V16H8.99824V8.99824H16V7.00176H8.99824Z"
fill="black" />
</g>
<defs>
<clipPath id="clip0_160_29539">
<rect width="16" height="16" fill="white" />
</clipPath>
</defs>
</svg>
</div>
<div class="priceSum__item priceSum__item--misc">
<span class="priceSum__itemTitle">환불배송비</span>
<span class="priceSum__itemPrice">
<span class="comma priceSum__itemNum"><c:out value="${ reTotAmt.totReturnDlvyAmt }"/></span>
<span class="priceUnit">원</span>
</span>
</div>
</c:if>
<div class="priceSum__equals">
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28"
viewBox="0 0 28 28" fill="none">
<path d="M3.5 17.5H24.5V19.8333H3.5V17.5Z" fill="black" />
<path d="M3.5 8.16699H24.5V10.5003H3.5V8.16699Z" fill="black" />
</svg>
</div>
<div class="priceSum__total">
<span class="priceSum__totalTitle">환불 금액</span>
<div class="priceSum__totalPrice">
<span class="comma"><c:out value="${ reTotAmt.rlRefundAmt }"/></span>
<span class="priceUnit">원</span>
</div>
<div class="priceSum__totalDetail">
(상품금액 <span class="comma"><c:out value="${ reTotAmt.refundAmtQySum }"/></span>원 + 배송비 <span class="comma"><c:out value="${ reTotAmt.rlDlvyAmt }"/></span>원)
</div>
</div>
</div>
</div>
</div>
<!--
<div class="refundProcess">
<ol class="refundProcess__list">
<li class="refundProcess__item">
<span class="refundProcess__num">1</span>
<span class="refundProcess__title">반품/교환 신청</span>
<p class="refundProcess__text">고객님의 반품/교환 신청이<br>접수되었습니다.</p>
</li>
<li class="refundProcess__item">
<span class="refundProcess__num">2</span>
<span class="refundProcess__title">반품/교환 처리중</span>
<p class="refundProcess__text">고객님의 반품을<br>처리중입니다.</p>
</li>
<li class="refundProcess__item">
<span class="refundProcess__num">3</span>
<span class="refundProcess__title">반품/교환 완료</span>
<p class="refundProcess__text">고객님<br>반품이 완료되었습니다.</p>
</li>
</ol>
</div>
-->
<div class="sub-bottom-btn-container">
<button type="button" class="btn xl outline theme" onclick="fn_order_refund_list();">반품 / 환불 목록</button>
</div>
</div>
</div>
</div>
</div>
</main>
<form id="listForm">
<input type="hidden" id="orderRefundInnb" name ="orderRefundInnb"/>
<input type="hidden" id="pageIndex" name="pageIndex" value="${ paramVO.pageIndex }"/>
<input type="hidden" id="recordCountPerPage" name="recordCountPerPage" value="${ paramVO.recordCountPerPage }"/>
<input type="hidden" id="pageUnit" name="pageUnit" value="${ paramVO.pageUnit }"/>
</form>
<%-- 공통 Footer --%>
<jsp:include page="/WEB-INF/views/comm/Footer.jsp"/>
<!-- 모달 -->
<div id="modalDiv">
</div>
</body>
</html>

View File

@@ -0,0 +1,275 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : WslistInqireRForm.jsp
Description : 마이페이지 위시리스트
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-02-27 추지훈 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<%-- 공통 include --%>
<jsp:include page="/WEB-INF/views/comm/Include.jsp"/>
</head>
<script>
$(document).ready(function() {
// fn_set_param();
let pageIndex = '<c:out value="${ resultMap.paramVO.pageIndex }"/>';
let pageUnit = '<c:out value="${ resultMap.paramVO.pageUnit }"/>';
fn_select_refund_list(pageIndex, pageUnit);
fn_start_display();
});
/******************************************************************
* 시작 화면 제어
******************************************************************/
const fn_start_display = function() {
/* 검색조건 > 날짜 구간 버튼 클릭 이벤트 */
$('.dateRange-btn').on('click', function() {
const date = $(this).attr('id');
$(this).closest('div').find('#dateRange').val(date);
if ('allDays' === date) {
$('#bgnDt, #endDt').val('');
return false;
}
fn_set_date('bgnDt', 'endDt', 'endDt', date);
});
/* 검색 버튼 클릭 이벤트 */
$('#btnSearch').on('click', function() {
fn_select_refund_list(1);
});
}
/* 검색조건 세팅 */
const fn_set_param = function() {
const params = ${paramVO};
const keys = Object.keys(params);
for (let i = 0; i < keys.length; i++) {
let key = keys[i];
let data = params[key];
if ('bgnDt' == key || 'endDt' == key) {
if (!fn_is_empty(data)) {
for (let i = 0; i < data.length; i++) {
$('#' + key).val(data);
}
}
}
if ('dateRange' == key) {
$('#'+ data).trigger('click');
}
if ('srchwrd' == key) {
$('#' + key).val(data);
}
}
}
/******************************************************************
* 반품/환불 목록 조회
******************************************************************/
const fn_select_refund_list = function(pageIndex, pageUnit) {
let dataStr;
if(!pageIndex) {
$('#pageIndex').val(1);
} else {
$('#pageIndex').val(pageIndex);
}
if(!pageUnit) {
dataStr = $('#listForm').serialize();
} else {
if($('#pageUnit').length){
$('#pageUnit').val(pageUnit);
dataStr = $('#listForm').serialize();
} else {
dataStr = $('#listForm').serialize()+'&pageUnit='+pageUnit;
}
}
$('#pageIndex').val(pageIndex);
$.ajax({
type: "post",
url : '<c:url value="/sopmal/mpage/ordr/selectRtngudCanclRefndInqire"/>',
data : dataStr,
success:function(resultHtml) {
$('#pageDiv').empty();
$('#pageDiv').html(resultHtml);
}
});
}
/****************************************************
* 반품환불 상세 수정폼 이동
*****************************************************/
const fn_move_dtlupdt = function(orderReInnb, ordrInnb) {
$('#listForm').attr('action', '<c:url value="/sopmal/mpage/ordr/selectRtngudCanclRefndDtlInqire"/>');
$('#listForm').attr('method', 'get');
$('#orderReInnb').val(orderReInnb);
$('#ordrInnb').val(ordrInnb);
$('#listForm').submit();
}
/* 주문상세 이동 */
const fn_go_ordr_dtl = function (sopmalCd, ordrInnb) {
var form = $('#listForm');
$(form).append($('<input/>', {type: 'hidden', name: 'sopmalCd', id: 'sopmalCd', value: sopmalCd}));
$('#ordrInnb').val(ordrInnb);
$(form).attr('method', 'get');
$(form).attr('action', '<c:url value="/sopmal/mpage/ordr/selectMbrOrdrDtlInqire"/>');
$(form).submit();
}
</script>
<body>
<%-- 공통 Header --%>
<jsp:include page="/WEB-INF/views/comm/Header.jsp"/>
<!-- 메인 컨텐츠 영역 -->
<main>
<div class="sub-wrapper">
<div class="sub-content">
<div class="sub-rl">
<%-- 마이페이지 Left 영역 --%>
<jsp:include page="/WEB-INF/views/comm/mpage/MypageLeft.jsp"/>
<div class="sub-right-content">
<%-- 마이페이지 Right 영역 --%>
<jsp:include page="/WEB-INF/views/comm/mpage/MypageRight.jsp"/>
<div class="sub-right-content__section">
<h3 class="sub-right-content__title">반품 / 교환 / 취소·환불 </h3>
<form id="listForm">
<input type="hidden" id="orderReInnb" name="orderReInnb" value=""/>
<input type="hidden" id="ordrInnb" name="ordrInnb" value=""/>
<input type="hidden" id="pageIndex" name="pageIndex" value="${ resultMap.paramVO.pageIndex}"/>
<input type="hidden" id="pageUnit" name="pageUnit" value="${ resultMap.paramVO.pageUnit}"/>
<div class="customer-search">
<div class="customer-search__row justify-start">
<input type="text" name="srchwrd" id="srchwrd" class="input-text customer-search__search" title="검색어 입력" placeholder="주문번호, 상품명 검색">
</div>
<div class="customer-search__row justify-start">
<div class="customer-search__controls">
<div class="dateRange-btnContainer">
<input type="hidden" name="dateRange" id="dateRange" value="allDays">
<button type="button" class="dateRange-btn" id="7D">일주일</button>
<button type="button" class="dateRange-btn" id="1M">1개월</button>
<button type="button" class="dateRange-btn" id="3M">3개월</button>
<button type="button" class="dateRange-btn selected" id="allDays">전체</button>
</div>
<div class="input-container">
<input type="text" name="bgnDt" id="bgnDt" class="datepicker" title="시작 날짜 선택" autocomplete="off">
<span class="tilde">~</span>
<input type="text" name="endDt" id="endDt" class="datepicker" title="종료 날짜 선택" autocomplete="off">
</div>
</div>
<button type="button" id="btnSearch" class="btn md dark">검색</button>
</div>
</div>
<div class="sub-tab">
<%--
<div class="sub-tab__trigger">
<button class="sub-tab__btn current">전체</button>
<button class="sub-tab__btn">환불</button>
<button class="sub-tab__btn">교환/반품</button>
</div>
--%>
<div id="pageDiv">
</div>
<%--
<div class="sub-tab__content">
2
</div>
<div class="sub-tab__content">
3
</div>
--%>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</main>
<%-- 공통 Footer --%>
<jsp:include page="/WEB-INF/views/comm/Footer.jsp"/>
<!-- 상품 옵션 변경 모달 -->
<div id="goodsOptionDiv">
</div>
<script>
//장바구니 전체선택
$('#cartCheckAll').click(function () {
if ($('#cartCheckAll').is(':checked')) {
$('.cartCheck').prop('checked', true);
} else {
$('.cartCheck').prop('checked', false);
}
});
$('.cartCheck').click(function () {
if ($('.cartCheck').length == $('.cartCheck:checked').length) {
$('#cartCheckAll').prop('checked', true);
} else {
$('#cartCheckAll').prop('checked', false);
}
});
</script>
<!-- 모달 -->
</body>
</html>

View File

@@ -0,0 +1,89 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : RtngudCanclRefndListR.jsp
Description : 마이페이지 반품/환불 내역
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-03-27 추지훈 최초 생성
--%>
<div class="sub-tab__content current">
<div class="orderList">
<c:choose>
<c:when test="${ not empty resultMap.resultList && fn:length(resultMap.resultList) > 0 }">
<c:forEach var="refundList" items="${ resultMap.resultList }" varStatus="status">
<div class="orderList__item">
<div class="orderList__item__inner">
<%--
<a href="" class="orderList__image">
<img src="<c:out value="${ refundList.img }"/>" alt="상품 이미지">
</a>
--%>
<a href="<c:url value="/sopmal/goods/selectGoodsDtl?sopmalCd=${refundList.sopmalCd}&goodsInnb=${refundList.goodsInnb}"/>" class="orderList__image">
<spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/>
<img src="<c:out value="${ cdnurl }${ refundList.img }"/>" onerror="this.src='/pc/images/image_placeholder.png'" alt="<c:out value="${refundList.goodsNm}"/>">
</a>
<div class="orderList__description">
<div class="orderList__description__first">
<div class="orderList__item__top">
<button class="orderList__orderNum" onclick="fn_go_ordr_dtl('<c:out value="${ refundList.sopmalCd }"/>', '<c:out value="${ refundList.ordrInnb }"/>');">
<c:out value="${ refundList.ordrInnb }"/>
</button>
<c:if test = "${refundList.refundProcsSttusCd eq '03'}">
<span class="orderList__dot">·</span>
<span class="orderList__date">
<c:out value="${ refundList.refundComptDt }"/> 환불완료
</span>
</c:if>
</div>
<button type="button" onclick="fn_move_dtlupdt('<c:out value="${ refundList.orderRefundInnb }"/>', '<c:out value="${ refundList.ordrInnb }"/>');" class="orderList__productTitle"><c:out value="${ refundList.goodsNm }"/></button>
</div>
<div class="orderList__description__second">
<span class="orderList__price">
<span class="comma"><c:out value="${ refundList.refundAmt }"/></span>원
</span>
</div>
<div class="orderList__description__third">
<span class="orderList__refundCategory"><c:out value="${ refundList.refundTyCdNm }"/></span>
</div>
<div class="orderList__description__fourth">
<button type="button" class="orderList__status cancel">
<c:choose>
<c:when test="${ not empty refundList.returnRceptDt }">
<c:out value="${ refundList.returnProcsSttusCdNm }"/>
</c:when>
<c:otherwise>
<c:out value="${ refundList.refundProcsSttusCdNm }"/>
</c:otherwise>
</c:choose>
</button>
</div>
<div class="orderList__btnControls">
<span class="orderList__refundCategory"><c:out value="${ refundList.refundReqstDt }"/></span>
</div>
</div>
</div>
</div>
</c:forEach>
</c:when>
<c:otherwise>
<div class="orderList__no-result">
<img src="<c:url value="/pc/images/icon__no-result.png"/>" alt="">
<p class="orderList__no-result-text">반품/환불내역이 없습니다.</p>
</div>
</c:otherwise>
</c:choose>
</div>
<div class="pagination__container">
<ui:pagination paginationInfo="${resultMap.paginationInfo}" type="image" jsFunction="fn_select_refund_list" />
</div>
</div>

View File

@@ -0,0 +1,139 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : WslistInqireR.jsp
Description : 마이페이지 위시리스트
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-03-27 추지훈 최초 생성
--%>
<script>
$(document).ready(function() {
//해당 클래스를 가진 요소 3자리 마다 콤마
$(".comma").each(function () {
var text = $(this).text();
$(this).text(text.replace(/(\d)(?=(?:\d{3})+(?!\d))/g, "$1,"));
});
});
</script>
<div class="cartOrder__list">
<div class="table-wrapper">
<spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/>
<table class="table vertical">
<caption>해당 테이블에 대한 설명</caption>
<!-- 각 열 width 설정 -->
<colgroup>
<col style="width: auto;">
<col style="width: 140px;">
<col style="width: 20px;">
<col style="width: 200px">
</colgroup>
<tbody id="wishListTbody">
<c:choose>
<c:when test="${ not empty resultMap.resultList && fn:length(resultMap.resultList) > 0 }">
<c:forEach items="${ resultMap.resultList }" var="list" varStatus="status">
<tr>
<td>
<input type="hidden" name="wslistInnb" value="<c:out value="${ list.wslistInnb }"/>"/>
<input type="hidden" name="goodsInnb" value="<c:out value="${ list.goodsInnb }"/>"/>
<div class="cartItem">
<div class="b-checkbox-container">
<label class="b-checkbox checkbox">
<input class="cartCheck" type="checkbox" value="" onclick="fn_ctr_pCheckbox('#cartCheckAll', '.cartCheck');">
<span class="check"></span>
<span class="control-label"></span>
</label>
</div>
<div class="cartItem__image">
<a href="<c:url value="/sopmal/goods/selectGoodsDtl?sopmalCd=${list.sopmalCd}&goodsInnb=${list.goodsInnb}"/>">
<img src="<c:out value="${ cdnurl }${ list.img }"/>" onerror="this.src='/pc/images/image_placeholder.png'" alt="${ list.goodsNm }">
</a>
</div>
<div class="cartItem__productInfo">
<a href="" class="cartItem__productTitle"><c:out value="${ list.goodsNm }"/></a>
<%--
<button type="button" onclick="fn_open_modal('#goodsOptionDiv', '#option-change-popUp', '/sopmal/mpage/ordr/selectGoodsOptnSlcPopup', JSON.stringify({'goodsInnb':${list.goodsInnb}}));"
class="btn xsm outline">옵션선택</button>
--%>
</div>
<%-- <span class="">
판매가 : ${list.orgSlepric }<br>
이벤트 할인 금액 : ${list.evtAditDscntAmt }<br>
상품쿠폰할인 금액 : ${list.gdAditDscntAmt }<br>
상품쿠폰 적용 후 판매금액 : ${list.gdSlepric }<br>
(CT_ADIT_DSCNT_CD) : ${list.ctAditDscntCd }<br>
(CT_ADIT_DSCNT_AMT) : ${list.ctAditDscntAmt }<br>
(CT_DSCNT_MXMM_AMT) : ${list.ctDscntMxmmAmt }<br>
장바구니 할인 금액(RL_CT_ADIT_DSCNT_AMT) : ${list.rlCtAditDscntAmt }<br>
장바구니 후 최종 판매가 : ${list.slepric }<br>
할인율 : ${list.slePercent }
</span>--%>
</div>
</td>
<td>
<span class="cartItem__beforePrice"><span
class="comma"><fmt:parseNumber value="${ list.cnsmrpric }"/></span> 원</span>
<span class="cartItem__afterPrice"><span
class="comma"><fmt:parseNumber value="${ list.slepric }"/></span><span
class="priceUnit"> 원</span></span>
</td>
<td>
</td>
<td>
<c:choose>
<c:when test="${list.goodsSttusCd eq '01'}">
<button class="btn theme md" type="button" onclick="fn_open_addCart_modal('#goodsOptionDiv', '#option-change-popUp', '/sopmal/mpage/ordr/selectGoodsOptnSlcPopup', JSON.stringify({'goodsInnb':${list.goodsInnb}}));">장바구니 담기</button>
</c:when>
<c:otherwise>
<button class="btn theme md" type="button" disabled>${list.goodsSttusNm}</button>
</c:otherwise>
</c:choose>
</td>
</tr>
</c:forEach>
</c:when>
<c:otherwise>
<tr>
<td colspan="4">
<div class="table__no-result">
<img src="/pc/images/icon__no-result.png" alt="">
<p class="table__no-result-text">
위시리스트에 담긴 상품이 없습니다.
</p>
</div>
</td>
</tr>
</c:otherwise>
</c:choose>
</tbody>
</table>
</div>
<%--
<div class="myWishlist__bottomBtnWrapper">
<button class="btn theme md" type="button" onclick="fn_delete_selectTr();">선택상품 장바구니</button>
</div>
--%>
</div>
<div class="pagination__container">
<ui:pagination paginationInfo="${resultMap.paginationInfo}" type="image" jsFunction="fn_select_wish_list" />
</div>

View File

@@ -0,0 +1,925 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : WslistInqireRForm.jsp
Description : 마이페이지 위시리스트
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-02-27 추지훈 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<%-- 공통 include --%>
<jsp:include page="/WEB-INF/views/comm/Include.jsp"/>
</head>
<script>
$(document).ready(function() {
let pageIndex = '<c:out value="${ resultMap.paramVO.pageIndex }"/>';
let pageUnit = '<c:out value="${ resultMap.paramVO.pageUnit }"/>';
fn_select_wish_list(pageIndex, pageUnit);
});
//위시리스트 옵션선택 배열
let productArr = [];
/********************************************
* 위시리스트 선택 삭제
********************************************/
const fn_delete_wishlist = function (tbodySltr, pageIndex, pageUnit) {
var $tbody = $(tbodySltr);
let arr = [];
// 체크된 input 찾기
$tbody.find('input[type="checkbox"]:checked').each(function () {
let closestInput = $(this).closest('tr').find('input[name="wslistInnb"]');
let value = closestInput.val();
arr.push(value);
});
if (arr.length > 0) {
if (confirm('상품을 <spring:message code="confirm.common.delete"/>')) {
$.ajax({
type: "post",
url: '<c:url value="/sopmal/mpage/ordr/deleteWslistGoodsDel"/>',
data: {
wslistInnbArr: arr
},
success: function (result) {
alert('<spring:message code="success.common.delete"/>');
fn_select_wish_list(pageIndex, pageUnit);
}
});
}
} else {
alert("삭제할 상품을 선택해 주세요.");
}
};
/************************************************
* 위시리스트 목록 조회
*************************************************/
const fn_select_wish_list = function(pageIndex, pageUnit) {
let dataStr;
if(!pageIndex) {
$('#pageIndex').val(1);
} else {
$('#pageIndex').val(pageIndex);
}
if(!pageUnit) {
dataStr = $('#listForm').serialize();
} else {
if($('#pageUnit').length){
$('#pageUnit').val(pageUnit);
dataStr = $('#listForm').serialize();
} else {
dataStr = $('#listForm').serialize()+'&pageUnit='+pageUnit;
}
}
$('#pageIndex').val(pageIndex);
$.ajax({
type: "post",
url : '<c:url value="/sopmal/mpage/ordr/selectWslistInqire"/>',
data : dataStr,
success:function(resultHtml) {
$('#pageDiv').html(resultHtml);
}
});
}
//인풋 생성함수
const fn_create_input = function (type, name, value, tgtForm) {
const input = document.createElement('input');
input.setAttribute("type", type);
input.setAttribute("name", name);
input.setAttribute("value", value);
tgtForm.appendChild(input);
}
//장바구니 담기 처리
const fn_add_cart = (gubun, data, goodsInnb) => {
const url = "<c:url value="/sopmal/ordr/insertSpbk"/>";
$.ajax({
type: 'post',
enctype: 'multipart/form-data',
url: url,
data: data,
contentType: false,
processData: false,
success: function (data) {
if (data.resBody != null) {
const result = JSON.parse(data.resBody.result);
if (result.result === 'success') {
if (gubun === 'cart') {
fn_cart_modal()
fn_reflesh_cart_cnt();
$('.addCart').prop("disabled", false);
}
if (gubun === 'direct') {
//구매화면 이동
fn_move_purchs_order(goodsInnb);
$('.purchsOrdr').prop('disabled', false);
}
} else {
alert('구매정보 <spring:message code="fail.common.insert"/>');
$('.addCart').prop("disabled", false);
$('.purchsOrdr').prop('disabled', false);
}
}
}
});
}
/*************************************************************
장바구니 목록 이동
**************************************************************/
const fn_move_cart_list = () => {
const form = $('<form></form>');
$(form).append($('<input/>', {type: 'hidden', name: 'cartDvCd', value: $('#cartDv-cart').val()}));
$(form).attr('target', '_self');
$(form).attr('method', 'post');
$(form).attr('action', '<c:url value="/sopmal/ordr/selectSpbk"/>');
$(form).appendTo('body');
//일반옵션 체크 해제
$('input[type="radio"]').prop('checked', false)
$(form).submit();
$(form).remove();
}
//구매하기 클릭 후 구매목록 이동
const fn_move_purchs_order = (goodsInnb) => {
<%--/* 구매하기 버튼 선택 이벤트 */--%>
const form = $('<form></form>');
$(form).append($('<input/>', {type: 'hidden', name: 'goodsInnb', value: goodsInnb}));
$(form).append($('<input/>', {type: 'hidden', name: 'cartDvCd', value: $('#cartDv-direct').val()}));
$(form).attr('method', 'post');
$(form).attr('action', '<c:url value="/sopmal/ordr/selectMbrPurchsForm"/>');
$(form).appendTo('body');
//일반옵션 체크 해제
$('input[type="radio"]').prop('checked', false)
$(form).submit();
$(form).remove();
}
//장바구니 담기 후 모달
const fn_cart_modal = () => {
const modal = `<div id="addCartModalDiv" class="modal alert">
<div class="alert-content">
<p class="alert-content__text--sm">
상품이 장바구니에 담겼습니다.
<br>
지금 확인하시겠습니까?
</p>
</div>
<div class="alert-btn-container">
<a href="javascript:void(0);" onclick="fn_move_cart_list();" rel="modal:close" class="alert-btn alert-btn--confirm">예</a>
<a href="javascript:void(0);" onclick="fn_close_modal('option-change-popUp');" rel="modal:close" class="alert-btn alert-btn--confirm">아니오</a>
</div>
</div>`;
//장바구니 담은 후 페이지 이동 여부 모달
$('#addCartModalDiv').remove()
$('#addCartDiv').html(modal)
$('#addCartModalDiv').modal()
}
//장바구니 버튼 팝업 모달
const fn_open_addCart_modal = function (modalDivSltr, modalSlrt, url, param, callback) {
const submitType = 'POST';
$.ajax({
type: submitType,
contentType: 'application/json',
url: url,
data: param,
success: function (data) {
//callback함수가 없을 경우 default로 지정된 영역에 모달팝업 화면을 교체하고 화면 로딩
if (!callback) {
//이전에 선택한 상품 초기화
productArr = [];
$(modalSlrt).remove();
$(modalDivSltr).html(data);
$(modalSlrt).modal();
} else {
callback(data);
}
}
});
}
//상품 중복 선택 모달
const fn_goods_duplicate_select_modal = () => {
const modal = `<div id="goodsDuplicateModalDiv" class="modal alert">
<div class="alert-content">
<p class="alert-content__text--sm">
중복된 상품입니다.
</p>
</div>
<div class="alert-btn-container">
<a href="javascript:void(0);" rel="modal:close" class="alert-btn alert-btn--confirm">확인</a>
</div>
</div>`;
//재고옵션 옵션 값 초기화
$('select[name="selectInvntryOptn"]').not(':first').each(function() {
$(this).find('option').each(function () {
// value가 빈 문자열이 아닌 경우에만 삭제
if ($(this).val() !== '') {
$(this).remove().niceSelect('update');
}
});
});
$('select[name="selectInvntryOptn"]').val('').niceSelect('update')
//함께하면 좋은상품 옵션 값 초기화
$('select[name="selectRelateInvntryOptn"]').not(':first').each(function() {
$(this).find('option').each(function () {
// value가 빈 문자열이 아닌 경우에만 삭제
if ($(this).val() !== '') {
$(this).remove().niceSelect('update');
}
});
});
//추가구성옵션 옵션 값 초기화
$('select[name="selectAddedOptn"]').val('').niceSelect('update')
$('select[name="selectRelateInvntryOptn"]').val('').niceSelect('update')
$('select[name="selectRelateAddedOptn"]').val('').niceSelect('update')
//모달 처리
$('#goodsDuplicateModalDiv').remove()
$('#goodsDuplicateDiv').html(modal)
$('#goodsDuplicateModalDiv').modal()
}
/*************************************************************
장바구니 버튼
**************************************************************/
$(document).on('click', '.addCart', function () {
$('.addCart').prop("disabled", true);
if($('#hiddenForm') != null){
$('#hiddenForm').remove()
}
//상품 선택 확인
if(productArr.length <= 0){
alert('상품옵션을 선택해 주세요');
$('.addCart').prop("disabled", false);
return;
}
//추가구성옵션 - 필수추가구성옵션 있는지 확인
var values = $('input[name="productDetailInfo__additionalSelect__otpnEssntlAt__relate__added"]').map(function() {
return $(this).val();
}).get();
if(values.includes('Y')){
var isAddedOptnEssntlAt = productArr.some(function (item) {
return item[6] === 'Y'
});
if(!isAddedOptnEssntlAt){
alert('필수추가옵션을 선택해 주세요');
$('.addCart').prop("disabled", false);
return;
}
}
const hiddenForm = document.createElement('form');
hiddenForm.name = 'hiddenForm';
hiddenForm.id = 'hiddenForm';
hiddenForm.method = 'post';
hiddenForm.action = '';
const goodsInnb = $('#addCartGoodsInnb').val();
const cartDvCdCart = $('#cartDv-cart').val();
/**
* 장바구니 담기 전 옵션조회해서 같은 물품 있을 경우 confirm후
* DELETE-INSERT 수행
* */
// 1. 해당 사용자의 모든 장바구니 정보 조회(상품옵션고유번호, 갯수 조회)
$.ajax({
type: 'post',
contentType: 'application/json',
url: '<c:out value="/sopmal/ordr/selectCartList"/>',
data: JSON.stringify({}),
success: async function (data) {
const result = JSON.parse(data.resBody.result)
if(result.message === 'success'){
const resultCartList = result.cartList;
let cartDuplicateOptnAt ='N';
let duplicatedOptn = [];
for(let i = productArr.length - 1; i >= 0; i--){
for(let j = resultCartList.length - 1; j >= 0; j--){
if(parseInt(resultCartList[j].goodsOptnInnb) === parseInt(productArr[i][4])){
//중복된 상품옵션의 기존 수량 + 선택한 수량
let newCartItem = {
...resultCartList[j],
cnt: resultCartList[j].cnt + productArr[i][1]
};
duplicatedOptn.push(newCartItem);
// resultCartList에서 해당 객체 삭제
resultCartList.splice(j, 1);
// productArr에서 해당 배열 삭제
productArr.splice(i, 1);
cartDuplicateOptnAt = 'Y'
break;
}
}
}
//2. 장바구니 중복 확인 결과
if(cartDuplicateOptnAt ==='Y'){
const dupliModal = await showConfirmModal();
if(dupliModal){
//선택한 상품옵션 장바구니 저장
const formData = new FormData();
let idx = 0;
if(productArr.length > 0 ){
for (let product of productArr) {
fn_create_input('hidden', "addCartList[" + idx + "].cartDvCd", cartDvCdCart, hiddenForm);
fn_create_input('hidden', "addCartList[" + idx + "].goodsInnb", goodsInnb, hiddenForm);
fn_create_input('hidden', "addCartList[" + idx + "].qy", product[1], hiddenForm);
fn_create_input('hidden', "addCartList[" + idx + "].goodsOptnInnb", product[4], hiddenForm);
fn_create_input('hidden', "addCartList[" + idx + "].optnTy", product[5], hiddenForm);
idx++;
}
}
let dupliIndex = 0;
//기존 장바구니에 담은 상품 저장
if(resultCartList.length > 0){
for(let resultCartItem of resultCartList){
fn_create_input('hidden', "addCartList[" + idx + "].cartDvCd", resultCartItem.cartDvCd, hiddenForm);
fn_create_input('hidden', "addCartList[" + idx + "].goodsInnb", resultCartItem.goodsInnb, hiddenForm);
fn_create_input('hidden', "addCartList[" + idx + "].qy", resultCartItem.cnt, hiddenForm);
fn_create_input('hidden', "addCartList[" + idx + "].goodsOptnInnb", resultCartItem.goodsOptnInnb, hiddenForm);
fn_create_input('hidden', "addCartList[" + idx + "].optnTy", resultCartItem.optnTy, hiddenForm);
idx++;
}
}
//중복된 상품 옵션 저장
for(let dupliItem of duplicatedOptn){
fn_create_input('hidden', "addCartList[" + idx + "].cartDvCd", dupliItem.cartDvCd, hiddenForm);
fn_create_input('hidden', "addCartList[" + idx + "].goodsInnb", dupliItem.goodsInnb, hiddenForm);
fn_create_input('hidden', "addCartList[" + idx + "].qy", dupliItem.cnt, hiddenForm);
fn_create_input('hidden', "addCartList[" + idx + "].goodsOptnInnb", dupliItem.goodsOptnInnb, hiddenForm);
fn_create_input('hidden', "addCartList[" + idx + "].optnTy", dupliItem.optnTy, hiddenForm);
idx++;
}
//장바구니 중복으로 인한 수정 여부
fn_create_input('hidden', "addCartUptAt", 'Y', hiddenForm);
fn_create_input('hidden', "cartDvCd", $('#cartDv-cart').val(), hiddenForm);
document.body.appendChild(hiddenForm);
$('#hiddenForm').serializeArray().forEach(function (item) {
formData.append(item.name, item.value);
});
fn_add_cart('cart', formData, goodsInnb)
}else{
//장바구니 중복 상품 추가 안할 경우 전체 초기화
productArr = []
$('input[type="radio"]').prop("checked", false)
fn_close_modal('option-change-popUp')
$('.addCart').prop("disabled", false);
}
}else{
//상품 중복옵션 없을 경우 장바구니 저장 진행
const formData = new FormData();
for (let idx in productArr) {
fn_create_input('hidden', "addCartList[" + idx + "].cartDvCd", cartDvCdCart, hiddenForm);
fn_create_input('hidden', "addCartList[" + idx + "].goodsInnb", goodsInnb, hiddenForm);
fn_create_input('hidden', "addCartList[" + idx + "].qy", productArr[idx][1], hiddenForm);
fn_create_input('hidden', "addCartList[" + idx + "].goodsOptnInnb", productArr[idx][4], hiddenForm);
fn_create_input('hidden', "addCartList[" + idx + "].optnTy", productArr[idx][5], hiddenForm);
}
//장바구니 중복으로 인한 수정 여부
fn_create_input('hidden', "addCartUptAt", 'N', hiddenForm);
fn_create_input('hidden', "cartDvCd", $('#cartDv-cart').val(), hiddenForm);
document.body.appendChild(hiddenForm);
$('#hiddenForm').serializeArray().forEach(function (item) {
formData.append(item.name, item.value);
});
fn_add_cart('cart', formData, goodsInnb)
}
}//result success END
}//ajax success END
});//ajax END
})
//장바구니 중복 상품 추가 confirm 모달 버튼 true/false 반환
function showConfirmModal() {
return new Promise(function(resolve, reject) {
<%--상품 중복담기 모달--%>
const modal =`
<div id="modal-error-confirm-add-cart-duplicate" class="modal alert">
<div class="alert-content">
<p class="alert-content__text--sm">
장바구니에 선택한 상품이 있습니다. <br/> 장바구니에 추가하시겠습니까?
</p>
</div>
<div class="alert-btn-container">
<a type="button" class="alert-btn alert-btn--confirm" id="modal-error-confirm-yesButton" rel="modal:close">예</a>
<a type="button" onclick="fn_close_modal('option-change-popUp');" class="alert-btn alert-btn--confirm" id="modal-error-confirm-noButton" rel="modal:close">아니오</a>
</div>
</div>`
$('#modal-error-confirm-add-cart-duplicate').remove()
$('#modal-error-confirm-add-cart-duplicate-div').html(modal)
$('#modal-error-confirm-add-cart-duplicate').modal()
$('#modal-error-confirm-yesButton').one('click', function() {
resolve(true); // 예를 클릭하면 true 반환
});
$('#modal-error-confirm-noButton').one('click', function() {
resolve(false); // 아니오를 클릭하면 false 반환
});
$('#modal-error-confirm-add-cart-duplicate').on('hidden.bs.modal', function () {
resolve(false); // 모달이 닫힐 때 기본적으로 false 반환
});
});
}
//재고옵션 다음 셀렉트 옵션 값 호출
$(document).on('change', 'select[name="selectAddCartInvntryOptn"]', function () {
const id = $(this).attr('id');
let sourceId = id.slice(-1); // 아이디로 셀렉트 옵션 순서 확인
let nextId = (parseInt(sourceId)+1).toString();
const lastId = $('select[name="selectAddCartInvntryOptn"]:last').attr('id')
if($(this).val() === '0'){
return false;
}
const selectOptnVal1 = fn_nvl($('#selectAddCartInvntryOptn1 option:selected').text(),'').replaceAll(' ','').trim()
const selectOptnVal2 = fn_nvl($('#selectAddCartInvntryOptn2 option:selected').text(),'').replaceAll(' ','').trim()
const selectOptnVal3 = fn_nvl($('#selectAddCartInvntryOptn3 option:selected').text(),'').replaceAll(' ','').trim()
const selectOptnVal4 = fn_nvl($('#selectAddCartInvntryOptn4 option:selected').text(),'').replaceAll(' ','').trim()
let optnVal1 = selectOptnVal1 === '선택'?'': selectOptnVal1
let optnVal2 = selectOptnVal2 === '선택'?'': selectOptnVal2
let optnVal3 = selectOptnVal3 === '선택'?'': selectOptnVal3
let optnVal4 = selectOptnVal4 === '선택'?'': selectOptnVal4
switch (sourceId) {
case '1':
optnVal2 = '';
optnVal3 = '';
optnVal4 = '';
$('select[name="selectAddCartInvntryOptn"]').not(':first').each(function() {
$(this).find('option').each(function () {
// value가 빈 문자열이 아닌 경우에만 삭제
if ($(this).val() !== '') {
$(this).remove().niceSelect('update');
}
});
});
$('select[name="selectAddCartInvntryOptn"]').not(':first').val('').niceSelect('update')
break;
case '2':
optnVal3 = '';
optnVal4 = '';
$('select[name="selectAddCartInvntryOptn"]').not(':lt(2)').each(function() {
$(this).find('option').each(function () {
// value가 빈 문자열이 아닌 경우에만 삭제
if ($(this).val() !== '') {
$(this).remove().niceSelect('update');
}
});
});
$('select[name="selectAddCartInvntryOptn"]').not(':lt(2)').val('')
$('select[name="selectAddCartInvntryOptn"]').niceSelect('update')
break;
case '3':
optnVal4 = '';
$('select[name="selectAddCartInvntryOptn"]').not(':lt(3)').each(function() {
$(this).find('option').each(function () {
// value가 빈 문자열이 아닌 경우에만 삭제
if ($(this).val() !== '') {
$(this).remove().niceSelect('update');
}
});
});
$('select[name="selectAddCartInvntryOptn"]').not(':lt(3)').val('')
$('select[name="selectAddCartInvntryOptn"]').niceSelect('update')
break;
}
$.ajax({
type: 'post',
contentType : 'application/json',
url: '/sopmal/goods/selectGoodsOptnInfo',
data: JSON.stringify(
{
'goodsInnb' : $('#addCartGoodsInnb').val()
,'optnTy' : '02'
,'optnVal1' : optnVal1
,'optnVal2' : optnVal2
,'optnVal3' : optnVal3
,'optnVal4' : optnVal4
}
),
success: function (data) {
let str = JSON.parse(data.resBody.result);
if (str.result === 'success') {
//판매가
const slepricDscntAmt = $('#slepricDscntAmt').val()
switch (sourceId){
case '1' :
//1선택하면 서버 요청해서 2번 옵션값 받아옴
//2번에 option에 옵션값 뿌리기
const uniqueData2 = [];
const seenOptnVal2 = new Set();
str.goodsOptnList.forEach(item => {
if (!seenOptnVal2.has(item.optnVal2)){
uniqueData2.push(item);
seenOptnVal2.add(item.optnVal2);
}
});
uniqueData2.forEach(function(option) {
if($('#selectAddCartInvntryOptn'+nextId).attr('id') === lastId){
//재고품절시 노출여부
if(option.invntrySldoutExpsrAt ==='N'){
//옵션 노출 안함
//품절표시
}else if(option.disableAt === 'Y'){
$('#selectAddCartInvntryOptn'+nextId).append($('<option>', {
value: option.slepric+'|'+option.goodsOptnInnb+'|'+option.optnInfo+'|'+option.optnTy,
text: option.optnVal2+ '(+' + addComma((parseInt(option.slepric) - parseInt(slepricDscntAmt))) +')' +'(품절)' ,
disabled: true
}));
}else{
$('#selectAddCartInvntryOptn'+nextId).append($('<option>', {
value: option.slepric+'|'+option.goodsOptnInnb+'|'+option.optnInfo+'|'+option.optnTy,
text: option.optnVal2 + '(+' + addComma((parseInt(option.slepric) - parseInt(slepricDscntAmt))) +')'
}));
}
}else{
//재고품절시 노출여부
if(option.invntrySldoutExpsrAt ==='N'){
//옵션 노출 안함
//품절표시
}else if(option.disableAt === 'Y'){
$('#selectAddCartInvntryOptn'+nextId).append($('<option>', {
value: option.slepric+'|'+option.goodsOptnInnb+'|'+option.optnInfo+'|'+option.optnTy,
text: option.optnVal2+'(품절)',
disabled: true
}));
}else{
$('#selectAddCartInvntryOptn'+nextId).append($('<option>', {
value: option.slepric+'|'+option.goodsOptnInnb+'|'+option.optnInfo+'|'+option.optnTy,
text: option.optnVal2
}));
}
}
});
$('#selectAddCartInvntryOptn'+nextId).niceSelect('update');
break;
case '2' :
const uniqueData3 = [];
const seenOptnVal3 = new Set();
str.goodsOptnList.forEach(item => {
if (!seenOptnVal3.has(item.optnVal3)){
uniqueData3.push(item);
seenOptnVal3.add(item.optnVal3);
}
});
uniqueData3.forEach(function(option) {
if($('#selectAddCartInvntryOptn'+nextId).attr('id') === lastId){
//재고품절시 노출여부
if(option.invntrySldoutExpsrAt ==='N'){
//옵션 노출 안함
//품절표시
}else if(option.disableAt === 'Y'){
$('#selectAddCartInvntryOptn'+nextId).append($('<option>', {
value: option.slepric+'|'+option.goodsOptnInnb+'|'+option.optnInfo+'|'+option.optnTy,
text: option.optnVal3 + '(+' + addComma((parseInt(option.slepric) - parseInt(slepricDscntAmt))) +')' + '(품절)',
disabled: true
}));
}else{
$('#selectAddCartInvntryOptn'+nextId).append($('<option>', {
value: option.slepric+'|'+option.goodsOptnInnb+'|'+option.optnInfo+'|'+option.optnTy,
text: option.optnVal3 + '(+' + addComma((parseInt(option.slepric) - parseInt(slepricDscntAmt))) +')'
}));
}
}else{
//재고품절시 노출여부
if(option.invntrySldoutExpsrAt ==='N'){
//옵션 노출 안함
//품절표시
}else if(option.disableAt === 'Y'){
$('#selectAddCartInvntryOptn'+nextId).append($('<option>', {
value: option.slepric+'|'+option.goodsOptnInnb+'|'+option.optnInfo+'|'+option.optnTy,
text: option.optnVal3+'(품절)',
disabled: true
}));
}else{
$('#selectAddCartInvntryOptn'+nextId).append($('<option>', {
value: option.slepric+'|'+option.goodsOptnInnb+'|'+option.optnInfo+'|'+option.optnTy,
text: option.optnVal3
}));
}
}
});
$('#selectAddCartInvntryOptn'+nextId).niceSelect('update');
break;
case '3' :
const uniqueData4 = [];
const seenOptnVal4 = new Set();
str.goodsOptnList.forEach(item => {
if (!seenOptnVal4.has(item.optnVal4)){
uniqueData4.push(item);
seenOptnVal4.add(item.optnVal4);
}
});
uniqueData4.forEach(function(option) {
if($('#selectAddCartInvntryOptn'+nextId).attr('id') === lastId){
//재고품절시 노출여부
if(option.invntrySldoutExpsrAt ==='N'){
//옵션 노출 안함
//품절표시
}else if(option.disableAt === 'Y'){
$('#selectAddCartInvntryOptn'+nextId).append($('<option>', {
value: option.slepric+'|'+option.goodsOptnInnb+'|'+option.optnInfo+'|'+option.optnTy,
text: option.optnVal4 + '(+' + addComma((parseInt(option.slepric) - parseInt(slepricDscntAmt))) +')' + '(품절)',
disabled: true
}));
}else{
$('#selectAddCartInvntryOptn'+nextId).append($('<option>', {
value: option.slepric+'|'+option.goodsOptnInnb+'|'+option.optnInfo+'|'+option.optnTy,
text: option.optnVal4 + '(+' + addComma((parseInt(option.slepric) - parseInt(slepricDscntAmt))) +')'
}));
}
}else{
//재고품절시 노출여부
if(option.invntrySldoutExpsrAt ==='N'){
//옵션 노출 안함
//품절표시
}else if(option.disableAt === 'Y'){
$('#selectAddCartInvntryOptn'+nextId).append($('<option>', {
value: option.slepric+'|'+option.goodsOptnInnb+'|'+option.optnInfo+'|'+option.optnTy,
text: option.optnVal4 + '(품절)',
disabled: true
}));
}else{
$('#selectAddCartInvntryOptn'+nextId).append($('<option>', {
value: option.slepric+'|'+option.goodsOptnInnb+'|'+option.optnInfo+'|'+option.optnTy,
text: option.optnVal4
}));
}
}
});
$('#selectAddCartInvntryOptn'+nextId).niceSelect('update');
break;
}
//마지막 선택일 경우 셀렉트 기본값으로 되돌림
if(id === lastId){
$('select[name="selectAddCartInvntryOptn"]').not(':first').each(function() {
$(this).find('option').each(function () {
// value가 빈 문자열이 아닌 경우에만 삭제
if ($(this).val() !== '') {
$(this).remove().niceSelect('update');
}
});
});
$('select[name="selectAddCartInvntryOptn"]').val('').niceSelect('update')
}
}
}
});
})
</script>
<body>
<%-- 공통 Header --%>
<jsp:include page="/WEB-INF/views/comm/Header.jsp"/>
<!-- 메인 컨텐츠 영역 -->
<main>
<div class="sub-wrapper">
<div class="sub-content">
<div class="sub-rl">
<%-- 마이페이지 Left 영역 --%>
<jsp:include page="/WEB-INF/views/comm/mpage/MypageLeft.jsp"/>
<div class="sub-right-content">
<%-- 마이페이지 Right 영역 --%>
<jsp:include page="/WEB-INF/views/comm/mpage/MypageRight.jsp"/>
<form id="listForm">
<input type="hidden" id="pageIndex" name="pageIndex" value="${ resultMap.paramVO.pageIndex} }"/>
<div class="sub-right-content__section">
<h3 class="sub-right-content__title">위시리스트</h3>
<div class="myWishlist">
<div class="cartOrder__control">
<div class="b-checkbox-container">
<label class="b-checkbox checkbox">
<input type="checkbox" id="cartCheckAll" value="">
<span class="check"></span>
<span class="control-label">전체선택</span>
</label>
</div>
<div class="cartOrder__control__btnContainer">
<button class="btn sm outline" type="button" onclick="fn_delete_wishlist('#wishListTbody', '<c:out value="${ resultMap.paramVO.pageIndex }"/>', '<c:out value="${ resultMap.paramVO.pageUnit }"/>');">선택삭제</button>
</div>
</div>
<div id="pageDiv">
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</main>
<%-- 공통 Footer --%>
<jsp:include page="/WEB-INF/views/comm/Footer.jsp"/>
<!-- 상품 옵션 변경 모달 -->
<div id="goodsOptionDiv">
</div>
<%--장바구니에 선택한 상품 존재시 모달 --%>
<div id="modal-error-confirm-add-cart-duplicate-div"></div>
<script>
//장바구니 전체선택
$('#cartCheckAll').click(function () {
if ($('#cartCheckAll').is(':checked')) {
$('.cartCheck').prop('checked', true);
} else {
$('.cartCheck').prop('checked', false);
}
});
$('.cartCheck').click(function () {
if ($('.cartCheck').length == $('.cartCheck:checked').length) {
$('#cartCheckAll').prop('checked', true);
} else {
$('#cartCheckAll').prop('checked', false);
}
});
</script>
<!-- 모달 -->
<!-- 장바구니 담기-->
<div id = "addCartDiv"></div>
<%--상품 중복선택 모달--%>
<div id = "goodsDuplicateDiv"></div>
</body>
</html>