초기소스

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

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,176 @@
<%@ 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 : GoodsListR.jsp
Description : 카테고리별 상품 목록 조회 리스트
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-03-20 리브가 최초 생성
--%>
<script>
$(document).ready(function () {
if ($(".table.draggable").length > 0) {
$(".table.draggable").tableDnD({
onDragClass: "dragging",
});
}
})
</script>
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.cdnurl')" var="cdnurl"/>
<section class="content-section">
<div class="form-control-container">
<div class="left">
<div class="search-number">
<span class="search-number__text">총 <strong><c:out value="${ resultMap.paginationInfo.totalRecordCount }"/></strong>건</span>
</div>
</div>
<div class="center">
</div>
<div class="right">
<div class="select-box">
<select title="정렬순" name="sortDv" id="sortDv" onchange="fn_select_list(1);return false;">
<option value="goodsOrdrAsc" <c:if test="${resultMap.BOGoodsVO.sortDv eq 'goodsOrdrAsc' || resultMap.BOGoodsVO.sortDv eq null}">selected="selected"</c:if>>상품순서 오름차순</option>
<option value="goodsOrdrDesc" <c:if test="${resultMap.BOGoodsVO.sortDv eq 'goodsOrdrDesc'}">selected="selected"</c:if>>상품순서 내림차순</option>
<option value="goodsNmAsc" <c:if test="${resultMap.BOGoodsVO.sortDv eq 'goodsNmAsc'}">selected="selected"</c:if>>상품명 오름차순</option>
<option value="goodsNmDesc" <c:if test="${resultMap.BOGoodsVO.sortDv eq 'goodsNmDesc'}">selected="selected"</c:if>>상품명 내림차순</option>
<option value="cnsmrpricAsc" <c:if test="${resultMap.BOGoodsVO.sortDv eq 'cnsmrpricAsc'}">selected="selected"</c:if>>정가 오름차순</option>
<option value="cnsmrpricDesc" <c:if test="${resultMap.BOGoodsVO.sortDv eq 'cnsmrpricDesc'}">selected="selected"</c:if>>정가 내림차순</option>
<option value="invntryQyAsc" <c:if test="${resultMap.BOGoodsVO.sortDv eq 'invntryQyAsc'}">selected="selected"</c:if>>재고 오름차순</option>
<option value="invntryQyDesc" <c:if test="${resultMap.BOGoodsVO.sortDv eq 'invntryQyDesc'}">selected="selected"</c:if>>재고 내림차순</option>
<option value="registDtAsc" <c:if test="${resultMap.BOGoodsVO.sortDv eq 'registDtAsc'}">selected="selected"</c:if>>등록일순 오름차순</option>
<option value="registDtDesc" <c:if test="${resultMap.BOGoodsVO.sortDv eq 'registDtDesc'}">selected="selected"</c:if>>등록일순 내림차순</option>
</select>
</div>
<div class="select-box">
<select id="pageUnit" name="pageUnit" title="페이지당 출력될 목록건수" onchange="fn_select_list(1);">
<c:forEach items="${ resultMap.paginationInfo.pageUnitArr }" var="pageUnit" varStatus="pageUnitStatus">
<option value="<c:out value="${ pageUnit }"/>"
<c:if test="${ resultMap.paginationInfo.recordCountPerPage eq pageUnit}">selected="selected"</c:if>>
<c:out value="${ pageUnit }"/>개씩
</option>
</c:forEach>
<option value="
<c:choose>
<c:when test="${ empty resultMap.paginationInfo.totalRecordCount || resultMap.paginationInfo.totalRecordCount <= 0 }">
<c:out value="10"/>
</c:when>
<c:otherwise>
<c:out value="${ resultMap.paginationInfo.totalRecordCount }"/>
</c:otherwise>
</c:choose>
">
전체상품
</option>
</select>
</div>
</div>
</div>
<hr class="horizontal-line">
<div class="form-control-container">
<%-- <div class="left">--%>
<%-- <button class="btn outline sm" onclick="fn_delete_check();">선택 삭제</button>--%>
<%-- </div>--%>
<div class="center">
</div>
</div>
<hr class="spacing">
<div class="table-wrapper">
<table class="table vertical draggable">
<caption>상품정보 목록</caption>
<colgroup>
<col style="width: 4%;">
<col style="width: 4%;">
<col style="width: 7%;">
<col style="width: 12%;">
<col style="width: 7%;">
<col style="width: 7%;">
<col style="width: 7%;">
<col style="width: 7%;">
<col style="width: 10%;">
<col style="width: 14%;">
<col style="width: 4%;">
<col style="width: 4%;">
<%-- <col style="width: 4%;">--%>
</colgroup>
<thead>
<tr>
<th>순서</th>
<th>번호</th>
<th colspan="2">상품명</th>
<th>정가</th>
<th>판매가</th>
<th>재고</th>
<th>재고판매
<%-- <button class="mini-info-btn mb-3" data-info="info01">?</button>--%>
</th>
<th>배송그룹</th>
<th>등록일/수정일</th>
<th>판매상태</th>
<th>노출여부</th>
<%-- <th>상품순서</th>--%>
</tr>
</thead>
<tbody>
<c:choose>
<c:when test="${ not empty resultMap.list }">
<c:forEach items="${ resultMap.list }" var="list" varStatus="status">
<tr>
<td>
<div class="draggable-icon-container">
<i class="icon icon_draggable"></i>
<input type="hidden" name="goodsInnbOrdr" value="${list.goodsInnb}" />
<span class="visually-hidden">순서 바꾸기</span>
</div>
</td>
<td><c:out value="${ list.rnum }" /></td>
<td>
<%-- <a href="javascript:void(0);" onclick="fn_move_goods_dtl_common(<c:out value="${list.goodsInnb}"/>, 'sopmal')">--%>
<img src="<c:out value="${cdnurl}${list.goodsImgCours}"/>"
onerror="this.src='<c:url value="/mngr/images/image_placeholder.png"/>'"
alt="${list.goodsNm}" width="56" height="56">
<%-- </a>--%>
</td>
<td><a onclick="fn_move_goods_dtl_common(<c:out value="${list.goodsInnb}"/>, 'mngr', '01', '_self')" class="under-line">${list.goodsNm}</a>
</td>
<td>${list.cnsmrpric}</td>
<td>${list.slepric}</td>
<td><a onclick="fn_open_modal('#modalDiv','#invntry-check','/mngr/goods/goodsmngr/selectGoodsInvntryPopup',{'goodsInnb':${list.goodsInnb}, 'sopmalCd':'${list.sopmalCd}'}); return false;" class="under-line">재고확인</a></td>
<td>${list.invntryPolicyCdDc}</td>
<td>${list.dlvyGroupNm}</td>
<td>
<span>${list.registDt}</span><br><span>${list.updtDt}</span>
</td>
<td>${list.goodsSttusNm}</td>
<td>${list.expsrNm}</td>
<%-- <td>${list.goodsOrdr}--%>
<%-- <div class="manage-btn-container">--%>
<%-- <button class="btn xsm light-gray" type="button" onclick="fn_move_goods_copy(<c:out--%>
<%-- value="${list.goodsInnb}"/>)"><spring:message code="button.copy"/> </button>--%>
<%-- <button class="btn xsm outline" type="button" onclick="fn_move_goods_dtl_common(<c:out value="${list.goodsInnb}"/>,'mngr','01','_self')"><spring:message code="button.update"/></button>--%>
<%-- </div>--%>
<%-- </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>
</section>
<div class="pagination__container">
<ui:pagination paginationInfo="${resultMap.paginationInfo}" type="image" jsFunction="fn_select_list"/>
</div>

View File

@@ -0,0 +1,756 @@
<%@ 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 : GoodsListRForm.jsp
Description : 카테고리별 상품 목록 조회 폼
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-03-20 리브가 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>GC ONE 관리자</title>
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
</head>
<script>
let goodsDftinfoArr = [];
$(document).ready(function () {
let pageIndex = '<c:out value="${ resultMap.BOGoodsVO.pageIndex }"/>';
let pageUnit = '<c:out value="${ resultMap.BOGoodsVO.pageUnit }"/>';
// 목록 조회
fn_select_list(pageIndex, pageUnit);
// 엔터키 검색
$('#listForm').on('keydown', function (event) {
if (event.keyCode === 13) {
event.preventDefault();
fn_select_list(1);
}
});
// event 제어
fn_event();
});
//판매상태 체크 검색
$(document).on('click','input[name="goodsDftinfoArr"]' , function() {
// 체크된 체크박스의 값을 배열에 추가
if(!goodsDftinfoArr.some(item => item === $(this).val())){
goodsDftinfoArr.push($(this).val());
}else{
//체크된 값이 있으면 제거
for(let i = 0; i < goodsDftinfoArr.length; i++) {
if (goodsDftinfoArr[i] === $(this).val()) {
goodsDftinfoArr.splice(i, 1);
}
}
}
// 조건 확인 및 배열 초기화
if (goodsDftinfoArr.includes("") ||
(goodsDftinfoArr.includes("01") && goodsDftinfoArr.includes("02") && goodsDftinfoArr.includes("03"))) {
goodsDftinfoArr = []; // 배열 초기화
}
});
/* ********************************************************
* 목록 조회
******************************************************** */
const fn_select_list = function (pageIndex, pageUnit) {
let dataStr;
//판매상태 검색 내역 있을 경우 삭제
if($('input[name="goodsDftinfoSttus"]') != null){
$('input[name="goodsDftinfoSttus"]').remove()
}
$('input[name="goodsDftinfoArr"]:checked').each(function(idx, item) {
console.log('idx',idx,'item', item.value)
if(!fn_is_empty(item.value)){
$('#listForm').append(
$('<input>', {
'type': 'hidden',
'name': 'goodsDftinfoSttus',
'value': item.value
})
)
}
})
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;
}
}
console.log(dataStr)
$.ajax({
type: "post",
url: "<c:url value="/mngr/goods/goodsmngr/selectCtgryGoodsList"/>",
data: dataStr,
success: function (resultHtml) {
$('#pageDiv').html(resultHtml);
$('#pageUnit').niceSelect();
$('#sortDv').niceSelect();
}
});
}
/* ********************************************************
* 카테고리 수정
******************************************************** */
//카테고리 상품 순서수정
$(document).on('click', '#uptGoodsOrdr', function () {
let goodsOrdrList = [];
const ctgryId = $('#ctgryId').val();
if(fn_is_empty(ctgryId)){
alert('카테고리 검색을 해주세요')
return false;
}
if($('#listForm .draggable-icon-container').length <= 0){
alert('조회된 상품이 없습니다')
return false;
}
$('#listForm .draggable-icon-container input[name="goodsInnbOrdr"]').each(function(index, item) {
goodsOrdrList.push(item.value)
})
const data = {
'goodsOrdrList' : goodsOrdrList,
'ctgryId' : ctgryId
}
if (confirm(`카테고리별 상품 순서을(를) <spring:message code="confirm.common.update"/>`)) {
$.ajax({
type: 'post',
url : '<c:url value="/mngr/goods/goodsmngr/updateCtgryGoodsList"/>',
data : JSON.stringify(data),
contentType : 'application/json',
dataType : 'json',
success:function(data) {
const result = JSON.parse(data.resBody.result).result
if(result ==='success'){
alert('<spring:message code="success.common.update"/>')
window.location.reload()
}
}
});
}
})
history.replaceState({}, null, location.pathname);
/* ****************************
* event 제어
******************************/
const fn_event = function () {
/*상세검색 버튼 상태 및 상세조회 대상 안보이게 처리*/
$('.search-hide').hide()
$('.search-detail').removeClass('opened')
$(document).ready('click', '.search-detail', function () {
let searchHide = $(".search-hide");
if (searchHide.is(":visible")) {
searchHide.hide();
$('.search-detail').removeClass('opened')
} else {
searchHide.show();
$('.search-detail').addClass('opened')
}
});
/* input 숫자만 입력 */
$(document).on('input', '.number-only', function () {
$(this).val(($(this).val().replace(/[^0-9]/g, '')).replace(/^0+/, ''));
});
/* 목록 > 전체선택 체인지 이벤트 */
$(document).on('change', '#checkAll', function () {
let checkbox = $(this).closest('table').find('input[name="goodsInnbChk"]');
$(checkbox).prop('checked', false);
$(checkbox).prop('checked', $(this).is(':checked'));
});
/* 검색조건 > 카테고리 선택 이벤트 */
$(document).on('change', '.ctgry', function () {
const upperCtgryId = $(this).val(); // 상위카테고리
const currCtgryDepth = $(this).attr('id').replace('ctgryDepth', '');
const targetDepth = (parseInt(currCtgryDepth) + 1);
const targetCtgryId = 'ctgryDepth' + targetDepth;
if (fn_is_empty(upperCtgryId)) {
for (let i = targetDepth; i < 5; i++) {
$('#search-section').find('#ctgryDepth' + i).empty().append('<option value="">' + i + '차 카테고리</option>').niceSelect('update');
}
} else {
fn_get_goods_ctgry(upperCtgryId, targetCtgryId);
}
$('#search-section').find('#ctgryId').val(upperCtgryId);
});
/* 검색조건 > 노출여부 선택 이벤트 */
$(document).on('click', 'input[name="expsrCd"]', function () {
const sttus = $(this).val();
const popup = $('#search-section');
const checkbox = $(popup).find('input[name="expsrCd"]');
const all = $(popup).find('input[name="expsrCd"][value=""]')
if (fn_is_empty(sttus)) {
$(checkbox).prop('checked', false);
$(this).prop('checked', true);
} else {
$(all).prop('checked', false);
const length = $(popup).find('input[name="expsrCd"]:checked').length;
if (2 < length) {
$(checkbox).prop('checked', false);
$(all).prop('checked', true);
}
}
});
}
/* ********************************************************
* 카테고리 체크버튼 이벤트
******************************************************** */
const fn_change_event = function (_target, _arg) {
if (_arg === 'all') {
if ($('#' + _target + '-all').is(':checked')) {
$('[name=' + _target + 'Arr]').prop('checked', true);
} else {
$('[name=' + _target + 'Arr]').prop('checked', false);
}
} else {
let chkCnt = $('[name=' + _target + 'Arr]:checked').length;
let allCnt = $('[name=' + _target + 'Arr]').length;
if (chkCnt !== allCnt && $('#' + _target + '-all').is(':checked')) {
$('#' + _target + '-all').prop('checked', false);
} else if (chkCnt !== allCnt && !$('#' + _target + '-all').is(':checked') && allCnt - chkCnt === 1) {
$('#' + _target + '-all').prop('checked', true);
} else if (chkCnt === allCnt) {
$('#' + _target + '-all').prop('checked', true);
}
}
}
/* ****************************
* 카테고리 목록 조회 AJAX
******************************/
const fn_get_goods_ctgry = function (upperCtgryId, targetCtgryId) {
$.ajax({
type: 'post',
url: '<c:url value="/admin/sys/ctgry/selectGoodsCategoryList"/>',
data: {
'upperCtgryId': upperCtgryId
},
success: function (data) {
if (data.resBody != null) {
const result = JSON.parse(data.resBody.result);
const goodsCategoryList = result.goodsCategoryList;
if (goodsCategoryList.length > 0) {
$('#' + targetCtgryId + ' option').filter(function() {
return $(this).val() !== '';
}).remove();
for (let i = 0; i < goodsCategoryList.length; i++) {
const goodsCategory = goodsCategoryList[i];
$('#search-section').find('#' + targetCtgryId).append('<option value="' + goodsCategory.ctgryId + '">' + goodsCategory.ctgryNm + '</option>');
}
$('#search-section').find('#' + targetCtgryId).niceSelect('update');
}
}
},
error: function (data) {
fn_proc_error_message(data);
}
});
}
/* ****************************
* 상품 목록 조회 AJAX
******************************/
const fn_get_goods_list = function (pageIndex) {
const popup = $('#product-select-pop');
$(popup).find('#pageIndex').val(pageIndex);
$.ajax({
type: 'post',
url: '<c:url value="/crm/ordr/selectGoodsList"/>',
data: $(popup).find('#goodsCondForm').serialize(),
success: function (html) {
$('#product-select-pop').find('#pageDiv').html(html);
const goodsList = JSON.parse(localStorage.getItem('goodsList'));
if (!fn_is_empty(goodsList)) {
fn_set_choice_order_goods(goodsList);
}
}
});
}
/*********************************************************
* 상품 선택 삭제 AJAX
*********************************************************/
const fn_delete_check = function () {
let url = '<c:url value="/mngr/goods/goodsmngr/deleteGoods"/>';
let delInnbArr = [];
// 선택 삭제일 경우
$("input[name='goodsInnbChk']:checked").each(function () {
let values = $(this).val().split(','); // 쉼표로 분리하여 배열로 저장
let delGoods = {
goodsInnb: values[0],
sopmalCd: values[1]
};
delInnbArr.push(delGoods);
});
if (delInnbArr.length === 0) {
alert("선택된 상품이 없습니다.");
return false;
}
if (confirm('상품을 <spring:message code="confirm.common.delete"/>')) {
$.ajax({
type: 'post',
url: url,
data: {
"delInnbArr": delInnbArr
},
dataType: "json",
success: function (result) {
alert('<spring:message code="success.common.delete"/>');
fn_select_list();
}
})
}
}
/* 관리자 주문 > 상품조회 > 검색조건 > 날짜 선택 이벤트 */
$(document).on('click', '.dateRange-btn', function () {
const date = $(this).attr('id');
$('.dateRange-btn').removeClass('selected');
$('#' + date).addClass('selected');
const datepicker = $(this).closest('.td-inner').find('.datepicker');
const start = $(datepicker[0]).attr('id');
const end = $(datepicker[1]).attr('id');
if ('allDays' === date) {
$('#' + start + ', #' + end).val('');
$('#datePeriod').val(date);
return false;
}
fn_set_date(start, end, end, date);
$('#datePeriod').val(date);
});
/*********************************************************
* 상품 복사 조회
*********************************************************/
const fn_move_goods_copy = (goodsInnb) => {
window.open("/mngr/goods/goodsmngr/selectGoodsCopyForm?goodsInnb=" + goodsInnb, '_self');
}
//카테고리 선택시 카테고리 아이디 저장(검색용)
$(document).on('change', 'select[id^=ctgryDepth]', function () {
const ctgryOptn = $(this).val()
if(!fn_is_empty(ctgryOptn)){
$('#ctgryId').val(ctgryOptn)
}else{
//value가 ''인 카테고리 선택할경우
let currentCtgryDepth = parseInt($(this).attr('id').replace('ctgryDepth', ''));
//1차 카테고리가 아닐 경우 이전 카테고리 번호 가져오기
if(currentCtgryDepth !== 1){
$('#ctgryId').val($('#ctgryDepth' + (currentCtgryDepth - 1)).val())
}else{
//1차 카테고리 일경우 카테고리 번호 비우기
$('#ctgryId').val('')
}
}
})
//초기화버튼
$(document).on('click', '#resetBtn', function () {
$('.ctgry').val('').niceSelect('update')
$('#srchType').val('GOODS_NM').niceSelect('update')
$('input[name="reprsntCtgryAtY"]').prop('checked', false)
$('input[name="ctgryNoRegAtY"]').prop('checked', false)
$('#brandCd').val('').niceSelect('update')
$('select[name="dateDv"]').val('regist').niceSelect('update')
$('#allDays').click()
if(!$('#goodsDftinfo-all').prop('checked')){
$('#goodsDftinfo-all').click()
}
$('#expsrDvCd').click()
$('select[name="pricDv"]').val('cnsmrpric').niceSelect('update')
$('#goodsDftinfoInvntryPolicy0').click()
$('select[name="dlvyGroupInnb"]').val('').niceSelect('update')
$('input[name="ctgryId"]').val('')
$('input[name="startPric"]').val('')
$('input[name="endPric"]').val('')
$('#srchStr').val('')
fn_select_list(1);
})
</script>
<body>
<%@ include file="/WEB-INF/views/comm/mngr/Header.jsp"%>
<main class="main">
<%@ include file="/WEB-INF/views/comm/mngr/Left.jsp"%>
<div class="content">
<div class="content__inner">
<button class="side-nav__fold"><span class="visually-hidden">좌측메뉴 펼치기/닫기</span></button>
<div class="page-title">
<h2 class="page-title__title">카테고리별 상품 순서 목록</h2>
<div class="page-title__btn-container">
<button id="uptGoodsOrdr" class="btn primary">카테고리별 상품 순서 <spring:message code="button.update"/></button>
</div>
</div>
<form id='listForm' name="listForm">
<input type="hidden" id="pageIndex" name="pageIndex" value="${ resultMap.BOGoodsVO.pageIndex }"/>
<input type="hidden" id="goodsKndCd" name="goodsKndCd" value="01"/>
<input type="hidden" id="ctgryId" name="ctgryId" />
<section class="content-section" id="search-section">
<div class="table-wrapper">
<table class="table">
<colgroup>
<col style="width: 12%;">
<col>
<col style="width: 12%;">
<col>
</colgroup>
<%-- <tr>--%>
<%-- <th>검색어</th>--%>
<%-- <td colspan="3">--%>
<%-- <div class="td-inner">--%>
<%-- <div class="select-box">--%>
<%-- <select title="검색타입" id="srchType" name="srchType">--%>
<%-- <option value="GOODS_NM" <c:if test="${ resultMap.BOGoodsVO.srchType == 'GOODS_NM'}">selected="selected"</c:if>>상품명</option>--%>
<%-- <option value="GOODS_INNB" <c:if test="${ resultMap.BOGoodsVO.srchType == 'GOODS_INNB'}">selected="selected"</c:if>>상품번호</option>--%>
<%-- </select>--%>
<%-- </div>--%>
<%-- <input class="input-text xl" type="text" title="검색어" id="srchStr" name="srchStr" value="<c:out value="${ resultMap.BOGoodsVO.srchStr }" />">--%>
<%-- </div>--%>
<%-- </td>--%>
<%-- </tr>--%>
<tr>
<th>카테고리</th>
<td colspan="3">
<div class="td-inner">
<div class="input-container gap-4">
<div class="select-box">
<select id="ctgryDepth1" class="ctgry" title="1차 카테고리">
<option value="">1차 카테고리</option>
<c:forEach items="${resultMap.goodsCategoryList}" var="goodsCategory"
varStatus="status">
<option value="${goodsCategory.ctgryId}">${goodsCategory.ctgryNm}</option>
</c:forEach>
</select>
</div>
<div class="select-box">
<select id="ctgryDepth2" class="ctgry" title="2차 카테고리">
<option value="">2차 카테고리</option>
</select>
</div>
<div class="select-box">
<select id="ctgryDepth3" class="ctgry" title="3차 카테고리">
<option value="">3차 카테고리</option>
</select>
</div>
<div class="select-box">
<select id="ctgryDepth4" class="ctgry" title="4차 카테고리">
<option value="">4차 카테고리</option>
</select>
</div>
</div>
<%-- <div class="b-checkbox-container">--%>
<%-- <label class="b-checkbox checkbox">--%>
<%-- <input type="checkbox" value="Y" name="reprsntCtgryAtY">--%>
<%-- <span class="check"></span>--%>
<%-- <span class="control-label">대표 카테고리 기준</span>--%>
<%-- </label>--%>
<%-- <label class="b-checkbox checkbox">--%>
<%-- <input type="checkbox" value="Y" name="ctgryNoRegAtY">--%>
<%-- <span class="check"></span>--%>
<%-- <span class="control-label">카테고리 미등록</span>--%>
<%-- </label>--%>
<%-- </div>--%>
</div>
</td>
</tr>
<%-- <tr class="search-hide">--%>
<%-- <th>브랜드</th>--%>
<%-- <td colspan="3">--%>
<%-- <div class="td-inner">--%>
<%-- <div class="select-box">--%>
<%-- <select title="브랜드" id="brandCd" name="brandCd">--%>
<%-- <option value="">전체</option>--%>
<%-- <c:forEach var="brandList" items="${ resultMap.brandList }" varStatus="">--%>
<%-- <option value="${ brandList.cd }">${ brandList.cdNm }</option>--%>
<%-- </c:forEach>--%>
<%-- </select>--%>
<%-- </div>--%>
<%-- </div>--%>
<%-- </td>--%>
<%-- </tr>--%>
<%-- <tr class="search-hide">--%>
<%-- <th>날짜</th>--%>
<%-- <td colspan="3">--%>
<%-- <div class="td-inner">--%>
<%-- <div class="select-box">--%>
<%-- <select name="dateDv" title="날짜 구분">--%>
<%-- <option value="regist">등록일</option>--%>
<%-- <option value="updt">수정일</option>--%>
<%-- </select>--%>
<%-- </div>--%>
<%-- <div class="input-container">--%>
<%-- <input type="text" name="startDate" id="startDate" class="datepicker"--%>
<%-- title="시작 날짜 선택" autocomplete="off">--%>
<%-- <span class="tilde">~</span>--%>
<%-- <input type="text" name="endDate" id="endDate" class="datepicker"--%>
<%-- title="종료 날짜 선택" autocomplete="off" pattern="yyyy-MM-dd">--%>
<%-- <input type="hidden" id="datePeriod" name="datePeriod" value=""/>--%>
<%-- </div>--%>
<%-- <div class="dateRange-btnContainer">--%>
<%-- <button type="button" class="dateRange-btn" id="1D">어제</button>--%>
<%-- <button type="button" class="dateRange-btn" id="0">오늘</button>--%>
<%-- <button type="button" class="dateRange-btn" id="3D">3일간</button>--%>
<%-- <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" id="6M">6개월</button>--%>
<%-- <button type="button" class="dateRange-btn" id="1Y">1년</button>--%>
<%-- <button type="button" class="dateRange-btn selected" id="allDays">전체--%>
<%-- </button>--%>
<%-- </div>--%>
<%-- </div>--%>
<%-- </td>--%>
<%-- </tr>--%>
<tr>
<th>판매상태</th>
<td>
<div class="td-inner">
<div class="b-checkbox-container">
<label class="b-checkbox checkbox check-all">
<input id="goodsDftinfo-all" type="checkbox" name="goodsDftinfoArr" value="" checked
onclick="fn_change_event('goodsDftinfo', 'all');">
<span class="check"></span>
<span class="control-label">전체</span>
</label>
<c:forEach items="${resultMap.goodsDftinfoSttusList}" var="goodsDftinfoSttus"
varStatus="status">
<label class="b-checkbox checkbox">
<input type="checkbox" name="goodsDftinfoArr"
value="${goodsDftinfoSttus.cd}"
onclick="fn_change_event('goodsDftinfo', 'other');" checked>
<span class="check"></span>
<span class="control-label">${goodsDftinfoSttus.cdNm}</span>
</label>
</c:forEach>
</div>
</div>
</td>
<th>노출여부</th>
<td>
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" id="expsrDvCd"
name="expsrDvCd" value="" >
<label for="expsrDvCd">전체</label>
</div>
<c:forEach items="${resultMap.expsrCdList}"
var="expsrCdList" varStatus="status">
<div class="custom-radio">
<input type="radio"
id="expsrCdList${status.count}"
name="expsrDvCd"
value="${expsrCdList.cd}" <c:if test="${status.first}">checked</c:if> >
<label for="expsrCdList${status.count}">${expsrCdList.cdNm}</label>
</div>
</c:forEach>
</div>
</div>
</td>
</tr>
<%-- <tr class="search-hide">--%>
<%-- <th>가격</th>--%>
<%-- <td colspan="3">--%>
<%-- <div class="td-inner">--%>
<%-- <div class="select-box">--%>
<%-- <select name="pricDv" title="가격">--%>
<%-- <option value="cnsmrpric">정가</option>--%>
<%-- <option value="slepric">판매가</option>--%>
<%-- </select>--%>
<%-- </div>--%>
<%-- <div class="input-container">--%>
<%-- <input type="text" class="input-text sm right" name="startPric"--%>
<%-- title="startPric">--%>
<%-- <span class="input-unit-text">원</span>--%>
<%-- <span class="tilde">~</span>--%>
<%-- <input type="text" class="input-text sm right" name="endPric"--%>
<%-- title="endPric">--%>
<%-- <span class="input-unit-text">원</span>--%>
<%-- </div>--%>
<%-- </div>--%>
<%-- </td>--%>
<%-- </tr>--%>
<%-- <tr class="search-hide">--%>
<%-- <th>재고에 따른 판매</th>--%>
<%-- <td colspan="3">--%>
<%-- <div class="td-inner">--%>
<%-- <div class="custom-radio-container">--%>
<%-- <div class="custom-radio">--%>
<%-- <input type="radio" id="goodsDftinfoInvntryPolicy0"--%>
<%-- name="goodsDftinfoInvntryPolicy" value="" checked>--%>
<%-- <label for="goodsDftinfoInvntryPolicy0">전체</label>--%>
<%-- </div>--%>
<%-- <c:forEach items="${resultMap.goodsDftinfoInvntryPolicyList}"--%>
<%-- var="goodsDftinfoInvntryPolicy" varStatus="status">--%>
<%-- <div class="custom-radio">--%>
<%-- <input type="radio"--%>
<%-- id="goodsDftinfoInvntryPolicy${status.count}"--%>
<%-- name="goodsDftinfoInvntryPolicy"--%>
<%-- value="${goodsDftinfoInvntryPolicy.cd}">--%>
<%-- <label for="goodsDftinfoInvntryPolicy${status.count}">${goodsDftinfoInvntryPolicy.cdNm}</label>--%>
<%-- </div>--%>
<%-- </c:forEach>--%>
<%-- </div>--%>
<%-- </div>--%>
<%-- </td>--%>
<%-- </tr>--%>
<%-- <tr class="search-hide">--%>
<%-- <th>배송그룹</th>--%>
<%-- <td colspan="3">--%>
<%-- <div class="td-inner">--%>
<%-- <div class="select-box">--%>
<%-- <select title="해당 셀렉트에 대한 설명" name="dlvyGroupInnb">--%>
<%-- <option value="">선택</option>--%>
<%-- <c:if test="${not empty resultMap.dlvyGrpList}">--%>
<%-- <c:forEach var="dlvyGrpInfo" items="${resultMap.dlvyGrpList}">--%>
<%-- <option value="${dlvyGrpInfo.dlvyGroupDvCd}">${dlvyGrpInfo.dlvyGroupNm}</option>--%>
<%-- </c:forEach>--%>
<%-- </c:if>--%>
<%-- </select>--%>
<%-- </div>--%>
<%-- </div>--%>
<%-- </td>--%>
<%-- </tr>--%>
</table>
</div>
<div class="form-control-container">
<div class="left"></div>
<div class="center">
<button class="btn outline" id="resetBtn" type="button">초기화</button>
<button class="btn primary" id="searchBtn" type="button" onclick="fn_select_list(1);"><spring:message code="button.search"/> </button>
</div>
<%-- <div class="right">--%>
<%-- <button class="btn outline search-detail">상세검색</button>--%>
<%-- </div>--%>
</div>
</section>
<div id="pageDiv">
</div>
</form>
<button class="scroll-to-top"><span class="visually-hidden">위로가기</span></button>
</div>
</div>
<div id="modalDiv">
</div>
</main>
<!-- 재고 툴팁 클릭 컨텐츠 -->
<!-- 버튼의 data-info값과 id를 통일시켜야함 -->
<div id="info01" class="mini-info-content" style="width: 280px;">
<div class="mini-info-content__header">
<h5 class="mini-info-content__title">재고 판매</h5>
<button class="mini-info-content__close"><span class="visually-hidden">닫기</span></button>
</div>
<div class="mini-info-content__content">
<p>재고(옵션 기준)에 따른 상품 판매 설정에 따라 아래와 같이 2가지로 표기됩니다.</p>
<p>재고가 있으면 판매 : 재고</p>
<p>재고와 상관없이 주문 가능 : 무제한</p>
</div>
</div>
</body>
</html>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

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 : GoodsSrchPopupForm.jsp
Description : 상품 검색 팝업 폼
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
since : 2024-06-03
--%>
<script>
$(document).ready(function() {
});
</script>
<!-- 재고확인 모달 -->
<div id="invntry-check" class="modal" style="max-width: 600px;">
<div class="modal-header">
<h4>재고 확인</h4>
</div>
<div class="modal-content">
<div class="table-wrapper">
<table class="table vertical tight">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 25%;">
<col style="width: 50%;">
<col>
</colgroup>
<thead>
<th>유형</th>
<th>옵션</th>
<th>재고</th>
</thead>
<tbody>
<c:choose>
<c:when test="${ not empty resultMap.list }">
<c:forEach items="${ resultMap.list }" var="list" varStatus="status">
<tr>
<td>${list.optnTy}</td>
<td>${list.optnVal1}</td>
<td><fmt:formatNumber value="${list.invntryQy}" pattern="#,###"/></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>
</div>

