Files
sake/src/main/webapp/WEB-INF/views/mngr/setup/mbr/GradBnefRegistU.jsp
2025-10-29 17:08:05 +09:00

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>