초기소스
This commit is contained in:
210
src/main/webapp/WEB-INF/views/sopmal_m/goods/GoodsSrchR.jsp
Normal file
210
src/main/webapp/WEB-INF/views/sopmal_m/goods/GoodsSrchR.jsp
Normal file
@@ -0,0 +1,210 @@
|
||||
<%@ 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 리브가
|
||||
--%>
|
||||
<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>SOLD OUT</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)}">${fn:replace(fn:toUpperCase(iconCdNm), '-', ' ')}</span>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<span class="product-badge ${fn:toLowerCase(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"><fmt:formatNumber
|
||||
value="${list.cnsmrpric}"/> 원</span>
|
||||
<span class="product-unit-price__current"><fmt:formatNumber
|
||||
value="${list.slepric}"/> 원</span>
|
||||
</div>
|
||||
<div class="product-unit-price__sale">
|
||||
<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>
|
||||
Reference in New Issue
Block a user