View File

@@ -0,0 +1,157 @@
<%@ 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 : GoodsListR.jsp
Description : 상품 목록 조회 리스트
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-03-20 리브가 최초 생성
--%>
<section class="content-section">
<div class="form-control-container">
<div class="left">
<div class="search-number">
<span class="search-number__text">총 <strong><c:out value="${ resultMap.paginationInfo.totalRecordCount }"/></strong>건</span>
</div>
</div>
<div class="center">
</div>
<div class="right">
<div class="select-box">
<select title="정렬순" name="sortDv" id="sortDv" onchange="fn_select_list(1);return false;">
<option value="goodsNmAsc" <c:if test="${resultMap.BOGoodsVO.sortDv eq 'goodsNmAsc'}">selected="selected"</c:if>>상품명 오름차순</option>
<option value="goodsNmDesc" <c:if test="${resultMap.BOGoodsVO.sortDv eq 'goodsNmDesc'}">selected="selected"</c:if>>상품명 내림차순</option>
<option value="cnsmrpricAsc" <c:if test="${resultMap.BOGoodsVO.sortDv eq 'cnsmrpricAsc'}">selected="selected"</c:if>>정가 오름차순</option>
<option value="cnsmrpricDesc" <c:if test="${resultMap.BOGoodsVO.sortDv eq 'cnsmrpricDesc'}">selected="selected"</c:if>>정가 내림차순</option>
<option value="invntryQyAsc" <c:if test="${resultMap.BOGoodsVO.sortDv eq 'invntryQyAsc'}">selected="selected"</c:if>>재고 오름차순</option>
<option value="invntryQyDesc" <c:if test="${resultMap.BOGoodsVO.sortDv eq 'invntryQyDesc'}">selected="selected"</c:if>>재고 내림차순</option>
<option value="registDtAsc" <c:if test="${resultMap.BOGoodsVO.sortDv eq 'registDtAsc'}">selected="selected"</c:if>>등록일순 오름차순</option>
<option value="registDtDesc" <c:if test="${resultMap.BOGoodsVO.sortDv eq 'registDtDesc' || resultMap.BOGoodsVO.sortDv eq null}">selected="selected"</c:if>>등록일순 내림차순</option>
</select>
</div>
<div class="select-box">
<select id="pageUnit" name="pageUnit" title="페이지당 출력될 목록건수" onchange="fn_select_list(1);">
<c:forEach items="${ resultMap.paginationInfo.pageUnitArr }" var="pageUnit" varStatus="pageUnitStatus">
<option value="<c:out value="${ pageUnit }"/>"
<c:if test="${ resultMap.paginationInfo.recordCountPerPage eq pageUnit}">selected="selected"</c:if>>
<c:out value="${ pageUnit }"/>개씩
</option>
</c:forEach>
</select>
</div>
</div>
</div>
<hr class="horizontal-line">
<div class="form-control-container">
<div class="left">
<button class="btn outline sm" onclick="fn_delete_check();">선택 삭제</button>
</div>
<div class="center">
</div>
</div>
<hr class="spacing">
<div class="table-wrapper">
<table class="table vertical">
<caption>상품정보 목록</caption>
<colgroup>
<col style="width: 4%;">
<col style="width: 4%;">
<col style="width: 7%;">
<col style="width: 12%;">
<col style="width: 7%;">
<col style="width: 7%;">
<col style="width: 7%;">
<col style="width: 7%;">
<col style="width: 10%;">
<col style="width: 14%;">
<col style="width: 4%;">
<col style="width: 4%;">
<col style="width: 10%;">
</colgroup>
<thead>
<tr>
<th>
<label class="b-checkbox checkbox is-medium">
<input type="checkbox" id="checkAll" value="">
<span class="check"></span>
</label>
</th>
<th>번호</th>
<th colspan="2">상품명</th>
<th>정가</th>
<th>판매가</th>
<th>재고</th>
<th>재고판매
<%-- <button class="mini-info-btn mb-3" data-info="info01">?</button>--%>
</th>
<th>배송그룹</th>
<th>등록일/수정일</th>
<th>판매상태</th>
<th>노출여부</th>
<th>관리</th>
</tr>
</thead>
<tbody>
<c:choose>
<c:when test="${ not empty resultMap.list }">
<c:forEach items="${ resultMap.list }" var="list" varStatus="status">
<tr>
<td>
<label class="b-checkbox checkbox is-medium">
<input type="checkbox" name="goodsInnbChk" class="goodsInnb" value="${list.goodsInnb},${list.sopmalCd}">
<span class="check"></span>
</label>
</td>
<td><c:out value="${ resultMap.paginationInfo.totalRecordCount - list.rnum + 1 }" /></td>
<td>
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.cdnurl')" var="cdnurl"/>
<a href="javascript:void(0);" onclick="fn_move_goods_dtl_common(<c:out value="${list.goodsInnb}"/>, 'sopmal')">
<img src="<c:out value="${cdnurl}${list.goodsImgCours}"/>"
onerror="this.src='<c:url value="/mngr/images/image_placeholder.png"/>'"
alt="${list.goodsNm}" width="56" height="56">
</a>
</td>
<td><a onclick="fn_move_goods_dtl_common(<c:out value="${list.goodsInnb}"/>, 'mngr', '01', '_self')" class="under-line">${list.goodsNm}</a>
</td>
<td>${list.cnsmrpric}</td>
<td>${list.slepric}</td>
<td><a onclick="fn_open_modal('#modalDiv','#invntry-check','/mngr/goods/goodsmngr/selectGoodsInvntryPopup',{'goodsInnb':${list.goodsInnb}, 'sopmalCd':'${list.sopmalCd}'}); return false;" class="under-line">재고확인</a></td>
<td>${list.invntryPolicyCdDc}</td>
<td>${list.dlvyGroupNm}</td>
<td>
<span>${list.registDt}</span><br><span>${list.updtDt}</span>
</td>
<td>${list.goodsSttusNm}</td>
<td>${list.expsrNm}</td>
<td>
<div class="manage-btn-container">
<button class="btn xsm light-gray" type="button" onclick="fn_move_goods_copy(<c:out
value="${list.goodsInnb}"/>)"><spring:message code="button.copy"/> </button>
<button class="btn xsm outline" type="button" onclick="fn_move_goods_dtl_common(<c:out value="${list.goodsInnb}"/>,'mngr','01','_self')"><spring:message code="button.update"/></button>
</div>
</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>
</section>
<div class="pagination__container">
<ui:pagination paginationInfo="${resultMap.paginationInfo}" type="image" jsFunction="fn_select_list"/>
</div>

View File

