초기소스

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,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>