211 lines
15 KiB
Plaintext
211 lines
15 KiB
Plaintext
<%@ 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 : GoodsSrchR.jsp
|
|
Description : 상품 검색 리스트
|
|
Modification Information
|
|
|
|
수정일 수정자 수정내용
|
|
------- -------- ---------------------------
|
|
2024-05 리브가
|
|
--%>
|
|
<spring:eval expression="@environment.getProperty('currency-unit.default')" var="curUnit"/>
|
|
<div class="sub-page">
|
|
<div class="sub-box">
|
|
<!-- 상품 - 카테고리별 타입 (상품 2열) -->
|
|
<section class="subList__productList">
|
|
<div class="listTop">
|
|
<span class="listTop__data">총
|
|
<em><c:out value="${ resultMap.paginationInfo.totalRecordCount }" default="0"/> </em>건
|
|
</span>
|
|
<div class="subList__sort">
|
|
<button type="button" class="categoryTriggerBtn" role="button"
|
|
onclick="openModal('categorySelectPop01')">
|
|
인기순
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<c:choose>
|
|
<c:when test="${ not empty resultMap.list }">
|
|
<div class="product-list-type-2cols">
|
|
<div class="product-list-type-2cols__list">
|
|
<c:forEach var="list" items="${resultMap.list}" varStatus="status">
|
|
<div class="product-unit">
|
|
<div class="product-unit-image">
|
|
<c:if test="${(list.evtTmeExpsrAt eq 'Y' and list.remainTime ne 'N')
|
|
or (list.rltmQyBannerExpsrAt eq 'Y' and list.remainQy > 0) }">
|
|
<div class="time-sale__top">
|
|
<c:if test="${list.evtTmeExpsrAt eq 'Y' and list.remainTime ne 'N'}">
|
|
<span class="time" id="remainTime${status.index}" name="remainTime"><c:out
|
|
value="${list.remainTime}"/> </span>
|
|
<input type="hidden" id="evtTmeExpsrAt${status.index}" name="evtTmeExpsrAt"
|
|
value="${list.evtTmeExpsrAt}">
|
|
</c:if>
|
|
<c:if test="${list.rltmQyBannerExpsrAt eq 'Y' and list.remainQy > 0 }">
|
|
<span class="left">남은수량 <fmt:formatNumber value="${list.remainQy}"/> 개</span>
|
|
</c:if>
|
|
</div>
|
|
</c:if>
|
|
<c:choose>
|
|
<c:when test="${list.goodsSttusCd eq '02'}">
|
|
<div class="sold-out">
|
|
<span>입고 대기중</span>
|
|
</div>
|
|
</c:when>
|
|
<c:when test="${list.goodsSttusCd eq '03'}">
|
|
<div class="sold-out">
|
|
<span>${list.goodsSttusNm}</span>
|
|
</div>
|
|
</c:when>
|
|
</c:choose>
|
|
<form id="detailForm">
|
|
<a class="product-detail" href="javascript:void(0);"
|
|
onclick="fn_move_goods_dtl('<c:out value="${list.goodsInnb}"/>'); ">
|
|
<spring:eval
|
|
expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')"
|
|
var="cdnurl"/>
|
|
<img src="<c:out value="${cdnurl}${list.goodsImgCours}"/>"
|
|
onerror="this.src='/mobile/images/image_placeholder.png'"
|
|
alt="${list.goodsNm}" loading="lazy"/>
|
|
</a>
|
|
</form>
|
|
<c:if test="${not empty list.pricRplcWordsUseAt and list.pricRplcWordsUseAt ne 'Y'}">
|
|
<button type="button" class="product-unit-addToCart" onclick="fn_mbl_open_modal
|
|
('addGoodsCartDiv', 'product-option-sheet', '/sopmal/goods/selectAddCartGoodsPopup',
|
|
JSON.stringify({'goodsInnb' : `${list.goodsInnb}`}))">
|
|
<i class="icon icon_product-unit-addToCart"></i>
|
|
<span class="visually-hidden">장바구니에 담기</span>
|
|
</button>
|
|
</c:if>
|
|
</div>
|
|
<div class="product-unit-info d-flex flex-column" style="flex-direction:column">
|
|
<c:if test="${not empty list.iconCdNmList}">
|
|
<c:if test="${list.iconExpsrAt eq 'Y'}">
|
|
<div class="product-badge-container col order-${list.iconExpsrOrdr-1}" style="order: ${list.iconExpsrOrdr-1} ">
|
|
<c:forEach items="${fn:split(list.iconCdNmList, ',')}" var="iconCdNm" varStatus="iconStatus">
|
|
<c:choose>
|
|
<c:when test="${fn:contains(iconCdNm, '-')}">
|
|
<span class="product-badge ${fn:toLowerCase(iconCdNm)}" data-badge-cd="${iconCdNm}">${fn:replace(fn:toUpperCase(iconCdNm), '-', ' ')}</span>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<span class="product-badge ${fn:toLowerCase(iconCdNm)}" data-badge-cd="${iconCdNm}">${fn:toUpperCase(iconCdNm)}</span>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</c:forEach>
|
|
</div>
|
|
</c:if>
|
|
</c:if>
|
|
<%-- <div class="product-unit-info__inner">--%>
|
|
<c:if test="${list.goodsNmExpsrAt eq 'Y'}">
|
|
<div class="product-unit-title col order-${list.goodsNmExpsrOrdr-1}" style="order:${list.goodsNmExpsrOrdr-1} ">
|
|
<a href="javascript:void(0);"><c:out value="${list.goodsNm}"/></a>
|
|
</div>
|
|
</c:if>
|
|
<c:if test="${list.pricExpsrAt eq 'Y'}">
|
|
<c:choose>
|
|
<c:when test="${not empty list.pricRplcWordsUseAt and list.pricRplcWordsUseAt ne 'Y'}">
|
|
<div class="product-unit-price col order-${list.pricExpsrOrdr-1}" style="order: ${list.pricExpsrOrdr-1}">
|
|
<div class="product-unit-price__price">
|
|
<span class="product-unit-price__original <c:if test="${list.slePercent eq 0}">visually-hidden</c:if>">
|
|
<fmt:formatNumber value="${list.cnsmrpric}"/> ${curUnit}
|
|
</span>
|
|
<span class="product-unit-price__current"><fmt:formatNumber value="${list.slepric}"/> ${curUnit}</span>
|
|
</div>
|
|
<div class="product-unit-price__sale <c:if test="${list.slePercent eq 0}">visually-hidden</c:if>">
|
|
<span class="percent"><c:out value="${list.slePercent}"/> %</span>
|
|
</div>
|
|
</div>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<div class="productDetailInfo__price">
|
|
<a href="${list.mblPricRplcLink}" <c:if test="${list.pricRplcLinkBrwsrDvCd eq'01'}"> target="_blank" </c:if> >
|
|
<span class="" style="font-size: 1rem;"> <c:out value="${list.pricRplcWords}"/></span>
|
|
</a>
|
|
</div>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</c:if>
|
|
<c:if test="${list.reprsntDcExpsrAt eq 'Y'}">
|
|
<div class="product-unit-price__monthly-payment col order-${list.reprsntDcExpsrOrdr-1}" style="order: ${list.reprsntDcExpsrOrdr-1}"><c:out value="${list.reprsntDc}"/></div>
|
|
</c:if>
|
|
<%-- </div>--%>
|
|
<c:if test="${list.rvwEvlScreExpsrAt eq 'Y'}">
|
|
<div class="product-unit-rating col order-${list.rvwEvlScreExpsrOrdr-1}" style="order: ${list.rvwEvlScreExpsrOrdr-1}">
|
|
<i class="icon icon_rating-star"></i>
|
|
<span class="product-unit-rating__score"><c:out value="${list.avgEvlScore}" default="0.0"/> </span>
|
|
<span class="product-unit-rating__count">(<fmt:formatNumber value="${list.cntEvlScor}"/>) </span>
|
|
</div>
|
|
</c:if>
|
|
<c:if test="${list.dlvyExpsrAt eq 'Y'}">
|
|
<div class="product-unit-price__monthly-payment col order-${list.dlvyExpsrOrdr-1}" style="order: ${list.dlvyExpsrOrdr-1}"><c:out value="${list.dlvyGroupNm}"/></div>
|
|
</c:if>
|
|
</div>
|
|
</div>
|
|
</c:forEach>
|
|
<div id="infinityScrollGoodsList"></div>
|
|
</div>
|
|
</div>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<div class="product-list-type-2cols">
|
|
<div class="noResult">
|
|
<div class="noResult__image">
|
|
<img src="/mobile/images/icon__no-result.png" alt="상품 이미지">
|
|
</div>
|
|
<p class="noResult__text">해당 상품이 없습니다.</p>
|
|
</div>
|
|
</div>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</section>
|
|
</div>
|
|
</div>
|
|
<!-- 240709 정렬 바텀시트 -->
|
|
<div class="microModal microBottomSheet" id="categorySelectPop01" aria-hidden="true">
|
|
<div class="microModal__overlay" tabindex="-1">
|
|
<div class="microModal__container" role="dialog" aria-modal="true">
|
|
<div class="microModal__body">
|
|
<div class="microModal__top">
|
|
<button class="microModal__close" aria-label="창 닫기" data-micromodal-close></button>
|
|
</div>
|
|
<div class="microModal__content">
|
|
<div class="modalSelect">
|
|
<div class="modalSelect__list">
|
|
<label class="modalSelect__item">
|
|
<input type="radio" name="sortDv" value="avgEvlScore" >
|
|
<span>인기순</span>
|
|
</label>
|
|
<label class="modalSelect__item">
|
|
<input type="radio" name="sortDv" value="cntEvlScor" >
|
|
<span>리뷰 많은순</span>
|
|
</label>
|
|
<label class="modalSelect__item">
|
|
<input type="radio" name="sortDv" value="slepricAsc">
|
|
<span>낮은 가격순</span>
|
|
</label>
|
|
<label class="modalSelect__item">
|
|
<input type="radio" name="sortDv" value="slepricDesc">
|
|
<span>높은 가격순</span>
|
|
</label>
|
|
<label class="modalSelect__item">
|
|
<input type="radio" name="sortDv" value="goodsInnbDesc">
|
|
<span>신상품순</span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<%--장바구니 버튼 선택 모달--%>
|
|
<div id="addGoodsCartDiv"></div>
|
|
<%--장바구니 담기 후 모달--%>
|
|
<div id="addCartDiv"></div>
|
|
<%--상품 중복선택 모달--%>
|
|
<div id="goodsDuplicateDiv"></div> |