@@ -0,0 +1,722 @@
<%@ 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 : GoodsListRForm.jsp
Description : 상품 목록 조회 폼
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-03-20 리브가 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>GC ONE 관리자</title>
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
</head>
<script>
let goodsDftinfoArr = [];
$(document).ready(function () {
let pageIndex = '<c:out value="${ resultMap.BOGoodsVO.pageIndex }"/>';
let pageUnit = '<c:out value="${ resultMap.BOGoodsVO.pageUnit }"/>';
// 목록 조회
fn_select_list(pageIndex, pageUnit);
// 엔터키 검색
$('#listForm').on('keydown', function (event) {
if (event.keyCode === 13) {
event.preventDefault();
fn_select_list(1);
}
});
// event 제어
fn_event();
});
//판매상태 체크 검색
$(document).on('click','input[name="goodsDftinfoArr"]' , function() {
// 체크된 체크박스의 값을 배열에 추가
if(!goodsDftinfoArr.some(item => item === $(this).val())){
goodsDftinfoArr.push($(this).val());
}else{
//체크된 값이 있으면 제거
for(let i = 0; i < goodsDftinfoArr.length; i++) {
if (goodsDftinfoArr[i] === $(this).val()) {
goodsDftinfoArr.splice(i, 1);
}
}
}
// 조건 확인 및 배열 초기화
if (goodsDftinfoArr.includes("") ||
(goodsDftinfoArr.includes("01") && goodsDftinfoArr.includes("02") && goodsDftinfoArr.includes("03"))) {
goodsDftinfoArr = []; // 배열 초기화
}
});
/* ********************************************************
* 목록 조회
******************************************************** */
const fn_select_list = function (pageIndex, pageUnit) {
let dataStr;
//판매상태 검색 내역 있을 경우 삭제
if($('input[name="goodsDftinfoSttus"]') != null){
$('input[name="goodsDftinfoSttus"]').remove()
}
$('input[name="goodsDftinfoArr"]:checked').each(function(idx, item) {
console.log('idx',idx,'item', item.value)
if(!fn_is_empty(item.value)){
$('#listForm').append(
$('<input>', {
'type': 'hidden',
'name': 'goodsDftinfoSttus',
'value': item.value
})
)
}
})
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;
}
}
console.log('dataStr', dataStr)
$.ajax({
type: "post",
url: "<c:url value="/mngr/goods/goodsmngr/selectGoodsList"/>",
data: dataStr,
success: function (resultHtml) {
$('#pageDiv').html(resultHtml);
$('#pageUnit').niceSelect();
$('#sortDv').niceSelect();
}
});
}
/* ********************************************************
* 등록폼 이동
******************************************************** */
const fn_move_regpage = function () {
const url = '<c:url value="/mngr/goods/goodsmngr/selectGoodsRegistForm"/>';
$('#listForm').attr('action', url);
$('#listForm').attr('method', 'post');
$('#listForm').submit();
};
history.replaceState({}, null, location.pathname);
/* ****************************
* event 제어
******************************/
const fn_event = function () {
/*상세검색 버튼 상태 및 상세조회 대상 안보이게 처리*/
$('.search-hide').hide()
$('.search-detail').removeClass('opened')
$(document).ready('click', '.search-detail', function () {
let searchHide = $(".search-hide");
if (searchHide.is(":visible")) {
searchHide.hide();
$('.search-detail').removeClass('opened')
} else {
searchHide.show();
$('.search-detail').addClass('opened')
}
});
/* input 숫자만 입력 */
$(document).on('input', '.number-only', function () {
$(this).val(($(this).val().replace(/[^0-9]/g, '')).replace(/^0+/, ''));
});
/* 목록 > 전체선택 체인지 이벤트 */
$(document).on('change', '#checkAll', function () {
let checkbox = $(this).closest('table').find('input[name="goodsInnbChk"]');
$(checkbox).prop('checked', false);
$(checkbox).prop('checked', $(this).is(':checked'));
});
/* 검색조건 > 카테고리 선택 이벤트 */
$(document).on('change', '.ctgry', function () {
const upperCtgryId = $(this).val(); // 상위카테고리
const currCtgryDepth = $(this).attr('id').replace('ctgryDepth', '');
const targetDepth = (parseInt(currCtgryDepth) + 1);
const targetCtgryId = 'ctgryDepth' + targetDepth;
if (fn_is_empty(upperCtgryId)) {
for (let i = targetDepth; i < 5; i++) {
$('#search-section').find('#ctgryDepth' + i).empty().append('<option value="">' + i + '차 카테고리</option>').niceSelect('update');
}
} else {
fn_get_goods_ctgry(upperCtgryId, targetCtgryId);
}
$('#search-section').find('#ctgryId').val(upperCtgryId);
});
/* 검색조건 > 노출여부 선택 이벤트 */
$(document).on('click', 'input[name="expsrCd"]', function () {
const sttus = $(this).val();
const popup = $('#search-section');
const checkbox = $(popup).find('input[name="expsrCd"]');
const all = $(popup).find('input[name="expsrCd"][value=""]')
if (fn_is_empty(sttus)) {
$(checkbox).prop('checked', false);
$(this).prop('checked', true);
} else {
$(all).prop('checked', false);
const length = $(popup).find('input[name="expsrCd"]:checked').length;
if (2 < length) {
$(checkbox).prop('checked', false);
$(all).prop('checked', true);
}
}
});
}
/* ********************************************************
* 카테고리 체크버튼 이벤트
******************************************************** */
const fn_change_event = function (_target, _arg) {
if (_arg === 'all') {
if ($('#' + _target + '-all').is(':checked')) {
$('[name=' + _target + 'Arr]').prop('checked', true);
} else {
$('[name=' + _target + 'Arr]').prop('checked', false);
}
} else {
let chkCnt = $('[name=' + _target + 'Arr]:checked').length;
let allCnt = $('[name=' + _target + 'Arr]').length;
if (chkCnt !== allCnt && $('#' + _target + '-all').is(':checked')) {
$('#' + _target + '-all').prop('checked', false);
} else if (chkCnt !== allCnt && !$('#' + _target + '-all').is(':checked') && allCnt - chkCnt === 1) {
$('#' + _target + '-all').prop('checked', true);
} else if (chkCnt === allCnt) {
$('#' + _target + '-all').prop('checked', true);
}
}
}
/* ****************************
* 카테고리 목록 조회 AJAX
******************************/
const fn_get_goods_ctgry = function (upperCtgryId, targetCtgryId) {
$.ajax({
type: 'post',
url: '<c:url value="/admin/sys/ctgry/selectGoodsCategoryList"/>',
data: {
'upperCtgryId': upperCtgryId
},
success: function (data) {
if (data.resBody != null) {
const result = JSON.parse(data.resBody.result);
const goodsCategoryList = result.goodsCategoryList;
if (goodsCategoryList.length > 0) {
$('#' + targetCtgryId + ' option').filter(function() {
return $(this).val() !== '';
}).remove();
for (let i = 0; i < goodsCategoryList.length; i++) {
const goodsCategory = goodsCategoryList[i];
$('#search-section').find('#' + targetCtgryId).append('<option value="' + goodsCategory.ctgryId + '">' + goodsCategory.ctgryNm + '</option>');
}
$('#search-section').find('#' + targetCtgryId).niceSelect('update');
}
}
},
error: function (data) {
fn_proc_error_message(data);
}
});
}
/* ****************************
* 상품 목록 조회 AJAX
******************************/
const fn_get_goods_list = function (pageIndex) {
const popup = $('#product-select-pop');
$(popup).find('#pageIndex').val(pageIndex);
$.ajax({
type: 'post',
url: '<c:url value="/crm/ordr/selectGoodsList"/>',
data: $(popup).find('#goodsCondForm').serialize(),
success: function (html) {
$('#product-select-pop').find('#pageDiv').html(html);
const goodsList = JSON.parse(localStorage.getItem('goodsList'));
if (!fn_is_empty(goodsList)) {
fn_set_choice_order_goods(goodsList);
}
}
});
}
/*********************************************************
* 상품 선택 삭제 AJAX
*********************************************************/
const fn_delete_check = function () {
let url = '<c:url value="/mngr/goods/goodsmngr/deleteGoods"/>';
let delInnbArr = [];
// 선택 삭제일 경우
$("input[name='goodsInnbChk']:checked").each(function () {
let values = $(this).val().split(','); // 쉼표로 분리하여 배열로 저장
let delGoods = {
goodsInnb: values[0],
sopmalCd: values[1]
};
delInnbArr.push(delGoods);
});
if (delInnbArr.length === 0) {
alert("선택된 상품이 없습니다.");
return false;
}
if (confirm('상품을 <spring:message code="confirm.common.delete"/>')) {
$.ajax({
type: 'post',
url: url,
data: {
"delInnbArr": delInnbArr
},
dataType: "json",
success: function (result) {
alert('<spring:message code="success.common.delete"/>');
fn_select_list();
}
})
}
}
/* 관리자 주문 > 상품조회 > 검색조건 > 날짜 선택 이벤트 */
$(document).on('click', '.dateRange-btn', function () {
const date = $(this).attr('id');
$('.dateRange-btn').removeClass('selected');
$('#' + date).addClass('selected');
const datepicker = $(this).closest('.td-inner').find('.datepicker');
const start = $(datepicker[0]).attr('id');
const end = $(datepicker[1]).attr('id');
if ('allDays' === date) {
$('#' + start + ', #' + end).val('');
$('#datePeriod').val(date);
return false;
}
fn_set_date(start, end, end, date);
$('#datePeriod').val(date);
});
/*********************************************************
* 상품 복사 조회
*********************************************************/
const fn_move_goods_copy = (goodsInnb) => {
window.open("/mngr/goods/goodsmngr/selectGoodsCopyForm?goodsInnb=" + goodsInnb, '_self');
}
//카테고리 선택시 카테고리 아이디 저장(검색용)
$(document).on('change', 'select[id^=ctgryDepth]', function () {
const ctgryOptn = $(this).val()
if(!fn_is_empty(ctgryOptn)){
$('#ctgryId').val(ctgryOptn)
}else{
//value가 ''인 카테고리 선택할경우
let currentCtgryDepth = parseInt($(this).attr('id').replace('ctgryDepth', ''));
//1차 카테고리가 아닐 경우 이전 카테고리 번호 가져오기
if(currentCtgryDepth !== 1){
$('#ctgryId').val($('#ctgryDepth' + (currentCtgryDepth - 1)).val())
}else{
//1차 카테고리 일경우 카테고리 번호 비우기
$('#ctgryId').val('')
}
}
})
//초기화버튼
$(document).on('click', '#resetBtn', function () {
$('.ctgry').val('').niceSelect('update')
$('#srchType').val('GOODS_NM').niceSelect('update')
$('input[name="reprsntCtgryAtY"]').prop('checked', false)
$('input[name="ctgryNoRegAtY"]').prop('checked', false)
$('#brandCd').val('').niceSelect('update')
$('select[name="dateDv"]').val('regist').niceSelect('update')
$('#allDays').click()
if(!$('#goodsDftinfo-all').prop('checked')){
$('#goodsDftinfo-all').click()
}
$('#expsrDvCd').click()
$('select[name="pricDv"]').val('cnsmrpric').niceSelect('update')
$('#goodsDftinfoInvntryPolicy0').click()
$('select[name="dlvyGroupInnb"]').val('').niceSelect('update')
$('input[name="ctgryId"]').val('')
$('input[name="startPric"]').val('')
$('input[name="endPric"]').val('')
$('#srchStr').val('')
fn_select_list(1);
})
</script>
<body>
<%@ include file="/WEB-INF/views/comm/mngr/Header.jsp"%>
<main class="main">
<%@ include file="/WEB-INF/views/comm/mngr/Left.jsp"%>
<div class="content">
<div class="content__inner">
<button class="side-nav__fold"><span class="visually-hidden">좌측메뉴 펼치기/닫기</span></button>
<div class="page-title">
<h2 class="page-title__title">상품 목록</h2>
<div class="page-title__btn-container">
<button onclick="fn_move_regpage()" class="btn primary">상품 <spring:message code="button.insert"/></button>
</div>
</div>
<form id='listForm' name="listForm" method="post"
action="<c:url value="/mngr/goods/goodsmngr/selectGoodsListForm"/>">
<input type="hidden" id="pageIndex" name="pageIndex" value="${ resultMap.BOGoodsVO.pageIndex }"/>
<input type="hidden" id="goodsInnb" name="goodsInnb"/>
<input type="hidden" id="goodsKndCd" name="goodsKndCd" value="01"/>
<input type="hidden" id="ctgryId" name="ctgryId" />
<%--
<input type="hidden" id="sopmalCd" name="sopmalCd"/>
--%>
<section class="content-section" id="search-section">
<div class="table-wrapper">
<table class="table">
<colgroup>
<col style="width: 12%;">
<col>
<col style="width: 12%;">
<col>
</colgroup>
<tr>
<th>검색어</th>
<td colspan="3">
<div class="td-inner">
<div class="select-box">
<select title="검색타입" id="srchType" name="srchType">
<option value="GOODS_NM" <c:if test="${ resultMap.BOGoodsVO.srchType == 'GOODS_NM'}">selected="selected"</c:if>>상품명</option>
<option value="GOODS_INNB" <c:if test="${ resultMap.BOGoodsVO.srchType == 'GOODS_INNB'}">selected="selected"</c:if>>상품번호</option>
</select>
</div>
<input class="input-text xl" type="text" title="검색어" id="srchStr" name="srchStr" value="<c:out value="${ resultMap.BOGoodsVO.srchStr }" />">
</div>
</td>
</tr>
<tr>
<th>카테고리</th>
<td colspan="3">
<div class="td-inner">
<div class="input-container gap-4">
<div class="select-box">
<select id="ctgryDepth1" class="ctgry" title="1차 카테고리">
<option value="">1차 카테고리</option>
<c:forEach items="${resultMap.goodsCategoryList}" var="goodsCategory"
varStatus="status">
<option value="${goodsCategory.ctgryId}">${goodsCategory.ctgryNm}</option>
</c:forEach>
</select>
</div>
<div class="select-box">
<select id="ctgryDepth2" class="ctgry" title="2차 카테고리">
<option value="">2차 카테고리</option>
</select>
</div>
<div class="select-box">
<select id="ctgryDepth3" class="ctgry" title="3차 카테고리">
<option value="">3차 카테고리</option>
</select>
</div>
<div class="select-box">
<select id="ctgryDepth4" class="ctgry" title="4차 카테고리">
<option value="">4차 카테고리</option>
</select>
</div>
</div>
<div class="b-checkbox-container">
<label class="b-checkbox checkbox">
<input type="checkbox" value="Y" name="reprsntCtgryAtY">
<span class="check"></span>
<span class="control-label">대표 카테고리 기준</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="Y" name="ctgryNoRegAtY">
<span class="check"></span>
<span class="control-label">카테고리 미등록</span>
</label>
</div>
</div>
</td>
</tr>
<tr class="search-hide">
<th>브랜드</th>
<td colspan="3">
<div class="td-inner">
<div class="select-box">
<select title="브랜드" id="brandCd" name="brandCd">
<option value="">전체</option>
<c:forEach var="brandList" items="${ resultMap.brandList }" varStatus="">
<option value="${ brandList.cd }">${ brandList.cdNm }</option>
</c:forEach>
</select>
</div>
</div>
</td>
</tr>
<tr class="search-hide">
<th>날짜</th>
<td colspan="3">
<div class="td-inner">
<div class="select-box">
<select name="dateDv" title="날짜 구분">
<option value="regist">등록일</option>
<option value="updt">수정일</option>
</select>
</div>
<div class="input-container">
<input type="text" name="startDate" id="startDate" class="datepicker"
title="시작 날짜 선택" autocomplete="off">
<span class="tilde">~</span>
<input type="text" name="endDate" id="endDate" class="datepicker"
title="종료 날짜 선택" autocomplete="off" pattern="yyyy-MM-dd">
<input type="hidden" id="datePeriod" name="datePeriod" value=""/>
</div>
<div class="dateRange-btnContainer">
<button type="button" class="dateRange-btn" id="1D">어제</button>
<button type="button" class="dateRange-btn" id="0">오늘</button>
<button type="button" class="dateRange-btn" id="3D">3일간</button>
<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" id="6M">6개월</button>
<button type="button" class="dateRange-btn" id="1Y">1년</button>
<button type="button" class="dateRange-btn selected" id="allDays">전체
</button>
</div>
</div>
</td>
</tr>
<tr>
<th>판매상태</th>
<td>
<div class="td-inner">
<div class="b-checkbox-container">
<label class="b-checkbox checkbox check-all">
<input id="goodsDftinfo-all" type="checkbox" name="goodsDftinfoArr" value="" checked
onclick="fn_change_event('goodsDftinfo', 'all');">
<span class="check"></span>
<span class="control-label">전체</span>
</label>
<c:forEach items="${resultMap.goodsDftinfoSttusList}" var="goodsDftinfoSttus"
varStatus="status">
<label class="b-checkbox checkbox">
<input type="checkbox" name="goodsDftinfoArr"
value="${goodsDftinfoSttus.cd}"
onclick="fn_change_event('goodsDftinfo', 'other');" checked>
<span class="check"></span>
<span class="control-label">${goodsDftinfoSttus.cdNm}</span>
</label>
</c:forEach>
</div>
</div>
</td>
<th>노출여부</th>
<td>
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" id="expsrDvCd"
name="expsrDvCd" value="" checked>
<label for="expsrDvCd">전체</label>
</div>
<c:forEach items="${resultMap.expsrCdList}"
var="expsrCdList" varStatus="status">
<div class="custom-radio">
<input type="radio"
id="expsrCdList${status.count}"
name="expsrDvCd"
value="${expsrCdList.cd}">
<label for="expsrCdList${status.count}">${expsrCdList.cdNm}</label>
</div>
</c:forEach>
</div>
</div>
</td>
</tr>
<tr class="search-hide">
<th>가격</th>
<td colspan="3">
<div class="td-inner">
<div class="select-box">
<select name="pricDv" title="가격">
<option value="cnsmrpric">정가</option>
<option value="slepric">판매가</option>
</select>
</div>
<div class="input-container">
<input type="text" class="input-text sm right" name="startPric"
title="startPric">
<span class="input-unit-text">원</span>
<span class="tilde">~</span>
<input type="text" class="input-text sm right" name="endPric"
title="endPric">
<span class="input-unit-text">원</span>
</div>
</div>
</td>
</tr>
<tr class="search-hide">
<th>재고에 따른 판매</th>
<td colspan="3">
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" id="goodsDftinfoInvntryPolicy0"
name="goodsDftinfoInvntryPolicy" value="" checked>
<label for="goodsDftinfoInvntryPolicy0">전체</label>
</div>
<c:forEach items="${resultMap.goodsDftinfoInvntryPolicyList}"
var="goodsDftinfoInvntryPolicy" varStatus="status">
<div class="custom-radio">
<input type="radio"
id="goodsDftinfoInvntryPolicy${status.count}"
name="goodsDftinfoInvntryPolicy"
value="${goodsDftinfoInvntryPolicy.cd}">
<label for="goodsDftinfoInvntryPolicy${status.count}">${goodsDftinfoInvntryPolicy.cdNm}</label>
</div>
</c:forEach>
</div>
</div>
</td>
</tr>
<tr class="search-hide">
<th>배송그룹</th>
<td colspan="3">
<div class="td-inner">
<div class="select-box">
<select title="해당 셀렉트에 대한 설명" name="dlvyGroupInnb">
<option value="">선택</option>
<c:if test="${not empty resultMap.dlvyGrpList}">
<c:forEach var="dlvyGrpInfo" items="${resultMap.dlvyGrpList}">
<option value="${dlvyGrpInfo.dlvyGroupDvCd}">${dlvyGrpInfo.dlvyGroupNm}</option>
</c:forEach>
</c:if>
</select>
</div>
</div>
</td>
</tr>
</table>
</div>
<div class="form-control-container">
<div class="left"></div>
<div class="center">
<button class="btn outline" id="resetBtn" type="button">초기화</button>
<button class="btn primary" id="searchBtn" type="button" onclick="fn_select_list(1);"><spring:message code="button.search"/> </button>
</div>
<div class="right">
<button class="btn outline search-detail">상세검색</button>
</div>
</div>
</section>
<div id="pageDiv">
</div>
</form>
<button class="scroll-to-top"><span class="visually-hidden">위로가기</span></button>
</div>
</div>
<div id="modalDiv">
</div>
</main>
<!-- 재고 툴팁 클릭 컨텐츠 -->
<!-- 버튼의 data-info값과 id를 통일시켜야함 -->
<div id="info01" class="mini-info-content" style="width: 280px;">
<div class="mini-info-content__header">
<h5 class="mini-info-content__title">재고 판매</h5>
<button class="mini-info-content__close"><span class="visually-hidden">닫기</span></button>
</div>
<div class="mini-info-content__content">
<p>재고(옵션 기준)에 따른 상품 판매 설정에 따라 아래와 같이 2가지로 표기됩니다.</p>
<p>재고가 있으면 판매 : 재고</p>
<p>재고와 상관없이 주문 가능 : 무제한</p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,429 @@
<%@ 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 : GoodsPurchaseLimttPopupC.jsp
Description : 상품 구매대상자 제한 popup
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
since : 2024-06-03
--%>
<script>
$(document).ready(function() {
const allGradesRows = document.querySelectorAll("#all-grades-row, #all-grades-purchase-row");
const individualGradeRows = document.querySelectorAll(".individual-grade-row");
const gradSetAllRadio = document.getElementById("gradSetAll");
const gradSetDistinctRadio = document.getElementById("gradSet");
// Function to toggle visibility
function toggleRows() {
if (gradSetAllRadio.checked) {
allGradesRows.forEach(row => row.style.display = "");
individualGradeRows.forEach(row => row.style.display = "none");
} else {
allGradesRows.forEach(row => row.style.display = "none");
individualGradeRows.forEach(row => row.style.display = "");
}
}
// Event listeners
gradSetAllRadio.addEventListener("change", toggleRows);
gradSetDistinctRadio.addEventListener("change", toggleRows);
// Initial toggle
toggleRows();
});
</script>
<div id="purchase-limit" class="modal" style="max-width: 760px;">
<div class="modal-header">
<h4>구매 대상자 제한 설정</h4>
</div>
<div class="modal-content">
<div class="table-wrapper">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 10%;">
<col style="width: 15%;">
<col>
</colgroup>
<tbody>
<form>
<tr class="goods-trget-dv-list">
<th rowspan="2" colspan="2" value="" name="">비회원</th>
<td>
<div class="td-inner price-limit-container">
<div class="b-checkbox-container my-5">
<label class="b-checkbox checkbox">
<input type="checkbox" id="pricRplcWordsUseAt_none" name="pricRplcWordsUseAt_none" value="">
<span class="check"></span>
<span class="control-label">가격제한</span>
</label>
</div>
<div class="table-wrapper">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 23%;">
<col>
</colgroup>
<tbody>
<tr>
<th>가격 대체 문구</th>
<td>
<div class="td-inner">
<input class="input-text price-limit-input" type="text" title="해당 인풋에 대한 설명" id="pricRplcWords_none" name="pricRplcWords_none" disabled>
</div>
</td>
</tr>
<tr>
<th>링크 연결</th>
<td>
<div class="td-inner">
<input class="input-text" type="text" title="해당 인풋에 대한 설명" id="pricRplcLink_none" name="pricRplcLink_none" disabled>
<div class="select-box">
<select class="short" title="해당 셀렉트에 대한 설명" name="pricRplcLinkDvCd_none" id="pricRplcLinkDvCd_none" disabled>
<c:forEach items="${resultMap.PrlcLinkDvList}" var="PrlcLinkDvList">
<option value="${PrlcLinkDvList.cd}">${PrlcLinkDvList.cdNm}</option>
</c:forEach>
</select>
</div>
<div class="select-box">
<select class="short" title="해당 셀렉트에 대한 설명" id="pricRplcLinkBrwsrDvCd_none" name="pricRplcLinkBrwsrDvCd_none" disabled>
<c:forEach items="${resultMap.PrlcLinkBrwsrDvList}" var="PrlcLinkBrwsrDvList">
<option value="${PrlcLinkBrwsrDvList.cd}">${PrlcLinkBrwsrDvList.cdNm}</option>
</c:forEach>
</select>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="td-inner purchase-limit-container">
<div class="b-checkbox-container my-5">
<label class="b-checkbox checkbox">
<input type="checkbox" id="buttonRplcWordsUseAt_none" name="buttonRplcWordsUseAt_none" value="">
<span class="check"></span>
<span class="control-label">구매제한</span>
</label>
</div>
<div class="table-wrapper">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 23%;">
<col>
</colgroup>
<tbody>
<tr>
<th>버튼 대체 문구</th>
<td>
<div class="td-inner">
<input class="input-text" type="text" id="buttonRplcWords_none" name="buttonRplcWords_none" title="해당 인풋에 대한 설명" disabled>
</div>
</td>
</tr>
<tr>
<th>링크 연결</th>
<td>
<div class="td-inner">
<input class="input-text" type="text" title="해당 인풋에 대한 설명" id="buttonRplcLink_none" name="buttonRplcLink_none" disabled>
<div class="select-box">
<select class="short" title="해당 셀렉트에 대한 설명" id="buttonRplcLinkDvCd_none" name="buttonRplcLinkDvCd_none" disabled>
<c:forEach items="${resultMap.PrlcLinkDvList}" var="PrlcLinkDvList">
<option value="${PrlcLinkDvList.cd}">${PrlcLinkDvList.cdNm}</option>
</c:forEach>
</select>
</div>
<div class="select-box">
<select class="short" title="해당 셀렉트에 대한 설명" id="buttonRplcLinkBrwsrDvCd_none" name="buttonRplcLinkBrwsrDvCd_none" disabled>
<c:forEach items="${resultMap.PrlcLinkBrwsrDvList}" var="PrlcLinkBrwsrDvList">
<option value="${PrlcLinkBrwsrDvList.cd}">${PrlcLinkBrwsrDvList.cdNm}</option>
</c:forEach>
</select>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</td>
</tr>
<tr>
<th class="border-right" rowspan="1" colspan="2">회원 등급 별 제한</th>
<td>
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" id="gradSetAll" name="gradSet" value="all" checked="">
<label for="gradSetAll">모든 등급 일괄 설정</label>
</div>
<div class="custom-radio">
<input type="radio" id="gradSet" name="gradSet" value="distinct">
<label for="gradSet">등급 별 설정</label>
</div>
</div>
</div>
</td>
</tr>
<tr id="all-grades-row">
<th rowspan="2" colspan="2" value="">모든 등급</th>
<td>
<div class="td-inner">
<div class="b-checkbox-container my-5">
<label class="b-checkbox checkbox">
<input type="checkbox" id="pricRplcWordsUseAt_all" name="pricRplcWordsUseAt_all" value="">
<span class="check"></span>
<span class="control-label">가격제한</span>
</label>
</div>
<div class="table-wrapper">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 23%;">
<col>
</colgroup>
<tbody>
<tr>
<th>가격 대체 문구</th>
<td>
<div class="td-inner">
<input class="input-text" type="text" title="해당 인풋에 대한 설명" id="pricRplcWords_all" name="pricRplcWords_all" disabled>
</div>
</td>
</tr>
<tr>
<th>링크 연결</th>
<td>
<div class="td-inner">
<input class="input-text" type="text" title="해당 인풋에 대한 설명" id="pricRplcLink_all" name="pricRplcLink_all" disabled>
<div class="select-box">
<select class="short" title="해당 셀렉트에 대한 설명" id="pricRplcLinkDvCd_all" name="pricRplcLinkDvCd_all" disabled>
<c:forEach items="${resultMap.PrlcLinkDvList}" var="PrlcLinkDvList">
<option value="${PrlcLinkDvList.cd}">${PrlcLinkDvList.cdNm}</option>
</c:forEach>
</select>
</div>
<div class="select-box">
<select class="short" title="해당 셀렉트에 대한 설명" id="pricRplcLinkBrwsrDvCd_all" name="pricRplcLinkBrwsrDvCd_all" disabled>
<c:forEach items="${resultMap.PrlcLinkBrwsrDvList}" var="PrlcLinkBrwsrDvList">
<option value="${PrlcLinkBrwsrDvList.cd}">${PrlcLinkBrwsrDvList.cdNm}</option>
</c:forEach>
</select>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</td>
</tr>
<tr id="all-grades-purchase-row">
<td>
<div class="td-inner">
<div class="b-checkbox-container my-5">
<label class="b-checkbox checkbox">
<input type="checkbox" id="buttonRplcWordsUseAt_all" name="buttonRplcWordsUseAt_all" value="">
<span class="check"></span>
<span class="control-label">구매제한</span>
</label>
</div>
<div class="table-wrapper">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 23%;">
<col>
</colgroup>
<tbody>
<tr>
<th>버튼 대체 문구</th>
<td>
<div class="td-inner">
<input class="input-text" type="text" id="buttonRplcWords_all" name="buttonRplcWords_all" title="해당 인풋에 대한 설명" disabled>
</div>
</td>
</tr>
<tr>
<th>링크 연결</th>
<td>
<div class="td-inner">
<input class="input-text" type="text" title="해당 인풋에 대한 설명" id="buttonRplcLink_all" name="buttonRplcLink_all" disabled>
<div class="select-box">
<select class="short" title="해당 셀렉트에 대한 설명" id="buttonRplcLinkDvCd_all" name="buttonRplcLinkDvCd_all" disabled>
<c:forEach items="${resultMap.PrlcLinkDvList}" var="PrlcLinkDvList">
<option value="${PrlcLinkDvList.cd}">${PrlcLinkDvList.cdNm}</option>
</c:forEach>
</select>
</div>
<div class="select-box">
<select class="short" title="해당 셀렉트에 대한 설명" id="buttonRplcLinkBrwsrDvCd_all" name="buttonRplcLinkBrwsrDvCd_all" disabled>
<c:forEach items="${resultMap.PrlcLinkBrwsrDvList}" var="PrlcLinkBrwsrDvList">
<option value="${PrlcLinkBrwsrDvList.cd}">${PrlcLinkBrwsrDvList.cdNm}</option>
</c:forEach>
</select>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</td>
</tr>
<c:if test="${not empty resultMap.gradList}">
<c:forEach items="${resultMap.gradList}" var="member" varStatus="status">
<tr class="individual-grade-row">
<input type="hidden" id="mbrGradInnb" name="mbrGradInnb" value="${member.mbrGradInnb}">
<th rowspan="2" colspan="2" >${member.mbrGradNm}</th>
<td>
<div class="td-inner">
<div class="b-checkbox-container my-5">
<label class="b-checkbox checkbox">
<input class= "gradSetAllChk_pric" type="checkbox" id="pricRplcWordsUseAt_${status.index}" name="pricRplcWordsUseAt_${status.index}" value="">
<span class="check"></span>
<span class="control-label">가격제한</span>
</label>
</div>
<div class="table-wrapper">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 23%;">
<col>
</colgroup>
<tbody>
<tr>
<th>가격 대체 문구</th>
<td>
<div class="td-inner">
<input class="input-text price-limit-input gradSetAllChk_pric" type="text" title="해당 인풋에 대한 설명" id="pricRplcWords_${status.index}" name="pricRplcWords_${status.index}" disabled>
</div>
</td>
</tr>
<tr>
<th>링크 연결</th>
<td>
<div class="td-inner">
<input class="input-text gradSetAllChk_pric" type="text" title="해당 인풋에 대한 설명" id="pricRplcLink_${status.index}" name="pricRplcLink_${status.index}" disabled>
<div class="select-box">
<select class="short gradSetAllChk_pric" title="해당 셀렉트에 대한 설명" id="pricRplcLinkDvCd_${status.index}" name="pricRplcLinkDvCd_${status.index}" disabled>
<c:forEach items="${resultMap.PrlcLinkDvList}" var="PrlcLinkDvList">
<option value="${PrlcLinkDvList.cd}">${PrlcLinkDvList.cdNm}</option>
</c:forEach>
</select>
</div>
<div class="select-box">
<select class="short gradSetAllChk_pric" title="해당 셀렉트에 대한 설명" id="pricRplcLinkBrwsrDvCd_${status.index}" name="pricRplcLinkBrwsrDvCd_${status.index}" disabled>
<c:forEach items="${resultMap.PrlcLinkBrwsrDvList}" var="PrlcLinkBrwsrDvList">
<option value="${PrlcLinkBrwsrDvList.cd}">${PrlcLinkBrwsrDvList.cdNm}</option>
</c:forEach>
</select>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</td>
</tr>
<tr class="individual-grade-row">
<td>
<div class="td-inner">
<div class="b-checkbox-container my-5">
<label class="b-checkbox checkbox">
<input class = "gradSetAllChk_btn" type="checkbox" id="buttonRplcWordsUseAt_${status.index}" name="buttonRplcWordsUseAt_${status.index}" value="">
<span class="check"></span>
<span class="control-label">구매제한</span>
</label>
</div>
<div class="table-wrapper">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 23%;">
<col>
</colgroup>
<tbody>
<tr>
<th>버튼 대체 문구</th>
<td>
<div class="td-inner">
<input class="input-text gradSetAllChk_btn" type="text" id="buttonRplcWords_${status.index}" name="buttonRplcWords_${status.index}" title="해당 인풋에 대한 설명" disabled>
</div>
</td>
</tr>
<tr>
<th>링크 연결</th>
<td>
<div class="td-inner">
<input class="input-text gradSetAllChk_btn" type="text" title="해당 인풋에 대한 설명" id="buttonRplcLink_${status.index}" name="buttonRplcLink_${status.index}" disabled>
<div class="select-box">
<select class="short gradSetAllChk_btn" title="해당 셀렉트에 대한 설명" id="buttonRplcLinkDvCd_${status.index}" name="buttonRplcLinkDvCd_${status.index}" disabled>
<c:forEach items="${resultMap.PrlcLinkDvList}" var="PrlcLinkDvList">
<option value="${PrlcLinkDvList.cd}">${PrlcLinkDvList.cdNm}</option>
</c:forEach>
</select>
</div>
<div class="select-box">
<select class="short gradSetAllChk_btn" title="해당 셀렉트에 대한 설명" id="buttonRplcLinkBrwsrDvCd_${status.index}" name="buttonRplcLinkBrwsrDvCd_${status.index}" disabled>
<c:forEach items="${resultMap.PrlcLinkBrwsrDvList}" var="PrlcLinkBrwsrDvList">
<option value="${PrlcLinkBrwsrDvList.cd}">${PrlcLinkBrwsrDvList.cdNm}</option>
</c:forEach>
</select>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</td>
</tr>
</c:forEach>
</c:if>
</form>
</tbody>
</table>
</div>
</div>
<div class="modal-footer">
<a href="#" rel="modal:close" class="btn outline">취소</a>
<button class="btn primary" onclick="fn_save_purchase_limmit(); return false;">확인</button>
</div>
</div>
<script src="/admin/js/script.js" defer=""></script>

View File

