376 lines
21 KiB
Plaintext
376 lines
21 KiB
Plaintext
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
|
|
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
|
|
<%@ taglib prefix="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" %>
|
|
<%--
|
|
Class Name : GradBnefRegistU.jsp
|
|
Description : 등급별 혜택 수정 jsp
|
|
Modification Information
|
|
|
|
수정일 수정자 수정내용
|
|
------- -------- ---------------------------
|
|
since : 2023.12.27 김혜인 최초 생성
|
|
--%>
|
|
<!DOCTYPE html>
|
|
<html lang="ko">
|
|
<head>
|
|
<%@include file ="/WEB-INF/views/comm/mngr/Include.jsp" %>
|
|
<script>
|
|
$(document).ready(function () {
|
|
fn_showHide_html();
|
|
// 셀렉트 박스 마일리지 지급 단위에 따른 제어 함수
|
|
$("#mlgDv").on("change", function () {
|
|
let mlgDvValue = $("#mlgDv option:selected").val();
|
|
if (mlgDvValue === "02") {
|
|
$('.mlgPercent').hide();
|
|
$("#mlgAccmlAmt").attr("maxlength", "11");
|
|
$("#mlgMxmmAccmlmnyAmt").prop("disabled", true);
|
|
} else if (mlgDvValue === "01") {
|
|
$(".mlgPercent").show();
|
|
$("#mlgAccmlAmt").attr("maxlength", "2");
|
|
$("#mlgMxmmAccmlmnyAmt").prop("disabled", false);
|
|
if ($("#mlgMxmmAccmlmnyAmtChk").is(":checked")) {
|
|
$("#mlgMxmmAccmlmnyAmt").prop("disabled", true);
|
|
}
|
|
|
|
}
|
|
});
|
|
|
|
// 마일리지 지급 설정 라디오버튼 제어 함수javascript 셀렉트 값 가져오기
|
|
$('input[name="mlgPymnt"]').on("change", function () {
|
|
let mlgPymntValue = $('input[name="mlgPymnt"]:checked').val();
|
|
if (mlgPymntValue === "mlgPymntN") {
|
|
$('.mlgPymnt').hide();
|
|
$('.red-7').hide();
|
|
} else if (mlgPymntValue === "mlgPymntY") {
|
|
//마일리지 지급 설정 노출
|
|
$('.mlgPymnt').show();
|
|
$('.red-7').show();
|
|
//마일리지 적립 금액 값 없을 시 0세팅
|
|
if ($("#mlgAccmlAmt").val() === "") {
|
|
$("#mlgAccmlAmt").val('0');
|
|
}
|
|
//금액 disabled 비활성
|
|
$("#mlgAccmlAmt").prop("disabled", false);
|
|
|
|
//최대 적립마일리지
|
|
if ($("#mlgMxmmAccmlmnyAmtChk").is(":checked")) {
|
|
$("#mlgMxmmAccmlmnyAmt").prop("disabled", true);
|
|
} else {
|
|
$("#mlgMxmmAccmlmnyAmt").prop("disabled", false);
|
|
}
|
|
$("#mlgMxmmAccmlmnyAmtChk").prop("disabled", false);
|
|
|
|
if ($("#mlgDv option:selected").val() == '01') {
|
|
$('.mlgPercent').show();
|
|
$("#mlgAccmlAmt").attr("maxlength", "2");
|
|
//if 비율이 ''일시 0으로 값 수정
|
|
if (!$("#mlgMxmmAccmlmnyAmtChk").is(":checked")) {
|
|
$("#mlgMxmmAccmlmnyAmt").prop("disabled", false);
|
|
}
|
|
} else if ($("#mlgDv option:selected").val() == '02') {
|
|
//마일리지 금액 항목 노출
|
|
$('.mlgPercent').hide();
|
|
$("#mlgAccmlAmt").attr("maxlength", "11");
|
|
}
|
|
}
|
|
});
|
|
|
|
|
|
});
|
|
//처음 페이지 이동 시 라디오 버튼 처리
|
|
const fn_showHide_html = function () {
|
|
|
|
let mlgPymntValue = $("[name='mlgPymnt']:checked").val();
|
|
let mlgDvValue = $("#mlgDv").val();
|
|
//1. 지급
|
|
if (mlgPymntValue === "mlgPymntY") {
|
|
$("#mlgAccmlAmt").show();
|
|
if (mlgDvValue === "01") {
|
|
$(".mlgPercent").show();
|
|
$("#mlgAccmlAmt").attr("maxlength", "2");
|
|
if ($("#mlgAccmlAmt").val() != "" && $("#mlgMxmmAccmlmnyAmt") == "") {
|
|
$("#mlgMxmmAccmlmnyAmtChk").prop("checked", true);
|
|
}
|
|
} else if (mlgDvValue === "02") {
|
|
$('.mlgPercent').hide();
|
|
$("#mlgAccmlAmt").attr("maxlength", "11");
|
|
$("#mlgMxmmAccmlmnyAmt").prop("disabled", true);
|
|
}
|
|
|
|
//2. 미지급
|
|
} else if (mlgPymntValue === "mlgPymntN") {
|
|
$('.mlgPymnt').hide();
|
|
}
|
|
}
|
|
|
|
/*
|
|
* 수정 ajax 처리
|
|
*/
|
|
const fn_save_gradBnefFrm = function () {
|
|
if (confirm('<spring:message code="confirm.common.save"/>')) {
|
|
$.ajax({
|
|
type: 'post',
|
|
url: '<c:url value="/mngr/setup/mbr/updateGradBnefUpdt"/>',
|
|
data: $('#gradBnefFrm').serialize(),
|
|
success: function (resultData) {
|
|
alert("<spring:message code="success.common.save"/>");
|
|
fn_move_gradBnefDtl();
|
|
$("#pageIndex").val(1);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
//수정 후 재 조회
|
|
const fn_move_gradBnefDtl = function () {
|
|
//form 여부 체크
|
|
if ($('#hiddenDtlForm') != null) {
|
|
$('#hiddenDtlForm').remove();
|
|
}
|
|
//form input 형성
|
|
const hiddenDtlForm = document.createElement('form');
|
|
hiddenDtlForm.name = 'hiddenDtlForm';
|
|
hiddenDtlForm.id = 'hiddenDtlForm';
|
|
hiddenDtlForm.method = 'post';
|
|
hiddenDtlForm.action = '/mngr/setup/mbr/selectGradBnefRegistInqire';
|
|
//memberInnb input 형성
|
|
let input = document.createElement('input');
|
|
input.setAttribute("type", "hidden");
|
|
input.setAttribute("name", "mbrGradInnb");
|
|
input.setAttribute("value", $("#mbrGradInnb").val());
|
|
hiddenDtlForm.appendChild(input);
|
|
//pageIndex input 형성
|
|
input = document.createElement('input');
|
|
input.setAttribute("type", "hidden");
|
|
input.setAttribute("name", "pageIndex");
|
|
input.setAttribute("value", 1);
|
|
hiddenDtlForm.appendChild(input);
|
|
//pageUnit input 형성
|
|
input = document.createElement('input');
|
|
input.setAttribute("type", "hidden");
|
|
input.setAttribute("name", "pageUnit");
|
|
input.setAttribute("value", $("#pageUnit").val());
|
|
hiddenDtlForm.appendChild(input);
|
|
//searchGradNm input 형성
|
|
if ($("#searchGradNm").val() != undefined) {
|
|
input = document.createElement('input');
|
|
input.setAttribute("type", "hidden");
|
|
input.setAttribute("name", "searchGradNm");
|
|
input.setAttribute("value", $("#searchGradNm").val());
|
|
hiddenDtlForm.appendChild(input);
|
|
}
|
|
//<body>에 form 추가
|
|
document.body.appendChild(hiddenDtlForm);
|
|
//hiddenFform submit();
|
|
$('#hiddenDtlForm').submit();
|
|
}
|
|
/*******************
|
|
목록 조회
|
|
************************/
|
|
const fn_move_gradBnefList = function (pageIndex) {
|
|
$('#gradBnefFrm').prop('action', '<c:url value="/mngr/setup/mbr/selectMbrGradSrchForm"/>');
|
|
$('#gradBnefFrm').prop('method', 'post');
|
|
$('#gradBnefFrm').submit();
|
|
}
|
|
/**************************************************************
|
|
마일리지 설정안함 체크 시 input 제어
|
|
****************************************************************/
|
|
const fn_ctr_input = function (obj, tgtSelector) {
|
|
if ($(obj).prop('checked')) {
|
|
if ($(tgtSelector).eq(0)) {
|
|
$(tgtSelector).eq(0).prop('disabled', true);
|
|
}
|
|
} else {
|
|
if ($(tgtSelector).eq(0)) {
|
|
$(tgtSelector).eq(0).prop('disabled', false);
|
|
}
|
|
}
|
|
}
|
|
</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">
|
|
<c:set var = "gradDtl" value = "${resultMap.gradDtl.gradDtl}"/>
|
|
<c:set var = "accmlUnitDv" value = "${resultMap.gradDtl.accmlUnitDv}"/>
|
|
<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 type="button" onclick="fn_move_gradBnefList()" class="btn outline"><spring:message
|
|
code="button.list"/></button>
|
|
<button type="button" onclick="fn_save_gradBnefFrm()" class="btn primary"><spring:message
|
|
code="button.save"/></button>
|
|
</div>
|
|
</div>
|
|
<form id="gradBnefFrm">
|
|
<section class="content-section">
|
|
<h3 class="content-section__title">혜택 설정</h3>
|
|
<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: 38%;">
|
|
</colgroup>
|
|
<tbody>
|
|
<tr>
|
|
<th>회원 등급</th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<span><c:out value="${gradDtl.mbrGradNm}"/></span>
|
|
<input type="hidden"
|
|
value="<c:out value = "${gradDtl.mbrGradInnb}"/>"
|
|
name="mbrGradInnb" id="mbrGradInnb">
|
|
</div>
|
|
</td>
|
|
<th>조건구매금액</th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<span>
|
|
<c:choose>
|
|
<c:when test = "${gradDtl.mbrGradCndCd eq '01'}">
|
|
조건 없음
|
|
</c:when>
|
|
<c:otherwise>
|
|
<fmt:formatNumber value="${gradDtl.mbrGradAmt}" pattern="#,###.##"/>원 이상
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</span>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>마일리지</th>
|
|
<td colspan="3">
|
|
<div class="td-inner vertical">
|
|
<div class="table-wrapper" style="width: 800px;">
|
|
<table class="table">
|
|
<caption>마일리지 지급 설정</caption>
|
|
<colgroup>
|
|
<col style="width: 20%;">
|
|
<col>
|
|
</colgroup>
|
|
<tbody>
|
|
<tr>
|
|
<th>지급 설정<span class="red-7">*</span></th>
|
|
<td>
|
|
<div class="td-inner vertical">
|
|
<div class="custom-radio-container">
|
|
<div class="custom-radio">
|
|
<input type="radio" id="mlgPymntY" name="mlgPymnt"
|
|
value="mlgPymntY"
|
|
onclick="fn_ctrl_disable('',['.enable']);"
|
|
<c:if test="${not empty gradDtl.mlgAccmlAmt}">
|
|
checked="checked"
|
|
</c:if>>
|
|
<label for="mlgPymntY">지급</label>
|
|
</div>
|
|
<div class="custom-radio">
|
|
<input type="radio" id="mlgPymntN" name="mlgPymnt"
|
|
value="mlgPymntN"
|
|
onclick="fn_ctrl_disable(['.disableMlgPymnt']);"
|
|
<c:if test="${empty gradDtl.mlgAccmlAmt}">
|
|
checked="checked"
|
|
</c:if>>
|
|
<label for="mlgPymntN">미지급</label>
|
|
</div>
|
|
</div>
|
|
<div class="mlgPymnt">
|
|
<div class="input-container disableMlgPymnt ">
|
|
<span class="mr-5">구매시</span>
|
|
<span class="mr-5 mlgPercent">총 상품 결제금액의</span>
|
|
<span class="mr-5">
|
|
<fmt:formatNumber var="mlgAccmlAmt"
|
|
value="${gradDtl.mlgAccmlAmt}"
|
|
pattern="#,###.##"/>
|
|
<input type="text"
|
|
class="input-text sm number right mr-5"
|
|
title="마일리지 적립 금액"
|
|
id="mlgAccmlAmt"
|
|
name="mlgAccmlAmt"
|
|
value="<c:out value = '${mlgAccmlAmt}'/>">
|
|
</span>
|
|
<div class="select-box mr-10 enable">
|
|
<select id="mlgDv" name="mlgAccmlUnitDvCd"
|
|
class="short" title="마일리지 단위 선택">
|
|
<c:forEach var="accmlUnitDv" items="${accmlUnitDv}">
|
|
<option value="${accmlUnitDv.cd}" <c:if test="${accmlUnitDv.cd eq gradDtl.mlgAccmlUnitDvCd}">selected="selected"</c:if>>
|
|
${accmlUnitDv.cdNm}
|
|
</option>
|
|
</c:forEach>
|
|
</select>
|
|
</div>
|
|
<span class="mr-5">
|
|
적립
|
|
</span>
|
|
</div>
|
|
<div class="input-container mr-5 mlgPymnt mlgPercent disableMlgPymnt">
|
|
<span class="mr-5">최대</span>
|
|
<c:choose>
|
|
<c:when test="${not empty gradDtl.mlgMxmmAccmlAmt && gradDtl.mlgMxmmAccmlAmt ne '0'}">
|
|
<fmt:formatNumber var="mlgMxmmAccmlAmt" value="${gradDtl.mlgMxmmAccmlAmt}" pattern="#,###.##"/>
|
|
<input class="input-text sm number right mr-5"
|
|
type="text" title="최대 마일리지 적립금액"
|
|
id="mlgMxmmAccmlmnyAmt"
|
|
name="mlgMxmmAccmlAmt" maxlength="12"
|
|
value="<c:out value = '${mlgMxmmAccmlAmt}'/>">
|
|
</c:when>
|
|
<c:otherwise>
|
|
<input class="input-text sm number right mr-5"
|
|
type="text" title="최대 마일리지 적립금액"
|
|
id="mlgMxmmAccmlmnyAmt"
|
|
name="mlgMxmmAccmlAmt" maxlength="12"
|
|
value="0" disabled>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
<span class="mr-5">마일리지 까지 적립</span>
|
|
<div class="b-checkbox-container">
|
|
<label class="b-checkbox checkbox">
|
|
<input type="checkbox" value="Y"
|
|
name="mlgMxmmAccmlmnyAmtChk"
|
|
id="mlgMxmmAccmlmnyAmtChk"
|
|
onclick="fn_ctr_input(this,mlgMxmmAccmlmnyAmt)"
|
|
<c:if test="${gradDtl.mlgMxmmAccmlAmt eq null && gradDtl.mlgAccmlUnitDvCd eq '01'}">
|
|
checked="checked" </c:if>>
|
|
<span class="check"></span>
|
|
<span class="control-label">설정 안함</span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<br>
|
|
<p class="red-7">*회원 등급 마일리지 유효기간은 주문 설정의 마일리지 유효기간을 따라갑니다.</p>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!--검색 조건 , 페이징 조건 -->
|
|
<input type="hidden" id="searchGradNm" name="searchGradNm" title="검색_회원등급명" value="${resultMap.vo.searchGradNm}">
|
|
<input type="hidden" id="pageIndex" name="pageIndex" value="${resultMap.vo.pageIndex}"/>
|
|
<input type="hidden" id="pageUnit" name="pageUnit" value="${resultMap.vo.pageUnit}"/>
|
|
</section>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</main>
|
|
</body>
|
|
</html> |