@@ -0,0 +1,809 @@
<%@ 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 : GoodsPurchaseLimttPopupR.jsp
Description : 상품 구매대상자 제한 popup
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
since : 2024-06-03
--%>
<script>
$(document).ready(function() {
const allGradesRows = document.querySelectorAll("#all-grades-row, #all-grades-purchase-row");
const individualGradeRows = document.querySelectorAll(".individual-grade-row");
const gradSetAllRadio = document.getElementById("gradSetAll");
const gradSetDistinctRadio = document.getElementById("gradSet");
// Function to toggle visibility
function toggleRows() {
if (gradSetAllRadio.checked) {
allGradesRows.forEach(row => row.style.display = "");
individualGradeRows.forEach(row => row.style.display = "none");
} else {
allGradesRows.forEach(row => row.style.display = "none");
individualGradeRows.forEach(row => row.style.display = "");
}
}
// Event listeners
gradSetAllRadio.addEventListener("change", toggleRows);
gradSetDistinctRadio.addEventListener("change", toggleRows);
// Initial toggle
toggleRows();
});
</script>
<div id="purchase-limit" class="modal" style="max-width: 760px;">
<div class="modal-header">
<h4>구매 대상자 제한 설정</h4>
</div>
<div class="modal-content">
<div class="table-wrapper">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 10%;">
<col style="width: 15%;">
<col>
</colgroup>
<tbody>
<form>
<c:choose>
<c:when test="${not empty resultMap.trgterLmttList.none}">
<input type="hidden" name="goodsTrgterLmttInnb_none" id="goodsTrgterLmttInnb_none" value="<c:out value="${resultMap.trgterLmttList.none.goodsTrgterLmttInnb}" default="0"/> ">
<tr class="goods-trget-dv-list">
<th rowspan="2" colspan="2">비회원</th>
<td>
<div class="td-inner price-limit-container">
<div class="b-checkbox-container my-5">
<label class="b-checkbox checkbox">
<input type="checkbox" id="pricRplcWordsUseAt_none" name="pricRplcWordsUseAt_none" <c:if test="${resultMap.trgterLmttList.none.pricRplcWordsUseAt eq 'Y'}"> checked </c:if> >
<span class="check"></span>
<span class="control-label">가격제한</span>
</label>
</div>
<div class="table-wrapper">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 23%;">
<col>
</colgroup>
<tbody>
<tr>
<th>가격 대체 문구</th>
<td>
<div class="td-inner">
<input class="input-text price-limit-input" type="text" title="해당 인풋에 대한 설명" id="pricRplcWords_none" name="pricRplcWords_none"
value="${resultMap.trgterLmttList.none.pricRplcWords}"
<c:if test="${resultMap.trgterLmttList.none.pricRplcWordsUseAt ne 'Y'}"> disabled </c:if>
>
</div>
</td>
</tr>
<tr>
<th>링크 연결</th>
<td>
<div class="td-inner">
<input class="input-text" type="text" title="해당 인풋에 대한 설명" id="pricRplcLink_none" name="pricRplcLink_none" value="${resultMap.trgterLmttList.none.pricRplcLink}" <c:if test="${resultMap.trgterLmttList.none.pricRplcWordsUseAt ne 'Y'}"> disabled </c:if> >
<div class="select-box">
<select class="short" title="해당 셀렉트에 대한 설명" name="pricRplcLinkDvCd_none" id="pricRplcLinkDvCd_none" <c:if test="${resultMap.trgterLmttList.none.pricRplcWordsUseAt ne 'Y'}"> disabled </c:if> >
<c:forEach items="${resultMap.PrlcLinkDvList}" var="PrlcLinkDvList">
<option value="${PrlcLinkDvList.cd}" <c:if test="${resultMap.trgterLmttList.none.pricRplcLinkDvCd eq PrlcLinkDvList.cd }"> selected </c:if> >${PrlcLinkDvList.cdNm}</option>
</c:forEach>
</select>
</div>
<div class="select-box">
<select class="short" title="해당 셀렉트에 대한 설명" id="pricRplcLinkBrwsrDvCd_none" name="pricRplcLinkBrwsrDvCd_none" <c:if test="${resultMap.trgterLmttList.none.pricRplcWordsUseAt ne 'Y'}"> disabled </c:if> >
<c:forEach items="${resultMap.PrlcLinkBrwsrDvList}" var="PrlcLinkBrwsrDvList">
<option value="${PrlcLinkBrwsrDvList.cd}" <c:if test="${resultMap.trgterLmttList.none.pricRplcLinkBrwsrDvCd eq PrlcLinkBrwsrDvList.cd }"> selected </c:if> >${PrlcLinkBrwsrDvList.cdNm}</option>
</c:forEach>
</select>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="td-inner purchase-limit-container">
<div class="b-checkbox-container my-5">
<label class="b-checkbox checkbox">
<input type="checkbox" id="buttonRplcWordsUseAt_none" name="buttonRplcWordsUseAt_none" <c:if test="${resultMap.trgterLmttList.none.buttonRplcWordsUseAt eq 'Y'}"> checked </c:if> >
<span class="check"></span>
<span class="control-label">구매제한</span>
</label>
</div>
<div class="table-wrapper">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 23%;">
<col>
</colgroup>
<tbody>
<tr>
<th>버튼 대체 문구</th>
<td>
<div class="td-inner">
<input class="input-text" type="text" id="buttonRplcWords_none" name="buttonRplcWords_none" title="해당 인풋에 대한 설명"
value="${resultMap.trgterLmttList.none.buttonRplcWords}"
<c:if test="${resultMap.trgterLmttList.none.buttonRplcWordsUseAt ne 'Y'}"> disabled </c:if>
>
</div>
</td>
</tr>
<tr>
<th>링크 연결</th>
<td>
<div class="td-inner">
<input class="input-text" type="text" title="해당 인풋에 대한 설명" id="buttonRplcLink_none" name="buttonRplcLink_none" value="${resultMap.trgterLmttList.none.buttonRplcLink}" <c:if test="${resultMap.trgterLmttList.none.buttonRplcWordsUseAt ne 'Y'}"> disabled </c:if> >
<div class="select-box">
<select class="short" title="해당 셀렉트에 대한 설명" id="buttonRplcLinkDvCd_none" name="buttonRplcLinkDvCd_none" <c:if test="${resultMap.trgterLmttList.none.buttonRplcWordsUseAt ne 'Y'}"> disabled </c:if> >
<c:forEach items="${resultMap.PrlcLinkDvList}" var="PrlcLinkDvList">
<option value="${PrlcLinkDvList.cd}" <c:if test="${resultMap.trgterLmttList.none.buttonRplcLinkDvCd eq PrlcLinkDvList.cd }"> selected </c:if> >${PrlcLinkDvList.cdNm}</option>
</c:forEach>
</select>
</div>
<div class="select-box">
<select class="short" title="해당 셀렉트에 대한 설명" id="buttonRplcLinkBrwsrDvCd_none" name="buttonRplcLinkBrwsrDvCd_none" <c:if test="${resultMap.trgterLmttList.none.buttonRplcWordsUseAt ne 'Y'}"> disabled </c:if> >
<c:forEach items="${resultMap.PrlcLinkBrwsrDvList}" var="PrlcLinkBrwsrDvList">
<option value="${PrlcLinkBrwsrDvList.cd}" <c:if test="${resultMap.trgterLmttList.none.buttonRplcLinkBrwsrDvCd eq PrlcLinkBrwsrDvList.cd }"> selected </c:if> >${PrlcLinkBrwsrDvList.cdNm}</option>
</c:forEach>
</select>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</td>
</tr>
</c:when>
<c:otherwise>
<input type="hidden" name="goodsTrgterLmttInnb_none" id="goodsTrgterLmttInnb_none" value="" >
<tr class="goods-trget-dv-list">
<th rowspan="2" colspan="2">비회원</th>
<td>
<div class="td-inner price-limit-container">
<div class="b-checkbox-container my-5">
<label class="b-checkbox checkbox">
<input type="checkbox" id="pricRplcWordsUseAt_none" name="pricRplcWordsUseAt_none" >
<span class="check"></span>
<span class="control-label">가격제한</span>
</label>
</div>
<div class="table-wrapper">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 23%;">
<col>
</colgroup>
<tbody>
<tr>
<th>가격 대체 문구</th>
<td>
<div class="td-inner">
<input class="input-text price-limit-input" type="text" title="해당 인풋에 대한 설명" id="pricRplcWords_none" name="pricRplcWords_none"
value="" disabled
>
</div>
</td>
</tr>
<tr>
<th>링크 연결</th>
<td>
<div class="td-inner">
<input class="input-text" type="text" title="해당 인풋에 대한 설명" id="pricRplcLink_none" name="pricRplcLink_none" value="" disabled >
<div class="select-box">
<select class="short" title="해당 셀렉트에 대한 설명" name="pricRplcLinkDvCd_none" id="pricRplcLinkDvCd_none" disabled >
<c:forEach items="${resultMap.PrlcLinkDvList}" var="PrlcLinkDvList">
<option value="${PrlcLinkDvList.cd}" >${PrlcLinkDvList.cdNm}</option>
</c:forEach>
</select>
</div>
<div class="select-box">
<select class="short" title="해당 셀렉트에 대한 설명" id="pricRplcLinkBrwsrDvCd_none" name="pricRplcLinkBrwsrDvCd_none" disabled >
<c:forEach items="${resultMap.PrlcLinkBrwsrDvList}" var="PrlcLinkBrwsrDvList">
<option value="${PrlcLinkBrwsrDvList.cd}" >${PrlcLinkBrwsrDvList.cdNm}</option>
</c:forEach>
</select>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="td-inner purchase-limit-container">
<div class="b-checkbox-container my-5">
<label class="b-checkbox checkbox">
<input type="checkbox" id="buttonRplcWordsUseAt_none" name="buttonRplcWordsUseAt_none" >
<span class="check"></span>
<span class="control-label">구매제한</span>
</label>
</div>
<div class="table-wrapper">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 23%;">
<col>
</colgroup>
<tbody>
<tr>
<th>버튼 대체 문구</th>
<td>
<div class="td-inner">
<input class="input-text" type="text" id="buttonRplcWords_none" name="buttonRplcWords_none" title="해당 인풋에 대한 설명" value="" disabled>
</div>
</td>
</tr>
<tr>
<th>링크 연결</th>
<td>
<div class="td-inner">
<input class="input-text" type="text" title="해당 인풋에 대한 설명" id="buttonRplcLink_none" name="buttonRplcLink_none" value="" disabled >
<div class="select-box">
<select class="short" title="해당 셀렉트에 대한 설명" id="buttonRplcLinkDvCd_none" name="buttonRplcLinkDvCd_none" disabled >
<c:forEach items="${resultMap.PrlcLinkDvList}" var="PrlcLinkDvList">
<option value="${PrlcLinkDvList.cd}">${PrlcLinkDvList.cdNm}</option>
</c:forEach>
</select>
</div>
<div class="select-box">
<select class="short" title="해당 셀렉트에 대한 설명" id="buttonRplcLinkBrwsrDvCd_none" name="buttonRplcLinkBrwsrDvCd_none" disabled >
<c:forEach items="${resultMap.PrlcLinkBrwsrDvList}" var="PrlcLinkBrwsrDvList">
<option value="${PrlcLinkBrwsrDvList.cd}" >${PrlcLinkBrwsrDvList.cdNm}</option>
</c:forEach>
</select>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</td>
</tr>
</c:otherwise>
</c:choose>
<tr>
<th class="border-right" rowspan="1" colspan="2">회원 등급 별 제한</th>
<td>
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" id="gradSetAll" name="gradSet" value="all" <c:if test="${not empty resultMap.trgterLmttList.all or (empty resultMap.trgterLmttList.all and empty resultMap.trgterLmttList.member) }">checked</c:if> >
<label for="gradSetAll">모든 등급 일괄 설정</label>
</div>
<div class="custom-radio">
<input type="radio" id="gradSet" name="gradSet" value="distinct" <c:if test="${not empty resultMap.trgterLmttList.member}">checked</c:if> >
<label for="gradSet">등급 별 설정</label>
</div>
</div>
</div>
</td>
</tr>
<c:choose>
<c:when test="${not empty resultMap.trgterLmttList.all}">
<tr id="all-grades-row">
<th rowspan="2" colspan="2">모든 등급</th>
<td>
<div class="td-inner">
<div class="b-checkbox-container my-5">
<label class="b-checkbox checkbox">
<input type="checkbox" id="pricRplcWordsUseAt_all" name="pricRplcWordsUseAt_all" <c:if test="${resultMap.trgterLmttList.all.pricRplcWordsUseAt eq 'Y' }"> checked </c:if> >
<span class="check"></span>
<span class="control-label">가격제한</span>
</label>
</div>
<div class="table-wrapper">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 23%;">
<col>
</colgroup>
<tbody>
<tr>
<th>가격 대체 문구</th>
<td>
<div class="td-inner">
<input class="input-text" type="text" title="해당 인풋에 대한 설명" id="pricRplcWords_all" name="pricRplcWords_all"
value="${resultMap.trgterLmttList.all.pricRplcWords}"
<c:if test="${resultMap.trgterLmttList.all.pricRplcWordsUseAt ne 'Y'}"> disabled </c:if>
>
<input type="hidden" id="goodsTrgterLmttInnb_all" value="<c:out value="${resultMap.trgterLmttList.all.goodsTrgterLmttInnb}" default="0"/> ">
</div>
</td>
</tr>
<tr>
<th>링크 연결</th>
<td>
<div class="td-inner">
<input class="input-text" type="text" title="해당 인풋에 대한 설명" id="pricRplcLink_all" name="pricRplcLink_all"
value="${resultMap.trgterLmttList.all.pricRplcLink}"
<c:if test="${resultMap.trgterLmttList.all.pricRplcWordsUseAt ne 'Y'}"> disabled </c:if>
>
<div class="select-box">
<select class="short" title="해당 셀렉트에 대한 설명" id="pricRplcLinkDvCd_all" name="pricRplcLinkDvCd_all"
<c:if test="${resultMap.trgterLmttList.all.pricRplcWordsUseAt ne 'Y'}"> disabled </c:if>
>
<c:forEach items="${resultMap.PrlcLinkDvList}" var="PrlcLinkDvList">
<option value="${PrlcLinkDvList.cd}" <c:if test="${resultMap.trgterLmttList.all.pricRplcLinkDvCd eq PrlcLinkDvList.cd }"> selected </c:if> >${PrlcLinkDvList.cdNm}</option>
</c:forEach>
</select>
</div>
<div class="select-box">
<select class="short" title="해당 셀렉트에 대한 설명" id="pricRplcLinkBrwsrDvCd_all" name="pricRplcLinkBrwsrDvCd_all"
<c:if test="${resultMap.trgterLmttList.all.pricRplcWordsUseAt ne 'Y'}"> disabled </c:if> >
<c:forEach items="${resultMap.PrlcLinkBrwsrDvList}" var="PrlcLinkBrwsrDvList">
<option value="${PrlcLinkBrwsrDvList.cd}" <c:if test="${resultMap.trgterLmttList.all.pricRplcLinkBrwsrDvCd eq PrlcLinkBrwsrDvList.cd }"> selected </c:if> >${PrlcLinkBrwsrDvList.cdNm}</option>
</c:forEach>
</select>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</td>
</tr>
<tr id="all-grades-purchase-row">
<td>
<div class="td-inner">
<div class="b-checkbox-container my-5">
<label class="b-checkbox checkbox">
<input type="checkbox" id="buttonRplcWordsUseAt_all" name="buttonRplcWordsUseAt_all" <c:if test="${resultMap.trgterLmttList.all.buttonRplcWordsUseAt eq 'Y' }"> checked </c:if> >
<span class="check"></span>
<span class="control-label">구매제한</span>
</label>
</div>
<div class="table-wrapper">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 23%;">
<col>
</colgroup>
<tbody>
<tr>
<th>버튼 대체 문구</th>
<td>
<div class="td-inner">
<input class="input-text" type="text" id="buttonRplcWords_all" name="buttonRplcWords_all" title="해당 인풋에 대한 설명"
value="${resultMap.trgterLmttList.all.buttonRplcWords}"
<c:if test="${resultMap.trgterLmttList.all.buttonRplcWordsUseAt ne 'Y'}"> disabled </c:if>
>
</div>
</td>
</tr>
<tr>
<th>링크 연결</th>
<td>
<div class="td-inner">
<input class="input-text" type="text" title="해당 인풋에 대한 설명" id="buttonRplcLink_all" name="buttonRplcLink_all"
value="${resultMap.trgterLmttList.all.buttonRplcLink}" <c:if test="${resultMap.trgterLmttList.all.buttonRplcWordsUseAt ne 'Y'}"> disabled </c:if>
>
<div class="select-box">
<select class="short" title="해당 셀렉트에 대한 설명" id="buttonRplcLinkDvCd_all" name="buttonRplcLinkDvCd_all" <c:if test="${resultMap.trgterLmttList.all.buttonRplcWordsUseAt ne 'Y'}"> disabled </c:if> >
<c:forEach items="${resultMap.PrlcLinkDvList}" var="PrlcLinkDvList">
<option value="${PrlcLinkDvList.cd}" <c:if test="${resultMap.trgterLmttList.all.buttonRplcLinkDvCd eq PrlcLinkDvList.cd }"> selected </c:if> >${PrlcLinkDvList.cdNm}</option>
</c:forEach>
</select>
</div>
<div class="select-box">
<select class="short" title="해당 셀렉트에 대한 설명" id="buttonRplcLinkBrwsrDvCd_all" name="buttonRplcLinkBrwsrDvCd_all" <c:if test="${resultMap.trgterLmttList.all.buttonRplcWordsUseAt ne 'Y'}"> disabled </c:if>>
<c:forEach items="${resultMap.PrlcLinkBrwsrDvList}" var="PrlcLinkBrwsrDvList">
<option value="${PrlcLinkBrwsrDvList.cd}" <c:if test="${resultMap.trgterLmttList.all.buttonRplcLinkBrwsrDvCd eq PrlcLinkBrwsrDvList.cd }"> selected </c:if> >${PrlcLinkBrwsrDvList.cdNm}</option>
</c:forEach>
</select>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</td>
</tr>
</c:when>
<c:otherwise>
<tr id="all-grades-row">
<th rowspan="2" colspan="2">모든 등급</th>
<td>
<div class="td-inner">
<div class="b-checkbox-container my-5">
<label class="b-checkbox checkbox">
<input type="checkbox" id="pricRplcWordsUseAt_all" name="pricRplcWordsUseAt_all" >
<span class="check"></span>
<span class="control-label">가격제한</span>
</label>
</div>
<div class="table-wrapper">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 23%;">
<col>
</colgroup>
<tbody>
<tr>
<th>가격 대체 문구</th>
<td>
<div class="td-inner">
<input class="input-text" type="text" title="해당 인풋에 대한 설명" id="pricRplcWords_all" name="pricRplcWords_all" value="" disabled>
<input type="hidden" id="goodsTrgterLmttInnb_all" value="" />
</div>
</td>
</tr>
<tr>
<th>링크 연결</th>
<td>
<div class="td-inner">
<input class="input-text" type="text" title="해당 인풋에 대한 설명" id="pricRplcLink_all" name="pricRplcLink_all" value="" disabled>
<div class="select-box">
<select class="short" title="해당 셀렉트에 대한 설명" id="pricRplcLinkDvCd_all" name="pricRplcLinkDvCd_all" disabled>
<c:forEach items="${resultMap.PrlcLinkDvList}" var="PrlcLinkDvList">
<option value="${PrlcLinkDvList.cd}" >${PrlcLinkDvList.cdNm}</option>
</c:forEach>
</select>
</div>
<div class="select-box">
<select class="short" title="해당 셀렉트에 대한 설명" id="pricRplcLinkBrwsrDvCd_all" name="pricRplcLinkBrwsrDvCd_all" disabled>
<c:forEach items="${resultMap.PrlcLinkBrwsrDvList}" var="PrlcLinkBrwsrDvList">
<option value="${PrlcLinkBrwsrDvList.cd}" >${PrlcLinkBrwsrDvList.cdNm}</option>
</c:forEach>
</select>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</td>
</tr>
<tr id="all-grades-purchase-row">
<td>
<div class="td-inner">
<div class="b-checkbox-container my-5">
<label class="b-checkbox checkbox">
<input type="checkbox" id="buttonRplcWordsUseAt_all" name="buttonRplcWordsUseAt_all" >
<span class="check"></span>
<span class="control-label">구매제한</span>
</label>
</div>
<div class="table-wrapper">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 23%;">
<col>
</colgroup>
<tbody>
<tr>
<th>버튼 대체 문구</th>
<td>
<div class="td-inner">
<input class="input-text" type="text" id="buttonRplcWords_all" name="buttonRplcWords_all" title="해당 인풋에 대한 설명" value="" disabled>
</div>
</td>
</tr>
<tr>
<th>링크 연결</th>
<td>
<div class="td-inner">
<input class="input-text" type="text" title="해당 인풋에 대한 설명" id="buttonRplcLink_all" name="buttonRplcLink_all" value="" disabled>
<div class="select-box">
<select class="short" title="해당 셀렉트에 대한 설명" id="buttonRplcLinkDvCd_all" name="buttonRplcLinkDvCd_all" disabled >
<c:forEach items="${resultMap.PrlcLinkDvList}" var="PrlcLinkDvList">
<option value="${PrlcLinkDvList.cd}" >${PrlcLinkDvList.cdNm}</option>
</c:forEach>
</select>
</div>
<div class="select-box">
<select class="short" title="해당 셀렉트에 대한 설명" id="buttonRplcLinkBrwsrDvCd_all" name="buttonRplcLinkBrwsrDvCd_all" disabled>
<c:forEach items="${resultMap.PrlcLinkBrwsrDvList}" var="PrlcLinkBrwsrDvList">
<option value="${PrlcLinkBrwsrDvList.cd}" >${PrlcLinkBrwsrDvList.cdNm}</option>
</c:forEach>
</select>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</td>
</tr>
</c:otherwise>
</c:choose>
<c:choose>
<c:when test="${not empty resultMap.trgterLmttList.member}">
<c:forEach items="${resultMap.trgterLmttList.member}" var="memInfo" varStatus="status">
<input type="hidden" id="mbrGradInnb" name="mbrGradInnb" value="<c:out value="${memInfo.mbrGradInnb}" default="0"/> ">
<input type="hidden" name="goodsTrgterLmttInnb_mem${status.index}" value="<c:out value="${memInfo.goodsTrgterLmttInnb}" default="0"/> ">
<tr class="individual-grade-row">
<th rowspan="2" colspan="2" ><c:out value="${memInfo.mbrGradNm}"/> </th>
<td>
<div class="td-inner">
<div class="b-checkbox-container my-5">
<label class="b-checkbox checkbox">
<input class= "gradSetAllChk_pric" type="checkbox" id="pricRplcWordsUseAt_${status.index}" name="pricRplcWordsUseAt_${status.index}" <c:if test="${memInfo.pricRplcWordsUseAt eq 'Y'}"> checked </c:if> >
<span class="check"></span>
<span class="control-label">가격제한</span>
</label>
</div>
<div class="table-wrapper">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 23%;">
<col>
</colgroup>
<tbody>
<tr>
<th>가격 대체 문구</th>
<td>
<div class="td-inner">
<input class="input-text price-limit-input gradSetAllChk_pric" type="text" title="해당 인풋에 대한 설명" id="pricRplcWords_${status.index}" name="pricRplcWords_${status.index}"
value="<c:out value="${memInfo.pricRplcWords}"/> "
<c:if test="${memInfo.pricRplcWordsUseAt ne 'Y'}"> disabled </c:if>
>
</div>
</td>
</tr>
<tr>
<th>링크 연결</th>
<td>
<div class="td-inner">
<input class="input-text gradSetAllChk_pric" type="text" title="해당 인풋에 대한 설명" id="pricRplcLink_${status.index}" name="pricRplcLink_${status.index}" value="${memInfo.pricRplcLink}" <c:if test="${memInfo.pricRplcWordsUseAt ne 'Y'}"> disabled </c:if> >
<div class="select-box">
<select class="short gradSetAllChk_pric" title="해당 셀렉트에 대한 설명" id="pricRplcLinkDvCd_${status.index}" name="pricRplcLinkDvCd_${status.index}" <c:if test="${memInfo.pricRplcWordsUseAt ne 'Y'}"> disabled </c:if> >
<c:forEach items="${resultMap.PrlcLinkDvList}" var="PrlcLinkDvList">
<option value="${PrlcLinkDvList.cd}" <c:if test="${memInfo.pricRplcLinkDvCd eq PrlcLinkDvList.cd }"> selected </c:if> > <c:out value="${PrlcLinkDvList.cdNm}"/> </option>
</c:forEach>
</select>
</div>
<div class="select-box">
<select class="short gradSetAllChk_pric" title="해당 셀렉트에 대한 설명" id="pricRplcLinkBrwsrDvCd_${status.index}" name="pricRplcLinkBrwsrDvCd_${status.index}" <c:if test="${memInfo.pricRplcWordsUseAt ne 'Y'}"> disabled </c:if> >
<c:forEach items="${resultMap.PrlcLinkBrwsrDvList}" var="PrlcLinkBrwsrDvList">
<option value="${PrlcLinkBrwsrDvList.cd}" <c:if test="${memInfo.pricRplcLinkBrwsrDvCd eq PrlcLinkBrwsrDvList.cd }"> selected </c:if> >${PrlcLinkBrwsrDvList.cdNm}</option>
</c:forEach>
</select>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</td>
</tr>
<tr class="individual-grade-row">
<td>
<div class="td-inner">
<div class="b-checkbox-container my-5">
<label class="b-checkbox checkbox">
<input class = "gradSetAllChk_btn" type="checkbox" id="buttonRplcWordsUseAt_${status.index}" name="buttonRplcWordsUseAt_${status.index}" <c:if test="${memInfo.buttonRplcWordsUseAt eq 'Y'}"> checked </c:if>>
<span class="check"></span>
<span class="control-label">구매제한</span>
</label>
</div>
<div class="table-wrapper">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 23%;">
<col>
</colgroup>
<tbody>
<tr>
<th>버튼 대체 문구</th>
<td>
<div class="td-inner">
<input class="input-text gradSetAllChk_btn" type="text" id="buttonRplcWords_${status.index}" name="buttonRplcWords_${status.index}" title="해당 인풋에 대한 설명"
value="${memInfo.buttonRplcWords}"
<c:if test="${memInfo.buttonRplcWordsUseAt ne 'Y'}"> disabled </c:if>
>
</div>
</td>
</tr>
<tr>
<th>링크 연결</th>
<td>
<div class="td-inner">
<input class="input-text gradSetAllChk_btn" type="text" title="해당 인풋에 대한 설명" id="buttonRplcLink_${status.index}" name="buttonRplcLink_${status.index}" value="${memInfo.buttonRplcLink}" <c:if test="${memInfo.buttonRplcWordsUseAt ne 'Y'}"> disabled </c:if> >
<div class="select-box">
<select class="short gradSetAllChk_btn" title="해당 셀렉트에 대한 설명" id="buttonRplcLinkDvCd_${status.index}" name="buttonRplcLinkDvCd_${status.index}" <c:if test="${memInfo.buttonRplcWordsUseAt ne 'Y'}"> disabled </c:if>>
<c:forEach items="${resultMap.PrlcLinkDvList}" var="PrlcLinkDvList">
<option value="${PrlcLinkDvList.cd}" <c:if test="${memInfo.buttonRplcLinkDvCd eq PrlcLinkDvList.cd }"> selected </c:if> >${PrlcLinkDvList.cdNm}</option>
</c:forEach>
</select>
</div>
<div class="select-box">
<select class="short gradSetAllChk_btn" title="해당 셀렉트에 대한 설명" id="buttonRplcLinkBrwsrDvCd_${status.index}" name="buttonRplcLinkBrwsrDvCd_${status.index}" <c:if test="${memInfo.buttonRplcWordsUseAt ne 'Y'}"> disabled </c:if> >
<c:forEach items="${resultMap.PrlcLinkBrwsrDvList}" var="PrlcLinkBrwsrDvList">
<option value="${PrlcLinkBrwsrDvList.cd}" <c:if test="${memInfo.buttonRplcLinkBrwsrDvCd eq PrlcLinkBrwsrDvList.cd }"> selected </c:if> >${PrlcLinkBrwsrDvList.cdNm}</option>
</c:forEach>
</select>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</td>
</tr>
</c:forEach>
</c:when>
<c:otherwise>
<c:forEach items="${resultMap.gradList}" var="member" varStatus="status">
<input type="hidden" id="mbrGradInnb" name="mbrGradInnb" value="${member.mbrGradInnb}">
<input type="hidden" name="goodsTrgterLmttInnb_mem${status.index}" value="0">
<tr class="individual-grade-row">
<th rowspan="2" colspan="2" >${member.mbrGradNm}</th>
<td>
<div class="td-inner">
<div class="b-checkbox-container my-5">
<label class="b-checkbox checkbox">
<input class= "gradSetAllChk_pric" type="checkbox" id="pricRplcWordsUseAt_${status.index}" name="pricRplcWordsUseAt_${status.index}">
<span class="check"></span>
<span class="control-label">가격제한</span>
</label>
</div>
<div class="table-wrapper">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 23%;">
<col>
</colgroup>
<tbody>
<tr>
<th>가격 대체 문구</th>
<td>
<div class="td-inner">
<input class="input-text price-limit-input gradSetAllChk_pric" type="text" title="해당 인풋에 대한 설명" id="pricRplcWords_${status.index}" name="pricRplcWords_${status.index}"
value="" disabled>
</div>
</td>
</tr>
<tr>
<th>링크 연결</th>
<td>
<div class="td-inner">
<input class="input-text gradSetAllChk_pric" type="text" title="해당 인풋에 대한 설명" id="pricRplcLink_${status.index}" name="pricRplcLink_${status.index}" value="" disabled>
<div class="select-box">
<select class="short gradSetAllChk_pric" title="해당 셀렉트에 대한 설명" id="pricRplcLinkDvCd_${status.index}" name="pricRplcLinkDvCd_${status.index}" disabled >
<c:forEach items="${resultMap.PrlcLinkDvList}" var="PrlcLinkDvList">
<option value="${PrlcLinkDvList.cd}" >${PrlcLinkDvList.cdNm}</option>
</c:forEach>
</select>
</div>
<div class="select-box">
<select class="short gradSetAllChk_pric" title="해당 셀렉트에 대한 설명" id="pricRplcLinkBrwsrDvCd_${status.index}" name="pricRplcLinkBrwsrDvCd_${status.index}" disabled >
<c:forEach items="${resultMap.PrlcLinkBrwsrDvList}" var="PrlcLinkBrwsrDvList">
<option value="${PrlcLinkBrwsrDvList.cd}" >${PrlcLinkBrwsrDvList.cdNm}</option>
</c:forEach>
</select>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</td>
</tr>
<tr class="individual-grade-row">
<td>
<div class="td-inner">
<div class="b-checkbox-container my-5">
<label class="b-checkbox checkbox">
<input class = "gradSetAllChk_btn" type="checkbox" id="buttonRplcWordsUseAt_${status.index}" name="buttonRplcWordsUseAt_${status.index}" >
<span class="check"></span>
<span class="control-label">구매제한</span>
</label>
</div>
<div class="table-wrapper">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 23%;">
<col>
</colgroup>
<tbody>
<tr>
<th>버튼 대체 문구</th>
<td>
<div class="td-inner">
<input class="input-text gradSetAllChk_btn" type="text" id="buttonRplcWords_${status.index}" name="buttonRplcWords_${status.index}" title="해당 인풋에 대한 설명"
value="" disabled>
</div>
</td>
</tr>
<tr>
<th>링크 연결</th>
<td>
<div class="td-inner">
<input class="input-text gradSetAllChk_btn" type="text" title="해당 인풋에 대한 설명" id="buttonRplcLink_${status.index}" name="buttonRplcLink_${status.index}" value="" disabled >
<div class="select-box">
<select class="short gradSetAllChk_btn" title="해당 셀렉트에 대한 설명" id="buttonRplcLinkDvCd_${status.index}" name="buttonRplcLinkDvCd_${status.index}" disabled>
<c:forEach items="${resultMap.PrlcLinkDvList}" var="PrlcLinkDvList">
<option value="${PrlcLinkDvList.cd}" >${PrlcLinkDvList.cdNm}</option>
</c:forEach>
</select>
</div>
<div class="select-box">
<select class="short gradSetAllChk_btn" title="해당 셀렉트에 대한 설명" id="buttonRplcLinkBrwsrDvCd_${status.index}" name="buttonRplcLinkBrwsrDvCd_${status.index}" disabled>
<c:forEach items="${resultMap.PrlcLinkBrwsrDvList}" var="PrlcLinkBrwsrDvList">
<option value="${PrlcLinkBrwsrDvList.cd}" >${PrlcLinkBrwsrDvList.cdNm}</option>
</c:forEach>
</select>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</td>
</tr>
</c:forEach>
</c:otherwise>
</c:choose>
</form>
</tbody>
</table>
</div>
</div>
<div class="modal-footer">
<a href="#" rel="modal:close" class="btn outline">취소</a>
<button class="btn primary" onclick="fn_save_purchase_limmit(); return false;">확인</button>
</div>
</div>
<script src="/admin/js/script.js" defer=""></script>

View File

@@ -0,0 +1,386 @@
<%@ 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 : GoodsSrchPopupForm.jsp
Description : 상품 검색 팝업 폼
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
since : 2024-06-03
--%>
<script>
$(document).ready(function() {
fn_set_niceSelect_datePicker('.select-box')
var goodsKndCd = $('input[name="goodsKndCd"]').val();
var selectedArea = $('#selectedArea').val();
$('#popupListForm').on('keydown', function (event) {
if (event.keyCode === 13) {
event.preventDefault();
fn_goods_search_popup_list(1);
}
});
const cdnurl = $('#cdnurl').val()
if (goodsKndCd === "01") {
$('#title').text('상품 검색');
selected.forEach(function(good) {
var row = `
<tr id="choiseListId` + good.goodsId + `" class="draggable" ondblclick="fn_remove_append_goods_list(this)">
<td class="text-left">
<input type="hidden" id="goodsInnb" name="goodsInnb" value="` + good.goodsId + `"/>
<input type="hidden" id="goodsImgCours" name="goodsImgCours" value="` + good.goodsImg + `"/>
<input type="hidden" id="goodsNm" name="goodsNm" value="` + good.goodsNm + `"/>
<input type="hidden" id="slepric" name="slepric" value="` + good.goodsPrice + `"/>
<input type="hidden" id="goodsSttusNm" name="goodsSttusNm" value="` + good.goodsSttusNm + `"/>
<input type="hidden" id="expsrNm" name="expsrNm" value="` + good.expsrNm + `"/>
<div class="product-search-box__product">
<img src="` + good.goodsImg + `"
onerror="this.src='<c:url value="/mngr/images/image_placeholder.png"/>'"
alt="` + good.goodsNm + `" width="64">
` + good.goodsNm + `
</div>
</td>
<td>` + fn_format_comma(good.goodsPrice) + `</td>
<td>` + good.goodsSttusNm + ' (' + good.expsrNm + ')' + `</td>
</tr>
`;
$('#appendList').append(row);
});
} else if (goodsKndCd === "02") {
$('#title').text('사은품 검색');
if (!fn_is_empty(giftSelectionData[selectedArea])) {
giftSelectionData[selectedArea].forEach(function (good) {
var row = `
<tr id="choiseListId` + good.goodsId + `" class="draggable" ondblclick="fn_remove_append_goods_list(this)">
<td class="text-left">
<input type="hidden" id="prsntInnb" name="prsntInnb" value="` + good.prsntInnb + `"/>
<input type="hidden" id="goodsInnb" name="goodsInnb" value="` + good.goodsId + `"/>
<input type="hidden" id="goodsImgCours" name="goodsImgCours" value="` + good.goodsImg + `"/>
<input type="hidden" id="goodsNm" name="goodsNm" value="` + good.goodsNm + `"/>
<input type="hidden" id="slepric" name="slepric" value="` + good.goodsPrice + `"/>
<input type="hidden" id="goodsSttusNm" name="goodsSttusNm" value="` + good.goodsSttusNm + `"/>
<div class="product-search-box__product">
<img src="` + good.goodsImg + `"
onerror="this.src='<c:url value="/mngr/images/image_placeholder.png"/>'"
alt="` + good.goodsNm + `" width="64">
` + good.goodsNm + `
</div>
</td>
<td>` + good.goodsPrice + `</td>
<td>` + good.goodsSttusNm + `</td>
</tr>
`;
$('#appendList').append(row);
});
} else {
}
}
//드래그 초기화
initializeTableDnD();
/* 검색조건 > 노출여부 선택 이벤트 */
$(document).off('click', 'input[name="expsrCd"]').on('click', 'input[name="expsrCd"]', function () {
const sttus = $(this).val();
const popup = $('product-search');
const checkbox = $(popup).find('input[name="expsrCd"]');
const all = $(popup).find('input[name="expsrCd"][value=""]')
if (fn_is_empty(sttus)) {
$(checkbox).prop('checked', false);
$(this).prop('checked', true);
} else {
$(all).prop('checked', false);
const length = $(popup).find('input[name="expsrCd"]:checked').length;
if (2 < length) {
$(checkbox).prop('checked', false);
$(all).prop('checked', true);
}
}
});
fn_goods_search_popup_list(1);
});
/* 검색조건 > 카테고리 선택 이벤트 */
$(document).on('change', '.ctgry', function () {
const upperCtgryId = $(this).val(); // 상위카테고리
const currCtgryDepth = $(this).attr('id').replace('ctgryDepth', '');
const targetDepth = (parseInt(currCtgryDepth) + 1);
const targetCtgryId = 'ctgryDepth' + targetDepth;
/* ****************************
* 카테고리 목록 조회 AJAX
******************************/
const fn_get_goods_ctgry = function (upperCtgryId, targetCtgryId) {
$.ajax({
type: 'post',
url: '<c:url value="/admin/sys/ctgry/selectGoodsCategoryList"/>',
data: {
'upperCtgryId': upperCtgryId
},
success: function (data) {
if (data.resBody != null) {
const result = JSON.parse(data.resBody.result);
const goodsCategoryList = result.goodsCategoryList;
if (goodsCategoryList.length > 0) {
for (let i = 0; i < goodsCategoryList.length; i++) {
const goodsCategory = goodsCategoryList[i];
$('#search-section').find('#' + targetCtgryId).append('<option value="' + goodsCategory.ctgryId + '">' + goodsCategory.ctgryNm + '</option>');
}
$('#search-section').find('#' + targetCtgryId).niceSelect('update');
}
}
}
});
}
if (fn_is_empty(upperCtgryId)) {
for (let i = targetDepth; i < 5; i++) {
$('#search-section').find('#ctgryDepth' + i).empty().append('<option value="">' + i + '차 카테고리</option>').niceSelect('update');
}
} else {
fn_get_goods_ctgry(upperCtgryId, targetCtgryId);
}
$('#search-section').find('#ctgryId').val(upperCtgryId);
});
//카테고리 선택시 카테고리 아이디 저장(검색용)
$(document).on('change', 'select[id^=ctgryDepth]', function () {
const ctgryOptn = $(this).val()
if(!fn_is_empty(ctgryOptn)){
$('#ctgryId').val(ctgryOptn)
}
})
;
// 같은 컨테이너 안의 체크박스 전체 선택
var containerCheckAll = $(".b-checkbox-container .check-all > input[type=checkbox]");
containerCheckAll.click(function () {
var checkbox = $(this).closest(".b-checkbox-container").find("input[type=checkbox]");
checkAllCheckBoxes($(this), checkbox);
});
function checkAll(){
const chkAll = $('#srchStatusCheckboxAll')
const checkbox = chkAll.closest(".b-checkbox-container").find('input[type="checkbox"]');
checkAllCheckBoxes(chkAll, checkbox);
}
</script>
<div id="product-search" class="modal" style="max-width: 1200px;">
<div class="modal-header">
<h4 id="title"></h4>
</div>
<div class="modal-content">
<form id="popupListForm" name="popupListForm">
<input type="hidden" name="goodsKndCd" value="${resultMap.BOGoodsVO.goodsKndCd}">
<input type="hidden" id="selectedArea" value="${ paramVO.selectedArea}">
<input type="hidden" id="ctgryId" name="ctgryId" />
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.cdnurl')" var="cdnurl"/>
<input type="hidden" id="cdnurl" value="${cdnurl}"/>
<div class="table-wrapper">
<table class="table" id="resetTargetArea">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 12%;">
<col style="width: 38%;">
<col style="width: 12%;">
<col style="width: 38%;">
</colgroup>
<tbody>
<tr>
<th>검색어</th>
<td colspan="3">
<div class="td-inner">
<input type="text" name="kwrd" class="input-text full" title="검색어" placeholder="상품명, 상품설명, 상품코드, 키워드, 간략설명">
</div>
</td>
</tr>
<tr>
<th>판매상태</th>
<td>
<div class="td-inner">
<div class="b-checkbox-container">
<label class="b-checkbox checkbox check-all">
<input type="checkbox" name="goodsDftinfoSttus" value="" id="srchStatusCheckboxAll" onclick="checkAll();">
<span class="check"></span>
<span class="control-label">전체</span>
</label>
<c:forEach items="${resultMap.goodsDftinfoSttusList}" var="goodsDftinfoSttus" varStatus="status">
<label class="b-checkbox checkbox">
<c:choose>
<c:when test="${status.first }">
<input type="checkbox" class="srchStatusCheckbox" name="goodsDftinfoSttus" value="${goodsDftinfoSttus.cd}" onchange="fn_ctr_pCheckbox('#srchStatusCheckboxAll', '.srchStatusCheckbox');" checked>
<span class="check"></span>
<span class="control-label">${goodsDftinfoSttus.cdNm}</span>
</c:when>
<c:otherwise>
<input type="checkbox" class="srchStatusCheckbox" name="goodsDftinfoSttus" value="${goodsDftinfoSttus.cd}" onchange="fn_ctr_pCheckbox('#srchStatusCheckboxAll', '.srchStatusCheckbox');">
<span class="check"></span>
<span class="control-label">${goodsDftinfoSttus.cdNm}</span>
</c:otherwise>
</c:choose>
</label>
</c:forEach>
</div>
</div>
</td>
<th>노출여부</th>
<td>
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" id="expsrDvCd"
name="expsrDvCd" value="">
<label for="expsrDvCd">전체</label>
</div>
<c:forEach items="${resultMap.expsrCdList}" var="expsrCdList" varStatus="status">
<div class="custom-radio">
<c:choose>
<c:when test="${status.first}">
<input type="radio" id="expsr${status.count}" name="expsrDvCd" value="${expsrCdList.cd}" checked>
<label for="expsr${status.count}">${expsrCdList.cdNm}</label>
</c:when>
<c:otherwise>
<input type="radio" id="expsr${status.count}" name="expsrDvCd" value="${expsrCdList.cd}">
<label for="expsr${status.count}">${expsrCdList.cdNm}</label>
</c:otherwise>
</c:choose>
</div>
</c:forEach>
</div>
</div>
</td>
</tr>
<tr>
<th>카테고리</th>
<td colspan="3">
<div class="td-inner">
<div class="input-container gap-4" id="search-section">
<div class="select-box">
<select id="ctgryDepth1" class="ctgry" title="1차 카테고리">
<option value="">1차 카테고리</option>
<c:forEach items="${resultMap.goodsCategoryList}" var="goodsCategory" varStatus="status">
<option value="${goodsCategory.ctgryId}">${goodsCategory.ctgryNm}</option>
</c:forEach>
</select>
</div>
<div class="select-box">
<select id="ctgryDepth2" class="ctgry" title="2차 카테고리">
<option value="">2차 카테고리</option>
</select>
</div>
<div class="select-box">
<select id="ctgryDepth3" class="ctgry" title="3차 카테고리">
<option value="">3차 카테고리</option>
</select>
</div>
<div class="select-box">
<select id="ctgryDepth4" class="ctgry" title="4차 카테고리">
<option value="">4차 카테고리</option>
</select>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="form-control-container">
<div class="left"></div>
<div class="center">
<button class="btn outline" id="resetBtn" type="button" onclick="fn_reset_form('resetTargetArea');">초기화</button>
<button class="btn primary" id="searchBtn" type="button" onclick="fn_goods_search_popup_list(1); return false;">검색</button>
</div>
<div class="right"></div>
</div>
<input type="hidden" id="pageIndex" name="pageIndex" value="1"/>
<input type="hidden" id="pageUnit" name="pageUnit" value="10"/>
</form>
<div class="product-search-box">
<div id="goodsList" class="table-wrapper left">
</div>
<div class="table-wrapper right">
<div class="form-control-container mb-5">
<div class="left">
<h3 class="content-section__inner-title mb-0">선택된 상품</h3>
</div>
<div class="center">
</div>
<div class="right">
<p class="info-oneline"><i class="icon icon_info"></i>상품을 "더블클릭"하면 제외됩니다.
</div>
</div>
<table class="table vertical tight draggable">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col>
<col style="width: 16%;">
<col style="width: 16%;">
</colgroup>
<thead>
<tr>
<th>상품명</th>
<th>판매가</th>
<th>판매상태</th>
</tr>
</thead>
<tbody id="appendList">
</tbody>
</table>
</div>
</div>
</div>
<div class="modal-footer">
<a rel="modal:close" class="btn outline">취소</a>
<button class="btn primary" rel="modal:close"
<c:choose>
<c:when test="${resultMap.BOGoodsVO.goodsKndCd eq '01'}">
onclick="fn_select_goods_search(); return false;"
</c:when>
<c:when test="${resultMap.BOGoodsVO.goodsKndCd eq '02'}">
onclick="fn_select_goods_search_evt('<c:out value="${ paramVO.selectedArea}"/>'); return false;"
</c:when>
</c:choose>
>확인</button>
</div>
</div>

View File

@@ -0,0 +1,183 @@
<%@ 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 : GoodsSrchPopupListR.jsp
Description : 상품 검색 팝업 리스트
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
since : 2024-06-03
--%>
<script>
$(document).ready(function() {
var selectedGoods = []; // 중복체크하기 위한 배열
$('#appendList tr').each(function() {
const goodsId = $(this).attr('id').replace('choiseListId', '');
const goodsImg = $(this).find('input[name="goodsImgCours"]').val();
const goodsNm = $(this).find('input[name="goodsNm"]').val();
const goodsPrice = $(this).find('input[name="slepric"]').val();
const goodsSttusNm = $(this).find('input[name="goodsSttusNm"]').val();
const expsrNm = $(this).find('input[name="expsrNm"]').val();
if (goodsId) {
selectedGoods.push({
goodsId: goodsId,
goodsImg: goodsImg,
goodsNm: goodsNm,
goodsPrice: goodsPrice,
goodsSttusNm: goodsSttusNm,
expsrNm: expsrNm
});
}
});
$(document).off('dblclick', '.searchList').on('dblclick', '.searchList', function() {
var copyTr = $(this).clone();
var goodsId = $(this).find('input[name="goodsInnb"]').val();
var goodsImg = $(this).find('input[name="goodsImgCours"]').val();
var goodsNm = $(this).find('input[name="goodsNm"]').val();
var goodsPrice = $(this).find('input[name="slepric"]').val();
var goodsSttusNm = $(this).find('input[name="goodsSttusNm"]').val();
var expsrNm = $(this).find('input[name="expsrNm"]').val();
var isDuplicate = $("#appendList").find('#choiseListId' + goodsId).length > 0;
copyTr.attr('id', 'choiseListId' + goodsId);
copyTr.attr('ondblclick', 'fn_remove_append_goods_list(this)');
copyTr.attr('class', 'draggable');
// 배열에 값이 없을 경우 실행
if (!isSelected(goodsId) && !isDuplicate) {
function initializeTableDnD() {
if ($(".table.draggable").length > 0) {
$(".table.draggable").tableDnD({
onDragClass: "dragging",
});
}
}
$("#appendList").append(copyTr);
initializeTableDnD();
selectedGoods.push({
goodsId: goodsId,
goodsImg: goodsImg,
goodsNm: goodsNm,
goodsPrice: goodsPrice,
goodsSttusNm: goodsSttusNm,
expsrNm: expsrNm
});
} else if (isSelected(goodsId)){
alert("이미 선택된 상품입니다.");
return false;
}
});
/**
* 선택된 상품 제거 함수
*/
function fn_remove_append_goods_list(element) {
var dynamicId = $(element).attr('id');
var goodsId = dynamicId.replace('choiseListId', '');
$("#appendList #" + dynamicId).remove();
// 선택된 상품 배열에서 제거
selectedGoods = selectedGoods.filter(function(good) {
return good.goodsId !== goodsId;
});
}
/**
* 중복 체크 함수
*/
function isSelected(goodsId) {
return selectedGoods.some(function(good) {
return good.goodsId === goodsId;
});
}
// fn_remove_list 함수를 전역 스코프로 선언
window.fn_remove_append_goods_list = fn_remove_append_goods_list;
});
</script>
<div class="form-control-container mb-5">
<div class="left">
<h3 class="content-section__inner-title mb-0">검색된 상품</h3>
</div>
<div class="center">
</div>
<div class="right">
<p class="info-oneline"><i class="icon icon_info"></i>상품을 "더블클릭"하면 추가됩니다.
</div>
</div>
<table class="table vertical tight">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col>
<col style="width: 16%;">
<col style="width: 16%;">
</colgroup>
<thead>
<tr>
<th>상품명</th>
<th>판매가</th>
<th>판매상태</th>
</tr>
</thead>
<tbody>
<c:choose>
<c:when test="${ not empty resultMap.list }">
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.cdnurl')" var="cdnurl"/>
<c:forEach items="${ resultMap.list }" var="list" varStatus="status">
<tr class="searchList">
<td class="text-left">
<input type="hidden" id="goodsInnb" name="goodsInnb" value="<c:out value="${ list.goodsInnb }"/>"/>
<input type="hidden" id="goodsImgCours" name="goodsImgCours" value="<c:out value="${cdnurl}${ list.goodsImgCours }"/>"/>
<input type="hidden" id="goodsNm" name="goodsNm" value="<c:out value="${ list.goodsNm }"/>"/>
<input type="hidden" id="slepric" name="slepric" value="<fmt:parseNumber value="${ list.slepric }"/>"/>
<input type="hidden" id="goodsSttusNm" name="goodsSttusNm" value="<c:out value="${ list.goodsSttusNm }"/>"/>
<input type="hidden" id="expsrNm" name="expsrNm" value="<c:out value="${ list.expsrNm }"/>"/>
<div class="product-search-box__product">
<img src="<c:out value="${cdnurl}${list.goodsImgCours}"/> "
onerror="this.src='<c:url value="/mngr/images/image_placeholder.png"/>'"
alt="${list.goodsNm}" width="64">
${list.goodsNm}
</div>
</td>
<td>${list.slepric} </td>
<td>${list.goodsSttusNm} (${list.expsrNm})</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 class="pagination__container">
<ui:pagination paginationInfo="${resultMap.paginationInfo}" type="image" jsFunction="fn_goods_search_popup_list" />
</div>

View File

@@ -0,0 +1,674 @@
<%@ 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="ui" uri="http://www.winbit.kr/ctl/ui" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ page import="java.util.Date" %>
<%--
Class Name : MarktMbrSrchPopupR.jsp
Description : 이메일 수동 발송
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-01-23 김혜인 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>GC ONE 통합 관리자</title>
<%-- 공통 include --%>
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
</head>
<script>
// ----- 검색 닫기 ----- //
var windowPopSectionContent = $('.windowPop-sectionContent');
windowPopSectionClose.on('click', function (e) {
e.preventDefault();
if (windowPopSectionClose.hasClass('closed')) {
windowPopSectionContent.show();
windowPopSectionClose.removeClass('closed');
windowPopSectionClose.text('검색닫기');
return;
}
windowPopSectionContent.hide();
windowPopSectionClose.addClass('closed');
windowPopSectionClose.text('검색열기');
});
</script>
<body>
<div class="windowPop-wrapper">
<section class="content-section">
<div class="table-wrapper windowPop-sectionContent">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 12%;">
<col style="width: auto;">
<col style="width: 12%;">
<col style="width: 12%;">
<col style="width: 23%;">
</colgroup>
<tbody>
<tr>
<th>검색어</th>
<td colspan="4">
<div class="td-inner">
<input class="input-text xl" type="text" title="해당 인풋에 대한 설명"
placeholder="주문번호,주문자명,입금자명,아이디,휴대전화,이메일,수령자명,휴대전화,상품명,상품번호">
</div>
</td>
</tr>
<tr class="search-hide">
<th>매장</th>
<td colspan="4">
<div class="td-inner">
<div class="select-box">
<select title="해당 셀렉트에 대한 설명">
<option value="">매장1</option>
<option value="">매장2</option>
<option value="">매장2</option>
<option value="">매장2</option>
<option value="">뉴트리코어</option>
<option value="">매장2</option>
<option value="">매장2</option>
<option value="">매장2</option>
<option value="">매장2</option>
<option value="">매장2</option>
<option value="">매장2</option>
<option value="">매장2</option>
<option value="">매장2</option>
<option value="">매장2</option>
<option value="">매장2</option>
<option value="">매장2</option>
<option value="">매장2</option>
<option value="">매장2</option>
<option value="">매장2</option>
<option value="">매장2</option>
<option value="">매장2</option>
<option value="">매장2</option>
<option value="">매장2</option>
<option value="">매장2</option>
<option value="">매장2</option>
<option value="">매장2</option>
<option value="">매장2</option>
<option value="">매장2</option>
<option value="">매장2</option>
<option value="">매장2</option>
</select>
</div>
<input disabled class="input-text" type="text" title="해당 인풋에 대한 설명" value="매장1">
</div>
</td>
</tr>
<tr class="search-hide">
<th>날짜</th>
<td colspan="2">
<div class="td-inner">
<div class="select-box">
<select title="해당 셀렉트에 대한 설명">
<option value="">시작일</option>
<option value="">종료일</option>
<option value="">등록일</option>
</select>
</div>
<div class="input-container">
<input type="text" id="datepicker_1" class="datepicker" title="시작 날짜 선택"
autocomplete="off">
<span class="tilde">~</span>
<input type="text" id="datepicker_2" class="datepicker" title="종료 날짜 선택"
autocomplete="off">
</div>
<div class="dateRange-btnContainer">
<button class="dateRange-btn">어제</button>
<button class="dateRange-btn">오늘</button>
<button class="dateRange-btn">3일간</button>
<button class="dateRange-btn">일주일</button>
<button class="dateRange-btn">1개월</button>
<button class="dateRange-btn">3개월</button>
<button class="dateRange-btn">6개월</button>
<button class="dateRange-btn selected">전체</button>
</div>
</div>
</td>
<th>리셀러의심</th>
<td>
<div class="b-checkbox-container">
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">리셀러의심</span>
</label>
</div>
</td>
</tr>
<tr class="search-hide">
<th>주문상태 (출고전)</th>
<td colspan="4">
<div class="td-inner">
<div class="b-checkbox-container order-status-badge-container">
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">
<span class="order-status-badge recept">주문접수</span>
</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">
<span class="order-status-badge confirm">결제확인</span>
</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">
<span class="order-status-badge prep">상품준비</span>
</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">
<span class="order-status-badge gray">결제취소</span>
</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">
<span class="order-status-badge gray">주문무효</span>
</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">
<span class="order-status-badge gray">결제실패</span>
</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">전체</span>
</label>
</div>
</div>
</td>
</tr>
<tr class="search-hide">
<th>주문상태 (출고후)</th>
<td colspan="4">
<div class="td-inner">
<div class="b-checkbox-container order-status-badge-container">
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">
<span class="order-status-badge delivery">부분배송중</span>
</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">
<span class="order-status-badge delivery">배송중</span>
</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">
<span class="order-status-badge complete">부분배송완료</span>
</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">
<span class="order-status-badge complete">배송완료</span>
</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">전체</span>
</label>
</div>
</div>
</td>
</tr>
<tr class="search-hide">
<th>주문환경</th>
<td colspan="4">
<div class="td-inner">
<div class="b-checkbox-container">
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">PC</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">모바일/태블릿</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">전화</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">TM주문</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">TM출고</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">TM결제</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">가맹(POS)</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">직영(POS)</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">유통(POS)</span>
</label>
</div>
</div>
</td>
</tr>
<tr class="search-hide">
<th>배송예정</th>
<td colspan="4">
<div class="td-inner">
<div class="select-box">
<select title="해당 셀렉트에 대한 설명">
<option value="">희망배송일</option>
</select>
</div>
<div class="input-container">
<input type="text" id="datepicker_3" class="datepicker" title="시작 날짜 선택"
autocomplete="off">
<span class="tilde">~</span>
<input type="text" id="datepicker_4" class="datepicker" title="종료 날짜 선택"
autocomplete="off">
</div>
</div>
</td>
</tr>
<tr class="search-hide">
<th>배송방법</th>
<td colspan="1">
<div class="td-inner">
<div class="b-checkbox-container">
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">택배</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">직접배송</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">프레쉬배송</span>
</label>
</div>
</div>
</td>
<th>주문유형</th>
<td colspan="2">
<div class="td-inner">
<div class="b-checkbox-container">
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">
<i class="icon icon_word-badge01"></i>
관리자주문</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">
<i class="icon icon_word-badge02"></i>
개인결제</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">
<i class="icon icon_gift-badge"></i>
선물하기</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">여러곳배송</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">정기배송</span>
</label>
</div>
</div>
</td>
</tr>
<tr class="search-hide">
<th>주문결제</th>
<td colspan="1">
<div class="td-inner">
<div class="b-checkbox-container vertical mr-15">
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">무통장</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">매장결제</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">수기결제</span>
</label>
</div>
<div class="multi-select mr-2">
<div class="multi-select__title">
<div class="b-checkbox-container">
<label class="b-checkbox checkbox check-all">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">모든 결제사</span>
</label>
</div>
</div>
<div class="multi-select__inner">
<div class="b-checkbox-container vertical">
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">일반PG사</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">카카오페이</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">톡체크아웃</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">페이코</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">네이버페이 주문형</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">네이버페이 결제형</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">페이팔</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">엑심베이</span>
</label>
</div>
</div>
</div>
<div class="multi-select">
<div class="multi-select__title">
<div class="b-checkbox-container">
<label class="b-checkbox checkbox check-all">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">모든 결제수단</span>
</label>
</div>
</div>
<div class="multi-select__inner">
<div class="b-checkbox-container vertical">
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">신용카드</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">휴대폰</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">계좌이체</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">에스크로계좌이체</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">포인트</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">후불결제</span>
</label>
</div>
</div>
</div>
</div>
</td>
<th>주문유입</th>
<td colspan="2">
<div class="td-inner">
<div class="multi-select">
<div class="multi-select__title">
<div class="b-checkbox-container">
<label class="b-checkbox checkbox check-all">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">모든 유입경로</span>
</label>
</div>
</div>
<div class="multi-select__inner">
<div class="b-checkbox-container vertical">
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">인스타그램</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">직접입력</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">구글검색</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="">
<span class="check"></span>
<span class="control-label">네이버검색</span>
</label>
</div>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="form-control-container windowPop-sectionContent">
<div class="left"></div>
<div class="center">
<button class="btn outline">초기화</button>
<button class="btn primary">검색</button>
</div>
<div class="right">
<button class="btn outline search-detail opened">상세검색</button>
</div>
</div>
<button class="windowPop-sectionClose">검색닫기</button>
</section>
<section class="content-section">
<div class="table-wrapper">
<table class="table vertical">
<caption>해당 테이블에 대한 설명</caption>
<!-- 각 열 width 설정 -->
<colgroup>
<col style="width: 6%;">
<col style="width: 5%">
<col style="width: 6%;">
<col style="width: 12%;">
<col style="width: auto">
<col style="width: 6%;">
<col style="width: 6%;">
<col style="width: 10%;">
<col style="width: 10%;">
<col style="width: 6%;">
<col style="width: 6%;">
</colgroup>
<thead>
<tr>
<th>선택</th>
<th>번호</th>
<th>주문일시</th>
<th>주문번호</th>
<th>주문상품</th>
<th>수(종)</th>
<th>출고</th>
<th>받는분/주문자</th>
<th>결제수단/일시</th>
<th>결제금액</th>
<th>처리상태</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="manage-btn-container">
<a href="#admin-memo-pop" rel="modal:open" class="btn xsm gray">선택</a>
</div>
</td>
<td>3</td>
<td>23-09-06<br>11:11</td>
<td><a class="under-line blue-7" href="">2022011217594517548</a></td>
<td>
<div class="order-section__product">
<img src="../resources/images/상품이미지01.png" alt="상품이미지" width="56" height="56">
<div class="order-section__product-info">
<span class="order-section__product-productTitle">초임계
식물성 알티지 오메가3</span>
<span class="option-text">
<span class="option-badge">옵션</span>
식물성알티지오메가3 1박스
</span>
</div>
</div>
</td>
<td>1(1종)</td>
<td>출고</td>
<td>
<a href="" class="order-detail-text">
<i class="icon icon_word-badge09"></i>
<span class="gray-12">
홍길동
</span>
(
<span class="fw-500 blue-7">test12321</span>
/
<span class="fw-500 green-8">일반</span>
)
</a>
<button class="mini-info-btn" data-info="info01">?</button>
</td>
<td class="text-right">
<span class="blue-7">전액할인</span>
<br>
<span class="badge-word">
<i class="icon icon_word-badge03"></i>
<span class="stone-8 fw-500">농협</span>
</span>
<br>
<span>23-09-05 11:11</span>
</td>
<td><span class="comma fw-500">38900</span></td>
<td>결제확인</td>
</tr>
</tbody>
</table>
</div>
</section>
<div class="pagination__container mb-40">
<div class="pagination">
<button disabled class="pagination__item first"><span class="visually-hidden">첫
페이지로</span></button>
<button disabled class="pagination__item prev"><span class="visually-hidden">이전
페이지로</span></button>
<ol class="pagination__number-group">
<li><button class="pagination__item active"><span>1</span></button></li>
<li><button class="pagination__item"><span>2</span></button></li>
<li><button class="pagination__item"><span>3</span></button></li>
<li><button class="pagination__item"><span>4</span></button></li>
<li><button class="pagination__item"><span>5</span></button></li>
<li><button class="pagination__item"><span>6</span></button></li>
<li><button class="pagination__item"><span>7</span></button></li>
<li><button class="pagination__item"><span>8</span></button></li>
<li><button class="pagination__item"><span>9</span></button></li>
<li><button class="pagination__item"><span>10</span></button></li>
</ol>
<button class="pagination__item next"><span class="visually-hidden">다음 페이지로</span></button>
<button class="pagination__item last"><span class="visually-hidden">마지막 페이지로</span></button>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,803 @@
<%@ 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="ui" uri="http://www.winbit.kr/ctl/ui" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ page import="java.util.Date" %>
<%--
Class Name : MarktMbrSrchPopupR.jsp
Description : 이메일 수동 발송
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-01-23 김혜인 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>GC ONE 통합 관리자</title>
<%-- 공통 include --%>
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
</head>
<script>
$(document).ready(function(){
//상세 검색 hide
fn_init();
// ----- 검색 닫기 ----- //
var windowPopSectionContent = $('.windowPop-sectionContent');
/* windowPopSectionClose.on('click', function (e) {
e.preventDefault();
if (windowPopSectionClose.hasClass('closed')) {
windowPopSectionContent.show();
windowPopSectionClose.removeClass('closed');
windowPopSectionClose.text('검색닫기');
return;
}
windowPopSectionContent.hide();
windowPopSectionClose.addClass('closed');
windowPopSectionClose.text('검색열기');
}); */
});
/*******************************************
검색 조건 이벤트 설정
********************************************/
/*
* 검색조건 > 검색 날짜 유효성 체크
* srchStartDate : #검색 시작일 value
* srchEndDate : #검색 종료일 value
*/
const fn_check_date = function (chkTrgt) {
//text 타입인 검색 시작일, 종료일 Date타입으로 변환
const srchStartDate = new Date($("#"+chkTrgt+"StartDate").val());
const srchEndDate = new Date($("#"+chkTrgt+"EndDate").val());
if(srchStartDate != null && srchEndDate != null){
// 현재 날짜, 일년 전 날짜 가져오기
let today = new Date();
let srchEndDateOneY = new Date(today.getFullYear()-1, today.getMonth(), today.getDate()-1);
if(srchEndDate > today){
alert("날짜 검색 '종료일'이 오늘 날짜보다 큽니다");
$('#srchEndDate').datepicker().datepicker("setDate",'0');
return false;
}else if(srchStartDate > srchEndDate){
alert("날짜 검색 '시작일'이 1년 초과 되었습니다");
$('#srchStartDate').datepicker().datepicker("setDate",'-1Y');
return false;
} else {
return true;
}
}
}
/*
* 검색조건 > 날짜 전체 클릭 시 날짜 설정 초기화
*/
const fn_reset_date = function(strtDate,endDate){
$('#'+strtDate).datepicker().datepicker("setDate",'');
$('#'+endDate).datepicker().datepicker("setDate",'');
}
/*
* 검색조건 > 마케팅 수신 동의 체크시 브랜드 전체 체크
*/
function fn_change_event(_target) {
let readId = $('[name=' + _target + ']:checked').attr('id');
if (readId == 'marktRecptnAgreAtY') {
$('.checkBtn').prop('checked', true);
}else if(readId == 'marktRecptnAgreAtA' || readId == 'marktRecptnAgreAtN'){
$('.checkBtn').prop('checked', false);
}
};
/*
* 검색조건 >한 개 브랜드라도 체크 해제시 전체체크 체크 해제
*/
function fn_change_prop_uncheck(_target) {
let readId = $('[name=' + _target + ']:checked').attr('id');
if(!readId.checked){
$('#checkAll').prop('checked', false);
}
};
/*
* 검색조건 >한 개 브랜드라도 체크 해제시 전체체크 체크 해제
*/
function fn_change_prop_unclick(_target){
let readId = $('[name=' + _target + ']:checked').attr('id');
// 라디오 버튼 전체 혹은 거부에 버튼 클릭 후 브랜드 선택 시 동의로 버튼 변경
if(readId != 'marktRecptnAgreAtY'){
$('#marktRecptnAgreAtY').prop('checked', true);
}
}
function fn_init () {
/*
* 검색조건 > 초기화 버튼 클릭 이벤트
*/
$('#btnResetForm').on('click', function(){
fn_reset_form('mbrSrchSection');
$('#srchKywordDv option:eq(0)').prop('selected', true);
$('#srchKywordDv').niceSelect('update');
$('#srchGradInnb option:eq(0)').prop('selected', true);
$('#srchGradInnb').niceSelect('update');
$('#vstRvwDv option:eq(0)').prop('selected', true);
$('#vstRvwDv').niceSelect('update');
$('input[name="srchStrtOrdrAmt"]').val('0');
$('input[name="srchEndOrdrAmt"]').val('0');
$('input[name="srchStrtOrdrCnt"]').val('0');
$('input[name="srchEndOrdrCnt"]').val('0');
$('input[name="srchStrtMlg"]').val('0');
$('input[name="srchEndMlg"]').val('0');
$('input[name="srchStrtVstRvwCnt"]').val('0');
$('input[name="srchEndVstRvwCnt"]').val('0');
$('input[name="srchStrtBrthDe"]').val('0');
$('input[name="srchEndBrthDe"]').val('0');
});
/* ********************************************************
* 목록 조회 function
******************************************************** */
//회원 목록 조회(ajax)
const fn_select_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;
}
}
$.ajax({
type: "post",
url : "<c:url value='/mngr/mbr/selectMbrListInqire'/>",
data : dataStr,
success:function(resultHtml) {
$('#pageDiv').html(resultHtml);
$('#pageUnit').niceSelect();
}
});
}
//검색 엔터 클릭시 목록 조회
document.addEventListener('keydown', function(event) {
if (event.keyCode === 13) {
event.preventDefault();
fn_select_list(1);
}
});
}
</script>
<body>
<div class="windowPop-wrapper">
<form id = "listForm">
<section class="content-section" id = "mbrSrchSection">
<input type="hidden" id="pageIndex" name="pageIndex" value="${ resultSrchMap.boMbrSrchVO.pageIndex}"/>
<div class="table-wrapper">
<table class="table">
<caption>회원 검색</caption>
<colgroup>
<col style="width: 12%;">
<col style="width: 38%;">
<col style="width: 12%;">
<col style="width: auto%;">
</colgroup>
<tr>
<th>이름</th>
<td>
<div class="td-inner">
<input class="input-text xl" type="text" title="검색 이름" name = "srchNm">
</div>
</td>
<th>휴대폰번호</th>
<td>
<div class="td-inner">
<input class="input-text xl" type="text" title="검색 휴대폰번호" name = "srchMbtlnb">
</div>
</td>
</tr>
<tr>
<th>회원구분</th>
<td colspan = "3">
<c:forEach var = "mbrTy" items = "${resultSrchMap.code.mbrTy}">
<c:if test = "${mbrTy.cd eq 'member'}">
<label class="b-checkbox checkbox check">
<input type="checkbox" id="<c:out value = "${mbrTy.cd}"/>" name="srchMbrTy" value = "<c:out value = "${mbrTy.cd }"/>" >
<span class="check"></span>
<span class="control-label"><c:out value = "${mbrTy.cdNm}"/></span>
</label>
(<c:forEach var = "grad" items = "${resultSrchMap.code.grad}">
<label class="b-checkbox checkbox check">
<input type="checkbox" id="mbrTy${grad.mbrGradInnb}" name="srchGradInnb" value = "${grad.mbrGradInnb}">
<span class="check"></span>
<span class="control-label">${grad.gradNm}</span>
</label>
</c:forEach>)
</c:if>
<c:if test = "${mbrTy.cd eq 'none'}">
<br>
<label class="b-checkbox checkbox check">
<input type="checkbox" id="<c:out value = "${mbrTy.cd}"/>" name="srchMbrTy" value = "<c:out value = "${mbrTy.cd}"/>">
<span class="check"></span>
<span class="control-label"><c:out value = "${mbrTy.cdNm}"/></span>
</label>
( <label class="b-checkbox checkbox check">
<input type="checkbox" id="distinctMbr" name="distinctMbr" value = "D">
<span class="check"></span>
<span class="control-label">회원 중복 휴대폰번호 제외</span>
</label> )
</c:if>
</c:forEach>
<c:forEach var = "joinMth" items = "${resultSrchMap.code.joinMth}">
<c:if test = "${joinMth.cd eq 'pos'}">
<label class="b-checkbox checkbox check">
<input type="checkbox" id="pos" name="srchMbrTy" value = "<c:out value ='${joinMth.cd}'/>">
<span class="check"></span>
<span class="control-label">매장회원</span>
</label>
</c:if>
</c:forEach>
(<c:forEach var = "posDv" items = "${resultSrchMap.code.posDv}">
<c:if test = "${posDv.cd eq '1'}">
<label class="b-checkbox checkbox check">
<input type="checkbox" id="pos<c:out value = "${posDv.cd}"/>" name="posDv" value = "<c:out value = "${posDv.cd}"/>">
<span class="check"></span>
<span class="control-label"><c:out value = "${posDv.cdNm}"/></span>
</label>
</c:if>
<c:if test = "${posDv.cd eq '2'}">
<label class="b-checkbox checkbox check checkBtn">
<input type="checkbox" id="pos<c:out value = "${posDv.cd}"/>" name="posDv" value = "<c:out value = "${posDv.cd}"/>">
<span class="check"></span>
<span class="control-label"><c:out value = "${posDv.cdNm}"/></span>
</label>
</c:if>
<c:if test = "${posDv.cd eq '3'}">
<label class="b-checkbox checkbox check checkBtn">
<input type="checkbox" id="pos<c:out value = "${posDv.cd}"/>" name="posDv" value = "<c:out value = "${posDv.cd}"/>">
<span class="check"></span>
<span class="control-label"><c:out value = "${posDv.cdNm}"/></span>
</label>
</c:if>
</c:forEach>)
</td>
</tr>
<tr class="search-hide">
<th>성별</th>
<td>
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" id="sexDstnA" name="srchSexDstn" value = "" checked>
<label for="sexDstnA">전체</label>
</div>
<c:forEach var = "sexDstn" items = "${resultSrchMap.code.sexDstn}">
<div class="custom-radio">
<input type="radio" id="${sexDstn.cd}" value = "${sexDstn.cd}" name="srchSexDstn">
<label for="sex${sexDstn.cd}"><c:out value = "${sexDstn.cdNm}"/></label>
</div>
</c:forEach>
<div class="custom-radio">
<input type="radio" id="sexDstnN" value = "none" name="srchSexDstn">
<label for="sexDstnN">성별없음</label>
</div>
</div>
</div>
</td>
<th>리셀러 제외</th>
<td>
<div class="td-inner">
<div class="custom-radio-container">
<c:forEach var = "appen" items = "${resultSrchMap.code.appen}">
<c:if test ="${appen.cd eq '02'}">
<label class="b-checkbox checkbox check">
<input type="checkbox" id="<c:out value = "${appen.cd}"/>" name="srchAppen" value = "<c:out value = "${appen.cd}"/>">
<span class="check"></span>
<span class="control-label">리셀러 제외</span>
</label>
</c:if>
</c:forEach>
</div>
</div>
</td>
</tr>
<tr>
<th>생일</th>
<td>
<div class="td-inner">
<div class="select-box">
<select title="생일검색" name = "srchBrthDe" id = "srchBrthDe">
<option value = "">선택</option>
<c:forEach var="brthDe" begin = "1" end = "12" varStatus = "status">
<c:choose>
<c:when test = "${status.index < 10}">
<option value="0${status.index}"><c:out value = "${status.index}"/></option>
</c:when>
<c:otherwise>
<option value="${status.index}"><c:out value = "${status.index}"/></option>
</c:otherwise>
</c:choose>
</c:forEach>
</select>
</div>
<span class="input-unit-text">월</span>
</div>
</td>
<th>나이</th>
<td>
<div class="td-inner">
<div class="input-container">
<span class="input-unit-text left">만</span>
<input type="text" class="input-text xsm right number" value="0"
title="나이 검색 시작" name = "srchStrtAge">
<span class="input-unit-text">세</span>
<span class="tilde">~</span>
<input type="text" class="input-text xsm right number" value="0"
title="나이 검색 종료" name = "srchEndAge">
<span class="input-unit-text">세</span>
</div>
</div>
</td>
</tr>
<tr>
<th rowspan = "2">회원가입 환경</th>
<td colspan = "3">
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" id="srchPlatformAll" value = "" name="srchPlatform" checked>
<label for="srchPlatformAll">전체</label>
</div>
<c:forEach var = "platform" items = "${resultSrchMap.code.platform}">
<div class="custom-radio">
<input type="radio" id="${platform.cd}" name="srchPlatform" value = "${platform.cd}">
<label for="${platform.cd}">${platform.cdNm}</label>
</div>
</c:forEach>
</div>
</div>
</td>
</tr>
<tr>
<td colspan = "3">
<div class="td-inner">
<div class="custom-radio-container">
<c:forEach var = "brand" items = "${resultSrchMap.code.brand}">
<div class="custom-radio">
<input type="radio" id="platform${brand.cd}" name="srchPlatform" value = "${brand.cd}">
<label for="platform${brand.cd}">${brand.cdNm}</label>
</div>
</c:forEach>
</div>
</div>
</td>
</tr>
<tr>
<th>회원가입 방법</th>
<td colspan = "3">
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" id="srchruteA" name="srchrute" value = "" checked>
<label for="srchruteA">전체</label>
</div>
<c:forEach var = "rute" items = "${resultSrchMap.code.rute}">
<div class="custom-radio">
<input type="radio" id="${rute.cd}" name="srchrute" value = "${rute.cd}">
<label for="${rute.cd}">${rute.cdNm}</label>
</div>
</c:forEach>
</div>
</div>
</td>
</tr>
<tr>
<th>마케팅 수신 동의</th>
<td colspan = "3">
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" id="marktRecptnAgreAtA" name = "srchMarktRecptnAgreAt" value = "" onclick = "fn_change_event('srchMarktRecptnAgreAt')" checked>
<label for="marktRecptnAgreAtA">전체</label>
</div>
<div class="custom-radio">
<input type="radio" id="marktRecptnAgreAtY" value = "Y" name="srchMarktRecptnAgreAt" onclick = "fn_change_event('srchMarktRecptnAgreAt')">
<label for="marktRecptnAgreAtY">동의</label>
</div>
<span class="parentheses">&#40;</span>
<div class="b-checkbox-container inner">
<label class="b-checkbox checkbox check-all checkBtn">
<input type="checkbox" value="" id = "checkAll" class = "srchBrndChkBtn checkBtn" >
<span class="check"></span>
<span class="control-label">전체</span>
</label>
<c:forEach var = "brand" items = "${resultSrchMap.code.brand}">
<label class="b-checkbox checkbox check checkBtn">
<input type="checkbox" id="markt${brand.cd}" name="srchBrand" value = "${brand.cd}" class = "checkBtn" onclick = "fn_change_prop_uncheck('srchBrand');fn_change_prop_unclick('srchMarktRecptnAgreAt')">
<span class="check"></span>
<span class="control-label">${brand.cdNm}</span>
</label>
</c:forEach>
</div>
<span class="parentheses">&#41;</span>
<div class="custom-radio">
<input type="radio" id="marktRecptnAgreAtN" value = "N" name="srchMarktRecptnAgreAt" onclick = "fn_change_event('srchMarktRecptnAgreAt')" >
<label for="marktRecptnAgreAtN">거부</label>
</div>
</div>
</div>
</td>
</tr>
<tr>
<th>가입일</th>
<td colspan="2">
<div class="td-inner">
<div class="input-container">
<%-- 검색 종료일 현재 날짜 --%>
<c:set var="today" value="<%=new java.util.Date()%>" />
<!-- 검색 조건 시작일 -->
<input type="text" name ="sbscrbStrtDt" id="sbscrbStrtDt" class="datepicker"
title="시작 날짜 선택" autocomplete="off" onchange = "fn_check_date(sbscrb)">
<span class="tilde">~</span>
<!-- 검색 조건 종료일 -->
<input type="text" name ="sbscrbEndDt" id="sbscrbEndDt" class="datepicker"
title="종료 날짜 선택" autocomplete="off" onchange = "fn_check_date(sbscrb)"/>
</div>
<div class="dateRange-btnContainer">
<button class="dateRange-btn"
onclick = "fn_set_date('sbscrbStrtDt','sbscrbEndDt','sbscrbEndDt','1D')">어제</button>
<button class="dateRange-btn"
onclick = "fn_set_date('sbscrbStrtDt','sbscrbEndDt','sbscrbEndDt','0')">오늘</button>
<button class="dateRange-btn"
onclick = "fn_set_date('sbscrbStrtDt','sbscrbEndDt','sbscrbEndDt','3D')">3일간</button>
<button class="dateRange-btn"
onclick = "fn_set_date('sbscrbStrtDt','sbscrbEndDt','sbscrbEndDt','7D')">일주일</button>
<button class="dateRange-btn"
onclick = "fn_set_date('sbscrbStrtDt','sbscrbEndDt','sbscrbEndDt','1M')">1개월</button>
<button class="dateRange-btn"
onclick = "fn_set_date('sbscrbStrtDt','sbscrbEndDt','sbscrbEndDt','3M')">3개월</button>
<button class="dateRange-btn"
onclick = "fn_set_date('sbscrbStrtDt','sbscrbEndDt','sbscrbEndDt','6M')">6개월</button>
<button class="dateRange-btn"
onclick = "fn_set_date('sbscrbStrtDt','sbscrbEndDt','sbscrbEndDt','1Y')">1년</button>
<button class="dateRange-btn selected"
onclick = "fn_reset_date('sbscrbStrtDt','sbscrbEndDt')">전체</button>
</div>
<div class="b-checkbox-container inner">
<label class="b-checkbox checkbox check checkBtn">
<input type="checkbox" id="noVstAt" name="noVstAt" value = "Y">
<span class="check"></span>
<span class="control-label">재방문 없음</span>
</label>
<label class="b-checkbox checkbox check checkBtn">
<input type="checkbox" id="noOrdrAt" name="noOrdrAt" value = "Y">
<span class="check"></span>
<span class="control-label">구매 없음</span>
</label>
</div>
</div>
</td>
</tr>
<tr>
<th>최종방문일</th>
<td colspan="2">
<div class="td-inner">
<div class="input-container">
<!-- 검색 조건 시작일 -->
<input type="text" name ="loginStrtDt" id="loginStrtDt" class="datepicker"
title="시작 날짜 선택" autocomplete="off">
<span class="tilde">~</span>
<!-- 검색 조건 종료일 -->
<input type="text" name ="loginEndDt" id="loginEndDt" class="datepicker"
title="종료 날짜 선택" autocomplete="off" pattern="yyyy-MM-dd"/>
</div>
<div class="dateRange-btnContainer">
<button class="dateRange-btn"
onclick = "fn_set_date('loginStrtDt','loginEndDt','loginEndDt','1D')">어제</button>
<button class="dateRange-btn"
onclick = "fn_set_date('loginStrtDt','loginEndDt','loginEndDt','0')">오늘</button>
<button class="dateRange-btn"
onclick = "fn_set_date('loginStrtDt','loginEndDt','loginEndDt','3D')">3일간</button>
<button class="dateRange-btn"
onclick = "fn_set_date('loginStrtDt','loginEndDt','loginEndDt','7D')">일주일</button>
<button class="dateRange-btn"
onclick = "fn_set_date('loginStrtDt','loginEndDt','loginEndDt','1M')">1개월</button>
<button class="dateRange-btn"
onclick = "fn_set_date('loginStrtDt','loginEndDt','loginEndDt','3M')">3개월</button>
<button class="dateRange-btn"
onclick = "fn_set_date('loginStrtDt','loginEndDt','loginEndDt','6M')">6개월</button>
<button class="dateRange-btn"
onclick = "fn_set_date('loginStrtDt','loginEndDt','loginEndDt','1Y')">1년</button>
<button class="dateRange-btn selected"
onclick = "fn_reset_date('loginStrtDt','loginEndDt')">전체</button>
</div>
</div>
</td>
</tr>
<tr>
<th>마일리지</th>
<td>
<div class="td-inner">
<div class="input-container">
<input type="text" class="input-text sm right number" value="0"
title="검색 시작 마일리지" name = "srchStrtMlg">
<span class="input-unit-text">마일리지</span>
<span class="tilde">~</span>
<input type="text" class="input-text sm right number" value="0"
title="검색 끝 마일리지" name = "srchEndMlg">
<span class="input-unit-text">마일리지</span>
</div>
</div>
</td>
<th>리뷰 수</th>
<td>
<div class="td-inner">
<div class="input-container">
<input type="text" class="input-text sm right number" value="0"
title="검색 시작 리뷰 수" name = "srchStrtRvwCnt">
<span class="input-unit-text">건</span>
<span class="tilde">~</span>
<input type="text" class="input-text sm right number" value="0"
title="검색 끝 리뷰 수" name = "srchEndRvwCnt">
<span class="input-unit-text">건</span>
</div>
</div>
</td>
</tr>
<tr>
<th>장바구니 포함 제품</th>
<td colspan = "3">
<div class="td-inner">
<button class = "btn primary">상품 선택</button>
<input type="text" class="input-text xl" title="장바구니 포함 제품" name = "srchCartGoods" placeholder = "상품 고유번호, 상품 고유번호, ...">
</div>
</td>
</tr>
<tr>
<th>구매 이력 제품</th>
<td colspan = "4">
<div class="td-inner">
<div class="select-box">
<select title="구매 이력 검색 구분" name = "srchPurchsHistDv" id = "srchPurchsHistDv">
<option value = "frst">해당 제품 구매 이력 있음</option>
<option value = "secn">해당 제품 기간 내 재구매 이력 없음</option>
<option value = "no">기간 내 구매 이력 없음</option>
</select>
</div>
<button class = "btn primary">상품 선택</button>
<input type="text" class="input-text xl" title="구매 이력 제품" name = "srchPurchsHistGoods" placeholder = "상품 고유번호, 상품 고유번호, ...">
<div class="dateRange-btnContainer">
<button class="dateRange-btn"
onclick = "fn_set_date('loginStrtDt','loginEndDt','loginEndDt','1D')">어제</button>
<button class="dateRange-btn"
onclick = "fn_set_date('loginStrtDt','loginEndDt','loginEndDt','0')">오늘</button>
<button class="dateRange-btn"
onclick = "fn_set_date('loginStrtDt','loginEndDt','loginEndDt','3D')">3일간</button>
<button class="dateRange-btn"
onclick = "fn_set_date('loginStrtDt','loginEndDt','loginEndDt','7D')">일주일</button>
<button class="dateRange-btn"
onclick = "fn_set_date('loginStrtDt','loginEndDt','loginEndDt','1M')">1개월</button>
<button class="dateRange-btn"
onclick = "fn_set_date('loginStrtDt','loginEndDt','loginEndDt','3M')">3개월</button>
<button class="dateRange-btn"
onclick = "fn_set_date('loginStrtDt','loginEndDt','loginEndDt','6M')">6개월</button>
<button class="dateRange-btn"
onclick = "fn_set_date('loginStrtDt','loginEndDt','loginEndDt','1Y')">1년</button>
<button class="dateRange-btn selected"
onclick = "fn_reset_date('loginStrtDt','loginEndDt')">전체</button>
</div>
</div>
</td>
</tr>
<tr>
<th>주문 기간</th>
<td colspan = "3">
<div class="td-inner">
<div class="input-container">
<input type="text" class="input-text sm right number" value="0"
title="검색 시작 주문 금액" name = "srchStrtOrdrAmt">
<span class="input-unit-text">원</span>
<span class="tilde">~</span>
<input type="text" class="input-text sm right number" value="0"
title="검색 끝 주문 금액" name = "srchEndOrdrAmt">
<span class="input-unit-text">원</span>
</div>
<div class="input-container">
<input type="text" id="srchStrtOrdrAmtDt" class="datepicker" title="시작 날짜 선택" name = "srchStrtOrdrAmtDt"
autocomplete="off" >
<span class="tilde">~</span>
<input type="text" id="srchEndOrdrAmtDt" class="datepicker" title="종료 날짜 선택" name = "srchEndOrdrAmtDt"
autocomplete="off" pattern="yyyy-MM-dd"/>
</div>
<div class="dateRange-btnContainer" id = "searchDateRange">
<button class="dateRange-btn" id = "today"
onclick = "fn_set_date('srchStrtOrdrAmtDt','srchEndOrdrAmtDt','srchEndOrdrAmtDt','1D')">어제</button>
<button class="dateRange-btn" id = "today"
onclick = "fn_set_date('srchStrtOrdrAmtDt','srchEndOrdrAmtDt','srchEndOrdrAmtDt','0')">오늘</button>
<button class="dateRange-btn" id = "threeDays"
onclick = "fn_set_date('srchStrtOrdrAmtDt','srchEndOrdrAmtDt','srchEndOrdrAmtDt','3D')">3일간</button>
<button class="dateRange-btn" id = "sevenDays"
onclick = "fn_set_date('srchStrtOrdrAmtDt','srchEndOrdrAmtDt','srchEndOrdrAmtDt','7D')">일주일</button>
<button class="dateRange-btn" id = "oneMonth"
onclick = "fn_set_date('srchStrtOrdrAmtDt','srchEndOrdrAmtDt','srchEndOrdrAmtDt','1M')">1개월</button>
<button class="dateRange-btn" id = "threeMonth"
onclick = "fn_set_date('srchStrtOrdrAmtDt','srchEndOrdrAmtDt','srchEndOrdrAmtDt','3M')">3개월</button>
<button class="dateRange-btn" id = "threeMonth"
onclick = "fn_set_date('srchStrtOrdrAmtDt','srchEndOrdrAmtDt','srchEndOrdrAmtDt','6M')">6개월</button>
<button class="dateRange-btn" id = "threeMonth"
onclick = "fn_set_date('srchStrtOrdrAmtDt','srchEndOrdrAmtDt','srchEndOrdrAmtDt','1Y')">1년</button>
<button class="dateRange-btn selected"
onclick = "fn_reset_date('srchStrtOrdrAmtDt','srchEndOrdrAmtDt')()">전체</button>
</div>
</div>
</td>
</tr>
<tr>
<th>주문 금액</th>
<td colspan = "3">
<div class="td-inner">
<div class="input-container">
<input type="text" class="input-text sm right number" value="0"
title="검색 시작 주문 건수" name = "srchStrtOrdrCnt">
<span class="input-unit-text">건</span>
<span class="tilde">~</span>
<input type="text" class="input-text sm right number" value="0"
title="검색 끝 주문 건수" name = "srchEndOrdrCnt">
<span class="input-unit-text">건</span>
</div>
<div class="input-container">
<input type="text" id="srchStrtOrdrCntDt" class="datepicker" title="시작 날짜 선택" name = "srchStrtOrdrCntDt"
autocomplete="off" >
<span class="tilde">~</span>
<input type="text" id="srchEndOrdrCntDt" class="datepicker" title="종료 날짜 선택" name = "srchEndOrdrCntDt"
autocomplete="off" >
</div>
<div class="dateRange-btnContainer" id = "searchDateRange">
<button class="dateRange-btn" id = "today"
onclick = "fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt','1D')">어제</button>
<button class="dateRange-btn" id = "today"
onclick = "fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt','0')">오늘</button>
<button class="dateRange-btn" id = "threeDays"
onclick = "fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt','3D')">3일간</button>
<button class="dateRange-btn" id = "sevenDays"
onclick = "fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt','7D')">일주일</button>
<button class="dateRange-btn" id = "oneMonth"
onclick = "fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt','1M')">1개월</button>
<button class="dateRange-btn" id = "threeMonth"
onclick = "fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt','3M')">3개월</button>
<button class="dateRange-btn" id = "threeMonth"
onclick = "fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt','6M')">6개월</button>
<button class="dateRange-btn" id = "threeMonth"
onclick = "fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt','1Y')">1년</button>
<button class="dateRange-btn selected"
onclick = "fn_reset_date('srchStrtOrdrCntDt','srchEndOrdrCntDt')()">전체</button>
</div>
</div>
</td>
</tr>
<tr>
<th>주문 건수</th>
<td colspan = "3">
<div class="td-inner">
<div class="input-container">
<input type="text" class="input-text sm right number" value="0"
title="검색 시작 주문 건수" name = "srchStrtOrdrCnt">
<span class="input-unit-text">건</span>
<span class="tilde">~</span>
<input type="text" class="input-text sm right number" value="0"
title="검색 끝 주문 건수" name = "srchEndOrdrCnt">
<span class="input-unit-text">건</span>
</div>
<div class="input-container">
<input type="text" id="srchStrtOrdrCntDt" class="datepicker" title="시작 날짜 선택" name = "srchStrtOrdrCntDt"
autocomplete="off" >
<span class="tilde">~</span>
<input type="text" id="srchEndOrdrCntDt" class="datepicker" title="종료 날짜 선택" name = "srchEndOrdrCntDt"
autocomplete="off" >
</div>
<div class="dateRange-btnContainer" id = "searchDateRange">
<button class="dateRange-btn" id = "today"
onclick = "fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt','1D')">어제</button>
<button class="dateRange-btn" id = "today"
onclick = "fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt','0')">오늘</button>
<button class="dateRange-btn" id = "threeDays"
onclick = "fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt','3D')">3일간</button>
<button class="dateRange-btn" id = "sevenDays"
onclick = "fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt','7D')">일주일</button>
<button class="dateRange-btn" id = "oneMonth"
onclick = "fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt','1M')">1개월</button>
<button class="dateRange-btn" id = "threeMonth"
onclick = "fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt','3M')">3개월</button>
<button class="dateRange-btn" id = "threeMonth"
onclick = "fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt','6M')">6개월</button>
<button class="dateRange-btn" id = "threeMonth"
onclick = "fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt','1Y')">1년</button>
<button class="dateRange-btn selected"
onclick = "fn_reset_date('srchStrtOrdrCntDt','srchEndOrdrCntDt')()">전체</button>
</div>
</div>
</td>
</tr>
<tr>
<th>발송이력</th>
<td colspan = "3">
<div class="td-inner">
<input type="text" class="input-text xml" title="발송 이력" name = "srchSndngHist">
<div class="input-container">
<input type="text" id="srchStrtOrdrCntDt" class="datepicker" title="시작 날짜 선택" name = "srchStrtSndngHistDt"
autocomplete="off" >
<span class="tilde">~</span>
<input type="text" id="srchEndOrdrCntDt" class="datepicker" title="종료 날짜 선택" name = "srchEndSndngHistDt"
autocomplete="off" >
</div>
<div class="dateRange-btnContainer" id = "searchDateRange">
<button class="dateRange-btn" id = "today"
onclick = "fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt','1D')">어제</button>
<button class="dateRange-btn" id = "today"
onclick = "fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt','0')">오늘</button>
<button class="dateRange-btn" id = "threeDays"
onclick = "fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt','3D')">3일간</button>
<button class="dateRange-btn" id = "sevenDays"
onclick = "fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt','7D')">일주일</button>
<button class="dateRange-btn" id = "oneMonth"
onclick = "fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt','1M')">1개월</button>
<button class="dateRange-btn" id = "threeMonth"
onclick = "fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt','3M')">3개월</button>
<button class="dateRange-btn" id = "threeMonth"
onclick = "fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt','6M')">6개월</button>
<button class="dateRange-btn" id = "threeMonth"
onclick = "fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt','1Y')">1년</button>
<button class="dateRange-btn selected"
onclick = "fn_reset_date('srchStrtOrdrCntDt','srchEndOrdrCntDt')()">전체</button>
</div>
<div class="b-checkbox-container inner">
<label class="b-checkbox checkbox check checkBtn">
<input type="checkbox" id="sndngHistA" name="sndngHist" value = "" >
<span class="check"></span>
<span class="control-label mr-5">전체</span>
(&nbsp;&nbsp;<input type="checkbox" id="sndngHist" name="sndngHist" value = "Y" >
<span class="check"></span>
<span class="control-label mr-5">응답자</span>
<input type="checkbox" id="sndngHist" name="sndngHist" value = "N">
<span class="check"></span>
<span class="control-label mr-5">비응답자</span>)
</label>
</div>
</div>
</td>
</tr>
</table>
</div>
<div class="form-control-container">
<div class="left"></div>
<div class="center">
<button type = "button" class="btn outline" id = "btnResetForm">초기화</button>
<button type = "button" class="btn primary" onclick = "fn_select_list(1)">검색</button>
</div>
</div>
</section>
<div id = "pageDiv">
</div>
</form>
</div>
</body>
</html>

View File

@@ -0,0 +1,358 @@
<%@ 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="ui" uri="http://www.winbit.kr/ctl/ui" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ page import="java.util.Date" %>
<%--
Class Name : MbrListInqireR.jsp
Description : 회원 조회 목록
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-01-15 김혜인 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<script>
$(document).ready(function(){
/******************************
* 버튼 이벤트
*******************************/
/*
* 리셀러 해제 (회원 체크)
*/
$(".resellDel").on("click",function(e){
let noAppenArray = [];
const appnDvCd = e.target.id;
// 해제할 회원수를 체크한다
if($('input[name=mbrInnb]:checked').length > 0){
$('input[name=mbrInnb]:checked').each(function() { 
//해제할 회원 중 리셀러 지정안된 회원이 포함되어 있으면 noAppenArray에 추가한다        
if($(this).siblings("input[name='appnDvCd']").val() == '02'){
noAppenArray.push(this.value);
}
});
//지정안된 회원 수 존재 시 안내 문구를 호출한다.
if(noAppenArray.length > 0){
alert("리셀러 지정이 안된 회원이 포함되어 있습니다.");
}else{
//지정 사유 작성 모달
$("#resnTextArea").val('');
$("#resnModal").modal("show");
$("#resnTextArea").prop("name","appnCn");
$("#resnDv").val(appnDvCd);
}
}else{
//해제할 회원이 체크되지 않으면 안내 문구를 호출한다
alert("해제할 리셀러를 지정해주세요.");
}
});
/*
* 리셀러 등록 (회원 체크)
*/
$(".resellReg").on("click",function(e){
let appenArray = [];
const appnDvCd = e.target.id;
// 등록할 회원수를 체크한다
if($('input[name=mbrInnb]:checked').length > 0){
$('input[name=mbrInnb]:checked').each(function() { 
//등록할 회원 중 리셀러 회원이 포함되어 있으면 appenArray에 추가한다        
if($(this).siblings("input[name='appnDvCd']").val() == '01'){
appenArray.push(this.value);
}
});
//지정안된 회원 수 존재 시 안내 문구를 호출한다.
if(appenArray.length > 0){
alert("리셀러 회원이 포함되어 있습니다.");
}else{
//지정 사유 작성 모달
$("#resnTextArea").val('');
$("#resnModal").modal('show');
$("#resnTextArea").prop("name","appnCn");
$("#resnDv").val(appnDvCd);
}
}else{
//등록할 회원이 체크되지 않으면 안내 문구를 호출한다
alert("리셀러를 지정해주세요.");
}
});
/*
* 회원 탈퇴
*/
$("#withdrawalBtn").on("click",function(e){
const withdrawalId = e.target.id;
// 탈퇴할 회원수를 체크한다
if($('input[name=mbrInnb]:checked').length > 0){
//지정 사유 작성 모달
$("#resnTextArea").val('');
$("#resnModal").modal('show');
$("#resnTextArea").prop("name","secsnResn");
$("#resnDv").val(withdrawalId);
}else{
//해제할 회원이 체크되지 않으면 안내 문구를 호출한다
alert("탈퇴할 회원을 지정해주세요.");
}
});
//리셀러 해제, 등록, 탈퇴 회원
$("#registBtn").on("click",function(){
//체크된 회원
let mbrArr = [];
//사유구분
const resnDv = $("#resnDv").val();
//사유 내용
const resnCn = $("#resnTextArea").val();
$('input[name=mbrInnb]:checked').each(function() { 
mbrArr.push(this.value);
});
if(resnDv == '02' || resnDv == '01' ){
fn_resel_upt(mbrArr,resnDv,resnCn);
}else if(resnDv == 'withdrawalBtn'){
fn_withdrawal_reg(mbrArr,resnCn);
}
});
//이메일 발송
$("#emailSndngBtn").on("click",function(){
//체크 혹은 전체mbrInnb 갖고와야함
/* $.ajax({
type: "post",
url : "<c:url value='/mngr/Sndng/selectEmailSndngPopupForm'/>",
data : fn_get_mbrInnb() ,
success:function(html) {
$("#modalDiv").show();
}
}); */
});
//sms 발송
$("#smsSndngBtn").on("click",function(){
//체크 혹은 전체mbrInnb 갖고와야함
/* $.ajax({
type: "post",
url : "<c:url value='/mngr/Sndng/selectMssageSndngPopupForm'/>",
data : fn_get_mbrInnb() ,
success:function(html) {
$("#modalDiv").show();
}
}); */
});
// 테이블 체크박스 전체 선택
var tableCheckAll = $(".table .check-all > input[type=checkbox]");
tableCheckAll.click(function () {
let colIndex = $(this).closest("th").index();
let checkbox = $(this)
.closest(".table")
.find("tbody tr td:nth-child(" + (colIndex + 1) + ") input[type=checkbox]");
checkAllCheckBoxes($(this), checkbox);
});
// 목록에서 체크 해제시 전체 체크박스 해제 및 목록 항목 전체 체크 시 전체체크 버튼 true
let chk = $("#mbrList .is-medium >input[type=checkbox]");
chk.click(function(){
$('.table .check-all > input[type=checkbox]').prop('checked', false);
let length = $("tbody .is-medium").length;
let chcedLen = $("tbody .is-medium >input[type=checkbox]:checked").length;
if(length == chcedLen){
$('#mbrList .check-all > input[type=checkbox]').prop('checked', true);
}
});
});
</script>
<section class="content-section">
<div class="form-control-container">
<div class="left">
<div class="search-number">
<span class="search-number__text">총 <strong><c:out value="${ resultListMap.paginationInfo.totalRecordCount }"/></strong>건</span>
</div>
</div>
<div class="center">
</div>
<div class="right">
<div class="select-box">
<select title="정렬순" name = "sortDv" id = "sortDv" onchange = "fn_select_list(1);return false;">
<option value="recent" <c:if test="${mbrSrchVO.sortDv eq 'recent'}">selected="selected"</c:if>>최근 가입순</option>
<option value="mlgDesc" <c:if test="${mbrSrchVO.sortDv eq 'mlgDesc'}">selected="selected"</c:if>>마일리지 많은순</option>
<option value="mlgAsc" <c:if test="${mbrSrchVO.sortDv eq 'mlgAsc'}">selected="selected"</c:if>>마일리지 적은순</option>
<option value="perchDesc" <c:if test="${mbrSrchVO.sortDv eq 'perchDesc'}">selected="selected"</c:if>>구매금액 많은순</option>
<option value="perchAsc" <c:if test="${mbrSrchVO.sortDv eq 'perchAsc'}">selected="selected"</c:if>>구매금액 적은순</option>
<option value="ordrCntDesc" <c:if test="${mbrSrchVO.sortDv eq 'ordrCntDesc'}">selected="selected"</c:if>>주문건수 많은순</option>
<option value="ordrCntAsc" <c:if test="${mbrSrchVO.sortDv eq 'ordrCntAsc'}">selected="selected"</c:if>>주문건수 적은순</option>
<option value="rvwCntDesc" <c:if test="${mbrSrchVO.sortDv eq 'rvwCntDesc'}">selected="selected"</c:if>>리뷰수 많은순</option>
<option value="rvwCntAsc" <c:if test="${mbrSrchVO.sortDv eq 'rvwCntAsc'}">selected="selected"</c:if>>리뷰수 적은순</option>
<option value="vsitCntDesc" <c:if test="${mbrSrchVO.sortDv eq 'vsitCntDesc'}">selected="selected"</c:if>>방문수 많은순</option>
<option value="vsitCntAsc" <c:if test="${mbrSrchVO.sortDv eq 'vsitCntAsc'}">selected="selected"</c:if>>방문수 적은순</option>
</select>
</div>
<!-- 코드 사용 -->
<div class="select-box">
<select title="페이지당 출력될 목록건수" name = "pageUnit" id ="pageUnit" onchange = "fn_select_list(1);return false;">
<c:forEach items="${ resultListMap.paginationInfo.pageUnitArr }" var="pageUnit" varStatus="pageUnitStatus">
<option value="<c:out value="${ pageUnit }"/>" <c:if test="${ resultListMap.paginationInfo.recordCountPerPage eq pageUnit}">selected="selected"</c:if>><c:out value="${ pageUnit }"/>개씩</option>
</c:forEach>
</select>
</div>
</div>
</div>
<hr class="horizontal-line">
<div class="form-control-container">
<div class="left">
<c:forEach var = "appnDv" items = "${resultListMap.resultMap.appen}">
<button type = "button" <c:if test = "${appnDv.cd eq '01'}">class="btn sm dark resellReg"</c:if>
<c:if test = "${appnDv.cd eq '02'}">class="btn outline sm resellDel" </c:if>
value = "<c:out value = "${appnDv.cdNm}"/>" id = "<c:out value = "${appnDv.cd}"/>">
<c:out value = "${appnDv.cdNm}"/>
</button>
</c:forEach>
</div>
<div class="center">
</div>
<div class="right">
<button type = "button" class="btn outline sm" id="emailSndngBtn"onclick = "alert('TODO :: 이메일 발송 팝업 호출')">
이메일 발송
</button>
<button type = "button" class="btn outline sm" id ="smsSndngBtn" onclick = "alert('TODO :: sms 발송 팝업 호출')">
SMS 발송
</button>
</div>
</div>
<hr class="spacing">
<div class="table-wrapper">
<table class="table vertical" id = "mbrList">
<caption>회원 목록</caption>
<!-- 각 열 width 설정 -->
<colgroup>
<col style="width: 4%;">
<col style="width: 6%;">
<col style="width: 10%;">
<col style="width: 8%;">
<col style="width: auto">
<col style="width: auto%;">
<col style="width: 6%;">
<col style="width: 6%;">
<col style="width: 10%;">
<col style="width: 10%">
</colgroup>
<thead>
<tr>
<th>
<label class="b-checkbox checkbox is-medium check-all" >
<input type="checkbox" value="" id = "chkA">
<span class="check"></span>
</label>
</th>
<th>번호</th>
<th>아이디</th>
<th>이름</th>
<th>이메일</th>
<th>핸드폰번호</th>
<th>등급</th>
<th>마일리지</th>
<th>가입일</th>
<th>최종방문 일시</th>
</tr>
</thead>
<tbody>
<c:choose>
<c:when test = "${not empty resultListMap.resultMap.resultList}">
<c:forEach var = "resultList" items="${resultListMap.resultMap.resultList}">
<tr>
<td>
<label class="b-checkbox checkbox is-medium">
<input type="checkbox" value="<c:out value='${resultList.mbrInnb}' />" name = "mbrInnb">
<span class="check"></span>
<input type="hidden" value ="<c:out value='${resultList.appnDvCd}' />" name = "appnDvCd">
</label>
</td>
<td><c:out value="${resultListMap.paginationInfo.totalRecordCount - resultList.rnum+1 }" /></td>
<td>
<c:if test = "${resultList.appnDvCd eq '01'}">
<span class="black-list">
R<span class="visually-hidden">블랙리스트</span>
</span>
</c:if>
<c:out value="${resultList.mbrid}" />
</td>
<td>
<c:out value="${resultList.mbrNm}" />
<button type = "button" class="mini-info-btn" data-info="crm${resultList.mbrInnb}" id="crm${resultList.mbrInnb}"
onclick = "fn_select_crm_miniInfo(<c:out value='${resultList.mbrInnb}'/>)" >?</button>
<div id = "miniInfo"></div>
</td>
<!-- 이메일 발송 url -->
<td>
<a class="under-line" onclick = "alert('TODO :: 이메일 발송 팝업 호출')">
<c:out value="${resultList.email}" />
</a>
</td>
<!-- sms 발송 url -->
<td>
<a class="under-line" onclick = "alert('TODO :: sms 발송 팝업 호출')">
<c:out value="${resultList.mbtlnb}" />
</a>
</td>
<td><c:out value="${resultList.gradNm}" /></td>
<td>
<fmt:formatNumber var="mbrMil" value="${resultList.mbrMil}" type="number"/>
<button type = "button" class="under-line" onclick = "fn_move_mlgManagePopup('<c:out value='${resultList.mbrInnb}' />')">
<c:choose>
<c:when test = "${empty mbrMil || mbrMil == '0' }">
0
</c:when>
<c:otherwise>
<c:out value="${mbrMil}" />
</c:otherwise>
</c:choose>
</button>
</td>
<td><c:out value="${resultList.subscrbDt}" /></td>
<fmt:parseDate var="lastLoginDt" value="${resultList.lastLoginDt}" pattern="yyyy-MM-dd'T'HH:mm:ss" />
<fmt:formatDate value="${lastLoginDt}" pattern="yyyy-MM-dd" var="lastLoginDt" />
<td><c:out value="${lastLoginDt}" /></td>
</tr>
</c:forEach>
</c:when>
<c:otherwise>
<tr>
<td colspan="100%"><spring:message code="common.nodata"/></td>
</tr>
</c:otherwise>
</c:choose>
</table>
<div id = "modalDv">
</div>
<hr class="spacing">
<hr class="spacing">
<div class="form-control-container">
<div class="left"></div>
<div class="center">
</div>
<div class="right">
<button type = "button" class="btn dark no-min" id = "withdrawalBtn">탈퇴</button>
</div>
</div>
</div>
</section>
<div class="pagination__container mt-30">
<ui:pagination paginationInfo="${resultListMap.paginationInfo}" type="image" jsFunction="fn_select_list" />
</div>
<!-- 리셀러 해제, 등록, 탈퇴 사유 모달 -->
<div id="resnModal" class="modal" style="max-width: 500px;">
<div class="modal-header">
<h4>사유 작성</h4>
</div>
<div class="modal-content">
<div class="table-wrapper">
<textarea id = "resnTextArea"class="textarea" title="리셀러 해제, 등록, 탈퇴 사유" rows="10"></textarea>
</div>
<input type = "hidden" id = "resnDv" disabled>
</div>
<div class="modal-footer">
<a href="#" rel="modal:close" class="btn outline"><spring:message code="button.cancel"/></a>
<button class="btn primary outline" id = "registBtn" ><spring:message code="button.insert"/></button>
</div>
</div>
</html>

View File

@@ -0,0 +1,714 @@
<%@ 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="ui" uri="http://www.winbit.kr/ctl/ui" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ page import="java.util.Date" %>
<%--
Class Name : MbrListInqireRForm.jsp
Description :회원 목록 검색 폼
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-01-15 김혜인 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>회원 목록 조회</title>
<%-- 공통 include --%>
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
<script type="text/javascript">
$(document).ready(function(){
//상세 검색 hide
var searchHide = $(".search-hide");
searchHide.hide();
fn_init();
//페이징 정보 있는 회원 목록 조회
let pageIndex = '<c:out value="${ resultSrchMap.mbrSrchvo.pageIndex }"/>';
let pageUnit = '<c:out value="${ resultSrchMap.mbrSrchvo.pageUnit }"/>';
fn_select_list(pageIndex, pageUnit);
fn_set_date('sbscrbStrtDt','sbscrbEndDt','sbscrbEndDt');
fn_set_date('loginStrtDt','loginEndDt','loginEndDt');
fn_set_date('srchStrtOrdrAmtDt','srchEndOrdrAmtDt','srchEndOrdrAmtDt');
fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt');
//검색어 구분 change 이벤트
$("#srchKyword").on("input", function () {
let dvVal = $("#srchKywordDv").val();
let input = $(this).val();
if(dvVal == 'hp'){
$(this).val(input.replace(/[^0-9]/g, ""));
}
});
//마케팅 수신 동의 동의 버튼 외 버튼에서 브랜드 전체 버튼 클릭 시 동의 버튼으로 바꿈
$(".checkBtn").on("click",function(){
$("#marktRecptnAgreAtY").prop("checked",true);
});
});
/*******************************************
검색 조건 이벤트 설정
********************************************/
/*
* 검색조건 > 날짜 전체 클릭 시 날짜 설정 초기화
*/
const fn_reset_date = function(strtDate,endDate){
$('#'+strtDate).datepicker().datepicker("setDate",'');
$('#'+endDate).datepicker().datepicker("setDate",'');
}
/*
* 검색조건 > 상세 검색 버튼 클릭 시 disable 처리 미완
*/
const fn_disable_srchInput = function(){
$(".search-hide > input").prop("disbled",true);
}
/*
* 검색조건 > 마케팅 수신 동의 체크시 브랜드 전체 체크
*/
function fn_change_event(_target) {
let readId = $('[name=' + _target + ']:checked').attr('id');
if (readId == 'marktRecptnAgreAtY') {
$('.checkBtn').prop('checked', true);
}else if(readId == 'marktRecptnAgreAtA' || readId == 'marktRecptnAgreAtN'){
$('.checkBtn').prop('checked', false);
}
};
/*
* 검색조건 >한 개 브랜드라도 체크 해제시 전체체크 체크 해제
*/
function fn_change_prop_uncheck(_target) {
let readId = $('[name=' + _target + ']:checked').attr('id');
if(!readId.checked){
$('#checkAll').prop('checked', false);
}
};
/*
* 검색조건 >한 개 브랜드라도 체크 해제시 전체체크 체크 해제
*/
function fn_change_prop_unclick(_target){
let readId = $('[name=' + _target + ']:checked').attr('id');
// 라디오 버튼 전체 혹은 거부에 버튼 클릭 후 브랜드 선택 시 동의로 버튼 변경
if(readId != 'marktRecptnAgreAtY'){
$('#marktRecptnAgreAtY').prop('checked', true);
}
}
function fn_init () {
/*
* 검색조건 > 초기화 버튼 클릭 이벤트
*/
$('#btnResetForm').on('click', function(){
fn_reset_form('mbrSrchSection');
$('#srchKywordDv option:eq(0)').prop('selected', true);
$('#srchKywordDv').niceSelect('update');
$('#srchGradInnb option:eq(0)').prop('selected', true);
$('#srchGradInnb').niceSelect('update');
$('#vstRvwDv option:eq(0)').prop('selected', true);
$('#vstRvwDv').niceSelect('update');
$('input[name="srchStrtOrdrAmt"]').val('0');
$('input[name="srchEndOrdrAmt"]').val('0');
$('input[name="srchStrtOrdrCnt"]').val('0');
$('input[name="srchEndOrdrCnt"]').val('0');
$('input[name="srchStrtMlg"]').val('0');
$('input[name="srchEndMlg"]').val('0');
$('input[name="srchStrtVstRvwCnt"]').val('0');
$('input[name="srchEndVstRvwCnt"]').val('0');
$('input[name="srchStrtBrthDe"]').val('0');
$('input[name="srchEndBrthDe"]').val('0');
});
}
/***********************************************
* 리셀러 해제 , 등록 함수
***********************************************/
const fn_resel_upt = function(mbrArray,appnDvCd,resnCn){
let url = "";
let confirmMessage = "";
//해제, 등록 url 분기
if(appnDvCd == 'CGN03802'){
url = "<c:url value='/mngr/mbr/updateMbrRslrRelis'/>"
confirmMessage = "리셀러 해제를"
}else if(appnDvCd == 'CGN03801'){
url = "<c:url value='/mngr/mbr/updateMbrRslrMvmn'/>"
confirmMessage = "리셀러 지정을"
}
if(confirm(confirmMessage+' <spring:message code="confirm.common.insert"/>')){
$.ajax({
type: "post",
url : url,
data : {
mbrArr : mbrArray
,appnDvCd : appnDvCd
,appnCn : resnCn
},
success:function(resultHtml) {
alert("<spring:message code="success.common.insert"/>");
$("#resnModal > a").each(function() {
if(this.href.indexOf('#close-modal')){
$(this).click();
}
});
$("#resnModal").remove();
fn_select_list($("#pageIndex").val(),$("#pageUnit").val());
}
});
}
}
/***********************************************
* 회원 탈퇴 함수
***********************************************/
const fn_withdrawal_reg = function(mbrArr,resnCn){
if(confirm('회원 탈퇴를 <spring:message code="confirm.common.insert"/>')){
$.ajax({
type: "post",
url : "<c:url value='/mngr/mbr/updateMbrSecsnUpdt'/>",
data : {
mbrArr : mbrArr
,secsnResn : resnCn
},
success:function(resultHtml) {
alert("<spring:message code="success.common.insert"/>");
$("#resnModal > a").each(function() {
if(this.href.indexOf('#close-modal')){
$(this).click();
}
});
$("#resnModal").remove();
fn_select_list(1);
}
});
}
}
/* ********************************************************
* 목록 조회 function
******************************************************** */
//회원 목록 조회(ajax)
const fn_select_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;
}
}
$.ajax({
type: "post",
url : "<c:url value='/mngr/mbr/selectMbrListInqire'/>",
data : dataStr,
success:function(resultHtml) {
$('#pageDiv').html(resultHtml);
$('#pageUnit').niceSelect();
$('#sortDv').niceSelect();
}
});
}
//검색 엔터 클릭시 목록 조회
document.addEventListener('keydown', function(event) {
if (event.keyCode === 13) {
event.preventDefault();
//모달창 visible 여부로 몪록 조회 혹은 사유 내용 등록 이벤트 처리
if(!$("#resnModal").is(":visible")){
fn_select_list(1);
}else{
$("#registBtn").click();
}
}
});
//마일리지 모달
const fn_move_mlgManagePopup = function(mbrInnb){
$.ajax({
type: "post",
url : "<c:url value='/mngr/mbr/selectMlgManagePopupForm'/>",
data : {mbrInnb:mbrInnb},
success:function(resultHtml) {
$('#MlgMabagePopup').remove();
$('#modalDiv').html(resultHtml);
$("#MlgMabagePopup").modal("show");
$("#mlgApplcCnDv").niceSelect();
$("#mlgApplcResn").niceSelect();
}
});
}
//마일리지 내역 목록 조회(ajax)
const fn_select_mlgList = function(pageIndex, pageUnit) {
let dataStr;
if(!pageIndex) {
$('#mlgPageIndex').val(1);
} else {
$('#mlgPageIndex').val(pageIndex);
}
if(!pageUnit) {
dataStr = $('#mlgListForm').serialize();
} else {
if($('#mlgPageIndex').length){
$('#mlgPageUnit').val(pageUnit);
dataStr = $('#mlgListForm').serialize();
} else {
dataStr = $('#mlgListForm').serialize()+'&pageUnit='+pageUnit;
}
}
$.ajax({
type: "post",
url : "<c:url value='/mngr/mbr/selectMlgManagePopup'/>",
data : dataStr,
success:function(resultHtml) {
$('#mlgDtlDiv').html(resultHtml);
$('#mlgPageUnit').niceSelect();
fn_set_niceSelect_datePicker("#mlgListForm");
}
});
}
/* 버튼 타입 button으로 일괄 적용
* ready함수에 선언
*/
const fn_apply_btnTy_button = () => {
let button = $(document).find('button');
button.attr("type","button");
}
</script>
</head>
<body>
<%-- 상단메뉴 공통화 적용 : 2023-11-30 / 박철민 추가 --%>
<%@ include file="/WEB-INF/views/comm/mngr/Header.jsp"%>
<main class="main">
<%-- 좌측메뉴 공통화 적용 : 2023-11-30 / 박철민 추가 --%>
<%@ include file="/WEB-INF/views/comm/mngr/Left.jsp"%>
<div class="content">
<div class="content__inner">
<button class="side-nav__fold"><span class="visually-hidden">좌측메뉴 펼치기/닫기</span></button>
<div class="page-title">
<h2 class="page-title__title">회원 조회</h2>
</div>
<form id = "listForm">
<section class="content-section" id = "mbrSrchSection">
<input type="hidden" id="pageIndex" name="pageIndex" value="${ resultSrchMap.boMbrSrchVO.pageIndex}"/>
<div class="table-wrapper">
<table class="table">
<caption>회원 검색</caption>
<colgroup>
<col style="width: 12%;">
<col>
</colgroup>
<tr>
<th>검색어</th>
<td>
<div class="td-inner">
<div class="select-box">
<select title="검색어 구분" name = "srchKywordDv" id = "srchKywordDv">
<option value="mbrNm">이름</option>
<option value="mbrId">아이디</option>
<option value="email">이메일</option>
<option value="hp">휴대폰번호("-"미포함)</option>
<option value="adres">주소</option>
</select>
</div>
<input class="input-text xl" type="text" title="검색 키워드" id = "srchKyword" name = "srchKyword" placeholder = "검색어를 입력해 주십시요.">
</div>
</td>
</tr>
<tr>
<th>가입일</th>
<td colspan="2">
<div class="td-inner" id = "g">
<div class="input-container">
<!-- 검색 조건 시작일 -->
<input type="text" name ="sbscrbStrtDt" id="sbscrbStrtDt" class="datepicker" title="시작 날짜 선택" autocomplete="off">
<span class="tilde">~</span>
<!-- 검색 조건 종료일 -->
<input type="text" name ="sbscrbEndDt" id="sbscrbEndDt" class="datepicker" title="종료 날짜 선택" autocomplete="off" pattern="yyyy-MM-dd"/>
</div>
<div class="dateRange-btnContainer">
<button class="dateRange-btn"
onclick = "fn_set_date('sbscrbStrtDt','sbscrbEndDt','sbscrbEndDt','1D')">어제</button>
<button class="dateRange-btn"
onclick = "fn_set_date('sbscrbStrtDt','sbscrbEndDt','sbscrbEndDt','0')">오늘</button>
<button class="dateRange-btn"
onclick = "fn_set_date('sbscrbStrtDt','sbscrbEndDt','sbscrbEndDt','3D')">3일간</button>
<button class="dateRange-btn"
onclick = "fn_set_date('sbscrbStrtDt','sbscrbEndDt','sbscrbEndDt','7D')">일주일</button>
<button class="dateRange-btn"
onclick = "fn_set_date('sbscrbStrtDt','sbscrbEndDt','sbscrbEndDt','1M')">1개월</button>
<button class="dateRange-btn"
onclick = "fn_set_date('sbscrbStrtDt','sbscrbEndDt','sbscrbEndDt','3M')">3개월</button>
<button class="dateRange-btn"
onclick = "fn_set_date('sbscrbStrtDt','sbscrbEndDt','sbscrbEndDt','6M')">6개월</button>
<button class="dateRange-btn"
onclick = "fn_set_date('sbscrbStrtDt','sbscrbEndDt','sbscrbEndDt','1Y')">1년</button>
<button class="dateRange-btn"
onclick = "fn_reset_date('sbscrbStrtDt','sbscrbEndDt')">전체</button>
</div>
</div>
</td>
</tr>
<tr>
<th>최종방문일</th>
<td colspan="2">
<div class="td-inner">
<div class="input-container">
<!-- 검색 조건 시작일 -->
<input type="text" name ="loginStrtDt" id="loginStrtDt" class="datepicker"
title="시작 날짜 선택" autocomplete="off">
<span class="tilde">~</span>
<!-- 검색 조건 종료일 -->
<input type="text" name ="loginEndDt" id="loginEndDt" class="datepicker"
title="종료 날짜 선택" autocomplete="off" pattern="yyyy-MM-dd"/>
</div>
<div class="dateRange-btnContainer">
<button class="dateRange-btn"
onclick = "fn_set_date('loginStrtDt','loginEndDt','loginEndDt','1D')">어제</button>
<button class="dateRange-btn"
onclick = "fn_set_date('loginStrtDt','loginEndDt','loginEndDt','0')">오늘</button>
<button class="dateRange-btn"
onclick = "fn_set_date('loginStrtDt','loginEndDt','loginEndDt','3D')">3일간</button>
<button class="dateRange-btn"
onclick = "fn_set_date('loginStrtDt','loginEndDt','loginEndDt','7D')">일주일</button>
<button class="dateRange-btn"
onclick = "fn_set_date('loginStrtDt','loginEndDt','loginEndDt','1M')">1개월</button>
<button class="dateRange-btn"
onclick = "fn_set_date('loginStrtDt','loginEndDt','loginEndDt','3M')">3개월</button>
<button class="dateRange-btn"
onclick = "fn_set_date('loginStrtDt','loginEndDt','loginEndDt','3M')">6개월</button>
<button class="dateRange-btn"
onclick = "fn_set_date('loginStrtDt','loginEndDt','loginEndDt','1Y')">1년</button>
<button class="dateRange-btn"
onclick = "fn_reset_date('loginStrtDt','loginEndDt')">전체</button>
</div>
</div>
</td>
</tr>
<tr>
<th>등급</th>
<td>
<div class="td-inner">
<div class="select-box">
<select title="등급검색" name = "srchGradInnb" id = "srchGradInnb">
<option value = "">선택</option>
<c:forEach var="gradNm" items = "${resultSrchMap.code.gradNm}" >
<option value="${gradNm.mbrGradInnb}"><c:out value = "${gradNm.gradNm}"/></option>
</c:forEach>
</select>
</div>
</div>
</td>
</tr>
<tr class="search-hide">
<th>주문 금액</th>
<td>
<div class="td-inner">
<div class="input-container">
<input type="text" class="input-text sm right number" value="0"
title="검색 시작 주문 금액" name = "srchStrtOrdrAmt" id = 'srchStrtOrdrAmt'>
<span class="input-unit-text">원</span>
<span class="tilde">~</span>
<input type="text" class="input-text sm right number" value="0" onchange = "fn_check_fromTo('#srchStrtOrdrAmt','#srchEndOrdrAmt','number')"
title="검색 끝 주문 금액" name = "srchEndOrdrAmt" id = 'srchEndOrdrAmt'>
<span class="input-unit-text">원</span>
</div>
<div class="input-container">
<input type="text" id="srchStrtOrdrAmtDt" class="datepicker" title="시작 날짜 선택" name = "srchStrtOrdrAmtDt"
autocomplete="off" >
<span class="tilde">~</span>
<input type="text" id="srchEndOrdrAmtDt" class="datepicker" title="종료 날짜 선택" name = "srchEndOrdrAmtDt"
autocomplete="off" pattern="yyyy-MM-dd"/>
</div>
<div class="dateRange-btnContainer" id = "searchDateRange">
<button class="dateRange-btn" id = "today"
onclick = "fn_set_date('srchStrtOrdrAmtDt','srchEndOrdrAmtDt','srchEndOrdrAmtDt','1D')">어제</button>
<button class="dateRange-btn" id = "today"
onclick = "fn_set_date('srchStrtOrdrAmtDt','srchEndOrdrAmtDt','srchEndOrdrAmtDt','0')">오늘</button>
<button class="dateRange-btn" id = "threeDays"
onclick = "fn_set_date('srchStrtOrdrAmtDt','srchEndOrdrAmtDt','srchEndOrdrAmtDt','3D')">3일간</button>
<button class="dateRange-btn" id = "sevenDays"
onclick = "fn_set_date('srchStrtOrdrAmtDt','srchEndOrdrAmtDt','srchEndOrdrAmtDt','7D')">일주일</button>
<button class="dateRange-btn" id = "oneMonth"
onclick = "fn_set_date('srchStrtOrdrAmtDt','srchEndOrdrAmtDt','srchEndOrdrAmtDt','1M')">1개월</button>
<button class="dateRange-btn" id = "threeMonth"
onclick = "fn_set_date('srchStrtOrdrAmtDt','srchEndOrdrAmtDt','srchEndOrdrAmtDt','3M')">3개월</button>
<button class="dateRange-btn" id = "threeMonth"
onclick = "fn_set_date('srchStrtOrdrAmtDt','srchEndOrdrAmtDt','srchEndOrdrAmtDt','6M')">6개월</button>
<button class="dateRange-btn" id = "threeMonth"
onclick = "fn_set_date('srchStrtOrdrAmtDt','srchEndOrdrAmtDt','srchEndOrdrAmtDt','1Y')">1년</button>
<button class="dateRange-btn"
onclick = "fn_reset_date('srchStrtOrdrAmtDt','srchEndOrdrAmtDt')()">전체</button>
</div>
</div>
</td>
</tr>
<tr class="search-hide">
<th>주문 건수</th>
<td>
<div class="td-inner">
<div class="input-container">
<input type="text" class="input-text sm right number" value="0"
title="검색 시작 주문 건수" name = "srchStrtOrdrCnt" id = "srchStrtOrdrCnt">
<span class="input-unit-text">건</span>
<span class="tilde">~</span>
<input type="text" class="input-text sm right number" value="0" onchange = "fn_check_fromTo('#srchStrtOrdrCnt','#srchEndOrdrCnt','number')"
title="검색 끝 주문 건수" name = "srchEndOrdrCnt" id = "srchEndOrdrCnt">
<span class="input-unit-text">건</span>
</div>
<div class="input-container">
<input type="text" id="srchStrtOrdrCntDt" class="datepicker" title="시작 날짜 선택" name = "srchStrtOrdrCntDt"
autocomplete="off" >
<span class="tilde">~</span>
<input type="text" id="srchEndOrdrCntDt" class="datepicker" title="종료 날짜 선택" name = "srchEndOrdrCntDt"
autocomplete="off" >
</div>
<div class="dateRange-btnContainer" id = "searchDateRange">
<button class="dateRange-btn" id = "today"
onclick = "fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt','1D')">어제</button>
<button class="dateRange-btn" id = "today"
onclick = "fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt','0')">오늘</button>
<button class="dateRange-btn" id = "threeDays"
onclick = "fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt','3D')">3일간</button>
<button class="dateRange-btn" id = "sevenDays"
onclick = "fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt','7D')">일주일</button>
<button class="dateRange-btn" id = "oneMonth"
onclick = "fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt','1M')">1개월</button>
<button class="dateRange-btn" id = "threeMonth"
onclick = "fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt','3M')">3개월</button>
<button class="dateRange-btn" id = "threeMonth"
onclick = "fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt','6M')">6개월</button>
<button class="dateRange-btn" id = "threeMonth"
onclick = "fn_set_date('srchStrtOrdrCntDt','srchEndOrdrCntDt','srchEndOrdrCntDt','1Y')">1년</button>
<button class="dateRange-btn"
onclick = "fn_reset_date('srchStrtOrdrCntDt','srchEndOrdrCntDt')()">전체</button>
</div>
</div>
</td>
</tr>
<tr class="search-hide">
<th>마일리지</th>
<td>
<div class="td-inner">
<div class="input-container">
<input type="text" class="input-text sm right number" value="0"
title="검색 시작 마일리지" name = "srchStrtMlg" id = "srchStrtMlg">
<span class="input-unit-text">마일리지</span>
<span class="tilde">~</span>
<input type="text" class="input-text sm right number" value="0" onchange = "fn_check_fromTo('#srchStrtMlg','#srchEndMlg','number')"
title="검색 끝 마일리지" name = "srchEndMlg" id = "srchEndMlg">
<span class="input-unit-text">마일리지</span>
</div>
</div>
</td>
</tr>
<tr class="search-hide">
<th>방문 / 리뷰 수</th>
<td>
<div class="td-inner">
<div class="select-box">
<select title="방문수, 리뷰 수 검색 구분" name = "vstRvwDv" id = "vstRvwDv">
<option value="vsitCnt">방문수</option>
<option value="rvwCnt">리뷰수</option>
</select>
</div>
<div class="input-container">
<input type="text" class="input-text sm right number" value="0"
title="검색 시작 방문수, 리뷰 수" name = "srchStrtVstRvwCnt" id = "srchStrtVstRvwCnt">
<span class="input-unit-text">회</span>
<span class="tilde">~</span>
<input type="text" class="input-text sm right number" value="0" onchange = "fn_check_fromTo('#srchStrtVstRvwCnt','#srchEndVstRvwCnt','number')"
title="검색 끝 방문수, 리뷰 수" name = "srchEndVstRvwCnt" id = "srchEndVstRvwCnt">
<span class="input-unit-text">회</span>
</div>
</div>
</td>
</tr>
<tr class="search-hide">
<th rowspan = "2">회원가입 환경</th>
<td rowspan>
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" id="srchPlatformAll" value = "" name="srchPlatform" checked>
<label for="srchPlatformAll">전체</label>
</div>
<c:forEach var = "platform" items = "${resultSrchMap.code.platform}">
<div class="custom-radio">
<input type="radio" id="${platform.cd}" name="srchPlatform" value = "${platform.cd}">
<label for="${platform.cd}">${platform.cdNm}</label>
</div>
</c:forEach>
</div>
</div>
</td>
</tr>
<tr class="search-hide">
<td>
<div class="td-inner">
<div class="custom-radio-container">
<c:forEach var = "brand" items = "${resultSrchMap.code.brand}">
<div class="custom-radio">
<input type="radio" id="platform${brand.cd}" name="srchPlatform" value = "${brand.cd}">
<label for="platform${brand.cd}">${brand.cdNm}</label>
</div>
</c:forEach>
</div>
</div>
</td>
</tr>
<tr class="search-hide">
<th>회원가입 방법</th>
<td>
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" id="srchruteA" name="srchrute" value = "" checked>
<label for="srchruteA">전체</label>
</div>
<c:forEach var = "rute" items = "${resultSrchMap.code.rute}">
<div class="custom-radio">
<input type="radio" id="${rute.cd}" name="srchrute" value = "${rute.cd}">
<label for="${rute.cd}">${rute.cdNm}</label>
</div>
</c:forEach>
</div>
</div>
</td>
</tr>
<tr>
<th>마케팅 수신 동의</th>
<td>
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" id="marktRecptnAgreAtA" name = "srchMarktRecptnAgreAt" value = "" onclick = "fn_change_event('srchMarktRecptnAgreAt')" checked>
<label for="marktRecptnAgreAtA">전체</label>
</div>
<div class="custom-radio">
<input type="radio" id="marktRecptnAgreAtY" value = "Y" name="srchMarktRecptnAgreAt" onclick = "fn_change_event('srchMarktRecptnAgreAt')">
<label for="marktRecptnAgreAtY">동의</label>
</div>
<span class="parentheses">&#40;</span>
<div class="b-checkbox-container inner">
<label class="b-checkbox checkbox check-all">
<input type="checkbox" value="" class = "checkBtn" id = "checkAll">
<span class="check"></span>
<span class="control-label">전체</span>
</label>
<c:forEach var = "brand" items = "${resultSrchMap.code.brand}">
<label class="b-checkbox checkbox check checkBtn">
<input type="checkbox" id="markt${brand.cd}" name="srchBrand" value = "${brand.cd}" class = "checkBtn" onclick = "fn_change_prop_uncheck('srchBrand');fn_change_prop_unclick('srchMarktRecptnAgreAt')">
<span class="check"></span>
<span class="control-label">${brand.cdNm}</span>
</label>
</c:forEach>
</div>
<span class="parentheses">&#41;</span>
<div class="custom-radio">
<input type="radio" id="marktRecptnAgreAtN" value = "N" name="srchMarktRecptnAgreAt" onclick = "fn_change_event('srchMarktRecptnAgreAt')" >
<label for="marktRecptnAgreAtN">거부</label>
</div>
</div>
</div>
</td>
</tr>
<tr class="search-hide">
<th>성별</th>
<td>
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" id="sexDstnA" name="srchSexDstn" value = "" checked>
<label for="sexDstnA">전체</label>
</div>
<c:forEach var = "sexDstn" items = "${resultSrchMap.code.sexDstn}">
<div class="custom-radio">
<input type="radio" id="sex${sexDstn.cd}" value = "${sexDstn.cd}" name="srchSexDstn">
<label for="sex${sexDstn.cd}"><c:out value = "${sexDstn.cdNm}"/></label>
</div>
</c:forEach>
<div class="custom-radio">
<input type="radio" id="sexDstnN" value = "none" name="srchSexDstn">
<label for="sexDstnN">성별없음</label>
</div>
</div>
</div>
</td>
</tr>
<tr class="search-hide">
<th>나이</th>
<td>
<div class="td-inner">
<div class="input-container">
<span class="input-unit-text left">만</span>
<input type="text" class="input-text xsm right number" value="0"
title="나이 검색 시작" name = "srchStrtBrthDe" id = "srchStrtBrthDe">
<span class="input-unit-text">세</span>
<span class="tilde">~</span>
<input type="text" class="input-text xsm right number" value="0" onchange = "fn_check_fromTo('#srchStrtBrthDe','#srchEndBrthDe','number')"
title="나이 검색 종료" name = "srchEndBrthDe" id = "srchEndBrthDe">
<span class="input-unit-text">세</span>
</div>
</div>
</td>
</tr>
<tr>
<th>리셀러 여부</th>
<td>
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" id="appenA" name="srchAppen" value = "" checked>
<label for="appenA">전체</label>
</div>
<c:forEach var = "appen" items = "${resultSrchMap.code.appen}">
<div class="custom-radio">
<input type="radio" id="${appen.cd}" name="srchAppen" value = "${appen.cd}">
<label for="${appen.cd}">${appen.cdNm}</label>
</div>
</c:forEach>
</div>
</div>
</td>
</tr>
</table>
</div>
<div class="form-control-container">
<div class="left"></div>
<div class="center">
<button type = "button" class="btn outline" id = "btnResetForm">초기화</button>
<button type = "button" class="btn primary" onclick = "fn_select_list(1)">검색</button>
</div>
<div class="right">
<button type = "button" class="btn outline search-detail" onclick = "fn_disable_srchInput()">상세검색</button>
</div>
</div>
</section>
<div id = "pageDiv">
</div>
</form>
<button class="scroll-to-top"><span class="visually-hidden">위로가기</span></button>
</div>
</div>
</main>
<div id = "modalDiv"></div>
</body>
</html>

View File

@@ -0,0 +1,155 @@
<%@ 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="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%--
Class Name : MlgManagePopupCForm.jsp.jsp
Description : 마일리지 관리
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
since : 2024.02.19 김혜인 최초 생성
--%>
<script>
$(document).ready(function(){
fn_count_byte(".cn",".byteCnt",90);
fn_select_mlgList(1);
//적용구분 값따라 showHIde
$("#mlgApplcCnDv").on("change",function(){
const applcDv = $("#mlgApplcCnDv").val();
if(applcDv == "minus"){
fn_ui_showHide("",".hideEl","Y");
}else if (applcDv == 'add' || applcDv == 'plus'){
fn_ui_showHide(".hideEl","","N");
}
});
});
</script>
<!-- 마일리지 관리 모달 -->
<div id="MlgMabagePopup" class="modal" style="max-width: 1200px;">
<div class="modal-header">
<h4>마일리지 관리</h4>
</div>
<div class="modal-content">
<h2 class="content-section__title">마일리지</h2>
<hr class="spacing">
<form id = "mlgApplyForm">
<div class="table-wrapper">
<table class="table">
<caption>마일리지 적용</caption>
<colgroup>
<col style="width: 12%;">
<col>
<col style="width: 12%;">
<col>
</colgroup>
<tbody>
<tr>
<th>지급자</th>
<td>
<div class="td-inner">
<span>TODO::지급자명</span>
</div>
</td>
</tr>
<tr>
<th>대상회원</th>
<td colspan="3">
<div class="td-inner">
<span>TODO::대상회원명(대상회원휴대폰호)</span>
</div>
</td>
</tr>
<tr>
<th>마일리지</th>
<td colspan="3">
<div class="td-inner">
<div class="select-box">
<select name = "mlgApplcCnDv" id = "mlgApplcCnDv" title="마일리지 적용 구분" >
<!--TODO:: 코드 가져오기 -->
<option value="plus">지급</option>
<option value="minus">차감</option>
<option value="add">적립</option>
</select>
</div>
<input name = "accmlmnyAmt" id = "accmlmnyAmt" type="text" class="input-text sm right number" value="0" title="마일리지 금액"><span>마일리지</span>
<span class = "hideEl">유효기간:</span>
<input name = "mlgValidDt" type="text" class="input-text sm right number hideEl" value="0" title="마일리지 유효기간">
<span class="control-label hideEl">개월</span>
<div class="b-checkbox-container inner hideEl">
<label class="b-checkbox checkbox">
<input name = "validAt" type="checkbox" value="">
<span class="check"></span>
<span class="control-label">유효기간 설정안함</span>
</label>
</div>
</div>
</td>
</tr>
<tr>
<th>사유</th>
<td colspan="3">
<div class="td-inner">
<div class="select-box">
<select name = "mlgApplcResn" id = "mlgApplcResn" title="마일리지 적용 사유" >
<!--TODO:: 코드 가져오기 -->
<option value="">등록일</option>
</select>
</div>
<input name = "accmlmnyAmt" type="text" class="input-text sm right number" value="0" title="마일리지 금액" id = "accmlmnyAmt" placeholder="직접 입력">
</div>
</td>
</tr>
</tbody>
</table>
</div>
<hr class="spacing">
<h2 class="content-section__title">SMS</h2>
<hr class="spacing">
<div class="table-wrapper" style="max-width: 400px;">
<table class="table">
<caption>마일리지 적용</caption>
<colgroup>
<col style="width: 35%;">
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<th class = "center">sms 입력</th>
<td>
<div class="template-message__body">
<div class="sms-manage">
<textarea class="textarea cn" title="sms 입력"></textarea>
<div class="sms-manage__byte">
<span class="number byteCnt">0</span>
<span class="text">byte</span>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="form-control-container">
<div class="left"></div>
<div class="center">
<button class="btn primary" id="searchBtn" type="button" onclick="">적용하기</button>
</div>
<div class="right"></div>
</div>
<hr class="spacing">
</form>
<hr class="horizontal-line">
<div id = "mlgDtlDiv"></div>
</div>
<div class="modal-footer">
<a href="#" rel="modal:close" class="btn outline">닫기</a>
</div>
</div>

View File

@@ -0,0 +1,186 @@
<%@ 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="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%--
Class Name : MlgManagePopupCForm.jsp.jsp
Description : 마일리지 관리
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
since : 2024.02.19 김혜인 최초 생성
2024-05-20 이운산 수정
--%>
<script type="text/javascript">
$(document).ready(function(){
fn_apply_btnTy_button();
});
</script>
<form id="mlgListForm">
<section class="content-section" id="mlg_content_section">
<h2 class="content-section__title">수신 내역</h2>
<div class="table-wrapper">
<table class="table">
<caption>마일리지 적용</caption>
<colgroup>
<col style="width: 12%;">
<col>
</colgroup>
<tbody>
<tr>
<th>지급/차감일</th>
<td>
<div class="td-inner">
<div class="input-container">
<input type="text" id="srchStrtDt" class="datepicker" title="시작 날짜 선택" autocomplete="off">
<span class="tilde">~</span>
<input type="text" id="srchEndDt" class="datepicker" title="종료 날짜 선택" autocomplete="off">
</div>
<div class="dateRange-btnContainer" id="srchDateRange">
<button class="dateRange-btn">어제</button>
<button class="dateRange-btn">오늘</button>
<button class="dateRange-btn">3일간</button>
<button class="dateRange-btn">일주일</button>
<button class="dateRange-btn">1개월</button>
<button class="dateRange-btn">3개월</button>
<button class="dateRange-btn">6개월</button>
<button class="dateRange-btn">1년</button>
<button class="dateRange-btn selected">전체</button>
</div>
</div>
</td>
</tr>
<tr>
<th>마일리지 적용구분</th>
<td>
<div class="td-inner">
<div class="b-checkbox-container">
<label class="b-checkbox checkbox check-all">
<input type="checkbox" value="" id = "applcDvChkAll">
<span class="check"></span>
<span class="control-label">전체</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="complete" class = "applcDvChk" name = "srchPurchsSttus">
<span class="check"></span>
<span class="control-label">지급</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="complete" class = "applcDvChk" name = "srchPurchsSttus">
<span class="check"></span>
<span class="control-label">차감</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="complete" class = "applcDvChk" name = "srchPurchsSttus">
<span class="check"></span>
<span class="control-label">적립</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" value="stay" class = "applcDvChk" name = "srchPurchsSttus">
<span class="check"></span>
<span class="control-label">회수</span>
</label>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="form-control-container">
<div class="left"></div>
<div class="center">
<button type = "button" class="btn outline" id = "resetBtn">초기화</button>
<button type = "button" class="btn primary" onclick="fn_select_list(); return false;">검색</button>
</div>
</div>
<div class="form-control-container">
<div class="left">
</div>
<div class="center">
</div>
<div class="right">
<div class="select-box">
<select id="mbrPageUnit" name="pageUnit" title="페이지당 출력될 목록건수" onchange="fn_select_mbrInfo(1);">
<%-- <c:forEach items="${ resultListMapMbr.paginationInfo.pageUnitArr }" var="pageUnit" varStatus="pageUnitStatus">
<option value="<c:out value="${ pageUnit }"/>" <c:if test="${ resultListMapMbr.paginationInfo.recordCountPerPage eq pageUnit}">selected="selected"</c:if>><c:out value="${ pageUnit }"/>개씩</option>
</c:forEach> --%>
</select>
</div>
</div>
</div>
<hr class="horizontal-line">
<div class="form-control-container">
<div class="left">
</div>
<div class="center">
</div>
<div class="right">
</div>
</div>
<hr class="spacing">
<div class="table-wrapper">
<table class="table vertical">
<caption>수신 내역</caption>
<!-- 각 열 width 설정 -->
<colgroup>
<col style="width: 6%;">
<col style="width: 15%">
<col style="width: 20%">
<col style="width: 20%">
<col>
<col style="width: 10%">
<col>
</colgroup>
<thead>
<tr>
<th>번호</th>
<th>지급/차감 금액</th>
<th>사유</th>
<th>내역</th>
<th>지급일</th>
<th>자동/수동</th>
<th>유효기간</th>
</tr>
</thead>
<tbody>
<c:choose>
<c:when test="${ not empty resultListMapMbr.boCtrlMap}">
<c:forEach items="${ resultListMapMbr.boCtrlMap }" var="list" varStatus="status">
<tr>
<td><c:out value="${resultListMapMbr.paginationInfo.totalRecordCount - list.rnum + 1 }" /></td>
<td>
<span class="table-ellipsis">
<c:out value = "${list.recpntEmail}"/>
</span>
</td>
<td>
<c:out value = "${list.recpntNm}"/>
</td>
<td>
<c:out value = "${list.sttus}"/>
</td>
<td>
<c:out value = "${list.sndngDt}"/>
</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>
</section>
<input type="hidden" id="pageIndex" name="pageIndex" value="1" />
<%-- <div class="pagination__container mt-30">
<ui:pagination paginationInfo="${resultMap.paginationInfo}" type="image" jsFunction="fn_select_rpuseDlvylcList" />
</div> --%>
</section>
</form>